<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ken:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>On what platform (OS and CPU) are you building and running your Modula-3 program?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Support for LONGINT is a relatively new addition to CM3, so it is possible that something is broken.  Perhaps your program can help us track it down.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I haven’t checked thru your program yet, but the fact that it gives the right answer using INTEGER, but not when using LONGINT, seems to point to the LONGINT implementation as a potential problem source we should investigate.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Randy Coleburn<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Ken Durocher [mailto:kcdurocher@gmail.com] <br><b>Sent:</b> Thursday, July 14, 2011 7:00 PM<br><b>To:</b> Jay K<br><b>Cc:</b> m3devel<br><b>Subject:</b> Re: [M3devel] LONGINT problem?<o:p></o:p></span></p></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.5in'>Sorry, to clarify, the LONGINT code does NOT give the correct output, but the INTEGER code DOES.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><p class=MsoNormal style='margin-left:.5in'>I did not write this C code, but it's output is the same as all the other examples (there is a Java example too, if you want that):<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><div><p class=MsoNormal style='margin-left:.5in'>#include <stdio.h><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>#include <stdlib.h><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>#include <stdint.h><o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>/* should be 64-bit integers if going over 1 billion */<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>typedef unsigned long xint;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>#define FMT "%lu"<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>xint total, prim, max_peri;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>xint U[][9] =  {{ 1, -2, 2,  2, -1, 2,  2, -2, 3},<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>{ 1,  2, 2,  2,  1, 2,  2,  2, 3},<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>{-1,  2, 2, -2,  1, 2, -2,  2, 3}};<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>void new_tri(xint in[])<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>{<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>int i;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>xint t[3], p = in[0] + in[1] + in[2];<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>if (p > max_peri) return;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>prim ++;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>/* for every primitive triangle, its multiples would be right-angled too;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>* count them up to the max perimeter */<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>total += max_peri / p;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>/* recursively produce next tier by multiplying the matrices */<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>for (i = 0; i < 3; i++) {<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>t[0] = U[i][0] * in[0] + U[i][1] * in[1] + U[i][2] * in[2];<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>t[1] = U[i][3] * in[0] + U[i][4] * in[1] + U[i][5] * in[2];<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>t[2] = U[i][6] * in[0] + U[i][7] * in[1] + U[i][8] * in[2];<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>new_tri(t);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>}<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>int main()<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>{<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>xint seed[3] = {3, 4, 5};<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>for (max_peri = 10; max_peri <= 100000000; max_peri *= 10) {<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>total = prim = 0;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>new_tri(seed);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'> <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                        </span>printf(<span class=apple-tab-span>  </span>"Up to "FMT": "FMT" triples, "FMT" primitives.\n",<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>                                    </span>max_peri, total, prim);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>}<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><span class=apple-tab-span>            </span>return 0;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>}<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>The output from that code is:<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><div><p class=MsoNormal style='margin-left:.5in'>Up to 10: 0 triples, 0 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 100: 17 triples, 7 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 1000: 325 triples, 70 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 10000: 4858 triples, 703 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 100000: 64741 triples, 7026 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 1000000: 808950 triples, 70229 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 10000000: 9706567 triples, 702309 primitives.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Up to 100000000: 113236940 triples, 7023027 primitives.<o:p></o:p></p></div></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Note this output corresponds with the INTEGER output.<o:p></o:p></p></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><p class=MsoNormal style='margin-left:.5in'>On Thu, Jul 14, 2011 at 5:17 PM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:<o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'>Can you isolate if the problem is the formating/printing, or if it is in the computation?<br>i.e.:<br><br>Use "unsafe" and print out a little hex dump of the integer/longint variables?<br><br>As well, what does LONGINT on a 64bit machine do? Eh..well, it might work, it might not.<br>Doesn't really matter. Let's focus on non-working 32bit machine with LONGINT.<br><br>Also, please confirm which is the right, i.e. by writing it in C.<br>Also, maybe just try to format as unsigned/hex using the safe interfaces?<br>Also, this will be good to add to our automated tests. Assuming it doesn't run too slowly.<br>Assuming it reproduces for anyone else (sorry, a bit rude of me).<br><br>Later, thank you,<br> - Jay<br><br><o:p></o:p></p><div><div class=MsoNormal align=center style='margin-left:.5in;text-align:center'><hr size=2 width="100%" align=center></div><p class=MsoNormal style='margin-left:.5in'>Date: Thu, 14 Jul 2011 16:26:05 -0500<br>From: <a href="mailto:kcdurocher@gmail.com" target="_blank">kcdurocher@gmail.com</a><br>To: <a href="mailto:m3devel@elegosoft.com" target="_blank">m3devel@elegosoft.com</a><br>Subject: [M3devel] LONGINT problem?<o:p></o:p></p><div><div><p class=MsoNormal style='margin-left:.5in'><br><br>I was writing a program to calculate "Pythagorean triples" recursively, and ran into a problem.  Here's the program:<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><div><p class=MsoNormal style='margin-left:.5in'>MODULE PyTriples EXPORTS Main;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>IMPORT IO, Fmt;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>VAR tcnt, pcnt, max, i: LONGINT;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>PROCEDURE NewTriangle(a, b, c: LONGINT; VAR tcount, pcount: LONGINT) =<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  VAR perim := a + b + c;      <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  BEGIN<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>    IF perim <= max THEN<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>      pcount := pcount + 1L;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>      tcount := tcount + max DIV perim;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>      NewTriangle(a-2L*b+2L*c, 2L*a-b+2L*c, 2L*a-2L*b+3L*c, tcount, pcount);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>      NewTriangle(a+2L*b+2L*c, 2L*a+b+2L*c, 2L*a+2L*b+3L*c, tcount, pcount);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>      NewTriangle(2L*b+2L*c-a, b+2L*c-2L*a, 2L*b+3L*c-2L*a, tcount, pcount);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>    END;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  END NewTriangle;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>BEGIN<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>i := 100L;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>REPEAT<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  max := i;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  tcnt := 0L;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  pcnt := 0L;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  NewTriangle(3L, 4L, 5L, tcnt, pcnt);<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  IO.Put(Fmt.LongInt(i) & ": " & Fmt.LongInt(tcnt) & " Triples, " &<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>    Fmt.LongInt(pcnt) & " Primitives\n");<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>  i := i * 10L;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>UNTIL i = 10000000L;<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>END PyTriples.<o:p></o:p></p></div></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>This outputs:<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><div><p class=MsoNormal style='margin-left:.5in'>100: 17 Triples, 7 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>1000: 325 Triples, 70 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>10000: 0858 Triples, 703 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>100000: 40701 Triples, 7024 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>1000000: 808950 Triples, 70229 Primitives<o:p></o:p></p></div></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>However, if I just use INTEGER on a 64 bit machine, I get the proper output:<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><div><p class=MsoNormal style='margin-left:.5in'>100: 17 Triples, 7 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>1000: 325 Triples, 70 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>10000: 4858 Triples, 703 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>100000: 64741 Triples, 7026 Primitives<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>1000000: 808950 Triples, 70229 Primitives<o:p></o:p></p></div></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'>Note how 10000 and 100000 are different. The code is literally exactly the same, only with LONGINT replaced by INTEGER.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div></div></div></div></div></div></div><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p></div></div></body></html>