From 299f7f54506da06ada32750377c5ae168ebd37f6 Mon Sep 17 00:00:00 2001 From: GitHub Date: Thu, 5 Sep 2024 11:15:44 +0000 Subject: [PATCH] [auto-verifier] docs commit 5169250ef4816f6bdb9a488957807bf5c1b0c9b6 --- fps/FPS_differetial.hpp.md | 18 ++++---- fps/FPS_exp.hpp.md | 18 ++++---- fps/FPS_inverse.hpp.md | 18 ++++---- fps/FPS_log.hpp.md | 4 +- fps/FPS_pow.hpp.md | 18 ++++---- fps/Multipoint_Evaluation.hpp.md | 8 ++-- fps/Multipoint_Evaluation_Geo.hpp.md | 47 ++++++++++---------- test/fps/comp_inverse.test.cpp.md | 18 ++++---- test/fps/exp.test.cpp.md | 18 ++++---- test/fps/multpoint_evalution.test.cpp.md | 4 +- test/fps/multpoint_evalution_geo.test.cpp.md | 6 +-- test/fps/pow.test.cpp.md | 18 ++++---- 12 files changed, 97 insertions(+), 98 deletions(-) diff --git a/fps/FPS_differetial.hpp.md b/fps/FPS_differetial.hpp.md index 64eaa64..9809e75 100644 --- a/fps/FPS_differetial.hpp.md +++ b/fps/FPS_differetial.hpp.md @@ -30,14 +30,14 @@ data: attributes: links: [] bundledCode: "#line 2 \"fps/FPS_differetial.hpp\"\n#include \n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n" - code: "#pragma once\n#include \n\nnamespace po167{\ntemplate \n\ - std::vector FPS_differential(std::vector f){\n if (f.empty()) return\ - \ f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n f[i] = f[i + 1]\ - \ * (T)(i + 1);\n }\n f.pop_back();\n return f;\n}\n}" + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n" + code: "#pragma once\n#include \n\nnamespace po167{\n// return f'\ntemplate\ + \ \nstd::vector FPS_differential(std::vector f){\n if (f.empty())\ + \ return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n f[i] =\ + \ f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n}\n}" dependsOn: [] isVerificationFile: false path: fps/FPS_differetial.hpp @@ -46,7 +46,7 @@ data: - fps/FPS_log.hpp - fps/FPS_inverse.hpp - fps/FPS_pow.hpp - timestamp: '2024-06-19 00:51:37+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/comp_inverse.test.cpp diff --git a/fps/FPS_exp.hpp.md b/fps/FPS_exp.hpp.md index b5f0bd9..24bb172 100644 --- a/fps/FPS_exp.hpp.md +++ b/fps/FPS_exp.hpp.md @@ -42,14 +42,14 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 3 \"fps/FPS_differetial.hpp\"\n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate \n\ - std::vector FPS_integral(std::vector f){\n if (f.empty()) return f;\n\ - \ std::vector num_inv((int)f.size() + 1);\n num_inv[0] = 1;\n num_inv[1]\ - \ = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size(); i++){\n\ - \ num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ + \ \nstd::vector FPS_integral(std::vector f){\n if (f.empty())\ + \ return f;\n std::vector num_inv((int)f.size() + 1);\n num_inv[0] =\ + \ 1;\n num_inv[1] = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size();\ + \ i++){\n num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ \ + 1);\n f.push_back(0);\n for (int i = (int)f.size() - 1; i > 0; i--){\n\ \ f[i] = f[i - 1] * num_inv[i];\n }\n f[0] = 0;\n return f;\n\ }\n}\n#line 4 \"fps/FPS_inv.hpp\"\n\nnamespace po167{\n// return 1 / f\ntemplate\ @@ -108,7 +108,7 @@ data: requiredBy: - fps/FPS_inverse.hpp - fps/FPS_pow.hpp - timestamp: '2024-06-19 01:01:33+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/comp_inverse.test.cpp diff --git a/fps/FPS_inverse.hpp.md b/fps/FPS_inverse.hpp.md index 68e8311..9a41ab8 100644 --- a/fps/FPS_inverse.hpp.md +++ b/fps/FPS_inverse.hpp.md @@ -42,14 +42,14 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 3 \"fps/FPS_differetial.hpp\"\n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate \n\ - std::vector FPS_integral(std::vector f){\n if (f.empty()) return f;\n\ - \ std::vector num_inv((int)f.size() + 1);\n num_inv[0] = 1;\n num_inv[1]\ - \ = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size(); i++){\n\ - \ num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ + \ \nstd::vector FPS_integral(std::vector f){\n if (f.empty())\ + \ return f;\n std::vector num_inv((int)f.size() + 1);\n num_inv[0] =\ + \ 1;\n num_inv[1] = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size();\ + \ i++){\n num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ \ + 1);\n f.push_back(0);\n for (int i = (int)f.size() - 1; i > 0; i--){\n\ \ f[i] = f[i - 1] * num_inv[i];\n }\n f[0] = 0;\n return f;\n\ }\n}\n#line 4 \"fps/FPS_inv.hpp\"\n\nnamespace po167{\n// return 1 / f\ntemplate\ @@ -170,7 +170,7 @@ data: isVerificationFile: false path: fps/FPS_inverse.hpp requiredBy: [] - timestamp: '2024-06-24 02:01:01+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/comp_inverse.test.cpp diff --git a/fps/FPS_log.hpp.md b/fps/FPS_log.hpp.md index cf0c0fd..c02ef0f 100644 --- a/fps/FPS_log.hpp.md +++ b/fps/FPS_log.hpp.md @@ -27,7 +27,7 @@ data: attributes: links: [] bundledCode: "#line 2 \"fps/FPS_log.hpp\"\n#include \n#line 3 \"fps/FPS_differetial.hpp\"\ - \n\nnamespace po167{\ntemplate \nstd::vector FPS_differential(std::vector\ + \n\nnamespace po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ @@ -58,7 +58,7 @@ data: requiredBy: - fps/FPS_inverse.hpp - fps/FPS_pow.hpp - timestamp: '2024-06-19 00:51:37+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/comp_inverse.test.cpp diff --git a/fps/FPS_pow.hpp.md b/fps/FPS_pow.hpp.md index 8ab2a72..abc3a63 100644 --- a/fps/FPS_pow.hpp.md +++ b/fps/FPS_pow.hpp.md @@ -36,14 +36,14 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 3 \"fps/FPS_differetial.hpp\"\n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate \n\ - std::vector FPS_integral(std::vector f){\n if (f.empty()) return f;\n\ - \ std::vector num_inv((int)f.size() + 1);\n num_inv[0] = 1;\n num_inv[1]\ - \ = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size(); i++){\n\ - \ num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ + \ \nstd::vector FPS_integral(std::vector f){\n if (f.empty())\ + \ return f;\n std::vector num_inv((int)f.size() + 1);\n num_inv[0] =\ + \ 1;\n num_inv[1] = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size();\ + \ i++){\n num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ \ + 1);\n f.push_back(0);\n for (int i = (int)f.size() - 1; i > 0; i--){\n\ \ f[i] = f[i - 1] * num_inv[i];\n }\n f[0] = 0;\n return f;\n\ }\n}\n#line 4 \"fps/FPS_inv.hpp\"\n\nnamespace po167{\n// return 1 / f\ntemplate\ @@ -119,7 +119,7 @@ data: isVerificationFile: false path: fps/FPS_pow.hpp requiredBy: [] - timestamp: '2024-06-20 02:45:45+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/pow.test.cpp diff --git a/fps/Multipoint_Evaluation.hpp.md b/fps/Multipoint_Evaluation.hpp.md index df0fcc6..f27dbff 100644 --- a/fps/Multipoint_Evaluation.hpp.md +++ b/fps/Multipoint_Evaluation.hpp.md @@ -50,7 +50,7 @@ data: \ for (int i = 0; i < (int)f.size(); i++) r[i] -= f[i];\n while (!q.empty()\ \ && q.back() == 0) q.pop_back();\n while (!r.empty() && r.back() == 0) r.pop_back();\n\ \ return {q, r};\n}\n}\n#line 4 \"fps/Multipoint_Evaluation.hpp\"\n\nnamespace\ - \ po167{\ntemplate \n// return {f(p[0]), f(p[1]), f(p[2]), ... }\nstd::vector\ + \ po167{\n// return {f(p[0]), f(p[1]), f(p[2]), ... }\ntemplate \nstd::vector\ \ Multipoint_Evaluation(\n std::vector f,\n std::vector p\n){\n \ \ int m = p.size();\n if (m == 0) return {};\n if (m == 1){\n T\ \ res = 0;\n T tmp = 1;\n for (auto x : f) res += tmp * x, tmp *=\ @@ -67,8 +67,8 @@ data: \ ind * 2 + 1, po167::FPS_division(tmp, prod[ind * 2 + 1]).second);\n };calc(calc,\ \ 0, size, 1, f);\n return res;\n}\n}\n" code: "#pragma once\n#include \n#include \"FPS_division.hpp\"\ - \n\nnamespace po167{\ntemplate \n// return {f(p[0]), f(p[1]), f(p[2]),\ - \ ... }\nstd::vector Multipoint_Evaluation(\n std::vector f,\n std::vector\ + \n\nnamespace po167{\n// return {f(p[0]), f(p[1]), f(p[2]), ... }\ntemplate \nstd::vector Multipoint_Evaluation(\n std::vector f,\n std::vector\ \ p\n){\n int m = p.size();\n if (m == 0) return {};\n if (m == 1){\n\ \ T res = 0;\n T tmp = 1;\n for (auto x : f) res += tmp *\ \ x, tmp *= p[0];\n return {res};\n }\n int size = 1;\n while\ @@ -89,7 +89,7 @@ data: isVerificationFile: false path: fps/Multipoint_Evaluation.hpp requiredBy: [] - timestamp: '2024-09-05 05:56:40+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/multpoint_evalution.test.cpp diff --git a/fps/Multipoint_Evaluation_Geo.hpp.md b/fps/Multipoint_Evaluation_Geo.hpp.md index aa6ad03..9a40992 100644 --- a/fps/Multipoint_Evaluation_Geo.hpp.md +++ b/fps/Multipoint_Evaluation_Geo.hpp.md @@ -21,8 +21,8 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 2 \"fps/Multipoint_Evaluation_Geo.hpp\"\ - \nnamespace po167{\ntemplate \n// return {f(ar^0), f(ar^1), f(ar^2),\ - \ ... f(ar^{len - 1})}\nstd::vector Multipoint_Evaluation_Geo(\n std::vector\ + \nnamespace po167{\n// return {f(ar^0), f(ar^1), f(ar^2), ... f(ar^{len - 1})}\n\ + template \nstd::vector Multipoint_Evaluation_Geo(\n std::vector\ \ f,\n T a, T r, int len = -1\n){\n if (len == -1) len = f.size();\n \ \ if (r == 0){\n T tmp = 1;\n std::vector res(len, f[0]);\n \ \ for (int i = 1; i < (int)f.size(); i++){\n tmp *= a;\n \ @@ -41,33 +41,32 @@ data: \ i++){\n res[i - n + 1] = f[i];\n }\n tmpr1 = 1, tmpr2 = 1;\n \ \ for (int i = 0; i < len; i++){\n res[i] *= tmpr2;\n tmpr2 *=\ \ tmpr1;\n tmpr1 *= invr;\n }\n return res;\n}\n}\n" - code: "#include \"FPS_cyclic_convolution.hpp\"\nnamespace po167{\ntemplate \n// return {f(ar^0), f(ar^1), f(ar^2), ... f(ar^{len - 1})}\nstd::vector\ - \ Multipoint_Evaluation_Geo(\n std::vector f,\n T a, T r, int len = -1\n\ - ){\n if (len == -1) len = f.size();\n if (r == 0){\n T tmp = 1;\n\ - \ std::vector res(len, f[0]);\n for (int i = 1; i < (int)f.size();\ - \ i++){\n tmp *= a;\n res[0] += tmp * f[i];\n }\n\ - \ return res;\n }\n /*\n X[k] = sum (fi * (ar^k)^i)\n \ - \ = sum (fi * a^i * r^{ki})\n = sum (fi * a^i * r^t[k + i] * r^-t[k] *\ - \ r^-t[i])\n = r^-t[k] sum r^t[k + i](fi * a^i * r^-t[i])\n */\n \ - \ int n = f.size();\n T invr = (T)(1) / (T)(r);\n T tmp = 1, tmpr1 = 1,\ - \ tmpr2 = 1;\n for (int i = 0; i < n; i++){\n f[i] *= tmp * tmpr2;\n\ - \ tmpr2 *= tmpr1;\n tmpr1 *= invr;\n tmp *= a;\n }\n \ - \ std::vector g(n + len - 1);\n tmpr1 = 1, tmpr2 = 1;\n for (int i\ - \ = 0; i < n + len - 1; i++){\n g[i] = tmpr2;\n tmpr2 *= tmpr1;\n\ - \ tmpr1 *= r;\n }\n std::reverse(f.begin(), f.end());\n int size\ - \ = 1;\n while (size < n + len - 1) size *= 2;\n f.resize(size);\n g.resize(size);\n\ - \ f = po167::FPS_cyclic_convolution(f, g);\n std::vector res(len);\n\ - \ for (int i = n - 1; i < n + len - 1; i++){\n res[i - n + 1] = f[i];\n\ - \ }\n tmpr1 = 1, tmpr2 = 1;\n for (int i = 0; i < len; i++){\n \ - \ res[i] *= tmpr2;\n tmpr2 *= tmpr1;\n tmpr1 *= invr;\n }\n\ - \ return res;\n}\n}\n" + code: "#include \"FPS_cyclic_convolution.hpp\"\nnamespace po167{\n// return {f(ar^0),\ + \ f(ar^1), f(ar^2), ... f(ar^{len - 1})}\ntemplate \nstd::vector Multipoint_Evaluation_Geo(\n\ + \ std::vector f,\n T a, T r, int len = -1\n){\n if (len == -1) len\ + \ = f.size();\n if (r == 0){\n T tmp = 1;\n std::vector res(len,\ + \ f[0]);\n for (int i = 1; i < (int)f.size(); i++){\n tmp *=\ + \ a;\n res[0] += tmp * f[i];\n }\n return res;\n }\n\ + \ /*\n X[k] = sum (fi * (ar^k)^i)\n = sum (fi * a^i * r^{ki})\n\ + \ = sum (fi * a^i * r^t[k + i] * r^-t[k] * r^-t[i])\n = r^-t[k]\ + \ sum r^t[k + i](fi * a^i * r^-t[i])\n */\n int n = f.size();\n T invr\ + \ = (T)(1) / (T)(r);\n T tmp = 1, tmpr1 = 1, tmpr2 = 1;\n for (int i = 0;\ + \ i < n; i++){\n f[i] *= tmp * tmpr2;\n tmpr2 *= tmpr1;\n \ + \ tmpr1 *= invr;\n tmp *= a;\n }\n std::vector g(n + len - 1);\n\ + \ tmpr1 = 1, tmpr2 = 1;\n for (int i = 0; i < n + len - 1; i++){\n \ + \ g[i] = tmpr2;\n tmpr2 *= tmpr1;\n tmpr1 *= r;\n }\n std::reverse(f.begin(),\ + \ f.end());\n int size = 1;\n while (size < n + len - 1) size *= 2;\n \ + \ f.resize(size);\n g.resize(size);\n f = po167::FPS_cyclic_convolution(f,\ + \ g);\n std::vector res(len);\n for (int i = n - 1; i < n + len - 1;\ + \ i++){\n res[i - n + 1] = f[i];\n }\n tmpr1 = 1, tmpr2 = 1;\n \ + \ for (int i = 0; i < len; i++){\n res[i] *= tmpr2;\n tmpr2 *=\ + \ tmpr1;\n tmpr1 *= invr;\n }\n return res;\n}\n}\n" dependsOn: - fps/FPS_cyclic_convolution.hpp isVerificationFile: false path: fps/Multipoint_Evaluation_Geo.hpp requiredBy: [] - timestamp: '2024-09-05 06:08:07+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: LIBRARY_ALL_AC verifiedWith: - test/fps/multpoint_evalution_geo.test.cpp diff --git a/test/fps/comp_inverse.test.cpp.md b/test/fps/comp_inverse.test.cpp.md index 32c7825..a6f569d 100644 --- a/test/fps/comp_inverse.test.cpp.md +++ b/test/fps/comp_inverse.test.cpp.md @@ -46,14 +46,14 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 3 \"fps/FPS_differetial.hpp\"\n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate \n\ - std::vector FPS_integral(std::vector f){\n if (f.empty()) return f;\n\ - \ std::vector num_inv((int)f.size() + 1);\n num_inv[0] = 1;\n num_inv[1]\ - \ = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size(); i++){\n\ - \ num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ + \ \nstd::vector FPS_integral(std::vector f){\n if (f.empty())\ + \ return f;\n std::vector num_inv((int)f.size() + 1);\n num_inv[0] =\ + \ 1;\n num_inv[1] = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size();\ + \ i++){\n num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ \ + 1);\n f.push_back(0);\n for (int i = (int)f.size() - 1; i > 0; i--){\n\ \ f[i] = f[i - 1] * num_inv[i];\n }\n f[0] = 0;\n return f;\n\ }\n}\n#line 4 \"fps/FPS_inv.hpp\"\n\nnamespace po167{\n// return 1 / f\ntemplate\ @@ -174,7 +174,7 @@ data: isVerificationFile: true path: test/fps/comp_inverse.test.cpp requiredBy: [] - timestamp: '2024-07-15 01:10:25+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: test/fps/comp_inverse.test.cpp diff --git a/test/fps/exp.test.cpp.md b/test/fps/exp.test.cpp.md index cd6e2b6..0faa1d5 100644 --- a/test/fps/exp.test.cpp.md +++ b/test/fps/exp.test.cpp.md @@ -34,14 +34,14 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 3 \"fps/FPS_differetial.hpp\"\n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate \n\ - std::vector FPS_integral(std::vector f){\n if (f.empty()) return f;\n\ - \ std::vector num_inv((int)f.size() + 1);\n num_inv[0] = 1;\n num_inv[1]\ - \ = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size(); i++){\n\ - \ num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ + \ \nstd::vector FPS_integral(std::vector f){\n if (f.empty())\ + \ return f;\n std::vector num_inv((int)f.size() + 1);\n num_inv[0] =\ + \ 1;\n num_inv[1] = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size();\ + \ i++){\n num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ \ + 1);\n f.push_back(0);\n for (int i = (int)f.size() - 1; i > 0; i--){\n\ \ f[i] = f[i - 1] * num_inv[i];\n }\n f[0] = 0;\n return f;\n\ }\n}\n#line 4 \"fps/FPS_inv.hpp\"\n\nnamespace po167{\n// return 1 / f\ntemplate\ @@ -96,7 +96,7 @@ data: isVerificationFile: true path: test/fps/exp.test.cpp requiredBy: [] - timestamp: '2024-06-19 01:08:42+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: test/fps/exp.test.cpp diff --git a/test/fps/multpoint_evalution.test.cpp.md b/test/fps/multpoint_evalution.test.cpp.md index 90a7c32..9866ae7 100644 --- a/test/fps/multpoint_evalution.test.cpp.md +++ b/test/fps/multpoint_evalution.test.cpp.md @@ -55,7 +55,7 @@ data: \ for (int i = 0; i < (int)f.size(); i++) r[i] -= f[i];\n while (!q.empty()\ \ && q.back() == 0) q.pop_back();\n while (!r.empty() && r.back() == 0) r.pop_back();\n\ \ return {q, r};\n}\n}\n#line 4 \"fps/Multipoint_Evaluation.hpp\"\n\nnamespace\ - \ po167{\ntemplate \n// return {f(p[0]), f(p[1]), f(p[2]), ... }\nstd::vector\ + \ po167{\n// return {f(p[0]), f(p[1]), f(p[2]), ... }\ntemplate \nstd::vector\ \ Multipoint_Evaluation(\n std::vector f,\n std::vector p\n){\n \ \ int m = p.size();\n if (m == 0) return {};\n if (m == 1){\n T\ \ res = 0;\n T tmp = 1;\n for (auto x : f) res += tmp * x, tmp *=\ @@ -95,7 +95,7 @@ data: isVerificationFile: true path: test/fps/multpoint_evalution.test.cpp requiredBy: [] - timestamp: '2024-09-05 05:56:40+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: test/fps/multpoint_evalution.test.cpp diff --git a/test/fps/multpoint_evalution_geo.test.cpp.md b/test/fps/multpoint_evalution_geo.test.cpp.md index 4c3485b..bb74045 100644 --- a/test/fps/multpoint_evalution_geo.test.cpp.md +++ b/test/fps/multpoint_evalution_geo.test.cpp.md @@ -25,8 +25,8 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 2 \"fps/Multipoint_Evaluation_Geo.hpp\"\ - \nnamespace po167{\ntemplate \n// return {f(ar^0), f(ar^1), f(ar^2),\ - \ ... f(ar^{len - 1})}\nstd::vector Multipoint_Evaluation_Geo(\n std::vector\ + \nnamespace po167{\n// return {f(ar^0), f(ar^1), f(ar^2), ... f(ar^{len - 1})}\n\ + template \nstd::vector Multipoint_Evaluation_Geo(\n std::vector\ \ f,\n T a, T r, int len = -1\n){\n if (len == -1) len = f.size();\n \ \ if (r == 0){\n T tmp = 1;\n std::vector res(len, f[0]);\n \ \ for (int i = 1; i < (int)f.size(); i++){\n tmp *= a;\n \ @@ -67,7 +67,7 @@ data: isVerificationFile: true path: test/fps/multpoint_evalution_geo.test.cpp requiredBy: [] - timestamp: '2024-09-05 06:08:07+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: test/fps/multpoint_evalution_geo.test.cpp diff --git a/test/fps/pow.test.cpp.md b/test/fps/pow.test.cpp.md index a9bbec0..1df1e41 100644 --- a/test/fps/pow.test.cpp.md +++ b/test/fps/pow.test.cpp.md @@ -40,14 +40,14 @@ data: \ for (int i = 0; i < (int)f.size(); i++) f[i] *= g[i];\n atcoder::internal::butterfly_inv(f);\n\ \ T iz = (T)(1) / (T)(f.size());\n for (int i = 0; i < (int)f.size(); i++)\ \ f[i] *= iz;\n return f;\n}\n}\n#line 3 \"fps/FPS_differetial.hpp\"\n\nnamespace\ - \ po167{\ntemplate \nstd::vector FPS_differential(std::vector f){\n\ - \ if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1; i++){\n\ - \ f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n return f;\n\ - }\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate \n\ - std::vector FPS_integral(std::vector f){\n if (f.empty()) return f;\n\ - \ std::vector num_inv((int)f.size() + 1);\n num_inv[0] = 1;\n num_inv[1]\ - \ = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size(); i++){\n\ - \ num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ + \ po167{\n// return f'\ntemplate \nstd::vector FPS_differential(std::vector\ + \ f){\n if (f.empty()) return f;\n for (int i = 0; i < (int)f.size() - 1;\ + \ i++){\n f[i] = f[i + 1] * (T)(i + 1);\n }\n f.pop_back();\n \ + \ return f;\n}\n}\n#line 3 \"fps/FPS_integral.hpp\"\n\nnamespace po167{\ntemplate\ + \ \nstd::vector FPS_integral(std::vector f){\n if (f.empty())\ + \ return f;\n std::vector num_inv((int)f.size() + 1);\n num_inv[0] =\ + \ 1;\n num_inv[1] = 1;\n auto m = T::mod();\n for (int i = 2; i <= (int)f.size();\ + \ i++){\n num_inv[i] = (0 - num_inv[m % i]) * (T)(m / i);\n }\n f.reserve((int)f.size()\ \ + 1);\n f.push_back(0);\n for (int i = (int)f.size() - 1; i > 0; i--){\n\ \ f[i] = f[i - 1] * num_inv[i];\n }\n f[0] = 0;\n return f;\n\ }\n}\n#line 4 \"fps/FPS_inv.hpp\"\n\nnamespace po167{\n// return 1 / f\ntemplate\ @@ -125,7 +125,7 @@ data: isVerificationFile: true path: test/fps/pow.test.cpp requiredBy: [] - timestamp: '2024-06-20 02:45:45+09:00' + timestamp: '2024-09-05 20:11:34+09:00' verificationStatus: TEST_ACCEPTED verifiedWith: [] documentation_of: test/fps/pow.test.cpp