taylor_shift
関数 · 形式的冪級数 (FPS)
template <internal::static_modint_c mint>
std::vector<mint> taylor_shift(std::vector<mint> f, mint c);
概要
Taylor shift (係数の平行移動)
$f(x)$ の係数から $g(x) = f(x + c)$ の係数を求める。$f_i$ に $i!$ を掛けて反転し、 $c^j / j!$ との畳み込みの中央部を取り出す標準的な手法。
テンプレートパラメータ
| 名前 | 説明 |
|---|---|
mint |
static modint |
パラメータ
| 名前 | 説明 |
|---|---|
f |
係数列 $f(x)$ |
c |
シフト量 |
戻り値
std::vector<mint> $f(x + c)$ の係数列(f と同じ長さ)
計算量
- $n = |f|$ として $O(n \log n)$
関連項目
plus— 形式的冪級数の加算inv— 逆元 $1 / h \pmod{x^{deg}}$log— 対数 $\log h \pmod{x^{deg}}$exp— 指数 $\exp h \pmod{x^{deg}}$pow— 冪乗 $h^m \pmod{x^{deg}}$sqrt— 平方根 $\sqrt h \pmod{x^{deg}}$composition— 合成 (composition) $f(g(x)) \pmod{x^{deg}}$compositional_inverse— 合成逆 (compositional inverse) $g \pmod{x^{deg}}$div_mod— 多項式の除算 (商と剰余)div— 多項式の商 f / gmod— 多項式の剰余 f mod gmultipoint_evaluation— 多点評価polynomial_interpolation— 多項式補間 (ラグランジュ補間)shift_of_sampling_points— 標本点のシフト (shift of sampling points)inv_of_polynomials— 多項式の逆元 (modular inverse of polynomials)