comparison DEPENDENCIES/generic/include/boost/math/special_functions/expint.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
13 #include <boost/math/tools/precision.hpp> 13 #include <boost/math/tools/precision.hpp>
14 #include <boost/math/tools/promotion.hpp> 14 #include <boost/math/tools/promotion.hpp>
15 #include <boost/math/tools/fraction.hpp> 15 #include <boost/math/tools/fraction.hpp>
16 #include <boost/math/tools/series.hpp> 16 #include <boost/math/tools/series.hpp>
17 #include <boost/math/policies/error_handling.hpp> 17 #include <boost/math/policies/error_handling.hpp>
18 #include <boost/math/special_functions/math_fwd.hpp>
18 #include <boost/math/special_functions/digamma.hpp> 19 #include <boost/math/special_functions/digamma.hpp>
19 #include <boost/math/special_functions/log1p.hpp> 20 #include <boost/math/special_functions/log1p.hpp>
20 #include <boost/math/special_functions/pow.hpp> 21 #include <boost/math/special_functions/pow.hpp>
21 22
22 namespace boost{ namespace math{ 23 namespace boost{ namespace math{
53 BOOST_MATH_BIG_CONSTANT(T, 53, -0.0368031736257943745142), 54 BOOST_MATH_BIG_CONSTANT(T, 53, -0.0368031736257943745142),
54 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00399167106081113256961), 55 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00399167106081113256961),
55 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000111507792921197858394) 56 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000111507792921197858394)
56 }; 57 };
57 static const T Q[6] = { 58 static const T Q[6] = {
58 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 59 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
59 BOOST_MATH_BIG_CONSTANT(T, 53, 0.37091387659397013215), 60 BOOST_MATH_BIG_CONSTANT(T, 53, 0.37091387659397013215),
60 BOOST_MATH_BIG_CONSTANT(T, 53, 0.056770677104207528384), 61 BOOST_MATH_BIG_CONSTANT(T, 53, 0.056770677104207528384),
61 BOOST_MATH_BIG_CONSTANT(T, 53, 0.00427347600017103698101), 62 BOOST_MATH_BIG_CONSTANT(T, 53, 0.00427347600017103698101),
62 BOOST_MATH_BIG_CONSTANT(T, 53, 0.000131049900798434683324), 63 BOOST_MATH_BIG_CONSTANT(T, 53, 0.000131049900798434683324),
63 BOOST_MATH_BIG_CONSTANT(T, 53, -0.528611029520217142048e-6) 64 BOOST_MATH_BIG_CONSTANT(T, 53, -0.528611029520217142048e-6)
82 BOOST_MATH_BIG_CONSTANT(T, 53, -54844.4587226402067411), 83 BOOST_MATH_BIG_CONSTANT(T, 53, -54844.4587226402067411),
83 BOOST_MATH_BIG_CONSTANT(T, 53, -14751.4895786128450662), 84 BOOST_MATH_BIG_CONSTANT(T, 53, -14751.4895786128450662),
84 BOOST_MATH_BIG_CONSTANT(T, 53, -1185.45720315201027667) 85 BOOST_MATH_BIG_CONSTANT(T, 53, -1185.45720315201027667)
85 }; 86 };
86 static const T Q[12] = { 87 static const T Q[12] = {
87 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 88 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
88 BOOST_MATH_BIG_CONSTANT(T, 53, 45.3058660811801465927), 89 BOOST_MATH_BIG_CONSTANT(T, 53, 45.3058660811801465927),
89 BOOST_MATH_BIG_CONSTANT(T, 53, 809.193214954550328455), 90 BOOST_MATH_BIG_CONSTANT(T, 53, 809.193214954550328455),
90 BOOST_MATH_BIG_CONSTANT(T, 53, 7417.37624454689546708), 91 BOOST_MATH_BIG_CONSTANT(T, 53, 7417.37624454689546708),
91 BOOST_MATH_BIG_CONSTANT(T, 53, 38129.5594484818471461), 92 BOOST_MATH_BIG_CONSTANT(T, 53, 38129.5594484818471461),
92 BOOST_MATH_BIG_CONSTANT(T, 53, 113057.05869159631492), 93 BOOST_MATH_BIG_CONSTANT(T, 53, 113057.05869159631492),
128 BOOST_MATH_BIG_CONSTANT(T, 64, -0.0237624819878732642231), 129 BOOST_MATH_BIG_CONSTANT(T, 64, -0.0237624819878732642231),
129 BOOST_MATH_BIG_CONSTANT(T, 64, -0.00259113319641673986276), 130 BOOST_MATH_BIG_CONSTANT(T, 64, -0.00259113319641673986276),
130 BOOST_MATH_BIG_CONSTANT(T, 64, 0.30853660894346057053e-4) 131 BOOST_MATH_BIG_CONSTANT(T, 64, 0.30853660894346057053e-4)
131 }; 132 };
132 static const T Q[7] = { 133 static const T Q[7] = {
133 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 134 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
134 BOOST_MATH_BIG_CONSTANT(T, 64, 0.317978365797784100273), 135 BOOST_MATH_BIG_CONSTANT(T, 64, 0.317978365797784100273),
135 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0393622602554758722511), 136 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0393622602554758722511),
136 BOOST_MATH_BIG_CONSTANT(T, 64, 0.00204062029115966323229), 137 BOOST_MATH_BIG_CONSTANT(T, 64, 0.00204062029115966323229),
137 BOOST_MATH_BIG_CONSTANT(T, 64, 0.732512107100088047854e-5), 138 BOOST_MATH_BIG_CONSTANT(T, 64, 0.732512107100088047854e-5),
138 BOOST_MATH_BIG_CONSTANT(T, 64, -0.202872781770207871975e-5), 139 BOOST_MATH_BIG_CONSTANT(T, 64, -0.202872781770207871975e-5),
161 BOOST_MATH_BIG_CONSTANT(T, 64, -584705.537139793925189), 162 BOOST_MATH_BIG_CONSTANT(T, 64, -584705.537139793925189),
162 BOOST_MATH_BIG_CONSTANT(T, 64, -65815.2605361889477244), 163 BOOST_MATH_BIG_CONSTANT(T, 64, -65815.2605361889477244),
163 BOOST_MATH_BIG_CONSTANT(T, 64, -2038.82870680427258038) 164 BOOST_MATH_BIG_CONSTANT(T, 64, -2038.82870680427258038)
164 }; 165 };
165 static const T Q[14] = { 166 static const T Q[14] = {
166 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 167 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
167 BOOST_MATH_BIG_CONSTANT(T, 64, 64.1517806091379399478), 168 BOOST_MATH_BIG_CONSTANT(T, 64, 64.1517806091379399478),
168 BOOST_MATH_BIG_CONSTANT(T, 64, 1690.76044393722763785), 169 BOOST_MATH_BIG_CONSTANT(T, 64, 1690.76044393722763785),
169 BOOST_MATH_BIG_CONSTANT(T, 64, 24035.9534033068949426), 170 BOOST_MATH_BIG_CONSTANT(T, 64, 24035.9534033068949426),
170 BOOST_MATH_BIG_CONSTANT(T, 64, 203679.998633572361706), 171 BOOST_MATH_BIG_CONSTANT(T, 64, 203679.998633572361706),
171 BOOST_MATH_BIG_CONSTANT(T, 64, 1074661.58459976978285), 172 BOOST_MATH_BIG_CONSTANT(T, 64, 1074661.58459976978285),
213 BOOST_MATH_BIG_CONSTANT(T, 113, -0.136528159460768830763009294683628406e-5), 214 BOOST_MATH_BIG_CONSTANT(T, 113, -0.136528159460768830763009294683628406e-5),
214 BOOST_MATH_BIG_CONSTANT(T, 113, -0.346839106212658259681029388908658618e-7), 215 BOOST_MATH_BIG_CONSTANT(T, 113, -0.346839106212658259681029388908658618e-7),
215 BOOST_MATH_BIG_CONSTANT(T, 113, -0.340500302777838063940402160594523429e-9) 216 BOOST_MATH_BIG_CONSTANT(T, 113, -0.340500302777838063940402160594523429e-9)
216 }; 217 };
217 static const T Q[10] = { 218 static const T Q[10] = {
218 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 219 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
219 BOOST_MATH_BIG_CONSTANT(T, 113, 0.426568827778942588160423015589537302), 220 BOOST_MATH_BIG_CONSTANT(T, 113, 0.426568827778942588160423015589537302),
220 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0841384046470893490592450881447510148), 221 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0841384046470893490592450881447510148),
221 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0100557215850668029618957359471132995), 222 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0100557215850668029618957359471132995),
222 BOOST_MATH_BIG_CONSTANT(T, 113, 0.000799334870474627021737357294799839363), 223 BOOST_MATH_BIG_CONSTANT(T, 113, 0.000799334870474627021737357294799839363),
223 BOOST_MATH_BIG_CONSTANT(T, 113, 0.434452090903862735242423068552687688e-4), 224 BOOST_MATH_BIG_CONSTANT(T, 113, 0.434452090903862735242423068552687688e-4),
254 BOOST_MATH_BIG_CONSTANT(T, 113, -2226.64251774578542836725386936102339), 255 BOOST_MATH_BIG_CONSTANT(T, 113, -2226.64251774578542836725386936102339),
255 BOOST_MATH_BIG_CONSTANT(T, 113, -109.009437301400845902228611986479816), 256 BOOST_MATH_BIG_CONSTANT(T, 113, -109.009437301400845902228611986479816),
256 BOOST_MATH_BIG_CONSTANT(T, 113, -1.51492042209561411434644938098833499) 257 BOOST_MATH_BIG_CONSTANT(T, 113, -1.51492042209561411434644938098833499)
257 }; 258 };
258 static const T Q[16] = { 259 static const T Q[16] = {
259 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 260 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
260 BOOST_MATH_BIG_CONSTANT(T, 113, 46.734521442032505570517810766704587), 261 BOOST_MATH_BIG_CONSTANT(T, 113, 46.734521442032505570517810766704587),
261 BOOST_MATH_BIG_CONSTANT(T, 113, 908.694714348462269000247450058595655), 262 BOOST_MATH_BIG_CONSTANT(T, 113, 908.694714348462269000247450058595655),
262 BOOST_MATH_BIG_CONSTANT(T, 113, 9701.76053033673927362784882748513195), 263 BOOST_MATH_BIG_CONSTANT(T, 113, 9701.76053033673927362784882748513195),
263 BOOST_MATH_BIG_CONSTANT(T, 113, 63254.2815292641314236625196594947774), 264 BOOST_MATH_BIG_CONSTANT(T, 113, 63254.2815292641314236625196594947774),
264 BOOST_MATH_BIG_CONSTANT(T, 113, 265115.641285880437335106541757711092), 265 BOOST_MATH_BIG_CONSTANT(T, 113, 265115.641285880437335106541757711092),
303 BOOST_MATH_BIG_CONSTANT(T, 113, -5737221535080.30569711574295785864903), 304 BOOST_MATH_BIG_CONSTANT(T, 113, -5737221535080.30569711574295785864903),
304 BOOST_MATH_BIG_CONSTANT(T, 113, -1077042281708.42654526404581272546244), 305 BOOST_MATH_BIG_CONSTANT(T, 113, -1077042281708.42654526404581272546244),
305 BOOST_MATH_BIG_CONSTANT(T, 113, -68028222642.1941480871395695677675137) 306 BOOST_MATH_BIG_CONSTANT(T, 113, -68028222642.1941480871395695677675137)
306 }; 307 };
307 static const T Q[20] = { 308 static const T Q[20] = {
308 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 309 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
309 BOOST_MATH_BIG_CONSTANT(T, 113, 168.542326331163836642960118190147311), 310 BOOST_MATH_BIG_CONSTANT(T, 113, 168.542326331163836642960118190147311),
310 BOOST_MATH_BIG_CONSTANT(T, 113, 12535.7237814586576783518249115343619), 311 BOOST_MATH_BIG_CONSTANT(T, 113, 12535.7237814586576783518249115343619),
311 BOOST_MATH_BIG_CONSTANT(T, 113, 544891.263372016404143120911148640627), 312 BOOST_MATH_BIG_CONSTANT(T, 113, 544891.263372016404143120911148640627),
312 BOOST_MATH_BIG_CONSTANT(T, 113, 15454474.7241010258634446523045237762), 313 BOOST_MATH_BIG_CONSTANT(T, 113, 15454474.7241010258634446523045237762),
313 BOOST_MATH_BIG_CONSTANT(T, 113, 302495899.896629522673410325891717381), 314 BOOST_MATH_BIG_CONSTANT(T, 113, 302495899.896629522673410325891717381),
539 BOOST_MATH_BIG_CONSTANT(T, 53, 0.000116419523609765200999), 540 BOOST_MATH_BIG_CONSTANT(T, 53, 0.000116419523609765200999),
540 BOOST_MATH_BIG_CONSTANT(T, 53, 0.798296365679269702435e-5), 541 BOOST_MATH_BIG_CONSTANT(T, 53, 0.798296365679269702435e-5),
541 BOOST_MATH_BIG_CONSTANT(T, 53, 0.2777056254402008721e-6) 542 BOOST_MATH_BIG_CONSTANT(T, 53, 0.2777056254402008721e-6)
542 }; 543 };
543 static const T Q[8] = { 544 static const T Q[8] = {
544 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 545 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
545 BOOST_MATH_BIG_CONSTANT(T, 53, -1.17090412365413911947), 546 BOOST_MATH_BIG_CONSTANT(T, 53, -1.17090412365413911947),
546 BOOST_MATH_BIG_CONSTANT(T, 53, 0.62215109846016746276), 547 BOOST_MATH_BIG_CONSTANT(T, 53, 0.62215109846016746276),
547 BOOST_MATH_BIG_CONSTANT(T, 53, -0.195114782069495403315), 548 BOOST_MATH_BIG_CONSTANT(T, 53, -0.195114782069495403315),
548 BOOST_MATH_BIG_CONSTANT(T, 53, 0.0391523431392967238166), 549 BOOST_MATH_BIG_CONSTANT(T, 53, 0.0391523431392967238166),
549 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00504800158663705747345), 550 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00504800158663705747345),
561 / tools::evaluate_polynomial(Q, t); 562 / tools::evaluate_polynomial(Q, t);
562 t = (z - r1) - r2; 563 t = (z - r1) - r2;
563 result *= t; 564 result *= t;
564 if(fabs(t) < 0.1) 565 if(fabs(t) < 0.1)
565 { 566 {
566 result += boost::math::log1p(t / r); 567 result += boost::math::log1p(t / r, pol);
567 } 568 }
568 else 569 else
569 { 570 {
570 result += log(z / r); 571 result += log(z / r);
571 } 572 }
585 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000374885917942100256775), 586 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000374885917942100256775),
586 BOOST_MATH_BIG_CONSTANT(T, 53, -0.554086272024881826253e-4), 587 BOOST_MATH_BIG_CONSTANT(T, 53, -0.554086272024881826253e-4),
587 BOOST_MATH_BIG_CONSTANT(T, 53, -0.396487648924804510056e-5) 588 BOOST_MATH_BIG_CONSTANT(T, 53, -0.396487648924804510056e-5)
588 }; 589 };
589 static const T Q[8] = { 590 static const T Q[8] = {
590 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 591 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
591 BOOST_MATH_BIG_CONSTANT(T, 53, 0.744625566823272107711), 592 BOOST_MATH_BIG_CONSTANT(T, 53, 0.744625566823272107711),
592 BOOST_MATH_BIG_CONSTANT(T, 53, 0.329061095011767059236), 593 BOOST_MATH_BIG_CONSTANT(T, 53, 0.329061095011767059236),
593 BOOST_MATH_BIG_CONSTANT(T, 53, 0.100128624977313872323), 594 BOOST_MATH_BIG_CONSTANT(T, 53, 0.100128624977313872323),
594 BOOST_MATH_BIG_CONSTANT(T, 53, 0.0223851099128506347278), 595 BOOST_MATH_BIG_CONSTANT(T, 53, 0.0223851099128506347278),
595 BOOST_MATH_BIG_CONSTANT(T, 53, 0.00365334190742316650106), 596 BOOST_MATH_BIG_CONSTANT(T, 53, 0.00365334190742316650106),
619 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00155941947035972031334), 620 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00155941947035972031334),
620 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000209750022660200888349), 621 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000209750022660200888349),
621 BOOST_MATH_BIG_CONSTANT(T, 53, -0.138652200349182596186e-4) 622 BOOST_MATH_BIG_CONSTANT(T, 53, -0.138652200349182596186e-4)
622 }; 623 };
623 static const T Q[9] = { 624 static const T Q[9] = {
624 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 625 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
625 BOOST_MATH_BIG_CONSTANT(T, 53, 1.97017214039061194971), 626 BOOST_MATH_BIG_CONSTANT(T, 53, 1.97017214039061194971),
626 BOOST_MATH_BIG_CONSTANT(T, 53, 1.86232465043073157508), 627 BOOST_MATH_BIG_CONSTANT(T, 53, 1.86232465043073157508),
627 BOOST_MATH_BIG_CONSTANT(T, 53, 1.09601437090337519977), 628 BOOST_MATH_BIG_CONSTANT(T, 53, 1.09601437090337519977),
628 BOOST_MATH_BIG_CONSTANT(T, 53, 0.438873285773088870812), 629 BOOST_MATH_BIG_CONSTANT(T, 53, 0.438873285773088870812),
629 BOOST_MATH_BIG_CONSTANT(T, 53, 0.122537731979686102756), 630 BOOST_MATH_BIG_CONSTANT(T, 53, 0.122537731979686102756),
655 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00207592267812291726961), 656 BOOST_MATH_BIG_CONSTANT(T, 53, -0.00207592267812291726961),
656 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000192178045857733706044), 657 BOOST_MATH_BIG_CONSTANT(T, 53, -0.000192178045857733706044),
657 BOOST_MATH_BIG_CONSTANT(T, 53, -0.113161784705911400295e-9) 658 BOOST_MATH_BIG_CONSTANT(T, 53, -0.113161784705911400295e-9)
658 }; 659 };
659 static const T Q[9] = { 660 static const T Q[9] = {
660 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 661 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
661 BOOST_MATH_BIG_CONSTANT(T, 53, 2.84354408840148561131), 662 BOOST_MATH_BIG_CONSTANT(T, 53, 2.84354408840148561131),
662 BOOST_MATH_BIG_CONSTANT(T, 53, 3.6599610090072393012), 663 BOOST_MATH_BIG_CONSTANT(T, 53, 3.6599610090072393012),
663 BOOST_MATH_BIG_CONSTANT(T, 53, 2.75088464344293083595), 664 BOOST_MATH_BIG_CONSTANT(T, 53, 2.75088464344293083595),
664 BOOST_MATH_BIG_CONSTANT(T, 53, 1.2985244073998398643), 665 BOOST_MATH_BIG_CONSTANT(T, 53, 1.2985244073998398643),
665 BOOST_MATH_BIG_CONSTANT(T, 53, 0.383213198510794507409), 666 BOOST_MATH_BIG_CONSTANT(T, 53, 0.383213198510794507409),
684 BOOST_MATH_BIG_CONSTANT(T, 53, -2516.35323679844256203), 685 BOOST_MATH_BIG_CONSTANT(T, 53, -2516.35323679844256203),
685 BOOST_MATH_BIG_CONSTANT(T, 53, 18932.0850014925993025), 686 BOOST_MATH_BIG_CONSTANT(T, 53, 18932.0850014925993025),
686 BOOST_MATH_BIG_CONSTANT(T, 53, -38703.1431362056714134) 687 BOOST_MATH_BIG_CONSTANT(T, 53, -38703.1431362056714134)
687 }; 688 };
688 static const T Q[7] = { 689 static const T Q[7] = {
689 BOOST_MATH_BIG_CONSTANT(T, 53, 1), 690 BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
690 BOOST_MATH_BIG_CONSTANT(T, 53, 61.9733592849439884145), 691 BOOST_MATH_BIG_CONSTANT(T, 53, 61.9733592849439884145),
691 BOOST_MATH_BIG_CONSTANT(T, 53, -2354.56211323420194283), 692 BOOST_MATH_BIG_CONSTANT(T, 53, -2354.56211323420194283),
692 BOOST_MATH_BIG_CONSTANT(T, 53, 22329.1459489893079041), 693 BOOST_MATH_BIG_CONSTANT(T, 53, 22329.1459489893079041),
693 BOOST_MATH_BIG_CONSTANT(T, 53, -70126.245140396567133), 694 BOOST_MATH_BIG_CONSTANT(T, 53, -70126.245140396567133),
694 BOOST_MATH_BIG_CONSTANT(T, 53, 54738.2833147775537106), 695 BOOST_MATH_BIG_CONSTANT(T, 53, 54738.2833147775537106),
755 BOOST_MATH_BIG_CONSTANT(T, 64, 0.11293331317982763165e-4), 756 BOOST_MATH_BIG_CONSTANT(T, 64, 0.11293331317982763165e-4),
756 BOOST_MATH_BIG_CONSTANT(T, 64, 0.629499283139417444244e-6), 757 BOOST_MATH_BIG_CONSTANT(T, 64, 0.629499283139417444244e-6),
757 BOOST_MATH_BIG_CONSTANT(T, 64, 0.177833045143692498221e-7) 758 BOOST_MATH_BIG_CONSTANT(T, 64, 0.177833045143692498221e-7)
758 }; 759 };
759 static const T Q[9] = { 760 static const T Q[9] = {
760 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 761 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
761 BOOST_MATH_BIG_CONSTANT(T, 64, -1.20352377969742325748), 762 BOOST_MATH_BIG_CONSTANT(T, 64, -1.20352377969742325748),
762 BOOST_MATH_BIG_CONSTANT(T, 64, 0.66707904942606479811), 763 BOOST_MATH_BIG_CONSTANT(T, 64, 0.66707904942606479811),
763 BOOST_MATH_BIG_CONSTANT(T, 64, -0.223014531629140771914), 764 BOOST_MATH_BIG_CONSTANT(T, 64, -0.223014531629140771914),
764 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0493340022262908008636), 765 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0493340022262908008636),
765 BOOST_MATH_BIG_CONSTANT(T, 64, -0.00741934273050807310677), 766 BOOST_MATH_BIG_CONSTANT(T, 64, -0.00741934273050807310677),
778 / tools::evaluate_polynomial(Q, t); 779 / tools::evaluate_polynomial(Q, t);
779 t = (z - r1) - r2; 780 t = (z - r1) - r2;
780 result *= t; 781 result *= t;
781 if(fabs(t) < 0.1) 782 if(fabs(t) < 0.1)
782 { 783 {
783 result += boost::math::log1p(t / r); 784 result += boost::math::log1p(t / r, pol);
784 } 785 }
785 else 786 else
786 { 787 {
787 result += log(z / r); 788 result += log(z / r);
788 } 789 }
804 BOOST_MATH_BIG_CONSTANT(T, 64, -0.877310384591205930343e-4), 805 BOOST_MATH_BIG_CONSTANT(T, 64, -0.877310384591205930343e-4),
805 BOOST_MATH_BIG_CONSTANT(T, 64, -0.623067256376494930067e-5), 806 BOOST_MATH_BIG_CONSTANT(T, 64, -0.623067256376494930067e-5),
806 BOOST_MATH_BIG_CONSTANT(T, 64, -0.377246883283337141444e-6) 807 BOOST_MATH_BIG_CONSTANT(T, 64, -0.377246883283337141444e-6)
807 }; 808 };
808 static const T Q[10] = { 809 static const T Q[10] = {
809 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 810 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
810 BOOST_MATH_BIG_CONSTANT(T, 64, 1.08073635708902053767), 811 BOOST_MATH_BIG_CONSTANT(T, 64, 1.08073635708902053767),
811 BOOST_MATH_BIG_CONSTANT(T, 64, 0.553681133533942532909), 812 BOOST_MATH_BIG_CONSTANT(T, 64, 0.553681133533942532909),
812 BOOST_MATH_BIG_CONSTANT(T, 64, 0.176763647137553797451), 813 BOOST_MATH_BIG_CONSTANT(T, 64, 0.176763647137553797451),
813 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0387891748253869928121), 814 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0387891748253869928121),
814 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0060603004848394727017), 815 BOOST_MATH_BIG_CONSTANT(T, 64, 0.0060603004848394727017),
842 BOOST_MATH_BIG_CONSTANT(T, 64, -0.000392477245911296982776), 843 BOOST_MATH_BIG_CONSTANT(T, 64, -0.000392477245911296982776),
843 BOOST_MATH_BIG_CONSTANT(T, 64, -0.44424044184395578775e-4), 844 BOOST_MATH_BIG_CONSTANT(T, 64, -0.44424044184395578775e-4),
844 BOOST_MATH_BIG_CONSTANT(T, 64, -0.252788029251437017959e-5) 845 BOOST_MATH_BIG_CONSTANT(T, 64, -0.252788029251437017959e-5)
845 }; 846 };
846 static const T Q[10] = { 847 static const T Q[10] = {
847 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 848 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
848 BOOST_MATH_BIG_CONSTANT(T, 64, 2.00323265503572414261), 849 BOOST_MATH_BIG_CONSTANT(T, 64, 2.00323265503572414261),
849 BOOST_MATH_BIG_CONSTANT(T, 64, 1.94688958187256383178), 850 BOOST_MATH_BIG_CONSTANT(T, 64, 1.94688958187256383178),
850 BOOST_MATH_BIG_CONSTANT(T, 64, 1.19733638134417472296), 851 BOOST_MATH_BIG_CONSTANT(T, 64, 1.19733638134417472296),
851 BOOST_MATH_BIG_CONSTANT(T, 64, 0.513137726038353385661), 852 BOOST_MATH_BIG_CONSTANT(T, 64, 0.513137726038353385661),
852 BOOST_MATH_BIG_CONSTANT(T, 64, 0.159135395578007264547), 853 BOOST_MATH_BIG_CONSTANT(T, 64, 0.159135395578007264547),
881 BOOST_MATH_BIG_CONSTANT(T, 64, -0.504623302166487346677e-9), 882 BOOST_MATH_BIG_CONSTANT(T, 64, -0.504623302166487346677e-9),
882 BOOST_MATH_BIG_CONSTANT(T, 64, 0.712662196671896837736e-10), 883 BOOST_MATH_BIG_CONSTANT(T, 64, 0.712662196671896837736e-10),
883 BOOST_MATH_BIG_CONSTANT(T, 64, -0.533769629702262072175e-11) 884 BOOST_MATH_BIG_CONSTANT(T, 64, -0.533769629702262072175e-11)
884 }; 885 };
885 static const T Q[9] = { 886 static const T Q[9] = {
886 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 887 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
887 BOOST_MATH_BIG_CONSTANT(T, 64, 3.13286733695729715455), 888 BOOST_MATH_BIG_CONSTANT(T, 64, 3.13286733695729715455),
888 BOOST_MATH_BIG_CONSTANT(T, 64, 4.49281223045653491929), 889 BOOST_MATH_BIG_CONSTANT(T, 64, 4.49281223045653491929),
889 BOOST_MATH_BIG_CONSTANT(T, 64, 3.84900294427622911374), 890 BOOST_MATH_BIG_CONSTANT(T, 64, 3.84900294427622911374),
890 BOOST_MATH_BIG_CONSTANT(T, 64, 2.15205199043580378211), 891 BOOST_MATH_BIG_CONSTANT(T, 64, 2.15205199043580378211),
891 BOOST_MATH_BIG_CONSTANT(T, 64, 0.802912186540269232424), 892 BOOST_MATH_BIG_CONSTANT(T, 64, 0.802912186540269232424),
919 BOOST_MATH_BIG_CONSTANT(T, 64, 53732298.8764767916542), 920 BOOST_MATH_BIG_CONSTANT(T, 64, 53732298.8764767916542),
920 BOOST_MATH_BIG_CONSTANT(T, 64, -160695051.957997452509), 921 BOOST_MATH_BIG_CONSTANT(T, 64, -160695051.957997452509),
921 BOOST_MATH_BIG_CONSTANT(T, 64, 137839271.592778020028) 922 BOOST_MATH_BIG_CONSTANT(T, 64, 137839271.592778020028)
922 }; 923 };
923 static const T Q[9] = { 924 static const T Q[9] = {
924 BOOST_MATH_BIG_CONSTANT(T, 64, 1), 925 BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
925 BOOST_MATH_BIG_CONSTANT(T, 64, 27.2103343964943718802), 926 BOOST_MATH_BIG_CONSTANT(T, 64, 27.2103343964943718802),
926 BOOST_MATH_BIG_CONSTANT(T, 64, -8785.48528692879413676), 927 BOOST_MATH_BIG_CONSTANT(T, 64, -8785.48528692879413676),
927 BOOST_MATH_BIG_CONSTANT(T, 64, 397530.290000322626766), 928 BOOST_MATH_BIG_CONSTANT(T, 64, 397530.290000322626766),
928 BOOST_MATH_BIG_CONSTANT(T, 64, -7356441.34957799368252), 929 BOOST_MATH_BIG_CONSTANT(T, 64, -7356441.34957799368252),
929 BOOST_MATH_BIG_CONSTANT(T, 64, 63050914.5343400957524), 930 BOOST_MATH_BIG_CONSTANT(T, 64, 63050914.5343400957524),
960 result += z; 961 result += z;
961 } 962 }
962 return result; 963 return result;
963 } 964 }
964 965
965 template <class T> 966 template <class T, class Policy>
966 void expint_i_imp_113a(T& result, const T& z) 967 void expint_i_imp_113a(T& result, const T& z, const Policy& pol)
967 { 968 {
968 BOOST_MATH_STD_USING 969 BOOST_MATH_STD_USING
969 // Maximum Deviation Found: 1.230e-36 970 // Maximum Deviation Found: 1.230e-36
970 // Expected Error Term: -1.230e-36 971 // Expected Error Term: -1.230e-36
971 // Max Error found at long double precision = Poly: 4.355299e-34 Cheb: 7.512581e-34 972 // Max Error found at long double precision = Poly: 4.355299e-34 Cheb: 7.512581e-34
987 BOOST_MATH_BIG_CONSTANT(T, 113, 0.154646053060262871360159325115980023e-9), 988 BOOST_MATH_BIG_CONSTANT(T, 113, 0.154646053060262871360159325115980023e-9),
988 BOOST_MATH_BIG_CONSTANT(T, 113, 0.143971277122049197323415503594302307e-11), 989 BOOST_MATH_BIG_CONSTANT(T, 113, 0.143971277122049197323415503594302307e-11),
989 BOOST_MATH_BIG_CONSTANT(T, 113, 0.306243138978114692252817805327426657e-13) 990 BOOST_MATH_BIG_CONSTANT(T, 113, 0.306243138978114692252817805327426657e-13)
990 }; 991 };
991 static const T Q[15] = { 992 static const T Q[15] = {
992 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 993 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
993 BOOST_MATH_BIG_CONSTANT(T, 113, -1.40178870313943798705491944989231793), 994 BOOST_MATH_BIG_CONSTANT(T, 113, -1.40178870313943798705491944989231793),
994 BOOST_MATH_BIG_CONSTANT(T, 113, 0.943810968269701047641218856758605284), 995 BOOST_MATH_BIG_CONSTANT(T, 113, 0.943810968269701047641218856758605284),
995 BOOST_MATH_BIG_CONSTANT(T, 113, -0.405026631534345064600850391026113165), 996 BOOST_MATH_BIG_CONSTANT(T, 113, -0.405026631534345064600850391026113165),
996 BOOST_MATH_BIG_CONSTANT(T, 113, 0.123924153524614086482627660399122762), 997 BOOST_MATH_BIG_CONSTANT(T, 113, 0.123924153524614086482627660399122762),
997 BOOST_MATH_BIG_CONSTANT(T, 113, -0.0286364505373369439591132549624317707), 998 BOOST_MATH_BIG_CONSTANT(T, 113, -0.0286364505373369439591132549624317707),
1020 / tools::evaluate_polynomial(Q, t); 1021 / tools::evaluate_polynomial(Q, t);
1021 t = ((z - r1) - r2) - r3; 1022 t = ((z - r1) - r2) - r3;
1022 result *= t; 1023 result *= t;
1023 if(fabs(t) < 0.1) 1024 if(fabs(t) < 0.1)
1024 { 1025 {
1025 result += boost::math::log1p(t / r); 1026 result += boost::math::log1p(t / r, pol);
1026 } 1027 }
1027 else 1028 else
1028 { 1029 {
1029 result += log(z / r); 1030 result += log(z / r);
1030 } 1031 }
1055 BOOST_MATH_BIG_CONSTANT(T, 113, -0.635187358949437991465353268374523944e-9), 1056 BOOST_MATH_BIG_CONSTANT(T, 113, -0.635187358949437991465353268374523944e-9),
1056 BOOST_MATH_BIG_CONSTANT(T, 113, -0.203015132965870311935118337194860863e-10), 1057 BOOST_MATH_BIG_CONSTANT(T, 113, -0.203015132965870311935118337194860863e-10),
1057 BOOST_MATH_BIG_CONSTANT(T, 113, -0.384276705503357655108096065452950822e-12) 1058 BOOST_MATH_BIG_CONSTANT(T, 113, -0.384276705503357655108096065452950822e-12)
1058 }; 1059 };
1059 static const T Q[15] = { 1060 static const T Q[15] = {
1060 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1061 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1061 BOOST_MATH_BIG_CONSTANT(T, 113, 1.58784732785354597996617046880946257), 1062 BOOST_MATH_BIG_CONSTANT(T, 113, 1.58784732785354597996617046880946257),
1062 BOOST_MATH_BIG_CONSTANT(T, 113, 1.18550755302279446339364262338114098), 1063 BOOST_MATH_BIG_CONSTANT(T, 113, 1.18550755302279446339364262338114098),
1063 BOOST_MATH_BIG_CONSTANT(T, 113, 0.55598993549661368604527040349702836), 1064 BOOST_MATH_BIG_CONSTANT(T, 113, 0.55598993549661368604527040349702836),
1064 BOOST_MATH_BIG_CONSTANT(T, 113, 0.184290888380564236919107835030984453), 1065 BOOST_MATH_BIG_CONSTANT(T, 113, 0.184290888380564236919107835030984453),
1065 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0459658051803613282360464632326866113), 1066 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0459658051803613282360464632326866113),
1108 BOOST_MATH_BIG_CONSTANT(T, 113, -0.502538501472133913417609379765434153e-10), 1109 BOOST_MATH_BIG_CONSTANT(T, 113, -0.502538501472133913417609379765434153e-10),
1109 BOOST_MATH_BIG_CONSTANT(T, 113, -0.326283053716799774936661568391296584e-13), 1110 BOOST_MATH_BIG_CONSTANT(T, 113, -0.326283053716799774936661568391296584e-13),
1110 BOOST_MATH_BIG_CONSTANT(T, 113, 0.869226483473172853557775877908693647e-15) 1111 BOOST_MATH_BIG_CONSTANT(T, 113, 0.869226483473172853557775877908693647e-15)
1111 }; 1112 };
1112 static const T Q[15] = { 1113 static const T Q[15] = {
1113 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1114 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1114 BOOST_MATH_BIG_CONSTANT(T, 113, 2.23227220874479061894038229141871087), 1115 BOOST_MATH_BIG_CONSTANT(T, 113, 2.23227220874479061894038229141871087),
1115 BOOST_MATH_BIG_CONSTANT(T, 113, 2.40221000361027971895657505660959863), 1116 BOOST_MATH_BIG_CONSTANT(T, 113, 2.40221000361027971895657505660959863),
1116 BOOST_MATH_BIG_CONSTANT(T, 113, 1.65476320985936174728238416007084214), 1117 BOOST_MATH_BIG_CONSTANT(T, 113, 1.65476320985936174728238416007084214),
1117 BOOST_MATH_BIG_CONSTANT(T, 113, 0.816828602963895720369875535001248227), 1118 BOOST_MATH_BIG_CONSTANT(T, 113, 0.816828602963895720369875535001248227),
1118 BOOST_MATH_BIG_CONSTANT(T, 113, 0.306337922909446903672123418670921066), 1119 BOOST_MATH_BIG_CONSTANT(T, 113, 0.306337922909446903672123418670921066),
1157 BOOST_MATH_BIG_CONSTANT(T, 113, -0.133291168587253145439184028259772437e-7), 1158 BOOST_MATH_BIG_CONSTANT(T, 113, -0.133291168587253145439184028259772437e-7),
1158 BOOST_MATH_BIG_CONSTANT(T, 113, -0.595500337089495614285777067722823397e-9), 1159 BOOST_MATH_BIG_CONSTANT(T, 113, -0.595500337089495614285777067722823397e-9),
1159 BOOST_MATH_BIG_CONSTANT(T, 113, -0.133141358866324100955927979606981328e-10) 1160 BOOST_MATH_BIG_CONSTANT(T, 113, -0.133141358866324100955927979606981328e-10)
1160 }; 1161 };
1161 static const T Q[14] = { 1162 static const T Q[14] = {
1162 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1163 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1163 BOOST_MATH_BIG_CONSTANT(T, 113, 1.72490783907582654629537013560044682), 1164 BOOST_MATH_BIG_CONSTANT(T, 113, 1.72490783907582654629537013560044682),
1164 BOOST_MATH_BIG_CONSTANT(T, 113, 1.44524329516800613088375685659759765), 1165 BOOST_MATH_BIG_CONSTANT(T, 113, 1.44524329516800613088375685659759765),
1165 BOOST_MATH_BIG_CONSTANT(T, 113, 0.778241785539308257585068744978050181), 1166 BOOST_MATH_BIG_CONSTANT(T, 113, 0.778241785539308257585068744978050181),
1166 BOOST_MATH_BIG_CONSTANT(T, 113, 0.300520486589206605184097270225725584), 1167 BOOST_MATH_BIG_CONSTANT(T, 113, 0.300520486589206605184097270225725584),
1167 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0879346899691339661394537806057953957), 1168 BOOST_MATH_BIG_CONSTANT(T, 113, 0.0879346899691339661394537806057953957),
1209 BOOST_MATH_BIG_CONSTANT(T, 113, -0.565697065670893984610852937110819467e-6), 1210 BOOST_MATH_BIG_CONSTANT(T, 113, -0.565697065670893984610852937110819467e-6),
1210 BOOST_MATH_BIG_CONSTANT(T, 113, -0.350233957364028523971768887437839573e-7), 1211 BOOST_MATH_BIG_CONSTANT(T, 113, -0.350233957364028523971768887437839573e-7),
1211 BOOST_MATH_BIG_CONSTANT(T, 113, -0.105428907085424234504608142258423505e-8) 1212 BOOST_MATH_BIG_CONSTANT(T, 113, -0.105428907085424234504608142258423505e-8)
1212 }; 1213 };
1213 static const T Q[16] = { 1214 static const T Q[16] = {
1214 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1215 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1215 BOOST_MATH_BIG_CONSTANT(T, 113, 3.17261315255467581204685605414005525), 1216 BOOST_MATH_BIG_CONSTANT(T, 113, 3.17261315255467581204685605414005525),
1216 BOOST_MATH_BIG_CONSTANT(T, 113, 4.85267952971640525245338392887217426), 1217 BOOST_MATH_BIG_CONSTANT(T, 113, 4.85267952971640525245338392887217426),
1217 BOOST_MATH_BIG_CONSTANT(T, 113, 4.74341914912439861451492872946725151), 1218 BOOST_MATH_BIG_CONSTANT(T, 113, 4.74341914912439861451492872946725151),
1218 BOOST_MATH_BIG_CONSTANT(T, 113, 3.31108463283559911602405970817931801), 1219 BOOST_MATH_BIG_CONSTANT(T, 113, 3.31108463283559911602405970817931801),
1219 BOOST_MATH_BIG_CONSTANT(T, 113, 1.74657006336994649386607925179848899), 1220 BOOST_MATH_BIG_CONSTANT(T, 113, 1.74657006336994649386607925179848899),
1260 BOOST_MATH_BIG_CONSTANT(T, 113, -0.794712243338068631557849449519994144e-6), 1261 BOOST_MATH_BIG_CONSTANT(T, 113, -0.794712243338068631557849449519994144e-6),
1261 BOOST_MATH_BIG_CONSTANT(T, 113, -0.434084023639508143975983454830954835e-7), 1262 BOOST_MATH_BIG_CONSTANT(T, 113, -0.434084023639508143975983454830954835e-7),
1262 BOOST_MATH_BIG_CONSTANT(T, 113, -0.107839681938752337160494412638656696e-8) 1263 BOOST_MATH_BIG_CONSTANT(T, 113, -0.107839681938752337160494412638656696e-8)
1263 }; 1264 };
1264 static const T Q[12] = { 1265 static const T Q[12] = {
1265 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1266 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1266 BOOST_MATH_BIG_CONSTANT(T, 113, 2.09913805456661084097134805151524958), 1267 BOOST_MATH_BIG_CONSTANT(T, 113, 2.09913805456661084097134805151524958),
1267 BOOST_MATH_BIG_CONSTANT(T, 113, 2.07041755535439919593503171320431849), 1268 BOOST_MATH_BIG_CONSTANT(T, 113, 2.07041755535439919593503171320431849),
1268 BOOST_MATH_BIG_CONSTANT(T, 113, 1.26406517226052371320416108604874734), 1269 BOOST_MATH_BIG_CONSTANT(T, 113, 1.26406517226052371320416108604874734),
1269 BOOST_MATH_BIG_CONSTANT(T, 113, 0.529689923703770353961553223973435569), 1270 BOOST_MATH_BIG_CONSTANT(T, 113, 0.529689923703770353961553223973435569),
1270 BOOST_MATH_BIG_CONSTANT(T, 113, 0.159578150879536711042269658656115746), 1271 BOOST_MATH_BIG_CONSTANT(T, 113, 0.159578150879536711042269658656115746),
1306 BOOST_MATH_BIG_CONSTANT(T, 113, -0.29462181955852860250359064291292577e-4), 1307 BOOST_MATH_BIG_CONSTANT(T, 113, -0.29462181955852860250359064291292577e-4),
1307 BOOST_MATH_BIG_CONSTANT(T, 113, -0.21972450610957417963227028788460299e-5), 1308 BOOST_MATH_BIG_CONSTANT(T, 113, -0.21972450610957417963227028788460299e-5),
1308 BOOST_MATH_BIG_CONSTANT(T, 113, -0.720558173805289167524715527536874694e-7) 1309 BOOST_MATH_BIG_CONSTANT(T, 113, -0.720558173805289167524715527536874694e-7)
1309 }; 1310 };
1310 static const T Q[11] = { 1311 static const T Q[11] = {
1311 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1312 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1312 BOOST_MATH_BIG_CONSTANT(T, 113, 2.95918362458402597039366979529287095), 1313 BOOST_MATH_BIG_CONSTANT(T, 113, 2.95918362458402597039366979529287095),
1313 BOOST_MATH_BIG_CONSTANT(T, 113, 3.96472247520659077944638411856748924), 1314 BOOST_MATH_BIG_CONSTANT(T, 113, 3.96472247520659077944638411856748924),
1314 BOOST_MATH_BIG_CONSTANT(T, 113, 3.15563251550528513747923714884142131), 1315 BOOST_MATH_BIG_CONSTANT(T, 113, 3.15563251550528513747923714884142131),
1315 BOOST_MATH_BIG_CONSTANT(T, 113, 1.64674612007093983894215359287448334), 1316 BOOST_MATH_BIG_CONSTANT(T, 113, 1.64674612007093983894215359287448334),
1316 BOOST_MATH_BIG_CONSTANT(T, 113, 0.58695020129846594405856226787156424), 1317 BOOST_MATH_BIG_CONSTANT(T, 113, 0.58695020129846594405856226787156424),
1349 BOOST_MATH_BIG_CONSTANT(T, 113, -3661928.69330208734947103004900349266), 1350 BOOST_MATH_BIG_CONSTANT(T, 113, -3661928.69330208734947103004900349266),
1350 BOOST_MATH_BIG_CONSTANT(T, 113, 8570600.041606912735872059184527855), 1351 BOOST_MATH_BIG_CONSTANT(T, 113, 8570600.041606912735872059184527855),
1351 BOOST_MATH_BIG_CONSTANT(T, 113, -6758379.93672362080947905580906028645) 1352 BOOST_MATH_BIG_CONSTANT(T, 113, -6758379.93672362080947905580906028645)
1352 }; 1353 };
1353 static const T Q[10] = { 1354 static const T Q[10] = {
1354 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1355 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1355 BOOST_MATH_BIG_CONSTANT(T, 113, -99.4868026047611434569541483506091713), 1356 BOOST_MATH_BIG_CONSTANT(T, 113, -99.4868026047611434569541483506091713),
1356 BOOST_MATH_BIG_CONSTANT(T, 113, 3879.67753690517114249705089803055473), 1357 BOOST_MATH_BIG_CONSTANT(T, 113, 3879.67753690517114249705089803055473),
1357 BOOST_MATH_BIG_CONSTANT(T, 113, -76495.82413252517165830203774900806), 1358 BOOST_MATH_BIG_CONSTANT(T, 113, -76495.82413252517165830203774900806),
1358 BOOST_MATH_BIG_CONSTANT(T, 113, 820773.726408311894342553758526282667), 1359 BOOST_MATH_BIG_CONSTANT(T, 113, 820773.726408311894342553758526282667),
1359 BOOST_MATH_BIG_CONSTANT(T, 113, -4803087.64956923577571031564909646579), 1360 BOOST_MATH_BIG_CONSTANT(T, 113, -4803087.64956923577571031564909646579),
1381 1382
1382 T result; 1383 T result;
1383 1384
1384 if(z <= 6) 1385 if(z <= 6)
1385 { 1386 {
1386 expint_i_imp_113a(result, z); 1387 expint_i_imp_113a(result, z, pol);
1387 } 1388 }
1388 else if (z <= 10) 1389 else if (z <= 10)
1389 { 1390 {
1390 expint_i_113b(result, z); 1391 expint_i_113b(result, z);
1391 } 1392 }
1430 BOOST_MATH_BIG_CONSTANT(T, 113, 93632.6567462673524739954389166550069), 1431 BOOST_MATH_BIG_CONSTANT(T, 113, 93632.6567462673524739954389166550069),
1431 BOOST_MATH_BIG_CONSTANT(T, 113, -225025.189335919133214440347510936787), 1432 BOOST_MATH_BIG_CONSTANT(T, 113, -225025.189335919133214440347510936787),
1432 BOOST_MATH_BIG_CONSTANT(T, 113, 175864.614717440010942804684741336853) 1433 BOOST_MATH_BIG_CONSTANT(T, 113, 175864.614717440010942804684741336853)
1433 }; 1434 };
1434 static const T Q[9] = { 1435 static const T Q[9] = {
1435 BOOST_MATH_BIG_CONSTANT(T, 113, 1), 1436 BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
1436 BOOST_MATH_BIG_CONSTANT(T, 113, -65.6998869881600212224652719706425129), 1437 BOOST_MATH_BIG_CONSTANT(T, 113, -65.6998869881600212224652719706425129),
1437 BOOST_MATH_BIG_CONSTANT(T, 113, 1642.73850032324014781607859416890077), 1438 BOOST_MATH_BIG_CONSTANT(T, 113, 1642.73850032324014781607859416890077),
1438 BOOST_MATH_BIG_CONSTANT(T, 113, -19937.2610222467322481947237312818575), 1439 BOOST_MATH_BIG_CONSTANT(T, 113, -19937.2610222467322481947237312818575),
1439 BOOST_MATH_BIG_CONSTANT(T, 113, 124136.267326632742667972126625064538), 1440 BOOST_MATH_BIG_CONSTANT(T, 113, 124136.267326632742667972126625064538),
1440 BOOST_MATH_BIG_CONSTANT(T, 113, -384614.251466704550678760562965502293), 1441 BOOST_MATH_BIG_CONSTANT(T, 113, -384614.251466704550678760562965502293),