rgsl/
lib.rs

1//
2// A rust binding for the GSL library by Guillaume Gomez (guillaume1.gomez@gmail.com)
3//
4
5#![crate_name = "rgsl"]
6#![crate_type = "rlib"]
7#![crate_type = "dylib"]
8#![cfg_attr(feature = "dox", feature(doc_cfg))]
9#![allow(non_camel_case_types)]
10#![allow(non_snake_case)]
11#![allow(clippy::too_many_arguments)]
12#![allow(clippy::excessive_precision)]
13#![allow(clippy::many_single_char_names)]
14#![allow(clippy::should_implement_trait)]
15#![allow(clippy::type_complexity)]
16#![doc = include_str!("../README.md")]
17
18extern crate gsl_sys as sys;
19extern crate paste;
20
21pub use self::types::*;
22
23pub use self::elementary::Elementary;
24pub use self::pow::Pow;
25pub use self::trigonometric::Trigonometric;
26pub use self::types::rng;
27pub use self::utilities::IOStream;
28pub use self::view::View;
29
30// enums part
31pub use self::enums::*;
32
33mod enums;
34mod macros;
35mod utilities;
36mod view;
37
38#[doc(hidden)]
39pub mod ffi;
40
41pub mod randist;
42pub mod types;
43
44pub mod airy;
45pub mod bessel;
46pub mod blas;
47pub mod cblas;
48pub mod clausen;
49pub mod coulomb;
50pub mod coupling_coefficients;
51pub mod dawson;
52pub mod debye;
53pub mod dilogarithm;
54pub mod eigen;
55pub mod elementary;
56pub mod elementary_operations;
57pub mod elliptic;
58pub mod error;
59pub mod exponential;
60pub mod exponential_integrals;
61pub mod fermi_dirac;
62pub mod fft;
63#[cfg(feature = "v2_5")]
64#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_5")))]
65pub mod filter;
66pub mod fit;
67pub mod gamma_beta;
68pub mod gegenbauer;
69pub mod hypergeometric;
70pub mod integration;
71pub mod interpolation;
72pub mod jacobian_elliptic;
73pub mod laguerre;
74pub mod lambert_w;
75pub mod legendre;
76pub mod linear_algebra;
77pub mod logarithm;
78pub mod minimizer;
79pub mod multifit;
80#[cfg(feature = "v2_1")]
81#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_1")))]
82pub mod multilarge;
83pub mod multilinear;
84pub mod multiroot;
85pub mod numerical_differentiation;
86pub mod physical_constant;
87pub mod polynomials;
88pub mod pow;
89pub mod power;
90pub mod psi;
91pub mod roots;
92pub mod sort;
93pub mod statistics;
94pub mod stats;
95pub mod synchrotron;
96pub mod transport;
97pub mod trigonometric;
98pub mod util;
99pub mod wavelet_transforms;
100pub mod zeta;
101
102/// The maximum x such that gamma(x) is not considered an overflow.
103pub static SF_GAMMA_XMAX: f64 = 171.0;
104/// The maximum n such that gsl_sf_fact(n) does not give an overflow.
105pub static SF_FACT_NMAX: f64 = 170.0;
106/// The maximum n such that gsl_sf_doublefact(n) does not give an overflow.
107pub static SF_DOUBLEFACT_NMAX: f64 = 297.0;
108
109pub static SF_MATHIEU_COEFF: u32 = 100;
110
111pub static DBL_EPSILON: f64 = 2.220_446_049_250_313_1e-16;
112pub static SQRT_DBL_EPSILON: f64 = 1.490_116_119_384_765_6e-08;
113pub static ROOT3_DBL_EPSILON: f64 = 6.055_454_452_393_342_9e-06;
114pub static ROOT4_DBL_EPSILON: f64 = 1.220_703_125_000_000_0e-04;
115pub static ROOT5_DBL_EPSILON: f64 = 7.400_959_797_414_050_5e-04;
116pub static ROOT6_DBL_EPSILON: f64 = 2.460_783_300_575_925_1e-03;
117
118pub static DBL_MIN: f64 = 2.225_073_858_507_201_4e-308;
119pub static SQRT_DBL_MIN: f64 = 1.491_668_146_240_041_3e-154;
120pub static ROOT3_DBL_MIN: f64 = 2.812_644_285_236_299_6e-103;
121pub static ROOT4_DBL_MIN: f64 = 1.221_338_669_755_462_0e-77;
122pub static ROOT5_DBL_MIN: f64 = 2.947_602_296_969_176_3e-62;
123pub static ROOT6_DBL_MIN: f64 = 5.303_436_890_579_821_8e-52;
124
125pub static DBL_MAX: f64 = std::f64::MAX; //1.7976931348623156e+308;
126pub static SQRT_DBL_MAX: f64 = 1.340_780_792_994_259_6e+154;
127pub static ROOT3_DBL_MAX: f64 = 5.643_803_094_122_289_7e+102;
128pub static ROOT4_DBL_MAX: f64 = 1.157_920_892_373_162_0e+77;
129pub static ROOT5_DBL_MAX: f64 = 4.476_546_622_757_270_7e+61;
130pub static ROOT6_DBL_MAX: f64 = 2.375_668_978_229_561_2e+51;
131pub static LOG_DBL_MAX: f64 = 7.097_827_128_933_839_7e+02;