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; } }