astro_float_num/common/
consts.rs

1//! Static constants.
2
3use crate::{defs::DEFAULT_P, num::BigFloatNumber, Exponent, WORD_BIT_SIZE};
4use lazy_static::lazy_static;
5
6#[cfg(feature = "std")]
7use crate::ops::consts::Consts;
8#[cfg(feature = "std")]
9use core::cell::RefCell;
10
11lazy_static! {
12
13    /// 1
14    pub(crate) static ref ONE: BigFloatNumber = BigFloatNumber::from_word(1, DEFAULT_P).expect("Constant ONE initialization.");
15
16    /// 2
17    pub(crate) static ref TWO: BigFloatNumber = BigFloatNumber::from_word(2, DEFAULT_P).expect("Constant TWO initialization.");
18
19    /// 4
20    pub(crate) static ref FOUR: BigFloatNumber = BigFloatNumber::from_word(4, DEFAULT_P).expect("Constant FOUR initialization.");
21
22    /// 6
23    pub(crate) static ref SIX: BigFloatNumber = BigFloatNumber::from_word(6, DEFAULT_P).expect("Constant SIX initialization.");
24
25    /// 8
26    pub(crate) static ref EIGHT: BigFloatNumber = BigFloatNumber::from_word(8, DEFAULT_P).expect("Constant EIGHT initialization.");
27
28    /// 16
29    pub(crate) static ref SIXTEEN: BigFloatNumber = BigFloatNumber::from_word(16, DEFAULT_P).expect("Constant SIXTEEN initialization.");
30
31    /// 3
32    pub(crate) static ref THREE: BigFloatNumber = BigFloatNumber::from_word(3, DEFAULT_P).expect("Constant THREE initialization.");
33
34    /// 5
35    pub(crate) static ref FIVE: BigFloatNumber = BigFloatNumber::from_word(5, DEFAULT_P).expect("Constant FIVE initialization.");
36
37    /// 10
38    pub(crate) static ref TEN: BigFloatNumber = BigFloatNumber::from_word(10, DEFAULT_P).expect("Constant TEN initialization.");
39
40    /// 15
41    pub(crate) static ref FIFTEEN: BigFloatNumber = BigFloatNumber::from_word(15, DEFAULT_P).expect("Constant FIFTEEN initialization.");
42
43    /// 24
44    pub(crate) static ref C24: BigFloatNumber = BigFloatNumber::from_word(24, DEFAULT_P).expect("Constant C24 initialization.");
45
46    /// 40
47    pub(crate) static ref FOURTY: BigFloatNumber = BigFloatNumber::from_word(40, DEFAULT_P).expect("Constant FOURTY initialization.");
48
49    /// 120
50    pub(crate) static ref C120: BigFloatNumber = BigFloatNumber::from_word(120, DEFAULT_P).expect("Constant C24 initialization.");
51}
52
53// TODO: Consider using in std environment everywhere Consts are needed.
54#[cfg(feature = "std")]
55thread_local! {
56    pub static TENPOWERS: RefCell<Consts> = RefCell::new(Consts::new().expect("Failed to initialize thread-local constants cache"));
57}
58
59pub const TRIG_EXP_THRES: Exponent = -(WORD_BIT_SIZE as Exponent);