diff options
Diffstat (limited to 'src/num.rs')
| -rw-r--r-- | src/num.rs | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -1,7 +1,7 @@ use num_bigint::BigInt; use num_traits::cast::ToPrimitive; use num_traits::pow::Pow; -use num_traits::FromPrimitive; +use num_traits::{FromPrimitive, Signed}; use std::fmt::{Display, Formatter}; pub enum Num { @@ -128,6 +128,14 @@ impl Num { float(self.as_float().ln()) } + pub fn log10(self) -> Num { + float(self.as_float().log10()) + } + + pub fn log2(self) -> Num { + float(self.as_float().log2()) + } + pub fn floor(self) -> Num { match self { Num::Int(i) => int(i), @@ -163,6 +171,13 @@ impl Num { } } } + + pub fn abs(self) -> Num { + match self { + Num::Int(i) => int(i.abs()), + Num::Float(f) => float(f.abs()), + } + } } fn format_float(f: f64) -> String { |
