Unanswered Questions

This page lists MaplePrimes questions that have not yet received an answer

Can you change f(eta) to upflow curve and theta(eta) to downflow curve.

In my Problem,Boundary Conditions are

theta(infinity) = 0, (D(f))(infinity) = 1 , (Take, eta =infinity)

Flows will be correct for what value is taken for infinity .

I take  eta = 5. and also tried changing ranges  but could't find it.Please Help to fix the curve.

my code is,

SM.mw

In a recent question/conversation, I had discussed integrating dsolve/numeric-based codes with NLPsolve at 
https://www.mapleprimes.com/questions/236494-Inconsistent-Behavior-With-Dsolvenumeric-And-NLPSolve-sqp

@acer was able to help resolve the issue by calling NLPSolve with higher optimality tolerance.

I am starting a new question/post to show the need for evalhf as the previous post takes too long to load.
Code is attached for the same.
 

restart:

currentdir();

"C:\Users\Venkat\OneDrive - The University of Texas at Austin\Documents\trial\Learnningsqpoptim"

Test code written by Dr. Venkat Subramanian at UT Austin, 05/31/2023 and has been updated multiple times. This code uses CVP approach (piecwise constant) to perform optimal control. NLPSolve combination with RK2 approach to integrate ODEs (constant step size) works well for this problem. But dsolve numeric based codes work (with optimality tolerance fix from acer), but cannot handle large values of nvar (optimization variables).

Digits:=15;

15

 

eqodes:=[diff(ca(t),t)=-(u+u^2/2)*1.0*ca(t),diff(cb(t),t)=1.0*u*ca(t)-0.1*cb(t)];

[diff(ca(t), t) = -1.0*(u+(1/2)*u^2)*ca(t), diff(cb(t), t) = 1.0*u*ca(t)-.1*cb(t)]

soln:=dsolve({op(eqodes),ca(0)=alpha,cb(0)=beta},type=numeric,'parameters'=[alpha,beta,u],savebinary=true):

 

 

Note that Vector or Array form can be used for RK2h to implement the procedure for any number of variables/ODEs. But the challenge will be when implicit methods are used to integrate ODEs/DAEs and running them in evalhf form (this can be done with Gauss elimination type linear solver, but this will be limited to small number of ODEs/DAEs say 200 or so).

RK2h:=proc(NN,u,dt,y0::Vector(datatype=float[8]))#this procedure can be made efficient in vector form
local j,c1mid,c2mid,c10,c20,c1,c2;
option hfloat;
c10:=y0[1];c20:=y0[2];
for j from 1 to NN do
  c1mid:=c10+dt/NN*(-(u+u^2/2)*c10):
  c2mid:=c20+dt/NN*(u*c10)-0.1*dt/NN*c20:
  c1:=c10/2+c1mid/2+dt/NN/2*(-(u+u^2/2)*c1mid):
  c2:=c20/2+c2mid/2+dt/NN/2*(u*c1mid)-0.1*dt/NN/2*c2mid:
  c10:=c1:c20:=c2:
  od:
y0[1]:=c10:y0[2]:=c20:
end proc:

 

soln('parameters'=[1,0,0.1]);soln(0.1);

[alpha = 1., beta = 0., u = .1]

[t = .1, ca(t) = HFloat(0.9895549324188543), cb(t) = HFloat(0.009898024276129616)]

 

 

ssdsolve:=proc(x)
interface(warnlevel=0):

#if  type(x,Vector)#if type is not needed for this problem, might be needed for other problems
#then


local z1,n1,i,c10,c20,dt,u;
global soln,nvar;
dt:=evalf(1.0/nvar):
c10:=1.0:c20:=0.0:
for i from 1 to nvar do
u:=x[i]:
soln('parameters'=[c10,c20,u]):
z1:=soln(dt):
c10:=subs(z1,ca(t)):c20:=subs(z1,cb(t)):
od:
-c20;
 #else 'procname'(args):

#end if:

end proc:

 

 

ssRK2:=proc(x)#based on RK2
#interface(warnlevel=0):
option hfloat;
#if  type(x,Vector)
#then

local z1,n1,i,c10,c20,dt,u,NN,y0;
global nvar,RK2h;
y0:=Array(1..2,[1.0,0.0],datatype=float[8]):
#y0[1]:=1.0:y0[2]:=0.0:
dt:=evalf(1.0/nvar):
NN:=256*2/nvar;#NN is hardcode based on the assumption that nvar will be a multiple of 2 <=256


for i from 1 to nvar do
u:=x[i]:
evalhf(RK2h(NN,u,dt,y0)):
od:
-y0[2];
 #else 'procname'(args):

#end if:

end proc:

nvar:=2;

2

ic0:=Vector(nvar,[seq(0.1,i=1..nvar)],datatype=float):

bl := Vector(nvar,[seq(0.,i=1..nvar)],datatype=float):bu := Vector(nvar,[seq(5.,i=1..nvar)],datatype=float):

infolevel[Optimization]:=15;

15

CodeTools:-Usage(Optimization:-NLPSolve(nvar,evalhf(ssRK2),[],initialpoint=ic0,[bl,bu],optimalitytolerance=1e-6)):

NLPSolve: calling NLP solver

NLPSolve: using method=sqp

NLPSolve: number of problem variables 2

NLPSolve: number of nonlinear inequality constraints 0

NLPSolve: number of nonlinear equality constraints 0

NLPSolve: number of general linear constraints 0

NLPSolve: feasibility tolerance set to 0.1053671213e-7

NLPSolve: optimality tolerance set to 0.1e-5

NLPSolve: iteration limit set to 50

NLPSolve: infinite bound set to 0.10e21

NLPSolve: trying evalhf mode

NLPSolve: trying evalf mode

attemptsolution: number of major iterations taken 11

memory used=0.96MiB, alloc change=0 bytes, cpu time=16.00ms, real time=121.00ms, gc time=0ns

 

Calling the procedures based on RK2 with NLPSolve uses evalf for numerical gradient (fdiff). Providing a procedure for gradient solves this issue.

gradRK2 := proc (x,g)
option hfloat;
local base, i, xnew, del;
global nvar,ssRK2;
xnew:=Array(1..nvar,datatype=float[8]):
base := ssRK2(x);
for i to nvar do
xnew[i] := x[i]; end do;
for i to nvar do
del := max(1e-5,.1e-6*x[i]);
xnew[i] := xnew[i]+del;
g[i] := (ssRK2(xnew)-base)/del;
xnew[i] := xnew[i]-del;
end do;
end proc:

CodeTools:-Usage(Optimization:-NLPSolve(nvar,evalhf(ssRK2),[],initialpoint=ic0,[bl,bu],objectivegradient=gradRK2,optimalitytolerance=1e-6)):

NLPSolve: calling NLP solver

NLPSolve: using method=sqp

NLPSolve: number of problem variables 2

NLPSolve: number of nonlinear inequality constraints 0

NLPSolve: number of nonlinear equality constraints 0

NLPSolve: number of general linear constraints 0

NLPSolve: feasibility tolerance set to 0.1053671213e-7

NLPSolve: optimality tolerance set to 0.1e-5

NLPSolve: iteration limit set to 50

NLPSolve: infinite bound set to 0.10e21

NLPSolve: trying evalhf mode

attemptsolution: number of major iterations taken 11

memory used=184.77KiB, alloc change=0 bytes, cpu time=31.00ms, real time=110.00ms, gc time=0ns

Significant saving in memory used is seen. CPU time is also less, which is more apparent at larger valeus of nvar.

 

dsolvenumeric based codes work for optimization, but evalf is invoked possibly for both the objective and gradient

CodeTools:-Usage(Optimization:-NLPSolve(nvar,(ssdsolve),[],initialpoint=ic0,[bl,bu],optimalitytolerance=1e-6)):

NLPSolve: calling NLP solver

NLPSolve: using method=sqp

NLPSolve: number of problem variables 2

NLPSolve: number of nonlinear inequality constraints 0

NLPSolve: number of nonlinear equality constraints 0

NLPSolve: number of general linear constraints 0

NLPSolve: feasibility tolerance set to 0.1053671213e-7

NLPSolve: optimality tolerance set to 0.1e-5

NLPSolve: iteration limit set to 50

NLPSolve: infinite bound set to 0.10e21

NLPSolve: trying evalhf mode

NLPSolve: trying evalf mode

attemptsolution: number of major iterations taken 11

memory used=14.61MiB, alloc change=37.00MiB, cpu time=94.00ms, real time=213.00ms, gc time=46.88ms

 

Providing gradient procedure doesn't help with evalhf computaiton for dsolve/numeric based procedures.

graddsolve := proc (x,g)
local base, i, xnew, del;
global nvar,ssdsolve;
#xnew:=Vector(nvar,datatype=float[8]):
xnew:=Array(1..nvar,datatype=float[8]):
base := ssdsolve(x);
for i to nvar do
xnew[i] := x[i]; end do;
for i to nvar do
del := max(1e-5,.1e-6*x[i]);
xnew[i] := xnew[i]+del;
g[i] := (ssdsolve(xnew)-base)/del;
xnew[i] := xnew[i]-del;
end do;
end proc:

CodeTools:-Usage(Optimization:-NLPSolve(nvar,(ssdsolve),[],initialpoint=ic0,[bl,bu],objectivegradient=graddsolve,optimalitytolerance=1e-6)):

NLPSolve: calling NLP solver

NLPSolve: using method=sqp

NLPSolve: number of problem variables 2

NLPSolve: number of nonlinear inequality constraints 0

NLPSolve: number of nonlinear equality constraints 0

NLPSolve: number of general linear constraints 0

NLPSolve: feasibility tolerance set to 0.1053671213e-7

NLPSolve: optimality tolerance set to 0.1e-5

NLPSolve: iteration limit set to 50

NLPSolve: infinite bound set to 0.10e21

NLPSolve: trying evalhf mode

NLPSolve: trying evalf mode

attemptsolution: number of major iterations taken 11

memory used=3.82MiB, alloc change=0 bytes, cpu time=31.00ms, real time=129.00ms, gc time=0ns

 

Calling both RK2 and dsolve based procedures again to check the values and computation meterics

s1RK2:=CodeTools:-Usage(Optimization:-NLPSolve(nvar,evalhf(ssRK2),[],initialpoint=ic0,[bl,bu],objectivegradient=gradRK2,optimalitytolerance=1e-6)):

NLPSolve: calling NLP solver

NLPSolve: using method=sqp

NLPSolve: number of problem variables 2

NLPSolve: number of nonlinear inequality constraints 0

NLPSolve: number of nonlinear equality constraints 0

NLPSolve: number of general linear constraints 0

NLPSolve: feasibility tolerance set to 0.1053671213e-7

NLPSolve: optimality tolerance set to 0.1e-5

NLPSolve: iteration limit set to 50

NLPSolve: infinite bound set to 0.10e21

NLPSolve: trying evalhf mode

attemptsolution: number of major iterations taken 11

memory used=185.09KiB, alloc change=0 bytes, cpu time=16.00ms, real time=95.00ms, gc time=0ns

s1dsolve:=CodeTools:-Usage(Optimization:-NLPSolve(nvar,ssdsolve,[],initialpoint=ic0,[bl,bu],objectivegradient=graddsolve,optimalitytolerance=1e-6)):

NLPSolve: calling NLP solver

NLPSolve: using method=sqp

NLPSolve: number of problem variables 2

NLPSolve: number of nonlinear inequality constraints 0

NLPSolve: number of nonlinear equality constraints 0

NLPSolve: number of general linear constraints 0

NLPSolve: feasibility tolerance set to 0.1053671213e-7

NLPSolve: optimality tolerance set to 0.1e-5

NLPSolve: iteration limit set to 50

NLPSolve: infinite bound set to 0.10e21

NLPSolve: trying evalhf mode

NLPSolve: trying evalf mode

attemptsolution: number of major iterations taken 11

memory used=3.82MiB, alloc change=0 bytes, cpu time=31.00ms, real time=122.00ms, gc time=0ns

s1RK2[1];s1dsolve[1];

-.523900304316377463

-.523901163953022553

 

Next, a for loop is written to optimize for increasing values of nvar. One can see that evalhf is important for larger values of nvar. While dsolve/numeric is a superior code, not being able to use it in evalhf format is a significant weakness and should be addressed. Note that dsolve numeric evalutes procedures that are evaluated in evalhf or compiled form, so hopefully this is an easy fix.

infolevel[Optimization]:=0:

for j from 1 to 9 do
nvar:=2^(j-1):
ic0:=Vector(nvar,[seq(0.1,i=1..nvar)],datatype=float):
bl := Vector(nvar,[seq(0.,i=1..nvar)],datatype=float):bu := Vector(nvar,[seq(5.,i=1..nvar)],datatype=float):
soptRK[j]:=CodeTools:-Usage(Optimization:-NLPSolve(nvar,evalhf(ssRK2),[],initialpoint=ic0,[bl,bu],objectivegradient=gradRK2,optimalitytolerance=1e-6)):
print(2^(j-1),soptRK[j][1]);

od:

memory used=88.40KiB, alloc change=0 bytes, cpu time=0ns, real time=10.00ms, gc time=0ns

1, HFloat(-0.5008626988793192)

memory used=155.66KiB, alloc change=0 bytes, cpu time=16.00ms, real time=30.00ms, gc time=0ns

2, -.523900304316377463

memory used=175.36KiB, alloc change=0 bytes, cpu time=62.00ms, real time=80.00ms, gc time=0ns

4, -.535152497919956782

memory used=243.69KiB, alloc change=0 bytes, cpu time=156.00ms, real time=239.00ms, gc time=0ns

8, -.540546896131004706

memory used=260.09KiB, alloc change=0 bytes, cpu time=141.00ms, real time=260.00ms, gc time=0ns

16, -.542695734426874465

memory used=385.84KiB, alloc change=0 bytes, cpu time=313.00ms, real time=545.00ms, gc time=0ns

32, -.542932877726400531

memory used=0.65MiB, alloc change=0 bytes, cpu time=734.00ms, real time=1.18s, gc time=0ns

64, -.543011976841572652

memory used=1.24MiB, alloc change=0 bytes, cpu time=1.55s, real time=2.40s, gc time=0ns

128, -.543035276649319276

memory used=2.99MiB, alloc change=0 bytes, cpu time=3.45s, real time=5.92s, gc time=0ns

256, -.543041496228812814

for j from 1 to 6 do
nvar:=2^(j-1):
ic0:=Vector(nvar,[seq(0.1,i=1..nvar)],datatype=float):
bl := Vector(nvar,[seq(0.,i=1..nvar)],datatype=float):bu := Vector(nvar,[seq(5.,i=1..nvar)],datatype=float):
soptdsolve[j]:=CodeTools:-Usage(Optimization:-NLPSolve(nvar,evalf(ssdsolve),[],initialpoint=ic0,[bl,bu],objectivegradient=graddsolve,optimalitytolerance=1e-6)):
print(2^(j-1),soptdsolve[j][1]);

od:

memory used=0.66MiB, alloc change=0 bytes, cpu time=16.00ms, real time=11.00ms, gc time=0ns

1, HFloat(-0.5008631947224957)

memory used=3.79MiB, alloc change=0 bytes, cpu time=15.00ms, real time=52.00ms, gc time=0ns

2, -.523901163953022553

memory used=21.28MiB, alloc change=0 bytes, cpu time=78.00ms, real time=236.00ms, gc time=0ns

4, -.535153942647626391

memory used=144.82MiB, alloc change=-4.00MiB, cpu time=469.00ms, real time=1.60s, gc time=46.88ms

8, -.540549407239521607

memory used=347.30MiB, alloc change=16.00MiB, cpu time=1.27s, real time=3.45s, gc time=140.62ms

16, -.542699055038344258

memory used=1.33GiB, alloc change=-8.00MiB, cpu time=7.66s, real time=15.92s, gc time=750.00ms

32, -.542936165630524603

 

SS:=[seq(soptRK[j][1],j=1..9)];

[HFloat(-0.5008626988793192), -.523900304316377463, -.535152497919956782, -.540546896131004706, -.542695734426874465, -.542932877726400531, -.543011976841572652, -.543035276649319276, -.543041496228812814]

 

E1:=[seq(SS[i]-SS[i+1],i=1..nops(SS)-1)];

[HFloat(0.02303760543705824), 0.11252193603580e-1, 0.5394398211048e-2, 0.2148838295869e-2, 0.237143299527e-3, 0.79099115172e-4, 0.23299807746e-4, 0.6219579494e-5]

To get 6 Digits accuracy we need nvar = 256 which may not be attainable with dsolve/numeric approach unless we are able to call it evalhf format.

 

 


 

Download ImportanceofevalhfNLPSolve.mw

How to find series values.I got this error.Please Help.

Maple code for the problem is

TFBE.mw

When running "C:\Program Files\Maple 2023\bin.X86_64_WINDOWS\cmaple.exe" on my application which makes plots and export them to ps, sometimes I get an exception

              "cannot locate postscript AFM files"

This happens on some plots. Not all. The strange thing, using the same exact run, but from the worksheet, it works fine and I get the .ps generated with no such error. This only happens when running from the command line. It happens here


try
   plotsetup(ps, plotoutput="plot.ps",plotoptions=noborder);
   print(p1);   
   plotsetup(default):
catch:
   print(StringTools:-FormatMessage( lastexception[2..-1] ));
end try;

where p1 above is a plot that was generated earlier OK with no error. I made sure there is no font settings on the plot or any extra options that might cause a problem.

I am not able to make MWE as this problem only shows deep inside my application and only when calling Maple from command line and only shows up on very few plots for some reason I do not understand.  When I made a small .mpl with same code used to make the plot, and run it from command line, the error do not show up. It only shows up when running the whole application from the command line. 

My question is: How does Maple find these postscript AFM files? It looks like the postscript driver used by command like Maple is older than the one used by the frontend/GUI and this is why this error only shows from the command line. Has anyone seen such a Maple error before? 

I have no idea where to find these AFM postscript files it says it can't find and what to do now. I am on windows 10.

Any suggestion what to lookfor and anything else I can do to help me find the cause of this?

If it is any help, here is the MWE I tried to reproduce this with. But this generated no error. Call this foo.mpl

foo:=proc()
local p1,ode,y,x;
   ode:=3*y(x)+x*diff(y(x),x) = 2*x^5;
   p1 := DEtools:-phaseportrait(ode,y(x),x=-1..5,[y(2)=1],y=-1000..1000):
   try
      plotsetup(ps, plotoutput=cat("C:/tmp/plot.ps"),plotoptions=noborder);
      print(p1);   # also tried without "display"
      plotsetup(default):
   catch:
      print(StringTools:-FormatMessage( lastexception[2..-1] ));
      print("Exception");
   end try;
end proc;

foo();

Then run 

 

C:\tmp>"C:\Program Files\Maple 2023\bin.X86_64_WINDOWS\cmaple.exe"  foo.mpl

No error. The error only shows in my large application.

                             "cannot locate postscript AFM files"

Will keep trying to make a MWE, but for 3 hrs now, no luck yet.

Update

I've added 

if lasterrorlocus<>'lasterrorlocus' then
                     print(lasterrorlocus);
                     showsource();
end if; 

Inside the catch, which print the exact location of the exception generated. It is at print(p1) as you see

again, same code runs with no problem from the worksheet. This only shows when running from command line. Will keep trying to make MWE...

In accordance with the Wikipedia article, polynomial factorization is one of the fundamental components of computer algebra systems. However, it seems that Maple's performance on large polynomial factoring is not so efficient. 
There are some academic benchmarks: Polynomial factorisation over Z/pZa collection of polynomials difficult to factor, test factor (redirecting to Pearce tests), and Take the Fermat Tests!

(* taken from the links above *)
p1 := 2*y**10*x**10-x**24*z-x**25+2*x**10*y**5-2*x**10*z**5-x**10*y**7*z-y**8*x**12*z**2-z**5*y**10+y**10*x**9*z+y**7*x**15*z+2*y**9*z*x**6+2*y**8*z*x**8+x**13*z**5*y-2*x**13*y**3*z-2*x**13*y**2*z**3+2*y**12*x**6+2*y**15*z*x**4+2*y**10*x**7*z**3-2*y**10*x**6*z**4-2*y**10*x**8*z**2-x**15+z**8*y**2*x**8-z**8*y**4*x**4-z**8*y**3*x**6-2*y**13*x**8*z-y**12*x**9*z**2-z**6*y**3*x**8+y**7*x**14*z**2-2*y**9*x**16*z-2*y**8*x**18*z-2*y**7*x**20*z+y**8*x**10*z**4-2*y**8*x**11*z**3-2*y**7*x**13*z**3-y**7*x**12*z**4-2*y**10*x**13*z**2-y**9*x**15*z**2+y**11*x**12*z-y**10*x**15+y**7*x**16-2*y**6*x**18+y**5*x**20+2*y**4*x**22+2*y**5*x**25+x**26*y**2+x**23*z**2-x**22*z**3-2*x**28*y+2*y**5*x**15-x**17*y**4-x**19*y**3-2*x**29*z-x**28*z**2+2*x**34*z+x**33*z**2+x**27*z**3+x**21*y**2+x**20*z**5+x**35+2*x**32*y*z+2*x**24*y*z**4+2*x**31*y*z**2-2*z**2*y**6*x**11-y**8*x**17*z**2-y**7*x**19*z**2+2*y**6*x**16*z**2+2*y**6*x**15*z**3+2*y**4*x**16*z-y**5*x**13*z**2+y**4*x**15*z**2+y**10*x**14*z+y**6*x**17*z-2*y**5*x**19*z-y**4*x**21*z+y**5*x**24*z-2*y**5*x**11*z**4+y**5*x**10*z**5+y**5*x**12*z**3+y**4*x**14*z**3-y**4*x**13*z**4-2*y**8*x**13*z-y**5*x**18*z**2+y**4*x**12*z**5-2*y**4*x**20*z**2-2*y**4*x**19*z**3+y**3*x**16*z**3-y**3*x**15*z**4-2*y**6*x**22*z-y**6*x**21*z**2+y**5*x**17*z**3-y**5*x**23*z**2+2*y**4*x**18*z**4-2*x**18*y**3*z+x**23*y**3*z-2*x**26*y**4*z-2*x**22*y**3*z**2+x**21*y**3*z**3-2*x**18*y**2*z**3-2*x**17*y**2*z**4-2*x**20*y**2*z-2*x**25*y**2*z-x**16*y**2*z**5+2*x**24*y**2*z**2+x**23*y**2*z**3-x**20*y*z**3+2*x**19*y*z**4+y**4*x**25*z**2+y**7*z**3*x**8+y**3*x**20*z**4-y**3*x**27*z**2+2*z**4*y**6*x**9-2*z**5*y**6*x**8+2*z**6*y**5*x**9-y**12*z**2*x**4+z**3*y**9*x**9+y**11*z*x**7+z**6*y**3*x**13-2*y**11*z**2*x**6+z**6*y**2*x**15-z**3*y**6*x**10+2*z**2*y**11*x**11-2*z**4*y**9*x**8+z**2*y**9*x**10+x**22*y*z+2*x**27*y*z-x**30*y**2*z+x**25*z**3*y-2*z**6*x**17*y-y**12*x**10*z-2*z*y**6*x**12-2*z*y**5*x**14-y**9*x**12+x**8*y**11+x**4*y**11*z**4-2*x**5*y**14*z**2-2*x**13*z**7+z**6*y**9*x-2*x**9*z**3*y**4+x**19*z+x**9*z**2*y**7+x**18*y+x**11*z**7*y-2*x**10*z**6*y**2-2*x**17*y*z-2*x**15*y**2*z+x**12*z**8-x**12*y**4-2*x**11*y**7-x**12*z**2*y**3-2*x**12*z**6*y-x**3*z**3*y**12+x**3*y**8*z**6-2*x**11*z**3*y**3+2*x**11*z**5*y**2+x**10*z**8*y-2*x**10*y**4*z**2+2*x**18*z**2+x**14*z**6+2*x**16*y**2+x**16*z**2*y-x**15*z**3*y+2*x**7*z**5*y**4+2*x**7*z**7*y**3-2*x**5*y**12*z+x**14*y**2*z**2-2*x**5*z**10-x**5*z**7*y**4+x**5*z**5*y**5-2*x**5*y**15-2*x**5*y**10-x**5*y**11*z**3+x**5*z**6*y**7: # modulus=5
p2 := expand(((1+u**2+v+w**2+x-y)**10+1)*((1+u+v**2+w+x**2-y)**10+1)):
p3 := modp1('ConvertIn'([`$`(0..3e3)],_X),17): # modulus=17
p4 := x**462+21210*x**461+224383971*x**460+1578665363268*x**459+8309708601927369*x**458+34906438282775741574*x**457+121892197865751514535971*x**456+363939492824936224922436600*x**455+948457828906656930119914608435*x**454+2191692676325879668485379848098870*x**453+4546811012160950099828586006608103465*x**452+8553864278939288610305973058795839407460*x**451+14714581361637473623842426399529259513587155*x**450+23307075784268029645971685333117771606877381610*x**449+34194571427759690948280309578081355003985970857985*x**448+46706276341375923136075096200416334570450433754138816*x**447+59658765260943935233704345492511045323205638456912520700*x**446+71540458929371753900545081776400237326118267425138092955096*x**445+80818483376551668186698371857136099432838733225651104612065268*x**444+86276272806442901147049153304044268141564927993122214122479175344*x**443+87276264881067094375928003603450410557809367751746667469125043216796*x**442+83870610459282201358463081523375345030141326378896496370936934176123816*x**441+76738961338056040982412701538593752175273811020117965759051166741054060852*x**440+66990062269499288281129280493866705182852936339922220558622343932347589826016*x**439+55900101713919632283129953618672095345524845772117259846091473180622360342041028*x**438+44665772016014459740422379813997121225156368515507871932946716444147328486329771528*x**437+34228682111407242662100345550367581229050006282227704172693454344395767118354396311692*x**436+25194116808696530810656977947394571885399747419692492417548259405211129953847038885410160*x**435+17835918622771516186223947692977252089602466240247974697860932499981754155465892649539440260*x**434+12159930851381845778431776740987842821276209149459419049712910673508827772533535415551171297400*x**433+7993193051684062581377458071022039065473219877989032661826722452994856065381525826906828185368428*x**432+5071582142426697899436277529455363344693451611748210603649449010355232782843867438680260293228925760*x**431+3109211801044187953942055596537967131809199128106981247707160674438537741456248131748582855235616064898*x**430+1843583048302552955772739432480387593691696707765427943276926571549970879303505352797014723215695991542644*x**429+1058222969295968346860079018221157304947554942606015346387130808692788453400959234568522991956064043940780742*x**428+588527984397605190181986676936802311265148775493410916574640365728764614541741222573682673958873848597181641928*x**427+317383756760289170871035574635936165893699017889508659267191562060874572398375871475396728705931580721906480550738*x**426+166097331781476097062945656785562925565060268814543537991264264208698577497823062034716164547690460424563700609610316*x**425+84414264393031816199283217517343026917922945707494641415754957496785332373692759695456806726396792904375628256101448198*x**424+41691026907452331145488870889723173033288011981210084689683092801204775888283805828225478877417888120491001413202241711664*x**423+20022855251354211654188430270173433763681996427721345512070154559542142400325287215359415975451188782968134452223769372089462*x**422+9356966226481098866954128654084504099897450449156347114630449001147887408710293818955567101457146831314256613204558463786526156*x**421+4257215468848261276778809325097629645780692902300452146544083690075473089106145766892003072725208934147238804664710016698797895938*x**420+1886867559386493751783419471097697113978939207491597289783060707923644754393097004283989957258818373997607548134537335449859865011784*x**419+815107305245786831989770849954518316369242985282364500683843524785659820805230692950479185669685764992695047088712708830475287794714742*x**418+343374093711127777117018784926208345009318026257921749481515435748900338372372830081526173441012441258742234683977527310528297551517454708*x**417+141127469684794768233143436677559920383907478275091941903537286269366986216300709736049377437996590178915205438825827675964560672064478338418*x**416+56617351117801686311995328853868559439311425491854697518859703600604209827991980390740423609633020867921780746387473303758507462549098292414016*x**415+22180713827429506719052842298669505658433092692644444008947725656209917424609265902583709638438381212453303459487740386258085183500786042584622268*x**414+8489368105863559785748629220914770078551426637084299309383502430038155904015017473352816104183373749591247485638323550115576097911559531108639622104*x**413+3175611384153780777485246409540265100337103802980171227628546126078674191354460455328190383708319151613601902614983919931700059181324241370087208519476*x**412+1161455454133125057842599200568746115273263231714466808677126167343901696961640274726504917314703585528897330968693434145237716048476408044396117002110256*x**411+415494530757531770767351391540688210022309084653439406377683128976286006991436761239687462213906152664086744202459445176612757458761163570164918112494407132*x**410+145436548351158042140613643444495897160794069449468618295335886501225267856113758181683547434865471577299125913616424858268050389167540637469040812009280569256*x**409+49828662346006122166677432728547413371695594777067887750117785259351296548108895596708950520374641287646211340766483902623211027857063370406148398281851610837748*x**408+16715853680006411204321550401026195025571024344013370289563379177345302576766347513282345831248576081556995330615300427686502052689979805952301304842697509719621472*x**407+5492403233399758722985234047272739823572714175183334244655109636242278694714310246817399944995602981567088113852413154508885478744557666256451632483163291909663375332*x**406+1768139595830349473615895896563173072717215254805946924074295395992074901169032035552162354146249422822471490827830285767321147900775983837607845201457741158967329136584*x**405+557855729817628851249918389616426582587169843868578064305788700400799379313288583128730738338951534376441360703604075574844643798278520825953094102156259275890643715461612*x**404+172545963636588290568071048767150734312745327379523937781382423183368852317182402827650269014093184414819385586967820645109535728622921801189696490638773228995291358682662256*x**403+52334401211729425658137569911153505669842304005801658033994945038237431725470707606701242267138949864861093903696022911205613685025047138553995740310542074929799447661514082084*x**402+15569946340016870581575264829408225210240465408187737104110123664655200819492762291271871843048071574267335692548168780736598902789831755785394782980102732104126651751040064522424*x**401+4544836742869234848516378068859051870547301098486109867703979709655820880722984672140248206935721633512789637433675765862292532296910972637863648873254824977379254952834381484650828*x**400+1301939905061307108493076295910016833078423677760270233035716432351298762776298035120687260146554588084784031428052651103647974193906895978949352907159348461415955807105589084173301184*x**399+366110058238157821572732054450222406540138644603677787262558113468955760247851413920893473941887140349082244790087557831520422511547289165370327372492533446307544128116222732026880488787*x**398+101084283404326476410556775310211681776739024082599520217114165009572950576712824618914796896202651861582711019414866950902653706364155070108318306165081696367849884262711450424446041054958*x**397+274098587697048516660774126758401271799787874826490261487760568587881876146630616094920129811705408846609709360495534327403