maomao90's Library
A C++20 library for competitive programming.
Loading...
Searching...
No Matches
maomao90::internal::poly::ntt Namespace Reference

Classes

struct  ntt_info
 

Functions

template<StaticModInt mint>
void butterfly (vector< mint > &a)
 
template<StaticModInt mint>
void butterfly_inv (vector< mint > &a)
 
template<StaticModInt mint>
vector< mint > convolution_ntt (vector< mint > a, vector< mint > b)
 
template<StaticModInt mint>
vector< mint > convolution (const vector< mint > &a, const vector< mint > &b)
 
template<int mod, class T>
requires is_integral_v<T>
vector< T > convolution (const vector< T > &a, const vector< T > &b)
 
vector< long long > convolution_ll (const vector< long long > &a, const vector< long long > &b)
 
template<ModInt mint>
vector< mint > convolution_arb_mod (const vector< mint > &a, const vector< mint > &b)
 

Function Documentation

◆ butterfly()

template<StaticModInt mint>
void maomao90::internal::poly::ntt::butterfly ( vector< mint > & a)

◆ butterfly_inv()

template<StaticModInt mint>
void maomao90::internal::poly::ntt::butterfly_inv ( vector< mint > & a)

◆ convolution_ntt()

template<StaticModInt mint>
vector< mint > maomao90::internal::poly::ntt::convolution_ntt ( vector< mint > a,
vector< mint > b )

◆ convolution() [1/2]

template<StaticModInt mint>
vector< mint > maomao90::internal::poly::ntt::convolution ( const vector< mint > & a,
const vector< mint > & b )

◆ convolution() [2/2]

template<int mod, class T>
requires is_integral_v<T>
vector< T > maomao90::internal::poly::ntt::convolution ( const vector< T > & a,
const vector< T > & b )

◆ convolution_ll()

vector< long long > maomao90::internal::poly::ntt::convolution_ll ( const vector< long long > & a,
const vector< long long > & b )
inline

◆ convolution_arb_mod()

template<ModInt mint>
vector< mint > maomao90::internal::poly::ntt::convolution_arb_mod ( const vector< mint > & a,
const vector< mint > & b )
inline