quad-rs

Gauss-Kronrod Integration in Rust.

Features

Example - Real Integration

Dependencies:

toml [dependencies] quad_rs = "0.1.0"

:

```rust use quad_rs::{GaussKronrod, Integrate};

fn integrand(x: f64) -> f64 { x.exp() }

fn main() { let integrator = GaussKronrod::default(); let range = -1f64..1f64;

let result = integrator
      .integrate(&integrand, range, None)
        .unwrap();

} ```

Example - Complex Integration

Dependencies:

toml [dependencies] num_complex = "0.4.0" quad_rs = "0.1.0"

:

```rust use quadrs::{GaussKronrod, Integrate}; use numcomplex::Complex; use std::ops::Range;

fn integrand(z: Complex) -> Complex { z.exp() }

fn main() { let integrator = GaussKronrod::default(); let range = Range { start: Complex::new(-1f64, -1f64), end: Complex::new(1f64, 1f64) };

let result = integrator
      .integrate(&integrand, range, None)
        .unwrap();

} ```

Example - Contour Integration

Dependencies:

toml [dependencies] num_complex = "0.4.0" quad_rs = "0.1.0"

:

```rust use quadrs::{Contour, GaussKronrod, Integrate}; use numcomplex::Complex; use std::ops::Range;

fn integrand(z: Complex) -> Complex { z.exp() }

fn main() { let integrator = GaussKronrod::default(); let xrange =-5f64..5f64; let yrange = -5f64..5f64; let contour = Contour::generaterectangular(&xrange, &y_range, Direction::Clockwise);

let result = integrator
      .path_integrate(&integrand, contour)
        .unwrap();

} ```