This documentation is automatically generated by competitive-verifier/competitive-verifier
#include "lib/fft/garner.hpp"#pragma once
#include <cstdint>
#include <vector>
#include "internal/internal_math.hpp"
template <class T>
int garner(std::vector<T> r, std::vector<int> m, const int mod) {
int n = r.size();
r.emplace_back(0);
m.emplace_back(mod);
std::vector<std::int64_t> coffs(n + 1, 1);
std::vector<std::int64_t> constants(n + 1, 0);
for (int i = 0; i < n; ++i) {
int v = (r[i] - constants[i]) * inv_mod(coffs[i], m[i]) % m[i];
if (v < 0) v += m[i];
for (int j = i + 1; j < n + 1; ++j) {
(constants[j] += coffs[j] * v) %= m[j];
(coffs[j] *= m[i]) %= m[j];
}
}
return constants[n];
}
template <int mod>
int garner(std::vector<int> r, std::vector<int> m) {
int n = r.size();
r.emplace_back(0);
m.emplace_back(mod);
std::vector<std::int64_t> coffs(n + 1, 1);
std::vector<std::int64_t> constants(n + 1, 0);
for (int i = 0; i < n; ++i) {
int v = (r[i] - constants[i]) * internal::inv_gcd(coffs[i], m[i]).second % m[i];
if (v < 0) v += m[i];
for (int j = i + 1; j < n + 1; ++j) {
(constants[j] += coffs[j] * v) %= m[j];
(coffs[j] *= m[i]) %= m[j];
}
}
return constants[n];
}
Traceback (most recent call last):
File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/resolver.py", line 291, in resolve
bundled_code = language.bundle(path, basedir=basedir)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus.py", line 242, in bundle
bundler.update(path)
File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus_bundle.py", line 479, in update
self._resolve(pathlib.Path(included), included_from=path)
File "/home/runner/.local/lib/python3.12/site-packages/competitive_verifier/oj/verify/languages/cplusplus_bundle.py", line 286, in _resolve
raise BundleErrorAt(path, -1, "no such header")
competitive_verifier.oj.verify.languages.cplusplus_bundle.BundleErrorAt: internal/internal_math.hpp: line -1: no such header