public static InfinityNumber rt(this InfinityNumber n1, float root) { var mod = n1.Postfix % (int)root; var divided = n1.Postfix / (int)root; var downScaled = (double)new InfinityNumber(n1.Prefix, mod); var prefix = Math.Pow(downScaled, 1D / root); var result = new InfinityNumber(prefix) * new InfinityNumber(1, divided); return(result); }
public static BigInteger abs(this InfinityNumber n1) { var s = n1.Prefix.ToString(); var splitted = s.Split(","); var decimals = splitted[1]; var abs = n1.Prefix * Math.Pow(10, decimals.Length); //var doublsAbs = n1.Prefix * Math.Pow(10, n1.Prefix.ToString().Split(".")[1].Length); return(new BigInteger(abs)); //return new BigInteger(Math.Abs(n1.Prefix)); }
public static BigInteger abs(this InfinityNumber n1, out int scaled) { var s = n1.Prefix.ToString(); if (s.Contains(",")) { var splitted = s.Split(","); var decimals = splitted[1]; var abs = n1.Prefix * Math.Pow(10, decimals.Length); scaled = decimals.Length; return(new BigInteger(abs)); } else { scaled = 0; return(new BigInteger(n1.Prefix)); } }
public static InfinityNumber Clone(this InfinityNumber n1) => new InfinityNumber(n1.Prefix, n1.Postfix);