From 102e1dfaed9720ef2151288317903473506221d8 Mon Sep 17 00:00:00 2001 From: mzuenni Date: Fri, 22 Aug 2025 18:21:28 +0200 Subject: added generating functions stuff --- content/math/transforms/seriesOperations.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'content/math/transforms') diff --git a/content/math/transforms/seriesOperations.cpp b/content/math/transforms/seriesOperations.cpp index b405698..d3e3072 100644 --- a/content/math/transforms/seriesOperations.cpp +++ b/content/math/transforms/seriesOperations.cpp @@ -1,4 +1,4 @@ -vector poly_inv(const vector& a, int n) { +vector poly_inv(const vector& a, int n) { // a[0] == 1 vector q = {powMod(a[0], mod-2, mod)}; for (int len = 1; len < n; len *= 2){ vector a2 = a, q2 = q; @@ -35,13 +35,13 @@ vector poly_integr(vector a) { return a; } -vector poly_log(vector a, int n) { +vector poly_log(vector a, int n) { // a[0] == 1 a = mul(poly_deriv(a), poly_inv(a, n)); a.resize(n-1); return poly_integr(a); } -vector poly_exp(vector a, int n) { +vector poly_exp(vector a, int n) { // a[0] == 0 vector q = {1}; for (int len = 1; len < n; len *= 2) { vector p = poly_log(q, 2*len); -- cgit v1.2.3 From 36ed3271d766dea4498170872079a5e8c2d82698 Mon Sep 17 00:00:00 2001 From: mzuenni Date: Mon, 22 Sep 2025 17:37:13 +0200 Subject: shortened transform --- content/math/transforms/andTransform.cpp | 2 +- content/math/transforms/bitwiseTransforms.cpp | 4 ++-- content/math/transforms/orTransform.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'content/math/transforms') diff --git a/content/math/transforms/andTransform.cpp b/content/math/transforms/andTransform.cpp index 1fd9f5c..93a323a 100644 --- a/content/math/transforms/andTransform.cpp +++ b/content/math/transforms/andTransform.cpp @@ -4,5 +4,5 @@ void fft(vector& a, bool inv = false) { for (int i = 0; i < n; i += 2 * s) { for (int j = i; j < i + s; j++) { ll& u = a[j], &v = a[j + s]; - tie(u, v) = inv ? pair(v - u, u) : pair(v, u + v); + u = inv ? u - v : u + v; }}}} diff --git a/content/math/transforms/bitwiseTransforms.cpp b/content/math/transforms/bitwiseTransforms.cpp index 28561da..fbe3792 100644 --- a/content/math/transforms/bitwiseTransforms.cpp +++ b/content/math/transforms/bitwiseTransforms.cpp @@ -4,8 +4,8 @@ void bitwiseConv(vector& a, bool inv = false) { for (int i = 0; i < n; i += 2 * s) { for (int j = i; j < i + s; j++) { ll& u = a[j], &v = a[j + s]; - tie(u, v) = inv ? pair(v - u, u) : pair(v, u + v); // AND - //tie(u, v) = inv ? pair(v, u - v) : pair(u + v, u); //OR + u = inv ? u - v : u + v; // AND + //v = inv ? v - u : v + u; // OR //tie(u, v) = pair(u + v, u - v); // XOR }}} //if (inv) for (ll& x : a) x /= n; // XOR (careful with MOD) diff --git a/content/math/transforms/orTransform.cpp b/content/math/transforms/orTransform.cpp index eb1da44..60b4426 100644 --- a/content/math/transforms/orTransform.cpp +++ b/content/math/transforms/orTransform.cpp @@ -4,5 +4,5 @@ void fft(vector& a, bool inv = false) { for (int i = 0; i < n; i += 2 * s) { for (int j = i; j < i + s; j++) { ll& u = a[j], &v = a[j + s]; - tie(u, v) = inv ? pair(v, u - v) : pair(u + v, u); + v = inv ? v - u : v + u; }}}} -- cgit v1.2.3