diff options
| author | Noobie99 <noob999noob999@gmail.com> | 2024-02-05 22:23:53 +0100 |
|---|---|---|
| committer | Noobie99 <noob999noob999@gmail.com> | 2024-02-05 22:23:53 +0100 |
| commit | f4dafa64e27e63d8cde5adcfbfa98e2a30fb7504 (patch) | |
| tree | 936fc0e98ac7e1ff6222b7657fb4a6b90d798080 /math/transforms/multiplyFFT.cpp | |
| parent | 631335a9c1dd0fba0e17977253d0a4b033aee59a (diff) | |
renamed ntt and bitwiseConv function + more multiply functions
Diffstat (limited to 'math/transforms/multiplyFFT.cpp')
| -rw-r--r-- | math/transforms/multiplyFFT.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/math/transforms/multiplyFFT.cpp b/math/transforms/multiplyFFT.cpp new file mode 100644 index 0000000..0022d1f --- /dev/null +++ b/math/transforms/multiplyFFT.cpp @@ -0,0 +1,12 @@ +vector<ll> mul(vector<ll>& a, vector<ll>& b) { + int n = 1 << (__lg(sz(a) + sz(b) - 1) + 1); + vector<cplx> a2(all(a)), b2(all(b)); + a2.resize(n), b2.resize(n); + fft(a2), fft(b2); + for (int i=0; i<n; i++) a2[i] *= b2[i]; + fft(a2, true); + + vector<ll> ans(n); + for (int i=0; i<n; i++) ans[i] = llround(a2[i].real()); + return ans; +} |
