static void Main(string[] args) { //Run().Wait(); mpf_t x = -1; Console.WriteLine(x.ToString()); x *= x; Console.WriteLine(x.ToString()); }
public void BasicSqrt() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = a.Sqrt(); AsString = b.ToString(); Assert.AreEqual("4.71709478920500704353E+12", AsString); }
public void AddUint() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); uint b = 98873014; using mpf_t c = a + b; AsString = c.ToString(); Assert.AreEqual("2.22509832503450299334E+25", AsString); }
public void MulIntNegative() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); int b = -98873014; using mpf_t c = a * b; AsString = c.ToString(); Assert.AreEqual("-2.20002177842512963966E+33", AsString); }
public void AddIntNegative() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); int b = -98873014; using mpf_t c = a + b; AsString = c.ToString(); Assert.AreEqual("2.22509832503450297356E+25", AsString); }
public void DivIntNegative() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); int b = -98873014; using mpf_t c = a / b; AsString = c.ToString(); Assert.AreEqual("-2.25046070208247417587E+17", AsString); }
public void UintDiv() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); uint b = 98873014; using mpf_t c = b / a; AsString = c.ToString(); Assert.AreEqual("4.44353460193570762729E-18", AsString); }
public void UintSub() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); uint b = 98873014; using mpf_t c = b - a; AsString = c.ToString(); Assert.AreEqual("-2.22509832503450297356E+25", AsString); }
public void BasicPow() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); uint b = 89; using mpf_t c = a.Pow(b); AsString = c.ToString(); Assert.AreEqual("8.20501550859436020769E+2255", AsString); }
public void LeftShift() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); int b = 50; using mpf_t c = a << b; AsString = c.ToString(); Assert.AreEqual("2.50523799687202560686E+40", AsString); }
public void RightShift() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); int b = 50; using mpf_t c = a >> b; AsString = c.ToString(); Assert.AreEqual("1.97628431400654046208E+10", AsString); }
public void DivOperator() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); using mpf_t c = a / b; AsString = c.ToString(); Assert.AreEqual("9.97858159665290867233E+9", AsString); }
public void AddOperator() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); using mpf_t c = a + b; AsString = c.ToString(); Assert.AreEqual("2.22509832525749041944E+25", AsString); }
public void MulOperator() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); using mpf_t c = a * b; AsString = c.ToString(); Assert.AreEqual("4.96168970320598825788E+40", AsString); }
public void BasicSub() { string AsString; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); using mpf_t c = new(); mpf.sub(c, a, b); AsString = c.ToString(); Assert.AreEqual("2.22509832481151554746E+25", AsString); }
public void Rounding() { string AsString; using mpf_t a = new mpf_t("2983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.983574029384572E+3", AsString); using mpf_t b = a.Ceil(); AsString = b.ToString(); Assert.AreEqual("2.984E+3", AsString); using mpf_t c = a.Floor(); AsString = c.ToString(); Assert.AreEqual("2.983E+3", AsString); using mpf_t d = a.Trunc(); AsString = d.ToString(); Assert.AreEqual("2.983E+3", AsString); }
public void IsEqual() { string AsString; bool IsEqualTo; bool IsDifferentThan; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); using mpf_t c = a; IsEqualTo = a == c; Assert.IsTrue(IsEqualTo); IsDifferentThan = a != b; Assert.IsTrue(IsDifferentThan); }
public void LesserThan() { string AsString; bool IsLesserThan; using mpf_t a = new mpf_t("-22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("-2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); IsLesserThan = a < b; Assert.IsTrue(IsLesserThan); IsLesserThan = mpf.cmp_si(a, -1922215141) < 0; Assert.IsTrue(IsLesserThan); double d = 2e5; IsLesserThan = d < b; Assert.IsTrue(IsLesserThan); int e = -10; IsLesserThan = e < b; Assert.IsTrue(IsLesserThan); int f = -10; IsLesserThan = f < b; Assert.IsTrue(IsLesserThan); float g = 2e5F; IsLesserThan = g < b; Assert.IsTrue(IsLesserThan); }
public void GreaterThan() { string AsString; bool IsGreaterThan; using mpf_t a = new mpf_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpf_t b = new mpf_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982730594E+15", AsString); IsGreaterThan = a > b; Assert.IsTrue(IsGreaterThan); IsGreaterThan = mpf.cmp_ui(a, 1922215141) > 0; Assert.IsTrue(IsGreaterThan); double d = 2e25; IsGreaterThan = a > d; Assert.IsTrue(IsGreaterThan); int e = -10; IsGreaterThan = a > e; Assert.IsTrue(IsGreaterThan); uint f = 10; IsGreaterThan = a > f; Assert.IsTrue(IsGreaterThan); float g = 2e25F; IsGreaterThan = a > g; Assert.IsTrue(IsGreaterThan); }
public void GreaterEqual() { string AsString; bool IsGreaterThan; Assert.IsTrue(mpfr_t.LiveObjectCount() == 0); using mpfr_t a = new mpfr_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.225098325034502799228928E+25", AsString); using mpfr_t b = new mpfr_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982725E+15", AsString); IsGreaterThan = a >= b; Assert.IsTrue(IsGreaterThan); IsGreaterThan = b >= a; Assert.IsFalse(IsGreaterThan); IsGreaterThan = a >= 1UL; Assert.IsTrue(IsGreaterThan); IsGreaterThan = 1UL >= a; Assert.IsFalse(IsGreaterThan); IsGreaterThan = a >= 1L; Assert.IsTrue(IsGreaterThan); IsGreaterThan = 1L >= a; Assert.IsFalse(IsGreaterThan); IsGreaterThan = a >= 1.0; Assert.IsTrue(IsGreaterThan); IsGreaterThan = 1.0 >= a; Assert.IsFalse(IsGreaterThan); using mpz_t c = new mpz_t("222509832503450298345029"); AsString = c.ToString(); Assert.AreEqual("222509832503450298345029", AsString); IsGreaterThan = a >= c; Assert.IsTrue(IsGreaterThan); IsGreaterThan = c >= a; Assert.IsFalse(IsGreaterThan); using mpq_t d = new mpq_t("222509832503450298345029835740293845720/115756986668303657898962467957"); AsString = d.ToString(); Assert.AreEqual("222509832503450298345029835740293845720/115756986668303657898962467957", AsString); IsGreaterThan = a >= d; Assert.IsTrue(IsGreaterThan); IsGreaterThan = d >= a; Assert.IsFalse(IsGreaterThan); using mpf_t e = new mpf_t("222583250345029834502983.5"); AsString = e.ToString(); Assert.AreEqual("2.22583250345029834503E+23", AsString); IsGreaterThan = a >= e; Assert.IsTrue(IsGreaterThan); IsGreaterThan = e >= a; Assert.IsFalse(IsGreaterThan); }
public void Different() { string AsString; bool IsEqualTo; Assert.IsTrue(mpfr_t.LiveObjectCount() == 0); using mpfr_t a = new mpfr_t("22250983250345029834502983.5740293845720"); AsString = a.ToString(); Assert.AreEqual("2.225098325034502799228928E+25", AsString); using mpfr_t b = new mpfr_t("2229874359879827.30594288574029879874539"); AsString = b.ToString(); Assert.AreEqual("2.22987435987982725E+15", AsString); IsEqualTo = a != b; Assert.IsTrue(IsEqualTo); IsEqualTo = b != a; Assert.IsTrue(IsEqualTo); IsEqualTo = a != 1UL; Assert.IsTrue(IsEqualTo); IsEqualTo = 1UL != a; Assert.IsTrue(IsEqualTo); IsEqualTo = a != 1L; Assert.IsTrue(IsEqualTo); IsEqualTo = 1L != a; Assert.IsTrue(IsEqualTo); IsEqualTo = a != 1.0; Assert.IsTrue(IsEqualTo); IsEqualTo = 1.0 != a; Assert.IsTrue(IsEqualTo); using mpz_t c = new mpz_t("222509832503450298345029"); AsString = c.ToString(); Assert.AreEqual("222509832503450298345029", AsString); IsEqualTo = a != c; Assert.IsTrue(IsEqualTo); IsEqualTo = c != a; Assert.IsTrue(IsEqualTo); using mpq_t d = new mpq_t("222509832503450298345029835740293845720/115756986668303657898962467957"); AsString = d.ToString(); Assert.AreEqual("222509832503450298345029835740293845720/115756986668303657898962467957", AsString); IsEqualTo = a != d; Assert.IsTrue(IsEqualTo); IsEqualTo = d != a; Assert.IsTrue(IsEqualTo); using mpf_t e = new mpf_t("222583250345029834502983.5"); AsString = e.ToString(); Assert.AreEqual("2.22583250345029834503E+23", AsString); IsEqualTo = a != e; Assert.IsTrue(IsEqualTo); IsEqualTo = e != a; Assert.IsTrue(IsEqualTo); }
public void GreaterThan() { string AsString; bool IsGreaterThan; Assert.IsTrue(mpfr_t.LiveObjectCount() == 0); ulong DefaultPrecision = mpfr_t.DefaultPrecision; mpfr_t.DefaultPrecision = 128; using mpfr_t a = new mpfr_t("8720124937520142.5"); AsString = a.ToString(); Assert.AreEqual("8.7201249375201425E+15", AsString); using mpfr_t b = new mpfr_t("22298.125"); AsString = b.ToString(); Assert.AreEqual("2.2298125E+4", AsString); IsGreaterThan = a > b; Assert.IsTrue(IsGreaterThan); IsGreaterThan = b > a; Assert.IsFalse(IsGreaterThan); IsGreaterThan = a > 8720124937520142UL; Assert.IsTrue(IsGreaterThan); IsGreaterThan = a > 8720124937520143UL; Assert.IsFalse(IsGreaterThan); IsGreaterThan = 8720124937520142UL > a; Assert.IsFalse(IsGreaterThan); IsGreaterThan = 8720124937520143UL > a; Assert.IsTrue(IsGreaterThan); IsGreaterThan = a > 8720124937520142L; Assert.IsTrue(IsGreaterThan); IsGreaterThan = a > 8720124937520143L; Assert.IsFalse(IsGreaterThan); IsGreaterThan = 8720124937520142L > a; Assert.IsFalse(IsGreaterThan); IsGreaterThan = 8720124937520143L > a; Assert.IsTrue(IsGreaterThan); IsGreaterThan = a > 8720124937520142.1; Assert.IsTrue(IsGreaterThan); IsGreaterThan = 8720124937520142.9 > a; Assert.IsTrue(IsGreaterThan); using mpz_t c = new mpz_t("1720124937520142"); AsString = c.ToString(); Assert.AreEqual("1720124937520142", AsString); IsGreaterThan = a > c; Assert.IsTrue(IsGreaterThan); IsGreaterThan = c > a; Assert.IsFalse(IsGreaterThan); using mpq_t d = new mpq_t("222509832503450298345029835740293845720/115756986668303657898962467957"); AsString = d.ToString(); Assert.AreEqual("222509832503450298345029835740293845720/115756986668303657898962467957", AsString); IsGreaterThan = a > d; Assert.IsTrue(IsGreaterThan); IsGreaterThan = d > a; Assert.IsFalse(IsGreaterThan); using mpf_t e = new mpf_t("8720124937520142.1"); AsString = e.ToString(); Assert.AreEqual("8.7201249375201421E+15", AsString); IsGreaterThan = a > e; Assert.IsTrue(IsGreaterThan); IsGreaterThan = e > a; Assert.IsFalse(IsGreaterThan); mpfr_t.DefaultPrecision = DefaultPrecision; }
public void Create() { string AsString; using mpf_t a = new mpf_t(); AsString = a.ToString(); Assert.AreEqual("0", AsString); Assert.IsTrue(a.IsInteger); Assert.IsTrue(a.Sign == 0); ulong DefaultPrecision = mpf.get_default_prec(); Assert.AreEqual(DefaultPrecision, 64UL); Assert.AreEqual(a.Precision, DefaultPrecision); using mpf_t b = new mpf_t(10U); AsString = b.ToString(); Assert.AreEqual("1E+1", AsString); Assert.AreEqual((uint)b, 10U); using mpf_t c = new mpf_t(-10); AsString = c.ToString(); Assert.AreEqual("-1E+1", AsString); Assert.AreEqual((int)c, -10); using mpf_t d = new mpf_t(10U, DefaultPrecision); AsString = d.ToString(); Assert.AreEqual("1E+1", AsString); using mpf_t e = new mpf_t(-10, DefaultPrecision); AsString = e.ToString(); Assert.AreEqual("-1E+1", AsString); using mpf_t f = new mpf_t(50.2); AsString = f.ToString(); Assert.AreEqual("5.02000000000000028422E+1", AsString); Assert.AreEqual((double)f, 50.2); using mpf_t g = new mpf_t(50.2, DefaultPrecision + 64); AsString = g.ToString(); Assert.AreEqual("5.02000000000000028421709430404007434845E+1", AsString); Assert.AreEqual(g.Precision, DefaultPrecision + 64); using mpf_t h = new mpf_t("2225098325034502983450298.3574029384572"); AsString = h.ToString(); Assert.AreEqual("2.22509832503450298345E+24", AsString); using mpf_t i = new mpf_t("2225098325034502983450298.3574029384572", 10, 200); AsString = i.ToString(); Assert.AreEqual("2.2250983250345029834502983574029384572E+24", AsString); using mpf_t j = new mpf_t(i); AsString = j.ToString(); Assert.AreEqual("2.2250983250345029834502983574029384572E+24", AsString); using mpf_t k = new mpf_t(i, true); AsString = k.ToString(); Assert.AreEqual("2.22509832503450298345E+24", AsString); using mpf_t l = -k; AsString = l.ToString(); Assert.AreEqual("-2.22509832503450298345E+24", AsString); using mpf_t m = l.Abs(); AsString = m.ToString(); Assert.AreEqual("2.22509832503450298345E+24", AsString); using mpf_t p = new mpf_t("68719476735"); AsString = p.ToString(); Assert.AreEqual("6.8719476735E+10", AsString); ulong UlongCast = (ulong)p; Assert.AreEqual(UlongCast, 68719476735UL); using mpf_t q = new mpf_t("2147483647"); AsString = q.ToString(); Assert.AreEqual("2.147483647E+9", AsString); uint UintCast = (uint)q; Assert.AreEqual(UintCast, 2147483647U); }
public void CreateFrom() { string AsString; Assert.IsTrue(mpfr_t.LiveObjectCount() == 0); using mpfr_t NaN = new mpfr_t(); AsString = NaN.ToString(); Assert.AreEqual("@NaN@", AsString); using mpfr_t PositiveInfinite = mpfr_t.Infinite(); AsString = PositiveInfinite.ToString(); Assert.AreEqual("@Inf@", AsString); using mpfr_t NegativeInfinite = mpfr_t.Infinite(-1); AsString = NegativeInfinite.ToString(); Assert.AreEqual("-@Inf@", AsString); using mpfr_t Zero = mpfr_t.Zero(); AsString = Zero.ToString(); Assert.AreEqual("0", AsString); using mpfr_t NegativeZero = mpfr_t.Zero(-1); AsString = NegativeZero.ToString(); Assert.AreEqual("-0", AsString); using mpfr_t b = new mpfr_t(10); AsString = b.ToString(); Assert.AreEqual("1E+1", AsString); using mpfr_t c = new mpfr_t(b); AsString = c.ToString(); Assert.AreEqual("1E+1", AsString); using mpfr_t d = new mpfr_t(100UL); AsString = d.ToString(); Assert.AreEqual("1E+2", AsString); using mpfr_t e = new mpfr_t(-100L); AsString = e.ToString(); Assert.AreEqual("-1E+2", AsString); using mpfr_t f = new mpfr_t(100U); AsString = f.ToString(); Assert.AreEqual("1E+2", AsString); using mpfr_t g = new mpfr_t(200.1F); AsString = g.ToString(); Assert.AreEqual("2.00100006103515625E+2", AsString); using mpfr_t h = new mpfr_t(-200.1); AsString = h.ToString(); Assert.AreEqual("-2.00099999999999994315658113919198513031005859375E+2", AsString); using mpz_t iz = new mpz_t("10123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", 16); AsString = iz.ToString(16).ToUpper(); Assert.AreEqual("10123456789ABCDEF0123456789ABCDEF0123456789ABCDEF", AsString); using mpfr_t i = new mpfr_t(iz); AsString = i.ToString(); Assert.AreEqual("6.3049999653217328579866181421408313514338742205512312E+57", AsString); using mpq_t jq = new mpq_t("222509832503450298345029835740293845720/115756986668303657898962467957"); AsString = jq.ToString(); Assert.AreEqual("222509832503450298345029835740293845720/115756986668303657898962467957", AsString); using mpfr_t j = new mpfr_t(jq); AsString = j.ToString(); Assert.AreEqual("1.9222151414587357044219970703125E+9", AsString); using mpf_t kf = new mpf_t("22250983250345029834502983.5740293845720"); AsString = kf.ToString(); Assert.AreEqual("2.22509832503450298345E+25", AsString); using mpfr_t k = new mpfr_t(kf); AsString = k.ToString(); Assert.AreEqual("2.225098325034502799228928E+25", AsString); using mpfr_t l = new mpfr_t("22250983250345029834502983.5740293845720"); AsString = l.ToString(); Assert.AreEqual("2.225098325034502799228928E+25", AsString); }