bostan_mori
関数 · きたまさ法(任意可換環版、$O(k^2 \log n)$)
template <internal::static_modint_c mint>
mint bostan_mori(std::vector<mint> p, std::vector<mint> q, std::int64_t n);
概要
Bostan-Mori 法
有理形式的冪級数 $p(x)/q(x)$ の $x^n$ の係数を $O(M(d) \log n)$ で求める ($d = \deg q$、$M$ はサイズ $d$ の畳み込みコスト)。各ステップで $q(-x)$ の順変換を 共有し、AVX2 が使える NTT-friendly な mint なら Montgomery + AVX2 NTT を使う。
テンプレートパラメータ
| 名前 | 説明 |
|---|---|
mint |
NTT-friendly な static modint |
パラメータ
| 名前 | 説明 |
|---|---|
p |
分子の係数列 |
q |
分母の係数列(q[0] != 0) |
n |
求める項の番号($n < 0$ なら $0$) |
戻り値
mint $p(x)/q(x)$ の $x^n$ の係数
計算量
- 多項式次数を $d$ として $O(d \log d \log n)$