mirror of
https://github.com/vale981/arb
synced 2025-03-05 17:31:38 -05:00
remove two obsolete helper functions
This commit is contained in:
parent
0214f750d7
commit
e3f7ef1f66
1 changed files with 0 additions and 76 deletions
|
@ -27,82 +27,6 @@
|
||||||
#include "double_extras.h"
|
#include "double_extras.h"
|
||||||
#include "hypgeom.h"
|
#include "hypgeom.h"
|
||||||
|
|
||||||
void
|
|
||||||
fmpr_gamma_ui_lbound(fmpr_t x, ulong n, long prec)
|
|
||||||
{
|
|
||||||
if (n == 0) abort();
|
|
||||||
|
|
||||||
if (n < 250)
|
|
||||||
{
|
|
||||||
fmpz_t t;
|
|
||||||
fmpz_init(t);
|
|
||||||
fmpz_fac_ui(t, n - 1);
|
|
||||||
fmpr_set_round_fmpz(x, t, prec, FMPR_RND_DOWN);
|
|
||||||
fmpz_clear(t);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* (2 pi/x)^(1/2) * (x/e)^x < Gamma(x) */
|
|
||||||
fmpr_t t, u;
|
|
||||||
|
|
||||||
fmpr_init(t);
|
|
||||||
fmpr_init(u);
|
|
||||||
|
|
||||||
/* lower bound for 2 pi */
|
|
||||||
fmpr_set_ui_2exp_si(t, 843314855, -27);
|
|
||||||
fmpr_div_ui(t, t, n, prec, FMPR_RND_DOWN);
|
|
||||||
fmpr_sqrt(t, t, prec, FMPR_RND_DOWN);
|
|
||||||
|
|
||||||
/* lower bound for 1/e */
|
|
||||||
fmpr_set_ui_2exp_si(u, 197503771, -29);
|
|
||||||
fmpr_mul_ui(u, u, n, prec, FMPR_RND_DOWN);
|
|
||||||
|
|
||||||
fmpr_pow_sloppy_ui(u, u, n, prec, FMPR_RND_DOWN);
|
|
||||||
|
|
||||||
fmpr_mul(x, t, u, prec, FMPR_RND_DOWN);
|
|
||||||
|
|
||||||
fmpr_clear(t);
|
|
||||||
fmpr_clear(u);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fmpr_gamma_ui_ubound(fmpr_t x, ulong n, long prec)
|
|
||||||
{
|
|
||||||
if (n == 0) abort();
|
|
||||||
|
|
||||||
if (n < 250)
|
|
||||||
{
|
|
||||||
fmpz_t t;
|
|
||||||
fmpz_init(t);
|
|
||||||
fmpz_fac_ui(t, n - 1);
|
|
||||||
fmpr_set_round_fmpz(x, t, prec, FMPR_RND_UP);
|
|
||||||
fmpz_clear(t);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fmpr_t t, u;
|
|
||||||
fmpr_init(t);
|
|
||||||
|
|
||||||
/* Gamma(x) < e * (x / e)^x -- TODO: use a tighter bound */
|
|
||||||
|
|
||||||
fmpr_init(t);
|
|
||||||
fmpr_init(u);
|
|
||||||
|
|
||||||
/* upper bound for 1/e */
|
|
||||||
fmpr_set_ui_2exp_si(u, 197503773, -29);
|
|
||||||
fmpr_mul_ui(u, u, n, prec, FMPR_RND_UP);
|
|
||||||
fmpr_pow_sloppy_ui(u, u, n, prec, FMPR_RND_UP);
|
|
||||||
|
|
||||||
/* upper bound for e */
|
|
||||||
fmpr_set_ui_2exp_si(t, 364841613, -27);
|
|
||||||
fmpr_mul(x, t, u, prec, FMPR_RND_UP);
|
|
||||||
|
|
||||||
fmpr_clear(t);
|
|
||||||
fmpr_clear(u);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
long
|
long
|
||||||
hypgeom_root_bound(const mag_t z, int r)
|
hypgeom_root_bound(const mag_t z, int r)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue