Added the first set of benchmarks.

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1818 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
kostis 2007-03-09 18:53:13 +00:00
parent 455cb48745
commit abb8209bd4
12 changed files with 29403 additions and 0 deletions

View File

@ -0,0 +1,112 @@
abolish_table_info :- at(compress/2).
time :- statistics(runtime,_), benchmark, fail;
statistics(runtime,[_,T]), write(T).
benchmark :- data(Data), compress(Data, _C).
test :-
data(Data), reinit,
cputime(T0),
compress(Data, C), write(C), write(' '),
cputime(T1), T is T1-T0, write(T), write(' msecs'), nl, fail.
test.
%% data([a,a,b,a,a,b]).
%% data([a,a,b,a,a,b,a,a,b]).
%% data([a,a,a,a,a,a,a,a,a,a,a,a]).
%% data([a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a]).
%% data([a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a]).
%% data(D) :- bigdata(D).
%% data(D2) :- bigdata(D), append(D,D,D2).
data(D4) :- bigdata(D), append(D,D,D2), append(D2,D2,D4).
%% data(D8) :- bigdata(D), append(D,D,D2), append(D2,D2,D4), append(D4,D4,D8).
%% data(D16) :- bigdata(D), append(D,D,D2), append(D2,D2,D4), append(D4,D4,D8), append(D8,D8,D16).
bigdata([x,c,a,a,b,a,a,b,a,a,b,c,c,a,d,a,d,c,a,a,b,a,a,b,a,a,b,c,c,a,d,a,d,y]).
%% ==================== VERSION USING ASSERT FOR TABLES ======================
%% reinit :-
%% retractall(memo_compress(_, _)),
%% assert(memo_compress([C1], [C1])),
%% assert(memo_compress([C1,C2], [C1,C2])).
%%
%% compress(Initial, Compressed) :-
%% ( memo_compress(Initial, Compressed) -> true
%% mlength(Initial, LenInitial),
%% CurrentBest = Initial,
%% LenCurrentBest = LenInitial,
%% compress4(Initial, CurrentBest, LenCurrentBest, Compressed)
%% assert(memo_compress(Initial, Compressed))
%% ).
%% ===========================================================================
reinit :- abolish_all_tables.
:- table compress/2.
compress(Initial, Compressed) :-
mlength(Initial, LenInitial),
CurrentBest = Initial,
LenCurrentBest = LenInitial,
compress4(Initial, CurrentBest, LenCurrentBest, Compressed).
compress4(Initial, CurrentBest, LenCurrentBest, Compressed) :-
( compress_with_bound(Initial, LenCurrentBest, NewBest) ->
mlength(NewBest, NewLenBest),
compress4(Initial, NewBest, NewLenBest, Compressed)
; Compressed = CurrentBest
).
compress_with_bound(Initial, LenBound, Better) :-
repetition_compress(Initial, LenBound, Better).
compress_with_bound(Initial, LenBound, Better) :-
two_price_compress(Initial, LenBound, Better).
repetition_compress(Initial, LenBound, Better) :-
chopup(Initial, Piece, Repeated),
( Piece = [C] ->
Better = [C,Repeated]
; compress(Piece, CompressedPiece),
append(['('|CompressedPiece], [')',Repeated], Better)
),
mlength(Better, LenBetter),
LenBetter < LenBound.
two_price_compress(Initial, LenBound, Better) :-
append(Piece1, Piece2, Initial),
Piece1 \== [],
Piece2 \== [],
compress(Piece1, Compressed1),
mlength(Compressed1, LenCompressed1),
LenCompressed1 < LenBound,
compress(Piece2, Compressed2),
mlength(Compressed2, LenCompressed2),
LenCompressed1 + LenCompressed2 < LenBound,
append(Compressed1, Compressed2, Better).
chopup(List, Part, Repeated) :-
append(Part, Rest, List),
Part \== [],
Rest \== [],
count_parts(Rest, Part, 1, Repeated).
count_parts(Rest, Part, I, O) :-
( Rest == [] -> I = O
; append(Part, Rest1, Rest),
I1 is I+1,
count_parts(Rest1, Part, I1, O)
).
%%----------------------------------------------------------------------------
%% Utilities below
%%----------------------------------------------------------------------------
append([],L,L).
append([H|L1],L2,[H|L3]) :- append(L1,L2,L3).
mlength(L,N) :- mlength(L,0,N).
mlength([],N,N).
mlength([_|R],N0,N) :- N1 is N0+1, mlength(R,N1,N).

32
docs/index/Benchmarks/go_xxx Executable file
View File

@ -0,0 +1,32 @@
#! /bin/sh
XXX=$HOME/Projects/XXX/bin/xxx
rm -f *.O
if test $# -eq 1; then
testfiles="$1.P" ## test file name is given as unique extra argument
else
testfiles="tc_l_io_chain8000.P tc_r_io_chain2000.P tc_d_io_chain400.P \
tc_l_oo_chain2000.P tc_r_oo_chain2000.P tc_d_oo_chain400.P \
compress.P sg_cyl.P mutagenesis.P"
fi
echo "========================================"
echo " XXX JITI 1st "
echo "========================================"
for file in $testfiles ; do
benchname=`basename $file .P`
printf "%21s " $benchname
$XXX << EOF 2>/dev/null
['$file'].
time.
EOF
printf " \t"
$XXX << EOF 2>/dev/null
compile('$file',[jiti_off]).
['$file'].
time.
EOF
echo
done

32
docs/index/Benchmarks/go_yap Executable file
View File

@ -0,0 +1,32 @@
#! /bin/sh
XXX=$HOME/YAP/YAP-devel/bin/yap
if test $# -eq 1; then
testfiles="$1.P" ## test file name is given as unique extra argument
else
testfiles="tc_l_io_chain8000.P tc_r_io_chain2000.P tc_d_io_chain400.P \
tc_l_oo_chain2000.P tc_r_oo_chain2000.P tc_d_oo_chain400.P \
compress.P sg_cyl.P mutagenesis.P"
fi
echo "========================================"
echo " Yap JITI 1st "
echo "========================================"
for file in $testfiles ; do
benchname=`basename $file .P`
printf "%21s " $benchname
$XXX << EOF 2>/dev/null
yap_flag(tabling_mode,local).
['$file'].
time.
EOF
printf " \t"
$XXX << EOF 2>/dev/null
yap_flag(index,single).
yap_flag(tabling_mode,local).
['$file'].
time.
EOF
echo
done

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,412 @@
abolish_table_info :- at(tc_bench/2).
time :- statistics(runtime,_), benchmark, fail;
statistics(runtime,[_,T]), write(T).
benchmark :- tc_bench(0, _Out).
:- table tc_bench/2.
tc_bench(A, B) :- chain(A, B).
tc_bench(A, B) :- tc_bench(A, C), tc_bench(C, B).
chain(0,1).
chain(1,2).
chain(2,3).
chain(3,4).
chain(4,5).
chain(5,6).
chain(6,7).
chain(7,8).
chain(8,9).
chain(9,10).
chain(10,11).
chain(11,12).
chain(12,13).
chain(13,14).
chain(14,15).
chain(15,16).
chain(16,17).
chain(17,18).
chain(18,19).
chain(19,20).
chain(20,21).
chain(21,22).
chain(22,23).
chain(23,24).
chain(24,25).
chain(25,26).
chain(26,27).
chain(27,28).
chain(28,29).
chain(29,30).
chain(30,31).
chain(31,32).
chain(32,33).
chain(33,34).
chain(34,35).
chain(35,36).
chain(36,37).
chain(37,38).
chain(38,39).
chain(39,40).
chain(40,41).
chain(41,42).
chain(42,43).
chain(43,44).
chain(44,45).
chain(45,46).
chain(46,47).
chain(47,48).
chain(48,49).
chain(49,50).
chain(50,51).
chain(51,52).
chain(52,53).
chain(53,54).
chain(54,55).
chain(55,56).
chain(56,57).
chain(57,58).
chain(58,59).
chain(59,60).
chain(60,61).
chain(61,62).
chain(62,63).
chain(63,64).
chain(64,65).
chain(65,66).
chain(66,67).
chain(67,68).
chain(68,69).
chain(69,70).
chain(70,71).
chain(71,72).
chain(72,73).
chain(73,74).
chain(74,75).
chain(75,76).
chain(76,77).
chain(77,78).
chain(78,79).
chain(79,80).
chain(80,81).
chain(81,82).
chain(82,83).
chain(83,84).
chain(84,85).
chain(85,86).
chain(86,87).
chain(87,88).
chain(88,89).
chain(89,90).
chain(90,91).
chain(91,92).
chain(92,93).
chain(93,94).
chain(94,95).
chain(95,96).
chain(96,97).
chain(97,98).
chain(98,99).
chain(99,100).
chain(100,101).
chain(101,102).
chain(102,103).
chain(103,104).
chain(104,105).
chain(105,106).
chain(106,107).
chain(107,108).
chain(108,109).
chain(109,110).
chain(110,111).
chain(111,112).
chain(112,113).
chain(113,114).
chain(114,115).
chain(115,116).
chain(116,117).
chain(117,118).
chain(118,119).
chain(119,120).
chain(120,121).
chain(121,122).
chain(122,123).
chain(123,124).
chain(124,125).
chain(125,126).
chain(126,127).
chain(127,128).
chain(128,129).
chain(129,130).
chain(130,131).
chain(131,132).
chain(132,133).
chain(133,134).
chain(134,135).
chain(135,136).
chain(136,137).
chain(137,138).
chain(138,139).
chain(139,140).
chain(140,141).
chain(141,142).
chain(142,143).
chain(143,144).
chain(144,145).
chain(145,146).
chain(146,147).
chain(147,148).
chain(148,149).
chain(149,150).
chain(150,151).
chain(151,152).
chain(152,153).
chain(153,154).
chain(154,155).
chain(155,156).
chain(156,157).
chain(157,158).
chain(158,159).
chain(159,160).
chain(160,161).
chain(161,162).
chain(162,163).
chain(163,164).
chain(164,165).
chain(165,166).
chain(166,167).
chain(167,168).
chain(168,169).
chain(169,170).
chain(170,171).
chain(171,172).
chain(172,173).
chain(173,174).
chain(174,175).
chain(175,176).
chain(176,177).
chain(177,178).
chain(178,179).
chain(179,180).
chain(180,181).
chain(181,182).
chain(182,183).
chain(183,184).
chain(184,185).
chain(185,186).
chain(186,187).
chain(187,188).
chain(188,189).
chain(189,190).
chain(190,191).
chain(191,192).
chain(192,193).
chain(193,194).
chain(194,195).
chain(195,196).
chain(196,197).
chain(197,198).
chain(198,199).
chain(199,200).
chain(200,201).
chain(201,202).
chain(202,203).
chain(203,204).
chain(204,205).
chain(205,206).
chain(206,207).
chain(207,208).
chain(208,209).
chain(209,210).
chain(210,211).
chain(211,212).
chain(212,213).
chain(213,214).
chain(214,215).
chain(215,216).
chain(216,217).
chain(217,218).
chain(218,219).
chain(219,220).
chain(220,221).
chain(221,222).
chain(222,223).
chain(223,224).
chain(224,225).
chain(225,226).
chain(226,227).
chain(227,228).
chain(228,229).
chain(229,230).
chain(230,231).
chain(231,232).
chain(232,233).
chain(233,234).
chain(234,235).
chain(235,236).
chain(236,237).
chain(237,238).
chain(238,239).
chain(239,240).
chain(240,241).
chain(241,242).
chain(242,243).
chain(243,244).
chain(244,245).
chain(245,246).
chain(246,247).
chain(247,248).
chain(248,249).
chain(249,250).
chain(250,251).
chain(251,252).
chain(252,253).
chain(253,254).
chain(254,255).
chain(255,256).
chain(256,257).
chain(257,258).
chain(258,259).
chain(259,260).
chain(260,261).
chain(261,262).
chain(262,263).
chain(263,264).
chain(264,265).
chain(265,266).
chain(266,267).
chain(267,268).
chain(268,269).
chain(269,270).
chain(270,271).
chain(271,272).
chain(272,273).
chain(273,274).
chain(274,275).
chain(275,276).
chain(276,277).
chain(277,278).
chain(278,279).
chain(279,280).
chain(280,281).
chain(281,282).
chain(282,283).
chain(283,284).
chain(284,285).
chain(285,286).
chain(286,287).
chain(287,288).
chain(288,289).
chain(289,290).
chain(290,291).
chain(291,292).
chain(292,293).
chain(293,294).
chain(294,295).
chain(295,296).
chain(296,297).
chain(297,298).
chain(298,299).
chain(299,300).
chain(300,301).
chain(301,302).
chain(302,303).
chain(303,304).
chain(304,305).
chain(305,306).
chain(306,307).
chain(307,308).
chain(308,309).
chain(309,310).
chain(310,311).
chain(311,312).
chain(312,313).
chain(313,314).
chain(314,315).
chain(315,316).
chain(316,317).
chain(317,318).
chain(318,319).
chain(319,320).
chain(320,321).
chain(321,322).
chain(322,323).
chain(323,324).
chain(324,325).
chain(325,326).
chain(326,327).
chain(327,328).
chain(328,329).
chain(329,330).
chain(330,331).
chain(331,332).
chain(332,333).
chain(333,334).
chain(334,335).
chain(335,336).
chain(336,337).
chain(337,338).
chain(338,339).
chain(339,340).
chain(340,341).
chain(341,342).
chain(342,343).
chain(343,344).
chain(344,345).
chain(345,346).
chain(346,347).
chain(347,348).
chain(348,349).
chain(349,350).
chain(350,351).
chain(351,352).
chain(352,353).
chain(353,354).
chain(354,355).
chain(355,356).
chain(356,357).
chain(357,358).
chain(358,359).
chain(359,360).
chain(360,361).
chain(361,362).
chain(362,363).
chain(363,364).
chain(364,365).
chain(365,366).
chain(366,367).
chain(367,368).
chain(368,369).
chain(369,370).
chain(370,371).
chain(371,372).
chain(372,373).
chain(373,374).
chain(374,375).
chain(375,376).
chain(376,377).
chain(377,378).
chain(378,379).
chain(379,380).
chain(380,381).
chain(381,382).
chain(382,383).
chain(383,384).
chain(384,385).
chain(385,386).
chain(386,387).
chain(387,388).
chain(388,389).
chain(389,390).
chain(390,391).
chain(391,392).
chain(392,393).
chain(393,394).
chain(394,395).
chain(395,396).
chain(396,397).
chain(397,398).
chain(398,399).
chain(399,400).

View File

@ -0,0 +1,112 @@
abolish_table_info :- at(tc_bench/2).
time :- statistics(runtime,_), benchmark, fail;
statistics(runtime,[_,T]), write(T).
benchmark :- tc_bench(_Out1, _Out2).
:- table tc_bench/2.
tc_bench(A, B) :- chain(A, B).
tc_bench(A, B) :- tc_bench(A, C), tc_bench(C, B).
chain(0,1).
chain(1,2).
chain(2,3).
chain(3,4).
chain(4,5).
chain(5,6).
chain(6,7).
chain(7,8).
chain(8,9).
chain(9,10).
chain(10,11).
chain(11,12).
chain(12,13).
chain(13,14).
chain(14,15).
chain(15,16).
chain(16,17).
chain(17,18).
chain(18,19).
chain(19,20).
chain(20,21).
chain(21,22).
chain(22,23).
chain(23,24).
chain(24,25).
chain(25,26).
chain(26,27).
chain(27,28).
chain(28,29).
chain(29,30).
chain(30,31).
chain(31,32).
chain(32,33).
chain(33,34).
chain(34,35).
chain(35,36).
chain(36,37).
chain(37,38).
chain(38,39).
chain(39,40).
chain(40,41).
chain(41,42).
chain(42,43).
chain(43,44).
chain(44,45).
chain(45,46).
chain(46,47).
chain(47,48).
chain(48,49).
chain(49,50).
chain(50,51).
chain(51,52).
chain(52,53).
chain(53,54).
chain(54,55).
chain(55,56).
chain(56,57).
chain(57,58).
chain(58,59).
chain(59,60).
chain(60,61).
chain(61,62).
chain(62,63).
chain(63,64).
chain(64,65).
chain(65,66).
chain(66,67).
chain(67,68).
chain(68,69).
chain(69,70).
chain(70,71).
chain(71,72).
chain(72,73).
chain(73,74).
chain(74,75).
chain(75,76).
chain(76,77).
chain(77,78).
chain(78,79).
chain(79,80).
chain(80,81).
chain(81,82).
chain(82,83).
chain(83,84).
chain(84,85).
chain(85,86).
chain(86,87).
chain(87,88).
chain(88,89).
chain(89,90).
chain(90,91).
chain(91,92).
chain(92,93).
chain(93,94).
chain(94,95).
chain(95,96).
chain(96,97).
chain(97,98).
chain(98,99).
chain(99,100).

View File

@ -0,0 +1,412 @@
abolish_table_info :- at(tc_bench/2).
time :- statistics(runtime,_), benchmark, fail;
statistics(runtime,[_,T]), write(T).
benchmark :- tc_bench(_Out1, _Out2).
:- table tc_bench/2.
tc_bench(A, B) :- chain(A, B).
tc_bench(A, B) :- tc_bench(A, C), tc_bench(C, B).
chain(0,1).
chain(1,2).
chain(2,3).
chain(3,4).
chain(4,5).
chain(5,6).
chain(6,7).
chain(7,8).
chain(8,9).
chain(9,10).
chain(10,11).
chain(11,12).
chain(12,13).
chain(13,14).
chain(14,15).
chain(15,16).
chain(16,17).
chain(17,18).
chain(18,19).
chain(19,20).
chain(20,21).
chain(21,22).
chain(22,23).
chain(23,24).
chain(24,25).
chain(25,26).
chain(26,27).
chain(27,28).
chain(28,29).
chain(29,30).
chain(30,31).
chain(31,32).
chain(32,33).
chain(33,34).
chain(34,35).
chain(35,36).
chain(36,37).
chain(37,38).
chain(38,39).
chain(39,40).
chain(40,41).
chain(41,42).
chain(42,43).
chain(43,44).
chain(44,45).
chain(45,46).
chain(46,47).
chain(47,48).
chain(48,49).
chain(49,50).
chain(50,51).
chain(51,52).
chain(52,53).
chain(53,54).
chain(54,55).
chain(55,56).
chain(56,57).
chain(57,58).
chain(58,59).
chain(59,60).
chain(60,61).
chain(61,62).
chain(62,63).
chain(63,64).
chain(64,65).
chain(65,66).
chain(66,67).
chain(67,68).
chain(68,69).
chain(69,70).
chain(70,71).
chain(71,72).
chain(72,73).
chain(73,74).
chain(74,75).
chain(75,76).
chain(76,77).
chain(77,78).
chain(78,79).
chain(79,80).
chain(80,81).
chain(81,82).
chain(82,83).
chain(83,84).
chain(84,85).
chain(85,86).
chain(86,87).
chain(87,88).
chain(88,89).
chain(89,90).
chain(90,91).
chain(91,92).
chain(92,93).
chain(93,94).
chain(94,95).
chain(95,96).
chain(96,97).
chain(97,98).
chain(98,99).
chain(99,100).
chain(100,101).
chain(101,102).
chain(102,103).
chain(103,104).
chain(104,105).
chain(105,106).
chain(106,107).
chain(107,108).
chain(108,109).
chain(109,110).
chain(110,111).
chain(111,112).
chain(112,113).
chain(113,114).
chain(114,115).
chain(115,116).
chain(116,117).
chain(117,118).
chain(118,119).
chain(119,120).
chain(120,121).
chain(121,122).
chain(122,123).
chain(123,124).
chain(124,125).
chain(125,126).
chain(126,127).
chain(127,128).
chain(128,129).
chain(129,130).
chain(130,131).
chain(131,132).
chain(132,133).
chain(133,134).
chain(134,135).
chain(135,136).
chain(136,137).
chain(137,138).
chain(138,139).
chain(139,140).
chain(140,141).
chain(141,142).
chain(142,143).
chain(143,144).
chain(144,145).
chain(145,146).
chain(146,147).
chain(147,148).
chain(148,149).
chain(149,150).
chain(150,151).
chain(151,152).
chain(152,153).
chain(153,154).
chain(154,155).
chain(155,156).
chain(156,157).
chain(157,158).
chain(158,159).
chain(159,160).
chain(160,161).
chain(161,162).
chain(162,163).
chain(163,164).
chain(164,165).
chain(165,166).
chain(166,167).
chain(167,168).
chain(168,169).
chain(169,170).
chain(170,171).
chain(171,172).
chain(172,173).
chain(173,174).
chain(174,175).
chain(175,176).
chain(176,177).
chain(177,178).
chain(178,179).
chain(179,180).
chain(180,181).
chain(181,182).
chain(182,183).
chain(183,184).
chain(184,185).
chain(185,186).
chain(186,187).
chain(187,188).
chain(188,189).
chain(189,190).
chain(190,191).
chain(191,192).
chain(192,193).
chain(193,194).
chain(194,195).
chain(195,196).
chain(196,197).
chain(197,198).
chain(198,199).
chain(199,200).
chain(200,201).
chain(201,202).
chain(202,203).
chain(203,204).
chain(204,205).
chain(205,206).
chain(206,207).
chain(207,208).
chain(208,209).
chain(209,210).
chain(210,211).
chain(211,212).
chain(212,213).
chain(213,214).
chain(214,215).
chain(215,216).
chain(216,217).
chain(217,218).
chain(218,219).
chain(219,220).
chain(220,221).
chain(221,222).
chain(222,223).
chain(223,224).
chain(224,225).
chain(225,226).
chain(226,227).
chain(227,228).
chain(228,229).
chain(229,230).
chain(230,231).
chain(231,232).
chain(232,233).
chain(233,234).
chain(234,235).
chain(235,236).
chain(236,237).
chain(237,238).
chain(238,239).
chain(239,240).
chain(240,241).
chain(241,242).
chain(242,243).
chain(243,244).
chain(244,245).
chain(245,246).
chain(246,247).
chain(247,248).
chain(248,249).
chain(249,250).
chain(250,251).
chain(251,252).
chain(252,253).
chain(253,254).
chain(254,255).
chain(255,256).
chain(256,257).
chain(257,258).
chain(258,259).
chain(259,260).
chain(260,261).
chain(261,262).
chain(262,263).
chain(263,264).
chain(264,265).
chain(265,266).
chain(266,267).
chain(267,268).
chain(268,269).
chain(269,270).
chain(270,271).
chain(271,272).
chain(272,273).
chain(273,274).
chain(274,275).
chain(275,276).
chain(276,277).
chain(277,278).
chain(278,279).
chain(279,280).
chain(280,281).
chain(281,282).
chain(282,283).
chain(283,284).
chain(284,285).
chain(285,286).
chain(286,287).
chain(287,288).
chain(288,289).
chain(289,290).
chain(290,291).
chain(291,292).
chain(292,293).
chain(293,294).
chain(294,295).
chain(295,296).
chain(296,297).
chain(297,298).
chain(298,299).
chain(299,300).
chain(300,301).
chain(301,302).
chain(302,303).
chain(303,304).
chain(304,305).
chain(305,306).
chain(306,307).
chain(307,308).
chain(308,309).
chain(309,310).
chain(310,311).
chain(311,312).
chain(312,313).
chain(313,314).
chain(314,315).
chain(315,316).
chain(316,317).
chain(317,318).
chain(318,319).
chain(319,320).
chain(320,321).
chain(321,322).
chain(322,323).
chain(323,324).
chain(324,325).
chain(325,326).
chain(326,327).
chain(327,328).
chain(328,329).
chain(329,330).
chain(330,331).
chain(331,332).
chain(332,333).
chain(333,334).
chain(334,335).
chain(335,336).
chain(336,337).
chain(337,338).
chain(338,339).
chain(339,340).
chain(340,341).
chain(341,342).
chain(342,343).
chain(343,344).
chain(344,345).
chain(345,346).
chain(346,347).
chain(347,348).
chain(348,349).
chain(349,350).
chain(350,351).
chain(351,352).
chain(352,353).
chain(353,354).
chain(354,355).
chain(355,356).
chain(356,357).
chain(357,358).
chain(358,359).
chain(359,360).
chain(360,361).
chain(361,362).
chain(362,363).
chain(363,364).
chain(364,365).
chain(365,366).
chain(366,367).
chain(367,368).
chain(368,369).
chain(369,370).
chain(370,371).
chain(371,372).
chain(372,373).
chain(373,374).
chain(374,375).
chain(375,376).
chain(376,377).
chain(377,378).
chain(378,379).
chain(379,380).
chain(380,381).
chain(381,382).
chain(382,383).
chain(383,384).
chain(384,385).
chain(385,386).
chain(386,387).
chain(387,388).
chain(388,389).
chain(389,390).
chain(390,391).
chain(391,392).
chain(392,393).
chain(393,394).
chain(394,395).
chain(395,396).
chain(396,397).
chain(397,398).
chain(398,399).
chain(399,400).

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff