mirror of
https://github.com/vale981/arb
synced 2025-03-04 17:01:40 -05:00
fix acb_dft_bluestein for length 0
This commit is contained in:
parent
e9a9293516
commit
8f996d54d6
2 changed files with 18 additions and 7 deletions
|
@ -262,9 +262,12 @@ acb_dft_bluestein_init(acb_dft_bluestein_t t, slong n, slong prec)
|
|||
ACB_DFT_INLINE void
|
||||
acb_dft_bluestein_clear(acb_dft_bluestein_t t)
|
||||
{
|
||||
_acb_vec_clear(t->z, t->n);
|
||||
_acb_vec_clear(t->g, t->rad2->n);
|
||||
acb_dft_rad2_clear(t->rad2);
|
||||
if (t->n != 0)
|
||||
{
|
||||
_acb_vec_clear(t->z, t->n);
|
||||
_acb_vec_clear(t->g, t->rad2->n);
|
||||
acb_dft_rad2_clear(t->rad2);
|
||||
}
|
||||
}
|
||||
|
||||
void _acb_dft_crt_init(acb_dft_crt_t crt, slong dv, slong len, slong prec);
|
||||
|
|
|
@ -88,16 +88,21 @@ _acb_dft_bluestein_init(acb_dft_bluestein_t t, slong dv, slong n, slong prec)
|
|||
{
|
||||
acb_ptr z, g;
|
||||
slong k, n2;
|
||||
int e = n_clog(2 * n - 1, 2);
|
||||
int e;
|
||||
|
||||
t->n = n;
|
||||
t->dv = dv;
|
||||
|
||||
if (n == 0)
|
||||
return;
|
||||
|
||||
e = n_clog(2 * n - 1, 2);
|
||||
|
||||
if (DFT_VERB)
|
||||
flint_printf("dft_bluestein: init z[2^%i]\n", e);
|
||||
|
||||
acb_dft_rad2_init(t->rad2, e, prec);
|
||||
|
||||
t->n = n;
|
||||
t->dv = dv;
|
||||
|
||||
t->z = z = _acb_vec_init(n);
|
||||
_acb_vec_bluestein_factors(t->z, n, prec);
|
||||
|
||||
|
@ -118,6 +123,9 @@ acb_dft_bluestein_precomp(acb_ptr w, acb_srcptr v, const acb_dft_bluestein_t t,
|
|||
slong n = t->n, np = t->rad2->n, dv = t->dv;
|
||||
acb_ptr fp;
|
||||
|
||||
if (n == 0)
|
||||
return;
|
||||
|
||||
fp = _acb_vec_init(np);
|
||||
_acb_vec_kronecker_mul_step(fp, t->z, v, dv, n, prec);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue