// File: sus304[P]ForRocket/./lib/boost/math/special_functions/lanczos.hpp
// Function: long double boost::math::lanczos::lanczos17m64::lanczos_sum_expG_scaled<long double>(long double const&)
static T lanczos_sum_expG_scaled(const T& z)
   {
      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
      static const T num[17] = {
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2715894658327.717377557655133124376674911)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3590179526097.912105038525528721129550434)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2223966599737.814969312127353235818710172)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 856940834518.9562481809925866825485883417)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 229885871668.749072933597446453399395469)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 45526171687.54610815813502794395753410032)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6884887713.165178784550917647709216424823)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 811048596.1407531864760282453852372777439)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 75213915.96540822314499613623119501704812)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5509245.417224265151697527957954952830126)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 317673.5368435419126714931842182369574221)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 14268.27989845035520147014373320337523596)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 489.3618720403263670213909083601787814792)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 12.38941330038454449295883217865458609584)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.2183627389504614963941574507281683147897)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.002393749522058449186690627996063983095463)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1229541408909435212800785616808830746135e-4))
      };
      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint64_t) denom[17] = {
         BOOST_MATH_INT_VALUE_SUFFIX(0, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(1307674368000, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(4339163001600, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(6165817614720, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(5056995703824, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(2706813345600, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(1009672107080, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(272803210680, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(54631129553, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(8207628000, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(928095740, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(78558480, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(4899622, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(218400, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(6580, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(120, uLL),
         BOOST_MATH_INT_VALUE_SUFFIX(1, uLL)
      };
      return boost::math::tools::evaluate_rational(num, denom, z);
   }


   template<class T>
   static T lanczos_sum_near_1(const T& dz)
   {
      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
      static const T d[16] = {
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.493645054286536365763334986866616581265)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -16.95716370392468543800733966378143997694)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 26.19196892983737527836811770970479846644)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -21.3659076437988814488356323758179283908)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.913992596774556590710751047594507535764)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.62888300018780199210536267080940382158)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.3807056693542503606384861890663080735588)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.02714647489697685807340312061034730486958)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0007815484715461206757220527133967191796747)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.6108630817371501052576880554048972272435e-5)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.5037380238864836824167713635482801545086e-8)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.1483232144262638814568926925964858237006e-13)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1346609158752142460943888149156716841693e-14)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.660492688923978805315914918995410340796e-15)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1472114697343266749193617793755763792681e-15)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.1410901942033374651613542904678399264447e-16)),
      };
      T result = 0;
      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
      {
         result += (-d[k-1]*dz)/(k*dz + k*k);
      }
      return result;
   }

   template<class T>
   static T lanczos_sum_near_2(const T& dz)
   {
      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
      static const T d[16] = {
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 23.56409085052261327114594781581930373708)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -88.92116338946308797946237246006238652361)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 137.3472822086847596961177383569603988797)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -112.0400438263562152489272966461114852861)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 51.98768915202973863076166956576777843805)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -13.78552090862799358221343319574970124948)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.996371068830872830250406773917646121742)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.1423525874909934506274738563671862576161)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.004098338646046865122459664947239111298524)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.3203286637326511000882086573060433529094e-4)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.2641536751640138646146395939004587594407e-7)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.7777876663062235617693516558976641009819e-13)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.7061443477097101636871806229515157914789e-14)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.3463537849537988455590834887691613484813e-14)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.7719578215795234036320348283011129450595e-15)),
         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.7398586479708476329563577384044188912075e-16)),
      };
      T result = 0;
      T z = dz + 2;
      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
      {
         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
      }
      return result;
   }

   static double g(){ return 12.2252227365970611572265625; }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
callq 0x5c0c0
cmpb $0x0, 0x89108(%rip)     # 0xe4750
jne 0x5b96c
leaq 0x890fb(%rip), %rdi     # 0xe4750
callq 0x67b0
cmpl $0x0, %eax
je 0x5b96c
leaq -0xa(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42e38(%rip)           # 0x9e4b0
fstpt (%rax)
leaq 0x4345c(%rip), %rdi     # 0x9eadd
leaq -0x9(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88fb0(%rip)           # 0xe4640
leaq -0xc(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42e1b(%rip)           # 0x9e4c0
fstpt (%rax)
leaq 0x43459(%rip), %rdi     # 0x9eb07
leaq -0xb(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88f93(%rip)           # 0xe4650
leaq -0xe(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42dfe(%rip)           # 0x9e4d0
fstpt (%rax)
leaq 0x43456(%rip), %rdi     # 0x9eb31
leaq -0xd(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88f76(%rip)           # 0xe4660
leaq -0x10(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42de1(%rip)           # 0x9e4e0
fstpt (%rax)
leaq 0x43453(%rip), %rdi     # 0x9eb5b
leaq -0xf(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88f59(%rip)           # 0xe4670
leaq -0x12(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42dc4(%rip)           # 0x9e4f0
fstpt (%rax)
leaq 0x43450(%rip), %rdi     # 0x9eb85
leaq -0x11(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88f3c(%rip)           # 0xe4680
leaq -0x14(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42da7(%rip)           # 0x9e500
fstpt (%rax)
leaq 0x4344c(%rip), %rdi     # 0x9ebae
leaq -0x13(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88f1f(%rip)           # 0xe4690
leaq -0x16(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42d8a(%rip)           # 0x9e510
fstpt (%rax)
leaq 0x43449(%rip), %rdi     # 0x9ebd8
leaq -0x15(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88f02(%rip)           # 0xe46a0
leaq -0x18(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42d6d(%rip)           # 0x9e520
fstpt (%rax)
leaq 0x43446(%rip), %rdi     # 0x9ec02
leaq -0x17(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88ee5(%rip)           # 0xe46b0
leaq -0x1a(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42d50(%rip)           # 0x9e530
fstpt (%rax)
leaq 0x43443(%rip), %rdi     # 0x9ec2c
leaq -0x19(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88ec8(%rip)           # 0xe46c0
leaq -0x1c(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42d33(%rip)           # 0x9e540
fstpt (%rax)
leaq 0x43440(%rip), %rdi     # 0x9ec56
leaq -0x1b(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88eab(%rip)           # 0xe46d0
leaq -0x1e(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42d16(%rip)           # 0x9e550
fstpt (%rax)
leaq 0x4343d(%rip), %rdi     # 0x9ec80
leaq -0x1d(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88e8e(%rip)           # 0xe46e0
leaq -0x20(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42cf9(%rip)           # 0x9e560
fstpt (%rax)
leaq 0x4343a(%rip), %rdi     # 0x9ecaa
leaq -0x1f(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88e71(%rip)           # 0xe46f0
leaq -0x22(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42cdc(%rip)           # 0x9e570
fstpt (%rax)
leaq 0x43437(%rip), %rdi     # 0x9ecd4
leaq -0x21(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88e54(%rip)           # 0xe4700
leaq -0x24(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42cbf(%rip)           # 0x9e580
fstpt (%rax)
leaq 0x43434(%rip), %rdi     # 0x9ecfe
leaq -0x23(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88e37(%rip)           # 0xe4710
leaq -0x26(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42ca2(%rip)           # 0x9e590
fstpt (%rax)
leaq 0x43431(%rip), %rdi     # 0x9ed28
leaq -0x25(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88e1a(%rip)           # 0xe4720
leaq -0x28(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42c85(%rip)           # 0x9e5a0
fstpt (%rax)
leaq 0x4342f(%rip), %rdi     # 0x9ed53
leaq -0x27(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88dfd(%rip)           # 0xe4730
leaq -0x2a(%rbp), %rdi
callq 0x5c100
movq %rax, %rdx
movq %rsp, %rax
fldt 0x42c68(%rip)           # 0x9e5b0
fstpt (%rax)
leaq 0x4342f(%rip), %rdi     # 0x9ed80
leaq -0x29(%rbp), %rsi
callq 0x5c0e0
fstpt 0x88de0(%rip)           # 0xe4740
leaq 0x88de9(%rip), %rdi     # 0xe4750
callq 0x62f0
movq -0x8(%rbp), %rdx
leaq 0x88cc9(%rip), %rdi     # 0xe4640
leaq 0x45be2(%rip), %rsi     # 0xa1560
callq 0x5c120
fld %st(0)
fstp %st(0)
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)