aboutsummaryrefslogtreecommitdiffstats
path: root/src/num.rs
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2024-05-27 19:51:22 -0700
committerRose Hogenson <rosehogenson@posteo.net>2024-05-27 19:51:22 -0700
commitfbe36c4248ad9863de5cdd47956327b991e4e64b (patch)
treec910fee68e6da27b6d540eb983912cbee6b47962 /src/num.rs
parent17a76d59cfac2a19f22e28a6582008b667b5106c (diff)
downloadqc-fbe36c4248ad9863de5cdd47956327b991e4e64b.tar.zst
Fix order of operations.
PEMDAS
Diffstat (limited to 'src/num.rs')
-rw-r--r--src/num.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/num.rs b/src/num.rs
index f17c076..10dfea2 100644
--- a/src/num.rs
+++ b/src/num.rs
@@ -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 {