X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=src%2Ffloat%2Ftranscendental%2Fcl_LF_eulerconst.cc;h=3ab99de444e9cd21570cda1466cefcddd99402ba;hb=c84c6db5d56829d69083c819688a973867694a2a;hp=9738f48e725a01744f79e94de6142c9296b501eb;hpb=976a13157ca8d274a5bcbdac662cac538091e92c;p=cln.git diff --git a/src/float/transcendental/cl_LF_eulerconst.cc b/src/float/transcendental/cl_LF_eulerconst.cc index 9738f48..3ab99de 100644 --- a/src/float/transcendental/cl_LF_eulerconst.cc +++ b/src/float/transcendental/cl_LF_eulerconst.cc @@ -72,13 +72,13 @@ const cl_LF compute_eulerconst_expintegral (uintC len) // to more than double the floating-point precision because of the large // extinction which takes place. But luckily we compute with integers. var uintC actuallen = len+1; // 1 Schutz-Digit - var uintL z = (uintL)(0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(3.591121477*z); + var uintC z = (uintC)(0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(3.591121477*z); CL_ALLOCA_STACK; var cl_I* bv = (cl_I*) cl_alloca(N*sizeof(cl_I)); var cl_I* pv = (cl_I*) cl_alloca(N*sizeof(cl_I)); var cl_I* qv = (cl_I*) cl_alloca(N*sizeof(cl_I)); - var uintL n; + var uintC n; for (n = 0; n < N; n++) { init1(cl_I, bv[n]) (n+1); init1(cl_I, pv[n]) (n==0 ? (cl_I)z : -(cl_I)z); @@ -147,14 +147,14 @@ const cl_LF compute_eulerconst_expintegral1 (uintC len) // each. // We compute f(x) classically and g(x) using the partial sums of f(x). var uintC actuallen = len+2; // 2 Schutz-Digits - var uintL x = (uintL)(0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(2.718281828*x); + var uintC x = (uintC)(0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(2.718281828*x); var cl_LF one = cl_I_to_LF(1,actuallen); var cl_LF fterm = one; var cl_LF fsum = fterm; var cl_LF gterm = cl_I_to_LF(0,actuallen); var cl_LF gsum = gterm; - var uintL n; + var uintC n; // After n loops // fterm = x^n/n!, fsum = 1 + x/1! + ... + x^n/n!, // gterm = H_n*x^n/n!, gsum = H_1*x/1! + ... + H_n*x^n/n!. @@ -187,11 +187,11 @@ const cl_LF compute_eulerconst_expintegral1 (uintC len) const cl_LF compute_eulerconst_expintegral2 (uintC len) { var uintC actuallen = len+2; // 2 Schutz-Digits - var uintL x = (uintL)(0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(2.718281828*x); + var uintC x = (uintC)(0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(2.718281828*x); CL_ALLOCA_STACK; var cl_pqd_series_term* args = (cl_pqd_series_term*) cl_alloca(N*sizeof(cl_pqd_series_term)); - var uintL n; + var uintC n; for (n = 0; n < N; n++) { init1(cl_I, args[n].p) (x); init1(cl_I, args[n].q) (n+1); @@ -277,15 +277,15 @@ const cl_LF compute_eulerconst_besselintegral1 (uintC len) { // We compute f(x) classically and g(x) using the partial sums of f(x). var uintC actuallen = len+1; // 1 Schutz-Digit - var uintL sx = (uintL)(0.25*0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(3.591121477*sx); + var uintC sx = (uintC)(0.25*0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(3.591121477*sx); var cl_I x = square((cl_I)sx); - var cl_LF eps = scale_float(cl_I_to_LF(1,LF_minlen),-(sintL)(sx*2.88539+10)); + var cl_LF eps = scale_float(cl_I_to_LF(1,LF_minlen),-(sintC)(sx*2.88539+10)); var cl_LF fterm = cl_I_to_LF(1,actuallen); var cl_LF fsum = fterm; var cl_LF gterm = cl_I_to_LF(0,actuallen); var cl_LF gsum = gterm; - var uintL n; + var uintC n; // After n loops // fterm = x^n/n!^2, fsum = 1 + x/1!^2 + ... + x^n/n!^2, // gterm = H_n*x^n/n!^2, gsum = H_1*x/1!^2 + ... + H_n*x^n/n!^2. @@ -327,14 +327,14 @@ const cl_LF compute_eulerconst_besselintegral2 (uintC len) // (Because HD_n grows like exp(n), hence HN_n grows like exp(n) as // well, and we store all HN_n values in an array!) var uintC actuallen = len+1; // 1 Schutz-Digit - var uintL sx = (uintL)(0.25*0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(3.591121477*sx); + var uintC sx = (uintC)(0.25*0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(3.591121477*sx); var cl_I x = square((cl_I)sx); CL_ALLOCA_STACK; var cl_I* av = (cl_I*) cl_alloca(N*sizeof(cl_I)); var cl_I* pv = (cl_I*) cl_alloca(N*sizeof(cl_I)); var cl_I* qv = (cl_I*) cl_alloca(N*sizeof(cl_I)); - var uintL n; + var uintC n; // Evaluate f(x). init1(cl_I, pv[0]) (1); init1(cl_I, qv[0]) (1); @@ -409,13 +409,13 @@ struct cl_rational_series_for_g : cl_pqa_series_stream { const cl_LF compute_eulerconst_besselintegral3 (uintC len) { var uintC actuallen = len+1; // 1 Schutz-Digit - var uintL sx = (uintL)(0.25*0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(3.591121477*sx); + var uintC sx = (uintC)(0.25*0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(3.591121477*sx); var cl_I x = square((cl_I)sx); CL_ALLOCA_STACK; var cl_I* pv = (cl_I*) cl_alloca(N*sizeof(cl_I)); var cl_I* qv = (cl_I*) cl_alloca(N*sizeof(cl_I)); - var uintL n; + var uintC n; // Evaluate f(x). init1(cl_I, pv[0]) (1); init1(cl_I, qv[0]) (1); @@ -445,12 +445,12 @@ const cl_LF compute_eulerconst_besselintegral3 (uintC len) const cl_LF compute_eulerconst_besselintegral4 (uintC len) { var uintC actuallen = len+2; // 2 Schutz-Digits - var uintL sx = (uintL)(0.25*0.693148*intDsize*actuallen)+1; - var uintL N = (uintL)(3.591121477*sx); + var uintC sx = (uintC)(0.25*0.693148*intDsize*actuallen)+1; + var uintC N = (uintC)(3.591121477*sx); var cl_I x = square((cl_I)sx); CL_ALLOCA_STACK; var cl_pqd_series_term* args = (cl_pqd_series_term*) cl_alloca(N*sizeof(cl_pqd_series_term)); - var uintL n; + var uintC n; for (n = 0; n < N; n++) { init1(cl_I, args[n].p) (x); init1(cl_I, args[n].q) (square((cl_I)(n+1)));