mirror of
https://github.com/vale981/arb
synced 2025-03-05 09:21:38 -05:00
try something
This commit is contained in:
parent
79b255787b
commit
10b8354480
1 changed files with 4 additions and 4 deletions
|
@ -469,7 +469,7 @@ ulong bernsum_pow2(ulong p, ulong pinv, ulong k, ulong g, ulong n)
|
||||||
0 <= x < nF/2 (if n > F/2)
|
0 <= x < nF/2 (if n > F/2)
|
||||||
ninv2 = -1/n mod F
|
ninv2 = -1/n mod F
|
||||||
*/
|
*/
|
||||||
#define LOW_MASK ((1L << (FLINT_BITS / 2)) - 1)
|
#define LOW_MASK ((UWORD(1) << (FLINT_BITS / 2)) - 1)
|
||||||
static __inline__ ulong RedcFast(ulong x, ulong n, ulong ninv2)
|
static __inline__ ulong RedcFast(ulong x, ulong n, ulong ninv2)
|
||||||
{
|
{
|
||||||
ulong y = (x * ninv2) & LOW_MASK;
|
ulong y = (x * ninv2) & LOW_MASK;
|
||||||
|
@ -520,7 +520,7 @@ static ulong PrepRedc(ulong n)
|
||||||
ulong bernsum_pow2_redc(ulong p, ulong pinv, ulong k, ulong g, ulong n)
|
ulong bernsum_pow2_redc(ulong p, ulong pinv, ulong k, ulong g, ulong n)
|
||||||
{
|
{
|
||||||
ulong pinv2 = PrepRedc(p);
|
ulong pinv2 = PrepRedc(p);
|
||||||
ulong F = (1L << (FLINT_BITS/2)) % p;
|
ulong F = (UWORD(1) << (FLINT_BITS/2)) % p;
|
||||||
ulong x;
|
ulong x;
|
||||||
slong h, i, m;
|
slong h, i, m;
|
||||||
ulong weights[TABLE_SIZE];
|
ulong weights[TABLE_SIZE];
|
||||||
|
@ -571,7 +571,7 @@ ulong bernsum_pow2_redc(ulong p, ulong pinv, ulong k, ulong g, ulong n)
|
||||||
sum = 0;
|
sum = 0;
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
printf("%lu %lu %lu %lu %lu %lu %lu %lu\n", g_to_km1, two_to_km1, B_to_km1, s_jump, g_redc, g_to_km1_redc, B_to_km1_redc, s_jump_redc);
|
printf("%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", F, g_to_km1, two_to_km1, B_to_km1, s_jump, g_redc, g_to_km1_redc, B_to_km1_redc, s_jump_redc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
expander_init(&expander, p, (n >= MAX_INV * FLINT_BITS)
|
expander_init(&expander, p, (n >= MAX_INV * FLINT_BITS)
|
||||||
|
@ -691,7 +691,7 @@ ulong bernsum_pow2_redc(ulong p, ulong pinv, ulong k, ulong g, ulong n)
|
||||||
for (h = 0, x = n_powmod2_preinv(2, 3*FLINT_BITS/2, p, pinv);
|
for (h = 0, x = n_powmod2_preinv(2, 3*FLINT_BITS/2, p, pinv);
|
||||||
h < TABLE_LG_SIZE; h++, x = Redc(x * two_to_km1_redc, p, pinv2))
|
h < TABLE_LG_SIZE; h++, x = Redc(x * two_to_km1_redc, p, pinv2))
|
||||||
{
|
{
|
||||||
for (i = (1L << h) - 1; i >= 0; i--)
|
for (i = (WORD(1) << h) - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
weights[2*i+1] = n_submod(weights[i], x, p);
|
weights[2*i+1] = n_submod(weights[i], x, p);
|
||||||
weights[2*i] = n_addmod(weights[i], x, p);
|
weights[2*i] = n_addmod(weights[i], x, p);
|
||||||
|
|
Loading…
Add table
Reference in a new issue