mirror of
https://github.com/vale981/arb
synced 2025-03-05 09:21:38 -05:00
switch to usual dft convention (minus sign)
This commit is contained in:
parent
4376829974
commit
aa61f5bfed
7 changed files with 16 additions and 13 deletions
|
@ -246,7 +246,7 @@ acb_dft_rad2_init(acb_dft_rad2_t t, int e, slong prec)
|
|||
ACB_DFT_INLINE void
|
||||
acb_dft_rad2_clear(acb_dft_rad2_t t)
|
||||
{
|
||||
_acb_vec_clear(t->z, t->n);
|
||||
_acb_vec_clear(t->z, t->nz);
|
||||
}
|
||||
|
||||
void _acb_dft_bluestein_init(acb_dft_bluestein_t t, slong dv, slong n, slong prec);
|
||||
|
|
|
@ -26,7 +26,7 @@ _acb_vec_bluestein_factors(acb_ptr z, slong n, slong prec)
|
|||
nmod_t n2;
|
||||
|
||||
z2n = _acb_vec_init(2 * n);
|
||||
_acb_vec_unit_roots(z2n, 2 * n, prec);
|
||||
_acb_vec_unit_roots(z2n, 2 * n, -2 * n, prec);
|
||||
nmod_init(&n2, 2 * n);
|
||||
|
||||
for (k = 0, k2 = 0; k < n; k++)
|
||||
|
@ -65,6 +65,7 @@ _acb_vec_bluestein_factors(acb_ptr z, slong n, slong prec)
|
|||
|
||||
acb_one(t + 0);
|
||||
acb_unit_root(t + 1, 2 * n, prec);
|
||||
acb_conj(t + 1, t + 1);
|
||||
acb_set_si(t + n, -1);
|
||||
for (k = 2; k < n; k++)
|
||||
if (v[k])
|
||||
|
|
|
@ -27,7 +27,7 @@ _acb_dft_cyc_init_z_fac(acb_dft_cyc_t t, n_factor_t fac, slong dv, acb_ptr z, sl
|
|||
if (DFT_VERB)
|
||||
flint_printf("dft_cyc: init z[%wu]\n", t->n);
|
||||
z = _acb_vec_init(t->n);
|
||||
_acb_vec_unit_roots(z, t->n, prec);
|
||||
_acb_vec_unit_roots(z, t->n, -t->n, prec);
|
||||
dz = 1;
|
||||
t->zclear = 1;
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ acb_dft_naive(acb_ptr w, acb_srcptr v, slong len, slong prec)
|
|||
acb_ptr z, v1 = NULL;
|
||||
|
||||
z = _acb_vec_init(len);
|
||||
_acb_vec_unit_roots(z, len, prec);
|
||||
_acb_vec_unit_roots(z, len, -len, prec);
|
||||
if (w == v)
|
||||
{
|
||||
v1 = _acb_vec_init(len);
|
||||
|
@ -84,7 +84,7 @@ _acb_dft_naive_init(acb_dft_naive_t pol, slong dv, acb_ptr z, slong dz, slong le
|
|||
if (DFT_VERB)
|
||||
flint_printf("dft_naive: init z[%ld]\n",len);
|
||||
pol->z = _acb_vec_init(len);
|
||||
_acb_vec_unit_roots(pol->z, len, prec);
|
||||
_acb_vec_unit_roots(pol->z, len, -len, prec);
|
||||
pol->dz = 1;
|
||||
pol->zclear = 1;
|
||||
}
|
||||
|
|
|
@ -43,10 +43,9 @@ _acb_dft_rad2_init(acb_dft_rad2_t t, slong dv, int e, slong prec)
|
|||
t->n = 1 << e;
|
||||
t->dv = dv;
|
||||
t->nz = t->n >> 1;
|
||||
t->z = _acb_vec_init(t->n);
|
||||
t->z = _acb_vec_init(t->nz);
|
||||
/* set n/2 roots of order n */
|
||||
/* xxx: don't compute twice the number */
|
||||
_acb_vec_unit_roots(t->z, t->n, prec);
|
||||
_acb_vec_unit_roots(t->z, t->nz, -t->n, prec);
|
||||
}
|
||||
|
||||
/* remark: can use same rad2 with smaller power of 2 */
|
||||
|
|
|
@ -86,8 +86,13 @@ int main()
|
|||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
acb_set_si(x + i, n_randint(state, len));
|
||||
acb_set_si(y + i, n_randint(state, len));
|
||||
#if 1
|
||||
acb_set_si(x + i, n_randint(state, 4 * len));
|
||||
acb_set_si(y + i, n_randint(state, 4 * len));
|
||||
#else
|
||||
acb_set_si_si(x + i, n_randint(state, 4 * len), n_randint(state, 4 * len));
|
||||
acb_set_si_si(y + i, n_randint(state, 4 * len), n_randint(state, 4 * len));
|
||||
#endif
|
||||
}
|
||||
|
||||
for (f = 0; f < nf; f++)
|
||||
|
@ -115,5 +120,3 @@ int main()
|
|||
flint_printf("PASS\n");
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ int main()
|
|||
w1 = _acb_vec_init(n);
|
||||
|
||||
for (j = 0; j < n; j++)
|
||||
acb_set_si(v + k, k);
|
||||
acb_set_si_si(v + j, j, j + 2);
|
||||
|
||||
acb_dft_naive(w1, v, n, prec);
|
||||
acb_dft_rad2_inplace(w2, k, prec);
|
||||
|
|
Loading…
Add table
Reference in a new issue