4 #include "base/cl_sysdep.h"
7 #include "float/transcendental/cl_LF_tran.h"
12 #include "cln/lfloat.h"
13 #include "cln/integer.h"
15 #include "float/lfloat/cl_LF.h"
19 const cl_LF eval_pqcd_series (uintC N, cl_pqcd_series_term* args, uintC len)
22 return cl_I_to_LF(0,len);
23 var cl_pqcd_series_result<cl_I> sums;
24 eval_pqcd_series_aux(N,args,sums);
25 // Instead of computing fsum = T/Q and gsum = V/(D*Q)
26 // and then dividing them, to compute gsum/fsum, we save two
27 // divisions by computing V/(D*T).
29 cl_I_to_LF(sums.V,len) / The(cl_LF)(sums.D * cl_I_to_LF(sums.T,len));
32 const cl_LF eval_pqcd_series (uintC N, cl_pqcd_series_stream& args, uintC len)
35 return cl_I_to_LF(0,len);
36 var cl_pqcd_series_result<cl_I> sums;
37 eval_pqcd_series_aux(N,args,sums);
38 // Instead of computing fsum = T/Q and gsum = V/(D*Q)
39 // and then dividing them, to compute gsum/fsum, we save two
40 // divisions by computing V/(D*T).
42 cl_I_to_LF(sums.V,len) / The(cl_LF)(sums.D * cl_I_to_LF(sums.T,len));
45 const cl_LF eval_pqcd_series (uintC N, cl_pqcd_series_stream& args, uintC len, uintC trunclen)
48 return cl_I_to_LF(0,len);
49 var cl_pqcd_series_result<cl_R> sums;
50 eval_pqcd_series_aux(N,args,sums,trunclen);
51 // Instead of computing fsum = T/Q and gsum = V/(D*Q)
52 // and then dividing them, to compute gsum/fsum, we save two
53 // divisions by computing V/(D*T).
55 cl_R_to_LF(sums.V,len) / The(cl_LF)(sums.D * cl_R_to_LF(sums.T,len));