(setq big1 (sub1 (expt 123456 30)))
(setq big2 (sub1 (expt 654321 24)))
(setq big3 (times big1 big2))

(load inum compiler)
(on comp)
(on time)

(de timing(u)
   (prog (t1 t2 d m)
    (setq m 20)
    (setq d 0)
    (ifor (from i 1 m 1)
     (do(progn
      (reclaim)
      (setq t1(time))
      (apply u nil)
      (setq t2 (time))
      (setq d (plus d (difference t2 t1)))
    )))
    (return (quotient d m))
))


(de testadd()
   (ifor (from i 1 5000 1)
         (do (plus big1 big2 big1 big2 big1 big2 big1 big2))))

(timing 'testadd)

   % 32:   1336 1340  1396
   % 30:   1735 1778  1767
   %   22 %

(de testmult()
   (ifor (from i 1 250 1)
         (do (times big1 big2 big1 big2 big1 big2 big1 big2))))

(timing 'testmult)

  % 32:    2868  2838  2870
  % 30:    3396  3490  3440
  %    26%


(de testquot()
   (ifor (from i 1 5000 1)
         (do (quotient big3 big2))))

(timing 'testquot)

  % 32:    4461  4489  4572
  % 30:   17895 17544 18195
  %    70 %
