Skip to content

Commit 6fd3303

Browse files
committed
Updated Yako's branch to master
2 parents 3a89daa + ff8a45a commit 6fd3303

2 files changed

Lines changed: 395 additions & 0 deletions

File tree

src/cast.rs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,57 @@ where
8080
}
8181
}
8282

83+
pub trait RealConsts<T: Copy> {
84+
#[cfg(has_assoc_const)]
85+
const LN_2: T;
86+
#[cfg(has_assoc_const)]
87+
const FRAC_LN_2: T;
88+
#[cfg(has_assoc_const)]
89+
const FRAC_LN_10: T;
90+
91+
fn ln_2() -> T;
92+
fn frac_ln_2() -> T;
93+
fn frac_ln_10() -> T;
94+
}
95+
96+
impl RealConsts<f32> for f32 {
97+
#[cfg(has_assoc_const)]
98+
const LN_2: f32 = 0.693147180559945309417232121458176568_f32;
99+
#[cfg(has_assoc_const)]
100+
const FRAC_LN_2: f32 = 1.442695040888963407359924681001892137_f32;
101+
#[cfg(has_assoc_const)]
102+
const FRAC_LN_10: f32 = 0.434294481903251827651128918916605082_f32;
103+
104+
fn ln_2() -> f32 {
105+
0.693147180559945309417232121458176568_f32
106+
}
107+
fn frac_ln_2() -> f32 {
108+
1.442695040888963407359924681001892137_f32
109+
}
110+
fn frac_ln_10() -> f32 {
111+
0.434294481903251827651128918916605082_f32
112+
}
113+
}
114+
115+
impl RealConsts<f64> for f64 {
116+
#[cfg(has_assoc_const)]
117+
const LN_2: f64 = 0.693147180559945309417232121458176568_f64;
118+
#[cfg(has_assoc_const)]
119+
const FRAC_LN_2: f64 = 1.442695040888963407359924681001892137_f64;
120+
#[cfg(has_assoc_const)]
121+
const FRAC_LN_10: f64 = 0.434294481903251827651128918916605082_f64;
122+
123+
fn ln_2() -> f64 {
124+
0.693147180559945309417232121458176568_f64
125+
}
126+
fn frac_ln_2() -> f64 {
127+
1.442695040888963407359924681001892137_f64
128+
}
129+
fn frac_ln_10() -> f64 {
130+
0.434294481903251827651128918916605082_f64
131+
}
132+
}
133+
83134
#[cfg(test)]
84135
mod test {
85136
use super::*;

0 commit comments

Comments
 (0)