scratch_test_value/math/sqrt.rs
1use crate::SNumber;
2
3impl SNumber {
4 pub fn sqrt(&self) -> SNumber {
5 match self {
6 Self::Int(i) => {
7 if *i < 0 {
8 return SNumber::NAN;
9 }
10 SNumber::Float((*i as f64).sqrt())
11 }
12 Self::Float(f) => {
13 if f.is_nan() {
14 return SNumber::Int(0);
15 }
16 if f.is_sign_negative() {
17 return SNumber::NAN;
18 }
19 SNumber::Float(f.sqrt())
20 }
21 }
22 }
23}