[m-dev.] Sorting results

Ralph Becket rbeck at microsoft.com
Thu Feb 8 03:42:55 AEDT 2001


Here are the results compiled with --high-level-code turned on and
stats gathered using benchmark_det (apparently this is more
accurate than using time__clock when benchmarking).

HEAPSORT

starting sorting benchmark on 1000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 29ms
5 x list__sort/1 on descending sequence: 40ms
5 x list__sort/1 on randomized sequence: 50ms
5 x array__sort/1 on ascending sequence: 20ms
list/array time = 145.00%
5 x array__sort/1 on descending sequence: 20ms
list/array time = 200.00%
5 x array__sort/1 on randomized sequence: 20ms
list/array time = 250.00%

starting sorting benchmark on 10000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 680ms
5 x list__sort/1 on descending sequence: 750ms
5 x list__sort/1 on randomized sequence: 900ms
5 x array__sort/1 on ascending sequence: 410ms
list/array time = 165.85%
5 x array__sort/1 on descending sequence: 280ms
list/array time = 267.86%
5 x array__sort/1 on randomized sequence: 260ms
list/array time = 346.15%

starting sorting benchmark on 100000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 10440ms
5 x list__sort/1 on descending sequence: 10250ms
5 x list__sort/1 on randomized sequence: 14880ms
5 x array__sort/1 on ascending sequence: 4980ms
list/array time = 209.64%
5 x array__sort/1 on descending sequence: 3140ms
list/array time = 326.43%
5 x array__sort/1 on randomized sequence: 3590ms
list/array time = 414.48%

QUICKSORT

starting sorting benchmark on 1000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 19ms
5 x list__sort/1 on descending sequence: 30ms
5 x list__sort/1 on randomized sequence: 40ms
5 x array__sort/1 on ascending sequence: 20ms
list/array time = 95.00%
5 x array__sort/1 on descending sequence: 20ms
list/array time = 150.00%
5 x array__sort/1 on randomized sequence: 10ms
list/array time = 400.00%

starting sorting benchmark on 10000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 640ms
5 x list__sort/1 on descending sequence: 630ms
5 x list__sort/1 on randomized sequence: 970ms
5 x array__sort/1 on ascending sequence: 240ms
list/array time = 266.67%
5 x array__sort/1 on descending sequence: 240ms
list/array time = 262.50%
5 x array__sort/1 on randomized sequence: 230ms
list/array time = 421.74%

starting sorting benchmark on 100000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 10350ms
5 x list__sort/1 on descending sequence: 10050ms
5 x list__sort/1 on randomized sequence: 14950ms
5 x array__sort/1 on ascending sequence: 3750ms
list/array time = 276.00%
5 x array__sort/1 on descending sequence: 2990ms
list/array time = 336.12%
5 x array__sort/1 on randomized sequence: 2930ms
list/array time = 510.24%

MERGESORT

starting sorting benchmark on 1000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 29ms
5 x list__sort/1 on descending sequence: 30ms
5 x list__sort/1 on randomized sequence: 50ms
5 x array__sort/1 on ascending sequence: 0ms
list/array time =   inf%
5 x array__sort/1 on descending sequence: 10ms
list/array time = 300.00%
5 x array__sort/1 on randomized sequence: 10ms
list/array time = 500.00%

starting sorting benchmark on 10000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 650ms
5 x list__sort/1 on descending sequence: 640ms
5 x list__sort/1 on randomized sequence: 960ms
5 x array__sort/1 on ascending sequence: 110ms
list/array time = 590.91%
5 x array__sort/1 on descending sequence: 90ms
list/array time = 711.11%
5 x array__sort/1 on randomized sequence: 180ms
list/array time = 533.33%

starting sorting benchmark on 100000 items over 5 iterations
5 x list__sort/1 on ascending sequence: 10210ms
5 x list__sort/1 on descending sequence: 10090ms
5 x list__sort/1 on randomized sequence: 15050ms
5 x array__sort/1 on ascending sequence: 1600ms
list/array time = 638.12%
5 x array__sort/1 on descending sequence: 1210ms
list/array time = 833.88%
5 x array__sort/1 on randomized sequence: 2160ms
list/array time = 696.76%

hlc really does the trick!  And a clear victory for mergesort
over quicksort, which rather flies in the face of the recieved
wisdom.  The code file is attached if anyone's interested/can
spot any clangers.

--
Ralph Becket      |      MSR Cambridge      |      rbeck at microsoft.com 



begin 600 array_sort.m
M.BT@;6]D=6QE(&%R<F%Y7W-O<G0N"CHM(&EN=&5R9F%C92X*.BT@:6UP;W)T
M7VUO9'5L92!A<G)A>2X*"CHM(&9U;F,@<V]R="AA<G)A>2A4*2D@/2!A<G)A
M>2A4*2X*.BT@;6]D92!S;W)T*&%R<F%Y7V1I*2`](&%R<F%Y7W5O(&ES(&1E
M="X*"CHM(&EM<&QE;65N=&%T:6]N+ at HZ+2!I;7!O<G1?;6]D=6QE(&EN="P@
M<W1R:6YG+"!R86YD;VTL(&QI<W0L('-T9%]U=&EL+"!R97%U:7)E+ at H*)2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+24*"B`@("`E(&%R<F%Y
M7U]S;W)T+S$@:&%S('1Y<&4@<W!E8VEA;&ES960@=F5R<VEO;G, at 9F]R(&%R
M<F%Y<R!O9 at H@("`@)2!I;G1S(&%N9"!S=')I;F=S(&]N('1H92!E>'!E8W1A
M=&EO;B!T:&%T('1H97-E(&-O;G-T:71U=&4*("`@("4@=&AE(&-O;6UO;B!C
M87-E(&%N9"!A<F4@:&5N8V4@=V]R=&@@<')O=FED:6YG(&$@9F%S="UP871H
M+ at H@("`@)0H@("`@)2!%>'!E<FEM96YT<R!I;F1I8V%T92!T:&%T('1Y<&4@
M<W!E8VEA;&ES871I;VX@:6UP<F]V97,*("`@("4 at 87)R87E?7W-O<G0O,2!B
M>2!A(&9A8W1O<B!O9B`S,"TT,"4N"B`@("`E"CHM('!R86=M82!T>7!E7W-P
M96,H87)R87E?<V]R=%]?<V]R="\Q+"!4(#T@:6YT*2X*.BT@<')A9VUA('1Y
M<&5?<W!E8RAA<G)A>5]S;W)T7U]S;W)T+S$L(%0@/2!S=')I;F<I+ at H*87)R
M87E?<V]R=%]?<V]R="A!*2`](&US;W)T7W-U8F%R<F%Y*$$L(&%R<F%Y7U]M
M:6XH02DL(&%R<F%Y7U]M87 at H02DI+@H*)2!A<G)A>5]S;W)T7U]S;W)T*$$I
M(#T@:'-O<G1?<W5B87)R87DH02P at 87)R87E?7VUI;BA!*2P at 87)R87E?7VUA
M>"A!*2DN"@HE(&%R<F%Y7W-O<G1?7W-O<G0H02D@/2!Q<V]R=%]S=6)A<G)A
M>2A0+"!A<G)A>5]?;6EN*$$I+"!A<G)A>5]?;6%X*$$I*2`Z+0H@("`@)2!R
M86YD;VU?7VEN:70H,C0U,#DX-RP at 4E,I+`H@("`@)2!R86YD;VU?<&5R;75T
M871I;VXH02P at 4"P at 4E,L(%\I+ at H*)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+24*"@DE(&%R<F%Y7U]R86YD;VU?<&5R;75T871I;VXH03`L
M($$L(%)3,"P at 4E,I('!E<FUU=&5S('1H92!E;&5M96YT<R!I;@H))2!!,"!G
M:79E;B!R86YD;VT@<V5E9"!24S`@86YD(')E='5R;G,@=&AE('!E<FUU=&5D
M(&%R<F%Y(&EN($$*"24 at 86YD('1H92!N97AT(')A;F1O;2!S965D(&EN(%)3
M+ at H))0HZ+2!P<F5D(')A;F1O;5]P97)M=71A=&EO;BAA<G)A>2A4*2P at 87)R
M87DH5"DL"@D)<F%N9&]M7U]S=7!P;'DL(')A;F1O;5]?<W5P<&QY*2X*.BT@
M;6]D92!R86YD;VU?<&5R;75T871I;VXH87)R87E?9&DL(&%R<F%Y7W5O+"!M
M9&DL(&UU;RD@:7, at 9&5T+ at H*<F%N9&]M7W!E<FUU=&%T:6]N*$$P+"!!+"!2
M4S`L(%)3*2`Z+0H)3&\@/2!A<G)A>5]?;6EN*$$P*2P*"4AI(#T at 87)R87E?
M7VUA>"A!,"DL"@E3>B`](&%R<F%Y7U]S:7IE*$$P*2P*"7!E<FUU=&%T:6]N
M7S(H3&\L($QO+"!(:2P at 4WHL($$P+"!!+"!24S`L(%)3*2X*"@H*.BT@<')E
M9"!P97)M=71A=&EO;E\R*&EN="P@:6YT+"!I;G0L(&EN="P at 87)R87DH5"DL
M(&%R<F%Y*%0I+`H)"7)A;F1O;5]?<W5P<&QY+"!R86YD;VU?7W-U<'!L>2DN
M"CHM(&UO9&4@<&5R;75T871I;VY?,BAI;BP@:6XL(&EN+"!I;BP at 87)R87E?
M9&DL(&%R<F%Y7W5O+"!M9&DL(&UU;RD@:7, at 9&5T+ at H*<&5R;75T871I;VY?
M,BA)+"!,;RP at 2&DL(%-Z+"!!,"P at 02P@4E,P+"!24RD at .BT*"2@@:68 at 22`^
M($AI('1H96X*"0E!("`]($$P+`H)"5)3(#T at 4E,P"@D@(&5L<V4*"2`@"7)A
M;F1O;5]?<F%N9&]M*%(L(%)3,"P at 4E,Q*2P*"2`@"4H@(#T at 3&\@*R`H4B!@
M<F5M8"!3>BDL"@D)03$@/2!S=V%P7V5L96US*$$P+"!)+"!**2P*"0EP97)M
M=71A=&EO;E\R*$D@*R`Q+"!,;RP at 2&DL(%-Z+"!!,2P at 02P@4E,Q+"!24RD*
M"2DN"@HE+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM)0H*("`@
M("4@<7-O<G1?<W5B87)R87DH02P at 3&\L($AI*2!S;W)T<R!I;G1O(&%S8V5N
M9&EN9R!O<F1E<@H@("`@)2!T:&4 at 96QE;65N=',@;V8 at 87)R87D at 02!W:71H
M(&EN9&EC97, at 3&\L($QO("L@,2P at +BXN+"!(:2X*("`@("4*("`@("4 at 5&AI
M<R!P<F]C961U<F4@=7-E<R!Q=6EC:W-O<G0 at 8VAO;W-I;F<@=&AE('!I=F]T
M(&%S"B`@("`E(&UE9&EA;B!O9B!T:')E92!W:&5R92!C86YD:61A=&4@<&EV
M;W1S(&AA=F4@:6YD:6-E<PH@("`@)2!,;RP@*$QO("L at 2&DI("\O,BP at 86YD
M($AI+ at H@("`@)0HZ+2!F=6YC('%S;W)T7W-U8F%R<F%Y*&%R<F%Y*%0I+"!I
M;G0L(&EN="D@/2!A<G)A>2A4*2X*.BT@;6]D92!Q<V]R=%]S=6)A<G)A>2AA
M<G)A>5]D:2P@:6XL(&EN*2`](&%R<F%Y7W5O(&ES(&1E="X*"CHM('!R86=M
M82!T>7!E7W-P96,H<7-O<G1?<W5B87)R87DO,RP at 5"`](&EN="DN"CHM('!R
M86=M82!T>7!E7W-P96,H<7-O<G1?<W5B87)R87DO,RP at 5"`]('-T<FEN9RDN
M"@IQ<V]R=%]S=6)A<G)A>2A!,"P at 3&\L($AI*2`]($$@.BT*("`@("@@:68@
M3&\@/CT at 2&D@=&AE;@H@("`@("`@($$@("`@(#T at 03`*("`@("`@96QS90H@
M("`@("`@($UI9"`@(#T@*$QO("L at 2&DI("\O(#(L"B`@("`@("`@4&EV;W0@
M/2!M961I86Y?;V9?=&AR964H03`@7B!E;&5M*$QO*2P at 03`@7B!E;&5M*$UI
M9"DL($$P(%X at 96QE;2A(:2DI+`H@("`@("`@('!A<G1I=&EO;BA0:79O="P@
M3&\L($AI+"!)+"!!,"P at 03$I+`H@("`@("`@($$R("`@(#T@<7-O<G1?<W5B
M87)R87DH03$L($QO+"!)("T@,2DL"B`@("`@("`@02`@("`@/2!Q<V]R=%]S
M=6)A<G)A>2A!,BP at 22P@($AI*0H@("`@*2X*"B4M+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TE"@H@("`@)2!P87)T:71I;VXH4&EV;W0L($QO
M+"!(:2P at 22P@03`L($$I(')E;W)D97)S('1H92!S=6)A<G)A>2!F<F]M"B`@
M("`E($QO('1O($AI(&EN($$P(&EN=&\@02!S=6-H('1H870 at 86QL(&5L96UE
M;G1S(&QE<W,@=&AA;B!0:79O="!C;VUE"B`@("`E(&)E9F]R92!A;&P@;W1H
M97(@96QE;65N=',L(')E='5R;FEN9R!T:&4@:6YD97@@;V8@=&AE(&1I=FED
M:6YG"B`@("`E('!O:6YT(&EN($DN"B`@("`E"CHM('!R960@<&%R=&ET:6]N
M*%0L(&EN="P@:6YT+"!I;G0L(&%R<F%Y*%0I+"!A<G)A>2A4*2DN"CHM(&UO
M9&4@<&%R=&ET:6]N*&EN+"!I;BP@:6XL(&]U="P at 87)R87E?9&DL(&%R<F%Y
M7W5O*2!I<R!D970N"@HZ+2!P<F%G;6$@='EP95]S<&5C*'!A<G1I=&EO;B\V
M+"!4(#T@:6YT*2X*.BT@<')A9VUA('1Y<&5?<W!E8RAP87)T:71I;VXO-BP@
M5"`]('-T<FEN9RDN"@IP87)T:71I;VXH4&EV;W0L($QO+"!(:2P at 22P@03`L
M($$I(#HM"B`@("`H(&EF($QO(#X at 2&D@=&AE;@H@("`@("`@($$@/2!!,"P*
M("`@("`@("!)(#T at 2&D@*R`Q("`@("`@("`@("`@("`@("`@("`@("4 at 16QT
M<R!A8F]V92!(:2!A<F4@/B!0:79O=`H@("`@("!E;'-E"B`@("`@("`@8V]M
M<&%R92A297-U;'0L($$P(%X at 96QE;2A,;RDL(%!I=F]T*2P*("`@("`@("`H
M"B`@("`@("`@("`@(%)E<W5L="`]("@\*2P*("`@("`@("`@("`@<&%R=&ET
M:6]N*%!I=F]T+"!,;R`K(#$L($AI+"!)+"!!,"P at 02D*("`@("`@("`["B`@
M("`@("`@("`@(%)E<W5L="`]("@]*2P*("`@("`@("`@("`@<&%R=&ET:6]N
M*%!I=F]T+"!,;R`K(#$L($AI+"!)+"!!,"P at 02D*("`@("`@("`["B`@("`@
M("`@("`@(%)E<W5L="`]("@^*2P*("`@("`@("`@("`@<&%R=&ET:6]N*%!I
M=F]T+"!,;RP at 2&D at +2`Q+"!)+"!S=V%P7V5L96US*$$P+"!,;RP at 2&DI+"!!
M*0H@("`@("`@("D*("`@("DN"@HE+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM)0H*("`@("4 at 0V]M<'5T97,@=&AE(&UI9&1L92!O9B!T:')E
M92!V86QU97,L(&]R('1H92!L96%S="!V86QU92!I9 at H@("`@)2!T=V\@87)E
M('1H92!S86UE+ at H@("`@)0HZ+2!F=6YC(&UE9&EA;E]O9E]T:')E92A4+"!4
M+"!4*2`](%0N"@HZ+2!P<F%G;6$@='EP95]S<&5C*&UE9&EA;E]O9E]T:')E
M92\S+"!4(#T@:6YT*2X*.BT@<')A9VUA('1Y<&5?<W!E8RAM961I86Y?;V9?
M=&AR964O,RP at 5"`]('-T<FEN9RDN"@IM961I86Y?;V9?=&AR964H6"P at 62P@
M6BD@/2!-(#HM"B`@("!C;VUP87)E*%)862P at 6"P at 62DL"B`@("`H"B`@("`@
M("`@4EA9(#T@*#PI+`H@("`@("`@(&-O;7!A<F4H4EE:+"!9+"!:*2P*("`@
M("`@("`H("`@4EE:(#T@*#PI+"`@("`@($T@/2!9"B`@("`@("`@.R`@(%)9
M6B`]("@]*2P@("`@("!-(#T at 6`H@("`@("`@(#L@("!265H@/2`H/BDL("`@
M("`@32`](&=E;F5R:6-?;6%X*%@L(%HI"B`@("`@("`@*0H@("`@.PH@("`@
M("`@(%)862`]("@]*2P@("`@("`@("`@32`](&=E;F5R:6-?;6EN*%DL(%HI
M"B`@("`["B`@("`@("`@4EA9(#T@*#XI+`H@("`@("`@(&-O;7!A<F4H4EA:
M+"!8+"!:*2P*("`@("`@("`H("`@4EA:(#T@*#PI+"`@("`@($T@/2!8"B`@
M("`@("`@.R`@(%)86B`]("@]*2P@("`@("!-(#T at 60H@("`@("`@(#L@("!2
M6%H@/2`H/BDL("`@("`@32`](&=E;F5R:6-?;6%X*%DL(%HI"B`@("`@("`@
M*0H@("`@*2X*"B4M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TE
M"@HZ+2!F=6YC(&=E;F5R:6-?;6EN*%0L(%0I(#T at 5"X*"CHM('!R86=M82!T
M>7!E7W-P96,H9V5N97)I8U]M:6XO,BP at 5"`](&EN="DN"CHM('!R86=M82!T
M>7!E7W-P96,H9V5N97)I8U]M:6XO,BP at 5"`]('-T<FEN9RDN"@IG96YE<FEC
M7VUI;BA8+"!9*2`]("@@:68 at 8V]M<&%R92 at H/"DL(%@L(%DI('1H96X at 6"!E
M;'-E(%D@*2X*"B4M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TE
M"@HZ+2!F=6YC(&=E;F5R:6-?;6%X*%0L(%0I(#T at 5"X*"CHM('!R86=M82!T
M>7!E7W-P96,H9V5N97)I8U]M87 at O,BP at 5"`](&EN="DN"CHM('!R86=M82!T
M>7!E7W-P96,H9V5N97)I8U]M87 at O,BP at 5"`]('-T<FEN9RDN"@IG96YE<FEC
M7VUA>"A8+"!9*2`]("@@:68 at 8V]M<&%R92 at H/BDL(%@L(%DI('1H96X at 6"!E
M;'-E(%D@*2X*"B4M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TE
M"@HZ+2!F=6YC('-W87!?96QE;7,H87)R87DH5"DL(&EN="P@:6YT*2`](&%R
M<F%Y*%0I+ at HZ+2!M;V1E('-W87!?96QE;7,H87)R87E?9&DL(&EN+"!I;BD@
M/2!A<G)A>5]U;R!I<R!D970N"@IS=V%P7V5L96US*$$P+"!)+"!**2`]($$@
M.BT*("`@(%A)(#T at 03`@7B!E;&5M*$DI+`H@("`@6$H@/2!!,"!>(&5L96TH
M2BDL"B`@("!!("`]("@H03`@("!>(&5L96TH22D at .CT@6$HI"B`@("`@("`@
M("`@("`@("!>(&5L96TH2BD at .CT@6$DI+ at H*)2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+24*)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+24*"B`@("`E($AE87`@<V]R="!A('-U8F%R<F%Y+ at H@("`@)0HZ
M+2!F=6YC(&AS;W)T7W-U8F%R<F%Y*&%R<F%Y*%0I+"!I;G0L(&EN="D@/2!A
M<G)A>2A4*2X*.BT@;6]D92!H<V]R=%]S=6)A<G)A>2AA<G)A>5]D:2P@:6XL
M(&EN*2`](&%R<F%Y7W5O(&ES(&1E="X*"CHM('!R86=M82!T>7!E7W-P96,H
M:'-O<G1?<W5B87)R87DO,RP at 5"`](&EN="DN"CHM('!R86=M82!T>7!E7W-P
M96,H:'-O<G1?<W5B87)R87DO,RP at 5"`]('-T<FEN9RDN"@IH<V]R=%]S=6)A
M<G)A>2A!+"!,;RP at 2&DI(#T@:'-O<G1?<W5B87)R87E?,BAM86ME7VAE87`H
M02P at 3&\L($QO+"!(:2DL($QO+"!(:2DN"@H*"CHM(&9U;F,@:'-O<G1?<W5B
M87)R87E?,BAA<G)A>2A4*2P@:6YT+"!I;G0I(#T at 87)R87DH5"DN"CHM(&UO
M9&4@:'-O<G1?<W5B87)R87E?,BAA<G)A>5]D:2P@:6XL(&EN*2`](&%R<F%Y
M7W5O(&ES(&1E="X*"CHM('!R86=M82!T>7!E7W-P96,H:'-O<G1?<W5B87)R
M87E?,B\S+"!4(#T@:6YT*2X*.BT@<')A9VUA('1Y<&5?<W!E8RAH<V]R=%]S
M=6)A<G)A>5\R+S,L(%0@/2!S=')I;F<I+ at H*:'-O<G1?<W5B87)R87E?,BA!
M,"P at 3&\L($AI*2`]($$@.BT*("`@("@@:68 at 3&\@/3P at 2&D@=&AE;@H@("`@
M("`@(%A,;R`]($$P(%X at 96QE;2A,;RDL"B`@("`@("`@6$AI(#T at 03`@7B!E
M;&5M*$AI*2P*("`@("`@("!!,2`@/2!!,"!>(&5L96TH2&DI(#H](%A,;RP*
M("`@("`@("!!,B`@/2!D;W=N7VAE87`H03$L(%A(:2P at 3&\L($AI("T@,2DL
M"B`@("`@("`@02`@(#T@:'-O<G1?<W5B87)R87E?,BA!,BP at 3&\L($AI("T@
M,2D*("`@("`@96QS90H@("`@("`@($$@/2!!,`H@("`@*2X*"B4M+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TE"@HZ+2!F=6YC(&UA:V5?:&5A
M<"AA<G)A>2A4*2P@:6YT+"!I;G0L(&EN="D@/2!A<G)A>2A4*2X*.BT@;6]D
M92!M86ME7VAE87`H87)R87E?9&DL(&EN+"!I;BP@:6XI(#T at 87)R87E?=6\@
M:7, at 9&5T+ at H*.BT@<')A9VUA('1Y<&5?<W!E8RAM86ME7VAE87`O-"P at 5"`]
M(&EN="DN"CHM('!R86=M82!T>7!E7W-P96,H;6%K95]H96%P+S0L(%0@/2!S
M=')I;F<I+ at H*;6%K95]H96%P*$$L($DL($QO+"!(:2D@/0H@("`@*"!I9B!)
M(#T\($AI('1H96X@;6%K95]H96%P*'5P7VAE87`H02P at 02!>(&5L96TH22DL
M($QO+"!)*2P at 22`K(#$L($QO+"!(:2D*("`@("`@("`@("`@("`@("!E;'-E
M($$*("`@("DN"@HE+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M)0H*.BT at 9G5N8R!U<%]H96%P*&%R<F%Y*%0I+"!4+"!I;G0L(&EN="D@/2!A
M<G)A>2A4*2X*.BT@;6]D92!U<%]H96%P*&%R<F%Y7V1I+"!I;BP@:6XL(&EN
M*2`](&%R<F%Y7W5O(&ES(&1E="X*"CHM('!R86=M82!T>7!E7W-P96,H=7!?
M:&5A<"\T+"!4(#T@:6YT*2X*.BT@<')A9VUA('1Y<&5?<W!E8RAU<%]H96%P
M+S0L(%0@/2!S=')I;F<I+ at H*=7!?:&5A<"A!+"!8+"!,;RP at 22D@/0H@("`@
M*"!I9B!,;R`\($DL(&-O;7!A<F4H*#PI+"!!(%X at 96QE;2A**2P at 6"D@=&AE
M;@H@("`@("`@('5P7VAE87`H02!>(&5L96TH22D at .CT@02!>(&5L96TH2BDL
M(%@L($QO+"!**0H@("`@("!E;'-E"B`@("`@("`@02!>(&5L96TH22D at .CT@
M6`H@("`@*0H at .BT*("`@($H@/2`H22`M(#$I("\O(#(N"@HE+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM)0H*.BT at 9G5N8R!D;W=N7VAE87`H
M87)R87DH5"DL(%0L(&EN="P@:6YT*2`](&%R<F%Y*%0I+ at HZ+2!M;V1E(&1O
M=VY?:&5A<"AA<G)A>5]D:2P@:6XL(&EN+"!I;BD@/2!A<G)A>5]U;R!I<R!D
M970N"@HZ+2!P<F%G;6$@='EP95]S<&5C*&1O=VY?:&5A<"\T+"!4(#T@:6YT
M*2X*.BT@<')A9VUA('1Y<&5?<W!E8RAD;W=N7VAE87`O-"P at 5"`]('-T<FEN
M9RDN"@ID;W=N7VAE87`H03`L(%@L($DL($AI*2`]($$@.BT*("`@($HQ(#T@
M22`K($D@*R`Q+`H@("`@2C(@/2!*,2`K(#$L"B`@("`H(&EF($HQ(#T\($AI
M+"!82C$@/2!!,"!>(&5L96TH2C$I+"!C;VUP87)E*"@\*2P@(%@L(%A*,2D*
M("`@("`@=&AE;B!+,"`]($HQ+"`@("!8,"`](%A*,0H@("`@("!E;'-E($LP
M(#T at 22P@("`@(%@P(#T at 6`H@("`@*2P*("`@("@@:68 at 2C(@/3P at 2&DL(%A*
M,B`]($$P(%X at 96QE;2A*,BDL(&-O;7!A<F4H*#PI+"!8,"P at 6$HR*0H@("`@
M("!T:&5N($LQ(#T at 2C(L("`@(%@Q(#T at 6$HR"B`@("`@(&5L<V4 at 2S$@/2!+
M,"P@("`@6#$@/2!8,`H@("`@*2P*("`@("@@:68 at 22`]($LQ('1H96X*("`@
M("`@("!!(#T at 03`@7B!E;&5M*$DI(#H](%@*("`@("`@96QS90H@("`@("`@
M($$@/2!D;W=N7VAE87`H03`@7B!E;&5M*$DI(#H](%@Q+"!8+"!+,2P at 2&DI
M"B`@("`I+ at H*)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+24*
M)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+24*"B`@("`E($UE
M<F=E('-O<G0 at 86X@87)R87DN"B`@("`E"CHM(&9U;F,@;7-O<G1?<W5B87)R
M87DH87)R87DH5"DL(&EN="P@:6YT*2`](&%R<F%Y*%0I+ at HZ+2!M;V1E(&US
M;W)T7W-U8F%R<F%Y*&%R<F%Y7V1I+"!I;BP@:6XI(#T at 87)R87E?=6\@:7,@
M9&5T+ at H*.BT@<')A9VUA('1Y<&5?<W!E8RAM<V]R=%]S=6)A<G)A>2\S+"!4
M(#T@:6YT*2X*.BT@<')A9VUA('1Y<&5?<W!E8RAM<V]R=%]S=6)A<G)A>2\S
M+"!4(#T@<W1R:6YG*2X*"FUS;W)T7W-U8F%R<F%Y*$$L($QO+"!(:2D@/0H@
M("`@;7-O<G1?<W5B87)R87E?,BA!+"!A<G)A>5]?8V]P>2A!*2P@,2P at 3&\L
M($AI*2X*"@H*.BT at 9G5N8R!M<V]R=%]S=6)A<G)A>5\R*&%R<F%Y*%0I+"!A
M<G)A>2A4*2P@:6YT+"!I;G0L(&EN="D@/2!A<G)A>2A4*2X*.BT@;6]D92!M
M<V]R=%]S=6)A<G)A>5\R*&%R<F%Y7W5I+"!A<G)A>5]D:2P@:6XL(&EN+"!I
M;BD@/2!A<G)A>5]U;R!I<R!D970N"@HZ+2!P<F%G;6$@='EP95]S<&5C*&US
M;W)T7W-U8F%R<F%Y7S(O-2P at 5"`](&EN="DN"CHM('!R86=M82!T>7!E7W-P
M96,H;7-O<G1?<W5B87)R87E?,B\U+"!4(#T@<W1R:6YG*2X*"FUS;W)T7W-U
M8F%R<F%Y7S(H02P at 0BP@3BP at 3&\L($AI*2`]"B`@("`H(&EF($X@/CT at 2&D*
M("`@("`@=&AE;B!!"B`@("`@(&5L<V4@;7-O<G1?<W5B87)R87E?,BAM<V]R
M=%]S=6)A<G)A>5\S*$$L($(L($QO+"!.+"!(:2DL($$L($X@*R!.+"!,;RP@
M2&DI"B`@("`I+ at H*"@HZ+2!F=6YC(&US;W)T7W-U8F%R<F%Y7S,H87)R87DH
M5"DL(&%R<F%Y*%0I+"!I;G0L(&EN="P@:6YT*2`](&%R<F%Y*%0I+ at HZ+2!M
M;V1E(&US;W)T7W-U8F%R<F%Y7S,H87)R87E?=6DL(&%R<F%Y7V1I+"!I;BP@
M:6XL(&EN*2`](&%R<F%Y7W5O(&ES(&1E="X*"CHM('!R86=M82!T>7!E7W-P
M96,H;7-O<G1?<W5B87)R87E?,R\U+"!4(#T@:6YT*2X*.BT@<')A9VUA('1Y
M<&5?<W!E8RAM<V]R=%]S=6)A<G)A>5\S+S4L(%0@/2!S=')I;F<I+ at H*;7-O
M<G1?<W5B87)R87E?,RA!+"!","P at 22P@3BP at 2&DI(#T at 0B`Z+0H@("`@*"!I
M9B!)("L at 3B`^($AI('1H96X*("`@("`@("!"("`](&-O<'E?<W5B87)R87DH
M02P at 0C`L($DL($AI+"!)*0H@("`@("!E;'-E(&EF($D@*R!.("L at 3B`^($AI
M('1H96X*("`@("`@("!"("`](&UE<F=E7W-U8F%R<F%Y<RA!+"!","P at 22P@
M22`K($X at +2`Q+"!)("L at 3BP@2&DL($DI"B`@("`@(&5L<V4*("`@("`@("!"
M,2`](&UE<F=E7W-U8F%R<F%Y<RA!+"!","P at 22P@22`K($X at +2`Q+"!)("L@
M3BP at 22`K($X@*R!.("T@,2P at 22DL"B`@("`@("`@0B`@/2!M<V]R=%]S=6)A
M<G)A>5\S*$$L($(Q+"!)("L at 3B`K($XL($XL($AI*0H@("`@*2X*"B4M+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TE"@H@("`@)2!M97)G97,@
M=&AE('1W;R!S;W)T960 at 8V]N<V5C=71I=F4@<W5B87)R87ES($QO,2`N+B!(
M:3$@86YD"B`@("`E($QO,B`N+B!(:3(@9G)O;2!!(&EN=&\@=&AE('-U8F%R
M<F%Y('-T87)T:6YG(&%T($D@:6X at 0BX*("`@("4@"CHM(&9U;F,@;65R9V5?
M<W5B87)R87ES*&%R<F%Y*%0I+"!A<G)A>2A4*2P@:6YT+"!I;G0L(&EN="P@
M:6YT+"!I;G0I(#T at 87)R87DH5"DN"CHM(&UO9&4@;65R9V5?<W5B87)R87ES
M*&%R<F%Y7W5I+"!A<G)A>5]D:2P@:6XL(&EN+"!I;BP@:6XL(&EN*2`](&%R
M<F%Y7W5O"B`@("`@("`@("`@(&ES(&1E="X*"CHM('!R86=M82!T>7!E7W-P
M96,H;65R9V5?<W5B87)R87ES+S<L(%0@/2!I;G0I+ at HZ+2!P<F%G;6$@='EP
M95]S<&5C*&UE<F=E7W-U8F%R<F%Y<R\W+"!4(#T@<W1R:6YG*2X*"FUE<F=E
M7W-U8F%R<F%Y<RA!+"!","P at 3&\Q+"!(:3$L($QO,BP at 2&DR+"!)*2`]($(@
M.BT*("`@("@@("`@("!I9B!,;S$@/B!(:3$@=&AE;B!"(#T at 8V]P>5]S=6)A
M<G)A>2A!+"!","P at 3&\R+"!(:3(L($DI"B`@("`@(&5L<V4@:68 at 3&\R(#X@
M2&DR('1H96X at 0B`](&-O<'E?<W5B87)R87DH02P at 0C`L($QO,2P at 2&DQ+"!)
M*0H@("`@("!E;'-E"B`@("`@("`@6#$@/2!!(%X at 96QE;2A,;S$I+`H@("`@
M("`@(%@R(#T at 02!>(&5L96TH3&\R*2P*("`@("`@("!C;VUP87)E*%(L(%@Q
M+"!8,BDL"B`@("`@("`@*`H@("`@("`@("`@("!2(#T@*#PI+`H@("`@("`@
M("`@("!"(#T@;65R9V5?<W5B87)R87ES*$$L($(P7F5L96TH22D at .CT@6#$L
M($QO,2LQ+"!(:3$L($QO,BP at 2&DR+"!)*S$I"B`@("`@("`@.PH@("`@("`@
M("`@("!2(#T@*#TI+`H@("`@("`@("`@("!"(#T@;65R9V5?<W5B87)R87ES
M*$$L($(P7F5L96TH22D at .CT@6#$L($QO,2LQ+"!(:3$L($QO,BP at 2&DR+"!)
M*S$I"B`@("`@("`@.PH@("`@("`@("`@("!2(#T@*#XI+`H@("`@("`@("`@
M("!"(#T@;65R9V5?<W5B87)R87ES*$$L($(P7F5L96TH22D at .CT@6#(L($QO
M,2P at 2&DQ+"!,;S(K,2P at 2&DR+"!)*S$I"B`@("`@("`@*0H@("`@*2X*"B4M
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TE"@HZ+2!F=6YC(&-O
M<'E?<W5B87)R87DH87)R87DH5"DL(&%R<F%Y*%0I+"!I;G0L(&EN="P@:6YT
M*2`](&%R<F%Y*%0I+ at HZ+2!M;V1E(&-O<'E?<W5B87)R87DH87)R87E?=6DL
M(&%R<F%Y7V1I+"!I;BP@:6XL(&EN*2`](&%R<F%Y7W5O(&ES(&1E="X*"CHM
M('!R86=M82!T>7!E7W-P96,H8V]P>5]S=6)A<G)A>2\U+"!4(#T@:6YT*2X*
M.BT@<')A9VUA('1Y<&5?<W!E8RAC;W!Y7W-U8F%R<F%Y+S4L(%0@/2!S=')I
M;F<I+ at H*8V]P>5]S=6)A<G)A>2A!+"!"+"!,;RP at 2&DL($DI(#T*("`@("@@
M:68 at 3&\@/B!(:0H@("`@("!T:&5N($(*("`@("`@96QS92!C;W!Y7W-U8F%R
M<F%Y*$$L($(@7B!E;&5M*$DI(#H]($$@7B!E;&5M*$QO*2P at 3&\@*R`Q+"!(
M:2P at 22`K(#$I"B`@("`I+ at H*)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+24*)2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+24*
M"CHM('!R960@<W5B87)R87E?:7-?<V]R=&5D*&%R<F%Y*%0I+"!I;G0L(&EN
M="DN"CHM(&UO9&4@<W5B87)R87E?:7-?<V]R=&5D*&%R<F%Y7W5I+"!I;BP@
M:6XI(&ES('-E;6ED970N"@IS=6)A<G)A>5]I<U]S;W)T960H02P at 3&\L($AI
M*2`Z+0H@("`@*"!I9B!,;R`K(#$@/CT at 2&D@=&AE;@H@("`@"71R=64*("`@
M("`@96QS90H@("`@("`@(&-O;7!A<F4H*#PI+"!!(%X at 96QE;2A,;RDL($$@
M7B!E;&5M*$QO("L@,2DI+`H@("`@("`@('-U8F%R<F%Y7VES7W-O<G1E9"A!
M+"!,;R`K(#$L($AI*0H@("`@*2X*"B4M+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TE"B4M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
$+2TE"@==
`
end
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list