X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=src%2Ffloat%2Ftranscendental%2Fcl_LF_ratsumseries_pqd.cc;h=d058b473cc75224b74c94fc93bab1acecd9a557e;hb=3af2cde18b3aabed4c808b0113daa81c2263b0bd;hp=fab0ff22288ad268066cb696051be11e851416bb;hpb=850abfde7f0d985ba01526c346bcd0d733562943;p=cln.git diff --git a/src/float/transcendental/cl_LF_ratsumseries_pqd.cc b/src/float/transcendental/cl_LF_ratsumseries_pqd.cc index fab0ff2..d058b47 100644 --- a/src/float/transcendental/cl_LF_ratsumseries_pqd.cc +++ b/src/float/transcendental/cl_LF_ratsumseries_pqd.cc @@ -1,26 +1,26 @@ // eval_pqd_series(). // General includes. -#include "cl_sysdep.h" +#include "base/cl_sysdep.h" // Specification. -#include "cl_LF_tran.h" +#include "float/transcendental/cl_LF_tran.h" // Implementation. #include "cln/lfloat.h" #include "cln/integer.h" -#include "cln/abort.h" -#include "cl_LF.h" +#include "cln/real.h" +#include "float/lfloat/cl_LF.h" namespace cln { -const cl_LF eval_pqd_series (uintL N, cl_pqd_series_term* args, uintC len) +const cl_LF eval_pqd_series (uintC N, cl_pqd_series_term* args, uintC len) { if (N==0) return cl_I_to_LF(0,len); - var cl_pqd_series_result sums; + var cl_pqd_series_result sums; eval_pqd_series_aux(N,args,sums); // Instead of computing fsum = T/Q and gsum = V/(D*Q) // and then dividing them, to compute gsum/fsum, we save two @@ -29,4 +29,30 @@ const cl_LF eval_pqd_series (uintL N, cl_pqd_series_term* args, uintC len) cl_I_to_LF(sums.V,len) / The(cl_LF)(sums.D * cl_I_to_LF(sums.T,len)); } +const cl_LF eval_pqd_series (uintC N, cl_pqd_series_stream& args, uintC len) +{ + if (N==0) + return cl_I_to_LF(0,len); + var cl_pqd_series_result sums; + eval_pqd_series_aux(N,args,sums); + // Instead of computing fsum = T/Q and gsum = V/(D*Q) + // and then dividing them, to compute gsum/fsum, we save two + // divisions by computing V/(D*T). + return + cl_I_to_LF(sums.V,len) / The(cl_LF)(sums.D * cl_I_to_LF(sums.T,len)); +} + +const cl_LF eval_pqd_series (uintC N, cl_pqd_series_stream& args, uintC len, uintC trunclen) +{ + if (N==0) + return cl_I_to_LF(0,len); + var cl_pqd_series_result sums; + eval_pqd_series_aux(N,args,sums,trunclen); + // Instead of computing fsum = T/Q and gsum = V/(D*Q) + // and then dividing them, to compute gsum/fsum, we save two + // divisions by computing V/(D*T). + return + cl_R_to_LF(sums.V,len) / The(cl_LF)(sums.D * cl_R_to_LF(sums.T,len)); +} + } // namespace cln