From fbe36c4248ad9863de5cdd47956327b991e4e64b Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Mon, 27 May 2024 19:51:22 -0700 Subject: Fix order of operations. PEMDAS --- src/num.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/num.rs') 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 { -- cgit v1.3.1