1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
//! <br>
//!
//! This library provides [`fitting::Gaussian`][crate::Gaussian], which represents gaussian function
//!
//! <br>
//!
//! # Details
//!
//! Use [`Gaussian::new`] to get struct that represents gaussian function.
//!
//! ```
//! use fitting::Gaussian;
//!
//! let gaussian = Gaussian::new(5., 3., 1.);
//! let x = 5.;
//! let y = gaussian.value(x);
//! assert_eq!(&y, gaussian.a());
//!
//! ```
//!
//! Use [`Gaussian::value`] and [`Gaussian::values`] to get value(s) of the function.
//!
//! ```
//! use fitting::Gaussian;
//!
//! let gaussian = Gaussian::new(5., 3., 1.);
//! let x = 5.;
//! let y = gaussian.value(x);
//! assert_eq!(&y, gaussian.a());
//!
//! ```
//!
//! Use [`Gaussian::fit`] to fitting arrays to the gaussian function.
//!
//! ```
//! use fitting::approx::assert_abs_diff_eq;
//! use fitting::Gaussian;
//! use fitting::ndarray::{array, Array, Array1};
//!
//! let gaussian = Gaussian::new(5., 3., 1.);
//! let x_vec: Array1<f64> = Array::range(1., 10., 1.);
//! let y_vec: Array1<f64> = gaussian.values(x_vec.clone());
//! let estimated = Gaussian::fit(x_vec, y_vec).unwrap();
//! assert_abs_diff_eq!(gaussian, estimated, epsilon = 1e-9);
//! ```
//!
pub mod gaussian;
pub mod linalg;
#[doc(inline)]
pub use self::gaussian::Gaussian;
// external dependencies
pub use approx;
pub use ndarray;
pub use serde;