From 920464f82c39a783f5f201254648854fc3242576 Mon Sep 17 00:00:00 2001 From: Christian Ohle Date: Sat, 9 Jul 2022 11:57:10 +0200 Subject: [PATCH] MathR LCM, IDiv, IMod, DivRem, benchmarks --- System.Numerics.Rational/BigRational.cs | 32 +- System.Numerics.Rational/MathR.cs | 97 +++ Test/BenchmarksPage.Designer.cs | 11 +- Test/BenchmarksPage.cs | 82 +-- Test/BenchmarksPage.resx | 18 + Test/PolyhedronPage.Designer.cs | 44 +- Test/PolyhedronPage.resx | 40 +- Test/Program.cs | 78 +++ Test/math/MathR experimental.cs | 58 +- Test/templ/benchmarks2.htm | 2 +- .../System.Numerics.BigRational.-ctor.html | 21 +- ...System.Numerics.BigRational.CPU.-ctor.html | 21 +- .../System.Numerics.BigRational.CPU.abs.html | 21 +- .../System.Numerics.BigRational.CPU.add.html | 21 +- .../System.Numerics.BigRational.CPU.and.html | 21 +- .../System.Numerics.BigRational.CPU.atan.html | 21 +- .../System.Numerics.BigRational.CPU.bdi.html | 21 +- .../System.Numerics.BigRational.CPU.cmp.html | 21 +- .../System.Numerics.BigRational.CPU.cmpa.html | 21 +- .../System.Numerics.BigRational.CPU.cmpi.html | 21 +- .../System.Numerics.BigRational.CPU.div.html | 21 +- .../System.Numerics.BigRational.CPU.dup.html | 21 +- .../System.Numerics.BigRational.CPU.equ.html | 21 +- .../System.Numerics.BigRational.CPU.exp.html | 21 +- .../System.Numerics.BigRational.CPU.fac.html | 21 +- .../System.Numerics.BigRational.CPU.free.html | 21 +- .../System.Numerics.BigRational.CPU.gcd.html | 21 +- .../System.Numerics.BigRational.CPU.get.html | 21 +- .../System.Numerics.BigRational.CPU.hash.html | 21 +- docs/api/System.Numerics.BigRational.CPU.html | 39 +- .../System.Numerics.BigRational.CPU.inv.html | 21 +- .../System.Numerics.BigRational.CPU.isi.html | 21 +- .../System.Numerics.BigRational.CPU.lim.html | 21 +- .../System.Numerics.BigRational.CPU.log.html | 21 +- .../System.Numerics.BigRational.CPU.log2.html | 21 +- .../System.Numerics.BigRational.CPU.lsb.html | 21 +- .../System.Numerics.BigRational.CPU.mark.html | 21 +- .../System.Numerics.BigRational.CPU.mod.html | 21 +- .../System.Numerics.BigRational.CPU.msb.html | 21 +- .../System.Numerics.BigRational.CPU.mul.html | 21 +- .../System.Numerics.BigRational.CPU.neg.html | 21 +- .../System.Numerics.BigRational.CPU.norm.html | 21 +- .../System.Numerics.BigRational.CPU.or.html | 21 +- .../System.Numerics.BigRational.CPU.pi.html | 21 +- .../System.Numerics.BigRational.CPU.pop.html | 21 +- .../System.Numerics.BigRational.CPU.popd.html | 21 +- .../System.Numerics.BigRational.CPU.popi.html | 21 +- .../System.Numerics.BigRational.CPU.popr.html | 21 +- .../System.Numerics.BigRational.CPU.pow.html | 21 +- .../System.Numerics.BigRational.CPU.push.html | 21 +- .../System.Numerics.BigRational.CPU.rnd.html | 21 +- .../System.Numerics.BigRational.CPU.shl.html | 21 +- .../System.Numerics.BigRational.CPU.shr.html | 21 +- .../System.Numerics.BigRational.CPU.sign.html | 21 +- .../System.Numerics.BigRational.CPU.sin.html | 21 +- .../System.Numerics.BigRational.CPU.sqr.html | 21 +- .../System.Numerics.BigRational.CPU.sqrt.html | 21 +- .../System.Numerics.BigRational.CPU.sub.html | 21 +- .../System.Numerics.BigRational.CPU.swp.html | 21 +- .../System.Numerics.BigRational.CPU.tor.html | 21 +- .../System.Numerics.BigRational.CPU.tos.html | 21 +- .../System.Numerics.BigRational.CPU.xor.html | 21 +- ...System.Numerics.BigRational.CompareTo.html | 21 +- .../System.Numerics.BigRational.Equals.html | 21 +- ...stem.Numerics.BigRational.GetHashCode.html | 21 +- .../System.Numerics.BigRational.IsInt.html | 21 +- .../System.Numerics.BigRational.IsNan.html | 21 +- .../System.Numerics.BigRational.Parse.html | 21 +- ...em.Numerics.BigRational.ReadFromBytes.html | 21 +- .../api/System.Numerics.BigRational.Sign.html | 21 +- .../System.Numerics.BigRational.ToString.html | 21 +- ...System.Numerics.BigRational.TryFormat.html | 21 +- ...tem.Numerics.BigRational.WriteToBytes.html | 21 +- docs/api/System.Numerics.BigRational.html | 21 +- ...stem.Numerics.BigRational.op_Addition.html | 21 +- ...stem.Numerics.BigRational.op_Division.html | 21 +- ...stem.Numerics.BigRational.op_Equality.html | 21 +- ...stem.Numerics.BigRational.op_Explicit.html | 21 +- ...m.Numerics.BigRational.op_GreaterThan.html | 21 +- ...ics.BigRational.op_GreaterThanOrEqual.html | 21 +- ...stem.Numerics.BigRational.op_Implicit.html | 21 +- ...em.Numerics.BigRational.op_Inequality.html | 21 +- ...stem.Numerics.BigRational.op_LessThan.html | 21 +- ...merics.BigRational.op_LessThanOrEqual.html | 21 +- ...ystem.Numerics.BigRational.op_Modulus.html | 21 +- ...stem.Numerics.BigRational.op_Multiply.html | 21 +- ...m.Numerics.BigRational.op_Subtraction.html | 21 +- ...Numerics.BigRational.op_UnaryNegation.html | 21 +- ...tem.Numerics.BigRational.op_UnaryPlus.html | 21 +- .../System.Numerics.BigRational.task_cpu.html | 25 +- docs/api/System.Numerics.MathR.Abs.html | 21 +- docs/api/System.Numerics.MathR.Acos.html | 21 +- docs/api/System.Numerics.MathR.Asin.html | 21 +- docs/api/System.Numerics.MathR.Atan.html | 21 +- docs/api/System.Numerics.MathR.Atan2.html | 21 +- docs/api/System.Numerics.MathR.Ceiling.html | 21 +- docs/api/System.Numerics.MathR.Cos.html | 21 +- .../System.Numerics.MathR.DefaultDigits.html | 25 +- docs/api/System.Numerics.MathR.DivRem.html | 626 ++++++++++++++++++ docs/api/System.Numerics.MathR.Exp.html | 21 +- docs/api/System.Numerics.MathR.Factorial.html | 21 +- docs/api/System.Numerics.MathR.Floor.html | 21 +- ....Numerics.MathR.GreatestCommonDivisor.html | 547 +++++++++++++++ docs/api/System.Numerics.MathR.IDiv.html | 564 ++++++++++++++++ docs/api/System.Numerics.MathR.ILog10.html | 21 +- docs/api/System.Numerics.MathR.IMod.html | 564 ++++++++++++++++ ...em.Numerics.MathR.LeastCommonMultiple.html | 547 +++++++++++++++ docs/api/System.Numerics.MathR.Log.html | 21 +- docs/api/System.Numerics.MathR.Log10.html | 21 +- docs/api/System.Numerics.MathR.Log2.html | 21 +- docs/api/System.Numerics.MathR.Max.html | 21 +- docs/api/System.Numerics.MathR.Min.html | 21 +- docs/api/System.Numerics.MathR.Pi.html | 21 +- docs/api/System.Numerics.MathR.Pow.html | 21 +- docs/api/System.Numerics.MathR.Pow2.html | 21 +- docs/api/System.Numerics.MathR.Round.html | 21 +- docs/api/System.Numerics.MathR.Sin.html | 21 +- docs/api/System.Numerics.MathR.Sqrt.html | 21 +- docs/api/System.Numerics.MathR.Tan.html | 21 +- docs/api/System.Numerics.MathR.Tau.html | 21 +- docs/api/System.Numerics.MathR.Truncate.html | 21 +- docs/api/System.Numerics.MathR.html | 63 +- docs/api/System.Numerics.html | 21 +- docs/images/benchmarks1.png | Bin 0 -> 165318 bytes docs/manifest.json | 573 ++++++++-------- docs/xrefmap.yml | 93 ++- readme.md | 14 +- 127 files changed, 5223 insertions(+), 1103 deletions(-) create mode 100644 docs/api/System.Numerics.MathR.DivRem.html create mode 100644 docs/api/System.Numerics.MathR.GreatestCommonDivisor.html create mode 100644 docs/api/System.Numerics.MathR.IDiv.html create mode 100644 docs/api/System.Numerics.MathR.IMod.html create mode 100644 docs/api/System.Numerics.MathR.LeastCommonMultiple.html create mode 100644 docs/images/benchmarks1.png diff --git a/System.Numerics.Rational/BigRational.cs b/System.Numerics.Rational/BigRational.cs index e43ec1a9..c49bc907 100644 --- a/System.Numerics.Rational/BigRational.cs +++ b/System.Numerics.Rational/BigRational.cs @@ -1008,7 +1008,7 @@ public sealed partial class CPU /// The initial stack capacity that must be greater than 0 (zero). public CPU(uint capacity = 32) { - p = new uint[capacity][]; Debug.Assert(capacity > 0); + p = new uint[capacity][]; } /// /// Returns a temporary absolute index of the current stack top @@ -2647,6 +2647,8 @@ public void free() { cpu = null; } + +#if false //todo: remove, div(a, b); mod(); swp(); pop(); must!!! have the same performance /// /// Performs an integer division of the numerators of the first two values on top of the stack
/// and replaces them with the integral result. @@ -2690,6 +2692,7 @@ public void imod() } pop(); } +#endif uint[] rent(uint n) { @@ -2812,11 +2815,20 @@ static void mul(uint* a, uint* b, uint* r) uint f = b[1]; if (nb == 1) { - if (f == 0) { *(ulong*)r = 1; return; } - if (f == 1) { r[0] = na; for (uint i = 1; i <= na; i++) r[i] = a[i]; return; } + switch (f) //jump table + { + case 0: *(ulong*)r = 1; return; + case 1: copy(r, a, na + 1); r[0] = na; return; + //case 2: //todo: opt. shl(1) + //case 3: //todo: opt. + + + //case 4: //todo: opt. shl(2) + //... + } + //if (f == 0) { *(ulong*)r = 1; return; } + //if (f == 1) { copy(r, a, na + 1); r[0] = na; /* r[0] = na; for (uint i = 1; i <= na; i++) r[i] = a[i]; */ return; } } - //if (na == 1) *(ulong*)(r + 1) = (ulong)a[1] * b[1]; - //else + if (na == 1) *(ulong*)(r + 1) = (ulong)a[1] * b[1]; //todo: jt + else if (na == 2 && Bmi2.X64.IsSupported) { *(ulong*)(r + 3) = Bmi2.X64.MultiplyNoFlags(*(ulong*)(a + 1), nb == 2 ? *(ulong*)(b + 1) : b[1], (ulong*)(r + 1)); @@ -2824,7 +2836,7 @@ static void mul(uint* a, uint* b, uint* r) else if (na >= 0020) //nb <= na { var n = na + nb; for (uint i = 1; i <= n; i++) r[i] = 0; //todo: remove, kmu opt will make it needles - kmu(a + 1, na, b + 1, nb, r + 1, n); //r[0] = n; while (r[r[0]] == 0) r[0]--; return; + kmu(a + 1, na, b + 1, nb, r + 1, n); } else { @@ -2849,7 +2861,7 @@ static void mul(uint* a, uint* b, uint* r) } if (r[r[0] = na + nb] == 0 && r[0] > 1) { r[0]--; Debug.Assert(!(r[r[0]] == 0 && r[0] > 1)); } } - static void sqr(uint* a, uint* r) + static void sqr(uint* a, uint* r) //todo: opt kmu for sqr { uint n = *a++ & 0x3fffffff; var v = r + 1; if (n == 1) @@ -3001,8 +3013,8 @@ internal static void shr(uint* p, int c) } static uint* gcd(uint* u, uint* v) { - //var su = clz(u); if (su != 0) shr(u, su); - //var sv = clz(v); if (sv != 0) shr(v, sv); if (su > sv) su = sv; + var su = clz(u); if (su != 0) shr(u, su); + var sv = clz(v); if (sv != 0) shr(v, sv); if (su > sv) su = sv; if (cms(u, v) < 0) { var t = u; u = v; v = t; } while (v[0] > 2) { @@ -3060,7 +3072,7 @@ internal static void shr(uint* p, int c) while (y != 0) { var t = unchecked((uint)x) % unchecked((uint)y); x = y; y = t; } *(ulong*)(u + 1) = x; u[0] = u[2] != 0 ? 2u : 1u; m1:; } - //if (su != 0) shl(u, su); + if (su != 0) shl(u, su); return u; } static int clz(uint* p) diff --git a/System.Numerics.Rational/MathR.cs b/System.Numerics.Rational/MathR.cs index b16be1c2..1d034e2e 100644 --- a/System.Numerics.Rational/MathR.cs +++ b/System.Numerics.Rational/MathR.cs @@ -493,6 +493,103 @@ public static BigRational Atan2(BigRational y, BigRational x, int digits = 0) return default(BigRational) / 0; //NaN } /// + /// Finds the greatest common divisor (GCD) of two integer values. + /// + /// + /// This operation makes only sense for integer values. + /// + /// The first value. + /// The second value. + /// The greatest common divisor of and . + public static BigRational GreatestCommonDivisor(BigRational a, BigRational b) + { + var cpu = BigRational.task_cpu; cpu.push(a); cpu.push(b); + cpu.gcd(); //cpu.pop(); return default; + return cpu.popr(); + } + /// + /// Finds the least common multiple (LCM) of two integer values. + /// + /// + /// This operation makes only sense for integer values. + /// + /// The first value. + /// The second value. + /// The least common multiple of and . + public static BigRational LeastCommonMultiple(BigRational a, BigRational b) + { + //|a * b| / gcd(a, b) == |a / gcd(a, b) * b| + var cpu = BigRational.task_cpu; cpu.push(a); cpu.push(b); + cpu.dup(); cpu.dup(2); cpu.gcd(); cpu.div(); cpu.mul(); cpu.abs(); + return cpu.popr(); + } + /// + /// Performes an integer division / + /// + /// + /// For integer values and , the result equals a division.
+ /// This in contrast to / , where a corresponding fraction results. + ///
+ /// The value to be divided. (dividend) + /// The value to divide by. (devisor) + /// A integer value. + /// : is zero. + public static BigRational IDiv(BigRational a, BigRational b) + { + if (BigRational.Sign(b) == 0) throw new DivideByZeroException(nameof(b)); // b.p == null + var cpu = rat.task_cpu; //cpu.push(a); cpu.push(b); cpu.idiv(); return cpu.popr(); + cpu.div(a, b); cpu.mod(); cpu.swp(); cpu.pop(); + return cpu.popr(); + } + /// + /// Performes an integer modulo operation % what is the remainder that results from a division. + /// + /// The value to be divided. (dividend) + /// The value to divide by. (divisor) + /// + /// For integer values and , the result equals a modulo (%) operation.
+ /// This in contrast to % , where for a corresponding fraction results. + ///
+ /// A integer value. + /// : is zero. + public static BigRational IMod(BigRational a, BigRational b) + { + if (BigRational.Sign(b) == 0) throw new DivideByZeroException(nameof(b)); // b.p == null + var cpu = rat.task_cpu; //cpu.push(a); cpu.push(b); cpu.imod(); var c = cpu.popr(); return c; + cpu.div(b, b); cpu.mod(); cpu.pop(); + return cpu.popr(); + } + /// + /// Calculates the quotient of two signed values and also returns the remainder in an output parameter. + /// + /// + /// This function is for compatibility to like functions.
+ /// For integer values and , the result equals a operation..
+ ///
+ /// The dividend. + /// The divisor. + /// The remainder. + /// The quotient of the specified numbers. + /// : is zero. + public static BigRational DivRem(BigRational a, BigRational b, out BigRational r) + { + if (BigRational.Sign(b) == 0) throw new DivideByZeroException(nameof(b)); // b.p == null + var cpu = rat.task_cpu; cpu.div(b, b); cpu.mod(); + r = cpu.popr(); return cpu.popr(); + } + /// + /// Produces the quotient and the remainder of two signed numbers. + /// + /// This function is for compatibility to like functions.
+ /// For integer values and , the result equals a operation..
+ /// The dividend. + /// The divisor. + /// The quotient and the remainder of the specified numbers as integer values. + public static (BigRational Quotient, BigRational Remainder) DivRem(BigRational a, BigRational b) + { + var d = DivRem(a, b, out var r); return (d, r); + } + /// /// Gets or sets the default number of digits used by functions /// with an optional digits parameter with default value = 0.
/// This allows for a flat interface, easily interchangeable with or . diff --git a/Test/BenchmarksPage.Designer.cs b/Test/BenchmarksPage.Designer.cs index 7372a4b9..147056bf 100644 --- a/Test/BenchmarksPage.Designer.cs +++ b/Test/BenchmarksPage.Designer.cs @@ -40,8 +40,7 @@ private void InitializeComponent() // // button_add // - button_add.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - button_add.Location = new System.Drawing.Point(878, 58); + button_add.Location = new System.Drawing.Point(202, 11); button_add.Name = "button_add"; button_add.Size = new System.Drawing.Size(94, 29); button_add.TabIndex = 3; @@ -83,7 +82,7 @@ private void InitializeComponent() // textBox1 // this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.Location = new System.Drawing.Point(878, 93); + this.textBox1.Location = new System.Drawing.Point(878, 58); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(94, 27); this.textBox1.TabIndex = 7; @@ -92,13 +91,15 @@ private void InitializeComponent() // // labelDebug // + this.labelDebug.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.labelDebug.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(220))))); this.labelDebug.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.labelDebug.ForeColor = System.Drawing.SystemColors.InfoText; - this.labelDebug.Location = new System.Drawing.Point(207, 15); + this.labelDebug.Location = new System.Drawing.Point(323, 11); this.labelDebug.Name = "labelDebug"; this.labelDebug.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); - this.labelDebug.Size = new System.Drawing.Size(178, 24); + this.labelDebug.Size = new System.Drawing.Size(549, 29); this.labelDebug.TabIndex = 9; this.labelDebug.Text = "Under construction"; this.labelDebug.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; diff --git a/Test/BenchmarksPage.cs b/Test/BenchmarksPage.cs index 56d763c7..7f2d8f7a 100644 --- a/Test/BenchmarksPage.cs +++ b/Test/BenchmarksPage.cs @@ -47,7 +47,7 @@ void textBox1_Leave(object sender, EventArgs e) void wb_DocumentCompleted(object? sender, WebBrowserDocumentCompletedEventArgs? e) { var doc = wb.Document; var body = doc.Body; - var a = typeof(BigRational).Assembly; var name = a.GetName(); + var a = typeof(BigRational).Assembly; var name = a.GetName(); var t1 = a.GetCustomAttributes(typeof(System.Runtime.Versioning.TargetFrameworkAttribute), false).FirstOrDefault() as System.Runtime.Versioning.TargetFrameworkAttribute; doc.GetElementById("1").InnerText = name.Version.ToString(); doc.GetElementById("2").InnerText = a.ImageRuntimeVersion + " " + t1?.FrameworkName; @@ -56,7 +56,7 @@ void wb_DocumentCompleted(object? sender, WebBrowserDocumentCompletedEventArgs? esvg = XElement.Parse(doc.GetElementById("svg").InnerHtml); } - (float[] times, int count)[]? passes; + (float[] times, int count)[]? passes; float lastav; void runtest(HtmlElement svg, Action> test, int ex) { @@ -78,21 +78,25 @@ void runtest(HtmlElement svg, Action> test, int ex) }); } test(8, () => true); + + if (ex == 0x00003fbf && (lastav = lastav * 0.01f) < 1) //to get realist times for cpu internal bigint div it makes sense to sub the av from mul as IDiv changed for comapibillity and has an additional mul + for (int i = 1; i < 256; i++) passes[0].times[i] *= lastav; + update_svg(svg, ex); var a1 = passes[0].times.Take(255);//.Average(); var a2 = passes[1].times.Take(255);//.Average(); - var av = MathF.Round(a1.Average() * 100 / a2.Average()).ToString(); + var av = MathF.Round(a1.Average() * 100 / a2.Average()); this.lastav = av; var mi = Math.Min(a1.Max(), a2.Max()); var ma = Math.Max(a1.Max(), a2.Max()); var info = svg.NextSibling; var s = info.InnerHtml; - var x = s.LastIndexOf(':'); if (x > 0) s = s.Substring(0, x+1); - s += $" {av} % (min {mi} ms; max {ma} ms)"; + var x = s.LastIndexOf(':'); if (x > 0) s = s.Substring(0, x + 1); + s += $" {av} % (min {mi} ms; max {ma} ms)"; info.InnerHtml = s; s = svg.Parent.Style; - if(s.Contains("none")) svg.Parent.Style = s.Replace("none","block");// "display: block; margin-left: 16px"; + if (s.Contains("none")) svg.Parent.Style = s.Replace("none", "block"); // "display: block; margin-left: 16px"; } void button_run_Click(object sender, EventArgs e) @@ -158,39 +162,19 @@ void update_svg(HtmlElement? psvg, int ex) psvg.InnerHtml = esvg.ToString(); } - static Action> _test_gcd(out int e) - { - var rr = new BigRational[256]; var ii = new BigInteger[256]; - var cr = new BigRational[256]; var ci = new BigInteger[256]; - var ra = new Random(13); //E+2040 - for (int i = 0; i < 256; i++) ii[i] = (BigInteger)(rr[i] = random_rat(ra, i << 3)); - e = MathR.ILog10(rr[255]); return test; - void test(int pass, Func f) - { - if (pass == 0) - for (int i = 1; f() && i < 256; i++) - cr[i] = MathRE.GreatestCommonDivisor(rr[i - 1], rr[i]); - - if (pass == 1) - for (int i = 1; f() && i < 256; i++) - ci[i] = BigInteger.GreatestCommonDivisor(ii[i - 1], ii[i]); - - if (pass == 8) Debug.Assert(cr.Zip(ci).All(p => p.First == p.Second)); - } - } static Action> _test_mul(out int e) { var rr = new BigRational[256]; var ii = new BigInteger[256]; var cr = new BigRational[256]; var ci = new BigInteger[256]; - var ra = new Random(13); //E+4080 - for (int i = 0; i < 256; i++) ii[i] = (BigInteger)(rr[i] = random_rat(ra, i << 4));//<< 3 - e = MathR.ILog10(rr[255]); return test; - void test(int pass, Func f) + var ra = new Random(13); + for (int i = 0; i < 256; i++) ii[i] = (BigInteger)(rr[i] = random_rat(ra, i << 4)); //E+4080 + e = MathR.ILog10(rr[255]); + return (pass, f) => { if (pass == 0) for (int i = 1; f() && i < 256; i++) cr[i] = rr[i - 1] * rr[i]; if (pass == 1) for (int i = 1; f() && i < 256; i++) ci[i] = ii[i - 1] * ii[i]; if (pass == 8) Debug.Assert(cr.Zip(ci).All(p => p.First == p.Second)); - } + }; } static Action> _test_div(out int e) { @@ -199,29 +183,29 @@ static Action> _test_div(out int e) var ra = new Random(13); for (int i = 0; i < 256; i++) ii[i] = (BigInteger)(rr[i] = random_rat(ra, i << 6)); e = MathR.ILog10(rr[255]); - return (pass, f) => //void test(int pass, Func f) + return (pass, f) => { - //var cpu = rat.task_cpu; - if (pass == 0) for (int i = 1; f() && i < 256; i++) cr[i] = MathRE.IntegerDivide(rr[i], rr[i - 1]); + if (pass == 0) for (int i = 1; f() && i < 256; i++) cr[i] = MathR.IDiv(rr[i], rr[i - 1]); if (pass == 1) for (int i = 1; f() && i < 256; i++) ci[i] = ii[i] / ii[i - 1]; if (pass == 8) Debug.Assert(cr.Zip(ci).All(p => p.First == p.Second)); }; } - //static BigRational intdiv(BigRational a, BigRational b) - //{ - // var cpu = rat.task_cpu; - // cpu.push(a); cpu.push(b); cpu.idiv(); - // var c = cpu.popr(); return c; - //} - //static BigRational intdiv(rat.CPU cpu, BigRational a, BigRational b) - //{ - // //cpu.push(a); cpu.push(b); cpu.idiv(); - // cpu.push(a); cpu.idiv(b); - // //var c = cpu.popr(); return c; - // cpu.pop(); return default; - //} - - static BigRational random_rat(Random rnd, int digits) + static Action> _test_gcd(out int e) + { + var rr = new BigRational[256]; var ii = new BigInteger[256]; + var cr = new BigRational[256]; var ci = new BigInteger[256]; + var ra = new Random(13); //E+2040 + for (int i = 0; i < 256; i++) ii[i] = (BigInteger)(rr[i] = random_rat(ra, i << 3)); + e = MathR.ILog10(rr[255]); + return (pass, f) => + { + if (pass == 0) for (int i = 1; f() && i < 256; i++) cr[i] = MathR.GreatestCommonDivisor(rr[i - 1], rr[i]); + if (pass == 1) for (int i = 1; f() && i < 256; i++) ci[i] = BigInteger.GreatestCommonDivisor(ii[i - 1], ii[i]); + if (pass == 8) Debug.Assert(cr.Zip(ci).All(p => p.First == p.Second)); + }; + } + + static BigRational random_rat(Random rnd, int digits) //todo: make more precise { var cpu = rat.task_cpu; cpu.pow(10, digits); diff --git a/Test/BenchmarksPage.resx b/Test/BenchmarksPage.resx index d37689a7..44b8cff3 100644 --- a/Test/BenchmarksPage.resx +++ b/Test/BenchmarksPage.resx @@ -60,10 +60,28 @@ False + + True + False + + True + True + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/Test/PolyhedronPage.Designer.cs b/Test/PolyhedronPage.Designer.cs index 2e12fa28..7eea5c37 100644 --- a/Test/PolyhedronPage.Designer.cs +++ b/Test/PolyhedronPage.Designer.cs @@ -60,9 +60,9 @@ private void InitializeComponent() System.Windows.Forms.ToolStripSeparator _5; Test.MenuItem _groupcsg; Test.MenuItem _center2; - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PolyhedronPage)); System.Windows.Forms.Button button1; System.Windows.Forms.Button button2; + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PolyhedronPage)); this.label1 = new System.Windows.Forms.Label(); this.contextMenuView = new Test.ContextMenu(this.components); this._3 = new System.Windows.Forms.ToolStripSeparator(); @@ -378,6 +378,28 @@ private void InitializeComponent() _center2.Size = new System.Drawing.Size(231, 24); _center2.Text = "Center"; // + // button1 + // + button1.Enabled = false; + button1.Location = new System.Drawing.Point(444, 12); + button1.Name = "button1"; + button1.Size = new System.Drawing.Size(94, 29); + button1.TabIndex = 2; + button1.Text = "Skeleton"; + button1.UseVisualStyleBackColor = true; + button1.Click += new System.EventHandler(this.btn_run_Click); + // + // button2 + // + button2.Enabled = false; + button2.Location = new System.Drawing.Point(544, 12); + button2.Name = "button2"; + button2.Size = new System.Drawing.Size(94, 29); + button2.TabIndex = 2; + button2.Text = "BSP Tests"; + button2.UseVisualStyleBackColor = true; + button2.Click += new System.EventHandler(this.btn_run_Click); + // // label1 // this.label1.AutoSize = true; @@ -621,26 +643,6 @@ private void InitializeComponent() this.toolStripButton2.Text = "⚒"; this.toolStripButton2.Visible = false; // - // button1 - // - button1.Location = new System.Drawing.Point(444, 12); - button1.Name = "button1"; - button1.Size = new System.Drawing.Size(94, 29); - button1.TabIndex = 2; - button1.Text = "Skeleton"; - button1.UseVisualStyleBackColor = true; - button1.Click += new System.EventHandler(this.btn_run_Click); - // - // button2 - // - button2.Location = new System.Drawing.Point(544, 12); - button2.Name = "button2"; - button2.Size = new System.Drawing.Size(94, 29); - button2.TabIndex = 2; - button2.Text = "BSP Tests"; - button2.UseVisualStyleBackColor = true; - button2.Click += new System.EventHandler(this.btn_run_Click); - // // PolyhedronPage // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; diff --git a/Test/PolyhedronPage.resx b/Test/PolyhedronPage.resx index cacafa85..527659b4 100644 --- a/Test/PolyhedronPage.resx +++ b/Test/PolyhedronPage.resx @@ -111,6 +111,9 @@ False + + True + False @@ -150,15 +153,45 @@ False + + False + + + True + + + False + + + True + + + True + 41, 25 + + True + + + True + 229, 21 + + True + + + True + 457, 21 + + True + @@ -171,10 +204,7 @@ qgAAAABJRU5ErkJggg== - - False - - - False + + True \ No newline at end of file diff --git a/Test/Program.cs b/Test/Program.cs index 96fb9495..f22075a7 100644 --- a/Test/Program.cs +++ b/Test/Program.cs @@ -16,6 +16,84 @@ static void Main() } #if false + private static AsyncLocal? _async_cpu; + public static rat.CPU async_cpu + { + get + { + var p = _async_cpu ??= new AsyncLocal(); + return p.Value ?? (p.Value = new rat.CPU()); + } + } + static void test() + { + rat a, b, c, d; + d = 100 / 13; + b = MathR.IDiv(+100, +13); + d = -100 / +13; + b = MathR.IDiv(-100, +13); + d = -100 / -13; + b = MathR.IDiv(-100, -13); + d = +100 / -13; + b = MathR.IDiv(+100, -13); + + //var apu = async_cpu; + // + //var t1 = Environment.TickCount; + //for (int i = 0; i < 10_000_000; i++) { var t = rat.task_cpu; } + //var t2 = Environment.TickCount; // t2 - t1 -> 78 ms + //for (int i = 0; i < 10_000_000; i++) { var t = async_cpu; } + //var t3 = Environment.TickCount; // t3 - t2 -> 156 ms + } + static void test1() + { + var cpu = rat.task_cpu; + + var a = new BigRational[1000]; + Parallel.For(0, 1000, i => a[i] = MathR.Sin(i * 0.123m, digits: 100)); + + var b = new BigRational[1000]; + Parallel.For(0, 1000, i => + { + var cpu = rat.task_cpu; + cpu.push(i); + cpu.push(0.123m); + cpu.mul(); + cpu.sin(80, cos: false); //80: ILog10(digits); + cpu.rnd(24); //digits + b[i] = cpu.popr(); + }); + + var mycpu = new BigRational.CPU(); + var task = Task.Run(() => + { + mycpu.push(1); + mycpu.push(2); + mycpu.push(3); + }); + task.Wait(); + var x = mycpu.popr(); + var y = mycpu.popr(); + var z = mycpu.popr(); + + mycpu.get(0, out ReadOnlySpan sp); + cpu.push(sp); + var d = cpu.popd(); + + static IEnumerable getpows10forever() + { + var mycpu = new rat.CPU(); + mycpu.push(1); + for (int i = 0; ; i++) + { + if (i != 0) { mycpu.push(10); mycpu.mul(); } + mycpu.get(0, out rat r); yield return r; + } + } + var c = getpows10forever().Take(100).ToArray(); + + } + static void test() { VectorR a, b, c; string s; rat x, y; diff --git a/Test/math/MathR experimental.cs b/Test/math/MathR experimental.cs index 3a09f9a5..a0da4e65 100644 --- a/Test/math/MathR experimental.cs +++ b/Test/math/MathR experimental.cs @@ -61,8 +61,8 @@ public static BigRational Pi(int digits) cpu.push(-4); /**/ cpu.push(b + 5); cpu.div(); cpu.add(); //cpu.norm(); cpu.push(-4); /**/ cpu.push(b + 7); cpu.div(); cpu.add(); //cpu.norm(); cpu.push(1u); /**/ cpu.push(b + 9); cpu.div(); cpu.add(); //cpu.norm(); - cpu.mul(); cpu.add(); - if ((n & 0x3) == 0x3) + cpu.mul(); cpu.add(); + if ((n & 0x3) == 0x3) cpu.norm(); } cpu.push(64); cpu.div(); cpu.rnd(digits); @@ -111,60 +111,10 @@ public static BigRational ParseContinuedFraction(ReadOnlySpan s) var d = x != -1 ? s.Slice(x + 1).Trim() : s; s = s.Slice(0, x != -1 ? x : 0); if (cpu.sign() != 0) cpu.inv(); //or tor: cpu.push(0); for (int i = 0; i < d.Length; i++) { cpu.push(10u); cpu.mul(); cpu.push(d[i] - '0'); cpu.add(); } - cpu.tor(d); cpu.add(); + cpu.tor(d); cpu.add(); } return cpu.popr(); } - /// - /// Finds the greatest common divisor (GCD) of two integer values. - /// - /// - /// This operation makes only sense for integer values. - /// - /// The first value. - /// The second value. - /// The greatest common divisor of and . - public static BigRational GreatestCommonDivisor(BigRational a, BigRational b) - { - var cpu = BigRational.task_cpu; cpu.push(a); cpu.push(b); - cpu.gcd(); //cpu.pop(); return default; - return cpu.popr(); - } - /// - /// Finds the least common multiple (LCM) of two integer values. - /// - /// - /// This operation makes only sense for integer values. - /// - /// The first value. - /// The second value. - /// The least common multiple of and . - public static BigRational LeastCommonMultiple(BigRational a, BigRational b) - { - //|a * b| / gcd(a, b) == |a / gcd(a, b) * b| - var cpu = BigRational.task_cpu; cpu.push(a); cpu.push(b); - cpu.dup(); cpu.dup(2); cpu.gcd(); cpu.div(); cpu.mul(); cpu.abs(); - return cpu.popr(); - } - /// - /// Performes an integer division a / b; - /// - public static BigRational IntegerDivide(BigRational a, BigRational b) - { - if (BigRational.Sign(b) == 0) throw new DivideByZeroException(nameof(b)); // b.p == null - var cpu = rat.task_cpu; - cpu.push(a); cpu.push(b); cpu.idiv(); - var c = cpu.popr(); return c; - } - /// - /// Performes an integer modula a % b; - /// - public static BigRational IntegerModula(BigRational a, BigRational b) - { - if (BigRational.Sign(b) == 0) throw new DivideByZeroException(nameof(b)); // b.p == null - var cpu = rat.task_cpu; - cpu.push(a); cpu.push(b); cpu.imod(); - var c = cpu.popr(); return c; - } + } } diff --git a/Test/templ/benchmarks2.htm b/Test/templ/benchmarks2.htm index 0a6316fa..96d85b66 100644 --- a/Test/templ/benchmarks2.htm +++ b/Test/templ/benchmarks2.htm @@ -74,7 +74,7 @@
-
Simple integer integer division in comparison to BigInteger
+
Simple integer division in comparison to BigInteger

BigRational (blue); BigInteger (red); Average Ratio:

diff --git a/docs/api/System.Numerics.BigRational.-ctor.html b/docs/api/System.Numerics.BigRational.-ctor.html index c143c235..99b85f9c 100644 --- a/docs/api/System.Numerics.BigRational.-ctor.html +++ b/docs/api/System.Numerics.BigRational.-ctor.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.-ctor.html b/docs/api/System.Numerics.BigRational.CPU.-ctor.html index f94be80d..53934cde 100644 --- a/docs/api/System.Numerics.BigRational.CPU.-ctor.html +++ b/docs/api/System.Numerics.BigRational.CPU.-ctor.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.abs.html b/docs/api/System.Numerics.BigRational.CPU.abs.html index a7eb8b93..170dc3d3 100644 --- a/docs/api/System.Numerics.BigRational.CPU.abs.html +++ b/docs/api/System.Numerics.BigRational.CPU.abs.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.add.html b/docs/api/System.Numerics.BigRational.CPU.add.html index 590a301e..892aca76 100644 --- a/docs/api/System.Numerics.BigRational.CPU.add.html +++ b/docs/api/System.Numerics.BigRational.CPU.add.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.and.html b/docs/api/System.Numerics.BigRational.CPU.and.html index 8c2eadbf..30f832fe 100644 --- a/docs/api/System.Numerics.BigRational.CPU.and.html +++ b/docs/api/System.Numerics.BigRational.CPU.and.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.atan.html b/docs/api/System.Numerics.BigRational.CPU.atan.html index 31754994..ed1cb113 100644 --- a/docs/api/System.Numerics.BigRational.CPU.atan.html +++ b/docs/api/System.Numerics.BigRational.CPU.atan.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.bdi.html b/docs/api/System.Numerics.BigRational.CPU.bdi.html index c7a53ec2..4f756ae4 100644 --- a/docs/api/System.Numerics.BigRational.CPU.bdi.html +++ b/docs/api/System.Numerics.BigRational.CPU.bdi.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.cmp.html b/docs/api/System.Numerics.BigRational.CPU.cmp.html index a98f06dd..00a201b9 100644 --- a/docs/api/System.Numerics.BigRational.CPU.cmp.html +++ b/docs/api/System.Numerics.BigRational.CPU.cmp.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.cmpa.html b/docs/api/System.Numerics.BigRational.CPU.cmpa.html index 2a63949b..cfb045ed 100644 --- a/docs/api/System.Numerics.BigRational.CPU.cmpa.html +++ b/docs/api/System.Numerics.BigRational.CPU.cmpa.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.cmpi.html b/docs/api/System.Numerics.BigRational.CPU.cmpi.html index 91b7fe3f..39564add 100644 --- a/docs/api/System.Numerics.BigRational.CPU.cmpi.html +++ b/docs/api/System.Numerics.BigRational.CPU.cmpi.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.div.html b/docs/api/System.Numerics.BigRational.CPU.div.html index 3538d82d..afb3f1c0 100644 --- a/docs/api/System.Numerics.BigRational.CPU.div.html +++ b/docs/api/System.Numerics.BigRational.CPU.div.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.dup.html b/docs/api/System.Numerics.BigRational.CPU.dup.html index c3a28957..f831cfeb 100644 --- a/docs/api/System.Numerics.BigRational.CPU.dup.html +++ b/docs/api/System.Numerics.BigRational.CPU.dup.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.equ.html b/docs/api/System.Numerics.BigRational.CPU.equ.html index 601cc345..4d5f8fe1 100644 --- a/docs/api/System.Numerics.BigRational.CPU.equ.html +++ b/docs/api/System.Numerics.BigRational.CPU.equ.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.exp.html b/docs/api/System.Numerics.BigRational.CPU.exp.html index f253c922..2968f672 100644 --- a/docs/api/System.Numerics.BigRational.CPU.exp.html +++ b/docs/api/System.Numerics.BigRational.CPU.exp.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.fac.html b/docs/api/System.Numerics.BigRational.CPU.fac.html index 8db19d85..5857b6d4 100644 --- a/docs/api/System.Numerics.BigRational.CPU.fac.html +++ b/docs/api/System.Numerics.BigRational.CPU.fac.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.free.html b/docs/api/System.Numerics.BigRational.CPU.free.html index f0ab1812..20e02cad 100644 --- a/docs/api/System.Numerics.BigRational.CPU.free.html +++ b/docs/api/System.Numerics.BigRational.CPU.free.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.gcd.html b/docs/api/System.Numerics.BigRational.CPU.gcd.html index 720d2b55..05d45e67 100644 --- a/docs/api/System.Numerics.BigRational.CPU.gcd.html +++ b/docs/api/System.Numerics.BigRational.CPU.gcd.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.get.html b/docs/api/System.Numerics.BigRational.CPU.get.html index 32407e32..39bcbfdd 100644 --- a/docs/api/System.Numerics.BigRational.CPU.get.html +++ b/docs/api/System.Numerics.BigRational.CPU.get.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.hash.html b/docs/api/System.Numerics.BigRational.CPU.hash.html index 63a80a1e..4e62832f 100644 --- a/docs/api/System.Numerics.BigRational.CPU.hash.html +++ b/docs/api/System.Numerics.BigRational.CPU.hash.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.html b/docs/api/System.Numerics.BigRational.CPU.html index 4b050838..1dc0a655 100644 --- a/docs/api/System.Numerics.BigRational.CPU.html +++ b/docs/api/System.Numerics.BigRational.CPU.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • @@ -774,22 +783,6 @@

    Methods hash(UInt32)

    Calculates a hash value for the value at b as absolute index in the stack.

    - - - - - idiv() - -

    Performs an integer division of the numerators of the first two values on top of the stack
    -and replaces them with the integral result.

    - - - - - imod() - -

    Performs an integer division of the numerators of the first two values on top of the stack
    -and replaces them with the integral result.

    @@ -1259,7 +1252,7 @@

    Methods Improve this Doc
  • - View Source + View Source
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.inv.html b/docs/api/System.Numerics.BigRational.CPU.inv.html index 36e9a411..f9aa46d1 100644 --- a/docs/api/System.Numerics.BigRational.CPU.inv.html +++ b/docs/api/System.Numerics.BigRational.CPU.inv.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.isi.html b/docs/api/System.Numerics.BigRational.CPU.isi.html index 0dccd1c1..9180f8a5 100644 --- a/docs/api/System.Numerics.BigRational.CPU.isi.html +++ b/docs/api/System.Numerics.BigRational.CPU.isi.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.lim.html b/docs/api/System.Numerics.BigRational.CPU.lim.html index e76e459d..91c8bbc8 100644 --- a/docs/api/System.Numerics.BigRational.CPU.lim.html +++ b/docs/api/System.Numerics.BigRational.CPU.lim.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.log.html b/docs/api/System.Numerics.BigRational.CPU.log.html index e12982cb..43c3fc5a 100644 --- a/docs/api/System.Numerics.BigRational.CPU.log.html +++ b/docs/api/System.Numerics.BigRational.CPU.log.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.log2.html b/docs/api/System.Numerics.BigRational.CPU.log2.html index b5eb280e..74e13c61 100644 --- a/docs/api/System.Numerics.BigRational.CPU.log2.html +++ b/docs/api/System.Numerics.BigRational.CPU.log2.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.lsb.html b/docs/api/System.Numerics.BigRational.CPU.lsb.html index 68711821..d869d5b9 100644 --- a/docs/api/System.Numerics.BigRational.CPU.lsb.html +++ b/docs/api/System.Numerics.BigRational.CPU.lsb.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.mark.html b/docs/api/System.Numerics.BigRational.CPU.mark.html index 194e4998..88db81a4 100644 --- a/docs/api/System.Numerics.BigRational.CPU.mark.html +++ b/docs/api/System.Numerics.BigRational.CPU.mark.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.mod.html b/docs/api/System.Numerics.BigRational.CPU.mod.html index e40b693e..90858fb1 100644 --- a/docs/api/System.Numerics.BigRational.CPU.mod.html +++ b/docs/api/System.Numerics.BigRational.CPU.mod.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.msb.html b/docs/api/System.Numerics.BigRational.CPU.msb.html index 4d23f51a..84c53cf3 100644 --- a/docs/api/System.Numerics.BigRational.CPU.msb.html +++ b/docs/api/System.Numerics.BigRational.CPU.msb.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.mul.html b/docs/api/System.Numerics.BigRational.CPU.mul.html index 3fc7e044..f57a7cf3 100644 --- a/docs/api/System.Numerics.BigRational.CPU.mul.html +++ b/docs/api/System.Numerics.BigRational.CPU.mul.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.neg.html b/docs/api/System.Numerics.BigRational.CPU.neg.html index d73c2f0b..c83a83b7 100644 --- a/docs/api/System.Numerics.BigRational.CPU.neg.html +++ b/docs/api/System.Numerics.BigRational.CPU.neg.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.norm.html b/docs/api/System.Numerics.BigRational.CPU.norm.html index 78406330..af82faa6 100644 --- a/docs/api/System.Numerics.BigRational.CPU.norm.html +++ b/docs/api/System.Numerics.BigRational.CPU.norm.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.or.html b/docs/api/System.Numerics.BigRational.CPU.or.html index c20bc4d4..26f6e4c8 100644 --- a/docs/api/System.Numerics.BigRational.CPU.or.html +++ b/docs/api/System.Numerics.BigRational.CPU.or.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.pi.html b/docs/api/System.Numerics.BigRational.CPU.pi.html index 4d251095..3fef4e90 100644 --- a/docs/api/System.Numerics.BigRational.CPU.pi.html +++ b/docs/api/System.Numerics.BigRational.CPU.pi.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.pop.html b/docs/api/System.Numerics.BigRational.CPU.pop.html index c62336f6..b2b08cc5 100644 --- a/docs/api/System.Numerics.BigRational.CPU.pop.html +++ b/docs/api/System.Numerics.BigRational.CPU.pop.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.popd.html b/docs/api/System.Numerics.BigRational.CPU.popd.html index 1bd1553f..b1fbe9f3 100644 --- a/docs/api/System.Numerics.BigRational.CPU.popd.html +++ b/docs/api/System.Numerics.BigRational.CPU.popd.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.popi.html b/docs/api/System.Numerics.BigRational.CPU.popi.html index 4a4784f0..d258713c 100644 --- a/docs/api/System.Numerics.BigRational.CPU.popi.html +++ b/docs/api/System.Numerics.BigRational.CPU.popi.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.popr.html b/docs/api/System.Numerics.BigRational.CPU.popr.html index 45ddafe3..aad440a2 100644 --- a/docs/api/System.Numerics.BigRational.CPU.popr.html +++ b/docs/api/System.Numerics.BigRational.CPU.popr.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.pow.html b/docs/api/System.Numerics.BigRational.CPU.pow.html index 662dbe26..7ee8878d 100644 --- a/docs/api/System.Numerics.BigRational.CPU.pow.html +++ b/docs/api/System.Numerics.BigRational.CPU.pow.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.push.html b/docs/api/System.Numerics.BigRational.CPU.push.html index 4b163930..9e7091ba 100644 --- a/docs/api/System.Numerics.BigRational.CPU.push.html +++ b/docs/api/System.Numerics.BigRational.CPU.push.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.rnd.html b/docs/api/System.Numerics.BigRational.CPU.rnd.html index d897c18c..d6b86327 100644 --- a/docs/api/System.Numerics.BigRational.CPU.rnd.html +++ b/docs/api/System.Numerics.BigRational.CPU.rnd.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.shl.html b/docs/api/System.Numerics.BigRational.CPU.shl.html index d23a3b5e..beb611dd 100644 --- a/docs/api/System.Numerics.BigRational.CPU.shl.html +++ b/docs/api/System.Numerics.BigRational.CPU.shl.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.shr.html b/docs/api/System.Numerics.BigRational.CPU.shr.html index 1fc5507e..a22003ed 100644 --- a/docs/api/System.Numerics.BigRational.CPU.shr.html +++ b/docs/api/System.Numerics.BigRational.CPU.shr.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.sign.html b/docs/api/System.Numerics.BigRational.CPU.sign.html index 8458ac05..f496b5f0 100644 --- a/docs/api/System.Numerics.BigRational.CPU.sign.html +++ b/docs/api/System.Numerics.BigRational.CPU.sign.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.sin.html b/docs/api/System.Numerics.BigRational.CPU.sin.html index 8a9478ae..705f134c 100644 --- a/docs/api/System.Numerics.BigRational.CPU.sin.html +++ b/docs/api/System.Numerics.BigRational.CPU.sin.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.sqr.html b/docs/api/System.Numerics.BigRational.CPU.sqr.html index 2876cb4c..f3cfde8a 100644 --- a/docs/api/System.Numerics.BigRational.CPU.sqr.html +++ b/docs/api/System.Numerics.BigRational.CPU.sqr.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.sqrt.html b/docs/api/System.Numerics.BigRational.CPU.sqrt.html index ce0ad327..30cf1f1e 100644 --- a/docs/api/System.Numerics.BigRational.CPU.sqrt.html +++ b/docs/api/System.Numerics.BigRational.CPU.sqrt.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.sub.html b/docs/api/System.Numerics.BigRational.CPU.sub.html index 33414e72..5367e707 100644 --- a/docs/api/System.Numerics.BigRational.CPU.sub.html +++ b/docs/api/System.Numerics.BigRational.CPU.sub.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.swp.html b/docs/api/System.Numerics.BigRational.CPU.swp.html index 5ded2e91..efca78ab 100644 --- a/docs/api/System.Numerics.BigRational.CPU.swp.html +++ b/docs/api/System.Numerics.BigRational.CPU.swp.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.tor.html b/docs/api/System.Numerics.BigRational.CPU.tor.html index 4ade17a9..5837dab0 100644 --- a/docs/api/System.Numerics.BigRational.CPU.tor.html +++ b/docs/api/System.Numerics.BigRational.CPU.tor.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.tos.html b/docs/api/System.Numerics.BigRational.CPU.tos.html index a0713dfd..e27a120c 100644 --- a/docs/api/System.Numerics.BigRational.CPU.tos.html +++ b/docs/api/System.Numerics.BigRational.CPU.tos.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CPU.xor.html b/docs/api/System.Numerics.BigRational.CPU.xor.html index 083cc8d6..c4aa1735 100644 --- a/docs/api/System.Numerics.BigRational.CPU.xor.html +++ b/docs/api/System.Numerics.BigRational.CPU.xor.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.CompareTo.html b/docs/api/System.Numerics.BigRational.CompareTo.html index 808970ee..b160be96 100644 --- a/docs/api/System.Numerics.BigRational.CompareTo.html +++ b/docs/api/System.Numerics.BigRational.CompareTo.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.Equals.html b/docs/api/System.Numerics.BigRational.Equals.html index f0560e91..4d6e2d23 100644 --- a/docs/api/System.Numerics.BigRational.Equals.html +++ b/docs/api/System.Numerics.BigRational.Equals.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.GetHashCode.html b/docs/api/System.Numerics.BigRational.GetHashCode.html index a8f47ef9..6c46d7ed 100644 --- a/docs/api/System.Numerics.BigRational.GetHashCode.html +++ b/docs/api/System.Numerics.BigRational.GetHashCode.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.IsInt.html b/docs/api/System.Numerics.BigRational.IsInt.html index 8aa7e2d9..cc849f8c 100644 --- a/docs/api/System.Numerics.BigRational.IsInt.html +++ b/docs/api/System.Numerics.BigRational.IsInt.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.IsNan.html b/docs/api/System.Numerics.BigRational.IsNan.html index 3bfae0dc..5462b709 100644 --- a/docs/api/System.Numerics.BigRational.IsNan.html +++ b/docs/api/System.Numerics.BigRational.IsNan.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.Parse.html b/docs/api/System.Numerics.BigRational.Parse.html index 0d863fa1..b2a22c08 100644 --- a/docs/api/System.Numerics.BigRational.Parse.html +++ b/docs/api/System.Numerics.BigRational.Parse.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.ReadFromBytes.html b/docs/api/System.Numerics.BigRational.ReadFromBytes.html index f4330030..41715fc0 100644 --- a/docs/api/System.Numerics.BigRational.ReadFromBytes.html +++ b/docs/api/System.Numerics.BigRational.ReadFromBytes.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.Sign.html b/docs/api/System.Numerics.BigRational.Sign.html index 0f46c143..3e5c5b18 100644 --- a/docs/api/System.Numerics.BigRational.Sign.html +++ b/docs/api/System.Numerics.BigRational.Sign.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.ToString.html b/docs/api/System.Numerics.BigRational.ToString.html index 512740fc..27bca800 100644 --- a/docs/api/System.Numerics.BigRational.ToString.html +++ b/docs/api/System.Numerics.BigRational.ToString.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.TryFormat.html b/docs/api/System.Numerics.BigRational.TryFormat.html index cb7d8a33..52a1dbdb 100644 --- a/docs/api/System.Numerics.BigRational.TryFormat.html +++ b/docs/api/System.Numerics.BigRational.TryFormat.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.WriteToBytes.html b/docs/api/System.Numerics.BigRational.WriteToBytes.html index f5feaa74..487e0a24 100644 --- a/docs/api/System.Numerics.BigRational.WriteToBytes.html +++ b/docs/api/System.Numerics.BigRational.WriteToBytes.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.html b/docs/api/System.Numerics.BigRational.html index 932248d8..20f13b14 100644 --- a/docs/api/System.Numerics.BigRational.html +++ b/docs/api/System.Numerics.BigRational.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Addition.html b/docs/api/System.Numerics.BigRational.op_Addition.html index ed827f2f..f19c7639 100644 --- a/docs/api/System.Numerics.BigRational.op_Addition.html +++ b/docs/api/System.Numerics.BigRational.op_Addition.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Division.html b/docs/api/System.Numerics.BigRational.op_Division.html index 13906553..d3d54435 100644 --- a/docs/api/System.Numerics.BigRational.op_Division.html +++ b/docs/api/System.Numerics.BigRational.op_Division.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Equality.html b/docs/api/System.Numerics.BigRational.op_Equality.html index 200cb7a1..67063e77 100644 --- a/docs/api/System.Numerics.BigRational.op_Equality.html +++ b/docs/api/System.Numerics.BigRational.op_Equality.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Explicit.html b/docs/api/System.Numerics.BigRational.op_Explicit.html index e76cda92..2507bf00 100644 --- a/docs/api/System.Numerics.BigRational.op_Explicit.html +++ b/docs/api/System.Numerics.BigRational.op_Explicit.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_GreaterThan.html b/docs/api/System.Numerics.BigRational.op_GreaterThan.html index 53d38f1a..65227edf 100644 --- a/docs/api/System.Numerics.BigRational.op_GreaterThan.html +++ b/docs/api/System.Numerics.BigRational.op_GreaterThan.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_GreaterThanOrEqual.html b/docs/api/System.Numerics.BigRational.op_GreaterThanOrEqual.html index 3ba71c9e..4a03dbef 100644 --- a/docs/api/System.Numerics.BigRational.op_GreaterThanOrEqual.html +++ b/docs/api/System.Numerics.BigRational.op_GreaterThanOrEqual.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Implicit.html b/docs/api/System.Numerics.BigRational.op_Implicit.html index aeb70186..862b2d44 100644 --- a/docs/api/System.Numerics.BigRational.op_Implicit.html +++ b/docs/api/System.Numerics.BigRational.op_Implicit.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Inequality.html b/docs/api/System.Numerics.BigRational.op_Inequality.html index 205e4c99..9954cb93 100644 --- a/docs/api/System.Numerics.BigRational.op_Inequality.html +++ b/docs/api/System.Numerics.BigRational.op_Inequality.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_LessThan.html b/docs/api/System.Numerics.BigRational.op_LessThan.html index 5a5d1c12..54301067 100644 --- a/docs/api/System.Numerics.BigRational.op_LessThan.html +++ b/docs/api/System.Numerics.BigRational.op_LessThan.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_LessThanOrEqual.html b/docs/api/System.Numerics.BigRational.op_LessThanOrEqual.html index 5818b949..1aa506d8 100644 --- a/docs/api/System.Numerics.BigRational.op_LessThanOrEqual.html +++ b/docs/api/System.Numerics.BigRational.op_LessThanOrEqual.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Modulus.html b/docs/api/System.Numerics.BigRational.op_Modulus.html index 8ab2a669..0bba275d 100644 --- a/docs/api/System.Numerics.BigRational.op_Modulus.html +++ b/docs/api/System.Numerics.BigRational.op_Modulus.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Multiply.html b/docs/api/System.Numerics.BigRational.op_Multiply.html index 719f1b75..163008a7 100644 --- a/docs/api/System.Numerics.BigRational.op_Multiply.html +++ b/docs/api/System.Numerics.BigRational.op_Multiply.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_Subtraction.html b/docs/api/System.Numerics.BigRational.op_Subtraction.html index e036ef2d..917dd2ed 100644 --- a/docs/api/System.Numerics.BigRational.op_Subtraction.html +++ b/docs/api/System.Numerics.BigRational.op_Subtraction.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_UnaryNegation.html b/docs/api/System.Numerics.BigRational.op_UnaryNegation.html index fda70ba7..79133921 100644 --- a/docs/api/System.Numerics.BigRational.op_UnaryNegation.html +++ b/docs/api/System.Numerics.BigRational.op_UnaryNegation.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.op_UnaryPlus.html b/docs/api/System.Numerics.BigRational.op_UnaryPlus.html index 7e6f2742..4de75bf6 100644 --- a/docs/api/System.Numerics.BigRational.op_UnaryPlus.html +++ b/docs/api/System.Numerics.BigRational.op_UnaryPlus.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.BigRational.task_cpu.html b/docs/api/System.Numerics.BigRational.task_cpu.html index 11bab5fd..fc0833e4 100644 --- a/docs/api/System.Numerics.BigRational.task_cpu.html +++ b/docs/api/System.Numerics.BigRational.task_cpu.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • @@ -439,7 +448,7 @@

    Improve this Doc - View Source + View Source

    task_cpu

    @@ -479,7 +488,7 @@
    Remarks
    Improve this Doc
  • - View Source + View Source
  • diff --git a/docs/api/System.Numerics.MathR.Abs.html b/docs/api/System.Numerics.MathR.Abs.html index 3f1cd5f9..cb9f9f84 100644 --- a/docs/api/System.Numerics.MathR.Abs.html +++ b/docs/api/System.Numerics.MathR.Abs.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Acos.html b/docs/api/System.Numerics.MathR.Acos.html index bfb7ae34..b96737ba 100644 --- a/docs/api/System.Numerics.MathR.Acos.html +++ b/docs/api/System.Numerics.MathR.Acos.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Asin.html b/docs/api/System.Numerics.MathR.Asin.html index ec6e0420..c27ba377 100644 --- a/docs/api/System.Numerics.MathR.Asin.html +++ b/docs/api/System.Numerics.MathR.Asin.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Atan.html b/docs/api/System.Numerics.MathR.Atan.html index 3ee440fb..d9100c74 100644 --- a/docs/api/System.Numerics.MathR.Atan.html +++ b/docs/api/System.Numerics.MathR.Atan.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Atan2.html b/docs/api/System.Numerics.MathR.Atan2.html index dfb2ef4c..ed634287 100644 --- a/docs/api/System.Numerics.MathR.Atan2.html +++ b/docs/api/System.Numerics.MathR.Atan2.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Ceiling.html b/docs/api/System.Numerics.MathR.Ceiling.html index 9d072c05..f9244939 100644 --- a/docs/api/System.Numerics.MathR.Ceiling.html +++ b/docs/api/System.Numerics.MathR.Ceiling.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Cos.html b/docs/api/System.Numerics.MathR.Cos.html index 43fb3d7c..b1916a1f 100644 --- a/docs/api/System.Numerics.MathR.Cos.html +++ b/docs/api/System.Numerics.MathR.Cos.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.DefaultDigits.html b/docs/api/System.Numerics.MathR.DefaultDigits.html index 10a0312d..b4fac4a0 100644 --- a/docs/api/System.Numerics.MathR.DefaultDigits.html +++ b/docs/api/System.Numerics.MathR.DefaultDigits.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • @@ -439,7 +448,7 @@

    Improve this Doc - View Source + View Source

    DefaultDigits

    @@ -481,7 +490,7 @@
    Remarks
    Improve this Doc
  • - View Source + View Source
  • diff --git a/docs/api/System.Numerics.MathR.DivRem.html b/docs/api/System.Numerics.MathR.DivRem.html new file mode 100644 index 00000000..4d6c1b27 --- /dev/null +++ b/docs/api/System.Numerics.MathR.DivRem.html @@ -0,0 +1,626 @@ + + + + + + + + Method DivRem + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + + + +
    + + + + + + diff --git a/docs/api/System.Numerics.MathR.Exp.html b/docs/api/System.Numerics.MathR.Exp.html index 84acbf0f..32761bc6 100644 --- a/docs/api/System.Numerics.MathR.Exp.html +++ b/docs/api/System.Numerics.MathR.Exp.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Factorial.html b/docs/api/System.Numerics.MathR.Factorial.html index faab99a3..2075124f 100644 --- a/docs/api/System.Numerics.MathR.Factorial.html +++ b/docs/api/System.Numerics.MathR.Factorial.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Floor.html b/docs/api/System.Numerics.MathR.Floor.html index dff1ca1b..3635b873 100644 --- a/docs/api/System.Numerics.MathR.Floor.html +++ b/docs/api/System.Numerics.MathR.Floor.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.GreatestCommonDivisor.html b/docs/api/System.Numerics.MathR.GreatestCommonDivisor.html new file mode 100644 index 00000000..1de23209 --- /dev/null +++ b/docs/api/System.Numerics.MathR.GreatestCommonDivisor.html @@ -0,0 +1,547 @@ + + + + + + + + Method GreatestCommonDivisor + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + + + +
    + + + + + + diff --git a/docs/api/System.Numerics.MathR.IDiv.html b/docs/api/System.Numerics.MathR.IDiv.html new file mode 100644 index 00000000..f97633da --- /dev/null +++ b/docs/api/System.Numerics.MathR.IDiv.html @@ -0,0 +1,564 @@ + + + + + + + + Method IDiv + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + + + +
    + + + + + + diff --git a/docs/api/System.Numerics.MathR.ILog10.html b/docs/api/System.Numerics.MathR.ILog10.html index 0bd4dc1c..b58228cf 100644 --- a/docs/api/System.Numerics.MathR.ILog10.html +++ b/docs/api/System.Numerics.MathR.ILog10.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.IMod.html b/docs/api/System.Numerics.MathR.IMod.html new file mode 100644 index 00000000..5f6e88b2 --- /dev/null +++ b/docs/api/System.Numerics.MathR.IMod.html @@ -0,0 +1,564 @@ + + + + + + + + Method IMod + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + + + +
    + + + + + + diff --git a/docs/api/System.Numerics.MathR.LeastCommonMultiple.html b/docs/api/System.Numerics.MathR.LeastCommonMultiple.html new file mode 100644 index 00000000..07c43340 --- /dev/null +++ b/docs/api/System.Numerics.MathR.LeastCommonMultiple.html @@ -0,0 +1,547 @@ + + + + + + + + Method LeastCommonMultiple + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + + + +
    + + + + + + diff --git a/docs/api/System.Numerics.MathR.Log.html b/docs/api/System.Numerics.MathR.Log.html index 5dca0f87..a9eaa531 100644 --- a/docs/api/System.Numerics.MathR.Log.html +++ b/docs/api/System.Numerics.MathR.Log.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Log10.html b/docs/api/System.Numerics.MathR.Log10.html index 54a0e18e..362c0488 100644 --- a/docs/api/System.Numerics.MathR.Log10.html +++ b/docs/api/System.Numerics.MathR.Log10.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Log2.html b/docs/api/System.Numerics.MathR.Log2.html index 16754963..7c74b79c 100644 --- a/docs/api/System.Numerics.MathR.Log2.html +++ b/docs/api/System.Numerics.MathR.Log2.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Max.html b/docs/api/System.Numerics.MathR.Max.html index 30047ae3..bf8a19ce 100644 --- a/docs/api/System.Numerics.MathR.Max.html +++ b/docs/api/System.Numerics.MathR.Max.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Min.html b/docs/api/System.Numerics.MathR.Min.html index 3e703afb..d154d81a 100644 --- a/docs/api/System.Numerics.MathR.Min.html +++ b/docs/api/System.Numerics.MathR.Min.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Pi.html b/docs/api/System.Numerics.MathR.Pi.html index a8e87b71..7db984f5 100644 --- a/docs/api/System.Numerics.MathR.Pi.html +++ b/docs/api/System.Numerics.MathR.Pi.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Pow.html b/docs/api/System.Numerics.MathR.Pow.html index 0f3f8344..e6486b73 100644 --- a/docs/api/System.Numerics.MathR.Pow.html +++ b/docs/api/System.Numerics.MathR.Pow.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Pow2.html b/docs/api/System.Numerics.MathR.Pow2.html index 874315bf..040ee63a 100644 --- a/docs/api/System.Numerics.MathR.Pow2.html +++ b/docs/api/System.Numerics.MathR.Pow2.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Round.html b/docs/api/System.Numerics.MathR.Round.html index 67fcf957..487f0c7c 100644 --- a/docs/api/System.Numerics.MathR.Round.html +++ b/docs/api/System.Numerics.MathR.Round.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Sin.html b/docs/api/System.Numerics.MathR.Sin.html index 1800ca8a..b586ba6d 100644 --- a/docs/api/System.Numerics.MathR.Sin.html +++ b/docs/api/System.Numerics.MathR.Sin.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Sqrt.html b/docs/api/System.Numerics.MathR.Sqrt.html index d56176e7..3d90efb1 100644 --- a/docs/api/System.Numerics.MathR.Sqrt.html +++ b/docs/api/System.Numerics.MathR.Sqrt.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Tan.html b/docs/api/System.Numerics.MathR.Tan.html index 2530212c..627d1ede 100644 --- a/docs/api/System.Numerics.MathR.Tan.html +++ b/docs/api/System.Numerics.MathR.Tan.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Tau.html b/docs/api/System.Numerics.MathR.Tau.html index acf31386..562806f9 100644 --- a/docs/api/System.Numerics.MathR.Tau.html +++ b/docs/api/System.Numerics.MathR.Tau.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.Truncate.html b/docs/api/System.Numerics.MathR.Truncate.html index a56958b1..2844a356 100644 --- a/docs/api/System.Numerics.MathR.Truncate.html +++ b/docs/api/System.Numerics.MathR.Truncate.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/api/System.Numerics.MathR.html b/docs/api/System.Numerics.MathR.html index 0936d605..7813d3ad 100644 --- a/docs/api/System.Numerics.MathR.html +++ b/docs/api/System.Numerics.MathR.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • @@ -549,6 +558,20 @@

    Methods Cos(BigRational, Int32)

    Returns the cosine of the specified angle.

    + + + + + DivRem(BigRational, BigRational) + +

    Produces the quotient and the remainder of two signed BigRational numbers.

    + + + + + DivRem(BigRational, BigRational, out BigRational) + +

    Calculates the quotient of two BigRational signed values and also returns the remainder in an output parameter.

    @@ -570,6 +593,20 @@

    Methods Floor(BigRational)

    Rounds a specified BigRational number to the closest integer toward negative infinity.

    + + + + + GreatestCommonDivisor(BigRational, BigRational) + +

    Finds the greatest common divisor (GCD) of two BigRational integer values.

    + + + + + IDiv(BigRational, BigRational) + +

    Performes an integer division a / b

    @@ -577,6 +614,20 @@

    Methods ILog10(BigRational)

    Gets the integer base 10 logarithm of a BigRational number.

    + + + + + IMod(BigRational, BigRational) + +

    Performes an integer modulo operation a % b what is the remainder that results from a division.

    + + + + + LeastCommonMultiple(BigRational, BigRational) + +

    Finds the least common multiple (LCM) of two BigRational integer values.

    diff --git a/docs/api/System.Numerics.html b/docs/api/System.Numerics.html index f8e4b0d3..ce98556a 100644 --- a/docs/api/System.Numerics.html +++ b/docs/api/System.Numerics.html @@ -232,12 +232,6 @@
  • hash
  • -
  • - idiv -
  • -
  • - imod -
  • inv
  • @@ -364,6 +358,9 @@
  • DefaultDigits
  • +
  • + DivRem +
  • Exp
  • @@ -373,9 +370,21 @@
  • Floor
  • +
  • + GreatestCommonDivisor +
  • +
  • + IDiv +
  • ILog10
  • +
  • + IMod +
  • +
  • + LeastCommonMultiple +
  • Log
  • diff --git a/docs/images/benchmarks1.png b/docs/images/benchmarks1.png new file mode 100644 index 0000000000000000000000000000000000000000..5431ca25a0c66cf7839e508f20b2268c19c595f0 GIT binary patch literal 165318 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

    fKv$cH4WFI`}*T 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