maomao90's Library
A C++20 library for competitive programming.
Loading...
Searching...
No Matches
maomao90::static_modint< mod, > Struct Template Reference

#include <modint.hpp>

Inheritance diagram for maomao90::static_modint< mod, >:
maomao90::internal::modint::static_modint_base maomao90::internal::modint::modint_base

Public Types

using mod_type = M
 
using umod_type = UM
 

Public Member Functions

constexpr static_modint ()
 
template<internal::concepts::broadly_signed_integral T>
constexpr static_modint (T a)
 
template<internal::concepts::broadly_unsigned_integral T>
constexpr static_modint (T a)
 
constexpr UM val () const
 
constexpr static_modint operator+ () const
 
constexpr static_modint operator- () const
 
constexpr static_modintoperator++ ()
 
constexpr static_modintoperator-- ()
 
constexpr static_modint operator++ (int)
 
constexpr static_modint operator-- (int)
 
constexpr static_modintoperator+= (const static_modint &o)
 
constexpr static_modintoperator-= (const static_modint &o)
 
constexpr static_modintoperator*= (const static_modint &o)
 
constexpr static_modintoperator/= (const static_modint &o)
 
constexpr static_modint pow (long long p) const
 
constexpr static_modint inv () const
 
constexpr bool operator== (const static_modint &o) const
 
constexpr bool operator!= (const static_modint &o) const
 

Static Public Member Functions

static constexpr M imod ()
 
static constexpr UM umod ()
 
static constexpr static_modint raw (M a)
 

Static Public Attributes

static constexpr bool is_prime_mod = is_prime((UM)mod)
 

Friends

constexpr static_modint operator+ (const static_modint &l, const static_modint &r)
 
constexpr static_modint operator- (const static_modint &l, const static_modint &r)
 
constexpr static_modint operator* (const static_modint &l, const static_modint &r)
 
constexpr static_modint operator/ (const static_modint &l, const static_modint &r)
 
constexpr istream & operator>> (istream &is, static_modint &o)
 
constexpr ostream & operator<< (ostream &os, const static_modint &o)
 

Member Typedef Documentation

◆ mod_type

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
using maomao90::static_modint< mod, >::mod_type = M

◆ umod_type

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
using maomao90::static_modint< mod, >::umod_type = UM

Constructor & Destructor Documentation

◆ static_modint() [1/3]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
maomao90::static_modint< mod, >::static_modint ( )
inlineconstexpr

◆ static_modint() [2/3]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
template<internal::concepts::broadly_signed_integral T>
maomao90::static_modint< mod, >::static_modint ( T a)
inlineconstexpr

◆ static_modint() [3/3]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
template<internal::concepts::broadly_unsigned_integral T>
maomao90::static_modint< mod, >::static_modint ( T a)
inlineconstexpr

Member Function Documentation

◆ imod()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static constexpr M maomao90::static_modint< mod, >::imod ( )
inlinestaticconstexpr

◆ umod()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static constexpr UM maomao90::static_modint< mod, >::umod ( )
inlinestaticconstexpr

◆ raw()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static constexpr static_modint maomao90::static_modint< mod, >::raw ( M a)
inlinestaticconstexpr

◆ val()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
UM maomao90::static_modint< mod, >::val ( ) const
inlineconstexpr

◆ operator+()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint maomao90::static_modint< mod, >::operator+ ( ) const
inlineconstexpr

◆ operator-()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint maomao90::static_modint< mod, >::operator- ( ) const
inlineconstexpr

◆ operator++() [1/2]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint & maomao90::static_modint< mod, >::operator++ ( )
inlineconstexpr

◆ operator--() [1/2]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint & maomao90::static_modint< mod, >::operator-- ( )
inlineconstexpr

◆ operator++() [2/2]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint maomao90::static_modint< mod, >::operator++ ( int )
inlineconstexpr

◆ operator--() [2/2]

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint maomao90::static_modint< mod, >::operator-- ( int )
inlineconstexpr

◆ operator+=()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint & maomao90::static_modint< mod, >::operator+= ( const static_modint< mod, > & o)
inlineconstexpr

◆ operator-=()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint & maomao90::static_modint< mod, >::operator-= ( const static_modint< mod, > & o)
inlineconstexpr

◆ operator*=()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint & maomao90::static_modint< mod, >::operator*= ( const static_modint< mod, > & o)
inlineconstexpr

◆ operator/=()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint & maomao90::static_modint< mod, >::operator/= ( const static_modint< mod, > & o)
inlineconstexpr

◆ pow()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint maomao90::static_modint< mod, >::pow ( long long p) const
inlineconstexpr

◆ inv()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint maomao90::static_modint< mod, >::inv ( ) const
inlineconstexpr

◆ operator==()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
bool maomao90::static_modint< mod, >::operator== ( const static_modint< mod, > & o) const
inlineconstexpr

◆ operator!=()

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
bool maomao90::static_modint< mod, >::operator!= ( const static_modint< mod, > & o) const
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator+

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint operator+ ( const static_modint< mod, > & l,
const static_modint< mod, > & r )
friend

◆ operator-

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint operator- ( const static_modint< mod, > & l,
const static_modint< mod, > & r )
friend

◆ operator*

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint operator* ( const static_modint< mod, > & l,
const static_modint< mod, > & r )
friend

◆ operator/

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
static_modint operator/ ( const static_modint< mod, > & l,
const static_modint< mod, > & r )
friend

◆ operator>>

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
istream & operator>> ( istream & is,
static_modint< mod, > & o )
friend

◆ operator<<

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
ostream & operator<< ( ostream & os,
const static_modint< mod, > & o )
friend

Member Data Documentation

◆ is_prime_mod

template<auto mod = 998244353, enable_if_t<(mod >=1), nullptr_t > = nullptr>
bool maomao90::static_modint< mod, >::is_prime_mod = is_prime((UM)mod)
staticconstexpr

The documentation for this struct was generated from the following file: