pub trait Limits {
// Required methods
fn limit(&self, variable: &Symbol, point: &Expression) -> Expression;
fn limit_directed(
&self,
variable: &Symbol,
point: &Expression,
direction: LimitDirection,
) -> Expression;
fn limit_at_infinity(&self, variable: &Symbol) -> Expression;
fn limit_at_negative_infinity(&self, variable: &Symbol) -> Expression;
}Expand description
Trait for limit operations
Required Methods§
Sourcefn limit(&self, variable: &Symbol, point: &Expression) -> Expression
fn limit(&self, variable: &Symbol, point: &Expression) -> Expression
Compute two-sided limit
§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::Limits;
let x = symbol!(x);
let expr = Expression::mul(vec![
Expression::symbol(x.clone()),
Expression::function("sin", vec![Expression::symbol(x.clone())])
]);
let point = Expression::integer(0);
let result = expr.limit(&x, &point);Sourcefn limit_directed(
&self,
variable: &Symbol,
point: &Expression,
direction: LimitDirection,
) -> Expression
fn limit_directed( &self, variable: &Symbol, point: &Expression, direction: LimitDirection, ) -> Expression
Compute one-sided limit
§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::{Limits, LimitDirection};
let x = symbol!(x);
let expr = Expression::pow(Expression::symbol(x.clone()), Expression::integer(-1));
let point = Expression::integer(0);
let result = expr.limit_directed(&x, &point, LimitDirection::Right);Sourcefn limit_at_infinity(&self, variable: &Symbol) -> Expression
fn limit_at_infinity(&self, variable: &Symbol) -> Expression
Compute limit at infinity
§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::Limits;
let x = symbol!(x);
let expr = Expression::pow(Expression::symbol(x.clone()), Expression::integer(-1));
let result = expr.limit_at_infinity(&x);Sourcefn limit_at_negative_infinity(&self, variable: &Symbol) -> Expression
fn limit_at_negative_infinity(&self, variable: &Symbol) -> Expression
Compute limit at negative infinity
§Examples
use mathhook_core::{Expression, symbol};
use mathhook_core::calculus::Limits;
let x = symbol!(x);
let expr = Expression::function("exp", vec![Expression::symbol(x.clone())]);
let result = expr.limit_at_negative_infinity(&x);