aroche

Dr. Austin Roche

770 Reputation

11 Badges

12 years, 314 days
Maplesoft
Waterloo, Ontario, Canada
I am a Software Architect in the Math Group, working mostly on the Maple library. I have been working at Maplesoft since 2007, in various areas including differential equations, integration, mathematical functions, simplification, root finding, and logic. I completed a Master's degree from McGill University with a thesis in Differential Geometry, and a PhD from Simon Fraser University with a thesis on Differential Equations.

MaplePrimes Activity


These are replies submitted by aroche

With the release of the dot release Maple 2025.1, the SupportTools package is now installed with Maple by default. One result of this is that the RemoveUpdates command now completely removes the Maple Customer Support Updates workbook from the toolbox folder, instead of reverting to version 4. This is the new behaviour in Maple 2025.1 and later releases:

Load the SupportTools package:

with(SupportTools)

[RemoveUpdates, Update, Version]

Check which version is currently installed:

Version()

`The Customer Support Updates package is not installed`

Update to the latest version (you could also call Update(latest) or Version(latest)):

Update()

Warning, you have just installed version 29 of the Customer Support Updates. In order to have this version active, please close Maple entirely, then open Maple and enter SupportTools:-Version() to confirm the active version.

After having closed and re-opened the Maple GUI (including all of its windows):

Version()

`The Customer Support Updates version in the MapleCloud is 29 and is the same as the version installed in this computer, created June 23, 2025, 10:25 hours Eastern Time.`

Now remove all updates for this release of Maple:

RemoveUpdates()

removing: C:\Users\Austin\maple\toolbox\2025\Maple Customer Support Updates/lib/Maple Customer Support Updates.maple
removing: C:\Users\Austin\maple\toolbox\2025\Maple Customer Support Updates/lib/override_maple.txt
removing: C:\Users\Austin\maple\toolbox\2025\Maple Customer Support Updates/version.txt
removing: C:\Users\Austin\maple\toolbox\2025\Maple Customer Support Updates/uninstall_manifest.mtxt

Download SupportTools2025_1.mw

Hi @nm ,

This new problem you reported is fixed now. The recursion was happening in the simplification of properties, namely `property/signum`. The new result for the odetest call is a timeout rather than a recursion:

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 28 and is the same as the version installed in this computer, created June 7, 2025, 09:10 hours Eastern Time.`

Prior to this fix this was a recursion error:

`property/signum`(LinearProp(1,integer,((1/2-1/2*I*3^(1/2))/(3/2+1/2*I*3^(1/2))+1)*(3/2+1/2*I*3^(1/2))-2));

OrProp(-1, 0, 1)

ode := diff(x(y),y) = 1/((y+1)*(y^2-y+1)/(x(y)+1)/(x(y)^2-x(y)+1))^(1/2):

sol:=-(-3+I*3^(1/2))^(1/2)*(-x(y)-1)^(1/2)*((I*3^(1/2)-2*x(y)+1)/(I*3^(1/2)+3))^(1/2)*((3^(1/2)-2*I*x(y)+I)/(3*I+3^(1/2)))^(1/2)*2^(1/2)*EllipticF((-2*x(y)-2)^(1/2)/(-3+I*3^(1/2))^(1/2),2/(3^(1/2)+I))/(x(y)^3+1)^(1/2)+2/3*I/((x(y)+1)*(x(y)^2-x(y)+1))^(1/2)*3^(1/2)*(I*(y-1/2-1/2*I*3^(1/2))*3^(1/2))^(1/2)*((y+1)/(3/2+1/2*I*3^(1/2)))^(1/2)*(-I*(y-1/2+1/2*I*3^(1/2))*3^(1/2))^(1/2)/(1/(x(y)+1)/(x(y)^2-x(y)+1)*y^3+1/(x(y)+1)/(x(y)^2-x(y)+1))^(1/2)*EllipticF(1/3*3^(1/2)*(I*(y-1/2-1/2*I*3^(1/2))*3^(1/2))^(1/2),(I*3^(1/2)/(3/2+1/2*I*3^(1/2)))^(1/2)) = _C3:

timelimit(30, (odetest(sol, ode) assuming integer));

Error, (in anonymous procedure called from evala/analyze) time expired
Download 240484.mw


Austin

@nm I do hope we can get to the bottom of this moderation problem soon. I find your contribution here very valuable and it wil lbe a shame if you leave.

For the record, here is the new bug report you posted:

> sol:=-(-3+I*3^(1/2))^(1/2)*(-x(y)-1)^(1/2)*((I*3^(1/2)-2*x(y)+1)/(I*3^(1/2)+3))^(1/2)*((3^(1/2)
       -2*I*x(y)+I)/(3*I+3^(1/2)))^(1/2)*2^(1/2)*EllipticF((-2*x(y)-2)^(1/2)/(-3+I*3^(1/2))^(1/2),
        2/(3^(1/2)+I))/(x(y)^3+1)^(1/2)+2/3*I/((x(y)+1)*(x(y)^2-x(y)+1))^(1/2)*3^(1/2)
       *(I*(y-1/2-1/2*I*3^(1/2))*3^(1/2))^(1/2)*((y+1)/(3/2+1/2*I*3^(1/2)))^(1/2)
       *(-I*(y-1/2+1/2*I*3^(1/2))*3^(1/2))^(1/2)/(1/(x(y)+1)/(x(y)^2-x(y)+1)*y^3+1/(x(y)+1)
       /(x(y)^2-x(y)+1))^(1/2)*EllipticF(1/3*3^(1/2)*(I*(y-1/2-1/2*I*3^(1/2))*3^(1/2))^(1/2),
       (I*3^(1/2)/(3/2+1/2*I*3^(1/2)))^(1/2)) = _C3:

> ode:=diff(x(y),y) = 1/((y+1)*(y^2-y+1)/(x(y)+1)/(x(y)^2-x(y)+1))^(1/2):

> odetest(sol,ode) assuming integer;
Error, (in type/complex) too many levels of recursion

Hi @nm,

I have a fix ready for the new problem you posted; it will likely appear in a new update very soon.

Also, I agree that the new report was not a duplicate although they are similar and maybe that is the criteria being used? I've asked internally about why these keep getting removed as duplicates.

-Austin

Hi @nm, In principle I agree it would be nice to have a feature like that but I am not sure about the feasbility of it. I will ask about it.

By the way, I know you are already aware, but for anyone else reading here, the recursion error you mentioned in the P.S. is now fixed.

Austin

Hi @nm,

Thanks! I've adjusted the fix mentioned above and hopefully it will be sufficient now. Please use v. 25 of the Customer Support Updates:

SupportTools:-Version();

`The Customer Support Updates version in the MapleCloud is 25 and is the same as the version installed in this computer, created June 3, 2025, 12:17 hours Eastern Time.`

sol:=y(x) = -(LambertW(-exp(-1/2*x))+1)^2+x:
ode:=diff(y(x),x) = (x-y(x))^(1/2):
IC:=y(2) = 2:

odetest(sol,[ode, IC]) assuming x < 1;

[-csgn(LambertW(-exp(-(1/2)*x))+1)*LambertW(-exp(-(1/2)*x))+LambertW(-exp(-(1/2)*x))-csgn(LambertW(-exp(-(1/2)*x))+1)+1, 0]


Download 240455_2.mw

Cheers,

    Austin

@Christopher2222

Also note this from the assume help page:

  • When you make assumptions about a variable, thereafter it prints with an appended tilde (~) to indicate that the variable carries assumptions.  This behavior can be changed, if desired, by updating the showassumed interface setting (see interface).


and from the interface help page:

  • showassumed: 0, 1, or 2. Indicates how variables with assumptions are displayed.  A setting of 0 hides assumptions.  A setting of 1 causes variables with assumptions to be displayed with a trailing tilde. A setting of 2 causes a list of assumed variables to be displayed at the end of the expression.

Austin

Hi @nm,

Thanks. Regarding this "new bug", actually the underlying issue existed already in Maple2025:

> A := LinearProp(I,RealRange(Open(0),Open(Im(LambertW(-1)))),0):

> B := ComplexRange(I*Open(0),Open(Re(LambertW(-1)))+I*Open(Im(LambertW(-1)))):
> AndProp(A,B);
Error, (in property/AndProp/+) too many levels of recursion |lib/assume/src/property.mm:363|

but it was exposed by the most recent update and your new example.

Anyway, it's fixed now in a new update. See my post here for details:

https://www.mapleprimes.com/questions/240455-Possible-New-Bug-In-V-22-Of-SupportTools#answer309858

-Austin

Hi @Christopher2222, @emendes,

I tried copying Christopher's input (note I changed the Beta to beta because you had both but Ed's input didn't seem to) and trying solve but I got no solution:

restart;

a := [sqrt((beta*rho*xi__8^2 - beta*xi__8^2)/xi__8) = sqrt(beta*rho - beta), (-rho + 1 + sqrt(beta*rho*xi__8^2 - beta*xi__8^2))/(xi__3*xi__8 - 1) = sqrt(beta*rho - beta), -(-rho*xi__3*xi__8 + sqrt(beta*rho*xi__8^2 - beta*xi__8^2) + xi__3*xi__8)/(xi__8*(xi__3*xi__8 - 1)) = rho - 1];

[((beta*rho*xi__8^2-beta*xi__8^2)/xi__8)^(1/2) = (beta*rho-beta)^(1/2), (-rho+1+(beta*rho*xi__8^2-beta*xi__8^2)^(1/2))/(xi__3*xi__8-1) = (beta*rho-beta)^(1/2), -(-rho*xi__3*xi__8+(beta*rho*xi__8^2-beta*xi__8^2)^(1/2)+xi__3*xi__8)/(xi__8*(xi__3*xi__8-1)) = rho-1]

solve(a, {xi__8, xi__3});

solve(a, {xi__8, xi__3}, AllSolutions);


Download 240418_new.mw

Ed, can you provide the exact command you used to get this solution? And the version you are using if it's not Maple 2025?

Thanks!

Hi @Kitonum ,

My suggestion would be to use piecewise instead of `if`. `if` will treat any relation as false if it doesn't evaluate to true, and this occurs before n and m acquire values (evaluation happens from the inside out in this situation):

sum(sum(`if`(igcd(m,n)=1, 1/(m^2*n^2), 0), m=1..10), n=1..10);

0

sum(sum(piecewise(igcd(m,n)=1, 1/(m^2*n^2), 0), m=1..10), n=1..10);

29069/12960

sum(sum(piecewise(igcd(m,n)=1, 1/(m^2*n^2), 0), m=1..infinity), n=1..infinity);

sum(sum(piecewise(igcd(m, n) = 1, 1/(m^2*n^2), 0), m = 1 .. infinity), n = 1 .. infinity)

Download 240403.mw

Cheers,
      Austin

Hi @nm,

I have no comment on the integration result at this point, but I cannot reproduce the recursion errors during simplify that you cite. I tried on Windows and Linux, both with clean Maple 2025, and also with Customer Support Updates v. 13 which I assume you might be using. Can you confirm that you can reproduce these recursion errors? If so, please specify the versions of the updates you are using.

Thanks,
   Austin

Hi @nm ,

My apologies, these two int examples are indeed not fixed yet. When I tested them on my machine, the timelimit was reached (and I even doubled the time allowed) which is why I thought they'd been fixed. However, if I run without a timelimit, indeed I find these recursion errors. As you recall, recursion errors are not trappable, and I don't expect that will change. These errors are due to a problem in the integration code. The person responsible for integration has been notified. I'll edit my reply above to reflect this.

Cheers,
   Austin

Hi @Ronan,

The Maple Customer Support Updates are only meant to work in Maple 2025 and subsequent releases.

Austin Roche
Maplesoft

Hi @nm,

You're absolutely right. Somehow the number was switched. The correct command is this:

PackageTools:-Install(4797495082876928);

I'll correct it in the above announcement as well. Thank you for pointing this out!

Austin

Hi @nm,

The particular solution y = x^(-a)
that was missing from the general solution is now included as of a recent update:

print~([dsolve(ode, useInt)]):

y(x) = 1/x^a

y(x) = -exp(Int(-2/x^a, x))/(c__1-2*(Int(x^a*(exp(Int(-2/x^a, x)))^2, x)))^(1/2)+1/x^a

y(x) = exp(Int(-2/x^a, x))/(c__1-2*(Int(x^a*(exp(Int(-2/x^a, x)))^2, x)))^(1/2)+1/x^a

Download 239927_b.mw

This new solution is expected to be available as of Maple2025.

Cheers,
    Austin

1 2 3 Page 1 of 3