Skip to main content

besseli_seq

Function besseli_seq 

Source
pub fn besseli_seq<T: BesselFloat>(
    nu: T,
    z: Complex<T>,
    n: usize,
    scaling: Scaling,
) -> Result<BesselResult<T>, Error>
Expand description

Compute I_{ν+j}(z) for j = 0, 1, …, n−1 in a single call.

Returns a BesselResult containing n values and an Accuracy:

The scaling parameter selects Scaling::Unscaled or Scaling::Exponential; see crate-level docs for details.

Negative orders are supported via DLMF reflection formulas:

  • Non-integer ν: I_{−ν}(z) = I_ν(z) + (2/π) sin(νπ) K_ν(z)
  • Integer ν: I_{−n}(z) = I_n(z)

See crate-level docs for more on sequence functions.

§Example

use complex_bessel::*;
use num_complex::Complex;

let z = Complex::new(1.0_f64, 0.0);

// I_0(z), I_1(z), I_2(z) in one call
let result = besseli_seq(0.0, z, 3, Scaling::Unscaled).unwrap();
assert_eq!(result.values.len(), 3);
assert!((result.values[0].re - 1.2661).abs() < 1e-3); // I_0(1) ≈ 1.2661

§Errors

Returns Error::InvalidInput if n < 1.