pub struct PolynomialOperator<'a, const P: u32, const PR: u32> { /* private fields */ }
Expand description
多項式の演算を扱う。
Implementations§
Source§impl<'a, const P: u32, const PR: u32> PolynomialOperator<'a, P, PR>
impl<'a, const P: u32, const PR: u32> PolynomialOperator<'a, P, PR>
Sourcepub fn add_assign(&self, a: &mut Polynomial<P>, b: Polynomial<P>)
pub fn add_assign(&self, a: &mut Polynomial<P>, b: Polynomial<P>)
多項式a
に多項式b
を足す。
Sourcepub fn add(&self, a: Polynomial<P>, b: Polynomial<P>) -> Polynomial<P>
pub fn add(&self, a: Polynomial<P>, b: Polynomial<P>) -> Polynomial<P>
多項式a
と多項式b
の和を返す。
Sourcepub fn sub_assign(&self, a: &mut Polynomial<P>, b: Polynomial<P>)
pub fn sub_assign(&self, a: &mut Polynomial<P>, b: Polynomial<P>)
多項式a
から多項式b
を引く。
Sourcepub fn sub(&self, a: Polynomial<P>, b: Polynomial<P>) -> Polynomial<P>
pub fn sub(&self, a: Polynomial<P>, b: Polynomial<P>) -> Polynomial<P>
多項式a
と多項式b
の差を返す。
Sourcepub fn mul_assign(&self, a: &mut Polynomial<P>, b: Polynomial<P>)
pub fn mul_assign(&self, a: &mut Polynomial<P>, b: Polynomial<P>)
多項式a
に多項式b
を掛ける。
Sourcepub fn mul(&self, a: Polynomial<P>, b: Polynomial<P>) -> Polynomial<P>
pub fn mul(&self, a: Polynomial<P>, b: Polynomial<P>) -> Polynomial<P>
多項式a
と多項式b
の積を返す。
Sourcepub fn sq(&self, a: Polynomial<P>) -> Polynomial<P>
pub fn sq(&self, a: Polynomial<P>) -> Polynomial<P>
多項式a
の2乗を返す。
Sourcepub fn scale(&self, a: Polynomial<P>, k: ConstModInt<P>) -> Polynomial<P>
pub fn scale(&self, a: Polynomial<P>, k: ConstModInt<P>) -> Polynomial<P>
多項式a
のk
倍を返す。
pub fn inv(&self, a: Polynomial<P>, n: usize) -> Polynomial<P>
Sourcepub fn divmod(
&self,
a: Polynomial<P>,
b: Polynomial<P>,
) -> (Polynomial<P>, Polynomial<P>)
pub fn divmod( &self, a: Polynomial<P>, b: Polynomial<P>, ) -> (Polynomial<P>, Polynomial<P>)
多項式a
の多項式b
による商と剰余を返す。
Sourcepub fn differentiate(&self, a: Polynomial<P>) -> Polynomial<P>
pub fn differentiate(&self, a: Polynomial<P>) -> Polynomial<P>
多項式の微分を返す。
Sourcepub fn integrate(&self, a: Polynomial<P>) -> Polynomial<P>
pub fn integrate(&self, a: Polynomial<P>) -> Polynomial<P>
多項式の積分を返す。
Sourcepub fn shift_higher(&self, a: Polynomial<P>, k: usize) -> Polynomial<P>
pub fn shift_higher(&self, a: Polynomial<P>, k: usize) -> Polynomial<P>
係数をk
次だけ高次側にずらす。ただし、$x^n$の項以降は無視する。
$(a_0 + a_1 x + a_2 x^2 + \ldots + a_{n-1} x^{n-1}) \times x^k \pmod {x^n}$
Sourcepub fn shift_lower(&self, a: Polynomial<P>, k: usize) -> Polynomial<P>
pub fn shift_lower(&self, a: Polynomial<P>, k: usize) -> Polynomial<P>
係数をk
次だけ低次側にずらす。ただし、負の次数の項は無視する。
Trait Implementations§
Source§impl<const P: u32, const PR: u32> MultipointEval for PolynomialOperator<'_, P, PR>
impl<const P: u32, const PR: u32> MultipointEval for PolynomialOperator<'_, P, PR>
Source§impl<const P: u32, const PR: u32> TaylorShift for PolynomialOperator<'_, P, PR>
impl<const P: u32, const PR: u32> TaylorShift for PolynomialOperator<'_, P, PR>
Source§type Poly = Polynomial<P>
type Poly = Polynomial<P>
多項式の型
Source§type Value = ConstModInt<P>
type Value = ConstModInt<P>
多項式の係数の型
Auto Trait Implementations§
impl<'a, const P: u32, const PR: u32> Freeze for PolynomialOperator<'a, P, PR>
impl<'a, const P: u32, const PR: u32> RefUnwindSafe for PolynomialOperator<'a, P, PR>
impl<'a, const P: u32, const PR: u32> Send for PolynomialOperator<'a, P, PR>
impl<'a, const P: u32, const PR: u32> Sync for PolynomialOperator<'a, P, PR>
impl<'a, const P: u32, const PR: u32> Unpin for PolynomialOperator<'a, P, PR>
impl<'a, const P: u32, const PR: u32> UnwindSafe for PolynomialOperator<'a, P, PR>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more