Files
Dec2017-Script-Dump/Triangle/Primitives.cs
T
2026-06-04 11:42:34 +02:00

1816 lines
62 KiB
C#

using System;
using TriangleNet.Geometry;
using TriangleNet.Tools;
namespace TriangleNet
{
// Token: 0x0200000F RID: 15
public static class Primitives
{
// Token: 0x06000085 RID: 133 RVA: 0x0000D474 File Offset: 0x0000B674
public static void ExactInit()
{
bool flag = true;
double num = 0.5;
Primitives.epsilon = 1.0;
Primitives.splitter = 1.0;
double num2 = 1.0;
double num3;
do
{
num3 = num2;
Primitives.epsilon *= num;
if (flag)
{
Primitives.splitter *= 2.0;
}
flag = !flag;
num2 = 1.0 + Primitives.epsilon;
}
while (num2 != 1.0 && num2 != num3);
Primitives.splitter += 1.0;
Primitives.resulterrbound = (3.0 + 8.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.ccwerrboundA = (3.0 + 16.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.ccwerrboundB = (2.0 + 12.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.ccwerrboundC = (9.0 + 64.0 * Primitives.epsilon) * Primitives.epsilon * Primitives.epsilon;
Primitives.iccerrboundA = (10.0 + 96.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.iccerrboundB = (4.0 + 48.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.iccerrboundC = (44.0 + 576.0 * Primitives.epsilon) * Primitives.epsilon * Primitives.epsilon;
Primitives.o3derrboundA = (7.0 + 56.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.o3derrboundB = (3.0 + 28.0 * Primitives.epsilon) * Primitives.epsilon;
Primitives.o3derrboundC = (26.0 + 288.0 * Primitives.epsilon) * Primitives.epsilon * Primitives.epsilon;
}
// Token: 0x06000086 RID: 134 RVA: 0x0000D68C File Offset: 0x0000B88C
public static double CounterClockwise(Point pa, Point pb, Point pc)
{
Statistic.CounterClockwiseCount += 1L;
double num = (pa.x - pc.x) * (pb.y - pc.y);
double num2 = (pa.y - pc.y) * (pb.x - pc.x);
double num3 = num - num2;
if (Behavior.NoExact)
{
return num3;
}
double num4;
if (num > 0.0)
{
if (num2 <= 0.0)
{
return num3;
}
num4 = num + num2;
}
else
{
if (num >= 0.0)
{
return num3;
}
if (num2 >= 0.0)
{
return num3;
}
num4 = -num - num2;
}
double num5 = Primitives.ccwerrboundA * num4;
if (num3 >= num5 || -num3 >= num5)
{
return num3;
}
Statistic.CounterClockwiseAdaptCount += 1L;
return Primitives.CounterClockwiseAdapt(pa, pb, pc, num4);
}
// Token: 0x06000087 RID: 135 RVA: 0x0000D75C File Offset: 0x0000B95C
public static double InCircle(Point pa, Point pb, Point pc, Point pd)
{
Statistic.InCircleCount += 1L;
double num = pa.x - pd.x;
double num2 = pb.x - pd.x;
double num3 = pc.x - pd.x;
double num4 = pa.y - pd.y;
double num5 = pb.y - pd.y;
double num6 = pc.y - pd.y;
double num7 = num2 * num6;
double num8 = num3 * num5;
double num9 = num * num + num4 * num4;
double num10 = num3 * num4;
double num11 = num * num6;
double num12 = num2 * num2 + num5 * num5;
double num13 = num * num5;
double num14 = num2 * num4;
double num15 = num3 * num3 + num6 * num6;
double num16 = num9 * (num7 - num8) + num12 * (num10 - num11) + num15 * (num13 - num14);
if (Behavior.NoExact)
{
return num16;
}
double num17 = (Math.Abs(num7) + Math.Abs(num8)) * num9 + (Math.Abs(num10) + Math.Abs(num11)) * num12 + (Math.Abs(num13) + Math.Abs(num14)) * num15;
double num18 = Primitives.iccerrboundA * num17;
if (num16 > num18 || -num16 > num18)
{
return num16;
}
Statistic.InCircleAdaptCount += 1L;
return Primitives.InCircleAdapt(pa, pb, pc, pd, num17);
}
// Token: 0x06000088 RID: 136 RVA: 0x0000D898 File Offset: 0x0000BA98
public static double NonRegular(Point pa, Point pb, Point pc, Point pd)
{
return Primitives.InCircle(pa, pb, pc, pd);
}
// Token: 0x06000089 RID: 137 RVA: 0x0000D8A4 File Offset: 0x0000BAA4
public static Point FindCircumcenter(Point torg, Point tdest, Point tapex, ref double xi, ref double eta, double offconstant)
{
Statistic.CircumcenterCount += 1L;
double num = tdest.x - torg.x;
double num2 = tdest.y - torg.y;
double num3 = tapex.x - torg.x;
double num4 = tapex.y - torg.y;
double num5 = num * num + num2 * num2;
double num6 = num3 * num3 + num4 * num4;
double num7 = (tdest.x - tapex.x) * (tdest.x - tapex.x) + (tdest.y - tapex.y) * (tdest.y - tapex.y);
double num8;
if (Behavior.NoExact)
{
num8 = 0.5 / (num * num4 - num3 * num2);
}
else
{
num8 = 0.5 / Primitives.CounterClockwise(tdest, tapex, torg);
Statistic.CounterClockwiseCount -= 1L;
}
double num9 = (num4 * num5 - num2 * num6) * num8;
double num10 = (num * num6 - num3 * num5) * num8;
if (num5 < num6 && num5 < num7)
{
if (offconstant > 0.0)
{
double num11 = 0.5 * num - offconstant * num2;
double num12 = 0.5 * num2 + offconstant * num;
if (num11 * num11 + num12 * num12 < num9 * num9 + num10 * num10)
{
num9 = num11;
num10 = num12;
}
}
}
else if (num6 < num7)
{
if (offconstant > 0.0)
{
double num11 = 0.5 * num3 + offconstant * num4;
double num12 = 0.5 * num4 - offconstant * num3;
if (num11 * num11 + num12 * num12 < num9 * num9 + num10 * num10)
{
num9 = num11;
num10 = num12;
}
}
}
else if (offconstant > 0.0)
{
double num11 = 0.5 * (tapex.x - tdest.x) - offconstant * (tapex.y - tdest.y);
double num12 = 0.5 * (tapex.y - tdest.y) + offconstant * (tapex.x - tdest.x);
if (num11 * num11 + num12 * num12 < (num9 - num) * (num9 - num) + (num10 - num2) * (num10 - num2))
{
num9 = num + num11;
num10 = num2 + num12;
}
}
xi = (num4 * num9 - num3 * num10) * (2.0 * num8);
eta = (num * num10 - num2 * num9) * (2.0 * num8);
return new Point(torg.x + num9, torg.y + num10);
}
// Token: 0x0600008A RID: 138 RVA: 0x0000DB3C File Offset: 0x0000BD3C
public static Point FindCircumcenter(Point torg, Point tdest, Point tapex, ref double xi, ref double eta)
{
Statistic.CircumcenterCount += 1L;
double num = tdest.x - torg.x;
double num2 = tdest.y - torg.y;
double num3 = tapex.x - torg.x;
double num4 = tapex.y - torg.y;
double num5 = num * num + num2 * num2;
double num6 = num3 * num3 + num4 * num4;
double num7;
if (Behavior.NoExact)
{
num7 = 0.5 / (num * num4 - num3 * num2);
}
else
{
num7 = 0.5 / Primitives.CounterClockwise(tdest, tapex, torg);
Statistic.CounterClockwiseCount -= 1L;
}
double num8 = (num4 * num5 - num2 * num6) * num7;
double num9 = (num * num6 - num3 * num5) * num7;
xi = (num4 * num8 - num3 * num9) * (2.0 * num7);
eta = (num * num9 - num2 * num8) * (2.0 * num7);
return new Point(torg.x + num8, torg.y + num9);
}
// Token: 0x0600008B RID: 139 RVA: 0x0000DC44 File Offset: 0x0000BE44
private static int FastExpansionSumZeroElim(int elen, double[] e, int flen, double[] f, double[] h)
{
double num = e[0];
double num2 = f[0];
int j;
int i = (j = 0);
double num3;
if (num2 > num == num2 > -num)
{
num3 = num;
num = e[++j];
}
else
{
num3 = num2;
num2 = f[++i];
}
int num4 = 0;
if (j < elen && i < flen)
{
double num5;
double num7;
if (num2 > num == num2 > -num)
{
num5 = num + num3;
double num6 = num5 - num;
num7 = num3 - num6;
num = e[++j];
}
else
{
num5 = num2 + num3;
double num6 = num5 - num2;
num7 = num3 - num6;
num2 = f[++i];
}
num3 = num5;
if (num7 != 0.0)
{
h[num4++] = num7;
}
while (j < elen)
{
if (i >= flen)
{
break;
}
if (num2 > num == num2 > -num)
{
num5 = num3 + num;
double num6 = num5 - num3;
double num8 = num5 - num6;
double num9 = num - num6;
num7 = num3 - num8 + num9;
num = e[++j];
}
else
{
num5 = num3 + num2;
double num6 = num5 - num3;
double num8 = num5 - num6;
double num9 = num2 - num6;
num7 = num3 - num8 + num9;
num2 = f[++i];
}
num3 = num5;
if (num7 != 0.0)
{
h[num4++] = num7;
}
}
}
while (j < elen)
{
double num5 = num3 + num;
double num6 = num5 - num3;
double num8 = num5 - num6;
double num9 = num - num6;
double num7 = num3 - num8 + num9;
num = e[++j];
num3 = num5;
if (num7 != 0.0)
{
h[num4++] = num7;
}
}
while (i < flen)
{
double num5 = num3 + num2;
double num6 = num5 - num3;
double num8 = num5 - num6;
double num9 = num2 - num6;
double num7 = num3 - num8 + num9;
num2 = f[++i];
num3 = num5;
if (num7 != 0.0)
{
h[num4++] = num7;
}
}
if (num3 != 0.0 || num4 == 0)
{
h[num4++] = num3;
}
return num4;
}
// Token: 0x0600008C RID: 140 RVA: 0x0000DE3C File Offset: 0x0000C03C
private static int ScaleExpansionZeroElim(int elen, double[] e, double b, double[] h)
{
double num = Primitives.splitter * b;
double num2 = num - b;
double num3 = num - num2;
double num4 = b - num3;
double num5 = e[0] * b;
double num6 = Primitives.splitter * e[0];
num2 = num6 - e[0];
double num7 = num6 - num2;
double num8 = e[0] - num7;
double num9 = num5 - num7 * num3 - num8 * num3 - num7 * num4;
double num10 = num8 * num4 - num9;
int num11 = 0;
if (num10 != 0.0)
{
h[num11++] = num10;
}
for (int i = 1; i < elen; i++)
{
double num12 = e[i];
double num13 = num12 * b;
double num14 = Primitives.splitter * num12;
num2 = num14 - num12;
num7 = num14 - num2;
num8 = num12 - num7;
num9 = num13 - num7 * num3 - num8 * num3 - num7 * num4;
double num15 = num8 * num4 - num9;
double num16 = num5 + num15;
double num17 = num16 - num5;
double num18 = num16 - num17;
double num19 = num15 - num17;
num10 = num5 - num18 + num19;
if (num10 != 0.0)
{
h[num11++] = num10;
}
num5 = num13 + num16;
num17 = num5 - num13;
num10 = num16 - num17;
if (num10 != 0.0)
{
h[num11++] = num10;
}
}
if (num5 != 0.0 || num11 == 0)
{
h[num11++] = num5;
}
return num11;
}
// Token: 0x0600008D RID: 141 RVA: 0x0000DF94 File Offset: 0x0000C194
private static double Estimate(int elen, double[] e)
{
double num = e[0];
for (int i = 1; i < elen; i++)
{
num += e[i];
}
return num;
}
// Token: 0x0600008E RID: 142 RVA: 0x0000DFB8 File Offset: 0x0000C1B8
private static double CounterClockwiseAdapt(Point pa, Point pb, Point pc, double detsum)
{
double[] array = new double[5];
double[] array2 = new double[5];
double[] array3 = new double[8];
double[] array4 = new double[12];
double[] array5 = new double[16];
double num = pa.X - pc.X;
double num2 = pb.X - pc.X;
double num3 = pa.Y - pc.Y;
double num4 = pb.Y - pc.Y;
double num5 = num * num4;
double num6 = Primitives.splitter * num;
double num7 = num6 - num;
double num8 = num6 - num7;
double num9 = num - num8;
double num10 = Primitives.splitter * num4;
num7 = num10 - num4;
double num11 = num10 - num7;
double num12 = num4 - num11;
double num13 = num5 - num8 * num11 - num9 * num11 - num8 * num12;
double num14 = num9 * num12 - num13;
double num15 = num3 * num2;
double num16 = Primitives.splitter * num3;
num7 = num16 - num3;
num8 = num16 - num7;
num9 = num3 - num8;
double num17 = Primitives.splitter * num2;
num7 = num17 - num2;
num11 = num17 - num7;
num12 = num2 - num11;
num13 = num15 - num8 * num11 - num9 * num11 - num8 * num12;
double num18 = num9 * num12 - num13;
double num19 = num14 - num18;
double num20 = num14 - num19;
double num21 = num19 + num20;
double num22 = num20 - num18;
double num23 = num14 - num21;
array[0] = num23 + num22;
double num24 = num5 + num19;
num20 = num24 - num5;
num21 = num24 - num20;
num22 = num19 - num20;
num23 = num5 - num21;
double num25 = num23 + num22;
num19 = num25 - num15;
num20 = num25 - num19;
num21 = num19 + num20;
num22 = num20 - num15;
num23 = num25 - num21;
array[1] = num23 + num22;
double num26 = num24 + num19;
num20 = num26 - num24;
num21 = num26 - num20;
num22 = num19 - num20;
num23 = num24 - num21;
array[2] = num23 + num22;
array[3] = num26;
double num27 = Primitives.Estimate(4, array);
double num28 = Primitives.ccwerrboundB * detsum;
if (num27 >= num28 || -num27 >= num28)
{
return num27;
}
num20 = pa.X - num;
num21 = num + num20;
num22 = num20 - pc.X;
num23 = pa.X - num21;
double num29 = num23 + num22;
num20 = pb.X - num2;
num21 = num2 + num20;
num22 = num20 - pc.X;
num23 = pb.X - num21;
double num30 = num23 + num22;
num20 = pa.Y - num3;
num21 = num3 + num20;
num22 = num20 - pc.Y;
num23 = pa.Y - num21;
double num31 = num23 + num22;
num20 = pb.Y - num4;
num21 = num4 + num20;
num22 = num20 - pc.Y;
num23 = pb.Y - num21;
double num32 = num23 + num22;
if (num29 == 0.0 && num31 == 0.0 && num30 == 0.0 && num32 == 0.0)
{
return num27;
}
num28 = Primitives.ccwerrboundC * detsum + Primitives.resulterrbound * ((num27 >= 0.0) ? num27 : (-num27));
num27 += num * num32 + num4 * num29 - (num3 * num30 + num2 * num31);
if (num27 >= num28 || -num27 >= num28)
{
return num27;
}
double num33 = num29 * num4;
double num34 = Primitives.splitter * num29;
num7 = num34 - num29;
num8 = num34 - num7;
num9 = num29 - num8;
double num35 = Primitives.splitter * num4;
num7 = num35 - num4;
num11 = num35 - num7;
num12 = num4 - num11;
num13 = num33 - num8 * num11 - num9 * num11 - num8 * num12;
double num36 = num9 * num12 - num13;
double num37 = num31 * num2;
double num38 = Primitives.splitter * num31;
num7 = num38 - num31;
num8 = num38 - num7;
num9 = num31 - num8;
double num39 = Primitives.splitter * num2;
num7 = num39 - num2;
num11 = num39 - num7;
num12 = num2 - num11;
num13 = num37 - num8 * num11 - num9 * num11 - num8 * num12;
double num40 = num9 * num12 - num13;
num19 = num36 - num40;
num20 = num36 - num19;
num21 = num19 + num20;
num22 = num20 - num40;
num23 = num36 - num21;
array2[0] = num23 + num22;
num24 = num33 + num19;
num20 = num24 - num33;
num21 = num24 - num20;
num22 = num19 - num20;
num23 = num33 - num21;
double num41 = num23 + num22;
num19 = num41 - num37;
num20 = num41 - num19;
num21 = num19 + num20;
num22 = num20 - num37;
num23 = num41 - num21;
array2[1] = num23 + num22;
double num42 = num24 + num19;
num20 = num42 - num24;
num21 = num42 - num20;
num22 = num19 - num20;
num23 = num24 - num21;
array2[2] = num23 + num22;
array2[3] = num42;
int num43 = Primitives.FastExpansionSumZeroElim(4, array, 4, array2, array3);
num33 = num * num32;
double num44 = Primitives.splitter * num;
num7 = num44 - num;
num8 = num44 - num7;
num9 = num - num8;
double num45 = Primitives.splitter * num32;
num7 = num45 - num32;
num11 = num45 - num7;
num12 = num32 - num11;
num13 = num33 - num8 * num11 - num9 * num11 - num8 * num12;
double num46 = num9 * num12 - num13;
num37 = num3 * num30;
double num47 = Primitives.splitter * num3;
num7 = num47 - num3;
num8 = num47 - num7;
num9 = num3 - num8;
double num48 = Primitives.splitter * num30;
num7 = num48 - num30;
num11 = num48 - num7;
num12 = num30 - num11;
num13 = num37 - num8 * num11 - num9 * num11 - num8 * num12;
num40 = num9 * num12 - num13;
num19 = num46 - num40;
num20 = num46 - num19;
num21 = num19 + num20;
num22 = num20 - num40;
num23 = num46 - num21;
array2[0] = num23 + num22;
num24 = num33 + num19;
num20 = num24 - num33;
num21 = num24 - num20;
num22 = num19 - num20;
num23 = num33 - num21;
double num49 = num23 + num22;
num19 = num49 - num37;
num20 = num49 - num19;
num21 = num19 + num20;
num22 = num20 - num37;
num23 = num49 - num21;
array2[1] = num23 + num22;
num42 = num24 + num19;
num20 = num42 - num24;
num21 = num42 - num20;
num22 = num19 - num20;
num23 = num24 - num21;
array2[2] = num23 + num22;
array2[3] = num42;
int num50 = Primitives.FastExpansionSumZeroElim(num43, array3, 4, array2, array4);
num33 = num29 * num32;
double num51 = Primitives.splitter * num29;
num7 = num51 - num29;
num8 = num51 - num7;
num9 = num29 - num8;
double num52 = Primitives.splitter * num32;
num7 = num52 - num32;
num11 = num52 - num7;
num12 = num32 - num11;
num13 = num33 - num8 * num11 - num9 * num11 - num8 * num12;
double num53 = num9 * num12 - num13;
num37 = num31 * num30;
double num54 = Primitives.splitter * num31;
num7 = num54 - num31;
num8 = num54 - num7;
num9 = num31 - num8;
double num55 = Primitives.splitter * num30;
num7 = num55 - num30;
num11 = num55 - num7;
num12 = num30 - num11;
num13 = num37 - num8 * num11 - num9 * num11 - num8 * num12;
num40 = num9 * num12 - num13;
num19 = num53 - num40;
num20 = num53 - num19;
num21 = num19 + num20;
num22 = num20 - num40;
num23 = num53 - num21;
array2[0] = num23 + num22;
num24 = num33 + num19;
num20 = num24 - num33;
num21 = num24 - num20;
num22 = num19 - num20;
num23 = num33 - num21;
double num56 = num23 + num22;
num19 = num56 - num37;
num20 = num56 - num19;
num21 = num19 + num20;
num22 = num20 - num37;
num23 = num56 - num21;
array2[1] = num23 + num22;
num42 = num24 + num19;
num20 = num42 - num24;
num21 = num42 - num20;
num22 = num19 - num20;
num23 = num24 - num21;
array2[2] = num23 + num22;
array2[3] = num42;
int num57 = Primitives.FastExpansionSumZeroElim(num50, array4, 4, array2, array5);
return array5[num57 - 1];
}
// Token: 0x0600008F RID: 143 RVA: 0x0000E758 File Offset: 0x0000C958
private static double InCircleAdapt(Point pa, Point pb, Point pc, Point pd, double permanent)
{
double[] array = new double[4];
double[] array2 = new double[4];
double[] array3 = new double[4];
double[] array4 = new double[8];
double[] array5 = new double[16];
double[] array6 = new double[8];
double[] array7 = new double[16];
double[] array8 = new double[32];
double[] array9 = new double[8];
double[] array10 = new double[16];
double[] array11 = new double[8];
double[] array12 = new double[16];
double[] array13 = new double[32];
double[] array14 = new double[8];
double[] array15 = new double[16];
double[] array16 = new double[8];
double[] array17 = new double[16];
double[] array18 = new double[32];
double[] array19 = new double[64];
double[] array20 = new double[1152];
double[] array21 = new double[1152];
double[] array22 = new double[4];
double[] array23 = new double[4];
double[] array24 = new double[4];
double[] array25 = new double[5];
double[] array26 = new double[5];
double[] array27 = new double[8];
double[] array28 = new double[16];
double[] array29 = new double[16];
double[] array30 = new double[16];
double[] array31 = new double[32];
double[] array32 = new double[32];
double[] array33 = new double[48];
double[] array34 = new double[64];
double[] array35 = new double[8];
double[] array36 = new double[8];
double[] array37 = new double[8];
double[] array38 = new double[8];
double[] array39 = new double[8];
double[] array40 = new double[8];
double[] array41 = new double[8];
double[] array42 = new double[8];
double[] array43 = new double[8];
double[] array44 = new double[8];
double[] array45 = new double[8];
double[] array46 = new double[8];
double[] array47 = new double[8];
double[] array48 = new double[8];
double[] array49 = new double[8];
double[] array50 = new double[8];
double[] array51 = new double[8];
double[] array52 = new double[8];
int num = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int num6 = 0;
double[] array53 = new double[16];
double[] array54 = new double[16];
double[] array55 = new double[16];
double[] array56 = new double[16];
double[] array57 = new double[16];
double[] array58 = new double[16];
double[] array59 = new double[8];
double[] array60 = new double[8];
double[] array61 = new double[8];
double[] array62 = new double[8];
double[] array63 = new double[8];
double[] array64 = new double[8];
double[] array65 = new double[8];
double[] array66 = new double[8];
double[] array67 = new double[8];
double[] array68 = new double[4];
double[] array69 = new double[4];
double[] array70 = new double[4];
double num7 = pa.X - pd.X;
double num8 = pb.X - pd.X;
double num9 = pc.X - pd.X;
double num10 = pa.Y - pd.Y;
double num11 = pb.Y - pd.Y;
double num12 = pc.Y - pd.Y;
num7 = pa.X - pd.X;
num8 = pb.X - pd.X;
num9 = pc.X - pd.X;
num10 = pa.Y - pd.Y;
num11 = pb.Y - pd.Y;
num12 = pc.Y - pd.Y;
double num13 = num8 * num12;
double num14 = Primitives.splitter * num8;
double num15 = num14 - num8;
double num16 = num14 - num15;
double num17 = num8 - num16;
double num18 = Primitives.splitter * num12;
num15 = num18 - num12;
double num19 = num18 - num15;
double num20 = num12 - num19;
double num21 = num13 - num16 * num19 - num17 * num19 - num16 * num20;
double num22 = num17 * num20 - num21;
double num23 = num9 * num11;
double num24 = Primitives.splitter * num9;
num15 = num24 - num9;
num16 = num24 - num15;
num17 = num9 - num16;
double num25 = Primitives.splitter * num11;
num15 = num25 - num11;
num19 = num25 - num15;
num20 = num11 - num19;
num21 = num23 - num16 * num19 - num17 * num19 - num16 * num20;
double num26 = num17 * num20 - num21;
double num27 = num22 - num26;
double num28 = num22 - num27;
double num29 = num27 + num28;
double num30 = num28 - num26;
double num31 = num22 - num29;
array[0] = num31 + num30;
double num32 = num13 + num27;
num28 = num32 - num13;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num13 - num29;
double num33 = num31 + num30;
num27 = num33 - num23;
num28 = num33 - num27;
num29 = num27 + num28;
num30 = num28 - num23;
num31 = num33 - num29;
array[1] = num31 + num30;
double num34 = num32 + num27;
num28 = num34 - num32;
num29 = num34 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array[2] = num31 + num30;
array[3] = num34;
int num35 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array, num7, array4), array4, num7, array5);
int num36 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array, num10, array6), array6, num10, array7);
int num37 = Primitives.FastExpansionSumZeroElim(num35, array5, num36, array7, array8);
double num38 = num9 * num10;
double num39 = Primitives.splitter * num9;
num15 = num39 - num9;
num16 = num39 - num15;
num17 = num9 - num16;
double num40 = Primitives.splitter * num10;
num15 = num40 - num10;
num19 = num40 - num15;
num20 = num10 - num19;
num21 = num38 - num16 * num19 - num17 * num19 - num16 * num20;
double num41 = num17 * num20 - num21;
double num42 = num7 * num12;
double num43 = Primitives.splitter * num7;
num15 = num43 - num7;
num16 = num43 - num15;
num17 = num7 - num16;
double num44 = Primitives.splitter * num12;
num15 = num44 - num12;
num19 = num44 - num15;
num20 = num12 - num19;
num21 = num42 - num16 * num19 - num17 * num19 - num16 * num20;
double num45 = num17 * num20 - num21;
num27 = num41 - num45;
num28 = num41 - num27;
num29 = num27 + num28;
num30 = num28 - num45;
num31 = num41 - num29;
array2[0] = num31 + num30;
num32 = num38 + num27;
num28 = num32 - num38;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num38 - num29;
num33 = num31 + num30;
num27 = num33 - num42;
num28 = num33 - num27;
num29 = num27 + num28;
num30 = num28 - num42;
num31 = num33 - num29;
array2[1] = num31 + num30;
double num46 = num32 + num27;
num28 = num46 - num32;
num29 = num46 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array2[2] = num31 + num30;
array2[3] = num46;
int num47 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array2, num8, array9), array9, num8, array10);
int num48 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array2, num11, array11), array11, num11, array12);
int num49 = Primitives.FastExpansionSumZeroElim(num47, array10, num48, array12, array13);
double num50 = num7 * num11;
double num51 = Primitives.splitter * num7;
num15 = num51 - num7;
num16 = num51 - num15;
num17 = num7 - num16;
double num52 = Primitives.splitter * num11;
num15 = num52 - num11;
num19 = num52 - num15;
num20 = num11 - num19;
num21 = num50 - num16 * num19 - num17 * num19 - num16 * num20;
double num53 = num17 * num20 - num21;
double num54 = num8 * num10;
double num55 = Primitives.splitter * num8;
num15 = num55 - num8;
num16 = num55 - num15;
num17 = num8 - num16;
double num56 = Primitives.splitter * num10;
num15 = num56 - num10;
num19 = num56 - num15;
num20 = num10 - num19;
num21 = num54 - num16 * num19 - num17 * num19 - num16 * num20;
double num57 = num17 * num20 - num21;
num27 = num53 - num57;
num28 = num53 - num27;
num29 = num27 + num28;
num30 = num28 - num57;
num31 = num53 - num29;
array3[0] = num31 + num30;
num32 = num50 + num27;
num28 = num32 - num50;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num50 - num29;
num33 = num31 + num30;
num27 = num33 - num54;
num28 = num33 - num27;
num29 = num27 + num28;
num30 = num28 - num54;
num31 = num33 - num29;
array3[1] = num31 + num30;
double num58 = num32 + num27;
num28 = num58 - num32;
num29 = num58 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array3[2] = num31 + num30;
array3[3] = num58;
int num59 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array3, num9, array14), array14, num9, array15);
int num60 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array3, num12, array16), array16, num12, array17);
int num61 = Primitives.FastExpansionSumZeroElim(num59, array15, num60, array17, array18);
int num62 = Primitives.FastExpansionSumZeroElim(Primitives.FastExpansionSumZeroElim(num37, array8, num49, array13, array19), array19, num61, array18, array20);
double num63 = Primitives.Estimate(num62, array20);
double num64 = Primitives.iccerrboundB * permanent;
if (num63 >= num64 || -num63 >= num64)
{
return num63;
}
num28 = pa.X - num7;
num29 = num7 + num28;
num30 = num28 - pd.X;
num31 = pa.X - num29;
double num65 = num31 + num30;
num28 = pa.Y - num10;
num29 = num10 + num28;
num30 = num28 - pd.Y;
num31 = pa.Y - num29;
double num66 = num31 + num30;
num28 = pb.X - num8;
num29 = num8 + num28;
num30 = num28 - pd.X;
num31 = pb.X - num29;
double num67 = num31 + num30;
num28 = pb.Y - num11;
num29 = num11 + num28;
num30 = num28 - pd.Y;
num31 = pb.Y - num29;
double num68 = num31 + num30;
num28 = pc.X - num9;
num29 = num9 + num28;
num30 = num28 - pd.X;
num31 = pc.X - num29;
double num69 = num31 + num30;
num28 = pc.Y - num12;
num29 = num12 + num28;
num30 = num28 - pd.Y;
num31 = pc.Y - num29;
double num70 = num31 + num30;
if (num65 == 0.0 && num67 == 0.0 && num69 == 0.0 && num66 == 0.0 && num68 == 0.0 && num70 == 0.0)
{
return num63;
}
num64 = Primitives.iccerrboundC * permanent + Primitives.resulterrbound * ((num63 >= 0.0) ? num63 : (-num63));
num63 += (num7 * num7 + num10 * num10) * (num8 * num70 + num12 * num67 - (num11 * num69 + num9 * num68)) + 2.0 * (num7 * num65 + num10 * num66) * (num8 * num12 - num11 * num9) + ((num8 * num8 + num11 * num11) * (num9 * num66 + num10 * num69 - (num12 * num65 + num7 * num70)) + 2.0 * (num8 * num67 + num11 * num68) * (num9 * num10 - num12 * num7)) + ((num9 * num9 + num12 * num12) * (num7 * num68 + num11 * num65 - (num10 * num67 + num8 * num66)) + 2.0 * (num9 * num69 + num12 * num70) * (num7 * num11 - num10 * num8));
if (num63 >= num64 || -num63 >= num64)
{
return num63;
}
double[] array71 = array20;
double[] array72 = array21;
if (num67 != 0.0 || num68 != 0.0 || num69 != 0.0 || num70 != 0.0)
{
double num71 = num7 * num7;
double num72 = Primitives.splitter * num7;
num15 = num72 - num7;
num16 = num72 - num15;
num17 = num7 - num16;
num21 = num71 - num16 * num16 - (num16 + num16) * num17;
double num73 = num17 * num17 - num21;
double num74 = num10 * num10;
double num75 = Primitives.splitter * num10;
num15 = num75 - num10;
num16 = num75 - num15;
num17 = num10 - num16;
num21 = num74 - num16 * num16 - (num16 + num16) * num17;
double num76 = num17 * num17 - num21;
num27 = num73 + num76;
num28 = num27 - num73;
num29 = num27 - num28;
num30 = num76 - num28;
num31 = num73 - num29;
array22[0] = num31 + num30;
num32 = num71 + num27;
num28 = num32 - num71;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num71 - num29;
num33 = num31 + num30;
num27 = num33 + num74;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num74 - num28;
num31 = num33 - num29;
array22[1] = num31 + num30;
double num77 = num32 + num27;
num28 = num77 - num32;
num29 = num77 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array22[2] = num31 + num30;
array22[3] = num77;
}
if (num69 != 0.0 || num70 != 0.0 || num65 != 0.0 || num66 != 0.0)
{
double num78 = num8 * num8;
double num79 = Primitives.splitter * num8;
num15 = num79 - num8;
num16 = num79 - num15;
num17 = num8 - num16;
num21 = num78 - num16 * num16 - (num16 + num16) * num17;
double num80 = num17 * num17 - num21;
double num81 = num11 * num11;
double num82 = Primitives.splitter * num11;
num15 = num82 - num11;
num16 = num82 - num15;
num17 = num11 - num16;
num21 = num81 - num16 * num16 - (num16 + num16) * num17;
double num83 = num17 * num17 - num21;
num27 = num80 + num83;
num28 = num27 - num80;
num29 = num27 - num28;
num30 = num83 - num28;
num31 = num80 - num29;
array23[0] = num31 + num30;
num32 = num78 + num27;
num28 = num32 - num78;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num78 - num29;
num33 = num31 + num30;
num27 = num33 + num81;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num81 - num28;
num31 = num33 - num29;
array23[1] = num31 + num30;
double num84 = num32 + num27;
num28 = num84 - num32;
num29 = num84 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array23[2] = num31 + num30;
array23[3] = num84;
}
if (num65 != 0.0 || num66 != 0.0 || num67 != 0.0 || num68 != 0.0)
{
double num85 = num9 * num9;
double num86 = Primitives.splitter * num9;
num15 = num86 - num9;
num16 = num86 - num15;
num17 = num9 - num16;
num21 = num85 - num16 * num16 - (num16 + num16) * num17;
double num87 = num17 * num17 - num21;
double num88 = num12 * num12;
double num89 = Primitives.splitter * num12;
num15 = num89 - num12;
num16 = num89 - num15;
num17 = num12 - num16;
num21 = num88 - num16 * num16 - (num16 + num16) * num17;
double num90 = num17 * num17 - num21;
num27 = num87 + num90;
num28 = num27 - num87;
num29 = num27 - num28;
num30 = num90 - num28;
num31 = num87 - num29;
array24[0] = num31 + num30;
num32 = num85 + num27;
num28 = num32 - num85;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num85 - num29;
num33 = num31 + num30;
num27 = num33 + num88;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num88 - num28;
num31 = num33 - num29;
array24[1] = num31 + num30;
double num91 = num32 + num27;
num28 = num91 - num32;
num29 = num91 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array24[2] = num31 + num30;
array24[3] = num91;
}
if (num65 != 0.0)
{
num = Primitives.ScaleExpansionZeroElim(4, array, num65, array47);
int num92 = Primitives.ScaleExpansionZeroElim(num, array47, 2.0 * num7, array28);
int num93 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array24, num65, array36), array36, num11, array29);
int num94 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array23, num65, array35), array35, -num12, array30);
int num95 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num94, array30, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array73 = array71;
array71 = array72;
array72 = array73;
}
if (num66 != 0.0)
{
num2 = Primitives.ScaleExpansionZeroElim(4, array, num66, array48);
int num92 = Primitives.ScaleExpansionZeroElim(num2, array48, 2.0 * num10, array28);
int num93 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array23, num66, array37), array37, num9, array29);
int num97 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array24, num66, array38), array38, -num8, array30);
int num95 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num97, array30, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array74 = array71;
array71 = array72;
array72 = array74;
}
if (num67 != 0.0)
{
num3 = Primitives.ScaleExpansionZeroElim(4, array2, num67, array49);
int num92 = Primitives.ScaleExpansionZeroElim(num3, array49, 2.0 * num8, array28);
int num93 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array22, num67, array39), array39, num12, array29);
int num98 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array24, num67, array40), array40, -num10, array30);
int num95 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num98, array30, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array75 = array71;
array71 = array72;
array72 = array75;
}
if (num68 != 0.0)
{
num4 = Primitives.ScaleExpansionZeroElim(4, array2, num68, array50);
int num92 = Primitives.ScaleExpansionZeroElim(num4, array50, 2.0 * num11, array28);
int num93 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array24, num68, array42), array42, num7, array29);
int num99 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array22, num68, array41), array41, -num9, array30);
int num95 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num99, array30, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array76 = array71;
array71 = array72;
array72 = array76;
}
if (num69 != 0.0)
{
num5 = Primitives.ScaleExpansionZeroElim(4, array3, num69, array51);
int num92 = Primitives.ScaleExpansionZeroElim(num5, array51, 2.0 * num9, array28);
int num93 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array23, num69, array44), array44, num10, array29);
int num100 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array22, num69, array43), array43, -num11, array30);
int num95 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num100, array30, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array77 = array71;
array71 = array72;
array72 = array77;
}
if (num70 != 0.0)
{
num6 = Primitives.ScaleExpansionZeroElim(4, array3, num70, array52);
int num92 = Primitives.ScaleExpansionZeroElim(num6, array52, 2.0 * num12, array28);
int num93 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array22, num70, array45), array45, num8, array29);
int num101 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array23, num70, array46), array46, -num7, array30);
int num95 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num101, array30, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array78 = array71;
array71 = array72;
array72 = array78;
}
if (num65 != 0.0 || num66 != 0.0)
{
int num117;
int num123;
if (num67 != 0.0 || num68 != 0.0 || num69 != 0.0 || num70 != 0.0)
{
double num102 = num67 * num12;
double num103 = Primitives.splitter * num67;
num15 = num103 - num67;
num16 = num103 - num15;
num17 = num67 - num16;
double num104 = Primitives.splitter * num12;
num15 = num104 - num12;
num19 = num104 - num15;
num20 = num12 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
double num105 = num17 * num20 - num21;
double num106 = num8 * num70;
double num107 = Primitives.splitter * num8;
num15 = num107 - num8;
num16 = num107 - num15;
num17 = num8 - num16;
double num108 = Primitives.splitter * num70;
num15 = num108 - num70;
num19 = num108 - num15;
num20 = num70 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
double num109 = num17 * num20 - num21;
num27 = num105 + num109;
num28 = num27 - num105;
num29 = num27 - num28;
num30 = num109 - num28;
num31 = num105 - num29;
array25[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 + num106;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num106 - num28;
num31 = num33 - num29;
array25[1] = num31 + num30;
double num110 = num32 + num27;
num28 = num110 - num32;
num29 = num110 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array25[2] = num31 + num30;
array25[3] = num110;
double num111 = -num11;
num102 = num69 * num111;
double num112 = Primitives.splitter * num69;
num15 = num112 - num69;
num16 = num112 - num15;
num17 = num69 - num16;
double num113 = Primitives.splitter * num111;
num15 = num113 - num111;
num19 = num113 - num15;
num20 = num111 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
num105 = num17 * num20 - num21;
num111 = -num68;
num106 = num9 * num111;
double num114 = Primitives.splitter * num9;
num15 = num114 - num9;
num16 = num114 - num15;
num17 = num9 - num16;
double num115 = Primitives.splitter * num111;
num15 = num115 - num111;
num19 = num115 - num15;
num20 = num111 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
num109 = num17 * num20 - num21;
num27 = num105 + num109;
num28 = num27 - num105;
num29 = num27 - num28;
num30 = num109 - num28;
num31 = num105 - num29;
array26[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 + num106;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num106 - num28;
num31 = num33 - num29;
array26[1] = num31 + num30;
double num116 = num32 + num27;
num28 = num116 - num32;
num29 = num116 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array26[2] = num31 + num30;
array26[3] = num116;
num117 = Primitives.FastExpansionSumZeroElim(4, array25, 4, array26, array66);
num102 = num67 * num70;
double num118 = Primitives.splitter * num67;
num15 = num118 - num67;
num16 = num118 - num15;
num17 = num67 - num16;
double num119 = Primitives.splitter * num70;
num15 = num119 - num70;
num19 = num119 - num15;
num20 = num70 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
num105 = num17 * num20 - num21;
num106 = num69 * num68;
double num120 = Primitives.splitter * num69;
num15 = num120 - num69;
num16 = num120 - num15;
num17 = num69 - num16;
double num121 = Primitives.splitter * num68;
num15 = num121 - num68;
num19 = num121 - num15;
num20 = num68 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
num109 = num17 * num20 - num21;
num27 = num105 - num109;
num28 = num105 - num27;
num29 = num27 + num28;
num30 = num28 - num109;
num31 = num105 - num29;
array69[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 - num106;
num28 = num33 - num27;
num29 = num27 + num28;
num30 = num28 - num106;
num31 = num33 - num29;
array69[1] = num31 + num30;
double num122 = num32 + num27;
num28 = num122 - num32;
num29 = num122 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array69[2] = num31 + num30;
array69[3] = num122;
num123 = 4;
}
else
{
array66[0] = 0.0;
num117 = 1;
array69[0] = 0.0;
num123 = 1;
}
if (num65 != 0.0)
{
int num92 = Primitives.ScaleExpansionZeroElim(num, array47, num65, array28);
int num124 = Primitives.ScaleExpansionZeroElim(num117, array66, num65, array53);
int num95 = Primitives.ScaleExpansionZeroElim(num124, array53, 2.0 * num7, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num92, array28, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array79 = array71;
array71 = array72;
array72 = array79;
if (num68 != 0.0)
{
num92 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array24, num65, array27), array27, num68, array28);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num92, array28, array72);
double[] array80 = array71;
array71 = array72;
array72 = array80;
}
if (num70 != 0.0)
{
num92 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array23, -num65, array27), array27, num70, array28);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num92, array28, array72);
double[] array81 = array71;
array71 = array72;
array72 = array81;
}
num95 = Primitives.ScaleExpansionZeroElim(num124, array53, num65, array31);
int num125 = Primitives.ScaleExpansionZeroElim(num123, array69, num65, array59);
num92 = Primitives.ScaleExpansionZeroElim(num125, array59, 2.0 * num7, array28);
int num93 = Primitives.ScaleExpansionZeroElim(num125, array59, num65, array29);
int num126 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array32);
int num127 = Primitives.FastExpansionSumZeroElim(num95, array31, num126, array32, array34);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num127, array34, array72);
double[] array82 = array71;
array71 = array72;
array72 = array82;
}
if (num66 != 0.0)
{
int num92 = Primitives.ScaleExpansionZeroElim(num2, array48, num66, array28);
int num128 = Primitives.ScaleExpansionZeroElim(num117, array66, num66, array54);
int num95 = Primitives.ScaleExpansionZeroElim(num128, array54, 2.0 * num10, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num92, array28, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array83 = array71;
array71 = array72;
array72 = array83;
num95 = Primitives.ScaleExpansionZeroElim(num128, array54, num66, array31);
int num129 = Primitives.ScaleExpansionZeroElim(num123, array69, num66, array60);
num92 = Primitives.ScaleExpansionZeroElim(num129, array60, 2.0 * num10, array28);
int num93 = Primitives.ScaleExpansionZeroElim(num129, array60, num66, array29);
int num126 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array32);
int num127 = Primitives.FastExpansionSumZeroElim(num95, array31, num126, array32, array34);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num127, array34, array72);
double[] array84 = array71;
array71 = array72;
array72 = array84;
}
}
if (num67 != 0.0 || num68 != 0.0)
{
int num138;
int num144;
if (num69 != 0.0 || num70 != 0.0 || num65 != 0.0 || num66 != 0.0)
{
double num102 = num69 * num10;
double num130 = Primitives.splitter * num69;
num15 = num130 - num69;
num16 = num130 - num15;
num17 = num69 - num16;
double num131 = Primitives.splitter * num10;
num15 = num131 - num10;
num19 = num131 - num15;
num20 = num10 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
double num105 = num17 * num20 - num21;
double num106 = num9 * num66;
double num132 = Primitives.splitter * num9;
num15 = num132 - num9;
num16 = num132 - num15;
num17 = num9 - num16;
double num133 = Primitives.splitter * num66;
num15 = num133 - num66;
num19 = num133 - num15;
num20 = num66 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
double num109 = num17 * num20 - num21;
num27 = num105 + num109;
num28 = num27 - num105;
num29 = num27 - num28;
num30 = num109 - num28;
num31 = num105 - num29;
array25[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 + num106;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num106 - num28;
num31 = num33 - num29;
array25[1] = num31 + num30;
double num110 = num32 + num27;
num28 = num110 - num32;
num29 = num110 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array25[2] = num31 + num30;
array25[3] = num110;
double num111 = -num12;
num102 = num65 * num111;
double num134 = Primitives.splitter * num65;
num15 = num134 - num65;
num16 = num134 - num15;
num17 = num65 - num16;
double num135 = Primitives.splitter * num111;
num15 = num135 - num111;
num19 = num135 - num15;
num20 = num111 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
num105 = num17 * num20 - num21;
num111 = -num70;
num106 = num7 * num111;
double num136 = Primitives.splitter * num7;
num15 = num136 - num7;
num16 = num136 - num15;
num17 = num7 - num16;
double num137 = Primitives.splitter * num111;
num15 = num137 - num111;
num19 = num137 - num15;
num20 = num111 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
num109 = num17 * num20 - num21;
num27 = num105 + num109;
num28 = num27 - num105;
num29 = num27 - num28;
num30 = num109 - num28;
num31 = num105 - num29;
array26[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 + num106;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num106 - num28;
num31 = num33 - num29;
array26[1] = num31 + num30;
double num116 = num32 + num27;
num28 = num116 - num32;
num29 = num116 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array26[2] = num31 + num30;
array26[3] = num116;
num138 = Primitives.FastExpansionSumZeroElim(4, array25, 4, array26, array67);
num102 = num69 * num66;
double num139 = Primitives.splitter * num69;
num15 = num139 - num69;
num16 = num139 - num15;
num17 = num69 - num16;
double num140 = Primitives.splitter * num66;
num15 = num140 - num66;
num19 = num140 - num15;
num20 = num66 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
num105 = num17 * num20 - num21;
num106 = num65 * num70;
double num141 = Primitives.splitter * num65;
num15 = num141 - num65;
num16 = num141 - num15;
num17 = num65 - num16;
double num142 = Primitives.splitter * num70;
num15 = num142 - num70;
num19 = num142 - num15;
num20 = num70 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
num109 = num17 * num20 - num21;
num27 = num105 - num109;
num28 = num105 - num27;
num29 = num27 + num28;
num30 = num28 - num109;
num31 = num105 - num29;
array70[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 - num106;
num28 = num33 - num27;
num29 = num27 + num28;
num30 = num28 - num106;
num31 = num33 - num29;
array70[1] = num31 + num30;
double num143 = num32 + num27;
num28 = num143 - num32;
num29 = num143 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array70[2] = num31 + num30;
array70[3] = num143;
num144 = 4;
}
else
{
array67[0] = 0.0;
num138 = 1;
array70[0] = 0.0;
num144 = 1;
}
if (num67 != 0.0)
{
int num92 = Primitives.ScaleExpansionZeroElim(num3, array49, num67, array28);
int num145 = Primitives.ScaleExpansionZeroElim(num138, array67, num67, array55);
int num95 = Primitives.ScaleExpansionZeroElim(num145, array55, 2.0 * num8, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num92, array28, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array85 = array71;
array71 = array72;
array72 = array85;
if (num70 != 0.0)
{
num92 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array22, num67, array27), array27, num70, array28);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num92, array28, array72);
double[] array86 = array71;
array71 = array72;
array72 = array86;
}
if (num66 != 0.0)
{
num92 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array24, -num67, array27), array27, num66, array28);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num92, array28, array72);
double[] array87 = array71;
array71 = array72;
array72 = array87;
}
num95 = Primitives.ScaleExpansionZeroElim(num145, array55, num67, array31);
int num146 = Primitives.ScaleExpansionZeroElim(num144, array70, num67, array61);
num92 = Primitives.ScaleExpansionZeroElim(num146, array61, 2.0 * num8, array28);
int num93 = Primitives.ScaleExpansionZeroElim(num146, array61, num67, array29);
int num126 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array32);
int num127 = Primitives.FastExpansionSumZeroElim(num95, array31, num126, array32, array34);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num127, array34, array72);
double[] array88 = array71;
array71 = array72;
array72 = array88;
}
if (num68 != 0.0)
{
int num92 = Primitives.ScaleExpansionZeroElim(num4, array50, num68, array28);
int num147 = Primitives.ScaleExpansionZeroElim(num138, array67, num68, array56);
int num95 = Primitives.ScaleExpansionZeroElim(num147, array56, 2.0 * num11, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num92, array28, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array89 = array71;
array71 = array72;
array72 = array89;
num95 = Primitives.ScaleExpansionZeroElim(num147, array56, num68, array31);
int num148 = Primitives.ScaleExpansionZeroElim(num144, array70, num68, array62);
num92 = Primitives.ScaleExpansionZeroElim(num148, array62, 2.0 * num11, array28);
int num93 = Primitives.ScaleExpansionZeroElim(num148, array62, num68, array29);
int num126 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array32);
int num127 = Primitives.FastExpansionSumZeroElim(num95, array31, num126, array32, array34);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num127, array34, array72);
double[] array90 = array71;
array71 = array72;
array72 = array90;
}
}
if (num69 != 0.0 || num70 != 0.0)
{
int num157;
int num163;
if (num65 != 0.0 || num66 != 0.0 || num67 != 0.0 || num68 != 0.0)
{
double num102 = num65 * num11;
double num149 = Primitives.splitter * num65;
num15 = num149 - num65;
num16 = num149 - num15;
num17 = num65 - num16;
double num150 = Primitives.splitter * num11;
num15 = num150 - num11;
num19 = num150 - num15;
num20 = num11 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
double num105 = num17 * num20 - num21;
double num106 = num7 * num68;
double num151 = Primitives.splitter * num7;
num15 = num151 - num7;
num16 = num151 - num15;
num17 = num7 - num16;
double num152 = Primitives.splitter * num68;
num15 = num152 - num68;
num19 = num152 - num15;
num20 = num68 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
double num109 = num17 * num20 - num21;
num27 = num105 + num109;
num28 = num27 - num105;
num29 = num27 - num28;
num30 = num109 - num28;
num31 = num105 - num29;
array25[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 + num106;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num106 - num28;
num31 = num33 - num29;
array25[1] = num31 + num30;
double num110 = num32 + num27;
num28 = num110 - num32;
num29 = num110 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array25[2] = num31 + num30;
array25[3] = num110;
double num111 = -num10;
num102 = num67 * num111;
double num153 = Primitives.splitter * num67;
num15 = num153 - num67;
num16 = num153 - num15;
num17 = num67 - num16;
double num154 = Primitives.splitter * num111;
num15 = num154 - num111;
num19 = num154 - num15;
num20 = num111 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
num105 = num17 * num20 - num21;
num111 = -num66;
num106 = num8 * num111;
double num155 = Primitives.splitter * num8;
num15 = num155 - num8;
num16 = num155 - num15;
num17 = num8 - num16;
double num156 = Primitives.splitter * num111;
num15 = num156 - num111;
num19 = num156 - num15;
num20 = num111 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
num109 = num17 * num20 - num21;
num27 = num105 + num109;
num28 = num27 - num105;
num29 = num27 - num28;
num30 = num109 - num28;
num31 = num105 - num29;
array26[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 + num106;
num28 = num27 - num33;
num29 = num27 - num28;
num30 = num106 - num28;
num31 = num33 - num29;
array26[1] = num31 + num30;
double num116 = num32 + num27;
num28 = num116 - num32;
num29 = num116 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array26[2] = num31 + num30;
array26[3] = num116;
num157 = Primitives.FastExpansionSumZeroElim(4, array25, 4, array26, array65);
num102 = num65 * num68;
double num158 = Primitives.splitter * num65;
num15 = num158 - num65;
num16 = num158 - num15;
num17 = num65 - num16;
double num159 = Primitives.splitter * num68;
num15 = num159 - num68;
num19 = num159 - num15;
num20 = num68 - num19;
num21 = num102 - num16 * num19 - num17 * num19 - num16 * num20;
num105 = num17 * num20 - num21;
num106 = num67 * num66;
double num160 = Primitives.splitter * num67;
num15 = num160 - num67;
num16 = num160 - num15;
num17 = num67 - num16;
double num161 = Primitives.splitter * num66;
num15 = num161 - num66;
num19 = num161 - num15;
num20 = num66 - num19;
num21 = num106 - num16 * num19 - num17 * num19 - num16 * num20;
num109 = num17 * num20 - num21;
num27 = num105 - num109;
num28 = num105 - num27;
num29 = num27 + num28;
num30 = num28 - num109;
num31 = num105 - num29;
array68[0] = num31 + num30;
num32 = num102 + num27;
num28 = num32 - num102;
num29 = num32 - num28;
num30 = num27 - num28;
num31 = num102 - num29;
num33 = num31 + num30;
num27 = num33 - num106;
num28 = num33 - num27;
num29 = num27 + num28;
num30 = num28 - num106;
num31 = num33 - num29;
array68[1] = num31 + num30;
double num162 = num32 + num27;
num28 = num162 - num32;
num29 = num162 - num28;
num30 = num27 - num28;
num31 = num32 - num29;
array68[2] = num31 + num30;
array68[3] = num162;
num163 = 4;
}
else
{
array65[0] = 0.0;
num157 = 1;
array68[0] = 0.0;
num163 = 1;
}
if (num69 != 0.0)
{
int num92 = Primitives.ScaleExpansionZeroElim(num5, array51, num69, array28);
int num164 = Primitives.ScaleExpansionZeroElim(num157, array65, num69, array57);
int num95 = Primitives.ScaleExpansionZeroElim(num164, array57, 2.0 * num9, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num92, array28, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array91 = array71;
array71 = array72;
array72 = array91;
if (num66 != 0.0)
{
num92 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array23, num69, array27), array27, num66, array28);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num92, array28, array72);
double[] array92 = array71;
array71 = array72;
array72 = array92;
}
if (num68 != 0.0)
{
num92 = Primitives.ScaleExpansionZeroElim(Primitives.ScaleExpansionZeroElim(4, array22, -num69, array27), array27, num68, array28);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num92, array28, array72);
double[] array93 = array71;
array71 = array72;
array72 = array93;
}
num95 = Primitives.ScaleExpansionZeroElim(num164, array57, num69, array31);
int num165 = Primitives.ScaleExpansionZeroElim(num163, array68, num69, array63);
num92 = Primitives.ScaleExpansionZeroElim(num165, array63, 2.0 * num9, array28);
int num93 = Primitives.ScaleExpansionZeroElim(num165, array63, num69, array29);
int num126 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array32);
int num127 = Primitives.FastExpansionSumZeroElim(num95, array31, num126, array32, array34);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num127, array34, array72);
double[] array94 = array71;
array71 = array72;
array72 = array94;
}
if (num70 != 0.0)
{
int num92 = Primitives.ScaleExpansionZeroElim(num6, array52, num70, array28);
int num166 = Primitives.ScaleExpansionZeroElim(num157, array65, num70, array58);
int num95 = Primitives.ScaleExpansionZeroElim(num166, array58, 2.0 * num12, array31);
int num96 = Primitives.FastExpansionSumZeroElim(num92, array28, num95, array31, array33);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num96, array33, array72);
double[] array95 = array71;
array71 = array72;
array72 = array95;
num95 = Primitives.ScaleExpansionZeroElim(num166, array58, num70, array31);
int num167 = Primitives.ScaleExpansionZeroElim(num163, array68, num70, array64);
num92 = Primitives.ScaleExpansionZeroElim(num167, array64, 2.0 * num12, array28);
int num93 = Primitives.ScaleExpansionZeroElim(num167, array64, num70, array29);
int num126 = Primitives.FastExpansionSumZeroElim(num92, array28, num93, array29, array32);
int num127 = Primitives.FastExpansionSumZeroElim(num95, array31, num126, array32, array34);
num62 = Primitives.FastExpansionSumZeroElim(num62, array71, num127, array34, array72);
array71 = array72;
}
}
return array71[num62 - 1];
}
// Token: 0x04000072 RID: 114
private static double epsilon;
// Token: 0x04000073 RID: 115
private static double splitter;
// Token: 0x04000074 RID: 116
private static double resulterrbound;
// Token: 0x04000075 RID: 117
private static double ccwerrboundA;
// Token: 0x04000076 RID: 118
private static double ccwerrboundB;
// Token: 0x04000077 RID: 119
private static double ccwerrboundC;
// Token: 0x04000078 RID: 120
private static double iccerrboundA;
// Token: 0x04000079 RID: 121
private static double iccerrboundB;
// Token: 0x0400007A RID: 122
private static double iccerrboundC;
// Token: 0x0400007B RID: 123
private static double o3derrboundA;
// Token: 0x0400007C RID: 124
private static double o3derrboundB;
// Token: 0x0400007D RID: 125
private static double o3derrboundC;
}
}