@@ -15,7 +15,112 @@ use crate::mem;
1515
1616/// Basic mathematical constants.
1717#[ unstable( feature = "f16" , issue = "116909" ) ]
18- pub mod consts { }
18+ pub mod consts {
19+ // FIXME: replace with mathematical constants from cmath.
20+
21+ /// Archimedes' constant (π)
22+ #[ unstable( feature = "f16" , issue = "116909" ) ]
23+ pub const PI : f16 = 3.14159265358979323846264338327950288_f16 ;
24+
25+ /// The full circle constant (τ)
26+ ///
27+ /// Equal to 2π.
28+ #[ unstable( feature = "f16" , issue = "116909" ) ]
29+ pub const TAU : f16 = 6.28318530717958647692528676655900577_f16 ;
30+
31+ /// The golden ratio (φ)
32+ #[ unstable( feature = "f16" , issue = "116909" ) ]
33+ // Also, #[unstable(feature = "more_float_constants", issue = "103883")]
34+ pub const PHI : f16 = 1.618033988749894848204586834365638118_f16 ;
35+
36+ /// The Euler-Mascheroni constant (γ)
37+ #[ unstable( feature = "f16" , issue = "116909" ) ]
38+ // Also, #[unstable(feature = "more_float_constants", issue = "103883")]
39+ pub const EGAMMA : f16 = 0.577215664901532860606512090082402431_f16 ;
40+
41+ /// π/2
42+ #[ unstable( feature = "f16" , issue = "116909" ) ]
43+ pub const FRAC_PI_2 : f16 = 1.57079632679489661923132169163975144_f16 ;
44+
45+ /// π/3
46+ #[ unstable( feature = "f16" , issue = "116909" ) ]
47+ pub const FRAC_PI_3 : f16 = 1.04719755119659774615421446109316763_f16 ;
48+
49+ /// π/4
50+ #[ unstable( feature = "f16" , issue = "116909" ) ]
51+ pub const FRAC_PI_4 : f16 = 0.785398163397448309615660845819875721_f16 ;
52+
53+ /// π/6
54+ #[ unstable( feature = "f16" , issue = "116909" ) ]
55+ pub const FRAC_PI_6 : f16 = 0.52359877559829887307710723054658381_f16 ;
56+
57+ /// π/8
58+ #[ unstable( feature = "f16" , issue = "116909" ) ]
59+ pub const FRAC_PI_8 : f16 = 0.39269908169872415480783042290993786_f16 ;
60+
61+ /// 1/π
62+ #[ unstable( feature = "f16" , issue = "116909" ) ]
63+ pub const FRAC_1_PI : f16 = 0.318309886183790671537767526745028724_f16 ;
64+
65+ /// 1/sqrt(π)
66+ #[ unstable( feature = "f16" , issue = "116909" ) ]
67+ // Also, #[unstable(feature = "more_float_constants", issue = "103883")]
68+ pub const FRAC_1_SQRT_PI : f16 = 0.564189583547756286948079451560772586_f16 ;
69+
70+ /// 2/π
71+ #[ unstable( feature = "f16" , issue = "116909" ) ]
72+ pub const FRAC_2_PI : f16 = 0.636619772367581343075535053490057448_f16 ;
73+
74+ /// 2/sqrt(π)
75+ #[ unstable( feature = "f16" , issue = "116909" ) ]
76+ pub const FRAC_2_SQRT_PI : f16 = 1.12837916709551257389615890312154517_f16 ;
77+
78+ /// sqrt(2)
79+ #[ unstable( feature = "f16" , issue = "116909" ) ]
80+ pub const SQRT_2 : f16 = 1.41421356237309504880168872420969808_f16 ;
81+
82+ /// 1/sqrt(2)
83+ #[ unstable( feature = "f16" , issue = "116909" ) ]
84+ pub const FRAC_1_SQRT_2 : f16 = 0.707106781186547524400844362104849039_f16 ;
85+
86+ /// sqrt(3)
87+ #[ unstable( feature = "f16" , issue = "116909" ) ]
88+ // Also, #[unstable(feature = "more_float_constants", issue = "103883")]
89+ pub const SQRT_3 : f16 = 1.732050807568877293527446341505872367_f16 ;
90+
91+ /// 1/sqrt(3)
92+ #[ unstable( feature = "f16" , issue = "116909" ) ]
93+ // Also, #[unstable(feature = "more_float_constants", issue = "103883")]
94+ pub const FRAC_1_SQRT_3 : f16 = 0.577350269189625764509148780501957456_f16 ;
95+
96+ /// Euler's number (e)
97+ #[ unstable( feature = "f16" , issue = "116909" ) ]
98+ pub const E : f16 = 2.71828182845904523536028747135266250_f16 ;
99+
100+ /// log<sub>2</sub>(10)
101+ #[ unstable( feature = "f16" , issue = "116909" ) ]
102+ pub const LOG2_10 : f16 = 3.32192809488736234787031942948939018_f16 ;
103+
104+ /// log<sub>2</sub>(e)
105+ #[ unstable( feature = "f16" , issue = "116909" ) ]
106+ pub const LOG2_E : f16 = 1.44269504088896340735992468100189214_f16 ;
107+
108+ /// log<sub>10</sub>(2)
109+ #[ unstable( feature = "f16" , issue = "116909" ) ]
110+ pub const LOG10_2 : f16 = 0.301029995663981195213738894724493027_f16 ;
111+
112+ /// log<sub>10</sub>(e)
113+ #[ unstable( feature = "f16" , issue = "116909" ) ]
114+ pub const LOG10_E : f16 = 0.434294481903251827651128918916605082_f16 ;
115+
116+ /// ln(2)
117+ #[ unstable( feature = "f16" , issue = "116909" ) ]
118+ pub const LN_2 : f16 = 0.693147180559945309417232121458176568_f16 ;
119+
120+ /// ln(10)
121+ #[ unstable( feature = "f16" , issue = "116909" ) ]
122+ pub const LN_10 : f16 = 2.30258509299404568401799145468436421_f16 ;
123+ }
19124
20125#[ cfg( not( test) ) ]
21126impl f16 {
0 commit comments