nttskip.cc
来自「the FXT library: fast transforms and low」· CC 代码 · 共 62 行
CC
62 行
#include "fxttypes.h"#include "ntt.h"#include "bit2pow.h" // ld()#define MOD_FFT(f, n, is) ntt_dit4(f, ld(n), is)#define MOD_FFT0(f, n, is) ntt_dit4(f, ld(n), is)voidskip_ntt(mod *f, ulong n, ulong d, mod *w, int is)//// compute ntt of the n elements// [0], [d], [2d], [3d], ..., [(n-1)*d]//{ ulong k, j; for (k=0, j=0; k<n*d; k+=d, j++) // fill workspace { w[j] = f[k]; } MOD_FFT(w, n, is); // do MOD_FFT for (k=0, j=0; k<n*d; k+=d, j++) // write back { f[k] = w[j]; }}// -------------------------voidskip_ntt0(mod *f, ulong n, ulong d, mod *w, int is)//// compute ntt of the n elements// [0], [d], [2d], [3d], ..., [(n-1)*d]//{ ulong k, j; for (k=0, j=0; k<(n*d)/2; k+=d, j++) // fill workspace { w[j] = f[k]; } for ( ; k<n*d; j++) // fill in zeros { w[j] = mod::zero; } MOD_FFT0(w, n, is); // do MOD_FFT for (k=0, j=0; k<n*d; k+=d, j++) // write back { f[k] = w[j]; }}// -------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?