mirror of
https://github.com/vale981/arb
synced 2025-03-05 09:21:38 -05:00
long -> slong bernoulli.h.
This commit is contained in:
parent
8c7ac256f3
commit
0ba56d40d8
1 changed files with 14 additions and 14 deletions
28
bernoulli.h
28
bernoulli.h
|
@ -39,11 +39,11 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern long TLS_PREFIX bernoulli_cache_num;
|
extern slong TLS_PREFIX bernoulli_cache_num;
|
||||||
|
|
||||||
extern TLS_PREFIX fmpq * bernoulli_cache;
|
extern TLS_PREFIX fmpq * bernoulli_cache;
|
||||||
|
|
||||||
void bernoulli_cache_compute(long n);
|
void bernoulli_cache_compute(slong n);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Crude bound for the bits in d(n) = denom(B_n).
|
Crude bound for the bits in d(n) = denom(B_n).
|
||||||
|
@ -55,22 +55,22 @@ We get a more accurate estimate taking the square root of this.
|
||||||
Further, at least for sufficiently large n,
|
Further, at least for sufficiently large n,
|
||||||
sigma_0(n) < exp(1.066 log(n) / log(log(n))).
|
sigma_0(n) < exp(1.066 log(n) / log(log(n))).
|
||||||
*/
|
*/
|
||||||
static __inline__ long bernoulli_denom_size(long n)
|
static __inline__ slong bernoulli_denom_size(slong n)
|
||||||
{
|
{
|
||||||
return 0.5 * 1.4427 * log(n) * pow(n, 1.066 / log(log(n)));
|
return 0.5 * 1.4427 * log(n) * pow(n, 1.066 / log(log(n)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline__ long bernoulli_zeta_terms(ulong s, long prec)
|
static __inline__ slong bernoulli_zeta_terms(ulong s, slong prec)
|
||||||
{
|
{
|
||||||
long N;
|
slong N;
|
||||||
N = pow(2.0, (prec + 1.0) / (s - 1.0));
|
N = pow(2.0, (prec + 1.0) / (s - 1.0));
|
||||||
N += ((N % 2) == 0);
|
N += ((N % 2) == 0);
|
||||||
return N;
|
return N;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline__ long bernoulli_power_prec(long i, ulong s1, long wp)
|
static __inline__ slong bernoulli_power_prec(slong i, ulong s1, slong wp)
|
||||||
{
|
{
|
||||||
long p = wp - s1 * log(i) * 1.44269504088896341;
|
slong p = wp - s1 * log(i) * 1.44269504088896341;
|
||||||
return FLINT_MAX(p, 10);
|
return FLINT_MAX(p, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ static __inline__ long bernoulli_power_prec(long i, ulong s1, long wp)
|
||||||
in practice since the denominator estimate is quite a bit larger
|
in practice since the denominator estimate is quite a bit larger
|
||||||
than the true denominators
|
than the true denominators
|
||||||
*/
|
*/
|
||||||
static __inline__ long bernoulli_global_prec(ulong nmax)
|
static __inline__ slong bernoulli_global_prec(ulong nmax)
|
||||||
{
|
{
|
||||||
return arith_bernoulli_number_size(nmax) + bernoulli_denom_size(nmax);
|
return arith_bernoulli_number_size(nmax) + bernoulli_denom_size(nmax);
|
||||||
}
|
}
|
||||||
|
@ -89,9 +89,9 @@ static __inline__ long bernoulli_global_prec(ulong nmax)
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
long alloc;
|
slong alloc;
|
||||||
long prec;
|
slong prec;
|
||||||
long max_power;
|
slong max_power;
|
||||||
fmpz * powers;
|
fmpz * powers;
|
||||||
fmpz_t pow_error;
|
fmpz_t pow_error;
|
||||||
arb_t prefactor;
|
arb_t prefactor;
|
||||||
|
@ -111,7 +111,7 @@ void bernoulli_rev_clear(bernoulli_rev_t iter);
|
||||||
|
|
||||||
#define BERNOULLI_ENSURE_CACHED(n) \
|
#define BERNOULLI_ENSURE_CACHED(n) \
|
||||||
do { \
|
do { \
|
||||||
long __n = (n); \
|
slong __n = (n); \
|
||||||
if (__n >= bernoulli_cache_num) \
|
if (__n >= bernoulli_cache_num) \
|
||||||
bernoulli_cache_compute(__n + 1); \
|
bernoulli_cache_compute(__n + 1); \
|
||||||
} while (0); \
|
} while (0); \
|
||||||
|
@ -119,9 +119,9 @@ void bernoulli_rev_clear(bernoulli_rev_t iter);
|
||||||
long bernoulli_bound_2exp_si(ulong n);
|
long bernoulli_bound_2exp_si(ulong n);
|
||||||
|
|
||||||
|
|
||||||
void bernoulli_fmprb_ui_zeta(fmprb_t b, ulong n, long prec);
|
void bernoulli_fmprb_ui_zeta(fmprb_t b, ulong n, slong prec);
|
||||||
|
|
||||||
void bernoulli_fmprb_ui(fmprb_t b, ulong n, long prec);
|
void bernoulli_fmprb_ui(fmprb_t b, ulong n, slong prec);
|
||||||
|
|
||||||
void _bernoulli_fmpq_ui_zeta(fmpz_t num, fmpz_t den, ulong n);
|
void _bernoulli_fmpq_ui_zeta(fmpz_t num, fmpz_t den, ulong n);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue