From ac6c2833a1f1044a10680762c08eb6bd9a46e54e Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Tue, 3 Dec 2024 23:53:32 +0530 Subject: [PATCH 1/3] docs: use constants/float64/max-ln --- .../include/stdlib/math/base/special/riemann_zeta.h | 2 +- .../@stdlib/math/base/special/riemann-zeta/lib/main.js | 4 ++-- .../@stdlib/math/base/special/riemann-zeta/manifest.json | 9 ++++++--- .../@stdlib/math/base/special/riemann-zeta/src/main.c | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/include/stdlib/math/base/special/riemann_zeta.h b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/include/stdlib/math/base/special/riemann_zeta.h index eace1348953a..008b698f43b8 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/include/stdlib/math/base/special/riemann_zeta.h +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/include/stdlib/math/base/special/riemann_zeta.h @@ -29,7 +29,7 @@ extern "C" { /** * Evaluates the Riemann zeta function. */ -double stdlib_base_zeta( const double x ); +double stdlib_base_zeta( const double s ); #ifdef __cplusplus } diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js index bbdd264fa6af..94d4af7a3cb9 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js @@ -49,6 +49,7 @@ var TWO_PI = require( '@stdlib/constants/float64/two-pi' ); var SQRT_EPSILON = require( '@stdlib/constants/float64/sqrt-eps' ); var LN_SQRT_TWO_PI = require( '@stdlib/constants/float64/ln-sqrt-two-pi' ); var MAX_SAFE_NTH_FACTORIAL = require( '@stdlib/constants/float64/max-safe-nth-factorial' ); +var FLOAT64_MAX_LN = require( '@stdlib/constants/float64/max-ln' ); var ODD_POSITIVE_INTEGERS = require( './odd_positive_integers.json' ); var EVEN_NONNEGATIVE_INTEGERS = require( './even_nonnegative_integers.json' ); var BERNOULLI = require( './bernoulli.json' ); @@ -63,7 +64,6 @@ var rateval6 = require( './rational_p6q6.js' ); // VARIABLES // var MAX_BERNOULLI_2N = 129; -var MAX_LN = 709; // TODO: consider making external constant var Y1 = 1.2433929443359375; var Y3 = 0.6986598968505859375; @@ -265,7 +265,7 @@ function zeta( s ) { tmp = sinpi( 0.5*sc ) * 2.0 * zeta( s ); r = gammaln( s ); r -= s * ln( TWO_PI ); - if ( r > MAX_LN ) { + if ( r > floor( FLOAT64_MAX_LN ) ) { return ( tmp < 0.0 ) ? NINF : PINF; } return tmp * exp( r ); diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json index 46652bbb03fc..4b75f9a49728 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json @@ -52,7 +52,8 @@ "@stdlib/constants/float64/two-pi", "@stdlib/constants/float64/sqrt-eps", "@stdlib/constants/float64/ln-sqrt-two-pi", - "@stdlib/constants/float64/max-safe-nth-factorial" + "@stdlib/constants/float64/max-safe-nth-factorial", + "@stdlib/constants/float64/max-ln" ] }, { @@ -81,7 +82,8 @@ "@stdlib/constants/float64/two-pi", "@stdlib/constants/float64/sqrt-eps", "@stdlib/constants/float64/ln-sqrt-two-pi", - "@stdlib/constants/float64/max-safe-nth-factorial" + "@stdlib/constants/float64/max-safe-nth-factorial", + "@stdlib/constants/float64/max-ln" ] }, { @@ -110,7 +112,8 @@ "@stdlib/constants/float64/two-pi", "@stdlib/constants/float64/sqrt-eps", "@stdlib/constants/float64/ln-sqrt-two-pi", - "@stdlib/constants/float64/max-safe-nth-factorial" + "@stdlib/constants/float64/max-safe-nth-factorial", + "@stdlib/constants/float64/max-ln" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c index db2f420354ab..a5c0491f58b3 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c @@ -47,10 +47,10 @@ #include "stdlib/constants/float64/sqrt_eps.h" #include "stdlib/constants/float64/ln_sqrt_two_pi.h" #include "stdlib/constants/float64/max_safe_nth_factorial.h" +#include "stdlib/constants/float64/max_ln.h" #include static const int32_t MAX_BERNOULLI_2N = 129; -static const double MAX_LN = 709.0; static const double Y1 = 1.2433929443359375; static const double Y3 = 0.6986598968505859375; @@ -772,7 +772,7 @@ double stdlib_base_zeta( const double s ) { tmp = stdlib_base_sinpi( 0.5 * sc ) * 2.0 * stdlib_base_zeta( scc ); r = stdlib_base_gammaln( scc ); r -= scc * stdlib_base_ln( STDLIB_CONSTANT_FLOAT64_TWO_PI ); - if ( r > MAX_LN ) { + if ( r > stdlib_base_floor( STDLIB_CONSTANT_FLOAT64_MAX_LN ) ) { return ( tmp < 0.0 ) ? STDLIB_CONSTANT_FLOAT64_NINF : STDLIB_CONSTANT_FLOAT64_PINF; } return tmp * stdlib_base_exp( r ); From 347dedda479da576a21382166542e6ee70d9a131 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Wed, 4 Dec 2024 09:09:02 +0530 Subject: [PATCH 2/3] docs: declare MAX_LN on top --- .../@stdlib/math/base/special/riemann-zeta/lib/main.js | 3 ++- .../@stdlib/math/base/special/riemann-zeta/src/main.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js index 94d4af7a3cb9..873d63738ba6 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/lib/main.js @@ -64,6 +64,7 @@ var rateval6 = require( './rational_p6q6.js' ); // VARIABLES // var MAX_BERNOULLI_2N = 129; +var MAX_LN = floor( FLOAT64_MAX_LN ); var Y1 = 1.2433929443359375; var Y3 = 0.6986598968505859375; @@ -265,7 +266,7 @@ function zeta( s ) { tmp = sinpi( 0.5*sc ) * 2.0 * zeta( s ); r = gammaln( s ); r -= s * ln( TWO_PI ); - if ( r > floor( FLOAT64_MAX_LN ) ) { + if ( r > MAX_LN ) { return ( tmp < 0.0 ) ? NINF : PINF; } return tmp * exp( r ); diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c index a5c0491f58b3..ae6dda391478 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c @@ -51,6 +51,7 @@ #include static const int32_t MAX_BERNOULLI_2N = 129; +static const double MAX_LN = stdlib_base_floor( STDLIB_CONSTANT_FLOAT64_MAX_LN ); static const double Y1 = 1.2433929443359375; static const double Y3 = 0.6986598968505859375; @@ -772,7 +773,7 @@ double stdlib_base_zeta( const double s ) { tmp = stdlib_base_sinpi( 0.5 * sc ) * 2.0 * stdlib_base_zeta( scc ); r = stdlib_base_gammaln( scc ); r -= scc * stdlib_base_ln( STDLIB_CONSTANT_FLOAT64_TWO_PI ); - if ( r > stdlib_base_floor( STDLIB_CONSTANT_FLOAT64_MAX_LN ) ) { + if ( r > MAX_LN ) { return ( tmp < 0.0 ) ? STDLIB_CONSTANT_FLOAT64_NINF : STDLIB_CONSTANT_FLOAT64_PINF; } return tmp * stdlib_base_exp( r ); From aae997dd36f892b3b20aa10b0efc7af47e6ab232 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Thu, 5 Dec 2024 09:15:32 +0530 Subject: [PATCH 3/3] refactor: inline constant value --- .../@stdlib/math/base/special/riemann-zeta/manifest.json | 9 +++------ .../@stdlib/math/base/special/riemann-zeta/src/main.c | 3 +-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json index 4b75f9a49728..46652bbb03fc 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/manifest.json @@ -52,8 +52,7 @@ "@stdlib/constants/float64/two-pi", "@stdlib/constants/float64/sqrt-eps", "@stdlib/constants/float64/ln-sqrt-two-pi", - "@stdlib/constants/float64/max-safe-nth-factorial", - "@stdlib/constants/float64/max-ln" + "@stdlib/constants/float64/max-safe-nth-factorial" ] }, { @@ -82,8 +81,7 @@ "@stdlib/constants/float64/two-pi", "@stdlib/constants/float64/sqrt-eps", "@stdlib/constants/float64/ln-sqrt-two-pi", - "@stdlib/constants/float64/max-safe-nth-factorial", - "@stdlib/constants/float64/max-ln" + "@stdlib/constants/float64/max-safe-nth-factorial" ] }, { @@ -112,8 +110,7 @@ "@stdlib/constants/float64/two-pi", "@stdlib/constants/float64/sqrt-eps", "@stdlib/constants/float64/ln-sqrt-two-pi", - "@stdlib/constants/float64/max-safe-nth-factorial", - "@stdlib/constants/float64/max-ln" + "@stdlib/constants/float64/max-safe-nth-factorial" ] } ] diff --git a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c index ae6dda391478..db2f420354ab 100644 --- a/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c +++ b/lib/node_modules/@stdlib/math/base/special/riemann-zeta/src/main.c @@ -47,11 +47,10 @@ #include "stdlib/constants/float64/sqrt_eps.h" #include "stdlib/constants/float64/ln_sqrt_two_pi.h" #include "stdlib/constants/float64/max_safe_nth_factorial.h" -#include "stdlib/constants/float64/max_ln.h" #include static const int32_t MAX_BERNOULLI_2N = 129; -static const double MAX_LN = stdlib_base_floor( STDLIB_CONSTANT_FLOAT64_MAX_LN ); +static const double MAX_LN = 709.0; static const double Y1 = 1.2433929443359375; static const double Y3 = 0.6986598968505859375;