예제 #1
0
 public static void dlaein(
     boolean paramBoolean1,
     boolean paramBoolean2,
     int paramInt1,
     double[] paramArrayOfDouble1,
     int paramInt2,
     int paramInt3,
     double paramDouble1,
     double paramDouble2,
     double[] paramArrayOfDouble2,
     int paramInt4,
     double[] paramArrayOfDouble3,
     int paramInt5,
     double[] paramArrayOfDouble4,
     int paramInt6,
     int paramInt7,
     double[] paramArrayOfDouble5,
     int paramInt8,
     double paramDouble3,
     double paramDouble4,
     double paramDouble5,
     intW paramintW) {
   String str1 = new String(" ");
   String str2 = new String(" ");
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   intW localintW = new intW(0);
   int n = 0;
   int i1 = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   double d6 = 0.0D;
   double d7 = 0.0D;
   double d8 = 0.0D;
   double d9 = 0.0D;
   doubleW localdoubleW = new doubleW(0.0D);
   double d10 = 0.0D;
   double d11 = 0.0D;
   double d12 = 0.0D;
   double d13 = 0.0D;
   double d14 = 0.0D;
   double d15 = 0.0D;
   double d16 = 0.0D;
   double d17 = 0.0D;
   double d18 = 0.0D;
   double d19 = 0.0D;
   paramintW.val = 0;
   d9 = Math.sqrt(paramInt1);
   d5 = 0.1D / d9;
   d7 = Math.max(1.0D, paramDouble3 * d9) * paramDouble4;
   i1 = 1;
   int i3;
   for (int i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
     i = 1;
     for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
       paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
           paramArrayOfDouble1[(i - 1 + (i1 - 1) * paramInt3 + paramInt2)];
       i += 1;
     }
     paramArrayOfDouble1[(i1 - 1 + (i1 - 1) * paramInt3 + paramInt2)] -= paramDouble1;
     i1 += 1;
   }
   if ((paramDouble2 != 0.0D ? 0 : 1) != 0) {
     if (paramBoolean2) {
       i = 1;
       for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = paramDouble3;
         i += 1;
       }
     } else {
       d13 = Dnrm2.dnrm2(paramInt1, paramArrayOfDouble2, paramInt4, 1);
       Dscal.dscal(
           paramInt1, paramDouble3 * d9 / Math.max(d13, d7), paramArrayOfDouble2, paramInt4, 1);
     }
     if (paramBoolean1) {
       i = 1;
       for (i2 = paramInt1 - 1 - 1 + 1; i2 > 0; i2--) {
         d3 = paramArrayOfDouble1[(i + 1 - 1 + (i - 1) * paramInt3 + paramInt2)];
         if ((Math.abs(paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)])
                     >= Math.abs(d3)
                 ? 0
                 : 1)
             != 0) {
           d16 = paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = d3;
           i1 = i + 1;
           for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d16 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             i1 += 1;
           }
         } else {
           if ((paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1)
               != 0) {
             paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = paramDouble3;
           }
           d16 = d3 / paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)];
           if ((d16 == 0.0D ? 0 : 1) != 0) {
             i1 = i + 1;
             for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
               paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] -=
                   d16 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)];
               i1 += 1;
             }
           }
         }
         i += 1;
       }
       if ((paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] != 0.0D
               ? 0
               : 1)
           != 0) {
         paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] =
             paramDouble3;
       }
       str2 = "N";
     } else {
       i1 = paramInt1;
       for (i2 = (2 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         d4 = paramArrayOfDouble1[(i1 - 1 + (i1 - 1 - 1) * paramInt3 + paramInt2)];
         if ((Math.abs(paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)])
                     >= Math.abs(d4)
                 ? 0
                 : 1)
             != 0) {
           d16 = paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] / d4;
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d4;
           i = 1;
           for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d16 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             i += 1;
           }
         } else {
           if ((paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1)
               != 0) {
             paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
           }
           d16 = d4 / paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)];
           if ((d16 == 0.0D ? 0 : 1) != 0) {
             i = 1;
             for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
               paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] -=
                   d16 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)];
               i += 1;
             }
           }
         }
         i1 += -1;
       }
       if ((paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1) != 0) {
         paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
       }
       str2 = "T";
     }
     str1 = "N";
     n = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       Dlatrs.dlatrs(
           "Upper",
           str2,
           "Nonunit",
           str1,
           paramInt1,
           paramArrayOfDouble4,
           paramInt6,
           paramInt7,
           paramArrayOfDouble2,
           paramInt4,
           localdoubleW,
           paramArrayOfDouble5,
           paramInt8,
           localintW);
       str1 = "Y";
       d13 = Dasum.dasum(paramInt1, paramArrayOfDouble2, paramInt4, 1);
       if ((d13 < d5 * localdoubleW.val ? 0 : 1) != 0) {
         break;
       }
       d10 = paramDouble3 / (d9 + 1.0D);
       paramArrayOfDouble2[(1 - 1 + paramInt4)] = paramDouble3;
       i = 2;
       for (i3 = paramInt1 - 2 + 1; i3 > 0; i3--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = d10;
         i += 1;
       }
       paramArrayOfDouble2[(paramInt1 - n + 1 - 1 + paramInt4)] -= paramDouble3 * d9;
       n += 1;
     }
     paramintW.val = 1;
     i = Idamax.idamax(paramInt1, paramArrayOfDouble2, paramInt4, 1);
     Dscal.dscal(
         paramInt1,
         1.0D / Math.abs(paramArrayOfDouble2[(i - 1 + paramInt4)]),
         paramArrayOfDouble2,
         paramInt4,
         1);
   } else {
     if (paramBoolean2) {
       i = 1;
       for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = paramDouble3;
         paramArrayOfDouble3[(i - 1 + paramInt5)] = 0.0D;
         i += 1;
       }
     } else {
       d6 =
           Dlapy2.dlapy2(
               Dnrm2.dnrm2(paramInt1, paramArrayOfDouble2, paramInt4, 1),
               Dnrm2.dnrm2(paramInt1, paramArrayOfDouble3, paramInt5, 1));
       d8 = paramDouble3 * d9 / Math.max(d6, d7);
       Dscal.dscal(paramInt1, d8, paramArrayOfDouble2, paramInt4, 1);
       Dscal.dscal(paramInt1, d8, paramArrayOfDouble3, paramInt5, 1);
     }
     if (paramBoolean1) {
       paramArrayOfDouble4[(2 - 1 + (1 - 1) * paramInt7 + paramInt6)] = (-paramDouble2);
       i = 2;
       for (i2 = paramInt1 - 2 + 1; i2 > 0; i2--) {
         paramArrayOfDouble4[(i + 1 - 1 + (1 - 1) * paramInt7 + paramInt6)] = 0.0D;
         i += 1;
       }
       i = 1;
       for (i2 = paramInt1 - 1 - 1 + 1; i2 > 0; i2--) {
         d1 =
             Dlapy2.dlapy2(
                 paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)],
                 paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
         d3 = paramArrayOfDouble1[(i + 1 - 1 + (i - 1) * paramInt3 + paramInt2)];
         if ((d1 >= Math.abs(d3) ? 0 : 1) != 0) {
           d18 = paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           d17 = paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = d3;
           paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
           i1 = i + 1;
           for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d18 * d10);
             paramArrayOfDouble4[(i1 + 1 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] - d17 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
             i1 += 1;
           }
           paramArrayOfDouble4[(i + 2 - 1 + (i - 1) * paramInt7 + paramInt6)] = (-paramDouble2);
           paramArrayOfDouble4[(i + 1 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] -=
               d17 * paramDouble2;
           paramArrayOfDouble4[(i + 2 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] +=
               d18 * paramDouble2;
         } else {
           if ((d1 != 0.0D ? 0 : 1) != 0) {
             paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = paramDouble3;
             paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
             d1 = paramDouble3;
           }
           d3 = d3 / d1 / d1;
           d18 = paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] * d3;
           d17 = -(paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] * d3);
           i1 = i + 1;
           for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
             paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                     - d18 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                     + d17 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
             paramArrayOfDouble4[(i1 + 1 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] =
                 (-(d18 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)])
                     - d17 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]);
             i1 += 1;
           }
           paramArrayOfDouble4[(i + 2 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] -= paramDouble2;
         }
         paramArrayOfDouble5[(i - 1 + paramInt8)] =
             (Dasum.dasum(
                     paramInt1 - i,
                     paramArrayOfDouble4,
                     i - 1 + (i + 1 - 1) * paramInt7 + paramInt6,
                     paramInt7)
                 + Dasum.dasum(
                     paramInt1 - i,
                     paramArrayOfDouble4,
                     i + 2 - 1 + (i - 1) * paramInt7 + paramInt6,
                     1));
         i += 1;
       }
       if ((paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] != 0.0D
               ? 0
               : 1)
           != 0) {}
       if (((paramArrayOfDouble4[(paramInt1 + 1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)]
                           != 0.0D
                       ? 0
                       : 1)
                   != 0
               ? 1
               : 0)
           != 0) {
         paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] =
             paramDouble3;
       }
       paramArrayOfDouble5[(paramInt1 - 1 + paramInt8)] = 0.0D;
       j = paramInt1;
       k = 1;
       m = -1;
     } else {
       paramArrayOfDouble4[(paramInt1 + 1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] =
           paramDouble2;
       i1 = 1;
       for (i2 = paramInt1 - 1 - 1 + 1; i2 > 0; i2--) {
         paramArrayOfDouble4[(paramInt1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = 0.0D;
         i1 += 1;
       }
       i1 = paramInt1;
       for (i2 = (2 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         d4 = paramArrayOfDouble1[(i1 - 1 + (i1 - 1 - 1) * paramInt3 + paramInt2)];
         d2 =
             Dlapy2.dlapy2(
                 paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)],
                 paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]);
         if ((d2 >= Math.abs(d4) ? 0 : 1) != 0) {
           d18 = paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] / d4;
           d17 = paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] / d4;
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d4;
           paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = 0.0D;
           i = 1;
           for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d18 * d10);
             paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] - d17 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
             i += 1;
           }
           paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] = paramDouble2;
           paramArrayOfDouble4[(i1 - 1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] +=
               d17 * paramDouble2;
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] -=
               d18 * paramDouble2;
         } else {
           if ((d2 != 0.0D ? 0 : 1) != 0) {
             paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
             paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = 0.0D;
             d2 = paramDouble3;
           }
           d4 = d4 / d2 / d2;
           d18 = paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] * d4;
           d17 = -(paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] * d4);
           i = 1;
           for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
             paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)]
                     - d18 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                     + d17 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
             paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
                 (-(d18 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)])
                     - d17 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]);
             i += 1;
           }
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] += paramDouble2;
         }
         paramArrayOfDouble5[(i1 - 1 + paramInt8)] =
             (Dasum.dasum(i1 - 1, paramArrayOfDouble4, 1 - 1 + (i1 - 1) * paramInt7 + paramInt6, 1)
                 + Dasum.dasum(
                     i1 - 1,
                     paramArrayOfDouble4,
                     i1 + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
                     paramInt7));
         i1 += -1;
       }
       if ((paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1)
           != 0) {}
       if (((paramArrayOfDouble4[(2 - 1 + (1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1) != 0
               ? 1
               : 0)
           != 0) {
         paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
       }
       paramArrayOfDouble5[(1 - 1 + paramInt8)] = 0.0D;
       j = 1;
       k = paramInt1;
       m = 1;
     }
     n = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       localdoubleW.val = 1.0D;
       d12 = 1.0D;
       d11 = paramDouble5;
       i = j;
       for (i3 = (k - j + m) / m; i3 > 0; i3--) {
         if ((paramArrayOfDouble5[(i - 1 + paramInt8)] <= d11 ? 0 : 1) != 0) {
           d8 = 1.0D / d12;
           Dscal.dscal(paramInt1, d8, paramArrayOfDouble2, paramInt4, 1);
           Dscal.dscal(paramInt1, d8, paramArrayOfDouble3, paramInt5, 1);
           localdoubleW.val *= d8;
           d12 = 1.0D;
           d11 = paramDouble5;
         }
         d18 = paramArrayOfDouble2[(i - 1 + paramInt4)];
         d17 = paramArrayOfDouble3[(i - 1 + paramInt5)];
         int i4;
         if (paramBoolean1) {
           i1 = i + 1;
           for (i4 = paramInt1 - (i + 1) + 1; i4 > 0; i4--) {
             d18 =
                 d18
                     - paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)]
                     + paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)];
             d17 =
                 d17
                     - paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)]
                     - paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)];
             i1 += 1;
           }
         } else {
           i1 = 1;
           for (i4 = i - 1 - 1 + 1; i4 > 0; i4--) {
             d18 =
                 d18
                     - paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)]
                     + paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)];
             d17 =
                 d17
                     - paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)]
                     - paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)];
             i1 += 1;
           }
         }
         d14 =
             Math.abs(paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)])
                 + Math.abs(paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
         if ((d14 <= paramDouble4 ? 0 : 1) != 0) {
           if ((d14 >= 1.0D ? 0 : 1) != 0) {
             d15 = Math.abs(d18) + Math.abs(d17);
             if ((d15 <= d14 * paramDouble5 ? 0 : 1) != 0) {
               d8 = 1.0D / d15;
               Dscal.dscal(paramInt1, d8, paramArrayOfDouble2, paramInt4, 1);
               Dscal.dscal(paramInt1, d8, paramArrayOfDouble3, paramInt5, 1);
               d18 = paramArrayOfDouble2[(i - 1 + paramInt4)];
               d17 = paramArrayOfDouble3[(i - 1 + paramInt5)];
               localdoubleW.val *= d8;
               d12 *= d8;
             }
           }
           dladiv_adapter(
               d18,
               d17,
               paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)],
               paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)],
               paramArrayOfDouble2,
               i - 1 + paramInt4,
               paramArrayOfDouble3,
               i - 1 + paramInt5);
           d12 =
               Math.max(
                   Math.abs(paramArrayOfDouble2[(i - 1 + paramInt4)])
                       + Math.abs(paramArrayOfDouble3[(i - 1 + paramInt5)]),
                   d12);
           d11 = paramDouble5 / d12;
         } else {
           i1 = 1;
           for (i4 = paramInt1 - 1 + 1; i4 > 0; i4--) {
             paramArrayOfDouble2[(i1 - 1 + paramInt4)] = 0.0D;
             paramArrayOfDouble3[(i1 - 1 + paramInt5)] = 0.0D;
             i1 += 1;
           }
           paramArrayOfDouble2[(i - 1 + paramInt4)] = 1.0D;
           paramArrayOfDouble3[(i - 1 + paramInt5)] = 1.0D;
           localdoubleW.val = 0.0D;
           d12 = 1.0D;
           d11 = paramDouble5;
         }
         i += m;
       }
       d13 =
           Dasum.dasum(paramInt1, paramArrayOfDouble2, paramInt4, 1)
               + Dasum.dasum(paramInt1, paramArrayOfDouble3, paramInt5, 1);
       if ((d13 < d5 * localdoubleW.val ? 0 : 1) != 0) {
         break;
       }
       d19 = paramDouble3 / (d9 + 1.0D);
       paramArrayOfDouble2[(1 - 1 + paramInt4)] = paramDouble3;
       paramArrayOfDouble3[(1 - 1 + paramInt5)] = 0.0D;
       i = 2;
       for (i3 = paramInt1 - 2 + 1; i3 > 0; i3--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = d19;
         paramArrayOfDouble3[(i - 1 + paramInt5)] = 0.0D;
         i += 1;
       }
       paramArrayOfDouble2[(paramInt1 - n + 1 - 1 + paramInt4)] -= paramDouble3 * d9;
       n += 1;
     }
     paramintW.val = 1;
     d13 = 0.0D;
     i = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       d13 =
           Math.max(
               d13,
               Math.abs(paramArrayOfDouble2[(i - 1 + paramInt4)])
                   + Math.abs(paramArrayOfDouble3[(i - 1 + paramInt5)]));
       i += 1;
     }
     Dscal.dscal(paramInt1, 1.0D / d13, paramArrayOfDouble2, paramInt4, 1);
     Dscal.dscal(paramInt1, 1.0D / d13, paramArrayOfDouble3, paramInt5, 1);
   }
 }
예제 #2
0
 public static void dpbstf(
     String paramString,
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble,
     int paramInt3,
     int paramInt4,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   double d = 0.0D;
   paramintW.val = 0;
   bool = Lsame.lsame(paramString, "U");
   if ((((bool ^ true)) && ((Lsame.lsame(paramString, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= paramInt2 + 1 ? 0 : 1) != 0) {
     paramintW.val = -5;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DPBSTF", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   j = Math.max(1, paramInt4 - 1);
   m = (paramInt1 + paramInt2) / 2;
   int n;
   if (bool) {
     i = paramInt1;
     for (n = (m + 1 - paramInt1 + -1) / -1; n > 0; n--) {
       d = paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(i - 1, paramInt2);
       Dscal.dscal(
           k,
           1.0D / d,
           paramArrayOfDouble,
           paramInt2 + 1 - k - 1 + (i - 1) * paramInt4 + paramInt3,
           1);
       Dsyr.dsyr(
           "Upper",
           k,
           -1.0D,
           paramArrayOfDouble,
           paramInt2 + 1 - k - 1 + (i - 1) * paramInt4 + paramInt3,
           1,
           paramArrayOfDouble,
           paramInt2 + 1 - 1 + (i - k - 1) * paramInt4 + paramInt3,
           j);
       i += -1;
     }
     i = 1;
     for (n = m - 1 + 1; n > 0; n--) {
       d = paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(paramInt2, m - i);
       if ((k <= 0 ? 0 : 1) != 0) {
         Dscal.dscal(
             k,
             1.0D / d,
             paramArrayOfDouble,
             paramInt2 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j);
         Dsyr.dsyr(
             "Upper",
             k,
             -1.0D,
             paramArrayOfDouble,
             paramInt2 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j,
             paramArrayOfDouble,
             paramInt2 + 1 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j);
       }
       i += 1;
     }
   } else {
     i = paramInt1;
     for (n = (m + 1 - paramInt1 + -1) / -1; n > 0; n--) {
       d = paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(i - 1, paramInt2);
       Dscal.dscal(
           k, 1.0D / d, paramArrayOfDouble, k + 1 - 1 + (i - k - 1) * paramInt4 + paramInt3, j);
       Dsyr.dsyr(
           "Lower",
           k,
           -1.0D,
           paramArrayOfDouble,
           k + 1 - 1 + (i - k - 1) * paramInt4 + paramInt3,
           j,
           paramArrayOfDouble,
           1 - 1 + (i - k - 1) * paramInt4 + paramInt3,
           j);
       i += -1;
     }
     i = 1;
     for (n = m - 1 + 1; n > 0; n--) {
       d = paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(paramInt2, m - i);
       if ((k <= 0 ? 0 : 1) != 0) {
         Dscal.dscal(k, 1.0D / d, paramArrayOfDouble, 2 - 1 + (i - 1) * paramInt4 + paramInt3, 1);
         Dsyr.dsyr(
             "Lower",
             k,
             -1.0D,
             paramArrayOfDouble,
             2 - 1 + (i - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble,
             1 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j);
       }
       i += 1;
     }
   }
   return;
   paramintW.val = i;
 }
예제 #3
0
 public static void dstev(
     String paramString,
     int paramInt1,
     double[] paramArrayOfDouble1,
     int paramInt2,
     double[] paramArrayOfDouble2,
     int paramInt3,
     double[] paramArrayOfDouble3,
     int paramInt4,
     int paramInt5,
     double[] paramArrayOfDouble4,
     int paramInt6,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   double d6 = 0.0D;
   double d7 = 0.0D;
   double d8 = 0.0D;
   bool = Lsame.lsame(paramString, "V");
   paramintW.val = 0;
   if ((((!bool) && (!Lsame.lsame(paramString, "N")) ? 0 : 1) ^ 0x1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else {
     if ((paramInt5 >= 1 ? 0 : 1) == 0) {
       if (!bool) {}
     }
     if ((((paramInt5 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
       paramintW.val = -6;
     }
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DSTEV ", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   if ((paramInt1 != 1 ? 0 : 1) != 0) {
     if (bool) {
       paramArrayOfDouble3[(1 - 1 + (1 - 1) * paramInt5 + paramInt4)] = 1.0D;
     }
     return;
   }
   d5 = Dlamch.dlamch("Safe minimum");
   d2 = Dlamch.dlamch("Precision");
   d7 = d5 / d2;
   d1 = 1.0D / d7;
   d4 = Math.sqrt(d7);
   d3 = Math.sqrt(d1);
   j = 0;
   d8 =
       Dlanst.dlanst(
           "M", paramInt1, paramArrayOfDouble1, paramInt2, paramArrayOfDouble2, paramInt3);
   if ((d8 <= 0.0D ? 0 : 1) != 0) {}
   if (((d8 >= d4 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     j = 1;
     d6 = d4 / d8;
   } else if ((d8 <= d3 ? 0 : 1) != 0) {
     j = 1;
     d6 = d3 / d8;
   }
   if ((j != 1 ? 0 : 1) != 0) {
     Dscal.dscal(paramInt1, d6, paramArrayOfDouble1, paramInt2, 1);
     Dscal.dscal(paramInt1 - 1, d6, paramArrayOfDouble2, 1 - 1 + paramInt3, 1);
   }
   if ((bool ^ true)) {
     Dsterf.dsterf(
         paramInt1, paramArrayOfDouble1, paramInt2, paramArrayOfDouble2, paramInt3, paramintW);
   } else {
     Dsteqr.dsteqr(
         "I",
         paramInt1,
         paramArrayOfDouble1,
         paramInt2,
         paramArrayOfDouble2,
         paramInt3,
         paramArrayOfDouble3,
         paramInt4,
         paramInt5,
         paramArrayOfDouble4,
         paramInt6,
         paramintW);
   }
   if ((j != 1 ? 0 : 1) != 0) {
     if ((paramintW.val != 0 ? 0 : 1) != 0) {
       i = paramInt1;
     } else {
       i = paramintW.val - 1;
     }
     Dscal.dscal(i, 1.0D / d6, paramArrayOfDouble1, paramInt2, 1);
   }
 }
예제 #4
0
 public static void dsytrs(
     String paramString,
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     int[] paramArrayOfInt,
     int paramInt5,
     double[] paramArrayOfDouble2,
     int paramInt6,
     int paramInt7,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   int k = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   double d6 = 0.0D;
   paramintW.val = 0;
   bool = Lsame.lsame(paramString, "U");
   if ((((bool ^ true)) && ((Lsame.lsame(paramString, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -5;
   } else if ((paramInt7 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -8;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DSYTRS", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) == 0) {}
   if (((paramInt2 != 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {
     return;
   }
   int m;
   if (bool) {
     j = paramInt1;
     while ((j >= 1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         Dger.dger(
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramArrayOfDouble2,
             1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Dscal.dscal(
             paramInt2,
             1.0D / paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)],
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         j -= 1;
       } else {
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j - 1 ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         Dger.dger(
             j - 2,
             paramInt2,
             -1.0D,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramArrayOfDouble2,
             1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Dger.dger(
             j - 2,
             paramInt2,
             -1.0D,
             paramArrayOfDouble1,
             1 - 1 + (j - 1 - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             j - 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramArrayOfDouble2,
             1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         d3 = paramArrayOfDouble1[(j - 1 - 1 + (j - 1) * paramInt4 + paramInt3)];
         d2 = paramArrayOfDouble1[(j - 1 - 1 + (j - 1 - 1) * paramInt4 + paramInt3)] / d3;
         d1 = paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)] / d3;
         d6 = d2 * d1 - 1.0D;
         i = 1;
         for (m = paramInt2 - 1 + 1; m > 0; m--) {
           d5 = paramArrayOfDouble2[(j - 1 - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           d4 = paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble2[(j - 1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
               ((d1 * d5 - d4) / d6);
           paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] = ((d2 * d4 - d5) / d6);
           i += 1;
         }
         j -= 2;
       }
     }
     j = 1;
     while ((j <= paramInt1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         Dgemv.dgemv(
             "Transpose",
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble2,
             paramInt6,
             paramInt7,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             1.0D,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j += 1;
       } else {
         Dgemv.dgemv(
             "Transpose",
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble2,
             paramInt6,
             paramInt7,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             1.0D,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Dgemv.dgemv(
             "Transpose",
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble2,
             paramInt6,
             paramInt7,
             paramArrayOfDouble1,
             1 - 1 + (j + 1 - 1) * paramInt4 + paramInt3,
             1,
             1.0D,
             paramArrayOfDouble2,
             j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j += 2;
       }
     }
   } else {
     j = 1;
     while ((j <= paramInt1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         if ((j >= paramInt1 ? 0 : 1) != 0) {
           Dger.dger(
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         Dscal.dscal(
             paramInt2,
             1.0D / paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)],
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         j += 1;
       } else {
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j + 1 ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         if ((j >= paramInt1 - 1 ? 0 : 1) != 0) {
           Dger.dger(
               paramInt1 - j - 1,
               paramInt2,
               -1.0D,
               paramArrayOfDouble1,
               j + 2 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               j + 2 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
           Dger.dger(
               paramInt1 - j - 1,
               paramInt2,
               -1.0D,
               paramArrayOfDouble1,
               j + 2 - 1 + (j + 1 - 1) * paramInt4 + paramInt3,
               1,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               j + 2 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         d3 = paramArrayOfDouble1[(j + 1 - 1 + (j - 1) * paramInt4 + paramInt3)];
         d2 = paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)] / d3;
         d1 = paramArrayOfDouble1[(j + 1 - 1 + (j + 1 - 1) * paramInt4 + paramInt3)] / d3;
         d6 = d2 * d1 - 1.0D;
         i = 1;
         for (m = paramInt2 - 1 + 1; m > 0; m--) {
           d5 = paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           d4 = paramArrayOfDouble2[(j + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] = ((d1 * d5 - d4) / d6);
           paramArrayOfDouble2[(j + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
               ((d2 * d4 - d5) / d6);
           i += 1;
         }
         j += 2;
       }
     }
     j = paramInt1;
     while ((j >= 1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         if ((j >= paramInt1 ? 0 : 1) != 0) {
           Dgemv.dgemv(
               "Transpose",
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               1.0D,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j -= 1;
       } else {
         if ((j >= paramInt1 ? 0 : 1) != 0) {
           Dgemv.dgemv(
               "Transpose",
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               1.0D,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
           Dgemv.dgemv(
               "Transpose",
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1 - 1) * paramInt4 + paramInt3,
               1,
               1.0D,
               paramArrayOfDouble2,
               j - 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j -= 2;
       }
     }
   }
 }