sequential-integration 0.0.2

Lightweight library for sequential integration
Documentation
pub mod simpson;

use super::{
    helper_equation_traits::{EquationOfThreeVariable, EquationOfTwoVariable},
    range_generator::RangeGenerator,
    CalculationResult,
};
use crate::errors::Result;

pub trait GetQuadratureRange {
    fn get_range_generator(a: f64, b: f64, h: f64) -> Result<Option<Box<dyn RangeGenerator>>>;
}

pub trait FinalizeCalculation {
    fn finalize(&self, result: CalculationResult) -> Result<f64>;
}

pub trait GetStepSizeDoubleIntegral {
    fn get_step_size(&self) -> (f64, f64);
}

pub trait QuadratureDoubleIntegral
where
    Self: GetQuadratureRange
        + FinalizeCalculation
        + GetStepSizeDoubleIntegral
        + EquationOfTwoVariable
        + Clone,
{
}

pub trait GetStepSizeTripleIntegral {
    fn get_step_size(&self) -> (f64, f64, f64);
}

pub trait QuadratureTripleIntegral
where
    Self: GetQuadratureRange
        + FinalizeCalculation
        + GetStepSizeTripleIntegral
        + EquationOfThreeVariable
        + Clone,
{
}