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§
Sourcefn residue(&self, variable: &Symbol, pole: &Expression) -> Expression
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);Sourcefn find_poles(&self, variable: &Symbol) -> Vec<Expression>
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);Sourcefn contour_integral(&self, variable: &Symbol) -> Expression
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);