bts@mcnc.UUCP (Bruce T. Smith) (09/24/85)
I received the following file late in the Summer, with permission to post it to the net. It's a set of Prolog benchmarks, by folks at Tektronix and Portland State University. The times included are for C-Prolog on a Tektronix Magnolia-- as I understand it, a predecessor of the 4404. I've run them-- with minor changes-- with Quintus Prolog, on a VAX 785 at MCNC, and with C-Prolog, UNSW Prolog and MU-Prolog at UNC Chapel Hill, also on a 785. (Both running 4.2bsd UNIX.) For those folks with other Prologs or other machines, I will volunteer to collect the results you mail and post a summary to the net later in the Fall. I'd also like to hear comments on the benchmarks themselves. For that, a discussion on the net is more appropriate. Cut along the dotted line, and enjoy! _____________________________ Bruce T. Smith, MCNC Microelectronics Center of N.C. decvax!mcnc!bts (USENET) P.O. Box 12889, 3021 Cornwallis Rd. bts.mcnc@CSnet-Relay (others) Research Triangle Park, NC 27709 ----------------------------Snicker Snack-------------------------- # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by tekchips!kentb on Mon Jul 1 16:51:23 PDT 1985 # Contents: README benchrun bintree bintree.drv bintree.ot bltsort.drv # bltsort.ot cd cd.drv cd.ot dsearch dsearch.drv dsearch.ot findtext # genlist genlist.drv genlist.ot genrun hanoi hanoi.drv hanoi.ot loop # loop.drv loop.ot memfill memfill.drv memfill.ot nairev nairev.drv # nairev.ot numdata polyeval polyeval.drv polyeval.ot primes primes.drv # primes.ot results.ben rnum rnum.drv rnum.ot snairev snairev.drv sort # sort.drv sort.ot testbintree testbltsort testcd testdsearch testgenlist # testhanoi testloop testmemfill testnairev testpolyeval testprimes # testrnum testsort testwnum wnum wnum.drv wnum.ot echo x - README sed 's/^@//' > "README" <<'@//E*O*F README//' Fellow Prolog hackers- The following files contain a set of Prolog benchmarks that were put together by students at Portland State University, under the supervision of professor Karen Cunningham, and Dana Laursen of Tektronix AI Machines. The classic Prolog benchmarks, such as naive reverse and count down are included, as are additional benchmarks which are designed to test various aspects of Prolog performance. Some of these additional benchmarks were written by students who had little prior exposure to Prolog, and may not be as efficient as possible. We are of two minds on this. As long as everyone runs the benchmarks as written, comparing numbers will be valid, but to the extent that an interpreter or compiler optimizes the "idiomatic" style and penalizes the naive style, such a system will be penalized. In any case, we don't feel like hacking on these any more, so we're sending them out as is. We'd like to publicly thank the AI Machine group at Tektronix (makers of the 4404) for making these benchmarks available, and of course the students of Portland State University for assembling them in the first place. Tektronix, Inc. is providing these benchmarks solely as a service to the Prolog community, and makes no warranty of their fitness, either express or implied, for any purpose whatsoever. That out of the way, about the benchmarks- They were written for C-Prolog, running on a Vax, and have also been run in M-Prolog on the 4404. They test procedure call, the builtin sort routine, file I/O, searching large databases, and primitive arithmetic. To run the benchmarks edit the file benchrun, and put the name of your Prolog where it says "System name". Then, to run the whole suite of tests on a 4.2 Unix machine simply type "genrun". To run a single test, type "benchrun <name>" where <name> is the name of one of the tests. On other operating systems you may have to modify the shell scripts. Any numbers you report should be accompanied with relevant particulars of the environment such as the hardware and load factor. If someone feels like it, it would be interesting to come up with an optimized version of the poorly written benchmarks and see how the performance curves differ. Have at and enjoy-- Kent Beck Dana Laursen Tektronix, Inc. P.O. Box 500, MS 50-662 Beaverton, OR 97077 503/627-6172 (Kent) 503/685-3642 (Dana) uucp: {decvax|allegra}!tektronix!tekchips!{kentb|danal} csnet: {kentb|danal}%tekchips@tektronix.csnet @//E*O*F README// chmod u=rw,g=,o= README echo x - benchrun sed 's/^@//' > "benchrun" <<'@//E*O*F benchrun//' # C-Prolog Benchmark Package # Copyright 1985 by Tektronix, Inc., and Portland State University # Converted by Kent Beck echo $1 echo '!** System name'>$1.ot prolog < $1.drv >>$1.ot findtext $1.ot tmp cat tmp > $1.ot @//E*O*F benchrun// chmod u=rwx,g=,o= benchrun echo x - bintree sed 's/^@//' > "bintree" <<'@//E*O*F bintree//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ bintree(N,T) :- make_list(N,L), make_tree(T,L). make_tree(T,[H|L]) :- create_node(T,H), build_tree(T,L), !. create_node(N,V) :- N =.. [node,V,_,_]. build_tree(_,[]) :- !. build_tree(T,[H|L]) :- insert(T,H), build_tree(T,L). insert(node(C,L,R),V) :- V<C, var(L), create_node(L,V). insert(node(C,L,R),V) :- V<C, nonvar(L), insert(L,V). insert(node(C,L,R),V) :- V>=C, var(R), create_node(R,V). insert(node(C,L,R),V) :- V>=C, nonvar(R), insert(R,V). make_list(0,[]) :- !. make_list(N,[X|L]) :- rnd(100,X), N1 is N-1, make_list(N1,L). seed(13). rnd(R,N) :- retract(seed(S)), N is (S mod R) + 1, Newseed is (125*S+1) mod 4096, asserta(seed(Newseed)), !. @//E*O*F bintree// chmod u=rw,g=,o= bintree echo x - bintree.drv sed 's/^@//' > "bintree.drv" <<'@//E*O*F bintree.drv//' [bintree,testbintree]. halt. @//E*O*F bintree.drv// chmod u=rw,g=,o= bintree.drv echo x - bintree.ot sed 's/^@//' > "bintree.ot" <<'@//E*O*F bintree.ot//' !** Magnolia !** BEGIN BinaryTree BENCHMARK !** Average cputime for 10 bintree is 177.777466 msecs. !** Average cputime for 20 bintree is 311.111328 msecs. !** Average cputime for 30 bintree is 611.111328 msecs. !** Average cputime for 40 bintree is 833.330566 msecs. !** Average cputime for 50 bintree is 1150.000977 msecs. !** END BinaryTree BENCHMARK @//E*O*F bintree.ot// chmod u=rw,g=,o= bintree.ot echo x - bltsort.drv sed 's/^@//' > "bltsort.drv" <<'@//E*O*F bltsort.drv//' [testbltsort]. halt. @//E*O*F bltsort.drv// chmod u=rw,g=,o= bltsort.drv echo x - bltsort.ot sed 's/^@//' > "bltsort.ot" <<'@//E*O*F bltsort.ot//' !** Magnolia !** BEGIN BuiltinSort BENCHMARK !** Average cputime for 10 sort is 150.000122 msecs. !** Average cputime for 20 sort is 388.888184 msecs. !** Average cputime for 30 sort is 566.666016 msecs. !** Average cputime for 40 sort is 849.999512 msecs. !** Average cputime for 50 sort is 1094.443359 msecs. !** END BuiltinSort BENCHMARK @//E*O*F bltsort.ot// chmod u=rw,g=,o= bltsort.ot echo x - cd sed 's/^@//' > "cd" <<'@//E*O*F cd//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* cd(Up,Down) counts down from Up to Down */ cd(X,X). cd(Up,Down) :- X is Up-1, cd(X,Down). @//E*O*F cd// chmod u=rw,g=,o= cd echo x - cd.drv sed 's/^@//' > "cd.drv" <<'@//E*O*F cd.drv//' [cd,testcd]. halt. @//E*O*F cd.drv// chmod u=rw,g=,o= cd.drv echo x - cd.ot sed 's/^@//' > "cd.ot" <<'@//E*O*F cd.ot//' !** Magnolia !** BEGIN CountDown BENCHMARK !** Average cputime for 100 cd is 183.333252 msecs. !** Average cputime for 200 cd is 355.555420 msecs. !** Average cputime for 300 cd is 499.999756 msecs. !** Average cputime for 400 cd is 744.444336 msecs. !** Average cputime for 500 cd is 844.443848 msecs. !** END CountDown BENCHMARK @//E*O*F cd.ot// chmod u=rw,g=,o= cd.ot echo x - dsearch sed 's/^@//' > "dsearch" <<'@//E*O*F dsearch//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ dsearch(N) :- N1 is N-1, search_text(N1). search_text(0). search_text(1). search_text(2). search_text(3). search_text(4). search_text(5). search_text(6). search_text(7). search_text(8). search_text(9). search_text(10). search_text(11). search_text(12). search_text(13). search_text(14). search_text(15). search_text(16). search_text(17). search_text(18). search_text(19). search_text(20). search_text(21). search_text(22). search_text(23). search_text(24). search_text(25). search_text(26). search_text(27). search_text(28). search_text(29). search_text(30). search_text(31). search_text(32). search_text(33). search_text(34). search_text(35). search_text(36). search_text(37). search_text(38). search_text(39). search_text(40). search_text(41). search_text(42). search_text(43). search_text(44). search_text(45). search_text(46). search_text(47). search_text(48). search_text(49). search_text(50). search_text(51). search_text(52). search_text(53). search_text(54). search_text(55). search_text(56). search_text(57). search_text(58). search_text(59). search_text(60). search_text(61). search_text(62). search_text(63). search_text(64). search_text(65). search_text(66). search_text(67). search_text(68). search_text(69). search_text(70). search_text(71). search_text(72). search_text(73). search_text(74). search_text(75). search_text(76). search_text(77). search_text(78). search_text(79). search_text(80). search_text(81). search_text(82). search_text(83). search_text(84). search_text(85). search_text(86). search_text(87). search_text(88). search_text(89). search_text(90). search_text(91). search_text(92). search_text(93). search_text(94). search_text(95). search_text(96). search_text(97). search_text(98). search_text(99). search_text(100). search_text(101). search_text(102). search_text(103). search_text(104). search_text(105). search_text(106). search_text(107). search_text(108). search_text(109). search_text(110). search_text(111). search_text(112). search_text(113). search_text(114). search_text(115). search_text(116). search_text(117). search_text(118). search_text(119). search_text(120). search_text(121). search_text(122). search_text(123). search_text(124). search_text(125). search_text(126). search_text(127). search_text(128). search_text(129). search_text(130). search_text(131). search_text(132). search_text(133). search_text(134). search_text(135). search_text(136). search_text(137). search_text(138). search_text(139). search_text(140). search_text(141). search_text(142). search_text(143). search_text(144). search_text(145). search_text(146). search_text(147). search_text(148). search_text(149). search_text(150). search_text(151). search_text(152). search_text(153). search_text(154). search_text(155). search_text(156). search_text(157). search_text(158). search_text(159). search_text(160). search_text(161). search_text(162). search_text(163). search_text(164). search_text(165). search_text(166). search_text(167). search_text(168). search_text(169). search_text(170). search_text(171). search_text(172). search_text(173). search_text(174). search_text(175). search_text(176). search_text(177). search_text(178). search_text(179). search_text(180). search_text(181). search_text(182). search_text(183). search_text(184). search_text(185). search_text(186). search_text(187). search_text(188). search_text(189). search_text(190). search_text(191). search_text(192). search_text(193). search_text(194). search_text(195). search_text(196). search_text(197). search_text(198). search_text(199). search_text(200). search_text(201). search_text(202). search_text(203). search_text(204). search_text(205). search_text(206). search_text(207). search_text(208). search_text(209). search_text(210). search_text(211). search_text(212). search_text(213). search_text(214). search_text(215). search_text(216). search_text(217). search_text(218). search_text(219). search_text(220). search_text(221). search_text(222). search_text(223). search_text(224). search_text(225). search_text(226). search_text(227). search_text(228). search_text(229). search_text(230). search_text(231). search_text(232). search_text(233). search_text(234). search_text(235). search_text(236). search_text(237). search_text(238). search_text(239). search_text(240). search_text(241). search_text(242). search_text(243). search_text(244). search_text(245). search_text(246). search_text(247). search_text(248). search_text(249). search_text(250). search_text(251). search_text(252). search_text(253). search_text(254). search_text(255). search_text(256). search_text(257). search_text(258). search_text(259). search_text(260). search_text(261). search_text(262). search_text(263). search_text(264). search_text(265). search_text(266). search_text(267). search_text(268). search_text(269). search_text(270). search_text(271). search_text(272). search_text(273). search_text(274). search_text(275). search_text(276). search_text(277). search_text(278). search_text(279). search_text(280). search_text(281). search_text(282). search_text(283). search_text(284). search_text(285). search_text(286). search_text(287). search_text(288). search_text(289). search_text(290). search_text(291). search_text(292). search_text(293). search_text(294). search_text(295). search_text(296). search_text(297). search_text(298). search_text(299). search_text(300). search_text(301). search_text(302). search_text(303). search_text(304). search_text(305). search_text(306). search_text(307). search_text(308). search_text(309). search_text(310). search_text(311). search_text(312). search_text(313). search_text(314). search_text(315). search_text(316). search_text(317). search_text(318). search_text(319). search_text(320). search_text(321). search_text(322). search_text(323). search_text(324). search_text(325). search_text(326). search_text(327). search_text(328). search_text(329). search_text(330). search_text(331). search_text(332). search_text(333). search_text(334). search_text(335). search_text(336). search_text(337). search_text(338). search_text(339). search_text(340). search_text(341). search_text(342). search_text(343). search_text(344). search_text(345). search_text(346). search_text(347). search_text(348). search_text(349). search_text(350). search_text(351). search_text(352). search_text(353). search_text(354). search_text(355). search_text(356). search_text(357). search_text(358). search_text(359). search_text(360). search_text(361). search_text(362). search_text(363). search_text(364). search_text(365). search_text(366). search_text(367). search_text(368). search_text(369). search_text(370). search_text(371). search_text(372). search_text(373). search_text(374). search_text(375). search_text(376). search_text(377). search_text(378). search_text(379). search_text(380). search_text(381). search_text(382). search_text(383). search_text(384). search_text(385). search_text(386). search_text(387). search_text(388). search_text(389). search_text(390). search_text(391). search_text(392). search_text(393). search_text(394). search_text(395). search_text(396). search_text(397). search_text(398). search_text(399). search_text(400). search_text(401). search_text(402). search_text(403). search_text(404). search_text(405). search_text(406). search_text(407). search_text(408). search_text(409). search_text(410). search_text(411). search_text(412). search_text(413). search_text(414). search_text(415). search_text(416). search_text(417). search_text(418). search_text(419). search_text(420). search_text(421). search_text(422). search_text(423). search_text(424). search_text(425). search_text(426). search_text(427). search_text(428). search_text(429). search_text(430). search_text(431). search_text(432). search_text(433). search_text(434). search_text(435). search_text(436). search_text(437). search_text(438). search_text(439). search_text(440). search_text(441). search_text(442). search_text(443). search_text(444). search_text(445). search_text(446). search_text(447). search_text(448). search_text(449). search_text(450). search_text(451). search_text(452). search_text(453). search_text(454). search_text(455). search_text(456). search_text(457). search_text(458). search_text(459). search_text(460). search_text(461). search_text(462). search_text(463). search_text(464). search_text(465). search_text(466). search_text(467). search_text(468). search_text(469). search_text(470). search_text(471). search_text(472). search_text(473). search_text(474). search_text(475). search_text(476). search_text(477). search_text(478). search_text(479). search_text(480). search_text(481). search_text(482). search_text(483). search_text(484). search_text(485). search_text(486). search_text(487). search_text(488). search_text(489). search_text(490). search_text(491). search_text(492). search_text(493). search_text(494). search_text(495). search_text(496). search_text(497). search_text(498). search_text(499). search_text(500). search_text(501). search_text(502). search_text(503). search_text(504). search_text(505). search_text(506). search_text(507). search_text(508). search_text(509). search_text(510). search_text(511). search_text(512). search_text(513). search_text(514). search_text(515). search_text(516). search_text(517). search_text(518). search_text(519). search_text(520). search_text(521). search_text(522). search_text(523). search_text(524). search_text(525). search_text(526). search_text(527). search_text(528). search_text(529). search_text(530). search_text(531). search_text(532). search_text(533). search_text(534). search_text(535). search_text(536). search_text(537). search_text(538). search_text(539). search_text(540). search_text(541). search_text(542). search_text(543). search_text(544). search_text(545). search_text(546). search_text(547). search_text(548). search_text(549). search_text(550). search_text(551). search_text(552). search_text(553). search_text(554). search_text(555). search_text(556). search_text(557). search_text(558). search_text(559). search_text(560). search_text(561). search_text(562). search_text(563). search_text(564). search_text(565). search_text(566). search_text(567). search_text(568). search_text(569). search_text(570). search_text(571). search_text(572). search_text(573). search_text(574). search_text(575). search_text(576). search_text(577). search_text(578). search_text(579). search_text(580). search_text(581). search_text(582). search_text(583). search_text(584). search_text(585). search_text(586). search_text(587). search_text(588). search_text(589). search_text(590). search_text(591). search_text(592). search_text(593). search_text(594). search_text(595). search_text(596). search_text(597). search_text(598). search_text(599). search_text(600). search_text(601). search_text(602). search_text(603). search_text(604). search_text(605). search_text(606). search_text(607). search_text(608). search_text(609). search_text(610). search_text(611). search_text(612). search_text(613). search_text(614). search_text(615). search_text(616). search_text(617). search_text(618). search_text(619). search_text(620). search_text(621). search_text(622). search_text(623). search_text(624). search_text(625). search_text(626). search_text(627). search_text(628). search_text(629). search_text(630). search_text(631). search_text(632). search_text(633). search_text(634). search_text(635). search_text(636). search_text(637). search_text(638). search_text(639). search_text(640). search_text(641). search_text(642). search_text(643). search_text(644). search_text(645). search_text(646). search_text(647). search_text(648). search_text(649). search_text(650). search_text(651). search_text(652). search_text(653). search_text(654). search_text(655). search_text(656). search_text(657). search_text(658). search_text(659). search_text(660). search_text(661). search_text(662). search_text(663). search_text(664). search_text(665). search_text(666). search_text(667). search_text(668). search_text(669). search_text(670). search_text(671). search_text(672). search_text(673). search_text(674). search_text(675). search_text(676). search_text(677). search_text(678). search_text(679). search_text(680). search_text(681). search_text(682). search_text(683). search_text(684). search_text(685). search_text(686). search_text(687). search_text(688). search_text(689). search_text(690). search_text(691). search_text(692). search_text(693). search_text(694). search_text(695). search_text(696). search_text(697). search_text(698). search_text(699). search_text(700). search_text(701). search_text(702). search_text(703). search_text(704). search_text(705). search_text(706). search_text(707). search_text(708). search_text(709). search_text(710). search_text(711). search_text(712). search_text(713). search_text(714). search_text(715). search_text(716). search_text(717). search_text(718). search_text(719). search_text(720). search_text(721). search_text(722). search_text(723). search_text(724). search_text(725). search_text(726). search_text(727). search_text(728). search_text(729). search_text(730). search_text(731). search_text(732). search_text(733). search_text(734). search_text(735). search_text(736). search_text(737). search_text(738). search_text(739). search_text(740). search_text(741). search_text(742). search_text(743). search_text(744). search_text(745). search_text(746). search_text(747). search_text(748). search_text(749). search_text(750). search_text(751). search_text(752). search_text(753). search_text(754). search_text(755). search_text(756). search_text(757). search_text(758). search_text(759). search_text(760). search_text(761). search_text(762). search_text(763). search_text(764). search_text(765). search_text(766). search_text(767). search_text(768). search_text(769). search_text(770). search_text(771). search_text(772). search_text(773). search_text(774). search_text(775). search_text(776). search_text(777). search_text(778). search_text(779). search_text(780). search_text(781). search_text(782). search_text(783). search_text(784). search_text(785). search_text(786). search_text(787). search_text(788). search_text(789). search_text(790). search_text(791). search_text(792). search_text(793). search_text(794). search_text(795). search_text(796). search_text(797). search_text(798). search_text(799). search_text(800). search_text(801). search_text(802). search_text(803). search_text(804). search_text(805). search_text(806). search_text(807). search_text(808). search_text(809). search_text(810). search_text(811). search_text(812). search_text(813). search_text(814). search_text(815). search_text(816). search_text(817). search_text(818). search_text(819). search_text(820). search_text(821). search_text(822). search_text(823). search_text(824). search_text(825). search_text(826). search_text(827). search_text(828). search_text(829). search_text(830). search_text(831). search_text(832). search_text(833). search_text(834). search_text(835). search_text(836). search_text(837). search_text(838). search_text(839). search_text(840). search_text(841). search_text(842). search_text(843). search_text(844). search_text(845). search_text(846). search_text(847). search_text(848). search_text(849). search_text(850). search_text(851). search_text(852). search_text(853). search_text(854). search_text(855). search_text(856). search_text(857). search_text(858). search_text(859). search_text(860). search_text(861). search_text(862). search_text(863). search_text(864). search_text(865). search_text(866). search_text(867). search_text(868). search_text(869). search_text(870). search_text(871). search_text(872). search_text(873). search_text(874). search_text(875). search_text(876). search_text(877). search_text(878). search_text(879). search_text(880). search_text(881). search_text(882). search_text(883). search_text(884). search_text(885). search_text(886). search_text(887). search_text(888). search_text(889). search_text(890). search_text(891). search_text(892). search_text(893). search_text(894). search_text(895). search_text(896). search_text(897). search_text(898). search_text(899). search_text(900). search_text(901). search_text(902). search_text(903). search_text(904). search_text(905). search_text(906). search_text(907). search_text(908). search_text(909). search_text(910). search_text(911). search_text(912). search_text(913). search_text(914). search_text(915). search_text(916). search_text(917). search_text(918). search_text(919). search_text(920). search_text(921). search_text(922). search_text(923). search_text(924). search_text(925). search_text(926). search_text(927). search_text(928). search_text(929). search_text(930). search_text(931). search_text(932). search_text(933). search_text(934). search_text(935). search_text(936). search_text(937). search_text(938). search_text(939). search_text(940). search_text(941). search_text(942). search_text(943). search_text(944). search_text(945). search_text(946). search_text(947). search_text(948). search_text(949). search_text(950). search_text(951). search_text(952). search_text(953). search_text(954). search_text(955). search_text(956). search_text(957). search_text(958). search_text(959). search_text(960). search_text(961). search_text(962). search_text(963). search_text(964). search_text(965). search_text(966). search_text(967). search_text(968). search_text(969). search_text(970). search_text(971). search_text(972). search_text(973). search_text(974). search_text(975). search_text(976). search_text(977). search_text(978). search_text(979). search_text(980). search_text(981). search_text(982). search_text(983). search_text(984). search_text(985). search_text(986). search_text(987). search_text(988). search_text(989). search_text(990). search_text(991). search_text(992). search_text(993). search_text(994). search_text(995). search_text(996). search_text(997). search_text(998). search_text(999). search_text(1000). search_text(1001). search_text(1002). search_text(1003). search_text(1004). search_text(1005). search_text(1006). search_text(1007). search_text(1008). search_text(1009). search_text(1010). search_text(1011). search_text(1012). search_text(1013). search_text(1014). search_text(1015). search_text(1016). search_text(1017). search_text(1018). search_text(1019). search_text(1020). search_text(1021). search_text(1022). search_text(1023). search_text(1024). search_text(1025). search_text(1026). search_text(1027). search_text(1028). search_text(1029). search_text(1030). search_text(1031). search_text(1032). search_text(1033). search_text(1034). search_text(1035). search_text(1036). search_text(1037). search_text(1038). search_text(1039). search_text(1040). search_text(1041). search_text(1042). search_text(1043). search_text(1044). search_text(1045). search_text(1046). search_text(1047). search_text(1048). search_text(1049). search_text(1050). search_text(1051). search_text(1052). search_text(1053). search_text(1054). search_text(1055). search_text(1056). search_text(1057). search_text(1058). search_text(1059). search_text(1060). search_text(1061). search_text(1062). search_text(1063). search_text(1064). search_text(1065). search_text(1066). search_text(1067). search_text(1068). search_text(1069). search_text(1070). search_text(1071). search_text(1072). search_text(1073). search_text(1074). search_text(1075). search_text(1076). search_text(1077). search_text(1078). search_text(1079). search_text(1080). search_text(1081). search_text(1082). search_text(1083). search_text(1084). search_text(1085). search_text(1086). search_text(1087). search_text(1088). search_text(1089). search_text(1090). search_text(1091). search_text(1092). search_text(1093). search_text(1094). search_text(1095). search_text(1096). search_text(1097). search_text(1098). search_text(1099). search_text(1100). search_text(1101). search_text(1102). search_text(1103). search_text(1104). search_text(1105). search_text(1106). search_text(1107). search_text(1108). search_text(1109). search_text(1110). search_text(1111). search_text(1112). search_text(1113). search_text(1114). search_text(1115). search_text(1116). search_text(1117). search_text(1118). search_text(1119). search_text(1120). search_text(1121). search_text(1122). search_text(1123). search_text(1124). search_text(1125). search_text(1126). search_text(1127). search_text(1128). search_text(1129). search_text(1130). search_text(1131). search_text(1132). search_text(1133). search_text(1134). search_text(1135). search_text(1136). search_text(1137). search_text(1138). search_text(1139). search_text(1140). search_text(1141). search_text(1142). search_text(1143). search_text(1144). search_text(1145). search_text(1146). search_text(1147). search_text(1148). search_text(1149). search_text(1150). search_text(1151). search_text(1152). search_text(1153). search_text(1154). search_text(1155). search_text(1156). search_text(1157). search_text(1158). search_text(1159). search_text(1160). search_text(1161). search_text(1162). search_text(1163). search_text(1164). search_text(1165). search_text(1166). search_text(1167). search_text(1168). search_text(1169). search_text(1170). search_text(1171). search_text(1172). search_text(1173). search_text(1174). search_text(1175). search_text(1176). search_text(1177). search_text(1178). search_text(1179). search_text(1180). search_text(1181). search_text(1182). search_text(1183). search_text(1184). search_text(1185). search_text(1186). search_text(1187). search_text(1188). search_text(1189). search_text(1190). search_text(1191). search_text(1192). search_text(1193). search_text(1194). search_text(1195). search_text(1196). search_text(1197). search_text(1198). search_text(1199). search_text(1200). search_text(1201). search_text(1202). search_text(1203). search_text(1204). search_text(1205). search_text(1206). search_text(1207). search_text(1208). search_text(1209). search_text(1210). search_text(1211). search_text(1212). search_text(1213). search_text(1214). search_text(1215). search_text(1216). search_text(1217). search_text(1218). search_text(1219). search_text(1220). search_text(1221). search_text(1222). search_text(1223). search_text(1224). search_text(1225). search_text(1226). search_text(1227). search_text(1228). search_text(1229). search_text(1230). search_text(1231). search_text(1232). search_text(1233). search_text(1234). search_text(1235). search_text(1236). search_text(1237). search_text(1238). search_text(1239). search_text(1240). search_text(1241). search_text(1242). search_text(1243). search_text(1244). search_text(1245). search_text(1246). search_text(1247). search_text(1248). search_text(1249). search_text(1250). search_text(1251). search_text(1252). search_text(1253). search_text(1254). search_text(1255). search_text(1256). search_text(1257). search_text(1258). search_text(1259). search_text(1260). search_text(1261). search_text(1262). search_text(1263). search_text(1264). search_text(1265). search_text(1266). search_text(1267). search_text(1268). search_text(1269). search_text(1270). search_text(1271). search_text(1272). search_text(1273). search_text(1274). search_text(1275). search_text(1276). search_text(1277). search_text(1278). search_text(1279). search_text(1280). search_text(1281). search_text(1282). search_text(1283). search_text(1284). search_text(1285). search_text(1286). search_text(1287). search_text(1288). search_text(1289). search_text(1290). search_text(1291). search_text(1292). search_text(1293). search_text(1294). search_text(1295). search_text(1296). search_text(1297). search_text(1298). search_text(1299). search_text(1300). search_text(1301). search_text(1302). search_text(1303). search_text(1304). search_text(1305). search_text(1306). search_text(1307). search_text(1308). search_text(1309). search_text(1310). search_text(1311). search_text(1312). search_text(1313). search_text(1314). search_text(1315). search_text(1316). search_text(1317). search_text(1318). search_text(1319). search_text(1320). search_text(1321). search_text(1322). search_text(1323). search_text(1324). search_text(1325). search_text(1326). search_text(1327). search_text(1328). search_text(1329). search_text(1330). search_text(1331). search_text(1332). search_text(1333). search_text(1334). search_text(1335). search_text(1336). search_text(1337). search_text(1338). search_text(1339). search_text(1340). search_text(1341). search_text(1342). search_text(1343). search_text(1344). search_text(1345). search_text(1346). search_text(1347). search_text(1348). search_text(1349). search_text(1350). search_text(1351). search_text(1352). search_text(1353). search_text(1354). search_text(1355). search_text(1356). search_text(1357). search_text(1358). search_text(1359). search_text(1360). search_text(1361). search_text(1362). search_text(1363). search_text(1364). search_text(1365). search_text(1366). search_text(1367). search_text(1368). search_text(1369). search_text(1370). search_text(1371). search_text(1372). search_text(1373). search_text(1374). search_text(1375). search_text(1376). search_text(1377). search_text(1378). search_text(1379). search_text(1380). search_text(1381). search_text(1382). search_text(1383). search_text(1384). search_text(1385). search_text(1386). search_text(1387). search_text(1388). search_text(1389). search_text(1390). search_text(1391). search_text(1392). search_text(1393). search_text(1394). search_text(1395). search_text(1396). search_text(1397). search_text(1398). search_text(1399). search_text(1400). search_text(1401). search_text(1402). search_text(1403). search_text(1404). search_text(1405). search_text(1406). search_text(1407). search_text(1408). search_text(1409). search_text(1410). search_text(1411). search_text(1412). search_text(1413). search_text(1414). search_text(1415). search_text(1416). search_text(1417). search_text(1418). search_text(1419). search_text(1420). search_text(1421). search_text(1422). search_text(1423). search_text(1424). search_text(1425). search_text(1426). search_text(1427). search_text(1428). search_text(1429). search_text(1430). search_text(1431). search_text(1432). search_text(1433). search_text(1434). search_text(1435). search_text(1436). search_text(1437). search_text(1438). search_text(1439). search_text(1440). search_text(1441). search_text(1442). search_text(1443). search_text(1444). search_text(1445). search_text(1446). search_text(1447). search_text(1448). search_text(1449). search_text(1450). search_text(1451). search_text(1452). search_text(1453). search_text(1454). search_text(1455). search_text(1456). search_text(1457). search_text(1458). search_text(1459). search_text(1460). search_text(1461). search_text(1462). search_text(1463). search_text(1464). search_text(1465). search_text(1466). search_text(1467). search_text(1468). search_text(1469). search_text(1470). search_text(1471). search_text(1472). search_text(1473). search_text(1474). search_text(1475). search_text(1476). search_text(1477). search_text(1478). search_text(1479). search_text(1480). search_text(1481). search_text(1482). search_text(1483). search_text(1484). search_text(1485). search_text(1486). search_text(1487). search_text(1488). search_text(1489). search_text(1490). search_text(1491). search_text(1492). search_text(1493). search_text(1494). search_text(1495). search_text(1496). search_text(1497). search_text(1498). search_text(1499). search_text(1500). search_text(1501). search_text(1502). search_text(1503). search_text(1504). search_text(1505). search_text(1506). search_text(1507). search_text(1508). search_text(1509). search_text(1510). search_text(1511). search_text(1512). search_text(1513). search_text(1514). search_text(1515). search_text(1516). search_text(1517). search_text(1518). search_text(1519). search_text(1520). search_text(1521). search_text(1522). search_text(1523). search_text(1524). search_text(1525). search_text(1526). search_text(1527). search_text(1528). search_text(1529). search_text(1530). search_text(1531). search_text(1532). search_text(1533). search_text(1534). search_text(1535). search_text(1536). search_text(1537). search_text(1538). search_text(1539). search_text(1540). search_text(1541). search_text(1542). search_text(1543). search_text(1544). search_text(1545). search_text(1546). search_text(1547). search_text(1548). search_text(1549). search_text(1550). search_text(1551). search_text(1552). search_text(1553). search_text(1554). search_text(1555). search_text(1556). search_text(1557). search_text(1558). search_text(1559). search_text(1560). search_text(1561). search_text(1562). search_text(1563). search_text(1564). search_text(1565). search_text(1566). search_text(1567). search_text(1568). search_text(1569). search_text(1570). search_text(1571). search_text(1572). search_text(1573). search_text(1574). search_text(1575). search_text(1576). search_text(1577). search_text(1578). search_text(1579). search_text(1580). search_text(1581). search_text(1582). search_text(1583). search_text(1584). search_text(1585). search_text(1586). search_text(1587). search_text(1588). search_text(1589). search_text(1590). search_text(1591). search_text(1592). search_text(1593). search_text(1594). search_text(1595). search_text(1596). search_text(1597). search_text(1598). search_text(1599). search_text(1600). search_text(1601). search_text(1602). search_text(1603). search_text(1604). search_text(1605). search_text(1606). search_text(1607). search_text(1608). search_text(1609). search_text(1610). search_text(1611). search_text(1612). search_text(1613). search_text(1614). search_text(1615). search_text(1616). search_text(1617). search_text(1618). search_text(1619). search_text(1620). search_text(1621). search_text(1622). search_text(1623). search_text(1624). search_text(1625). search_text(1626). search_text(1627). search_text(1628). search_text(1629). search_text(1630). search_text(1631). search_text(1632). search_text(1633). search_text(1634). search_text(1635). search_text(1636). search_text(1637). search_text(1638). search_text(1639). search_text(1640). search_text(1641). search_text(1642). search_text(1643). search_text(1644). search_text(1645). search_text(1646). search_text(1647). search_text(1648). search_text(1649). search_text(1650). search_text(1651). search_text(1652). search_text(1653). search_text(1654). search_text(1655). search_text(1656). search_text(1657). search_text(1658). search_text(1659). search_text(1660). search_text(1661). search_text(1662). search_text(1663). search_text(1664). search_text(1665). search_text(1666). search_text(1667). search_text(1668). search_text(1669). search_text(1670). search_text(1671). search_text(1672). search_text(1673). search_text(1674). search_text(1675). search_text(1676). search_text(1677). search_text(1678). search_text(1679). search_text(1680). search_text(1681). search_text(1682). search_text(1683). search_text(1684). search_text(1685). search_text(1686). search_text(1687). search_text(1688). search_text(1689). search_text(1690). search_text(1691). search_text(1692). search_text(1693). search_text(1694). search_text(1695). search_text(1696). search_text(1697). search_text(1698). search_text(1699). search_text(1700). search_text(1701). search_text(1702). search_text(1703). search_text(1704). search_text(1705). search_text(1706). search_text(1707). search_text(1708). search_text(1709). search_text(1710). search_text(1711). search_text(1712). search_text(1713). search_text(1714). search_text(1715). search_text(1716). search_text(1717). search_text(1718). search_text(1719). search_text(1720). search_text(1721). search_text(1722). search_text(1723). search_text(1724). search_text(1725). search_text(1726). search_text(1727). search_text(1728). search_text(1729). search_text(1730). search_text(1731). search_text(1732). search_text(1733). search_text(1734). search_text(1735). search_text(1736). search_text(1737). search_text(1738). search_text(1739). search_text(1740). search_text(1741). search_text(1742). search_text(1743). search_text(1744). search_text(1745). search_text(1746). search_text(1747). search_text(1748). search_text(1749). search_text(1750). search_text(1751). search_text(1752). search_text(1753). search_text(1754). search_text(1755). search_text(1756). search_text(1757). search_text(1758). search_text(1759). search_text(1760). search_text(1761). search_text(1762). search_text(1763). search_text(1764). search_text(1765). search_text(1766). search_text(1767). search_text(1768). search_text(1769). search_text(1770). search_text(1771). search_text(1772). search_text(1773). search_text(1774). search_text(1775). search_text(1776). search_text(1777). search_text(1778). search_text(1779). search_text(1780). search_text(1781). search_text(1782). search_text(1783). search_text(1784). search_text(1785). search_text(1786). search_text(1787). search_text(1788). search_text(1789). search_text(1790). search_text(1791). search_text(1792). search_text(1793). search_text(1794). search_text(1795). search_text(1796). search_text(1797). search_text(1798). search_text(1799). search_text(1800). search_text(1801). search_text(1802). search_text(1803). search_text(1804). search_text(1805). search_text(1806). search_text(1807). search_text(1808). search_text(1809). search_text(1810). search_text(1811). search_text(1812). search_text(1813). search_text(1814). search_text(1815). search_text(1816). search_text(1817). search_text(1818). search_text(1819). search_text(1820). search_text(1821). search_text(1822). search_text(1823). search_text(1824). search_text(1825). search_text(1826). search_text(1827). search_text(1828). search_text(1829). search_text(1830). search_text(1831). search_text(1832). search_text(1833). search_text(1834). search_text(1835). search_text(1836). search_text(1837). search_text(1838). search_text(1839). search_text(1840). search_text(1841). search_text(1842). search_text(1843). search_text(1844). search_text(1845). search_text(1846). search_text(1847). search_text(1848). search_text(1849). search_text(1850). search_text(1851). search_text(1852). search_text(1853). search_text(1854). search_text(1855). search_text(1856). search_text(1857). search_text(1858). search_text(1859). search_text(1860). search_text(1861). search_text(1862). search_text(1863). search_text(1864). search_text(1865). search_text(1866). search_text(1867). search_text(1868). search_text(1869). search_text(1870). search_text(1871). search_text(1872). search_text(1873). search_text(1874). search_text(1875). search_text(1876). search_text(1877). search_text(1878). search_text(1879). search_text(1880). search_text(1881). search_text(1882). search_text(1883). search_text(1884). search_text(1885). search_text(1886). search_text(1887). search_text(1888). search_text(1889). search_text(1890). search_text(1891). search_text(1892). search_text(1893). search_text(1894). search_text(1895). search_text(1896). search_text(1897). search_text(1898). search_text(1899). search_text(1900). search_text(1901). search_text(1902). search_text(1903). search_text(1904). search_text(1905). search_text(1906). search_text(1907). search_text(1908). search_text(1909). search_text(1910). search_text(1911). search_text(1912). search_text(1913). search_text(1914). search_text(1915). search_text(1916). search_text(1917). search_text(1918). search_text(1919). search_text(1920). search_text(1921). search_text(1922). search_text(1923). search_text(1924). search_text(1925). search_text(1926). search_text(1927). search_text(1928). search_text(1929). search_text(1930). search_text(1931). search_text(1932). search_text(1933). search_text(1934). search_text(1935). search_text(1936). search_text(1937). search_text(1938). search_text(1939). search_text(1940). search_text(1941). search_text(1942). search_text(1943). search_text(1944). search_text(1945). search_text(1946). search_text(1947). search_text(1948). search_text(1949). search_text(1950). search_text(1951). search_text(1952). search_text(1953). search_text(1954). search_text(1955). search_text(1956). search_text(1957). search_text(1958). search_text(1959). search_text(1960). search_text(1961). search_text(1962). search_text(1963). search_text(1964). search_text(1965). search_text(1966). search_text(1967). search_text(1968). search_text(1969). search_text(1970). search_text(1971). search_text(1972). search_text(1973). search_text(1974). search_text(1975). search_text(1976). search_text(1977). search_text(1978). search_text(1979). search_text(1980). search_text(1981). search_text(1982). search_text(1983). search_text(1984). search_text(1985). search_text(1986). search_text(1987). search_text(1988). search_text(1989). search_text(1990). search_text(1991). search_text(1992). search_text(1993). search_text(1994). search_text(1995). search_text(1996). search_text(1997). search_text(1998). search_text(1999). search_text(2000). search_text(2001). search_text(2002). search_text(2003). search_text(2004). search_text(2005). search_text(2006). search_text(2007). search_text(2008). search_text(2009). search_text(2010). search_text(2011). search_text(2012). search_text(2013). search_text(2014). search_text(2015). search_text(2016). search_text(2017). search_text(2018). search_text(2019). search_text(2020). search_text(2021). search_text(2022). search_text(2023). search_text(2024). search_text(2025). search_text(2026). search_text(2027). search_text(2028). search_text(2029). search_text(2030). search_text(2031). search_text(2032). search_text(2033). search_text(2034). search_text(2035). search_text(2036). search_text(2037). search_text(2038). search_text(2039). search_text(2040). search_text(2041). search_text(2042). search_text(2043). search_text(2044). search_text(2045). search_text(2046). search_text(2047). search_text(2048). search_text(2049). search_text(2050). search_text(2051). search_text(2052). search_text(2053). search_text(2054). search_text(2055). search_text(2056). search_text(2057). search_text(2058). search_text(2059). search_text(2060). search_text(2061). search_text(2062). search_text(2063). search_text(2064). search_text(2065). search_text(2066). search_text(2067). search_text(2068). search_text(2069). search_text(2070). search_text(2071). search_text(2072). search_text(2073). search_text(2074). search_text(2075). search_text(2076). search_text(2077). search_text(2078). search_text(2079). search_text(2080). search_text(2081). search_text(2082). search_text(2083). search_text(2084). search_text(2085). search_text(2086). search_text(2087). search_text(2088). search_text(2089). search_text(2090). search_text(2091). search_text(2092). search_text(2093). search_text(2094). search_text(2095). search_text(2096). search_text(2097). search_text(2098). search_text(2099). search_text(2100). search_text(2101). search_text(2102). search_text(2103). search_text(2104). search_text(2105). search_text(2106). search_text(2107). search_text(2108). search_text(2109). search_text(2110). search_text(2111). search_text(2112). search_text(2113). search_text(2114). search_text(2115). search_text(2116). search_text(2117). search_text(2118). search_text(2119). search_text(2120). search_text(2121). search_text(2122). search_text(2123). search_text(2124). search_text(2125). search_text(2126). search_text(2127). search_text(2128). search_text(2129). search_text(2130). search_text(2131). search_text(2132). search_text(2133). search_text(2134). search_text(2135). search_text(2136). search_text(2137). search_text(2138). search_text(2139). search_text(2140). search_text(2141). search_text(2142). search_text(2143). search_text(2144). search_text(2145). search_text(2146). search_text(2147). search_text(2148). search_text(2149). search_text(2150). search_text(2151). search_text(2152). search_text(2153). search_text(2154). search_text(2155). search_text(2156). search_text(2157). search_text(2158). search_text(2159). search_text(2160). search_text(2161). search_text(2162). search_text(2163). search_text(2164). search_text(2165). search_text(2166). search_text(2167). search_text(2168). search_text(2169). search_text(2170). search_text(2171). search_text(2172). search_text(2173). search_text(2174). search_text(2175). search_text(2176). search_text(2177). search_text(2178). search_text(2179). search_text(2180). search_text(2181). search_text(2182). search_text(2183). search_text(2184). search_text(2185). search_text(2186). search_text(2187). search_text(2188). search_text(2189). search_text(2190). search_text(2191). search_text(2192). search_text(2193). search_text(2194). search_text(2195). search_text(2196). search_text(2197). search_text(2198). search_text(2199). search_text(2200). search_text(2201). search_text(2202). search_text(2203). search_text(2204). search_text(2205). search_text(2206). search_text(2207). search_text(2208). search_text(2209). search_text(2210). search_text(2211). search_text(2212). search_text(2213). search_text(2214). search_text(2215). search_text(2216). search_text(2217). search_text(2218). search_text(2219). search_text(2220). search_text(2221). search_text(2222). search_text(2223). search_text(2224). search_text(2225). search_text(2226). search_text(2227). search_text(2228). search_text(2229). search_text(2230). search_text(2231). search_text(2232). search_text(2233). search_text(2234). search_text(2235). search_text(2236). search_text(2237). search_text(2238). search_text(2239). search_text(2240). search_text(2241). search_text(2242). search_text(2243). search_text(2244). search_text(2245). search_text(2246). search_text(2247). search_text(2248). search_text(2249). search_text(2250). search_text(2251). search_text(2252). search_text(2253). search_text(2254). search_text(2255). search_text(2256). search_text(2257). search_text(2258). search_text(2259). search_text(2260). search_text(2261). search_text(2262). search_text(2263). search_text(2264). search_text(2265). search_text(2266). search_text(2267). search_text(2268). search_text(2269). search_text(2270). search_text(2271). search_text(2272). search_text(2273). search_text(2274). search_text(2275). search_text(2276). search_text(2277). search_text(2278). search_text(2279). search_text(2280). search_text(2281). search_text(2282). search_text(2283). search_text(2284). search_text(2285). search_text(2286). search_text(2287). search_text(2288). search_text(2289). search_text(2290). search_text(2291). search_text(2292). search_text(2293). search_text(2294). search_text(2295). search_text(2296). search_text(2297). search_text(2298). search_text(2299). search_text(2300). search_text(2301). search_text(2302). search_text(2303). search_text(2304). search_text(2305). search_text(2306). search_text(2307). search_text(2308). search_text(2309). search_text(2310). search_text(2311). search_text(2312). search_text(2313). search_text(2314). search_text(2315). search_text(2316). search_text(2317). search_text(2318). search_text(2319). search_text(2320). search_text(2321). search_text(2322). search_text(2323). search_text(2324). search_text(2325). search_text(2326). search_text(2327). search_text(2328). search_text(2329). search_text(2330). search_text(2331). search_text(2332). search_text(2333). search_text(2334). search_text(2335). search_text(2336). search_text(2337). search_text(2338). search_text(2339). search_text(2340). search_text(2341). search_text(2342). search_text(2343). search_text(2344). search_text(2345). search_text(2346). search_text(2347). search_text(2348). search_text(2349). search_text(2350). search_text(2351). search_text(2352). search_text(2353). search_text(2354). search_text(2355). search_text(2356). search_text(2357). search_text(2358). search_text(2359). search_text(2360). search_text(2361). search_text(2362). search_text(2363). search_text(2364). search_text(2365). search_text(2366). search_text(2367). search_text(2368). search_text(2369). search_text(2370). search_text(2371). search_text(2372). search_text(2373). search_text(2374). search_text(2375). search_text(2376). search_text(2377). search_text(2378). search_text(2379). search_text(2380). search_text(2381). search_text(2382). search_text(2383). search_text(2384). search_text(2385). search_text(2386). search_text(2387). search_text(2388). search_text(2389). search_text(2390). search_text(2391). search_text(2392). search_text(2393). search_text(2394). search_text(2395). search_text(2396). search_text(2397). search_text(2398). search_text(2399). search_text(2400). search_text(2401). search_text(2402). search_text(2403). search_text(2404). search_text(2405). search_text(2406). search_text(2407). search_text(2408). search_text(2409). search_text(2410). search_text(2411). search_text(2412). search_text(2413). search_text(2414). search_text(2415). search_text(2416). search_text(2417). search_text(2418). search_text(2419). search_text(2420). search_text(2421). search_text(2422). search_text(2423). search_text(2424). search_text(2425). search_text(2426). search_text(2427). search_text(2428). search_text(2429). search_text(2430). search_text(2431). search_text(2432). search_text(2433). search_text(2434). search_text(2435). search_text(2436). search_text(2437). search_text(2438). search_text(2439). search_text(2440). search_text(2441). search_text(2442). search_text(2443). search_text(2444). search_text(2445). search_text(2446). search_text(2447). search_text(2448). search_text(2449). search_text(2450). search_text(2451). search_text(2452). search_text(2453). search_text(2454). search_text(2455). search_text(2456). search_text(2457). search_text(2458). search_text(2459). search_text(2460). search_text(2461). search_text(2462). search_text(2463). search_text(2464). search_text(2465). search_text(2466). search_text(2467). search_text(2468). search_text(2469). search_text(2470). search_text(2471). search_text(2472). search_text(2473). search_text(2474). search_text(2475). search_text(2476). search_text(2477). search_text(2478). search_text(2479). search_text(2480). search_text(2481). search_text(2482). search_text(2483). search_text(2484). search_text(2485). search_text(2486). search_text(2487). search_text(2488). search_text(2489). search_text(2490). search_text(2491). search_text(2492). search_text(2493). search_text(2494). search_text(2495). search_text(2496). search_text(2497). search_text(2498). search_text(2499). search_text(2500). search_text(2501). search_text(2502). search_text(2503). search_text(2504). search_text(2505). search_text(2506). search_text(2507). search_text(2508). search_text(2509). search_text(2510). search_text(2511). search_text(2512). search_text(2513). search_text(2514). search_text(2515). search_text(2516). search_text(2517). search_text(2518). search_text(2519). search_text(2520). search_text(2521). search_text(2522). search_text(2523). search_text(2524). search_text(2525). search_text(2526). search_text(2527). search_text(2528). search_text(2529). search_text(2530). search_text(2531). search_text(2532). search_text(2533). search_text(2534). search_text(2535). search_text(2536). search_text(2537). search_text(2538). search_text(2539). search_text(2540). search_text(2541). search_text(2542). search_text(2543). search_text(2544). search_text(2545). search_text(2546). search_text(2547). search_text(2548). search_text(2549). search_text(2550). search_text(2551). search_text(2552). search_text(2553). search_text(2554). search_text(2555). search_text(2556). search_text(2557). search_text(2558). search_text(2559). search_text(2560). search_text(2561). search_text(2562). search_text(2563). search_text(2564). search_text(2565). search_text(2566). search_text(2567). search_text(2568). search_text(2569). search_text(2570). search_text(2571). search_text(2572). search_text(2573). search_text(2574). search_text(2575). search_text(2576). search_text(2577). search_text(2578). search_text(2579). search_text(2580). search_text(2581). search_text(2582). search_text(2583). search_text(2584). search_text(2585). search_text(2586). search_text(2587). search_text(2588). search_text(2589). search_text(2590). search_text(2591). search_text(2592). search_text(2593). search_text(2594). search_text(2595). search_text(2596). search_text(2597). search_text(2598). search_text(2599). search_text(2600). search_text(2601). search_text(2602). search_text(2603). search_text(2604). search_text(2605). search_text(2606). search_text(2607). search_text(2608). search_text(2609). search_text(2610). search_text(2611). search_text(2612). search_text(2613). search_text(2614). search_text(2615). search_text(2616). search_text(2617). search_text(2618). search_text(2619). search_text(2620). search_text(2621). search_text(2622). search_text(2623). search_text(2624). search_text(2625). search_text(2626). search_text(2627). search_text(2628). search_text(2629). search_text(2630). search_text(2631). search_text(2632). search_text(2633). search_text(2634). search_text(2635). search_text(2636). search_text(2637). search_text(2638). search_text(2639). search_text(2640). search_text(2641). search_text(2642). search_text(2643). search_text(2644). search_text(2645). search_text(2646). search_text(2647). search_text(2648). search_text(2649). search_text(2650). search_text(2651). search_text(2652). search_text(2653). search_text(2654). search_text(2655). search_text(2656). search_text(2657). search_text(2658). search_text(2659). search_text(2660). search_text(2661). search_text(2662). search_text(2663). search_text(2664). search_text(2665). search_text(2666). search_text(2667). search_text(2668). search_text(2669). search_text(2670). search_text(2671). search_text(2672). search_text(2673). search_text(2674). search_text(2675). search_text(2676). search_text(2677). search_text(2678). search_text(2679). search_text(2680). search_text(2681). search_text(2682). search_text(2683). search_text(2684). search_text(2685). search_text(2686). search_text(2687). search_text(2688). search_text(2689). search_text(2690). search_text(2691). search_text(2692). search_text(2693). search_text(2694). search_text(2695). search_text(2696). search_text(2697). search_text(2698). search_text(2699). search_text(2700). search_text(2701). search_text(2702). search_text(2703). search_text(2704). search_text(2705). search_text(2706). search_text(2707). search_text(2708). search_text(2709). search_text(2710). search_text(2711). search_text(2712). search_text(2713). search_text(2714). search_text(2715). search_text(2716). search_text(2717). search_text(2718). search_text(2719). search_text(2720). search_text(2721). search_text(2722). search_text(2723). search_text(2724). search_text(2725). search_text(2726). search_text(2727). search_text(2728). search_text(2729). search_text(2730). search_text(2731). search_text(2732). search_text(2733). search_text(2734). search_text(2735). search_text(2736). search_text(2737). search_text(2738). search_text(2739). search_text(2740). search_text(2741). search_text(2742). search_text(2743). search_text(2744). search_text(2745). search_text(2746). search_text(2747). search_text(2748). search_text(2749). search_text(2750). search_text(2751). search_text(2752). search_text(2753). search_text(2754). search_text(2755). search_text(2756). search_text(2757). search_text(2758). search_text(2759). search_text(2760). search_text(2761). search_text(2762). search_text(2763). search_text(2764). search_text(2765). search_text(2766). search_text(2767). search_text(2768). search_text(2769). search_text(2770). search_text(2771). search_text(2772). search_text(2773). search_text(2774). search_text(2775). search_text(2776). search_text(2777). search_text(2778). search_text(2779). search_text(2780). search_text(2781). search_text(2782). search_text(2783). search_text(2784). search_text(2785). search_text(2786). search_text(2787). search_text(2788). search_text(2789). search_text(2790). search_text(2791). search_text(2792). search_text(2793). search_text(2794). search_text(2795). search_text(2796). search_text(2797). search_text(2798). search_text(2799). search_text(2800). search_text(2801). search_text(2802). search_text(2803). search_text(2804). search_text(2805). search_text(2806). search_text(2807). search_text(2808). search_text(2809). search_text(2810). search_text(2811). search_text(2812). search_text(2813). search_text(2814). search_text(2815). search_text(2816). search_text(2817). search_text(2818). search_text(2819). search_text(2820). search_text(2821). search_text(2822). search_text(2823). search_text(2824). search_text(2825). search_text(2826). search_text(2827). search_text(2828). search_text(2829). search_text(2830). search_text(2831). search_text(2832). search_text(2833). search_text(2834). search_text(2835). search_text(2836). search_text(2837). search_text(2838). search_text(2839). search_text(2840). search_text(2841). search_text(2842). search_text(2843). search_text(2844). search_text(2845). search_text(2846). search_text(2847). search_text(2848). search_text(2849). search_text(2850). search_text(2851). search_text(2852). search_text(2853). search_text(2854). search_text(2855). search_text(2856). search_text(2857). search_text(2858). search_text(2859). search_text(2860). search_text(2861). search_text(2862). search_text(2863). search_text(2864). search_text(2865). search_text(2866). search_text(2867). search_text(2868). search_text(2869). search_text(2870). search_text(2871). search_text(2872). search_text(2873). search_text(2874). search_text(2875). search_text(2876). search_text(2877). search_text(2878). search_text(2879). search_text(2880). search_text(2881). search_text(2882). search_text(2883). search_text(2884). search_text(2885). search_text(2886). search_text(2887). search_text(2888). search_text(2889). search_text(2890). search_text(2891). search_text(2892). search_text(2893). search_text(2894). search_text(2895). search_text(2896). search_text(2897). search_text(2898). search_text(2899). search_text(2900). search_text(2901). search_text(2902). search_text(2903). search_text(2904). search_text(2905). search_text(2906). search_text(2907). search_text(2908). search_text(2909). search_text(2910). search_text(2911). search_text(2912). search_text(2913). search_text(2914). search_text(2915). search_text(2916). search_text(2917). search_text(2918). search_text(2919). search_text(2920). search_text(2921). search_text(2922). search_text(2923). search_text(2924). search_text(2925). search_text(2926). search_text(2927). search_text(2928). search_text(2929). search_text(2930). search_text(2931). search_text(2932). search_text(2933). search_text(2934). search_text(2935). search_text(2936). search_text(2937). search_text(2938). search_text(2939). search_text(2940). search_text(2941). search_text(2942). search_text(2943). search_text(2944). search_text(2945). search_text(2946). search_text(2947). search_text(2948). search_text(2949). search_text(2950). search_text(2951). search_text(2952). search_text(2953). search_text(2954). search_text(2955). search_text(2956). search_text(2957). search_text(2958). search_text(2959). search_text(2960). search_text(2961). search_text(2962). search_text(2963). search_text(2964). search_text(2965). search_text(2966). search_text(2967). search_text(2968). search_text(2969). search_text(2970). search_text(2971). search_text(2972). search_text(2973). search_text(2974). search_text(2975). search_text(2976). search_text(2977). search_text(2978). search_text(2979). search_text(2980). search_text(2981). search_text(2982). search_text(2983). search_text(2984). search_text(2985). search_text(2986). search_text(2987). search_text(2988). search_text(2989). search_text(2990). search_text(2991). search_text(2992). search_text(2993). search_text(2994). search_text(2995). search_text(2996). search_text(2997). search_text(2998). search_text(2999). @//E*O*F dsearch// chmod u=rw,g=,o= dsearch echo x - dsearch.drv sed 's/^@//' > "dsearch.drv" <<'@//E*O*F dsearch.drv//' [dsearch,testdsearch]. halt. @//E*O*F dsearch.drv// chmod u=rw,g=,o= dsearch.drv echo x - dsearch.ot sed 's/^@//' > "dsearch.ot" <<'@//E*O*F dsearch.ot//' !** Magnolia !** BEGIN DbaseSearch BENCHMARK !** Average cputime for 500 dsearch is 55.552155 msecs. !** Average cputime for 1000 dsearch is 105.550110 msecs. !** Average cputime for 1500 dsearch is 149.993896 msecs. !** Average cputime for 2000 dsearch is 216.674805 msecs. !** Average cputime for 2500 dsearch is 266.662598 msecs. !** END DbaseSearch BENCHMARK @//E*O*F dsearch.ot// chmod u=rw,g=,o= dsearch.ot echo x - findtext sed 's/^@//' > "findtext" <<'@//E*O*F findtext//' # VAX C-Prolog Benchmark Package # Copyright 1985 by Tektronix, Inc., and Portland State University grep '!\*\*' $1 > $2 @//E*O*F findtext// chmod u=rwx,g=,o= findtext echo x - genlist sed 's/^@//' > "genlist" <<'@//E*O*F genlist//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ make_list(0,[]) :- !. make_list(N,[X|L]) :- rnd(100,X), N1 is N-1, make_list(N1,L). seed(13). rnd(R,N) :- retract(seed(S)), N is (S mod R) + 1, Newseed is (125*S+1) mod 4096, asserta(seed(Newseed)), !. @//E*O*F genlist// chmod u=rw,g=,o= genlist echo x - genlist.drv sed 's/^@//' > "genlist.drv" <<'@//E*O*F genlist.drv//' [genlist,testgenlist]. halt. @//E*O*F genlist.drv// chmod u=rw,g=,o= genlist.drv echo x - genlist.ot sed 's/^@//' > "genlist.ot" <<'@//E*O*F genlist.ot//' !** Magnolia !** BEGIN GenList BENCHMARK !** Average cputime for 20 genlist is 255.555420 msecs. !** Average cputime for 40 genlist is 522.221680 msecs. !** Average cputime for 60 genlist is 794.443359 msecs. !** Average cputime for 80 genlist is 1016.664551 msecs. !** Average cputime for 100 genlist is 1272.223633 msecs. !** END GenList BENCHMARK @//E*O*F genlist.ot// chmod u=rw,g=,o= genlist.ot echo x - genrun sed 's/^@//' > "genrun" <<'@//E*O*F genrun//' # VAX C-Prolog Benchmark Package # Copyright 1985 by Tektronix, Inc., and Portland State University echo '!** Start Benchmark Run.'>results.ben echo -n '!** ' >>results.ben date >> results.ben benchrun primes benchrun polyeval benchrun memfill benchrun cd benchrun hanoi benchrun nairev benchrun bintree benchrun bltsort benchrun sort benchrun loop benchrun genlist benchrun dsearch benchrun wnum benchrun rnum cat *.ot >>results.ben echo '!** Finish Benchmark Run.'>>results.ben @//E*O*F genrun// chmod u=rwx,g=,o= genrun echo x - hanoi sed 's/^@//' > "hanoi" <<'@//E*O*F hanoi//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ hanoi(N) :- move(N,left,center,right). move(0,_,_,_) :- !. move(N,A,B,C) :- M is N-1, move(M,A,C,B), move(M,C,B,A). @//E*O*F hanoi// chmod u=rw,g=,o= hanoi echo x - hanoi.drv sed 's/^@//' > "hanoi.drv" <<'@//E*O*F hanoi.drv//' [hanoi,testhanoi]. halt. @//E*O*F hanoi.drv// chmod u=rw,g=,o= hanoi.drv echo x - hanoi.ot sed 's/^@//' > "hanoi.ot" <<'@//E*O*F hanoi.ot//' !** Magnolia !** BEGIN Hanoi BENCHMARK !** Average cputime for 2 hanoi is 0 msecs. !** Average cputime for 4 hanoi is 44.444702 msecs. !** Average cputime for 6 hanoi is 161.111084 msecs. !** Average cputime for 8 hanoi is 583.332520 msecs. !** Average cputime for 10 hanoi is 2344.441406 msecs. !** END Hanoi BENCHMARK @//E*O*F hanoi.ot// chmod u=rw,g=,o= hanoi.ot echo x - loop sed 's/^@//' > "loop" <<'@//E*O*F loop//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /*********************************************************/ /* Prolog fragment that demonstrates how much time is */ /* consumed in the loop housekeeping alone that is */ /* being used in some of the benchmarks. */ /*************************************************RLA*****/ loop(Max) :- asserta(n(0)), repeat, retract(n(N)), N1 is N+1, asserta(n(N1)), N1>=Max, !. @//E*O*F loop// chmod u=rw,g=,o= loop echo x - loop.drv sed 's/^@//' > "loop.drv" <<'@//E*O*F loop.drv//' [loop,testloop]. halt. @//E*O*F loop.drv// chmod u=rw,g=,o= loop.drv echo x - loop.ot sed 's/^@//' > "loop.ot" <<'@//E*O*F loop.ot//' !** Magnolia !** BEGIN Loop BENCHMARK !** Average cputime for 200 loops is 1927.777344 msecs. !** Average cputime for 400 loops is 3905.554688 msecs. !** Average cputime for 600 loops is 5933.332031 msecs. !** Average cputime for 800 loops is 7888.882813 msecs. !** Average cputime for 1000 loops is 9633.328125 msecs. !** END Loop BENCHMARK @//E*O*F loop.ot// chmod u=rw,g=,o= loop.ot echo x - memfill sed 's/^@//' > "memfill" <<'@//E*O*F memfill//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ memfill(Limit) :- abolish(the_memory_filler_statement,1), abolish(n,1), assert(n(0)), repeat, retract(n(N)), assert(the_memory_filler_statement(N)), N1 is N+1, assert(n(N1)), N1=Limit. @//E*O*F memfill// chmod u=rw,g=,o= memfill echo x - memfill.drv sed 's/^@//' > "memfill.drv" <<'@//E*O*F memfill.drv//' [memfill,testmemfill]. halt. @//E*O*F memfill.drv// chmod u=rw,g=,o= memfill.drv echo x - memfill.ot sed 's/^@//' > "memfill.ot" <<'@//E*O*F memfill.ot//' !** Magnolia !** BEGIN MemoryFiller BENCHMARK !** Average cputime for 10 memfill is 122.222229 msecs. !** Average cputime for 250 memfill is 3205.552734 msecs. !** Average cputime for 500 memfill is 6427.777344 msecs. !** Average cputime for 1000 memfill is 12855.546875 msecs. !** Average cputime for 2000 memfill is 24744.406250 msecs. !** END MemoryFiller BENCHMARK @//E*O*F memfill.ot// chmod u=rw,g=,o= memfill.ot echo x - nairev sed 's/^@//' > "nairev" <<'@//E*O*F nairev//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ mk_list(0,[]). mk_list(N,[N|L]) :- N1 is N-1, mk_list(N1,L). rev([],[]). rev([X|L],Rlx) :- rev(L,Rl), app(Rl,[X],Rlx). app([],L,L). app([X|L1],L2,[X|L3]) :- app(L1,L2,L3). @//E*O*F nairev// chmod u=rw,g=,o= nairev echo x - nairev.drv sed 's/^@//' > "nairev.drv" <<'@//E*O*F nairev.drv//' [nairev,testnairev]. halt. @//E*O*F nairev.drv// chmod u=rw,g=,o= nairev.drv echo x - nairev.ot sed 's/^@//' > "nairev.ot" <<'@//E*O*F nairev.ot//' !** Magnolia !** BEGIN NaiveReverse BENCHMARK !** Average cputime for 10 nairev is 44.444702 msecs. !** Average cputime for 15 nairev is 83.333313 msecs. !** Average cputime for 20 nairev is 172.222412 msecs. !** Average cputime for 25 nairev is 183.333008 msecs. !** Average cputime for 30 nairev is 294.444336 msecs. !** END NaiveReverse BENCHMARK @//E*O*F nairev.ot// chmod u=rw,g=,o= nairev.ot echo x - numdata sed 's/^@//' > "numdata" <<'@//E*O*F numdata//' 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. 5555. @//E*O*F numdata// chmod u=rw,g=,o= numdata echo x - polyeval sed 's/^@//' > "polyeval" <<'@//E*O*F polyeval//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ gen_list(0,[]). gen_list(N,[[N,N]|L]) :- N1 is N-1, gen_list(N1,L). expand_term(0,Xvalue, Tvalue) :- Tvalue is Xvalue. expand_term(Power,Xvalue, Tvalue) :- TempValue is 2*Xvalue, Power1 is Power - 1, expand_term(Power1 ,TempValue, Tvalue). eval_term([Coef,Power],Value,Xvalue) :- expand_term(Power,Xvalue, Tvalue), Value is Coef*Tvalue . eval_poly([],Answer, Svalue) :- Answer is Svalue . eval_poly([Term|Rest],Answer, Svalue) :- eval_term(Term,Value,1), Ans is Svalue + Value, eval_poly(Rest,Answer,Ans). polybench(N,Answer) :- gen_list(N,Poly),!, eval_poly(Poly,Answer, 0 ). @//E*O*F polyeval// chmod u=rw,g=,o= polyeval echo x - polyeval.drv sed 's/^@//' > "polyeval.drv" <<'@//E*O*F polyeval.drv//' [polyeval,testpolyeval]. halt. @//E*O*F polyeval.drv// chmod u=rw,g=,o= polyeval.drv echo x - polyeval.ot sed 's/^@//' > "polyeval.ot" <<'@//E*O*F polyeval.ot//' !** Magnolia !** BEGIN Polynomial BENCHMARK !** Average cputime for 5 polys is 77.777832 msecs. !** Average cputime for 8 polys is 188.888428 msecs. !** Average cputime for 11 polys is 294.444824 msecs. !** Average cputime for 14 polys is 411.109619 msecs. !** Average cputime for 17 polys is 572.222168 msecs. !** END Polynomial BENCHMARK @//E*O*F polyeval.ot// chmod u=rw,g=,o= polyeval.ot echo x - primes sed 's/^@//' > "primes" <<'@//E*O*F primes//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* The sieve of Erastosthenes. */ /* */ /* Benchmark prolog program which requires the upper limit as a */ /* parameter, and will find all prime numbers between 1 and upper */ /* bound. Execution time is given in milliseconds. */ /* */ primes(Limit, Prime_nums) :- integer_list(2,Limit,Ints), sift(Ints,Prime_nums). integer_list(Low,High,[Low|Rest]) :- Low =< High, !, M is Low + 1, integer_list(M,High,Rest). integer_list(_,_,[]). sift([],[]). sift([Int|Ints],[Int|Primes]) :- remove(Int,Ints,New), sift(New,Primes). remove(Prime,[],[]). remove(Prime,[Int|Ints],[Int|New_ints]) :- not(0 is Int mod Prime), !, remove(Prime,Ints,New_ints). remove(Prime,[Int|Ints],New_ints) :- 0 is Int mod Prime, !, remove(Prime,Ints,New_ints). @//E*O*F primes// chmod u=rw,g=,o= primes echo x - primes.drv sed 's/^@//' > "primes.drv" <<'@//E*O*F primes.drv//' [primes,testprimes]. halt. @//E*O*F primes.drv// chmod u=rw,g=,o= primes.drv echo x - primes.ot sed 's/^@//' > "primes.ot" <<'@//E*O*F primes.ot//' !** Magnolia !** BEGIN Primes BENCHMARK !** Average cputime for 10 primes is 66.666565 msecs. !** Average cputime for 20 primes is 211.110718 msecs. !** Average cputime for 40 primes is 522.221680 msecs. !** Average cputime for 60 primes is 777.776855 msecs. !** Average cputime for 80 primes is 1277.776367 msecs. !** END Primes BENCHMARK @//E*O*F primes.ot// chmod u=rw,g=,o= primes.ot echo x - results.ben sed 's/^@//' > "results.ben" <<'@//E*O*F results.ben//' !** Start Benchmark Run. !** Mon Jul 1 13:27:01 PDT 1985 !** VAX 750 !** BEGIN BinaryTree BENCHMARK !** Average cputime for 10 bintree is 177.777466 msecs. !** Average cputime for 20 bintree is 311.111328 msecs. !** Average cputime for 30 bintree is 611.111328 msecs. !** Average cputime for 40 bintree is 833.330566 msecs. !** Average cputime for 50 bintree is 1150.000977 msecs. !** END BinaryTree BENCHMARK !** VAX 750 !** BEGIN BuiltinSort BENCHMARK !** Average cputime for 10 sort is 150.000122 msecs. !** Average cputime for 20 sort is 388.888184 msecs. !** Average cputime for 30 sort is 566.666016 msecs. !** Average cputime for 40 sort is 849.999512 msecs. !** Average cputime for 50 sort is 1094.443359 msecs. !** END BuiltinSort BENCHMARK !** VAX 750 !** BEGIN CountDown BENCHMARK !** Average cputime for 100 cd is 183.333252 msecs. !** Average cputime for 200 cd is 355.555420 msecs. !** Average cputime for 300 cd is 499.999756 msecs. !** Average cputime for 400 cd is 744.444336 msecs. !** Average cputime for 500 cd is 844.443848 msecs. !** END CountDown BENCHMARK !** VAX 750 !** BEGIN DbaseSearch BENCHMARK !** Average cputime for 500 dsearch is 55.552155 msecs. !** Average cputime for 1000 dsearch is 105.550110 msecs. !** Average cputime for 1500 dsearch is 149.993896 msecs. !** Average cputime for 2000 dsearch is 216.674805 msecs. !** Average cputime for 2500 dsearch is 266.662598 msecs. !** END DbaseSearch BENCHMARK !** VAX 750 !** BEGIN GenList BENCHMARK !** Average cputime for 20 genlist is 255.555420 msecs. !** Average cputime for 40 genlist is 522.221680 msecs. !** Average cputime for 60 genlist is 794.443359 msecs. !** Average cputime for 80 genlist is 1016.664551 msecs. !** Average cputime for 100 genlist is 1272.223633 msecs. !** END GenList BENCHMARK !** VAX 750 !** BEGIN Hanoi BENCHMARK !** Average cputime for 2 hanoi is 0 msecs. !** Average cputime for 4 hanoi is 44.444702 msecs. !** Average cputime for 6 hanoi is 161.111084 msecs. !** Average cputime for 8 hanoi is 583.332520 msecs. !** Average cputime for 10 hanoi is 2344.441406 msecs. !** END Hanoi BENCHMARK !** VAX 750 !** BEGIN Loop BENCHMARK !** Average cputime for 200 loops is 1927.777344 msecs. !** Average cputime for 400 loops is 3905.554688 msecs. !** Average cputime for 600 loops is 5933.332031 msecs. !** Average cputime for 800 loops is 7888.882813 msecs. !** Average cputime for 1000 loops is 9633.328125 msecs. !** END Loop BENCHMARK !** VAX 750 !** BEGIN MemoryFiller BENCHMARK !** Average cputime for 10 memfill is 122.222229 msecs. !** Average cputime for 250 memfill is 3205.552734 msecs. !** Average cputime for 500 memfill is 6427.777344 msecs. !** Average cputime for 1000 memfill is 12855.546875 msecs. !** Average cputime for 2000 memfill is 24744.406250 msecs. !** END MemoryFiller BENCHMARK !** VAX 750 !** BEGIN NaiveReverse BENCHMARK !** Average cputime for 10 nairev is 44.444702 msecs. !** Average cputime for 15 nairev is 83.333313 msecs. !** Average cputime for 20 nairev is 172.222412 msecs. !** Average cputime for 25 nairev is 183.333008 msecs. !** Average cputime for 30 nairev is 294.444336 msecs. !** END NaiveReverse BENCHMARK !** VAX 750 !** BEGIN Polynomial BENCHMARK !** Average cputime for 5 polys is 77.777832 msecs. !** Average cputime for 8 polys is 188.888428 msecs. !** Average cputime for 11 polys is 294.444824 msecs. !** Average cputime for 14 polys is 411.109619 msecs. !** Average cputime for 17 polys is 572.222168 msecs. !** END Polynomial BENCHMARK !** VAX 750 !** BEGIN Primes BENCHMARK !** Average cputime for 10 primes is 66.666565 msecs. !** Average cputime for 20 primes is 211.110718 msecs. !** Average cputime for 40 primes is 522.221680 msecs. !** Average cputime for 60 primes is 777.776855 msecs. !** Average cputime for 80 primes is 1277.776367 msecs. !** END Primes BENCHMARK !** VAX 750 !** BEGIN ReadNumber BENCHMARK !** Average cputime for 200 readnums is 2644.441406 msecs. !** Average cputime for 400 readnums is 5172.218750 msecs. !** Average cputime for 600 readnums is 7927.773438 msecs. !** Average cputime for 800 readnums is 10522.210938 msecs. !** Average cputime for 1000 readnums is 12744.437500 msecs. !** END ReadNumber BENCHMARK !** VAX 750 !** BEGIN QuickSort BENCHMARK !** Average cputime for 5 quicksorts is 111.110962 msecs. !** Average cputime for 10 quicksorts is 233.332886 msecs. !** Average cputime for 15 quicksorts is 372.221436 msecs. !** Average cputime for 20 quicksorts is 505.554688 msecs. !** Average cputime for 25 quicksorts is 644.444336 msecs. !** END QuickSort BENCHMARK !** VAX 750 !** BEGIN WriteNumber BENCHMARK !** Average cputime for 200 writenums is 2249.998047 msecs. !** Average cputime for 400 writenums is 4394.441406 msecs. !** Average cputime for 600 writenums is 6605.550781 msecs. !** Average cputime for 800 writenums is 8838.875000 msecs. !** Average cputime for 1000 writenums is 11038.898438 msecs. !** END WriteNumber BENCHMARK !** Finish Benchmark Run. @//E*O*F results.ben// chmod u=rw,g=,o= results.ben echo x - rnum sed 's/^@//' > "rnum" <<'@//E*O*F rnum//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* prolog module to read numbers from a file, in order to test file input */ read_num(Max) :- see('numdata'), asserta(n(0)), repeat, read(X), retract(n(N)), N1 is N+1, asserta(n(N1)), N1>=Max, !, seen. @//E*O*F rnum// chmod u=rw,g=,o= rnum echo x - rnum.drv sed 's/^@//' > "rnum.drv" <<'@//E*O*F rnum.drv//' [rnum,testrnum]. halt. @//E*O*F rnum.drv// chmod u=rw,g=,o= rnum.drv echo x - rnum.ot sed 's/^@//' > "rnum.ot" <<'@//E*O*F rnum.ot//' !** Magnolia !** BEGIN ReadNumber BENCHMARK !** Average cputime for 200 readnums is 2644.441406 msecs. !** Average cputime for 400 readnums is 5172.218750 msecs. !** Average cputime for 600 readnums is 7927.773438 msecs. !** Average cputime for 800 readnums is 10522.210938 msecs. !** Average cputime for 1000 readnums is 12744.437500 msecs. !** END ReadNumber BENCHMARK @//E*O*F rnum.ot// chmod u=rw,g=,o= rnum.ot echo x - snairev sed 's/^@//' > "snairev" <<'@//E*O*F snairev//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ mk_list(0,nil). mk_list(N,cons(N,L)) :- N1 is N-1, mk_list(N1,L). rev(nil,nil). rev(cons(X,L),Rlx) :- rev(L,Rl), app(Rl,cons(X,nil),Rlx). app(nil,L,L). app(cons(X,L1),L2,cons(X,L3)) :- app(L1,L2,L3). @//E*O*F snairev// chmod u=rw,g=,o= snairev echo x - snairev.drv sed 's/^@//' > "snairev.drv" <<'@//E*O*F snairev.drv//' ?- [snairev,testnairev]. halt. @//E*O*F snairev.drv// chmod u=rw,g=,o= snairev.drv echo x - sort sed 's/^@//' > "sort" <<'@//E*O*F sort//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ sort(N) :- generate(0,N,L), !, quicksort(L,S). generate(I,N,[]) :- I = N. generate(I,N,L) :- J is I+1, random(1001,X), generate(J,N,L1), append([X],L1,L). append([],L,L). append([X|L1],L2,[X|L3]) :- append(L1,L2,L3). seed(1301). random(R,N) :- retract(seed(S)), N is (S mod R)+1, NewSeed is (125*S+1) mod 4096, asserta(seed(NewSeed)), !. quicksort([],[]). quicksort([H|T],S) :- split(H,T,A,B), quicksort(A,A1), quicksort(B,B1), append(A1,[H|B1],S). split(H,[A|X],[A|Y],Z) :- A > H, split(H,X,Y,Z). split(H,[A|X],Y,[A|Z]) :- A < H, split(H,X,Y,Z). split(_,[],[],[]). @//E*O*F sort// chmod u=rw,g=,o= sort echo x - sort.drv sed 's/^@//' > "sort.drv" <<'@//E*O*F sort.drv//' [sort,testsort]. halt. @//E*O*F sort.drv// chmod u=rw,g=,o= sort.drv echo x - sort.ot sed 's/^@//' > "sort.ot" <<'@//E*O*F sort.ot//' !** Magnolia !** BEGIN QuickSort BENCHMARK !** Average cputime for 5 quicksorts is 111.110962 msecs. !** Average cputime for 10 quicksorts is 233.332886 msecs. !** Average cputime for 15 quicksorts is 372.221436 msecs. !** Average cputime for 20 quicksorts is 505.554688 msecs. !** Average cputime for 25 quicksorts is 644.444336 msecs. !** END QuickSort BENCHMARK @//E*O*F sort.ot// chmod u=rw,g=,o= sort.ot echo x - testbintree sed 's/^@//' > "testbintree" <<'@//E*O*F testbintree//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_bintree :- nl, write('!** BEGIN BinaryTree BENCHMARK'), nl, ave_bintree(10), ave_bintree(20), ave_bintree(30), ave_bintree(40), ave_bintree(50), nl, write('!** END BinaryTree BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_bintree(P) :- call_bintree(P,T1), call_bintree(P,T2), call_bintree(P,T3), calc_ave_bintree(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_bintree(P,T) :- make_list(P,L), T1 is cputime, make_tree(_,L), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_bintree(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' bintree is '), write(Ave), write(' msecs.'), nl. :- test_bintree. @//E*O*F testbintree// chmod u=rw,g=,o= testbintree echo x - testbltsort sed 's/^@//' > "testbltsort" <<'@//E*O*F testbltsort//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* */ mk_list(0,[]). mk_list(N,[N|L]) :- N1 is N-1, mk_list(N1,L). /* Get an average cpu time for 5 different parameters */ test_sort :- nl, write('!** BEGIN BuiltinSort BENCHMARK'), nl, ave_sort(10), ave_sort(20), ave_sort(30), ave_sort(40), ave_sort(50), nl, write('!** END BuiltinSort BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_sort(P) :- call_sort(P,T1), call_sort(P,T2), call_sort(P,T3), calc_ave_sort(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_sort(P,T) :- mk_list(P,L), T1 is cputime, sort(L,_), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_sort(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' sort is '), write(Ave), write(' msecs.'), nl. :- test_sort. @//E*O*F testbltsort// chmod u=rw,g=,o= testbltsort echo x - testcd sed 's/^@//' > "testcd" <<'@//E*O*F testcd//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_cd :- nl, write('!** BEGIN CountDown BENCHMARK'), nl, ave_cd(100), ave_cd(200), ave_cd(300), ave_cd(400), ave_cd(500), nl, write('!** END CountDown BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_cd(P) :- call_cd(P,T1), call_cd(P,T2), call_cd(P,T3), calc_ave_cd(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_cd(P,T) :- T1 is cputime, cd(P,0), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_cd(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' cd is '), write(Ave), write(' msecs.'), nl. :- test_cd. @//E*O*F testcd// chmod u=rw,g=,o= testcd echo x - testdsearch sed 's/^@//' > "testdsearch" <<'@//E*O*F testdsearch//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_dsearch :- nl, write('!** BEGIN DbaseSearch BENCHMARK'), nl, ave_dsearch(500), ave_dsearch(1000), ave_dsearch(1500), ave_dsearch(2000), ave_dsearch(2500), nl, write('!** END DbaseSearch BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_dsearch(P) :- call_dsearch(P,T1), call_dsearch(P,T2), call_dsearch(P,T3), calc_ave_dsearch(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_dsearch(P,T) :- T1 is cputime, dsearch(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_dsearch(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' dsearch is '), write(Ave), write(' msecs.'), nl. :- test_dsearch. @//E*O*F testdsearch// chmod u=rw,g=,o= testdsearch echo x - testgenlist sed 's/^@//' > "testgenlist" <<'@//E*O*F testgenlist//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_genlist :- nl, write('!** BEGIN GenList BENCHMARK'), nl, ave_genlist(20), ave_genlist(40), ave_genlist(60), ave_genlist(80), ave_genlist(100), nl, write('!** END GenList BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_genlist(P) :- call_genlist(P,T1), call_genlist(P,T2), call_genlist(P,T3), calc_ave_genlist(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_genlist(P,T) :- T1 is cputime, make_list(P,_), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_genlist(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' genlist is '), write(Ave), write(' msecs.'), nl. :- test_genlist. @//E*O*F testgenlist// chmod u=rw,g=,o= testgenlist echo x - testhanoi sed 's/^@//' > "testhanoi" <<'@//E*O*F testhanoi//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_hanoi :- nl, write('!** BEGIN Hanoi BENCHMARK'), nl, ave_hanoi(2), ave_hanoi(4), ave_hanoi(6), ave_hanoi(8), ave_hanoi(10), nl, write('!** END Hanoi BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_hanoi(P) :- call_hanoi(P,T1), call_hanoi(P,T2), call_hanoi(P,T3), calc_ave_hanoi(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_hanoi(P,T) :- T1 is cputime, hanoi(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_hanoi(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' hanoi is '), write(Ave), write(' msecs.'), nl. :- test_hanoi. @//E*O*F testhanoi// chmod u=rw,g=,o= testhanoi echo x - testloop sed 's/^@//' > "testloop" <<'@//E*O*F testloop//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_loop :- nl, write('!** BEGIN Loop BENCHMARK'), nl, ave_loop(200), ave_loop(400), ave_loop(600), ave_loop(800), ave_loop(1000), nl, write('!** END Loop BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_loop(P) :- call_loop(P,T1), call_loop(P,T2), call_loop(P,T3), calc_ave_loop(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_loop(P,T) :- T1 is cputime, loop(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_loop(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' loops is '), write(Ave), write(' msecs.'), nl. :- test_loop. @//E*O*F testloop// chmod u=rw,g=,o= testloop echo x - testmemfill sed 's/^@//' > "testmemfill" <<'@//E*O*F testmemfill//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_memfill :- nl, write('!** BEGIN MemoryFiller BENCHMARK'), nl, ave_memfill(10), ave_memfill(250), ave_memfill(500), ave_memfill(1000), ave_memfill(2000), nl, write('!** END MemoryFiller BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_memfill(P) :- call_memfill(P,T1), call_memfill(P,T2), call_memfill(P,T3), calc_ave_memfill(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_memfill(P,T) :- T1 is cputime, memfill(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_memfill(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' memfill is '), write(Ave), write(' msecs.'), nl. :- test_memfill. @//E*O*F testmemfill// chmod u=rw,g=,o= testmemfill echo x - testnairev sed 's/^@//' > "testnairev" <<'@//E*O*F testnairev//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_rev :- nl, write('!** BEGIN NaiveReverse BENCHMARK'), nl, ave_rev(10), ave_rev(15), ave_rev(20), ave_rev(25), ave_rev(30), nl, write('!** END NaiveReverse BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_rev(P) :- call_rev(P,T1), call_rev(P,T2), call_rev(P,T3), calc_ave_rev(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_rev(P,T) :- mk_list(P,L), T1 is cputime, rev(L,_), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_rev(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' nairev is '), write(Ave), write(' msecs.'), nl. :- test_rev. @//E*O*F testnairev// chmod u=rw,g=,o= testnairev echo x - testpolyeval sed 's/^@//' > "testpolyeval" <<'@//E*O*F testpolyeval//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_poly :- nl, write('!** BEGIN Polynomial BENCHMARK'), nl, ave_poly(5), ave_poly(8), ave_poly(11), ave_poly(14), ave_poly(17), nl, write('!** END Polynomial BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_poly(P) :- call_poly(P,T1), call_poly(P,T2), call_poly(P,T3), calc_ave_poly(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_poly(P,T) :- T1 is cputime, polybench(P,_), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_poly(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' polys is '), write(Ave), write(' msecs.'), nl. :- test_poly . @//E*O*F testpolyeval// chmod u=rw,g=,o= testpolyeval echo x - testprimes sed 's/^@//' > "testprimes" <<'@//E*O*F testprimes//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_primes :- nl, write('!** BEGIN Primes BENCHMARK'), nl, ave_primes(10), ave_primes(20), ave_primes(40), ave_primes(60), ave_primes(80), nl, write('!** END Primes BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_primes(P) :- call_primes(P,T1), call_primes(P,T2), call_primes(P,T3), calc_ave_primes(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_primes(P,T) :- T1 is cputime, primes(P,P_list), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_primes(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' primes is '), write(Ave), write(' msecs.'), nl. :- test_primes. @//E*O*F testprimes// chmod u=rw,g=,o= testprimes echo x - testrnum sed 's/^@//' > "testrnum" <<'@//E*O*F testrnum//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_rnum :- nl, write('!** BEGIN ReadNumber BENCHMARK'), nl, ave_rnum(200), ave_rnum(400), ave_rnum(600), ave_rnum(800), ave_rnum(1000), nl, write('!** END ReadNumber BENCHMARK'), nl, halt. /* call the benchmark 3 times and calculate the average */ ave_rnum(P) :- call_rnum(P,T1), call_rnum(P,T2), call_rnum(P,T3), calc_ave_rnum(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_rnum(P,T) :- T1 is cputime, read_num(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_rnum(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' readnums is '), write(Ave), write(' msecs.'), nl. :- test_rnum. @//E*O*F testrnum// chmod u=rw,g=,o= testrnum echo x - testsort sed 's/^@//' > "testsort" <<'@//E*O*F testsort//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_sort :- nl, write('!** BEGIN QuickSort BENCHMARK'), nl, ave_sort(5), ave_sort(10), ave_sort(15), ave_sort(20), ave_sort(25), nl, write('!** END QuickSort BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_sort(P) :- call_sort(P,T1), call_sort(P,T2), call_sort(P,T3), calc_ave_sort(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_sort(P,T) :- T1 is cputime, sort(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_sort(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' quicksorts is '), write(Ave), write(' msecs.'), nl. :- test_sort. @//E*O*F testsort// chmod u=rw,g=,o= testsort echo x - testwnum sed 's/^@//' > "testwnum" <<'@//E*O*F testwnum//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* Get an average cpu time for 5 different parameters */ test_wnum :- nl, write('!** BEGIN WriteNumber BENCHMARK'), nl, ave_wnum(200), ave_wnum(400), ave_wnum(600), ave_wnum(800), ave_wnum(1000), nl, write('!** END WriteNumber BENCHMARK'), nl. /* call the benchmark 3 times and calculate the average */ ave_wnum(P) :- call_wnum(P,T1), call_wnum(P,T2), call_wnum(P,T3), calc_ave_wnum(P,T1,T2,T3). /* call benchmark and return cputime in msecs. */ call_wnum(P,T) :- T1 is cputime, write_num(P), T2 is cputime, T is 1000*(T2-T1). /* calculate average of 3 times for parameter P */ calc_ave_wnum(P,T1,T2,T3) :- Ave is (T1+T2+T3)/3, nl, write('!** Average cputime for '), write(P), write(' writenums is '), write(Ave), write(' msecs.'), nl. :- test_wnum. @//E*O*F testwnum// chmod u=rw,g=,o= testwnum echo x - wnum sed 's/^@//' > "wnum" <<'@//E*O*F wnum//' /* VAX C-Prolog Benchmark Package /* /* Copyright 1985 by Tektronix, Inc., and Portland State University /* /* prolog module that writes the same number to a file. */ /* Used to test file output */ write_num(Max) :- tell('numdata'), asserta(n(0)), repeat, write('5555.'), nl, retract(n(N)), N1 is N+1, asserta(n(N1)), N1>=Max, !, told. @//E*O*F wnum// chmod u=rw,g=,o= wnum echo x - wnum.drv sed 's/^@//' > "wnum.drv" <<'@//E*O*F wnum.drv//' [wnum,testwnum]. halt. @//E*O*F wnum.drv// chmod u=rw,g=,o= wnum.drv echo x - wnum.ot sed 's/^@//' > "wnum.ot" <<'@//E*O*F wnum.ot//' !** Magnolia !** BEGIN WriteNumber BENCHMARK !** Average cputime for 200 writenums is 2249.998047 msecs. !** Average cputime for 400 writenums is 4394.441406 msecs. !** Average cputime for 600 writenums is 6605.550781 msecs. !** Average cputime for 800 writenums is 8838.875000 msecs. !** Average cputime for 1000 writenums is 11038.898438 msecs. !** END WriteNumber BENCHMARK @//E*O*F wnum.ot// chmod u=rw,g=,o= wnum.ot exit 0