6 个版本 (3 个重大更新)
0.4.0 | 2021 年 3 月 6 日 |
---|---|
0.3.0 | 2020 年 6 月 20 日 |
0.2.2 | 2019 年 5 月 12 日 |
0.2.1 | 2019 年 4 月 28 日 |
0.1.0 | 2018 年 12 月 6 日 |
#1348 在 算法
16,479 每月下载量
用于 89 个 crates (8 个直接使用)
12KB
267 行
Cauchy
实数和复数的 trait
lib.rs
:
泛型算法的标量 trait
示例
实数/复数的基礎算術
use cauchy::Scalar;
fn add_int<A: Scalar>(a: A) -> A {
a + A::from(1).unwrap() // A::from is inhereted from num_traits::NumCast
}
fn add_float<A: Scalar>(a: A) -> A {
a + A::from(1.0).unwrap()
}
fn add_real<A: Scalar>(a: A) -> A::Real {
a.re() + A::real(1.0)
}
fn add_complex<A: Scalar>(a: A) -> A::Complex {
a.as_c() + A::complex(1.0, 1.0) // upcast to complex if real
}
随机数生成
use cauchy::Scalar;
use rand::prelude::*;
fn random_algorithm<A: Scalar>() {
let mut rng = StdRng::from_entropy();
let a = A::rand(&mut rng);
}
依赖
~0.6–1MB
~18K SLoC