These were moved to their own trait and removed from the definition of a Real number. This allows the definition of a trigonometric function to call a different libc trig function depending on type.
48 lines
963 B
Rust
48 lines
963 B
Rust
extern crate pact;
|
|
extern crate sigils;
|
|
|
|
|
|
|
|
use ::sigils::{Constants, Degree, Radian, Trig};
|
|
|
|
|
|
|
|
fn main()
|
|
{
|
|
let mut val: f64;
|
|
let mut degrees: Degree<f64>;
|
|
let mut radians: Radian<f64>;
|
|
|
|
val = Constants::QUARTER_PI;
|
|
val *= 6f64;
|
|
radians = Radian::new(val);
|
|
degrees = Trig::acos(Trig::cos(radians));
|
|
|
|
println!("{:?}", radians);
|
|
println!("{:?}", degrees);
|
|
println!("");
|
|
|
|
radians = Radian::new(Constants::QUARTER_PI);
|
|
radians = Trig::acos(Trig::cos(radians));
|
|
degrees = Degree::from(radians);
|
|
|
|
println!("{:?}", radians);
|
|
println!("{:?}", degrees);
|
|
println!("");
|
|
|
|
degrees = Degree::new(270.0f64);
|
|
radians = Trig::acos(Trig::cos(degrees));
|
|
|
|
println!("{:?}", degrees);
|
|
println!("{:?}", radians);
|
|
println!("");
|
|
|
|
degrees = Degree::new(90.0f64);
|
|
degrees = Trig::acos(Trig::cos(degrees));
|
|
radians = Radian::from(degrees);
|
|
|
|
println!("{:?}", degrees);
|
|
println!("{:?}", radians);
|
|
println!("");
|
|
}
|