Re: Charsets

Richard Fateman <[email protected]> Fri, 31 Jul 2026 15:31:39 -0700
Newsgroups gmane.comp.mathematics.maxima.general
Message-ID <CADB8Zm6NNDW6W3kEbmaLYJG2xXaBJ5z7T7SaO8aQRL3v995XHQ@mail.gmail.com>
--===============8218703329867063681==
Content-Type: multipart/alternative; boundary="00000000000033ce1f0657efc1b3"

--00000000000033ce1f0657efc1b3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Historically, and maybe today (I don't have a current Maple system), the
ordering of names
in Maple was based on the order in which the names appeared.
So the tests for Maple may be really rather simple.
In a fresh Maple, print   x1+x2+x3
In another fresh Maple, print   x3+x2+x1
or maybe make up some more elaborate names to avoid any possible
initialized orderings.
  In fact, the (way old) comparison of timings for certain operations in
Maple vs others
favored Maple, unless you insisted that some alphabetical ordering be
asserted after
the computation (on large expressions).

This is maybe not a terrible heuristic if it is used and you know about
it.  It means that
you can assert an ordering by mentioning names in some introductory
expression, the
way you want them.
Have fun..
RJF


On Fri, Jul 31, 2026 at 1:45=E2=80=AFPM David Scherfgen via Maxima-discuss =
<
[email protected]> wrote:

> It seems like Maxima and Maple use different variable ordering, so for
> multivariate polynomials they produce different answers. This doesn't mea=
n
> that either one is wrong. It's just a matter of definition.
> Can you share the actual, full computation that gives a wrong result?
>
> Dan Stanger <[email protected]> schrieb am Fr., 31. Juli 2026,
> 17:14:
>
>> Hello All,
>> I isolated the issue with Charsets to one line in the code, where the
>> current polynomial is divided by the leading coefficient and the numerat=
or
>> used in the continuing calculation, to eliminate possible fractional
>> coefficients in the polynomials. However Maples and Maximas leading
>> coefficients produce different results. With Viktor's help I produced th=
e
>> following table:
>> Expression Maxima Maple Same
>> print(lcoeff(-x1-2*x1*x2^2+(-x1^2)*x2-x3^2+x1*x2*x3)) -1 -1 Y
>> print(lcoeff(2*x1^2*x2-2*x1*x2^2+(-2)*x1^2*x2^2-x1-x1^2)) -2 -2 Y
>> print(lcoeff(1+3*x2*x3^2+(-x2)*x3+4*x2^2+(-2)*x2^3*x3+4*x2^4)) 3 4 N
>> print(lcoeff(4*x2^3+4*x2^5+x2+(-4)*x4*x2^4+(-4)*x4*x2^2-x4)) -4 4 N
>> print(lcoeff(1+8*x2^6+12*x2^4+6*x2^2)) 8 8 Y
>> print(lcoeff(12*x2^5+12*x2^3+3*x2)) 12 12 Y
>> print(lcoeff(-1-4*x2^4+(-4)*x2^2)) -4 -4 Y
>> print(lcoeff(4*x2^4+4*x2^2+1)) 4 4 Y
>> print(lcoeff(-2*x2^3-x2+x2^2*x3+x2^2)) 1 -2 N
>> print(lcoeff(2*x2^4+x2^2+(-2)*x4*x2^3+(-x4)*x2+x4*x2^2-x2^3)) -2 2 N
>> print(lcoeff(-4*x2^5-5*x2^3+4*x2^4-x2+2*x2^2)) -4 -4 Y
>> print(lcoeff(4*x2^4+2*x2^2+(-2)*x2^3)) 4 4 Y
>> print(lcoeff(-2*x2^3-x2+x2^2)) -2 -2 Y
>> print(lcoeff(2*x2^3+x2-x2^2)) 2 2 Y
>> print(lcoeff(2*x4*x2^2+x2-x2^2)) 2 2 Y
>> print(lcoeff(-1+x3^2)) 1 1 Y
>> print(lcoeff(-x4+x2)) -1 1 N
>> print(lcoeff(-1-2*x2^2+x2)) -2 -2 Y
>> Does anyone have time to take a look at this to try to determine the
>> maple lcoeff algorithm?
>> Dan Stanger
>> _______________________________________________
>> Maxima-discuss mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/maxima-discuss
>>
> _______________________________________________
> Maxima-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/maxima-discuss
>

--00000000000033ce1f0657efc1b3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,sa=
ns-serif;font-size:small">Historically, and maybe today (I don&#39;t have a=
 current Maple system), the ordering of names</div><div class=3D"gmail_defa=
ult" style=3D"font-family:arial,sans-serif;font-size:small">in Maple was ba=
sed on the order in which the names appeared.</div><div class=3D"gmail_defa=
ult" style=3D"font-family:arial,sans-serif;font-size:small">So the tests fo=
r Maple may be really rather simple.</div><div class=3D"gmail_default" styl=
e=3D"font-family:arial,sans-serif;font-size:small">In a fresh Maple, print=
=C2=A0 =C2=A0x1+x2+x3</div><div class=3D"gmail_default" style=3D"font-famil=
y:arial,sans-serif;font-size:small">In another fresh Maple, print=C2=A0 =C2=
=A0x3+x2+x1</div><div class=3D"gmail_default" style=3D"font-family:arial,sa=
ns-serif;font-size:small">or maybe make up some more elaborate names to avo=
id any possible=C2=A0</div><div class=3D"gmail_default" style=3D"font-famil=
y:arial,sans-serif;font-size:small">initialized orderings.</div><div class=
=3D"gmail_default" style=3D"font-family:arial,sans-serif;font-size:small">=
=C2=A0 In fact, the (way old) comparison of timings for certain operations =
in Maple vs others</div><div class=3D"gmail_default" style=3D"font-family:a=
rial,sans-serif;font-size:small">favored Maple, unless you insisted that so=
me alphabetical ordering be asserted after</div><div class=3D"gmail_default=
" style=3D"font-family:arial,sans-serif;font-size:small">the computation (o=
n large expressions).</div><div class=3D"gmail_default" style=3D"font-famil=
y:arial,sans-serif;font-size:small"><br></div><div class=3D"gmail_default" =
style=3D"font-family:arial,sans-serif;font-size:small">This is maybe not a =
terrible heuristic if it is used and you know about it.=C2=A0 It means that=
</div><div class=3D"gmail_default" style=3D"font-family:arial,sans-serif;fo=
nt-size:small">you can assert an ordering by mentioning names in some intro=
ductory expression, the</div><div class=3D"gmail_default" style=3D"font-fam=
ily:arial,sans-serif;font-size:small">way you want them.</div><div class=3D=
"gmail_default" style=3D"font-family:arial,sans-serif;font-size:small">Have=
 fun..</div><div class=3D"gmail_default" style=3D"font-family:arial,sans-se=
rif;font-size:small">RJF</div><div class=3D"gmail_default" style=3D"font-fa=
mily:arial,sans-serif;font-size:small"><br></div></div><br><div class=3D"gm=
ail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On F=
ri, Jul 31, 2026 at 1:45=E2=80=AFPM David Scherfgen via Maxima-discuss &lt;=
<a href=3D"mailto:[email protected]">maxima-discuss@list=
s.sourceforge.net</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote"=
 style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);p=
adding-left:1ex"><div dir=3D"auto">It seems like Maxima and Maple use diffe=
rent variable ordering, so for multivariate polynomials they produce differ=
ent answers. This doesn&#39;t mean that either one is wrong. It&#39;s just =
a matter of definition.<div dir=3D"auto">Can you share the actual, full com=
putation that gives a wrong result?</div></div><br><div class=3D"gmail_quot=
e"><div dir=3D"ltr" class=3D"gmail_attr">Dan Stanger &lt;<a href=3D"mailto:=
[email protected]" target=3D"_blank">[email protected]</a>&=
gt; schrieb am Fr., 31. Juli 2026, 17:14:<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,2=
04,204);padding-left:1ex"><div dir=3D"ltr"><div>Hello All,</div><div>I isol=
ated the issue with Charsets to one line in the code, where the current pol=
ynomial is divided by the leading coefficient and the numerator used in the=
 continuing calculation, to eliminate possible fractional coefficients in t=
he polynomials. However Maples and Maximas leading coefficients produce dif=
ferent results. With Viktor&#39;s help I produced the following table:</div=
><div>



=09
=09
	<span></span>
=09
=09
=09



<table cellspacing=3D"0" border=3D"0" style=3D"font-family:&quot;Liberation=
 Sans&quot;;font-size:x-small">
	<colgroup width=3D"417"></colgroup>
	<colgroup span=3D"3" width=3D"85"></colgroup>
	<tbody style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small"=
><tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">Expression</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Maxima</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Maple</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Same</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-x1-2*x1*x2^2+(-x1^2)*x2-x3^2+x1*x=
2*x3))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-1</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-1</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(2*x1^2*x2-2*x1*x2^2+(-2)*x1^2*x2^2=
-x1-x1^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(1+3*x2*x3^2+(-x2)*x3+4*x2^2+(-2)*x=
2^3*x3+4*x2^4))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">3</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">4</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">N</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(4*x2^3+4*x2^5+x2+(-4)*x4*x2^4+(-4)=
*x4*x2^2-x4))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-4</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">4</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">N</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(1+8*x2^6+12*x2^4+6*x2^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">8</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">8</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(12*x2^5+12*x2^3+3*x2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">12</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">12</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-1-4*x2^4+(-4)*x2^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-4</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-4</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(4*x2^4+4*x2^2+1))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">4</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">4</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-2*x2^3-x2+x2^2*x3+x2^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">1</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">N</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(2*x2^4+x2^2+(-2)*x4*x2^3+(-x4)*x2+=
x4*x2^2-x2^3))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">N</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-4*x2^5-5*x2^3+4*x2^4-x2+2*x2^2))<=
/td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-4</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-4</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(4*x2^4+2*x2^2+(-2)*x2^3))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">4</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">4</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-2*x2^3-x2+x2^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(2*x2^3+x2-x2^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">2</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(2*x4*x2^2+x2-x2^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">2</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-1+x3^2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">1</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">1</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-x4+x2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-1</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">1</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">N</td>
	</tr>
	<tr style=3D"font-family:&quot;Liberation Sans&quot;;font-size:x-small">
		<td height=3D"17" align=3D"left" style=3D"font-family:&quot;Liberation Sa=
ns&quot;;font-size:x-small">print(lcoeff(-1-2*x2^2+x2))</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"right" style=3D"font-family:&quot;Liberation Sans&quot;;font=
-size:x-small">-2</td>
		<td align=3D"left" style=3D"font-family:&quot;Liberation Sans&quot;;font-=
size:x-small">Y</td>
	</tr>
</tbody></table>



</div><div><font face=3D"arial,sans-serif">Does anyone have time to take a =
look at this to try to determine the maple lcoeff algorithm?</font></div><d=
iv><font face=3D"arial,sans-serif">Dan Stanger</font></div></div>
_______________________________________________<br>
Maxima-discuss mailing list<br>
<a href=3D"mailto:[email protected]" rel=3D"noreferrer" =
target=3D"_blank">[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/maxima-discuss" rel=
=3D"noreferrer noreferrer" target=3D"_blank">https://lists.sourceforge.net/=
lists/listinfo/maxima-discuss</a><br>
</blockquote></div>
_______________________________________________<br>
Maxima-discuss mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">M=
[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/maxima-discuss" rel=
=3D"noreferrer" target=3D"_blank">https://lists.sourceforge.net/lists/listi=
nfo/maxima-discuss</a><br>
</blockquote></div>

--00000000000033ce1f0657efc1b3--


--===============8218703329867063681==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============8218703329867063681==
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

--===============8218703329867063681==--