diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2024-05-27 19:51:22 -0700 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2024-05-27 19:51:22 -0700 |
| commit | fbe36c4248ad9863de5cdd47956327b991e4e64b (patch) | |
| tree | c910fee68e6da27b6d540eb983912cbee6b47962 /src/num.rs | |
| parent | 17a76d59cfac2a19f22e28a6582008b667b5106c (diff) | |
| download | qc-fbe36c4248ad9863de5cdd47956327b991e4e64b.tar.zst | |
Fix order of operations.
PEMDAS
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 { |
