1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
//! The meta crate that re-exports all `dashu` numeric types.
#![cfg_attr(not(feature = "std"), no_std)]
#![doc(
html_logo_url = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgdmlld0JveD0iMCAwIDUwMCA1MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIGZpbGw9IiNGNUYxRTYiLz48Y2lyY2xlIGN4PSIyNTAiIGN5PSIxNzAiIHI9IjEzMCIgZmlsbD0iI0YyRTVDOCIgb3BhY2l0eT0iMC43Ii8+PGNpcmNsZSBjeD0iMjUwIiBjeT0iMTgwIiByPSIxMDAiIGZpbGw9IiNFRURGQTkiIG9wYWNpdHk9IjAuNSIvPjxwYXRoIGQ9Ik0yNTAgMTE1QzMxMCAxMTUgMzU1IDE1MCAzNjUgMTk1QzQwNSAyMDUgNDQwIDI0NSA0NDAgMjk1QzQ0MCAzNDUgMzk1IDM3MCAzMzUgMzcwTDE2NSAzNzBDMTA1IDM3MCA2MCAzNDUgNjAgMjk1QzYwIDI0NSA5NSAyMDUgMTM1IDE5NUMxNDUgMTUwIDE5MCAxMTUgMjUwIDExNVoiIGZpbGw9IiMzRDVBNDUiLz48ZyBzdHJva2U9IiMzRDVBNDUiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSJub25lIj48bGluZSB4MT0iMTIwIiB5MT0iMzYwIiB4Mj0iMTIwIiB5Mj0iNDIwIi8+PGxpbmUgeDE9IjE1MCIgeTE9IjM3MCIgeDI9IjE1MCIgeTI9IjQ1MCIvPjxsaW5lIHgxPSIxNzUiIHkxPSIzNzAiIHgyPSIxNzUiIHkyPSI0MjUiLz48bGluZSB4MT0iMjAwIiB5MT0iMzcwIiB4Mj0iMjAwIiB5Mj0iNDM1Ii8+PGxpbmUgeDE9IjMwMCIgeTE9IjM3MCIgeDI9IjMwMCIgeTI9IjQzNSIvPjxsaW5lIHgxPSIzMjUiIHkxPSIzNzAiIHgyPSIzMjUiIHkyPSI0MjUiLz48bGluZSB4MT0iMzUwIiB5MT0iMzcwIiB4Mj0iMzUwIiB5Mj0iNDUwIi8+PGxpbmUgeDE9IjM4MCIgeTE9IjM2MCIgeDI9IjM4MCIgeTI9IjQyMCIvPjwvZz48ZyBzdHJva2U9IiNDODVBM0UiIHN0cm9rZS13aWR0aD0iOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMjMyIDQzNUwyMzIgMzQwUTIzMCAzMTAgMjEwIDI5NUwxOTggMjg3Ii8+PHBhdGggZD0iTTI2OCA0MzVMMjY4IDM0MFEyNzAgMzEwIDI5MCAyOTVMMzAyIDI4NyIvPjxsaW5lIHgxPSIyMTgiIHkxPSI0MzUiIHgyPSIyODIiIHkyPSI0MzUiLz48L2c+PC9zdmc+Cg=="
)]
#![deny(missing_docs)]
#![deny(clippy::dbg_macro)]
#![deny(clippy::undocumented_unsafe_blocks)]
#![deny(clippy::let_underscore_must_use)]
/// Defintions of common traits
pub mod base {
pub use dashu_base::*;
}
/// Arbitrary precision integer number
pub mod integer {
pub use dashu_int::*;
}
/// Arbitrary precision floating point number
pub mod float {
pub use dashu_float::*;
}
/// Arbitrary precision rational number
pub mod rational {
pub use dashu_ratio::*;
}
/// Arbitrary precision complex number
pub mod complex {
pub use dashu_cmplx::*;
}
#[doc(hidden)]
pub use dashu_macros as __dashu_macros;
#[macro_export]
#[doc = include_str!("macro-docs/ubig.md")]
macro_rules! ubig {
($($t:tt)+) => {
$crate::__dashu_macros::ubig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/static_ubig.md")]
macro_rules! static_ubig {
($($t:tt)+) => {
$crate::__dashu_macros::static_ubig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/ibig.md")]
macro_rules! ibig {
($($t:tt)+) => {
$crate::__dashu_macros::ibig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/static_ibig.md")]
macro_rules! static_ibig {
($($t:tt)+) => {
$crate::__dashu_macros::static_ibig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/fbig.md")]
macro_rules! fbig {
($($t:tt)+) => {
$crate::__dashu_macros::fbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/static_fbig.md")]
macro_rules! static_fbig {
($($t:tt)+) => {
$crate::__dashu_macros::static_fbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/dbig.md")]
macro_rules! dbig {
($($t:tt)+) => {
$crate::__dashu_macros::dbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/static_dbig.md")]
macro_rules! static_dbig {
($($t:tt)+) => {
$crate::__dashu_macros::static_dbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/rbig.md")]
macro_rules! rbig {
($($t:tt)+) => {
$crate::__dashu_macros::rbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/static_rbig.md")]
macro_rules! static_rbig {
($($t:tt)+) => {
$crate::__dashu_macros::static_rbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/cbig.md")]
macro_rules! cbig {
($($t:tt)+) => {
$crate::__dashu_macros::cbig_embedded!($($t)+)
}
}
#[macro_export]
#[doc = include_str!("macro-docs/static_cbig.md")]
macro_rules! static_cbig {
($($t:tt)+) => {
$crate::__dashu_macros::static_cbig_embedded!($($t)+)
}
}
/// A verbose alias for [UBig][dashu_int::UBig]
pub type Natural = dashu_int::UBig;
/// A verbose alias for [IBig][dashu_int::IBig]
pub type Integer = dashu_int::IBig;
/// A verbose alias for [FBig][dashu_float::FBig] (base 2, rounding towards zero)
pub type Real = dashu_float::FBig;
/// A verbose alias for [CachedFBig][dashu_float::CachedFBig] (base 2, rounding towards zero) — the
/// cached, faster variant of [`Real`] for transcendental-heavy code. `!Send + !Sync`.
pub type FastReal = dashu_float::CachedFBig;
/// A verbose alias for [DBig][dashu_float::DBig] (base 10, rounding to the nearest)
pub type Decimal = dashu_float::DBig;
/// A verbose alias for the base-10 [CachedFBig][dashu_float::CachedFBig] (rounding to nearest) — the
/// cached, faster variant of [`Decimal`]. `!Send + !Sync`.
pub type FastDecimal = dashu_float::CachedFBig<dashu_float::round::mode::HalfAway, 10>;
/// A verbose alias for [RBig][dashu_ratio::RBig]
pub type Rational = dashu_ratio::RBig;
/// A verbose alias for [CBig][dashu_cmplx::CBig] (base 2, rounding towards zero)
pub type Complex = dashu_cmplx::CBig;
/// A verbose alias for [CachedCBig][dashu_cmplx::CachedCBig] (base 2, rounding towards zero) — the
/// cached, faster variant of [`Complex`] for transcendental-heavy code. `!Send + !Sync`.
pub type FastComplex = dashu_cmplx::CachedCBig;