*************************************************************************** * All the software contained in this library is protected by copyright. * * Permission to use, copy, modify, and distribute this software for any * * purpose without fee is hereby granted, provided that this entire notice * * is included in all copies of any software which is or includes a copy * * or modification of this software and in all copies of the supporting * * documentation for such software. * *************************************************************************** * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * * WARRANTY. IN NO EVENT, NEITHER THE AUTHORS, NOR THE PUBLISHER, NOR ANY * * MEMBER OF THE EDITORIAL BOARD OF THE JOURNAL "NUMERICAL ALGORITHMS", * * NOR ITS EDITOR-IN-CHIEF, BE LIABLE FOR ANY ERROR IN THE SOFTWARE, ANY * * MISUSE OF IT OR ANY DAMAGE ARISING OUT OF ITS USE. THE ENTIRE RISK OF * * USING THE SOFTWARE LIES WITH THE PARTY DOING SO. * *************************************************************************** * ANY USE OF THE SOFTWARE CONSTITUTES ACCEPTANCE OF THE TERMS OF THE * * ABOVE STATEMENT. * *************************************************************************** AUTHOR: Z. DA ROCHA UNIVERSITY OF LILLE - FRANCE REFERENCE: IMPLEMENTATION OF THE RECURRENCE RELATIONS OF BIORTHOGONALITY NUMERICAL ALGORITHMS, 3 (1992) PP. 173-183 SOFTWARE REVISION DATE: SEPTEMBER, 1992 SOFTWARE REQUIRED: MATHEMATICA *************************************************************************** (*____________________________ _________INTRODUCTION_________ _____________________________*) (* Here are the three packages GPADETYPE.M , BE.M , BIF.M , written in Mathematica Version 2.0 , and the Mathematica session that produce , in a Macintosh SE/30, the results of the article "Z. DA ROCHA.Implementation of the recurrence relations of biorthogonality. In C. Brezinski, P. Gonzalez-Vera and N. Hayek-Calil, eds., Extrapolation and Rational Approximation. Tenerife 1992, volume 3 of Numerical Algorithms, pp. 173-183, Basel 1992. J. C. Baltzer.". Each package must be in a separate file which name is formed by the package's name with the suffix .M. GPADETYPE.M contains the definition of the function tablegpt that calculates a sequence of the generalized Pade-type approximants defined in the article. It calls the packages BE.M and BIF.M . It is supposed that the user gives in BE.M the definitions of the series of functions ( series ) , the generating function ( g ) , and the moments ( c ) of the examples he wants to test , and that he gives in BIF.M the definitions of the initial functionals ( initialf ) he wants to utilize . Several definitions can be given. It is obvious that only one definition of series, g , c and initialf is valid at each time , the others are put under the form of comments. When the user wants to change one and more definitions , he only have to put the characters (* and *) around the old definitions , to remove these characters around the new ones , and to save and read again the packages to which the definitions belong. SUGGESTION: The user can give a maximal value to the argument k of the function tablegpt , and interrupt the calculations , using the option ABORT CALCULATION of the menu , as soon as he is not interested in obtaining more results. *) (**********************************) (******* Package GPADETYPE.M *******) (**********************************) BeginPackage["GPADETYPE`","BE`","BIF`"] GPADETYPE::usage="is a package that contains the definition of the function tablegpt. It calls the packages BE and BIF." tablegpt::usage=" tablegpt[ k , t , toption , coption , resultprec , reoption , reprec , cprec , aroption ] calculates the (k+1) first generalized Pade-type approximants in the point t . The argument t can be a symbolic expression (toption == \"VAR\") , or a numerical expression (toption == \"SCL\") . In the first case we obtain symbolic results , in the second case we obtain numerical results. If coption == \"EC\" , we do exact calculus. If coption == \"AC\" , we do approximate calculus with precision cprec . This means that we use the function N[- , cprec] to do all the intermediate computations. If cprec < = \"machine precision\", we do low precision computations. If cprec > \"machine precision\", we do high precision computations. If coption == \"AC\", the numerical results or the numerical part of the symbolic results are printed with resultprec decimal digits of precision. The default values of cprec and resultprec are the machine precision ( given for example by Precision[1.0] ). If resultprec or cprec are greather than Precision[1.0] , we must have resultprec < = cprec . If toption == \"SCL\" , given a non zero value to reoption , relative errors with respect to the series are calculated with precision cprec , and are written with reprec decimal digits of precision. The default values of reoption and reprec are 0 and 2 respectively. If toption == \"VAR\" or reoption is zero , relative errors are not calculated. If toption == \"SCL\" and coption == \"EC\", we obtain the exact numerical expressions of the approximants in the point t . If reoption is not zero , relative errors of these exact expressions are calculated with precision cprec . We should take a sufficiently big value to cprec in order that these errors could be correctly calculated. If toption == \"SCL\" and coption == \"EC\" , given a non zero value to aroption , approximate values of the exacts expressions of the approximants are calculated with precision resultprec . If aroption is zero , these approximate values are not calculated. The default value of aroption is zero. We must give the first four arguments of tablegpt , however the last five can be omitted taking their default values. Reference: Z. DA ROCHA.Implementation of the recurrence relations of biorthogonality. In C. Brezinski, P. Gonzalez-Vera and N. Hayek-Calil, eds., Extrapolation and Rational Approximation. Tenerife 1992, volume 3 of Numerical Algorithms, pp. 173-183, Basel 1992. J. C. Baltzer." Begin["`Private`"] (*__________________________________________________ ______________ERROR MESSAGES OF TABLEGPT______________ ___________________________________________________*) tablegpt::badarg1= "wrong value to the first argument k must be a non negative integer try again" tablegpt::badarg3= "wrong value to the third argument toption must be equal to \"SCL\" or \"VAR\" try again" tablegpt::badarg4= "wrong value to the fourth argument coption must be equal to \"AC\" or \"EC\" try again" tablegpt::badarg5= "wrong value to the fifth argument resultprec must be a non negative integer try again" tablegpt::badarg7= "wrong value to the seventh argument reprec must be a non negative integer try again" tablegpt::badarg8= "wrong value to the eighth argument cprec must be a non negative integer try again" tablegpt::badarg58= "wrong values to the fifth and/or the eighth arguments. We must have resultprec < = cprec , if at least one of these arguments are greather than the machine precision. Try again." (*__________________________________________________ __________DEFINITIONS OF THE PRIVATE FUNCTIONS__________ ____________________OF TABLEGPT______________________ ___________________________________________________*) functionalc[ poly_, var_ ]:= Block[{n}, Sum[ Coefficient[ poly ,var ,n ]*cm[[n+1]] , {n,0,Exponent[ poly ,var ]} ]/; PolynomialQ[ poly,var ] ] ; u[ i_ ,j_ ,0, var_ ]:= var^j ; (*__________________________________________________ ________________DEFINITION OF TABLEGPT________________ ___________________________________________________*) tablegpt[ k_ , t_ , toption_ , coption_ , resultprec_:(Precision[1.0]) , reoption_:0 , reprec_:2 , cprec_:(Precision[1.0]) , aroption_:0 ]:= Block[ { cm, wn1, wn2, wf1, wf2, w3, wl, wc, wx, xarray, larray, n, m, i} , (*________________________________________________ ________________CONTROL OF ARGUMENTS_______________ _________________________________________________*) If [ Or[ Not[ IntegerQ[k] ] , k < 0€] , Return[ Message[tablegpt::badarg1] ] ]; If [ And [ toption != "SCL" , toption != "VAR" ] , Return[ Message[tablegpt::badarg3] ] ]; If[ And [ coption != "EC", coption != "AC" ] , Return[ Message[tablegpt::badarg4] ] ] ; If [ Or[ Not[ IntegerQ[ resultprec ] ] , resultprec < 0€] , Return[ Message[tablegpt::badarg5] ] ]; If [ Or[ Not[ IntegerQ[ reprec ] ] , reprec < 0€] , Return[ Message[tablegpt::badarg7] ] ]; If [ Or[ Not[ IntegerQ[ cprec ] ] , cprec < 0 ] , Return[ Message[tablegpt::badarg8] ] ]; If [ And[ resultprec > cprec , Or[ resultprec > (Precision[1.0]) , cprec > (Precision[1.0]) ] ] , Return [ Message [tablegpt::badarg58 ] ] ]; (*_______________________________________________ _________computation of the first approximant _______ ________________________________________________ ________________________________________________ ______________computation of c(X[0,0,0,x])___________ _____________computation of L[0,0,0,g[x,t],x]__________ ________________________________________________*) If[ coption == "AC" , cm={ N[ c[0] , cprec ] }; wx={ N[ u[0,0,0,x] , cprec ] }; wc={ N[ functionalc[ wx[[1]] , x ], cprec ] }; wl={ N[ initialf[ 0, wx[[1]], x ] , cprec ] }; larray={ { N[ (initialf[ 0, g[x,t], x ] / wl[[1]] ), cprec ] } } , (*coption == "EC" *) cm={ c[0] }; wx={ u[0,0,0,x] }; wc={ functionalc[ wx[[1]] , x ] }; wl={ initialf[ 0, wx[[1]], x ] }; larray={ { initialf[ 0, g[x,t], x ] / wl[[1]] } } ] ; (* end of If *) xarray={ Append[ wc, wl[[1]] ] }; (*_________________________________________________ _____________xarray[[1,1]]=c(X[0,0,0,x])________________ ____________larray[[1,1]]=L[0,0,0,g[x,t],x]_______________ __________________________________________________ ___________printing of the first approximant____________ __________________________________________________*) If[ toption == "SCL" , If[ coption == "EC" , wf1= xarray[[1,1]]*larray[[1,1]] ; Print[ "fgpt[", 0, "]=", Expand[ wf1] ] ; wn1=wf1; If[ aroption != 0 , Print[ "ngpt[",0,"]=", N[ wn1 , resultprec ] ] ] , (* coption == "AC" *) wn1=N[ xarray[[1,1]]*larray[[1,1]] , cprec ] ; Print[ "ngpt[",0,"]=", N[ wn1 , resultprec ] ] ]; (* end of If [ coption ] *) If[ reoption !=0 , Print[ "re[", 0, "]=", N[ N[ Abs[ (wn1-series[t]) / series[t] ] , cprec ] , reprec ] ] (* end of Print *) ]; (* end of If *) , (* toption == "VAR" *) If[ coption == "EC", wf1= xarray[[1,1]]*larray[[1,1]] ; Print[ "fgpt[", 0, "]=", Together[ wf1] ] ; , (* coption == "AC" *) wn1=N[ xarray[[1,1]]*larray[[1,1]] , cprec ]; Print["ngpt[",0,"]=", N[ Together[wn1], resultprec ] ] ; ] (* end of If [ coption ] *) ]; (* end of If [ toption ] *) Print[" "]; (*_______________________________________________*) Do[(*{i,2,k+1}*) (*________________________________________________ ____________computation of the i-th approximant________ _________________________________________________*) If[ coption == "AC" , AppendTo[ cm, N[ c[i-1] , cprec ] ]; AppendTo[ wx, N[ u[0,i-1,0,x] , cprec ] ]; AppendTo[ wc, N[ functionalc[ wx[[i]], x], cprec ] ]; AppendTo[ wl, N[ initialf[ i-1, wx[[1]], x], cprec ] ] , (* coption == "EC" *) AppendTo[ cm, c[i-1] ]; AppendTo[ wx, u[0,i-1,0,x] ]; AppendTo[ wc, functionalc[ wx[[i]], x ] ]; AppendTo[ wl, initialf[ i-1, wx[[1]], x ] ] ]; (* end of If *) (*_________________________________________________ _____________computation of c(X[0,0,i-1,x])______________ ____________computation of L[0,0,i-1,g[x,t],x]____________ __________________________________________________ _________computation of the new elements of the_________ ____________arrays X1 and L1 of the row i______________ ___________________( first part )_____________________ ______________simultaneous computation________________ _________of the new column of the array X1 and__________ ______________the new row of the array L1 _____________ __________________________________________________*) AppendTo[ xarray , { wc[[i]] } ]; Do[ (* {n,2,i} *) If[ coption == "AC" , w3=N[ initialf[ n-2, wx[[i]], x ] , cprec ]; If[ n == 2 , xarray[[ i-1, 2]]= N[ w3/ xarray[[i-1,2]] , cprec ] ]; (* end of If *) AppendTo[ xarray[[i]] , w3 ]; AppendTo[ larray[[n-1]] , N[ w3/ wl[[n-1]] , cprec ] ] , (* coption == "EC" *) w3=initialf[ n-2, wx[[i]], x ] ; If[ n == 2 , xarray[[i-1, 2]]= w3/ xarray[[i-1,2]] ]; (* end of If *) AppendTo[ xarray[[i]] , w3 ]; AppendTo[ larray[[n-1]] , w3/ wl[[n-1]] ] ] (* end of If *) ,{n,2,i} ];(*end of Do*) (* _________________________________________________ __________________( second part )_____________________ ______________simultaneous computation________________ _________of the new column of the array L1 and__________ _____________the new row of the array X1______________ __________________________________________________*) If[ coption == "AC" , AppendTo[ larray , { N[ initialf[ i-1, g[x,t], x ]/ wl[[i]] , cprec ] } ] , (* coption == "EC" *) AppendTo[ larray , { initialf[ i-1, g[x,t], x ]/ wl[[i]] } ] ]; (* end of If *) AppendTo[ xarray[[1]] , wl[[i]] ]; Do[ (* {n,2,i} *) If[ coption == "AC" , w4= N[ initialf[ i-1, wx[[n]], x ] , cprec ] ; AppendTo[ larray[[i]] , N[ w4/ wl[[i]] , cprec ] ] ; If[ n==2 , larray[[i-1,2]]=N[ larray[[i,2]]-larray[[i-1,2]] , cprec ] ] ; (* end of If *) AppendTo[ xarray[[n]], w4 ] , (* coption == "EC" *) w4=initialf[ i-1, wx[[n]], x ] ; AppendTo[ larray[[i]] , w4/ wl[[i]] ] ; If[ n==2 , larray[[i-1,2]]=larray[[i,2]]-larray[[i-1,2]] ] ; (* end of If *) AppendTo[ xarray[[n]], w4 ] ] ; (* end of If *) ,{n,2,i} ] ; (* end of Do *) (*________________________________________________*) Do[(*{m,2,i}*) (*________________________________________________ _________computation of the new elements of the_______ _________arrays Xm and Lm of the row i (m,i >=2)________ ___________________( first part )_____________________ _____________computation of the new row______________ ______________of the arrays Xm and Lm _______________ _________________________________________________*) Block[{n1}, Do[(* {n,1,i-m} *) n1=n+1; If[ coption == "AC" , xarray[[n,i]]= N[ xarray[[n1,i]]- xarray[[n,m]]* xarray[[n,i]] , cprec ] ; larray[[n,i]]=N[ ( larray[[n1,i]]- larray[[n,i]] ) / larray[[n,m]] , cprec ] , (* coption == "EC" *) xarray[[n,i]]= xarray[[n1,i]]- xarray[[n,m]]* xarray[[n,i]] ; larray[[n,i]]= ( larray[[n1,i]]- larray[[n,i]] ) / larray[[n,m]] ] (* end of If *) ,{n,1,i-m} ] (* end of Do *) ];(* end of Block *) (*_________________________________________________ __________________ (second part) _____________________ _____________computation of the new column____________ _______________of the arrays Xm and Lm _______________ __________________________________________________*) Block[{n1,n2,n3,m1}, n1=i-m+1; n2=n1+1; n3=n1-1; m1=m+1; If[ coption == "AC" , xarray[[n1,1]]=N[ xarray[[n2,1]]- xarray[[n1,m]]* xarray[[n1,1]] , cprec ]; larray[[n1,1]]=N[( larray[[n2,1]]- larray[[n1,1]] )/ larray[[n1,m]] , cprec ] , (* coption == "EC" *) xarray[[n1,1]]=xarray[[n2,1]]- xarray[[n1,m]]* xarray[[n1,1]] ; larray[[n1,1]]=( larray[[n2,1]]- larray[[n1,1]] )/ larray[[n1,m]] ] ;(* end of If *) Do[ (*{n,m1,i}*) If[ coption == "AC" , xarray[[n1,n]]=N[ xarray[[n2,n]]- xarray[[n1,m]]* xarray[[n1,n]] , cprec ] ; larray[[n1,n]]=N[( larray[[n2,n]]- larray[[n1,n]] )/ larray[[n1,m]] , cprec ] , (* coption == "EC" *) xarray[[n1,n]]=xarray[[n2,n]]- xarray[[n1,m]]* xarray[[n1,n]] ; larray[[n1,n]]=( larray[[n2,n]]- larray[[n1,n]] )/ larray[[n1,m]] ]; (* end of If *) If[ n == m1 , If[ coption == "AC" , xarray[[n3,m1]]=N[ xarray[[n1,m1]] / xarray[[n3,m1]] , cprec ] ; larray[[n3,m1]]= N[ larray[[n1,m1]]- larray[[n3,m1]] , cprec ] , (* coption == "EC" *) xarray[[n3,m1]]=xarray[[n1,m1]] / xarray[[n3,m1]] ; larray[[n3,m1]]= larray[[n1,m1]]- larray[[n3,m1]] ] (* end of If [ coption ] *) ] (*end of If*) ,{n,m1,i} ](* end of Do *) ] (*end of Block*) ,{m,2,i} ]; (*end of Do *) (*________________________________________________ ________end of the computation of c(X[0,0,i-1,x]) and ______ _________________L[0,0,i-1,g[x,t],x]___________________ ______________xarray[[1,1]]=c(X[0,0,i-1,x])____________ ____________larray[[1,1]]=L[0,0,i-1,g[x,t],x]_____________ __________________________________________________ ___________printing of the i-th approximant_____________ __________________________________________________*) If[ toption == "SCL" , If[ coption == "EC" , wf2= wf1 + xarray[[1,1]]*larray[[1,1]] ; Print["fgpt[",i-1,"]=", Expand[ wf2 ] ] ; wn2= wf2 ; If[ aroption != 0 , Print[ "ngpt[", i-1, "]=", N[ wn2 , resultprec ] ] ] , (* coption == "AC" *) wn2=N[ wn1 + xarray[[1,1]]*larray[[1,1]] , cprec ] ; Print[ "ngpt[", i-1, "]=", N[ wn2 , resultprec ] ] ]; (* end of If[ coption ] *) If[ reoption!=0 , Print[ "re[", i-1, "]=", N[ N[ Abs[ (wn2-series[t]) / series[t] ] , cprec ] , reprec ] ] (* end of Print *) ]; (* end of If *) , (* toption == "VAR" *) If[ coption == "EC" , wf2 = wf1 + xarray[[1,1]]*larray[[1,1]] ; Print[ "fgpt[", i-1, "]=", Together[ wf2] ] ; , (* coption == "AC" *) wn2=N[ wn1 + xarray[[1,1]]*larray[[1,1]] , cprec ] ; Print["ngpt[",i-1,"]=", N[ Together[wn2] , resultprec ] ] ; ](* end of If [ coption ]*) ] ; (* end of If[ toption ]*) Print[" "] ; If[ coption == "EC", wf1=wf2 , wn1=wn2 ] ,{i,2,k+1} ](* end of Do *) (*________________________________________________*) ](* end of Block *) End[ ] Protect[ tablegpt ] EndPackage[ ] (******************************) (******** Package BE.M ********) (******************************) BeginPackage["BE`"] Clear[ series, g, c ] BE::usage="is a package that contains the definitions of: - the series of functions - the generating function - the moments , that the package GPADETYPE.M needs" series::usage="series[t] is the closed form of the series of functions" g::usage="g[x,t] is the closed form of the generating function" c::usage="c[i] is the moment of order i of the functional c" Begin["`Private`"] (* EXAMPLE 1 *) series[t_]:=Log[1+t]/t ; g[x_,t_]:=1/(1-x*t) ; c[i_]:=(-1)^i/(i+1) ; (* EXAMPLE 2 *) (*series[t_]:=Log[1+t]/t ; g[x_,t_]:=Log[1+x*t]/t ; c[i_]:=1 ; *) End[ ] EndPackage[ ] (*******************************) (******** Package BIF.M ********) (*******************************) BeginPackage["BIF`"] Clear[ initialf ] BIF::usage="is a package that contains the definitions of the initial functionals, that the package GPADETYPE.M needs" initialf::usage="initialf[ i, body, var] is the definition of the i-th initial functional applied to Function[ var, body ]" Begin["`Private`"] (* CHOICE A *) initialf[ i_ ,body_ ,var_ ] := Function[ var, body ][ -1/(i + 1) ] ; (* CHOICE B *) (*initialf[ i_ ,body_ ,var_ ] := Integrate[ body, {var,-1/(i+1),-1/(i+2)} ] ;*) End[ ] EndPackage[ ] (*______________________________ ______Mathematica SESSION_______ ________________________________ WE GIVE BELOW SOME EXAMPLES TO SHOW THE CAPABILITIES OF THE FUNCTION tablegpt, AND ALSO THE TYPE OF RESULTS THAT CAN BE OBTAINED, IF THE ARGUMENTS TOPTION AND COPTION ARE WRONG. ______________________________*) <= 40. ________________________________________________*) (*______________________________________________ ___ WE GIVE BELOW THE RESULTS OF THE ARTICLE ___ ________________________________________________ The numerical results presented in the article are obtained taking coption == "AC" and cprec == 19 . This means that the calculations are made in the fixed machine precision , using the function N[ -, 19 ] . In other words , we do low precision calculations . We remember that the precision of the Macintosh SE/30 is 19 . __________________________________________________*) Timing[tablegpt[10,t,"VAR","EC"]] fgpt[0]=1/(1 + t) fgpt[1]=2/(2 + t) fgpt[2]=(6 + 5 t)/(2 (1 + t) (3 + t)) 2 3 fgpt[3]=(144 + 228 t + 108 t + 19 t )/ (6 (1 + t) (2 + t) (3 + t) (4 + t)) 2 3 4 fgpt[4]=(720 + 1284 t + 768 t + 203 t + 18 t )/ (6 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t)) 2 3 4 fgpt[5]=(21600 + 42120 t + 29460 t + 9930 t + 1555 t + 5 159 t )/ (30 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t) (6 + t)) 2 3 fgpt[6]=(302400 + 632880 t + 496680 t + 197940 t + 4 5 6 41630 t + 5336 t - 211 t )/ (60 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t) (6 + t) (7 + t)) 2 fgpt[7]=(16934400 + 37558080 t + 32244240 t + 3 4 5 6 14561400 t + 3716860 t + 590226 t + 25536 t + 7 19771 t )/ (420 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t) (6 + t) (7 + t) (8 + t)) 2 fgpt[8]=(152409600 + 354957120 t + 327756240 t + 3 4 5 163296840 t + 48013140 t + 9028894 t + 6 7 8 820050 t + 203475 t - 117605 t )/ (420 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t) (6 + t) (7 + t) (8 + t) (9 + t)) 2 fgpt[9]=(1524096000 + 3701980800 t + 3632519520 t + 3 4 5 1960724640 t + 643428240 t + 138302080 t + 6 7 8 9 17229394 t + 2854800 t - 972575 t + 909115 t )/ (420 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t) (6 + t) (7 + t) (8 + t) (9 + t) (10 + t)) 2 fgpt[10]=(16765056000 + 42245884800 t + 43659695520 t + 3 4 5 25200490560 t + 9038435280 t + 2164751120 t + 6 7 8 327825414 t + 48632194 t - 7843525 t + 9 10 9027690 t - 7756313 t )/ (420 (1 + t) (2 + t) (3 + t) (4 + t) (5 + t) (6 + t) (7 + t) (8 + t) (9 + t) (10 + t) (11 + t)) {346.9 Second, Null} (* EXAMPLE 1 / CHOICE A / t=1/10 *) Timing[tablegpt[18,1/10,"SCL","AC",19,1,2,19]] ngpt[0]=0.9090909090909090909 re[0]=0.046 ngpt[1]=0.9523809523809523809 re[1]=0.00076 ngpt[2]=0.9530791788856304985 re[2]=0.000024 ngpt[3]=0.9531018854386281611 -8 re[3]=9.2 10 ngpt[4]=0.9531017741319958195 -8 re[4]=2.5 10 ngpt[5]=0.953101799312840515 -9 re[5]=1.3 10 ngpt[6]=0.9531017979533113538 -11 re[6]=9.4 10 ngpt[7]=0.9531017980496206312 -12 re[7]=6.7 10 ngpt[8]=0.9531017980427756454 -13 re[8]=5. 10 ngpt[9]=0.9531017980431676873 -14 re[9]=8.5 10 ngpt[10]=0.9531017980392848927 -12 re[10]=4.2 10 ngpt[11]=0.9531017979081451278 -10 re[11]=1.4 10 ngpt[12]=0.9531017930245871805 -9 re[12]=5.3 10 ngpt[13]=0.9531016007674931718 -7 re[13]=2.1 10 ngpt[14]=0.9530940770413426088 -6 re[14]=8.1 10 ngpt[15]=0.9528104393613031248 re[15]=0.00031 ngpt[16]=0.9422785871535768974 re[16]=0.011 ngpt[17]=0.535593077066076859 re[17]=0.44 ngpt[18]=-16.08206884403569196 re[18]=18. {105.367 Second, Null} (* EXAMPLE 1 / CHOICE A / t=5/10 *) Timing[tablegpt[18,5/10,"SCL","AC",19,1,2,19]] ngpt[0]=0.6666666666666666667 re[0]=0.18 ngpt[1]=0.8 re[1]=0.013 ngpt[2]=0.8095238095238095238 re[2]=0.0017 ngpt[3]=0.8109347442680776014 -6 re[3]=5.6 10 ngpt[4]=0.8109026775693442359 re[4]=0.000034 ngpt[5]=0.8109367176033842679 -6 re[5]=8. 10 ngpt[6]=0.8109280184835740259 -6 re[6]=2.7 10 ngpt[7]=0.8109309547180695183 -7 re[7]=9.1 10 ngpt[8]=0.810929955569791207 -7 re[8]=3.2 10 ngpt[9]=0.8109303111616713609 -7 re[9]=1.2 10 ngpt[10]=0.81093018067630991 -8 re[10]=4.4 10 ngpt[11]=0.8109302297899225965 -8 re[11]=1.7 10 ngpt[12]=0.8109302083555396209 -9 re[12]=9.7 10 ngpt[13]=0.8109300972258040342 -7 re[13]=1.5 10 ngpt[14]=0.8109255247104956377 -6 re[14]=5.8 10 ngpt[15]=0.8107880723123342286 re[15]=0.00018 ngpt[16]=0.8089713950037241565 re[16]=0.0024 ngpt[17]=0.9545179237449895502 re[17]=0.18 ngpt[18]=16.7493991583511504 re[18]=20. {106.067 Second, Null} <