Move methods from FloatConsts into Float trait and remove num::consts
This commit is contained in:
parent
edca099681
commit
5de6fbe5bb
4 changed files with 139 additions and 204 deletions
16
src/angle.rs
16
src/angle.rs
|
@ -3,7 +3,7 @@ use core::f64::consts::pi;
|
|||
|
||||
use funs::triganomic::{cos, sin};
|
||||
use mat::{Mat3, Mat4};
|
||||
use num::consts::{FloatConsts, IntConsts};
|
||||
use num::ext::Float;
|
||||
use num::cast::{NumCast, cast};
|
||||
use quat::Quat;
|
||||
use vec::Vec3;
|
||||
|
@ -40,13 +40,13 @@ pub trait Angle<T>: Add<self,self>
|
|||
pub enum Radians<T> = T;
|
||||
|
||||
// FIXME: not sure why I need the Eq and Ord trait bounds, but Rust complains if I don't include them
|
||||
pub impl<T:Copy FloatConsts Num NumCast Eq Ord> Radians<T>: Angle<T> {
|
||||
#[inline(always)] static pure fn full_turn() -> Radians<T> { Radians(FloatConsts::two_pi()) }
|
||||
#[inline(always)] static pure fn half_turn() -> Radians<T> { Radians(FloatConsts::pi()) }
|
||||
#[inline(always)] static pure fn quadrant() -> Radians<T> { Radians(FloatConsts::pi_2()) }
|
||||
#[inline(always)] static pure fn sextant() -> Radians<T> { Radians(FloatConsts::pi_3()) }
|
||||
#[inline(always)] static pure fn octant() -> Radians<T> { Radians(FloatConsts::pi_4()) }
|
||||
#[inline(always)] static pure fn zero() -> Radians<T> { Radians(NumCast::zero()) }
|
||||
pub impl<T:Copy Float Num NumCast Eq Ord> Radians<T>: Angle<T> {
|
||||
#[inline(always)] static pure fn full_turn() -> Radians<T> { Radians(Float::two_pi()) }
|
||||
#[inline(always)] static pure fn half_turn() -> Radians<T> { Radians(Float::pi()) }
|
||||
#[inline(always)] static pure fn quadrant() -> Radians<T> { Radians(Float::pi_2()) }
|
||||
#[inline(always)] static pure fn sextant() -> Radians<T> { Radians(Float::pi_3()) }
|
||||
#[inline(always)] static pure fn octant() -> Radians<T> { Radians(Float::pi_4()) }
|
||||
#[inline(always)] static pure fn zero() -> Radians<T> { Radians(NumCast::zero()) }
|
||||
|
||||
#[inline(always)] pure fn to_radians(&self) -> Radians<T> { *self }
|
||||
#[inline(always)] pure fn to_degrees(&self) -> Degrees<T> { Degrees(**self * cast(180.0 / pi)) }
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
use funs::triganomic::tan;
|
||||
use angle::Angle;
|
||||
use mat::Mat4;
|
||||
use num::cast::cast;
|
||||
use num::consts::pi;
|
||||
use num::ext::FloatExt;
|
||||
use num::cast::{NumCast, cast};
|
||||
|
||||
/**
|
||||
* Create a perspective projection matrix
|
||||
|
@ -12,7 +10,7 @@ use num::ext::FloatExt;
|
|||
* can be found [here](http://www.opengl.org/wiki/GluPerspective_code).
|
||||
*/
|
||||
#[inline(always)]
|
||||
pub pure fn perspective<T:Copy FloatExt, A:Angle<T>>(fovy: A, aspectRatio: T, near: T, far: T) -> Mat4<T> {
|
||||
pub pure fn perspective<T:Copy Num NumCast, A:Angle<T>>(fovy: A, aspectRatio: T, near: T, far: T) -> Mat4<T> {
|
||||
let ymax = near * tan(&fovy.to_radians());
|
||||
let xmax = ymax * aspectRatio;
|
||||
|
||||
|
@ -26,7 +24,7 @@ pub pure fn perspective<T:Copy FloatExt, A:Angle<T>>(fovy: A, aspectRatio: T, ne
|
|||
* (http://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml) function.
|
||||
*/
|
||||
#[inline(always)]
|
||||
pub pure fn frustum<T:Copy FloatExt>(left: T, right: T, bottom: T, top: T, near: T, far: T) -> Mat4<T> {
|
||||
pub pure fn frustum<T:Copy Num NumCast>(left: T, right: T, bottom: T, top: T, near: T, far: T) -> Mat4<T> {
|
||||
let _0: T = cast(0);
|
||||
let _2: T = cast(2);
|
||||
|
||||
|
|
|
@ -1,157 +0,0 @@
|
|||
pub trait IntConsts {
|
||||
static pure fn zero() -> self;
|
||||
static pure fn one() -> self;
|
||||
}
|
||||
|
||||
pub trait FloatConsts: IntConsts {
|
||||
static pure fn two_pi() -> self; // 2 * π
|
||||
static pure fn pi() -> self; // π
|
||||
static pure fn pi_2() -> self; // π / 2
|
||||
static pure fn pi_3() -> self; // π / 3
|
||||
static pure fn pi_4() -> self; // π / 4
|
||||
static pure fn pi_6() -> self; // π / 6
|
||||
static pure fn pi_8() -> self; // π / 8
|
||||
static pure fn frac_pi_2() -> self;
|
||||
static pure fn frac_pi_4() -> self;
|
||||
static pure fn frac_1_pi() -> self;
|
||||
static pure fn frac_2_pi() -> self;
|
||||
static pure fn frac_2_sqrtpi() -> self;
|
||||
static pure fn sqrt2() -> self;
|
||||
static pure fn frac_1_sqrt2() -> self;
|
||||
static pure fn e() -> self;
|
||||
static pure fn log2_e() -> self;
|
||||
static pure fn log10_e() -> self;
|
||||
static pure fn ln_2() -> self;
|
||||
static pure fn ln_10() -> self;
|
||||
}
|
||||
|
||||
pub impl u8: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> u8 { 0u8 }
|
||||
#[inline(always)] static pure fn one() -> u8 { 1u8 }
|
||||
}
|
||||
|
||||
pub impl u16: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> u16 { 0u16 }
|
||||
#[inline(always)] static pure fn one() -> u16 { 1u16 }
|
||||
}
|
||||
|
||||
pub impl u32: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> u32 { 0u32 }
|
||||
#[inline(always)] static pure fn one() -> u32 { 1u32 }
|
||||
}
|
||||
|
||||
pub impl u64: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> u64 { 0u64 }
|
||||
#[inline(always)] static pure fn one() -> u64 { 1u64 }
|
||||
}
|
||||
|
||||
pub impl uint: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> uint { 0u }
|
||||
#[inline(always)] static pure fn one() -> uint { 1u }
|
||||
}
|
||||
|
||||
pub impl i8: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> i8 { 0i8 }
|
||||
#[inline(always)] static pure fn one() -> i8 { 1i8 }
|
||||
}
|
||||
|
||||
pub impl i16: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> i16 { 0i16 }
|
||||
#[inline(always)] static pure fn one() -> i16 { 1i16 }
|
||||
}
|
||||
|
||||
pub impl i32: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> i32 { 0i32 }
|
||||
#[inline(always)] static pure fn one() -> i32 { 1i32 }
|
||||
}
|
||||
|
||||
pub impl i64: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> i64 { 0i64 }
|
||||
#[inline(always)] static pure fn one() -> i64 { 1i64 }
|
||||
}
|
||||
|
||||
pub impl int: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> int { 0 }
|
||||
#[inline(always)] static pure fn one() -> int { 1 }
|
||||
}
|
||||
|
||||
pub impl f32: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> f32 { 0f32 }
|
||||
#[inline(always)] static pure fn one() -> f32 { 1f32 }
|
||||
}
|
||||
|
||||
pub impl f32: FloatConsts {
|
||||
#[inline(always)] static pure fn two_pi() -> f32 { 6.28318530717958647692528676655900576_f32 }
|
||||
#[inline(always)] static pure fn pi() -> f32 { 3.14159265358979323846264338327950288_f32 }
|
||||
#[inline(always)] static pure fn pi_2() -> f32 { 1.57079632679489661923132169163975144_f32 }
|
||||
#[inline(always)] static pure fn pi_3() -> f32 { 1.04719755119659774615421446109316763_f32 }
|
||||
#[inline(always)] static pure fn pi_4() -> f32 { 0.78539816339744830961566084581987572_f32 }
|
||||
#[inline(always)] static pure fn pi_6() -> f32 { 0.52359877559829887307710723054658381_f32 }
|
||||
#[inline(always)] static pure fn pi_8() -> f32 { 0.39269908169872415480783042290993786_f32 }
|
||||
#[inline(always)] static pure fn frac_pi_2() -> f32 { 1.57079632679489661923132169163975144_f32 }
|
||||
#[inline(always)] static pure fn frac_pi_4() -> f32 { 0.785398163397448309615660845819875721_f32 }
|
||||
#[inline(always)] static pure fn frac_1_pi() -> f32 { 0.318309886183790671537767526745028724_f32 }
|
||||
#[inline(always)] static pure fn frac_2_pi() -> f32 { 0.636619772367581343075535053490057448_f32 }
|
||||
#[inline(always)] static pure fn frac_2_sqrtpi() -> f32 { 1.12837916709551257389615890312154517_f32 }
|
||||
#[inline(always)] static pure fn sqrt2() -> f32 { 1.41421356237309504880168872420969808_f32 }
|
||||
#[inline(always)] static pure fn frac_1_sqrt2() -> f32 { 0.707106781186547524400844362104849039_f32 }
|
||||
#[inline(always)] static pure fn e() -> f32 { 2.71828182845904523536028747135266250_f32 }
|
||||
#[inline(always)] static pure fn log2_e() -> f32 { 1.44269504088896340735992468100189214_f32 }
|
||||
#[inline(always)] static pure fn log10_e() -> f32 { 0.434294481903251827651128918916605082_f32 }
|
||||
#[inline(always)] static pure fn ln_2() -> f32 { 0.693147180559945309417232121458176568_f32 }
|
||||
#[inline(always)] static pure fn ln_10() -> f32 { 2.30258509299404568401799145468436421_f32 }
|
||||
}
|
||||
|
||||
pub impl f64: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> f64 { 0f64 }
|
||||
#[inline(always)] static pure fn one() -> f64 { 1f64 }
|
||||
}
|
||||
|
||||
pub impl f64: FloatConsts {
|
||||
#[inline(always)] static pure fn two_pi() -> f64 { 6.28318530717958647692528676655900576_f64 }
|
||||
#[inline(always)] static pure fn pi() -> f64 { 3.14159265358979323846264338327950288_f64 }
|
||||
#[inline(always)] static pure fn pi_2() -> f64 { 1.57079632679489661923132169163975144_f64 }
|
||||
#[inline(always)] static pure fn pi_3() -> f64 { 1.04719755119659774615421446109316763_f64 }
|
||||
#[inline(always)] static pure fn pi_4() -> f64 { 0.78539816339744830961566084581987572_f64 }
|
||||
#[inline(always)] static pure fn pi_6() -> f64 { 0.52359877559829887307710723054658381_f64 }
|
||||
#[inline(always)] static pure fn pi_8() -> f64 { 0.39269908169872415480783042290993786_f64 }
|
||||
#[inline(always)] static pure fn frac_pi_2() -> f64 { 1.57079632679489661923132169163975144_f64 }
|
||||
#[inline(always)] static pure fn frac_pi_4() -> f64 { 0.785398163397448309615660845819875721_f64 }
|
||||
#[inline(always)] static pure fn frac_1_pi() -> f64 { 0.318309886183790671537767526745028724_f64 }
|
||||
#[inline(always)] static pure fn frac_2_pi() -> f64 { 0.636619772367581343075535053490057448_f64 }
|
||||
#[inline(always)] static pure fn frac_2_sqrtpi() -> f64 { 1.12837916709551257389615890312154517_f64 }
|
||||
#[inline(always)] static pure fn sqrt2() -> f64 { 1.41421356237309504880168872420969808_f64 }
|
||||
#[inline(always)] static pure fn frac_1_sqrt2() -> f64 { 0.707106781186547524400844362104849039_f64 }
|
||||
#[inline(always)] static pure fn e() -> f64 { 2.71828182845904523536028747135266250_f64 }
|
||||
#[inline(always)] static pure fn log2_e() -> f64 { 1.44269504088896340735992468100189214_f64 }
|
||||
#[inline(always)] static pure fn log10_e() -> f64 { 0.434294481903251827651128918916605082_f64 }
|
||||
#[inline(always)] static pure fn ln_2() -> f64 { 0.693147180559945309417232121458176568_f64 }
|
||||
#[inline(always)] static pure fn ln_10() -> f64 { 2.30258509299404568401799145468436421_f64 }
|
||||
}
|
||||
|
||||
pub impl float: IntConsts {
|
||||
#[inline(always)] static pure fn zero() -> float { 0f }
|
||||
#[inline(always)] static pure fn one() -> float { 1f }
|
||||
}
|
||||
|
||||
pub impl float: FloatConsts {
|
||||
#[inline(always)] static pure fn two_pi() -> float { 6.28318530717958647692528676655900576 }
|
||||
#[inline(always)] static pure fn pi() -> float { 3.14159265358979323846264338327950288 }
|
||||
#[inline(always)] static pure fn pi_2() -> float { 1.57079632679489661923132169163975144 }
|
||||
#[inline(always)] static pure fn pi_3() -> float { 1.04719755119659774615421446109316763 }
|
||||
#[inline(always)] static pure fn pi_4() -> float { 0.78539816339744830961566084581987572 }
|
||||
#[inline(always)] static pure fn pi_6() -> float { 0.52359877559829887307710723054658381 }
|
||||
#[inline(always)] static pure fn pi_8() -> float { 0.39269908169872415480783042290993786 }
|
||||
#[inline(always)] static pure fn frac_pi_2() -> float { 1.57079632679489661923132169163975144 }
|
||||
#[inline(always)] static pure fn frac_pi_4() -> float { 0.785398163397448309615660845819875721 }
|
||||
#[inline(always)] static pure fn frac_1_pi() -> float { 0.318309886183790671537767526745028724 }
|
||||
#[inline(always)] static pure fn frac_2_pi() -> float { 0.636619772367581343075535053490057448 }
|
||||
#[inline(always)] static pure fn frac_2_sqrtpi() -> float { 1.12837916709551257389615890312154517 }
|
||||
#[inline(always)] static pure fn sqrt2() -> float { 1.41421356237309504880168872420969808 }
|
||||
#[inline(always)] static pure fn frac_1_sqrt2() -> float { 0.707106781186547524400844362104849039 }
|
||||
#[inline(always)] static pure fn e() -> float { 2.71828182845904523536028747135266250 }
|
||||
#[inline(always)] static pure fn log2_e() -> float { 1.44269504088896340735992468100189214 }
|
||||
#[inline(always)] static pure fn log10_e() -> float { 0.434294481903251827651128918916605082 }
|
||||
#[inline(always)] static pure fn ln_2() -> float { 0.693147180559945309417232121458176568 }
|
||||
#[inline(always)] static pure fn ln_10() -> float { 2.30258509299404568401799145468436421 }
|
||||
}
|
162
src/num/ext.rs
162
src/num/ext.rs
|
@ -1,54 +1,148 @@
|
|||
use core::cmp::{Eq, Ord};
|
||||
|
||||
use std::cmp::FuzzyEq;
|
||||
|
||||
use num::cast::*;
|
||||
use num::consts::*;
|
||||
use num::default_eq::*;
|
||||
|
||||
|
||||
pub trait NumExt: Copy, Eq, Num, NumCast, Ord {}
|
||||
pub trait Number: Copy, Eq, Num, NumCast, Ord {
|
||||
static pure fn zero() -> self;
|
||||
static pure fn one() -> self;
|
||||
}
|
||||
|
||||
|
||||
pub trait UnSignedExt: NumExt {}
|
||||
pub trait UnSigned /*:Number*/ {}
|
||||
|
||||
pub impl u8: UnSignedExt {}
|
||||
pub impl u16: UnSignedExt {}
|
||||
pub impl u32: UnSignedExt {}
|
||||
pub impl u64: UnSignedExt {}
|
||||
pub impl uint: UnSignedExt {}
|
||||
pub impl u8: UnSigned {}
|
||||
pub impl u16: UnSigned {}
|
||||
pub impl u32: UnSigned {}
|
||||
pub impl u64: UnSigned {}
|
||||
pub impl uint: UnSigned {}
|
||||
|
||||
|
||||
pub trait SignedExt: NumExt {}
|
||||
pub trait Signed /*:Number*/ {}
|
||||
|
||||
pub impl i8: SignedExt {}
|
||||
pub impl i16: SignedExt {}
|
||||
pub impl i32: SignedExt {}
|
||||
pub impl i64: SignedExt {}
|
||||
pub impl int: SignedExt {}
|
||||
pub impl i8: Signed {}
|
||||
pub impl i16: Signed {}
|
||||
pub impl i32: Signed {}
|
||||
pub impl i64: Signed {}
|
||||
pub impl int: Signed {}
|
||||
|
||||
pub impl f32: SignedExt {}
|
||||
pub impl f64: SignedExt {}
|
||||
pub impl float: SignedExt {}
|
||||
pub impl f32: Signed {}
|
||||
pub impl f64: Signed {}
|
||||
pub impl float: Signed {}
|
||||
|
||||
|
||||
pub trait IntegerExt: NumExt, IntConsts {}
|
||||
pub trait Integer /*:Number*/ {}
|
||||
|
||||
pub impl u8: IntegerExt {}
|
||||
pub impl u16: IntegerExt {}
|
||||
pub impl u32: IntegerExt {}
|
||||
pub impl u64: IntegerExt {}
|
||||
pub impl uint: IntegerExt {}
|
||||
pub impl u8: Integer {}
|
||||
pub impl u16: Integer {}
|
||||
pub impl u32: Integer {}
|
||||
pub impl u64: Integer {}
|
||||
pub impl uint: Integer {}
|
||||
|
||||
pub impl i8: IntegerExt {}
|
||||
pub impl i16: IntegerExt {}
|
||||
pub impl i32: IntegerExt {}
|
||||
pub impl i64: IntegerExt {}
|
||||
pub impl int: IntegerExt {}
|
||||
pub impl i8: Integer {}
|
||||
pub impl i16: Integer {}
|
||||
pub impl i32: Integer {}
|
||||
pub impl i64: Integer {}
|
||||
pub impl int: Integer {}
|
||||
|
||||
|
||||
pub trait FloatExt: NumExt, FloatConsts, FuzzyEq {}
|
||||
pub trait Float /*:Number, FuzzyEq*/ {
|
||||
pure fn to_float() -> float;
|
||||
static pure fn from_float(n: float) -> self;
|
||||
|
||||
static pure fn two_pi() -> self; /// 2 * π
|
||||
static pure fn pi() -> self; /// π
|
||||
static pure fn pi_2() -> self; /// π / 2
|
||||
static pure fn pi_3() -> self; /// π / 3
|
||||
static pure fn pi_4() -> self; /// π / 4
|
||||
static pure fn pi_6() -> self; /// π / 6
|
||||
static pure fn pi_8() -> self; /// π / 8
|
||||
static pure fn frac_pi_2() -> self;
|
||||
static pure fn frac_pi_4() -> self;
|
||||
static pure fn frac_1_pi() -> self;
|
||||
static pure fn frac_2_pi() -> self;
|
||||
static pure fn frac_2_sqrtpi() -> self;
|
||||
static pure fn sqrt2() -> self;
|
||||
static pure fn frac_1_sqrt2() -> self;
|
||||
static pure fn e() -> self;
|
||||
static pure fn log2_e() -> self;
|
||||
static pure fn log10_e() -> self;
|
||||
static pure fn ln_2() -> self;
|
||||
static pure fn ln_10() -> self;
|
||||
}
|
||||
|
||||
pub impl f32: FloatExt {}
|
||||
pub impl f64: FloatExt {}
|
||||
pub impl float: FloatExt {}
|
||||
pub impl f32: Float {
|
||||
#[inline(always)] pure fn to_float() -> float { self as float }
|
||||
#[inline(always)] static pure fn from_float(n: float) -> f32 { n as f32 }
|
||||
|
||||
#[inline(always)] static pure fn two_pi() -> f32 { 6.28318530717958647692528676655900576_f32 }
|
||||
#[inline(always)] static pure fn pi() -> f32 { 3.14159265358979323846264338327950288_f32 }
|
||||
#[inline(always)] static pure fn pi_2() -> f32 { 1.57079632679489661923132169163975144_f32 }
|
||||
#[inline(always)] static pure fn pi_3() -> f32 { 1.04719755119659774615421446109316763_f32 }
|
||||
#[inline(always)] static pure fn pi_4() -> f32 { 0.78539816339744830961566084581987572_f32 }
|
||||
#[inline(always)] static pure fn pi_6() -> f32 { 0.52359877559829887307710723054658381_f32 }
|
||||
#[inline(always)] static pure fn pi_8() -> f32 { 0.39269908169872415480783042290993786_f32 }
|
||||
#[inline(always)] static pure fn frac_pi_2() -> f32 { 1.57079632679489661923132169163975144_f32 }
|
||||
#[inline(always)] static pure fn frac_pi_4() -> f32 { 0.785398163397448309615660845819875721_f32 }
|
||||
#[inline(always)] static pure fn frac_1_pi() -> f32 { 0.318309886183790671537767526745028724_f32 }
|
||||
#[inline(always)] static pure fn frac_2_pi() -> f32 { 0.636619772367581343075535053490057448_f32 }
|
||||
#[inline(always)] static pure fn frac_2_sqrtpi() -> f32 { 1.12837916709551257389615890312154517_f32 }
|
||||
#[inline(always)] static pure fn sqrt2() -> f32 { 1.41421356237309504880168872420969808_f32 }
|
||||
#[inline(always)] static pure fn frac_1_sqrt2() -> f32 { 0.707106781186547524400844362104849039_f32 }
|
||||
#[inline(always)] static pure fn e() -> f32 { 2.71828182845904523536028747135266250_f32 }
|
||||
#[inline(always)] static pure fn log2_e() -> f32 { 1.44269504088896340735992468100189214_f32 }
|
||||
#[inline(always)] static pure fn log10_e() -> f32 { 0.434294481903251827651128918916605082_f32 }
|
||||
#[inline(always)] static pure fn ln_2() -> f32 { 0.693147180559945309417232121458176568_f32 }
|
||||
#[inline(always)] static pure fn ln_10() -> f32 { 2.30258509299404568401799145468436421_f32 }
|
||||
}
|
||||
|
||||
pub impl f64: Float {
|
||||
#[inline(always)] pure fn to_float() -> float { self as float }
|
||||
#[inline(always)] static pure fn from_float(n: float) -> f64 { n as f64 }
|
||||
|
||||
#[inline(always)] static pure fn two_pi() -> f64 { 6.28318530717958647692528676655900576_f64 }
|
||||
#[inline(always)] static pure fn pi() -> f64 { 3.14159265358979323846264338327950288_f64 }
|
||||
#[inline(always)] static pure fn pi_2() -> f64 { 1.57079632679489661923132169163975144_f64 }
|
||||
#[inline(always)] static pure fn pi_3() -> f64 { 1.04719755119659774615421446109316763_f64 }
|
||||
#[inline(always)] static pure fn pi_4() -> f64 { 0.78539816339744830961566084581987572_f64 }
|
||||
#[inline(always)] static pure fn pi_6() -> f64 { 0.52359877559829887307710723054658381_f64 }
|
||||
#[inline(always)] static pure fn pi_8() -> f64 { 0.39269908169872415480783042290993786_f64 }
|
||||
#[inline(always)] static pure fn frac_pi_2() -> f64 { 1.57079632679489661923132169163975144_f64 }
|
||||
#[inline(always)] static pure fn frac_pi_4() -> f64 { 0.785398163397448309615660845819875721_f64 }
|
||||
#[inline(always)] static pure fn frac_1_pi() -> f64 { 0.318309886183790671537767526745028724_f64 }
|
||||
#[inline(always)] static pure fn frac_2_pi() -> f64 { 0.636619772367581343075535053490057448_f64 }
|
||||
#[inline(always)] static pure fn frac_2_sqrtpi() -> f64 { 1.12837916709551257389615890312154517_f64 }
|
||||
#[inline(always)] static pure fn sqrt2() -> f64 { 1.41421356237309504880168872420969808_f64 }
|
||||
#[inline(always)] static pure fn frac_1_sqrt2() -> f64 { 0.707106781186547524400844362104849039_f64 }
|
||||
#[inline(always)] static pure fn e() -> f64 { 2.71828182845904523536028747135266250_f64 }
|
||||
#[inline(always)] static pure fn log2_e() -> f64 { 1.44269504088896340735992468100189214_f64 }
|
||||
#[inline(always)] static pure fn log10_e() -> f64 { 0.434294481903251827651128918916605082_f64 }
|
||||
#[inline(always)] static pure fn ln_2() -> f64 { 0.693147180559945309417232121458176568_f64 }
|
||||
#[inline(always)] static pure fn ln_10() -> f64 { 2.30258509299404568401799145468436421_f64 }
|
||||
}
|
||||
|
||||
pub impl float: Float {
|
||||
#[inline(always)] pure fn to_float() -> float { self }
|
||||
#[inline(always)] static pure fn from_float(n: float) -> float { n }
|
||||
|
||||
#[inline(always)] static pure fn two_pi() -> float { 6.28318530717958647692528676655900576 }
|
||||
#[inline(always)] static pure fn pi() -> float { 3.14159265358979323846264338327950288 }
|
||||
#[inline(always)] static pure fn pi_2() -> float { 1.57079632679489661923132169163975144 }
|
||||
#[inline(always)] static pure fn pi_3() -> float { 1.04719755119659774615421446109316763 }
|
||||
#[inline(always)] static pure fn pi_4() -> float { 0.78539816339744830961566084581987572 }
|
||||
#[inline(always)] static pure fn pi_6() -> float { 0.52359877559829887307710723054658381 }
|
||||
#[inline(always)] static pure fn pi_8() -> float { 0.39269908169872415480783042290993786 }
|
||||
#[inline(always)] static pure fn frac_pi_2() -> float { 1.57079632679489661923132169163975144 }
|
||||
#[inline(always)] static pure fn frac_pi_4() -> float { 0.785398163397448309615660845819875721 }
|
||||
#[inline(always)] static pure fn frac_1_pi() -> float { 0.318309886183790671537767526745028724 }
|
||||
#[inline(always)] static pure fn frac_2_pi() -> float { 0.636619772367581343075535053490057448 }
|
||||
#[inline(always)] static pure fn frac_2_sqrtpi() -> float { 1.12837916709551257389615890312154517 }
|
||||
#[inline(always)] static pure fn sqrt2() -> float { 1.41421356237309504880168872420969808 }
|
||||
#[inline(always)] static pure fn frac_1_sqrt2() -> float { 0.707106781186547524400844362104849039 }
|
||||
#[inline(always)] static pure fn e() -> float { 2.71828182845904523536028747135266250 }
|
||||
#[inline(always)] static pure fn log2_e() -> float { 1.44269504088896340735992468100189214 }
|
||||
#[inline(always)] static pure fn log10_e() -> float { 0.434294481903251827651128918916605082 }
|
||||
#[inline(always)] static pure fn ln_2() -> float { 0.693147180559945309417232121458176568 }
|
||||
#[inline(always)] static pure fn ln_10() -> float { 2.30258509299404568401799145468436421 }
|
||||
}
|
Loading…
Reference in a new issue