Re: Porting Rubi
Henry Baker <[email protected]> Fri, 17 Jul 2026 02:53:52 +0000
| Newsgroups | gmane.comp.mathematics.maxima.general |
|---|---|
| Message-ID | <[email protected]> |
--===============7737338095550902112== Content-Type: multipart/alternative; boundary="--_NmP-ec4cc0d88b42adfa-Part_1" ----_NmP-ec4cc0d88b42adfa-Part_1 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable This appears to be a poor man's nondeterminism a la Prolog. The arms which never terminate should be gc'd; if two arms produce = different results, that's OK -- isn't that part of the definition of = nondeterminism ? -----Original Message----- From: Raymond Toy <[email protected]> Sent: Jul 16, 2026 7:17 PM To: <[email protected]> Subject: Re: [Maxima-discuss] Porting Rubi On 7/16/26 2:57 PM, Dan Stanger wrote: =20 I had a discussion with Rocky in NYC who works on = the Mathics Rubi code, and he pointed out that Rubi starts = multiple pattern matching threads and when one of them finishes by= matching, the others are terminated. In which lisps is this = implementable ? =20 Presumably sbcl. Maybe ccl and ecl? So the first one to = finish is considered the right answer? Seems kinda odd. It seems = that for some integrals you can get different results depending on = which finishes first? Presumably they=E2=80=99re equivalent? I certainly wouldn=E2=80=99t want answers that could vary by = chance. Isn=E2=80=99t this just an optimization so it doesn=E2=80=99t = take a long time to find a pattern that matches? =20 &#8203; =20 ----_NmP-ec4cc0d88b42adfa-Part_1 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <div style=3D"color:rgb(0, 0, 0);font-family:'Courier New', Courier, = monospace;font-size:10pt"><p style=3D"line-height: 1;">This appears to be a= poor man's nondeterminism a la Prolog.</p><p style=3D"line-height: 1;">The= arms which never terminate should be gc'd; if two arms produce different = results, that's OK -- isn't that part of the definition of nondeterminism ?= </p><p style=3D"line-height: 1;"></p><br></div><div = class=3D"elnk-inline-message-container" style=3D"border-left:1px solid = #aaa;box-sizing:border-box;padding:10px 0 10px 15px;margin:0"><p = style=3D"line-height: 1;">-----Original Message-----<br>From: Raymond Toy = <[email protected]><br>Sent: Jul 16, 2026 7:17 PM<br>To: = <[email protected]><br>Subject: Re: = [Maxima-discuss] Porting Rubi</p><p style=3D"margin: 0; padding: 0; = line-height: 1.5;"><br></p> =20 <meta http-equiv=3D"content-type" content=3D"text/html; = charset=3DUTF-8"> <title></title> <meta charset=3D"utf-8"> =20 =20 <div class=3D"markdown-here-wrapper"> <p style=3D"margin-bottom: 19.2px; margin-top: 0px; line-height: = 1;">On 7/16/26 2:57 PM, Dan Stanger wrote:<br> </p> <blockquote type=3D"cite" style=3D"border-block-color: rgb(119, 119, = 119); border-bottom-color: rgb(119, 119, 119); border-inline-color: rgb(114= , 159, 207) rgb(119, 119, 119); border-inline-start: 2px solid rgb(114, 159= , 207); border-left: 2px solid rgb(114, 159, 207); border-right-color: = rgb(119, 119, 119); border-top-color: rgb(119, 119, 119); color: rgb(119, = 119, 119); column-rule-color: rgb(119, 119, 119); margin: 19.2px 0px; = outline-color: rgb(119, 119, 119); padding-inline: 16px; padding-left: = 16px; padding-right: 16px; quotes: none; text-decoration-color: rgb(119, = 119, 119); text-emphasis-color: rgb(119, 119, 119);"> <div dir=3D"auto">I had a discussion with Rocky in NYC who works on the Mathics Rubi code, and he pointed out that Rubi starts multiple pattern matching threads and when one of them finishes by matching, the others are terminated. In which lisps is this implementable ?</div> </blockquote> Presumably sbcl. Maybe ccl and ecl? <p style=3D"margin-bottom: 19.2px; margin-top: 0px; line-height: = 1;">So the first one to finish is considered the right answer? Seems kinda odd. It seems that for some integrals you can get different results depending on which finishes first? Presumably they=E2=80=99re equivalent?</p> <p style=3D"margin-bottom: 19.2px; margin-top: 0px; line-height: = 1;">I certainly wouldn=E2=80=99t want answers that could vary by chance.</p> <p style=3D"margin-bottom: 19.2px; margin-top: 0px; line-height: = 1;">Isn=E2=80=99t this just an optimization so it doesn=E2=80=99t take a long time to find a = pattern that matches?</p> </div> <div class=3D"mdhr-raw" style=3D"height:0;width:0;max-height:0;max-widt= h:0;overflow:hidden;font-size:0;padding:0;margin:0;" aria-hidden=3D"true" = title=3D"MDH:PGJyPjxicj48ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPk9uIDcvMTYvMj= YgMjo1NyBQTSwgRGFuIFN0YW5nZXIgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIHR5cGU9I= mNpdGUiIGNpdGU9Im1pZDpDQUZ5aHRUNWhCd0N3NVhPZGVocGozdzVySzBMK2FVcE4zMkI4VjMr= PWFOejVMaTBMUXdAbWFpbC5nbWFpbC5jb20iPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR= 5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgIj48ZGl2IGRpcj0iYXV0byI+SSBoYWQgYSBkaXNjdX= NzaW9uIHdpdGggUm9ja3kgaW4gTllDIHdobyB3b3JrcyBvbiB0aGUgTWF0aGljcyBSdWJpIGNvZ= GUsIGFuZCBoZSBwb2ludGVkIG91dCB0aGF0IFJ1Ymkgc3RhcnRzIG11bHRpcGxlIHBhdHRlcm4g= bWF0Y2hpbmcgdGhyZWFkcyBhbmQgd2hlbiBvbmUgb2YgdGhlbSBmaW5pc2hlcyBieSBtYXRjaGl= uZywgdGhlIG90aGVycyBhcmUgdGVybWluYXRlZC4gSW4gd2hpY2ggbGlzcHMgaXMgdGhpcyBpbX= BsZW1lbnRhYmxlID88L2Rpdj48L2Jsb2NrcXVvdGU+UHJlc3VtYWJseSBzYmNsLiZuYnNwOyBNY= XliZSBjY2wgYW5kIGVjbD88YnI+PGJyPlNvIHRoZSBmaXJzdCBvbmUgdG8gZmluaXNoIGlzIGNv= bnNpZGVyZWQgdGhlIHJpZ2h0IGFuc3dlcj8mbmJzcDsgU2VlbXMga2luZGEgb2RkLiZuYnNwOyB= JdCBzZWVtcyB0aGF0IGZvciBzb21lIGludGVncmFscyB5b3UgY2FuIGdldCBkaWZmZXJlbnQgcm= VzdWx0cyBkZXBlbmRpbmcgb24gd2hpY2ggZmluaXNoZXMgZmlyc3Q/Jm5ic3A7IFByZXN1bWFib= HkgdGhleSdyZSBlcXVpdmFsZW50Pzxicj48YnI+SSBjZXJ0YWlubHkgd291bGRuJ3Qgd2FudCBh= bnN3ZXJzIHRoYXQgY291bGQgdmFyeSBieSBjaGFuY2UuPGJyPjxicj5Jc24ndCB0aGlzIGp1c3Q= gYW4gb3B0aW1pemF0aW9uIHNvIGl0IGRvZXNuJ3QgdGFrZSBhIGxvbmcgdGltZSB0byBmaW5kIG= EgcGF0dGVybiB0aGF0IG1hdGNoZXM/PGJyPjxicj48dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgd= GV4dGNvbXBsZXRlLWRyb3Bkb3duIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGFi= c29sdXRlOyB6LWluZGV4OiAxMDAwOyIgY29udGVudGVkaXRhYmxlPSJmYWxzZSIgcG9wb3Zlcj0= iYXV0byI+PC91bD4=3D">&#8203;</div> =20 </div> ----_NmP-ec4cc0d88b42adfa-Part_1-- --===============7737338095550902112== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============7737338095550902112== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Maxima-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/maxima-discuss --===============7737338095550902112==--