1 /*******************************************************************************
3 Test file for the Exponential Integrals
5 by Dieter Kaiser (2008)
6 *******************************************************************************/
11 /* Define a test function for single values */
13 closeto(e,tol):=block([numer:true,abse],abse:abs(e),if(abse<tol) then true else abse);
14 closeto(e,tol):=block([numer:true,abse],abse:abs(e),if(abse<tol) then true else abse);
16 (test_value(actual, ref, digits) := closeto(realpart(actual)-realpart(ref), 10^(-digits)) and closeto(imagpart(actual)-imagpart(ref), 10^(-digits)), done);
19 /*******************************************************************************
20 At first we check the special values of the Exponential Integrals
21 *******************************************************************************/
23 errcatch(expintegral_e(0,0));
25 errcatch(expintegral_e(0,0.0));
27 errcatch(expintegral_e(0,0.0b0));
30 errcatch(expintegral_ei(0));
32 errcatch(expintegral_ei(0.0));
34 errcatch(expintegral_ei(0.0b0));
41 expintegral_li(0.0b0);
44 errcatch(expintegral_li(1));
46 errcatch(expintegral_li(1.0));
48 errcatch(expintegral_li(1.0b0));
55 expintegral_si(0.0b0);
62 expintegral_shi(0.0b0);
65 errcatch(expintegral_ci(0));
67 errcatch(expintegral_ci(0.0));
69 errcatch(expintegral_ci(0.0b0));
72 errcatch(expintegral_chi(0));
74 errcatch(expintegral_chi(0.0));
76 errcatch(expintegral_chi(0.0b0));
79 /*******************************************************************************
80 Simplifications for the Exponential Integrals
81 *******************************************************************************/
89 expintegral_e(-1,10+%i);
90 (%i+11)*%e^(-%i-10)/(%i+10)^2;
98 expintegral_e(0,10+%i);
101 /* The case Ev(0) simplifies to 1/(v-1) only for Re(v)>1 */
103 (assume(v>1), expintegral_e(v,0));
106 expintegral_e(3/2+%i,0);
109 errcatch(expintegral_e(1/2+%i,0));
112 /* We don't simplify for infinities as an argument */
114 expintegral_e(-1,inf);
115 expintegral_e(-1,inf);
117 expintegral_e(v,infinity);
118 expintegral_e(v,infinity);
120 expintegral_e(minf,z);
121 expintegral_e(minf,z);
123 /* Realpart and imagpart for expintegral_e */
125 (assume(x_pos>0),done);
128 /* a positive real value */
129 realpart(expintegral_e(v,x_pos));
130 expintegral_e(v,x_pos);
131 imagpart(expintegral_e(v,x_pos));
134 /* a complex value */
135 realpart(expintegral_e(v,1+%i));
136 1/2*(expintegral_e(v,1-%i)+expintegral_e(v,1+%i));
137 imagpart(expintegral_e(v,1+%i));
138 1/2*%i*(expintegral_e(v,1-%i)-expintegral_e(v,1+%i));
140 /* Realpart and imagpart for expintegral_ei */
143 realpart(expintegral_ei(x));
145 imagpart(expintegral_ei(x));
148 /* a complex value */
149 realpart(expintegral_ei(1+%i));
150 1/2*(expintegral_ei(1-%i)+expintegral_ei(1+%i));
151 imagpart(expintegral_ei(1+%i));
152 1/2*%i*(expintegral_ei(1-%i)-expintegral_ei(1+%i));
154 /* Realpart and imagpart for expintegral_si
155 expintegral_si has in addition reflection symmetry and
156 for a pure imaginary argument the result is pure imaginary */
159 realpart(expintegral_si(x));
161 imagpart(expintegral_si(x));
164 /* an imaginary value */
165 realpart(expintegral_si(%i));
167 imagpart(expintegral_si(%i));
168 -%i*expintegral_si(%i);
170 /* a complex value */
171 realpart(expintegral_si(1+%i));
172 1/2*(expintegral_si(1-%i)+expintegral_si(1+%i));
173 imagpart(expintegral_si(1+%i));
174 1/2*%i*(expintegral_si(1-%i)-expintegral_si(1+%i));
176 /* Limits of expintegral_si */
178 limit(expintegral_si(x),x,inf);
181 limit(expintegral_si(x),x,minf);
184 /* Limits of expintegral_shi */
186 limit(expintegral_shi(x),x,inf);
189 limit(expintegral_shi(x),x,minf);
192 /* Limits of expintegral_chi */
194 limit(expintegral_chi(x),x,inf);
197 limit(expintegral_chi(x),x,minf);
200 /*******************************************************************************
201 For a negative integer parameter we expand in a series
202 *******************************************************************************/
205 120*(z^5/120+z^4/24+z^3/6+z^2/2+z+1)*%e^-z/z^6;
207 /*******************************************************************************
208 For a half integral parameter we can expand in terms of the
209 Erfc or Erf function using the flag expintexpand.
210 *******************************************************************************/
215 expintegral_e(1/2,z);
216 sqrt(%pi)/sqrt(z)*erfc(sqrt(z));
218 expintegral_e(-1/2,z);
219 sqrt(%pi)/(2*z^(3/2))*erfc(sqrt(z))+%e^(-z)/z;
221 /* Expansion in terms of Erf for z = 1/2
222 We test the Expansion against a pure numerical evaluation.
223 The expansion works for complex argument too.
224 Attention: We have no support for Complex arguments of the Erf function. */
229 expintegral_e(5/2,1/2);
230 2*sqrt(%pi)*(1-erf(1/sqrt(2)))/(3*sqrt(2));
232 /* We test the expansion against a pure numerical evaluation */
233 test_value(%,expintegral_e(2.5,0.5),15),numer;
236 expintegral_e(-5/2,1/2);
238 8*sqrt(2)*(15*sqrt(%pi)*(1-erf(1/sqrt(2)))/8+21/(4*sqrt(2)*sqrt(%e)));
241 2^(7/2)*(15*sqrt(%pi)*(1-erf(1/sqrt(2)))/8+(5/sqrt(2)+1/2^(5/2))/sqrt(%e));
243 test_value(%,expintegral_e(-2.5,0.5),13),numer;
246 /*******************************************************************************
247 For a parameter which is a positive integer we can expand
248 the function in terms of the Exponential Integral Ei.
249 *******************************************************************************/
252 -z^2*(log(z)+(log(-1/z)-log(-z))/2+expintegral_ei(-z))/2-(z/2-1/2)*%e^-z;
254 /* We compare this with numerical values */
256 ratsimp(expintegral_e(3,1/2));
257 (sqrt(%e)*(2*log(2)+log(-1/2)-2*expintegral_ei(-1/2)-log(-2))+4)/(16*sqrt(%e));
259 test_value(%,expintegral_e(3,0.5),15),numer;
262 (expand:expintegral_e(10,1/2),done);
265 test_value(expand,expintegral_e(10,0.5),15),numer;
268 (expand:expintegral_e(100,1/2),done);
271 test_value(expand,expintegral_e(100,0.5),15),numer;
277 /*******************************************************************************
278 Do tests for additional float evaluation
279 *******************************************************************************/
282 expintegral_e(1,-1.700598-0.612828*%i),
283 1.229787425764198*%i-3.675726471068782,15);
287 expintegral_e(1,-1.5-%i*18.0),
288 0.181696882955049 + 0.16898654452488*%i,15);
292 expintegral_e(1,-1.5-%i*180.0),
293 .01998793885396577-.01484463667769751*%i,15);
297 expintegral_e(1,-15.0-%i*50.0),
298 62936.65453487506*%i-462.2396897671588,10);
302 expintegral_e(1,-15.0-%i*180.0),
303 15302.16784585461-9678.322938932864*%i,10);
307 expintegral_e(1,-150.0-%i*540.0),
308 2.479041623323267e+62*%i+2.105063890337474e+61,13-62);
312 expintegral_e(1,1.5+%i*18),
313 .01021327940204757-.006754558125326895*%i,15);
317 expintegral_e(1,15.0+%i*180.0),
318 1.129118870333903e-9*%i+1.261123517801268e-9,15);
322 expintegral_e(1,150.0+%i*540.0),
323 7.503677061484707e-69-1.036533879419174e-68*%i,15-69);
330 /*******************************************************************************
331 Do tests for Bigfloat evaluation (values from functions.wolfram.com)
332 *******************************************************************************/
334 /* Remember actual fpprec */
335 (oldfpprec:fpprec, fpprec:64, done);
339 expintegral_e(1,0.25b0),
340 1.044282634443738194536438161232282251891528374744802718635140468b0,
345 expintegral_e(1,0.50b0),
346 0.5597735947761608117467959393150852352268468903163535152482932191b0,
351 expintegral_e(1,1.50b0),
352 0.1000195824066326519019093399116669782617300061403505850505670604b0,
357 expintegral_e(1,2.50b0),
358 0.02491491787026973549562801227460963594584838471142737701193454450b0,
363 expintegral_e(1,0.5b0+%i),
364 - 0.0713947110424527235558849799368449390033695834555289289265924760b0 +
365 - 0.3574937736521626512548586934573247791553769710980144511429423771b0*%i,
370 expintegral_ei(-0.5b0),
371 -0.5597735947761608117467959393150852352268468903163535152482932191b0,
376 expintegral_ei(0.5b0),
377 0.4542199048631735799205238126628023652814055543526420451628177867b0,
382 expintegral_ei(1.5b0),
383 3.301285449129797837957411316134742787656606985453422100762913970b0,
388 expintegral_ei(1.5b0+%i),
389 2.799671509755731161198928033788660326920401659332834224954077897b0 +
390 2.737079221508684508327603325281307039723914975958035767630503279b0*%i,
395 expintegral_li(-0.5b0),
396 0.058454819131659372625658464865614145649609292000300491927658936b0 +
397 3.265670174417890088883763125722547571780846521093778812746639381b0*%i,
402 expintegral_li(0.5b0),
403 -0.3786710430610879767272071846365609805512340409782139969444209417b0,
408 expintegral_li(1.5b0),
409 0.1250649863152963559943500047955129365420883239309922910956161087b0,
414 expintegral_li(1.5b0+%i),
415 0.955549209862142878221358892328220253212569406502554250070344843b0 +
416 1.567751569664112401647194996566519972267813732803503976674771406b0*%i,
421 expintegral_si(-0.5b0),
422 -0.4931074180430666891616267075727646536413371384287211316602426140b0,
427 expintegral_si(0.5b0),
428 0.4931074180430666891616267075727646536413371384287211316602426140b0,
433 expintegral_si(1.5b0),
434 1.324683531172119680370472846875214042814140454625112248480722201b0,
439 expintegral_si(1.5b0+%i),
440 1.5324237219775529809013400344036774093828247429181012177841253510b0 +
441 0.6883092845662321107998443833405013522538814097236134325126725862b0*%i,
446 expintegral_ci(-0.5b0),
447 -0.177784078806612901335810271070569078090519474812621968666825358b0 +
448 3.141592653589793238462643383279502884197169399375105820974944592b0*%i,
453 expintegral_ci(0.5b0),
454 -0.1777840788066129013358102710705690780905194748126219686668253576b0,
459 expintegral_ci(1.5b0),
460 0.4703563171953998866750821522365605516152327005730752953941674282b0,
465 expintegral_ci(1.5b0+%i),
466 0.7839176551092182755417770543442248219437012644680041434724902541b0 -
467 0.0812194103150585766889706525256841552731980806778019973545925276b0*%i,
472 expintegral_shi(-0.5b0),
473 -0.5069967498196671958336598759889438002541262223344977802055555029b0,
478 expintegral_shi(0.5b0),
479 0.5069967498196671958336598759889438002541262223344977802055555029b0,
484 expintegral_shi(1.5b0),
485 1.700652515768215244929660328023204882959168495796886342906740515b0,
490 expintegral_shi(1.5b0+%i),
491 1.405456250564077987167827011345745730833834776665624179949753110b0 +
492 1.324296049597592107364382165946694647067190542728881672301521998b0*%i,
497 expintegral_chi(-0.5b0),
498 -0.052776844956493615913136063326141434972720667981855735042737716b0 +
499 3.141592653589793238462643383279502884197169399375105820974944592b0*%i,
504 expintegral_chi(0.5b0),
505 -0.05277684495649361591313606332614143497272066798185573504273771621b0,
510 expintegral_chi(1.5b0),
511 1.600632933361582593027750988111537904697438489656535757856173455b0,
516 expintegral_chi(1.5b0+%i),
517 1.394215259191653174031101022442914596086566882667210045004324787b0 +
518 1.412783171911092400963221159334612392656724433229154095328981281b0*%i,
524 (fpprec:oldfpprec, done);
527 /*******************************************************************************
528 Do tests for additional big float evaluation
529 *******************************************************************************/
531 /* Remember actual fpprec */
532 (oldfpprec:fpprec, fpprec:64, done);
536 expintegral_e(1,-1.5B0-%i*18.0B0),
537 1.689865445248795461022355866185975300284302677290211138169639712b-1*%i
538 +1.816968829550486868009237590887639256845378383882275967782801257b-1,63);
542 expintegral_e(1,-15.0B0-%i*50.0B0),
543 6.293665453487508854049428479450922789578087068032898765875144175b4*%i
544 -4.62239689767167158016168999268727094583699040537958778438547305b2,59);
548 expintegral_e(1,-1.5B0-%i*180.0B0),
549 1.998793885396577954161433015440646790143523658773070463290940391b-2
550 -1.48446366776975235341069111717359420933661819609933627048078479b-2*%i,64);
554 expintegral_e(1,-15.0B0-%i*180.0B0),
555 1.530216784585460659290957316900806622008438558612666623998533076b4
556 -9.678322938932862392009065659301165442754946683378713459319981218b3*%i,59);
560 expintegral_e(1,-150.0B0-%i*540.0B0),
561 2.47904162332326778788226522449358779416653162097669293288256403b62*%i
562 +2.105063890337477483794346786409993155624883726578689067616685218b61,1);
566 expintegral_e(1,1.5B0+%i*18.0B0),
567 1.021327940204755864240745590773899499558121729025330486880547885b-2
568 -6.754558125326884112691473105665013998699325818242672495399974279b-3*%i,65);
572 expintegral_e(1,15.0B0+%i*180.0B0),
573 1.129118870333903101943908390287222351537018836722867882019975027b-9*%i
574 +1.261123517801267593713906360450736314138456246082714062225342743b-9,72);
578 expintegral_e(1,150.0B0+%i*540.0B0),
579 7.50367706148470796758191535417179842322266910293477644515984948b-69
580 -1.03653387941917390868865781356557208741441722016128718318801276b-68*%i,-64-69);
585 (fpprec:oldfpprec, done);
588 /*******************************************************************************
589 Do tests for a parameter not an positive integer (double float arithmetic)
590 *******************************************************************************/
593 expintegral_e(0.5,0.5),
598 /* functions.wolfram.com get a small imaginary part.
599 Our algorithm gives a pure real result. That's correct. */
602 expintegral_e(1.5,0.5),
603 0.4176818285785640 + 0.10d-16*%i,
608 expintegral_e(1.5,1.5),
609 0.08475846798926254 + 0.10d-17*%i,
613 /* The algorithm works for an Complex parameter (not Bigfloat) too */
616 expintegral_e(-0.25+%i,0.5),
617 0.7029675553348383 - 1.0854583859408265*%i,
622 expintegral_e(0.5+%i,0.5),
623 0.5037890474837921 - 0.4713445822591324*%i,
628 expintegral_e(0.5+%i,1.5),
629 0.10617497621984483 - 0.04370294969886679*%i,
633 /* For a negative integer as parameter the function will be expanded in a
634 finite series. We compare this result with the direct numerically
635 evaluation of the function. */
637 test_value(expintegral_e(-3,0.5)-expintegral_e(-3.0,0.5),0.0,13);
640 /*******************************************************************************
641 Do tests for a parameter not an integer (Bigfloat arithmetic)
642 *******************************************************************************/
644 /* Remember actual fpprec */
645 (oldfpprec:fpprec, fpprec:64, done);
649 expintegral_e(0.5,0.5b0),
650 0.7953794908467028960691560442509551305541581704269437959894550131b0,
654 /* functions.wolfram.com get a small imaginary part.
655 Our algorithm gives a pure real result. That's correct. */
658 expintegral_e(1.5,0.5b0),
659 0.4176818285785639511384430257314057763296781005474301153763293043b0 +
665 expintegral_e(1.5,1.5b0),
666 0.08475846798926253566550159750486026149596073485977905694436004042b0 +
672 (fpprec:oldfpprec, done);
675 /*******************************************************************************
676 We check the transformation to another representation
677 *******************************************************************************/
679 /* to prevent the simplification of 1/2*(log(z)-log(1/z))=0 which is wrong
680 for z a negative and real value we switch of logexpand */
682 (oldlogexpand:logexpand, logexpand:false);
685 expintrep:gamma_incomplete;
689 gamma_incomplete(1-n,z)*z^(n-1);
692 z^(n-1)*gamma_incomplete(1-n,z);
695 gamma_incomplete(0,z);
698 (log(z)-log(1/z))/2-log(-z)-gamma_incomplete(0,-z);
701 (log(log(z))-log(1/log(z)))/2-log(-log(z))-gamma_incomplete(0,-log(z));
704 %i*(-log(%i*z)+log(-%i*z)-gamma_incomplete(0,%i*z)+gamma_incomplete(0,-%i*z))/2;
707 log(z)-(log(%i*z)+log(-%i*z)+gamma_incomplete(0,%i*z)+gamma_incomplete(0,-%i*z))/2;
710 (log(z)-log(-z)+gamma_incomplete(0,z)-gamma_incomplete(0,-z))/2;
713 (-log(z)+log(-z)+gamma_incomplete(0,z)+gamma_incomplete(0,-z))/-2;
718 (logexpand:oldlogexpand,done);
721 /* Do the functions have the appropriate symmetrie?
723 With the exception of exponential_ci we get for all tests a double float
724 zero or a Bigfloat zero. Because we use numercial evaluation this is not
725 natural and perhaps an effect only true with the GCL Compiler.
726 For the function expintegral_ci we get a small imaginary contribution which
729 Can this be verified by other Compilers?
735 expintegral_e(1,z) - conjugate(expintegral_e(1,conjugate(z)));
738 expintegral_e(2,z) - conjugate(expintegral_e(2,conjugate(z)));
741 expintegral_e(5,z) - conjugate(expintegral_e(5,conjugate(z)));
744 expintegral_e(10,z) - conjugate(expintegral_e(10,conjugate(z)));
747 expintegral_e1(z) - conjugate(expintegral_e1(conjugate(z)));
750 expintegral_ei(z) - conjugate(expintegral_ei(conjugate(z)));
753 expintegral_li(z) - conjugate(expintegral_li(conjugate(z)));
756 expintegral_si(z) - conjugate(expintegral_si(conjugate(z)));
760 expintegral_ci(z) - conjugate(expintegral_ci(conjugate(z))),
764 expintegral_shi(z) - conjugate(expintegral_shi(conjugate(z)));
767 expintegral_chi(z) - conjugate(expintegral_chi(conjugate(z)));
770 /* The same for Bigfloats */
775 expintegral_e(1,z) - conjugate(expintegral_e(1,conjugate(z)));
778 expintegral_e(2,z) - conjugate(expintegral_e(2,conjugate(z)));
781 expintegral_e(5,z) - conjugate(expintegral_e(5,conjugate(z)));
784 expintegral_e(10,z) - conjugate(expintegral_e(10,conjugate(z)));
787 expintegral_e1(z) - conjugate(expintegral_e1(conjugate(z)));
790 expintegral_ei(z) - conjugate(expintegral_ei(conjugate(z)));
793 expintegral_li(z) - conjugate(expintegral_li(conjugate(z)));
796 expintegral_si(z) - conjugate(expintegral_si(conjugate(z)));
799 expintegral_ci(z) - conjugate(expintegral_ci(conjugate(z)));
802 expintegral_shi(z) - conjugate(expintegral_shi(conjugate(z)));
805 expintegral_chi(z) - conjugate(expintegral_chi(conjugate(z)));
811 /******************************************************************************
813 Define test functions to do the tests with the numerical data
814 of the tables of A&S.
816 This routine is based on the algorithm to test the Wronskians in the
817 file rtest14.mac which was implemented by Raymond Toy.
819 ******************************************************************************/
821 (test_table(func,table,rows,eps) :=
822 block([badpoints : [],
826 for i:1 thru rows step 1 do
829 result : rectform(func(z)),
831 abserr : abs(result-answer),
832 maxerr : max(maxerr,abserr),
835 badpoints : cons ([z,result,answer,abserr],badpoints)
838 if badpoints # [] then
839 cons(maxerr,badpoints)
845 /* Test function for a table with Complex values */
847 (test_complex_table(func,table,rows,eps) :=
848 block([badpoints : [],
852 for i:1 thru rows step 1 do
854 z : table[i,0]+%i*table[i,1],
855 result : rectform(func(z)),
856 answer : (table[i,2]+%i*table[i,3]),
857 abserr : abs(result-answer),
858 maxerr : max(maxerr,abserr),
861 badpoints : cons ([z,result,answer,abserr],badpoints)
864 if badpoints # [] then
865 cons(maxerr,badpoints)
871 /*****************************************************************************/
873 /* Values for E[-2](z), E[-3](z) and E[-4](z) */
876 em2 : make_array(flonum,5,2),
878 0.0,0.0, /* the first entry isn't tested */
879 0.5,15.7697971525285,
885 em3 : make_array(flonum,5,2),
887 0.0, 0.0, /* the first entry isn't tested */
888 0.5, 95.8318442345961,
889 1.0, 5.88607105874308
894 em4 : make_array(flonum,5,2),
896 0.0, 0.0, /* the first entry isn't tested */
897 0.5, 767.8678151961939,
898 1.0, 23.91216367614375
902 /* Values for E2(z) from wolfram.functions.com */
905 e2 : make_array(flonum,20,4),
908 0.5, 0.0, 0.326643862324553, 0.0,
909 1.0, 0.0, 0.148495506775922, 0.0,
910 1.5, 0.0, 0.0731007865384809, 0.0,
912 -1.5, 0.0, -0.47023910335663, -4.71238898038469,
913 -1.0, 0.0, 0.82316401210311, -3.14159265358979,
914 -0.5, 0.0, 1.42161131826854, -1.57079632679490,
916 0.5, 1.0, 0.005913495891524, -0.260236353676039,
917 1.0, 1.0, 0.0191599508550726, -0.1305169650657347,
918 1.5, 1.0, 0.0152091306647864, -0.0662678635026173,
920 -1.5, 1.0, -2.18255375782701, -1.57830995398609,
921 -1.0, 1.0, -1.04975484772724, -1.27655210369426,
922 -0.5, 1.0, -0.386354424417090, -0.872308287488887
926 /* Do the tests with the above test data */
928 test_table(lambda([z],expintegral_e(-2,z)),'em2,2,3.5e-14);
931 test_table(lambda([z],expintegral_e(-3,z)),'em3,2,2.9e-14);
934 test_table(lambda([z],expintegral_e(-4,z)),'em4,2,1.0e-15);
937 test_complex_table(lambda([z],expintegral_e(2,z)),'e2,12,3.9e-15);
940 /*****************************************************************************
941 A&S Table 5.1 p. 238, values for Si(x)/x from 0.00 through 0.50
942 ******************************************************************************/
945 si_1 : make_array(flonum,51,2),
946 fillarray(si_1,[ /* We start the loop for the test with i=1. */
947 0.00,1.0000000000, /* Therefore we don't do the the test for the first value */
1002 test_table(lambda([z],expintegral_si(z)/z),'si_1,50,1.25e-10);
1005 /******************************************************************************
1006 A&S Table 5.1 p. 239-243, values for Si(x) from 0.50 through 10.0
1007 ******************************************************************************/
1010 si_2 : make_array(flonum,231,2),
1251 test_table(lambda([z],expintegral_si(z)),'si_2,230,1.95e-10);
1254 /******************************************************************************
1255 A&S Table 5.1 p. 238, values for (Ci(x)-log(x)-%gamma)/x
1256 from 0.00 through 0.50
1257 ******************************************************************************/
1260 ci_1 : make_array(flonum,55,2),
1312 0.50,-0.2474102526]), done);
1316 lambda([z],(expintegral_ci(z)-log(z)-%gamma)/z^2),'ci_1,50,1.95e-10);
1319 /******************************************************************************
1320 A&S Table 5.1 p. 239-243, values for Ci(x) from 0.50 through 10.0
1321 ******************************************************************************/
1324 ci_2 : make_array(flonum,235,2),
1565 test_table(lambda([z],expintegral_ci(z)),'ci_2,230,3.2e-8);
1568 /******************************************************************************
1569 A&S Table 5.1 p. 238, values for (Ei(x)-log(x)-%gamma)/x
1570 from 0.00 through 0.50
1571 ******************************************************************************/
1574 ei_1 : make_array(flonum,200,2),
1626 0.50,1.140302841]),done);
1629 test_table(lambda([z],(expintegral_ei(z)-log(z)-%gamma)/z),'ei_1,50,5.90e-10);
1632 /******************************************************************************
1633 A&S Table 5.1 p. 239-241, values for Ei(x) from 0.50 through 2.00
1634 ******************************************************************************/
1637 ei_2 : make_array(flonum,235,2),
1796 test_table(lambda([z],expintegral_ei(z)),'ei_2,150,5.70e-10);
1799 /******************************************************************************
1800 A&S Table 5.1 p. 242-243, values for x*%e^(-x)*Ei(x) from 2.00 through 10.0
1801 ******************************************************************************/
1804 ei_3 : make_array(flonum,235,2),
1891 test_table(lambda([z],z*%e^(-z)*expintegral_ei(z)),'ei_3,80,8.95e-10);
1894 /******************************************************************************
1895 A&S Table 5.1 p. 238, values for (E1(x)-log(x)-%gamma)/x
1896 from 0.00 through 0.50
1897 ******************************************************************************/
1900 e1_1 : make_array(flonum,200,2),
1957 test_table(lambda([z],(expintegral_e1(z)+log(z)+%gamma)/z),'e1_1,50,1.65e-10);
1960 /******************************************************************************
1961 A&S Table 5.1 p. 239-241, values for E1(x) from 0.50 through 2.00
1962 ******************************************************************************/
1965 e1_2 : make_array(flonum,200,2),
2124 test_table(lambda([z],expintegral_e1(z)),'e1_2,150,5.35e-10);
2127 /******************************************************************************
2128 A&S Table 5.1 p. 242-243, values for x*%e^x*E1(x) from 2.00 through 10.0
2129 ******************************************************************************/
2132 e1_3 : make_array(flonum,200,2),
2219 test_table(lambda([z],z*%e^z*expintegral_e1(z)),'e1_3,80,2.50e-8);
2222 /******************************************************************************
2223 A&S Table 5.6 p. 249-251, values for z*%e^z*E1(z) for Complex values
2224 from -19 through 20 for the Real part and
2225 from 0 through 20 for the Complex part
2226 ******************************************************************************/
2229 ec_1 : make_array(flonum,855,4),
2232 /* Table 5.6 p. 249 */
2234 -19,00,1.059305,0.000000,
2235 -18,00,1.063087,0.000001,
2236 -17,00,1.067394,0.000002,
2237 -16,00,1.072345,0.000006,
2238 -15,00,1.078103,0.000014,
2240 -19,01,1.059090,0.003539,
2241 -18,01,1.062827,0.004010,
2242 -17,01,1.067073,0.004584,
2243 -16,01,1.071942,0.005296,
2244 -15,01,1.077584,0.006195,
2246 -19,02,1.058456,0.007000,
2247 -18,02,1.062061,0.007918,
2248 -17,02,1.066135,0.009032,
2249 -16,02,1.070774,0.010403,
2250 -15,02,1.076102,0.012118,
2252 -19,03,1.057431,0.010310,
2253 -18,03,1.060829,0.011633,
2254 -17,03,1.064636,0.013226,
2255 -16,03,1.068925,0.015172,
2256 -15,03,1.073783,0.017579,
2258 -19,04,1.056058,0.013410,
2259 -18,04,1.059190,0.015079,
2260 -17,04,1.062657,0.017075,
2261 -16,04,1.066508,0.019486,
2262 -15,04,1.070793,0.022432,
2264 -19,05,1.054391,0.016252,
2265 -18,05,1.057215,0.018202,
2266 -17,05,1.060297,0.020512,
2267 -16,05,1.063659,0.023272,
2268 -15,05,1.067318,0.026598,
2270 -19,06,1.052490,0.018806,
2271 -18,06,1.054981,0.020969,
2272 -17,06,1.057655,0.023505,
2273 -16,06,1.060510,0.026499,
2274 -15,06,1.063538,0.030055,
2276 -19,07,1.050413,0.021055,
2277 -18,07,1.052565,0.023364,
2278 -17,07,1.054829,0.026044,
2279 -16,07,1.057187,0.029167,
2280 -15,07,1.059610,0.032823,
2282 -19,08,1.048217,0.022996,
2283 -18,08,1.050037,0.025391,
2284 -17,08,1.051905,0.028141,
2285 -16,08,1.053795,0.031306,
2286 -15,08,1.055664,0.034957,
2288 -19,09,1.045956,0.024637,
2289 -18,09,1.047458,0.027066,
2290 -17,09,1.048958,0.029824,
2291 -16,09,1.050421,0.032960,
2292 -15,09,1.051797,0.036527,
2294 -19,10,1.043672,0.025993,
2295 -18,10,1.044880,0.028412,
2296 -17,10,1.046045,0.031130,
2297 -16,10,1.047129,0.034183,
2298 -15,10,1.048081,0.037609,
2300 -19,11,1.041402,0.027086,
2301 -18,11,1.042345,0.029461,
2302 -17,11,1.043212,0.032102,
2303 -16,11,1.043967,0.035034,
2304 -15,11,1.044559,0.038282,
2306 -19,12,1.039177,0.027940,
2307 -18,12,1.039882,0.030245,
2308 -17,12,1.040490,0.032781,
2309 -16,12,1.040965,0.035567,
2310 -15,12,1.041259,0.038616,
2312 -19,13,1.037018,0.028581,
2313 -18,13,1.037515,0.030796,
2314 -17,13,1.037901,0.033211,
2315 -16,13,1.038140,0.035836,
2316 -15,13,1.038192,0.038677,
2318 -19,14,1.034942,0.029034,
2319 -18,14,1.035259,0.031148,
2320 -17,14,1.035456,0.033431,
2321 -16,14,1.035501,0.035888,
2322 -15,14,1.035359,0.038520,
2324 -19,15,1.032959,0.029326,
2325 -18,15,1.033123,0.031330,
2326 -17,15,1.033162,0.033476,
2327 -16,15,1.033049,0.035765,
2328 -15,15,1.032754,0.038193,
2330 -19,16,1.031076,0.029477,
2331 -18,16,1.031110,0.031368,
2332 -17,16,1.031019,0.033377,
2333 -16,16,1.030780,0.035502,
2334 -15,16,1.030365,0.037735,
2336 -19,17,1.029296,0.029511,
2337 -18,17,1.029222,0.031288,
2338 -17,17,1.029025,0.033162,
2339 -16,17,1.028685,0.035129,
2340 -15,17,1.028180,0.037179,
2342 -19,18,1.027620,0.029445,
2343 -18,18,1.027456,0.031110,
2344 -17,18,1.027174,0.032855,
2345 -16,18,1.026756,0.034672,
2346 -15,18,1.026183,0.036552,
2348 -19,19,1.026046,0.029296,
2349 -18,19,1.025809,0.030854,
2350 -17,19,1.025459,0.032474,
2351 -16,19,1.024981,0.034150,
2352 -15,19,1.024360,0.035873,
2354 -19,20,1.024570,0.029080,
2355 -18,20,1.024275,0.030534,
2356 -17,20,1.023872,0.032037,
2357 -16,20,1.023349,0.033582,
2358 -15,20,1.022695,0.035160,
2360 -14,00,1.084892,0.000037,
2361 -13,00,1.093027,0.000092,
2362 -12,00,1.102975,0.000232,
2363 -11,00,1.115431,0.000577,
2364 -10,00,1.131470,0.001426,
2366 -14,01,1.084200,0.007359,
2367 -13,01,1.092067,0.008913,
2368 -12,01,1.101566,0.011063,
2369 -11,01,1.113230,0.014169,
2370 -10,01,1.127796,0.018879,
2372 -14,02,1.082276,0.014306,
2373 -13,02,1.089498,0.017161,
2374 -12,02,1.098025,0.020981,
2375 -11,02,1.108170,0.026241,
2376 -10,02,1.120286,0.033700,
2378 -14,03,1.079313,0.020604,
2379 -13,03,1.085635,0.024471,
2380 -12,03,1.092873,0.029507,
2381 -11,03,1.101137,0.036189,
2382 -10,03,1.110462,0.045218,
2384 -14,04,1.075560,0.026075,
2385 -13,04,1.080853,0.030637,
2386 -12,04,1.086686,0.036422,
2387 -11,04,1.093013,0.043843,
2388 -10,04,1.099666,0.053451,
2390 -14,05,1.071279,0.030642,
2391 -13,05,1.075522,0.035599,
2392 -12,05,1.079985,0.041724,
2393 -11,05,1.084526,0.049336,
2394 -10,05,1.088877,0.058817,
2396 -14,06,1.066708,0.034303,
2397 -13,06,1.069960,0.039405,
2398 -12,06,1.073185,0.045552,
2399 -11,06,1.076197,0.052967,
2400 -10,06,1.078701,0.061886,
2402 -14,07,1.062046,0.037117,
2403 -13,07,1.064412,0.042169,
2404 -12,07,1.066578,0.048115,
2405 -11,07,1.068350,0.055093,
2406 -10,07,1.069450,0.063225,
2408 -14,08,1.057448,0.039174,
2409 -13,08,1.059054,0.044041,
2410 -12,08,1.060352,0.049644,
2411 -11,08,1.061159,0.056057,
2412 -10,08,1.061235,0.063322,
2414 -14,09,1.053021,0.040580,
2415 -13,09,1.053997,0.045176,
2416 -12,09,1.054606,0.050359,
2417 -11,09,1.054687,0.056158,
2418 -10,09,1.054046,0.062566,
2420 -14,10,1.048834,0.041444,
2421 -13,10,1.049303,0.045719,
2422 -12,10,1.049380,0.050452,
2423 -11,10,1.048933,0.055640,
2424 -10,10,1.047807,0.061249,
2426 -14,11,1.044928,0.041867,
2427 -13,11,1.044997,0.045801,
2428 -12,11,1.044674,0.050084,
2429 -11,11,1.043853,0.054695,
2430 -10,11,1.042417,0.059584,
2432 -14,12,1.041320,0.041938,
2433 -13,12,1.041080,0.045531,
2434 -12,12,1.040464,0.049384,
2435 -11,12,1.039389,0.053465,
2436 -10,12,1.037766,0.057719,
2438 -14,13,1.038010,0.041734,
2439 -13,13,1.037537,0.044999,
2440 -12,13,1.036713,0.048452,
2441 -11,13,1.035473,0.052056,
2442 -10,13,1.033752,0.055758,
2444 -14,14,1.034989,0.041321,
2445 -13,14,1.034344,0.044277,
2446 -12,14,1.033378,0.047365,
2447 -11,14,1.032040,0.050547,
2448 -10,14,1.030282,0.053773,
2450 -14,15,1.032241,0.040751,
2451 -13,15,1.031474,0.043422,
2452 -12,15,1.030414,0.046180,
2453 -11,15,1.029026,0.048991,
2454 -10,15,1.027274,0.051808,
2456 -14,16,1.029747,0.040066,
2457 -13,16,1.028895,0.042477,
2458 -12,16,1.027781,0.044941,
2459 -11,16,1.026377,0.047428,
2460 -10,16,1.024658,0.049894,
2462 -14,17,1.027486,0.039301,
2463 -13,17,1.026579,0.041475,
2464 -12,17,1.025438,0.043679,
2465 -11,17,1.024043,0.045883,
2466 -10,17,1.022375,0.048049,
2468 -14,18,1.025437,0.038481,
2469 -13,18,1.024499,0.040444,
2470 -12,18,1.023352,0.042417,
2471 -11,18,1.021981,0.044374,
2472 -10,18,1.020375,0.046282,
2474 -14,19,1.023580,0.037629,
2475 -13,19,1.022628,0.039401,
2476 -12,19,1.021489,0.041170,
2477 -11,19,1.020155,0.042912,
2478 -10,19,1.018617,0.044599,
2480 -14,20,1.021896,0.036759,
2481 -13,20,1.020942,0.038361,
2482 -12,20,1.019824,0.039950,
2483 -11,20,1.018533,0.041505,
2484 -10,20,1.017066,0.043001,
2486 -09,00,1.152759,0.003489,
2487 -08,00,1.181848,0.008431,
2488 -07,00,1.222408,0.020053,
2489 -06,00,1.278884,0.046723,
2490 -05,00,1.353831,0.105839,
2492 -09,01,1.146232,0.026376,
2493 -08,01,1.169677,0.038841,
2494 -07,01,1.199049,0.060219,
2495 -06,01,1.233798,0.097331,
2496 -05,01,1.268723,0.160826,
2498 -09,02,1.134679,0.044579,
2499 -08,02,1.151385,0.060814,
2500 -07,02,1.169639,0.085335,
2501 -06,02,1.186778,0.122162,
2502 -05,02,1.196351,0.175646,
2504 -09,03,1.120694,0.057595,
2505 -08,03,1.131255,0.074701,
2506 -07,03,1.140733,0.098259,
2507 -06,03,1.146266,0.130005,
2508 -05,03,1.142853,0.170672,
2510 -09,04,1.106249,0.065948,
2511 -08,04,1.111968,0.082156,
2512 -07,04,1.115404,0.102861,
2513 -06,04,1.114273,0.128440,
2514 -05,04,1.105376,0.158134,
2516 -09,05,1.092564,0.070592,
2517 -08,05,1.094818,0.085055,
2518 -07,05,1.094475,0.102411,
2519 -06,05,1.089952,0.122397,
2520 -05,05,1.079407,0.143879,
2522 -09,06,1.080246,0.072520,
2523 -08,06,1.080188,0.084987,
2524 -07,06,1.077672,0.099188,
2525 -06,06,1.071684,0.114638,
2526 -05,06,1.061236,0.130280,
2528 -09,07,1.069494,0.072580,
2529 -08,07,1.067987,0.083120,
2530 -07,07,1.064339,0.094618,
2531 -06,07,1.057935,0.106568,
2532 -05,07,1.048279,0.118116,
2534 -09,08,1.060276,0.071425,
2535 -08,08,1.057920,0.080250,
2536 -07,08,1.053778,0.089537,
2537 -06,08,1.047493,0.098840,
2538 -05,08,1.038838,0.107508,
2540 -09,09,1.052450,0.069523,
2541 -08,09,1.049645,0.076885,
2542 -07,09,1.045382,0.084405,
2543 -06,09,1.039464,0.091717,
2544 -05,09,1.031806,0.098337,
2546 -09,10,1.045832,0.067197,
2547 -08,10,1.042834,0.073340,
2548 -07,10,1.038659,0.079462,
2549 -06,10,1.033205,0.085271,
2550 -05,10,1.026459,0.090413,
2552 -09,11,1.040241,0.064664,
2553 -08,11,1.037210,0.069803,
2554 -07,11,1.033231,0.074821,
2555 -06,11,1.028260,0.079488,
2556 -05,11,1.022317,0.083544,
2558 -09,12,1.035508,0.062063,
2559 -08,12,1.032539,0.066381,
2560 -07,12,1.028808,0.070524,
2561 -06,12,1.024300,0.074315,
2562 -05,12,1.019052,0.077561,
2564 -09,13,1.031490,0.059482,
2565 -08,13,1.028638,0.063128,
2566 -07,13,1.025171,0.066576,
2567 -06,13,1.021090,0.069688,
2568 -05,13,1.016439,0.072320,
2570 -09,14,1.028065,0.056975,
2571 -08,14,1.025359,0.060070,
2572 -07,14,1.022152,0.062962,
2573 -06,14,1.018458,0.065542,
2574 -05,14,1.014319,0.067702,
2576 -09,15,1.025132,0.054573,
2577 -08,15,1.022583,0.057215,
2578 -07,15,1.019626,0.059658,
2579 -06,15,1.016277,0.061817,
2580 -05,15,1.012577,0.063610,
2582 -09,16,1.022608,0.052291,
2583 -08,16,1.020219,0.054559,
2584 -07,16,1.017494,0.056638,
2585 -06,16,1.014452,0.058460,
2586 -05,16,1.011130,0.059962,
2588 -09,17,1.020426,0.050135,
2589 -08,17,1.018192,0.052094,
2590 -07,17,1.015681,0.053874,
2591 -06,17,1.012912,0.055424,
2592 -05,17,1.009915,0.056694,
2594 -09,18,1.018530,0.048106,
2595 -08,18,1.016444,0.049806,
2596 -07,18,1.014129,0.051341,
2597 -06,18,1.011600,0.052670,
2598 -05,18,1.008887,0.053752,
2600 -09,19,1.016874,0.046201,
2601 -08,19,1.014929,0.047684,
2602 -07,19,1.012790,0.049015,
2603 -06,19,1.010476,0.050161,
2604 -05,19,1.008009,0.051092,
2606 -09,20,1.015422,0.044413,
2607 -08,20,1.013607,0.045714,
2608 -07,20,1.011629,0.046875,
2609 -06,20,1.009505,0.047870,
2610 -05,20,1.007254,0.048675,
2612 /* Table 5.6 p. 250 */
2614 -4,00,1.438208,0.230161,
2615 -3,00,1.483729,0.469232,
2616 -2,00,1.340965,0.850337,
2617 -1,00,0.697175,1.155727,
2618 /* -0,00,0.577216,0.000000, den Test auf Null verbessern */
2620 -4,01,1.287244,0.263705,
2621 -3,01,1.251069,0.410413,
2622 -2,01,1.098808,0.561916,
2623 -1,01,0.813486,0.578697,
2624 -0,01,0.621450,0.343378,
2626 -4,02,1.185758,0.247356,
2627 -3,02,1.136171,0.328439,
2628 -2,02,1.032990,0.388428,
2629 -1,02,0.896419,0.378838,
2630 -0,02,0.798042,0.289091,
2632 -4,03,1.123282,0.217835,
2633 -3,03,1.080316,0.262814,
2634 -2,03,1.013205,0.289366,
2635 -1,03,0.936283,0.280906,
2636 -0,03,0.875873,0.237665,
2638 -4,04,1.085153,0.189003,
2639 -3,04,1.051401,0.215118,
2640 -2,04,1.006122,0.228399,
2641 -1,04,0.957446,0.222612,
2642 -0,04,0.916770,0.198713,
2644 -4,05,1.061263,0.164466,
2645 -3,05,1.035185,0.180487,
2646 -2,05,1.003172,0.187857,
2647 -1,05,0.969809,0.183963,
2648 -0,05,0.940714,0.169481,
2650 -4,06,1.045719,0.144391,
2651 -3,06,1.025396,0.154746,
2652 -2,06,1.001788,0.159189,
2653 -1,06,0.977582,0.156511,
2654 -0,06,0.955833,0.147129,
2656 -4,07,1.035205,0.128073,
2657 -3,07,1.019109,0.135079,
2658 -2,07,1.001077,0.137939,
2659 -1,07,0.982756,0.136042,
2660 -0,07,0.965937,0.129646,
2662 -4,08,1.027834,0.114732,
2663 -3,08,1.014861,0.119660,
2664 -2,08,1.000684,0.121599,
2665 -1,08,0.986356,0.120218,
2666 -0,08,0.972994,0.115678,
2668 -4,09,1.022501,0.103711,
2669 -3,09,1.011869,0.107294,
2670 -2,09,1.000454,0.108665,
2671 -1,09,0.988955,0.107634,
2672 -0,09,0.978103,0.104303,
2674 -4,10,1.018534,0.094502,
2675 -3,10,1.009688,0.097181,
2676 -2,10,1.000312,0.098184,
2677 -1,10,0.990887,0.097396,
2678 -0,10,0.981910,0.094885,
2680 -4,11,1.015513,0.086718,
2681 -3,11,1.008052,0.088770,
2682 -2,11,1.000221,0.089525,
2683 -1,11,0.992361,0.088911,
2684 -0,11,0.984819,0.086975,
2686 -4,12,1.013163,0.080069,
2687 -3,12,1.006795,0.081673,
2688 -2,12,1.000161,0.082255,
2689 -1,12,0.993508,0.081769,
2690 -0,12,0.987088,0.080245,
2692 -4,13,1.011303,0.074333,
2693 -3,13,1.005809,0.075609,
2694 -2,13,1.000119,0.076067,
2695 -1,13,0.994418,0.075676,
2696 -0,13,0.988891,0.074457,
2698 -4,14,1.009806,0.069340,
2699 -3,14,1.005022,0.070371,
2700 -2,14,1.000090,0.070738,
2701 -1,14,0.995151,0.070419,
2702 -0,14,0.990345,0.069429,
2704 -4,15,1.008585,0.064959,
2705 -3,15,1.004384,0.065803,
2706 -2,15,1.000070,0.066102,
2707 -1,15,0.995751,0.065838,
2708 -0,15,0.991534,0.065024,
2710 -4,16,1.007577,0.061086,
2711 -3,16,1.003859,0.061786,
2712 -2,16,1.000055,0.062032,
2713 -1,16,0.996246,0.061812,
2714 -0,16,0.992518,0.061135,
2716 -4,17,1.006735,0.057640,
2717 -3,17,1.003423,0.058227,
2718 -2,17,1.000043,0.058432,
2719 -1,17,0.996661,0.058246,
2720 -0,17,0.993342,0.057677,
2722 -4,18,1.006025,0.054555,
2723 -3,18,1.003057,0.055052,
2724 -2,18,1.000035,0.055224,
2725 -1,18,0.997011,0.055066,
2726 -0,18,0.994038,0.054583,
2728 -4,19,1.005420,0.051779,
2729 -3,19,1.002747,0.052202,
2730 -2,19,1.000028,0.052349,
2731 -1,19,0.997309,0.052214,
2732 -0,19,0.994631,0.051801,
2734 -4,20,1.004902,0.049267,
2735 -3,20,1.002481,0.049631,
2736 -2,20,1.000023,0.049757,
2737 -1,20,0.997565,0.049640,
2738 -0,20,0.995140,0.049284,
2740 01,00,0.596347,0.000000,
2741 02,00,0.722657,0.000000,
2742 03,00,0.786251,0.000000,
2743 04,00,0.825383,0.000000,
2744 05,00,0.852111,0.000000,
2746 01,01,0.673321,0.147864,
2747 02,01,0.747012,0.075661,
2748 03,01,0.797036,0.045686,
2749 04,01,0.831126,0.030619,
2750 05,01,0.855544,0.021985,
2752 01,02,0.777514,0.186570,
2753 02,02,0.796965,0.118228,
2754 03,02,0.823055,0.078753,
2755 04,02,0.846097,0.055494,
2756 05,02,0.864880,0.040999,
2758 01,03,0.847468,0.181226,
2759 02,03,0.844361,0.132252,
2760 03,03,0.853176,0.096659,
2761 04,03,0.865521,0.072180,
2762 05,03,0.877860,0.055341,
2764 01,04,0.891460,0.165207,
2765 02,04,0.881036,0.131686,
2766 03,04,0.880584,0.103403,
2767 04,04,0.885308,0.081408,
2768 05,04,0.892143,0.064825,
2770 01,05,0.919826,0.148271,
2771 02,05,0.907873,0.125136,
2772 03,05,0.903152,0.103577,
2773 04,05,0.903231,0.085187,
2774 05,05,0.906058,0.070209,
2776 01,06,0.938827,0.132986,
2777 02,06,0.927384,0.116656,
2778 03,06,0.921006,0.100357,
2779 04,06,0.918527,0.085460,
2780 05,06,0.918708,0.072544,
2782 01,07,0.952032,0.119807,
2783 02,07,0.941722,0.107990,
2784 03,07,0.934958,0.095598,
2785 04,07,0.931209,0.083666,
2786 05,07,0.929765,0.072792,
2788 01,08,0.961512,0.108589,
2789 02,08,0.952435,0.099830,
2790 03,08,0.945868,0.090303,
2791 04,08,0.941594,0.080755,
2792 05,08,0.939221,0.071700,
2794 01,09,0.968512,0.099045,
2795 02,09,0.960582,0.092408,
2796 03,09,0.954457,0.084986,
2797 04,09,0.950072,0.077313,
2798 05,09,0.947219,0.069799,
2800 01,10,0.973810,0.090888,
2801 02,10,0.966885,0.085758,
2802 03,10,0.961283,0.079898,
2803 04,10,0.957007,0.073688,
2804 05,10,0.953955,0.067447,
2806 01,11,0.977904,0.083871,
2807 02,11,0.971842,0.079836,
2808 03,11,0.966766,0.075147,
2809 04,11,0.962708,0.070080,
2810 05,11,0.959626,0.064878,
2812 01,12,0.981127,0.077790,
2813 02,12,0.975799,0.074567,
2814 03,12,0.971216,0.070769,
2815 04,12,0.967423,0.066599,
2816 05,12,0.964412,0.062242,
2818 01,13,0.983706,0.072484,
2819 02,13,0.979000,0.069873,
2820 03,13,0.974865,0.066762,
2821 04,13,0.971351,0.063300,
2822 05,13,0.968464,0.059630,
2824 01,14,0.985799,0.067822,
2825 02,14,0.981621,0.065679,
2826 03,14,0.977888,0.063104,
2827 04,14,0.974646,0.060206,
2828 05,14,0.971911,0.057096,
2830 01,15,0.987519,0.063698,
2831 02,15,0.983791,0.061921,
2832 03,15,0.980414,0.059767,
2833 04,15,0.977430,0.057322,
2834 05,15,0.974858,0.054671,
2836 01,16,0.988949,0.060029,
2837 02,16,0.985606,0.058539,
2838 03,16,0.982544,0.056723,
2839 04,16,0.979799,0.054644,
2840 05,16,0.977391,0.052371,
2842 01,17,0.990149,0.056745,
2843 02,17,0.987138,0.055485,
2844 03,17,0.984353,0.053941,
2845 04,17,0.981827,0.052162,
2846 05,17,0.979579,0.050200,
2848 01,18,0.991167,0.053792,
2849 02,18,0.988442,0.052717,
2850 03,18,0.985902,0.051394,
2851 04,18,0.983574,0.049861,
2852 05,18,0.981478,0.048160,
2854 01,19,0.992036,0.051122,
2855 02,19,0.989561,0.050199,
2856 03,19,0.987237,0.049057,
2857 04,19,0.985089,0.047728,
2858 05,19,0.983135,0.046245,
2860 01,20,0.992784,0.048699,
2861 02,20,0.990527,0.047900,
2862 03,20,0.988395,0.046909,
2863 04,20,0.986410,0.045749,
2864 05,20,0.984587,0.044449,
2866 06,00,0.871606,0.000000,
2867 07,00,0.886488,0.000000,
2868 08,00,0.898237,0.000000,
2869 09,00,0.907758,0.000000,
2870 10,00,0.915633,0.000000,
2872 06,01,0.873827,0.016570,
2873 07,01,0.888009,0.012947,
2874 08,01,0.899327,0.010401,
2875 09,01,0.908565,0.008543,
2876 10,01,0.916249,0.007143,
2878 06,02,0.880023,0.031454,
2879 07,02,0.892327,0.024866,
2880 08,02,0.902453,0.020140,
2881 09,02,0.910901,0.016639,
2882 10,02,0.918040,0.013975,
2884 06,03,0.889029,0.043517,
2885 07,03,0.898793,0.034995,
2886 08,03,0.907236,0.028693,
2887 09,03,0.914531,0.023921,
2888 10,03,0.920856,0.020230,
2890 06,04,0.899484,0.052380,
2891 07,04,0.906591,0.042967,
2892 08,04,0.913167,0.035755,
2893 09,04,0.919127,0.030145,
2894 10,04,0.924479,0.025717,
2896 06,05,0.910242,0.058259,
2897 07,05,0.914952,0.048780,
2898 08,05,0.919729,0.041242,
2899 09,05,0.924336,0.035208,
2900 10,05,0.928664,0.030334,
2902 06,06,0.920534,0.061676,
2903 07,06,0.923283,0.052667,
2904 08,06,0.926481,0.045242,
2905 09,06,0.929836,0.039123,
2906 10,06,0.933175,0.034063,
2908 06,07,0.929945,0.063220,
2909 07,07,0.931193,0.054971,
2910 08,07,0.933096,0.047942,
2911 09,07,0.935365,0.041986,
2912 10,07,0.937807,0.036944,
2914 06,08,0.938313,0.063425,
2915 07,08,0.938469,0.056047,
2916 08,08,0.939359,0.049570,
2917 09,08,0.940731,0.043936,
2918 10,08,0.942398,0.039060,
2920 06,09,0.945629,0.062714,
2921 07,09,0.945023,0.056211,
2922 08,09,0.945154,0.050349,
2923 09,09,0.945812,0.045128,
2924 10,09,0.946833,0.040514,
2926 06,10,0.951965,0.061408,
2927 07,10,0.950850,0.055725,
2928 08,10,0.950427,0.050481,
2929 09,10,0.950535,0.045711,
2930 10,10,0.951035,0.041413,
2932 06,11,0.957427,0.059735,
2933 07,11,0.955987,0.054790,
2934 08,11,0.955176,0.050135,
2935 09,11,0.954870,0.045818,
2936 10,11,0.954959,0.041861,
2938 06,12,0.962128,0.057855,
2939 07,12,0.960495,0.053560,
2940 08,12,0.959421,0.049444,
2941 09,12,0.958814,0.045563,
2942 10,12,0.958586,0.041948,
2944 06,13,0.966178,0.055877,
2945 07,13,0.964444,0.052146,
2946 08,13,0.963201,0.048514,
2947 09,13,0.962379,0.045038,
2948 10,13,0.961913,0.041755,
2950 06,14,0.969673,0.053874,
2951 07,14,0.967903,0.050627,
2952 08,14,0.966559,0.047425,
2953 09,14,0.965591,0.044319,
2954 10,14,0.964949,0.041347,
2956 06,15,0.972699,0.051894,
2957 07,15,0.970935,0.049062,
2958 08,15,0.969539,0.046236,
2959 09,15,0.968477,0.043463,
2960 10,15,0.967710,0.040780,
2962 06,16,0.975326,0.049966,
2963 07,16,0.973597,0.047489,
2964 08,16,0.972185,0.044992,
2965 09,16,0.971067,0.042516,
2966 10,16,0.970214,0.040095,
2968 06,17,0.977617,0.048109,
2969 07,17,0.975940,0.045935,
2970 08,17,0.974538,0.043724,
2971 09,17,0.973393,0.041512,
2972 10,17,0.972484,0.039329,
2974 06,18,0.979622,0.046332,
2975 07,18,0.978009,0.044419,
2976 08,18,0.976632,0.042456,
2977 09,18,0.975481,0.040477,
2978 10,18,0.974540,0.038508,
2980 06,19,0.981384,0.044641,
2981 07,19,0.979839,0.042951,
2982 08,19,0.978500,0.041205,
2983 09,19,0.977357,0.039431,
2984 10,19,0.976402,0.037653,
2986 06,20,0.982938,0.043036,
2987 07,20,0.981465,0.041538,
2988 08,20,0.980169,0.039980,
2989 09,20,0.979047,0.038388,
2990 10,20,0.978090,0.036781,
2992 /* Table 5.6 p. 251 */
2994 11,00,0.922260,0.000000,
2995 12,00,0.927914,0.000000,
2996 13,00,0.932796,0.000000,
2997 14,00,0.937055,0.000000,
2998 15,00,0.940804,0.000000,
3000 11,01,0.922740,0.006063,
3001 12,01,0.928295,0.005212,
3002 13,01,0.933105,0.004528,
3003 14,01,0.937308,0.003972,
3004 15,01,0.941014,0.003512,
3006 11,02,0.924143,0.011902,
3007 12,02,0.929416,0.010258,
3008 13,02,0.934013,0.008932,
3009 14,02,0.938055,0.007847,
3010 15,02,0.941636,0.006949,
3012 11,03,0.926370,0.017321,
3013 12,03,0.931205,0.014991,
3014 13,03,0.935473,0.013098,
3015 14,03,0.939261,0.011540,
3016 15,03,0.942643,0.010242,
3018 11,04,0.929270,0.022171,
3019 12,04,0.933560,0.019295,
3020 13,04,0.937408,0.016934,
3021 14,04,0.940870,0.014974,
3022 15,04,0.943994,0.013331,
3024 11,05,0.932672,0.026361,
3025 12,05,0.936356,0.023091,
3026 13,05,0.939729,0.020373,
3027 14,05,0.942816,0.018095,
3028 15,05,0.945640,0.016169,
3030 11,06,0.936400,0.029857,
3031 12,06,0.939462,0.026339,
3032 13,06,0.942338,0.023378,
3033 14,06,0.945024,0.020867,
3034 15,06,0.947522,0.018725,
3036 11,07,0.940297,0.032670,
3037 12,07,0.942757,0.029036,
3038 13,07,0.945140,0.025934,
3039 14,07,0.947419,0.023273,
3040 15,07,0.949582,0.020980,
3042 11,08,0.944229,0.034847,
3043 12,08,0.946132,0.031205,
3044 13,08,0.948047,0.028052,
3045 14,08,0.949933,0.025315,
3046 15,08,0.951765,0.022931,
3048 11,09,0.948093,0.036453,
3049 12,09,0.949500,0.032887,
3050 13,09,0.950985,0.029756,
3051 14,09,0.952502,0.027004,
3052 15,09,0.954018,0.024582,
3054 11,10,0.951816,0.037566,
3055 12,10,0.952792,0.034134,
3056 13,10,0.953895,0.031081,
3057 14,10,0.955075,0.028365,
3058 15,10,0.956296,0.025949,
3060 11,11,0.955347,0.038261,
3061 12,11,0.955958,0.035004,
3062 13,11,0.956729,0.032068,
3063 14,11,0.957610,0.029426,
3064 15,11,0.958563,0.027052,
3066 11,12,0.958659,0.038612,
3067 12,12,0.958968,0.035552,
3068 13,12,0.959454,0.032761,
3069 14,12,0.960073,0.030221,
3070 15,12,0.960787,0.027915,
3072 11,13,0.961739,0.038684,
3073 12,13,0.961800,0.035833,
3074 13,13,0.962049,0.033201,
3075 14,13,0.962443,0.030781,
3076 15,13,0.962947,0.028564,
3078 11,14,0.964583,0.038534,
3079 12,14,0.964447,0.035893,
3080 13,14,0.964499,0.033428,
3081 14,14,0.964702,0.031140,
3082 15,14,0.965026,0.029024,
3084 11,15,0.967199,0.038211,
3085 12,15,0.966907,0.035775,
3086 13,15,0.966799,0.033479,
3087 14,15,0.966843,0.031327,
3088 15,15,0.967011,0.029320,
3090 11,16,0.969597,0.037756,
3091 12,16,0.969184,0.035515,
3092 13,16,0.968947,0.033384,
3093 14,16,0.968860,0.031370,
3094 15,16,0.968897,0.029476,
3096 11,17,0.971789,0.037200,
3097 12,17,0.971285,0.035144,
3098 13,17,0.970946,0.033172,
3099 14,17,0.970752,0.031293,
3100 15,17,0.970680,0.029512,
3102 11,18,0.973792,0.036572,
3103 12,18,0.973220,0.034687,
3104 13,18,0.972802,0.032865,
3105 14,18,0.972521,0.031117,
3106 15,18,0.972359,0.029448,
3108 11,19,0.975621,0.035893,
3109 12,19,0.974999,0.034166,
3110 13,19,0.974521,0.032485,
3111 14,19,0.974172,0.030862,
3112 15,19,0.973936,0.029301,
3114 11,20,0.977290,0.035179,
3115 12,20,0.976634,0.033597,
3116 13,20,0.976112,0.032049,
3117 14,20,0.975709,0.030542,
3118 15,20,0.975414,0.029086,
3120 16,00,0.944130,0.000000,
3121 17,00,0.947100,0.000000,
3122 18,00,0.949769,0.000000,
3123 19,00,0.952181,0.000000,
3124 20,00,0.954371,0.000000,
3126 16,01,0.944306,0.003128,
3127 17,01,0.947250,0.002804,
3128 18,01,0.949897,0.002527,
3129 19,01,0.952291,0.002290,
3130 20,01,0.954467,0.002085,
3132 16,02,0.944829,0.006196,
3133 17,02,0.947693,0.005560,
3134 18,02,0.950277,0.005016,
3135 19,02,0.952619,0.004549,
3136 20,02,0.954752,0.004144,
3138 16,03,0.945678,0.009150,
3139 17,03,0.948416,0.008223,
3140 18,03,0.950898,0.007430,
3141 19,03,0.953156,0.006745,
3142 20,03,0.955219,0.006151,
3144 16,04,0.946824,0.011940,
3145 17,04,0.949395,0.010754,
3146 18,04,0.951741,0.009735,
3147 19,04,0.953887,0.008853,
3148 20,04,0.955856,0.008084,
3150 16,05,0.948226,0.014529,
3151 17,05,0.950600,0.013121,
3152 18,05,0.952782,0.011904,
3153 19,05,0.954793,0.010847,
3154 20,05,0.956650,0.009922,
3156 16,06,0.949842,0.016886,
3157 17,06,0.951995,0.015296,
3158 18,06,0.953995,0.013916,
3159 19,06,0.955853,0.012709,
3160 20,06,0.957581,0.011649,
3162 16,07,0.951624,0.018994,
3163 17,07,0.953545,0.017265,
3164 18,07,0.955349,0.015753,
3165 19,07,0.957043,0.014425,
3166 20,07,0.958631,0.013253,
3168 16,08,0.953527,0.020847,
3169 17,08,0.955212,0.019019,
3170 18,08,0.956815,0.017409,
3171 19,08,0.958337,0.015986,
3172 20,08,0.959779,0.014723,
3174 16,09,0.955509,0.022445,
3175 17,09,0.956960,0.020555,
3176 18,09,0.958363,0.018878,
3177 19,09,0.959712,0.017387,
3178 20,09,0.961004,0.016056,
3180 16,10,0.957530,0.023797,
3181 17,10,0.958758,0.021878,
3182 18,10,0.959966,0.020163,
3183 19,10,0.961144,0.018628,
3184 20,10,0.962288,0.017250,
3186 16,11,0.959559,0.024917,
3187 17,11,0.960576,0.022998,
3188 18,11,0.961598,0.021270,
3189 19,11,0.962612,0.019712,
3190 20,11,0.963611,0.018305,
3192 16,12,0.961568,0.025823,
3193 17,12,0.962391,0.023927,
3194 18,12,0.963238,0.022207,
3195 19,12,0.964097,0.020645,
3196 20,12,0.964956,0.019227,
3198 16,13,0.963534,0.026534,
3199 17,13,0.964181,0.024679,
3200 18,13,0.964868,0.022984,
3201 19,13,0.965582,0.021436,
3202 20,13,0.966310,0.020021,
3204 16,14,0.965443,0.027070,
3205 17,14,0.965931,0.025271,
3206 18,14,0.966472,0.023616,
3207 19,14,0.967052,0.022094,
3208 20,14,0.967658,0.020694,
3210 16,15,0.967280,0.027453,
3211 17,15,0.967628,0.025720,
3212 18,15,0.968039,0.024114,
3213 19,15,0.968496,0.022629,
3214 20,15,0.968990,0.021255,
3216 16,16,0.969038,0.027700,
3217 17,16,0.969264,0.026041,
3218 18,16,0.969558,0.024493,
3219 19,16,0.969906,0.023052,
3220 20,16,0.970297,0.021712,
3222 16,17,0.970712,0.027831,
3223 17,17,0.970832,0.026249,
3224 18,17,0.971023,0.024765,
3225 19,17,0.971273,0.023375,
3226 20,17,0.971571,0.022075,
3228 16,18,0.972300,0.027862,
3229 17,18,0.972328,0.026361,
3230 18,18,0.972430,0.024943,
3231 19,18,0.972594,0.023607,
3232 20,18,0.972808,0.022352,
3234 16,19,0.973800,0.027809,
3235 17,19,0.973751,0.026388,
3236 18,19,0.973775,0.025038,
3237 19,19,0.973863,0.023760,
3238 20,19,0.974004,0.022552,
3240 16,20,0.975215,0.027685,
3241 17,20,0.975099,0.026343,
3242 18,20,0.975057,0.025062,
3243 19,20,0.975079,0.023842,
3244 20,20,0.975155,0.022684
3248 test_complex_table(lambda([z],z*%e^z*expintegral_e1(z)),'ec_1,838,1.25e-6);
3254 /*****************************************************************************/