home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume1 / 8707 / 49 / takr.cl < prev    next >
Encoding:
Text File  |  1990-07-13  |  15.7 KB  |  621 lines

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ; File:         takr.cl
  3. ; Description:  TAKR benchmark
  4. ; Author:       Richard Gabriel
  5. ; Created:      12-Apr-85
  6. ; Modified:     12-Apr-85 10:12:43 (Bob Shaw)
  7. ; Language:     Common Lisp
  8. ; Package:      User
  9. ; Status:       Public Domain
  10. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  11.  
  12. ;;; TAKR  -- 100 function (count `em) version of TAK that tries to defeat cache
  13. ;;; memory effects.  Results should be the same as for TAK on stack machines.
  14. ;;; Distribution of calls is not completely flat.
  15.  
  16. (defun tak0 (x y z) 
  17.   (declare (fixnum x y z))
  18.   (cond ((not (< y x)) z)
  19.     (t (tak1 (tak37 (1- x) y z)
  20.          (tak11 (1- y) z x)
  21.          (tak17 (1- z) x y)))))
  22. (defun tak1 (x y z) 
  23.   (declare (fixnum x y z))
  24.   (cond ((not (< y x)) z)
  25.     (t (tak2 (tak74 (1- x) y z)
  26.          (tak22 (1- y) z x)
  27.          (tak34 (1- z) x y)))))
  28. (defun tak2 (x y z) 
  29.   (declare (fixnum x y z))
  30.   (cond ((not (< y x)) z)
  31.     (t (tak3 (tak11 (1- x) y z)
  32.          (tak33 (1- y) z x)
  33.          (tak51 (1- z) x y)))))
  34. (defun tak3 (x y z) 
  35.   (declare (fixnum x y z))
  36.   (cond ((not (< y x)) z)
  37.     (t (tak4 (tak48 (1- x) y z)
  38.          (tak44 (1- y) z x)
  39.          (tak68 (1- z) x y)))))
  40. (defun tak4 (x y z) 
  41.   (declare (fixnum x y z))
  42.   (cond ((not (< y x)) z)
  43.     (t (tak5 (tak85 (1- x) y z)
  44.          (tak55 (1- y) z x)
  45.          (tak85 (1- z) x y)))))
  46. (defun tak5 (x y z) 
  47.   (declare (fixnum x y z))
  48.   (cond ((not (< y x)) z)
  49.     (t (tak6 (tak22 (1- x) y z)
  50.          (tak66 (1- y) z x)
  51.          (tak2 (1- z) x y)))))
  52. (defun tak6 (x y z) 
  53.   (declare (fixnum x y z))
  54.   (cond ((not (< y x)) z)
  55.     (t (tak7 (tak59 (1- x) y z)
  56.          (tak77 (1- y) z x)
  57.          (tak19 (1- z) x y)))))
  58. (defun tak7 (x y z) 
  59.   (declare (fixnum x y z))
  60.   (cond ((not (< y x)) z)
  61.     (t (tak8 (tak96 (1- x) y z)
  62.          (tak88 (1- y) z x)
  63.          (tak36 (1- z) x y)))))
  64. (defun tak8 (x y z) 
  65.   (declare (fixnum x y z))
  66.   (cond ((not (< y x)) z)
  67.     (t (tak9 (tak33 (1- x) y z)
  68.          (tak99 (1- y) z x)
  69.          (tak53 (1- z) x y)))))
  70. (defun tak9 (x y z) 
  71.   (declare (fixnum x y z))
  72.   (cond ((not (< y x)) z)
  73.     (t (tak10 (tak70 (1- x) y z)
  74.           (tak10 (1- y) z x)
  75.           (tak70 (1- z) x y)))))
  76. (defun tak10 (x y z) 
  77.   (declare (fixnum x y z))
  78.   (cond ((not (< y x)) z)
  79.     (t (tak11 (tak7 (1- x) y z)
  80.           (tak21 (1- y) z x)
  81.           (tak87 (1- z) x y)))))
  82. (defun tak11 (x y z) 
  83.   (declare (fixnum x y z))
  84.   (cond ((not (< y x)) z)
  85.     (t (tak12 (tak44 (1- x) y z)
  86.           (tak32 (1- y) z x)
  87.           (tak4 (1- z) x y)))))
  88. (defun tak12 (x y z) 
  89.   (declare (fixnum x y z))
  90.   (cond ((not (< y x)) z)
  91.     (t (tak13 (tak81 (1- x) y z)
  92.           (tak43 (1- y) z x)
  93.           (tak21 (1- z) x y)))))
  94.  
  95. (defun tak13 (x y z) 
  96.   (declare (fixnum x y z))
  97.   (cond ((not (< y x)) z)
  98.     (t (tak14 (tak18 (1- x) y z)
  99.           (tak54 (1- y) z x)
  100.           (tak38 (1- z) x y)))))
  101. (defun tak14 (x y z) 
  102.   (declare (fixnum x y z))
  103.   (cond ((not (< y x)) z)
  104.     (t (tak15 (tak55 (1- x) y z)
  105.           (tak65 (1- y) z x)
  106.           (tak55 (1- z) x y)))))
  107. (defun tak15 (x y z) 
  108.   (declare (fixnum x y z))
  109.   (cond ((not (< y x)) z)
  110.     (t (tak16 (tak92 (1- x) y z)
  111.           (tak76 (1- y) z x)
  112.           (tak72 (1- z) x y)))))
  113. (defun tak16 (x y z) 
  114.   (declare (fixnum x y z))
  115.   (cond ((not (< y x)) z)
  116.     (t (tak17 (tak29 (1- x) y z)
  117.           (tak87 (1- y) z x)
  118.           (tak89 (1- z) x y)))))
  119. (defun tak17 (x y z) 
  120.   (declare (fixnum x y z))
  121.   (cond ((not (< y x)) z)
  122.     (t (tak18 (tak66 (1- x) y z)
  123.           (tak98 (1- y) z x)
  124.           (tak6 (1- z) x y)))))
  125. (defun tak18 (x y z) 
  126.   (declare (fixnum x y z))
  127.   (cond ((not (< y x)) z)
  128.     (t (tak19 (tak3 (1- x) y z)
  129.           (tak9 (1- y) z x)
  130.           (tak23 (1- z) x y)))))
  131. (defun tak19 (x y z) 
  132.   (declare (fixnum x y z))
  133.   (cond ((not (< y x)) z)
  134.     (t (tak20 (tak40 (1- x) y z)
  135.           (tak20 (1- y) z x)
  136.           (tak40 (1- z) x y)))))
  137. (defun tak20 (x y z) 
  138.   (declare (fixnum x y z))
  139.   (cond ((not (< y x)) z)
  140.     (t (tak21 (tak77 (1- x) y z)
  141.           (tak31 (1- y) z x)
  142.           (tak57 (1- z) x y)))))
  143. (defun tak21 (x y z) 
  144.   (declare (fixnum x y z))
  145.   (cond ((not (< y x)) z)
  146.     (t (tak22 (tak14 (1- x) y z)
  147.           (tak42 (1- y) z x)
  148.           (tak74 (1- z) x y)))))
  149. (defun tak22 (x y z) 
  150.   (declare (fixnum x y z))
  151.   (cond ((not (< y x)) z)
  152.     (t (tak23 (tak51 (1- x) y z)
  153.           (tak53 (1- y) z x)
  154.           (tak91 (1- z) x y)))))
  155. (defun tak23 (x y z) 
  156.   (declare (fixnum x y z))
  157.   (cond ((not (< y x)) z)
  158.     (t (tak24 (tak88 (1- x) y z)
  159.           (tak64 (1- y) z x)
  160.           (tak8 (1- z) x y)))))
  161. (defun tak24 (x y z) 
  162.   (declare (fixnum x y z))
  163.   (cond ((not (< y x)) z)
  164.     (t (tak25 (tak25 (1- x) y z)
  165.           (tak75 (1- y) z x)
  166.           (tak25 (1- z) x y)))))
  167. (defun tak25 (x y z) 
  168.   (declare (fixnum x y z))
  169.   (cond ((not (< y x)) z)
  170.     (t (tak26 (tak62 (1- x) y z)
  171.           (tak86 (1- y) z x)
  172.           (tak42 (1- z) x y)))))
  173. (defun tak26 (x y z) 
  174.   (declare (fixnum x y z))
  175.   (cond ((not (< y x)) z)
  176.     (t (tak27 (tak99 (1- x) y z)
  177.           (tak97 (1- y) z x)
  178.           (tak59 (1- z) x y)))))
  179. (defun tak27 (x y z) 
  180.   (declare (fixnum x y z))
  181.   (cond ((not (< y x)) z)
  182.     (t (tak28 (tak36 (1- x) y z)
  183.           (tak8 (1- y) z x)
  184.           (tak76 (1- z) x y)))))
  185. (defun tak28 (x y z) 
  186.   (declare (fixnum x y z))
  187.   (cond ((not (< y x)) z)
  188.     (t (tak29 (tak73 (1- x) y z)
  189.           (tak19 (1- y) z x)
  190.           (tak93 (1- z) x y)))))
  191. (defun tak29 (x y z) 
  192.   (declare (fixnum x y z))
  193.   (cond ((not (< y x)) z)
  194.     (t (tak30 (tak10 (1- x) y z)
  195.           (tak30 (1- y) z x)
  196.           (tak10 (1- z) x y)))))
  197. (defun tak30 (x y z) 
  198.   (declare (fixnum x y z))
  199.   (cond ((not (< y x)) z)
  200.     (t (tak31 (tak47 (1- x) y z)
  201.           (tak41 (1- y) z x)
  202.           (tak27 (1- z) x y)))))
  203. (defun tak31 (x y z) 
  204.   (declare (fixnum x y z))
  205.   (cond ((not (< y x)) z)
  206.     (t (tak32 (tak84 (1- x) y z)
  207.           (tak52 (1- y) z x)
  208.           (tak44 (1- z) x y)))))
  209. (defun tak32 (x y z) 
  210.   (declare (fixnum x y z))
  211.   (cond ((not (< y x)) z)
  212.     (t (tak33 (tak21 (1- x) y z)
  213.           (tak63 (1- y) z x)
  214.           (tak61 (1- z) x y)))))
  215. (defun tak33 (x y z) 
  216.   (declare (fixnum x y z))
  217.   (cond ((not (< y x)) z)
  218.     (t (tak34 (tak58 (1- x) y z)
  219.           (tak74 (1- y) z x)
  220.           (tak78 (1- z) x y)))))
  221. (defun tak34 (x y z) 
  222.   (declare (fixnum x y z))
  223.   (cond ((not (< y x)) z)
  224.     (t (tak35 (tak95 (1- x) y z)
  225.           (tak85 (1- y) z x)
  226.           (tak95 (1- z) x y)))))
  227. (defun tak35 (x y z) 
  228.   (declare (fixnum x y z))
  229.   (cond ((not (< y x)) z)
  230.     (t (tak36 (tak32 (1- x) y z)
  231.           (tak96 (1- y) z x)
  232.           (tak12 (1- z) x y)))))
  233. (defun tak36 (x y z) 
  234.   (declare (fixnum x y z))
  235.   (cond ((not (< y x)) z)
  236.     (t (tak37 (tak69 (1- x) y z)
  237.           (tak7 (1- y) z x)
  238.           (tak29 (1- z) x y)))))
  239. (defun tak37 (x y z) 
  240.   (declare (fixnum x y z))
  241.   (cond ((not (< y x)) z)
  242.     (t (tak38 (tak6 (1- x) y z)
  243.           (tak18 (1- y) z x)
  244.           (tak46 (1- z) x y)))))
  245. (defun tak38 (x y z) 
  246.   (declare (fixnum x y z))
  247.   (cond ((not (< y x)) z)
  248.     (t (tak39 (tak43 (1- x) y z)
  249.           (tak29 (1- y) z x)
  250.           (tak63 (1- z) x y)))))
  251. (defun tak39 (x y z) 
  252.   (declare (fixnum x y z))
  253.   (cond ((not (< y x)) z)
  254.     (t (tak40 (tak80 (1- x) y z)
  255.           (tak40 (1- y) z x)
  256.           (tak80 (1- z) x y)))))
  257. (defun tak40 (x y z) 
  258.   (declare (fixnum x y z))
  259.   (cond ((not (< y x)) z)
  260.     (t (tak41 (tak17 (1- x) y z)
  261.           (tak51 (1- y) z x)
  262.           (tak97 (1- z) x y)))))
  263. (defun tak41 (x y z) 
  264.   (declare (fixnum x y z))
  265.   (cond ((not (< y x)) z)
  266.     (t (tak42 (tak54 (1- x) y z)
  267.           (tak62 (1- y) z x)
  268.           (tak14 (1- z) x y)))))
  269. (defun tak42 (x y z) 
  270.   (declare (fixnum x y z))
  271.   (cond ((not (< y x)) z)
  272.     (t (tak43 (tak91 (1- x) y z)
  273.           (tak73 (1- y) z x)
  274.           (tak31 (1- z) x y)))))
  275. (defun tak43 (x y z) 
  276.   (declare (fixnum x y z))
  277.   (cond ((not (< y x)) z)
  278.     (t (tak44 (tak28 (1- x) y z)
  279.           (tak84 (1- y) z x)
  280.           (tak48 (1- z) x y)))))
  281. (defun tak44 (x y z) 
  282.   (declare (fixnum x y z))
  283.   (cond ((not (< y x)) z)
  284.     (t (tak45 (tak65 (1- x) y z)
  285.           (tak95 (1- y) z x)
  286.           (tak65 (1- z) x y)))))
  287. (defun tak45 (x y z) 
  288.   (declare (fixnum x y z))
  289.   (cond ((not (< y x)) z)
  290.     (t (tak46 (tak2 (1- x) y z)
  291.           (tak6 (1- y) z x)
  292.           (tak82 (1- z) x y)))))
  293. (defun tak46 (x y z) 
  294.   (declare (fixnum x y z))
  295.   (cond ((not (< y x)) z)
  296.     (t (tak47 (tak39 (1- x) y z)
  297.           (tak17 (1- y) z x)
  298.           (tak99 (1- z) x y)))))
  299. (defun tak47 (x y z) 
  300.   (declare (fixnum x y z))
  301.   (cond ((not (< y x)) z)
  302.     (t (tak48 (tak76 (1- x) y z)
  303.           (tak28 (1- y) z x)
  304.           (tak16 (1- z) x y)))))
  305. (defun tak48 (x y z) 
  306.   (declare (fixnum x y z))
  307.   (cond ((not (< y x)) z)
  308.     (t (tak49 (tak13 (1- x) y z)
  309.           (tak39 (1- y) z x)
  310.           (tak33 (1- z) x y)))))
  311. (defun tak49 (x y z) 
  312.   (declare (fixnum x y z))
  313.   (cond ((not (< y x)) z)
  314.     (t (tak50 (tak50 (1- x) y z)
  315.           (tak50 (1- y) z x)
  316.           (tak50 (1- z) x y)))))
  317. (defun tak50 (x y z) 
  318.   (declare (fixnum x y z))
  319.   (cond ((not (< y x)) z)
  320.     (t (tak51 (tak87 (1- x) y z)
  321.           (tak61 (1- y) z x)
  322.           (tak67 (1- z) x y)))))
  323. (defun tak51 (x y z) 
  324.   (declare (fixnum x y z))
  325.   (cond ((not (< y x)) z)
  326.     (t (tak52 (tak24 (1- x) y z)
  327.           (tak72 (1- y) z x)
  328.           (tak84 (1- z) x y)))))
  329. (defun tak52 (x y z) 
  330.   (declare (fixnum x y z))
  331.   (cond ((not (< y x)) z)
  332.     (t (tak53 (tak61 (1- x) y z)
  333.           (tak83 (1- y) z x)
  334.           (tak1 (1- z) x y)))))
  335. (defun tak53 (x y z) 
  336.   (declare (fixnum x y z))
  337.   (cond ((not (< y x)) z)
  338.     (t (tak54 (tak98 (1- x) y z)
  339.           (tak94 (1- y) z x)
  340.           (tak18 (1- z) x y)))))
  341. (defun tak54 (x y z) 
  342.   (declare (fixnum x y z))
  343.   (cond ((not (< y x)) z)
  344.     (t (tak55 (tak35 (1- x) y z)
  345.           (tak5 (1- y) z x)
  346.           (tak35 (1- z) x y)))))
  347. (defun tak55 (x y z) 
  348.   (declare (fixnum x y z))
  349.   (cond ((not (< y x)) z)
  350.     (t (tak56 (tak72 (1- x) y z)
  351.           (tak16 (1- y) z x)
  352.           (tak52 (1- z) x y)))))
  353. (defun tak56 (x y z) 
  354.   (declare (fixnum x y z))
  355.   (cond ((not (< y x)) z)
  356.     (t (tak57 (tak9 (1- x) y z)
  357.           (tak27 (1- y) z x)
  358.           (tak69 (1- z) x y)))))
  359. (defun tak57 (x y z) 
  360.   (declare (fixnum x y z))
  361.   (cond ((not (< y x)) z)
  362.     (t (tak58 (tak46 (1- x) y z)
  363.           (tak38 (1- y) z x)
  364.           (tak86 (1- z) x y)))))
  365. (defun tak58 (x y z) 
  366.   (declare (fixnum x y z))
  367.   (cond ((not (< y x)) z)
  368.     (t (tak59 (tak83 (1- x) y z)
  369.           (tak49 (1- y) z x)
  370.           (tak3 (1- z) x y)))))
  371. (defun tak59 (x y z) 
  372.   (declare (fixnum x y z))
  373.   (cond ((not (< y x)) z)
  374.     (t (tak60 (tak20 (1- x) y z)
  375.           (tak60 (1- y) z x)
  376.           (tak20 (1- z) x y)))))
  377. (defun tak60 (x y z) 
  378.   (declare (fixnum x y z))
  379.   (cond ((not (< y x)) z)
  380.     (t (tak61 (tak57 (1- x) y z)
  381.           (tak71 (1- y) z x)
  382.           (tak37 (1- z) x y)))))
  383. (defun tak61 (x y z) 
  384.   (declare (fixnum x y z))
  385.   (cond ((not (< y x)) z)
  386.     (t (tak62 (tak94 (1- x) y z)
  387.           (tak82 (1- y) z x)
  388.           (tak54 (1- z) x y)))))
  389. (defun tak62 (x y z) 
  390.   (declare (fixnum x y z))
  391.   (cond ((not (< y x)) z)
  392.     (t (tak63 (tak31 (1- x) y z)
  393.           (tak93 (1- y) z x)
  394.           (tak71 (1- z) x y)))))
  395. (defun tak63 (x y z) 
  396.   (declare (fixnum x y z))
  397.   (cond ((not (< y x)) z)
  398.     (t (tak64 (tak68 (1- x) y z)
  399.           (tak4 (1- y) z x)
  400.           (tak88 (1- z) x y)))))
  401. (defun tak64 (x y z) 
  402.   (declare (fixnum x y z))
  403.   (cond ((not (< y x)) z)
  404.     (t (tak65 (tak5 (1- x) y z)
  405.           (tak15 (1- y) z x)
  406.           (tak5 (1- z) x y)))))
  407. (defun tak65 (x y z) 
  408.   (declare (fixnum x y z))
  409.   (cond ((not (< y x)) z)
  410.     (t (tak66 (tak42 (1- x) y z)
  411.           (tak26 (1- y) z x)
  412.           (tak22 (1- z) x y)))))
  413. (defun tak66 (x y z) 
  414.   (declare (fixnum x y z))
  415.   (cond ((not (< y x)) z)
  416.     (t (tak67 (tak79 (1- x) y z)
  417.           (tak37 (1- y) z x)
  418.           (tak39 (1- z) x y)))))
  419. (defun tak67 (x y z) 
  420.   (declare (fixnum x y z))
  421.   (cond ((not (< y x)) z)
  422.     (t (tak68 (tak16 (1- x) y z)
  423.           (tak48 (1- y) z x)
  424.           (tak56 (1- z) x y)))))
  425. (defun tak68 (x y z) 
  426.   (declare (fixnum x y z))
  427.   (cond ((not (< y x)) z)
  428.     (t (tak69 (tak53 (1- x) y z)
  429.           (tak59 (1- y) z x)
  430.           (tak73 (1- z) x y)))))
  431. (defun tak69 (x y z) 
  432.   (declare (fixnum x y z))
  433.   (cond ((not (< y x)) z)
  434.     (t (tak70 (tak90 (1- x) y z)
  435.           (tak70 (1- y) z x)
  436.           (tak90 (1- z) x y)))))
  437. (defun tak70 (x y z) 
  438.   (declare (fixnum x y z))
  439.   (cond ((not (< y x)) z)
  440.     (t (tak71 (tak27 (1- x) y z)
  441.           (tak81 (1- y) z x)
  442.           (tak7 (1- z) x y)))))
  443. (defun tak71 (x y z) 
  444.   (declare (fixnum x y z))
  445.   (cond ((not (< y x)) z)
  446.     (t (tak72 (tak64 (1- x) y z)
  447.           (tak92 (1- y) z x)
  448.           (tak24 (1- z) x y)))))
  449. (defun tak72 (x y z) 
  450.   (declare (fixnum x y z))
  451.   (cond ((not (< y x)) z)
  452.     (t (tak73 (tak1 (1- x) y z)
  453.           (tak3 (1- y) z x)
  454.           (tak41 (1- z) x y)))))
  455. (defun tak73 (x y z) 
  456.   (declare (fixnum x y z))
  457.   (cond ((not (< y x)) z)
  458.     (t (tak74 (tak38 (1- x) y z)
  459.           (tak14 (1- y) z x)
  460.           (tak58 (1- z) x y)))))
  461. (defun tak74 (x y z) 
  462.   (declare (fixnum x y z))
  463.   (cond ((not (< y x)) z)
  464.     (t (tak75 (tak75 (1- x) y z)
  465.           (tak25 (1- y) z x)
  466.           (tak75 (1- z) x y)))))
  467. (defun tak75 (x y z) 
  468.   (declare (fixnum x y z))
  469.   (cond ((not (< y x)) z)
  470.     (t (tak76 (tak12 (1- x) y z)
  471.           (tak36 (1- y) z x)
  472.           (tak92 (1- z) x y)))))
  473. (defun tak76 (x y z) 
  474.   (declare (fixnum x y z))
  475.   (cond ((not (< y x)) z)
  476.     (t (tak77 (tak49 (1- x) y z)
  477.           (tak47 (1- y) z x)
  478.           (tak9 (1- z) x y)))))
  479. (defun tak77 (x y z) 
  480.   (declare (fixnum x y z))
  481.   (cond ((not (< y x)) z)
  482.     (t (tak78 (tak86 (1- x) y z)
  483.           (tak58 (1- y) z x)
  484.           (tak26 (1- z) x y)))))
  485. (defun tak78 (x y z) 
  486.   (declare (fixnum x y z))
  487.   (cond ((not (< y x)) z)
  488.     (t (tak79 (tak23 (1- x) y z)
  489.           (tak69 (1- y) z x)
  490.           (tak43 (1- z) x y)))))
  491. (defun tak79 (x y z) 
  492.   (declare (fixnum x y z))
  493.   (cond ((not (< y x)) z)
  494.     (t (tak80 (tak60 (1- x) y z)
  495.           (tak80 (1- y) z x)
  496.           (tak60 (1- z) x y)))))
  497. (defun tak80 (x y z) 
  498.   (declare (fixnum x y z))
  499.   (cond ((not (< y x)) z)
  500.     (t (tak81 (tak97 (1- x) y z)
  501.           (tak91 (1- y) z x)
  502.           (tak77 (1- z) x y)))))
  503. (defun tak81 (x y z) 
  504.   (declare (fixnum x y z))
  505.   (cond ((not (< y x)) z)
  506.     (t (tak82 (tak34 (1- x) y z)
  507.           (tak2 (1- y) z x)
  508.           (tak94 (1- z) x y)))))
  509. (defun tak82 (x y z) 
  510.   (declare (fixnum x y z))
  511.   (cond ((not (< y x)) z)
  512.     (t (tak83 (tak71 (1- x) y z)
  513.           (tak13 (1- y) z x)
  514.           (tak11 (1- z) x y)))))
  515. (defun tak83 (x y z) 
  516.   (declare (fixnum x y z))
  517.   (cond ((not (< y x)) z)
  518.     (t (tak84 (tak8 (1- x) y z)
  519.           (tak24 (1- y) z x)
  520.           (tak28 (1- z) x y)))))
  521. (defun tak84 (x y z) 
  522.   (declare (fixnum x y z))
  523.   (cond ((not (< y x)) z)
  524.     (t (tak85 (tak45 (1- x) y z)
  525.           (tak35 (1- y) z x)
  526.           (tak45 (1- z) x y)))))
  527. (defun tak85 (x y z) 
  528.   (declare (fixnum x y z))
  529.   (cond ((not (< y x)) z)
  530.     (t (tak86 (tak82 (1- x) y z)
  531.           (tak46 (1- y) z x)
  532.           (tak62 (1- z) x y)))))
  533. (defun tak86 (x y z) 
  534.   (declare (fixnum x y z))
  535.   (cond ((not (< y x)) z)
  536.     (t (tak87 (tak19 (1- x) y z)
  537.           (tak57 (1- y) z x)
  538.           (tak79 (1- z) x y)))))
  539. (defun tak87 (x y z) 
  540.   (declare (fixnum x y z))
  541.   (cond ((not (< y x)) z)
  542.     (t (tak88 (tak56 (1- x) y z)
  543.           (tak68 (1- y) z x)
  544.           (tak96 (1- z) x y)))))
  545. (defun tak88 (x y z) 
  546.   (declare (fixnum x y z))
  547.   (cond ((not (< y x)) z)
  548.     (t (tak89 (tak93 (1- x) y z)
  549.           (tak79 (1- y) z x)
  550.           (tak13 (1- z) x y)))))
  551. (defun tak89 (x y z) 
  552.   (declare (fixnum x y z))
  553.   (cond ((not (< y x)) z)
  554.     (t (tak90 (tak30 (1- x) y z)
  555.           (tak90 (1- y) z x)
  556.           (tak30 (1- z) x y)))))
  557. (defun tak90 (x y z) 
  558.   (declare (fixnum x y z))
  559.   (cond ((not (< y x)) z)
  560.     (t (tak91 (tak67 (1- x) y z)
  561.           (tak1 (1- y) z x)
  562.           (tak47 (1- z) x y)))))
  563. (defun tak91 (x y z) 
  564.   (declare (fixnum x y z))
  565.   (cond ((not (< y x)) z)
  566.     (t (tak92 (tak4 (1- x) y z)
  567.           (tak12 (1- y) z x)
  568.           (tak64 (1- z) x y)))))
  569. (defun tak92 (x y z) 
  570.   (declare (fixnum x y z))
  571.   (cond ((not (< y x)) z)
  572.     (t (tak93 (tak41 (1- x) y z)
  573.           (tak23 (1- y) z x)
  574.           (tak81 (1- z) x y)))))
  575. (defun tak93 (x y z) 
  576.   (declare (fixnum x y z))
  577.   (cond ((not (< y x)) z)
  578.     (t (tak94 (tak78 (1- x) y z)
  579.           (tak34 (1- y) z x)
  580.           (tak98 (1- z) x y)))))
  581. (defun tak94 (x y z) 
  582.   (declare (fixnum x y z))
  583.   (cond ((not (< y x)) z)
  584.     (t (tak95 (tak15 (1- x) y z)
  585.           (tak45 (1- y) z x)
  586.           (tak15 (1- z) x y)))))
  587. (defun tak95 (x y z) 
  588.   (declare (fixnum x y z))
  589.   (cond ((not (< y x)) z)
  590.     (t (tak96 (tak52 (1- x) y z)
  591.           (tak56 (1- y) z x)
  592.           (tak32 (1- z) x y)))))
  593. (defun tak96 (x y z) 
  594.   (declare (fixnum x y z))
  595.   (cond ((not (< y x)) z)
  596.     (t (tak97 (tak89 (1- x) y z)
  597.           (tak67 (1- y) z x)
  598.           (tak49 (1- z) x y)))))
  599. (defun tak97 (x y z) 
  600.   (declare (fixnum x y z))
  601.   (cond ((not (< y x)) z)
  602.     (t (tak98 (tak26 (1- x) y z)
  603.           (tak78 (1- y) z x)
  604.           (tak66 (1- z) x y)))))
  605. (defun tak98 (x y z) 
  606.   (declare (fixnum x y z))
  607.   (cond ((not (< y x)) z)
  608.     (t (tak99 (tak63 (1- x) y z)
  609.           (tak89 (1- y) z x)
  610.           (tak83 (1- z) x y)))))
  611. (defun tak99 (x y z) 
  612.   (declare (fixnum x y z))
  613.   (cond ((not (< y x)) z)
  614.     (t (tak0 (tak0 (1- x) y z)
  615.          (tak0 (1- y) z x)
  616.          (tak0 (1- z) x y)))))
  617.  
  618. ;;; call:  (tak0 18 12 6)    
  619.  
  620. (run-benchmark "TAKR" '(tak0 18 12 6))
  621.