ResidueCalculus

Trait ResidueCalculus 

Source
pub trait ResidueCalculus {
    // Required methods
    fn residue(&self, variable: &Symbol, pole: &Expression) -> Expression;
    fn find_poles(&self, variable: &Symbol) -> Vec<Expression>;
    fn contour_integral(&self, variable: &Symbol) -> Expression;
}
Expand description

Trait for residue calculus operations

Required Methods§

Source

fn residue(&self, variable: &Symbol, pole: &Expression) -> Expression

Compute residue at a pole

§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::ResidueCalculus;

let z = symbol!(z);
let expr = Expression::pow(
    Expression::add(vec![
        Expression::symbol(z.clone()),
        Expression::integer(-1)
    ]),
    Expression::integer(-1)
);
let pole = Expression::integer(1);
let result = expr.residue(&z, &pole);
Source

fn find_poles(&self, variable: &Symbol) -> Vec<Expression>

Find all poles of the function

§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::ResidueCalculus;

let z = symbol!(z);
let expr = Expression::pow(
    Expression::mul(vec![
        Expression::add(vec![Expression::symbol(z.clone()), Expression::integer(-1)]),
        Expression::add(vec![Expression::symbol(z.clone()), Expression::integer(-2)])
    ]),
    Expression::integer(-1)
);
let poles = expr.find_poles(&z);
Source

fn contour_integral(&self, variable: &Symbol) -> Expression

Compute contour integral using residue theorem

§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::ResidueCalculus;

let z = symbol!(z);
let expr = Expression::pow(
    Expression::add(vec![Expression::symbol(z.clone()), Expression::integer(-1)]),
    Expression::integer(-1)
);
let result = expr.contour_integral(&z);

Implementors§