예제 #1
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);
   }
 }
예제 #2
0
 public static void dlaqr3(
     boolean paramBoolean1,
     boolean paramBoolean2,
     int paramInt1,
     int paramInt2,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble1,
     int paramInt5,
     int paramInt6,
     int paramInt7,
     int paramInt8,
     double[] paramArrayOfDouble2,
     int paramInt9,
     int paramInt10,
     intW paramintW1,
     intW paramintW2,
     double[] paramArrayOfDouble3,
     int paramInt11,
     double[] paramArrayOfDouble4,
     int paramInt12,
     double[] paramArrayOfDouble5,
     int paramInt13,
     int paramInt14,
     int paramInt15,
     double[] paramArrayOfDouble6,
     int paramInt16,
     int paramInt17,
     int paramInt18,
     double[] paramArrayOfDouble7,
     int paramInt19,
     int paramInt20,
     double[] paramArrayOfDouble8,
     int paramInt21,
     int paramInt22) {
   doubleW localdoubleW1 = new doubleW(0.0D);
   doubleW localdoubleW2 = new doubleW(0.0D);
   doubleW localdoubleW3 = new doubleW(0.0D);
   doubleW localdoubleW4 = new doubleW(0.0D);
   doubleW localdoubleW5 = new doubleW(0.0D);
   doubleW localdoubleW6 = new doubleW(0.0D);
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   doubleW localdoubleW7 = new doubleW(0.0D);
   doubleW localdoubleW8 = new doubleW(0.0D);
   double d5 = 0.0D;
   doubleW localdoubleW9 = new doubleW(0.0D);
   doubleW localdoubleW10 = new doubleW(0.0D);
   double d6 = 0.0D;
   int i = 0;
   intW localintW1 = new intW(0);
   intW localintW2 = new intW(0);
   intW localintW3 = new intW(0);
   intW localintW4 = new intW(0);
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   int i2 = 0;
   int i3 = 0;
   int i4 = 0;
   int i5 = 0;
   int i6 = 0;
   int i7 = 0;
   int i8 = 0;
   int i9 = 0;
   int i10 = 0;
   int i11 = 0;
   int i12 = 0;
   k = Math.min(paramInt4, paramInt3 - paramInt2 + 1);
   if ((k > 2 ? 0 : 1) != 0) {
     i9 = 1;
   } else {
     Dgehrd.dgehrd(
         k,
         1,
         k - 1,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble8,
         paramInt21,
         paramArrayOfDouble8,
         paramInt21,
         -1,
         localintW3);
     i6 = (int) paramArrayOfDouble8[(1 - 1 + paramInt21)];
     Dorghr.dorghr(
         k,
         1,
         k - 1,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble8,
         paramInt21,
         paramArrayOfDouble8,
         paramInt21,
         -1,
         localintW3);
     i7 = (int) paramArrayOfDouble8[(1 - 1 + paramInt21)];
     Dlaqr4.dlaqr4(
         true,
         true,
         k,
         1,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble3,
         paramInt11,
         paramArrayOfDouble4,
         paramInt12,
         1,
         k,
         paramArrayOfDouble5,
         paramInt13,
         paramInt14,
         paramArrayOfDouble8,
         paramInt21,
         -1,
         localintW4);
     i8 = (int) paramArrayOfDouble8[(1 - 1 + paramInt21)];
     i9 = Math.max(k + Math.max(i6, i7), i8);
   }
   if ((paramInt22 != -1 ? 0 : 1) != 0) {
     paramArrayOfDouble8[(1 - 1 + paramInt21)] = i9;
     return;
   }
   paramintW1.val = 0;
   paramintW2.val = 0;
   if ((paramInt2 <= paramInt3 ? 0 : 1) != 0) {
     return;
   }
   if ((paramInt4 >= 1 ? 0 : 1) != 0) {
     return;
   }
   localdoubleW8.val = Dlamch.dlamch("SAFE MINIMUM");
   localdoubleW7.val = (1.0D / localdoubleW8.val);
   Dlabad.dlabad(localdoubleW8, localdoubleW7);
   d6 = Dlamch.dlamch("PRECISION");
   d5 = localdoubleW8.val * (paramInt1 / d6);
   k = Math.min(paramInt4, paramInt3 - paramInt2 + 1);
   i4 = paramInt3 - k + 1;
   if ((i4 != paramInt2 ? 0 : 1) != 0) {
     d4 = 0.0D;
   } else {
     d4 = paramArrayOfDouble1[(i4 - 1 + (i4 - 1 - 1) * paramInt6 + paramInt5)];
   }
   if ((paramInt3 != i4 ? 0 : 1) != 0) {
     paramArrayOfDouble3[(i4 - 1 + paramInt11)] =
         paramArrayOfDouble1[(i4 - 1 + (i4 - 1) * paramInt6 + paramInt5)];
     paramArrayOfDouble4[(i4 - 1 + paramInt12)] = 0.0D;
     paramintW1.val = 1;
     paramintW2.val = 0;
     if ((Math.abs(d4)
                 > Math.max(
                     d5,
                     d6
                         * Math.abs(
                             paramArrayOfDouble1[(i4 - 1 + (i4 - 1) * paramInt6 + paramInt5)]))
             ? 0
             : 1)
         != 0) {
       paramintW1.val = 0;
       paramintW2.val = 1;
       if ((i4 <= paramInt2 ? 0 : 1) != 0) {
         paramArrayOfDouble1[(i4 - 1 + (i4 - 1 - 1) * paramInt6 + paramInt5)] = 0.0D;
       }
     }
     return;
   }
   Dlacpy.dlacpy(
       "U",
       k,
       k,
       paramArrayOfDouble1,
       i4 - 1 + (i4 - 1) * paramInt6 + paramInt5,
       paramInt6,
       paramArrayOfDouble6,
       paramInt16,
       paramInt17);
   Dcopy.dcopy(
       k - 1,
       paramArrayOfDouble1,
       i4 + 1 - 1 + (i4 - 1) * paramInt6 + paramInt5,
       paramInt6 + 1,
       paramArrayOfDouble6,
       2 - 1 + (1 - 1) * paramInt17 + paramInt16,
       paramInt17 + 1);
   Dlaset.dlaset("A", k, k, 0.0D, 1.0D, paramArrayOfDouble5, paramInt13, paramInt14);
   i10 = Ilaenv.ilaenv(12, "DLAQR3", "SV", k, 1, k, paramInt22);
   if ((k <= i10 ? 0 : 1) != 0) {
     Dlaqr4.dlaqr4(
         true,
         true,
         k,
         1,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble3,
         i4 - 1 + paramInt11,
         paramArrayOfDouble4,
         i4 - 1 + paramInt12,
         1,
         k,
         paramArrayOfDouble5,
         paramInt13,
         paramInt14,
         paramArrayOfDouble8,
         paramInt21,
         paramInt22,
         localintW4);
   } else {
     Dlahqr.dlahqr(
         true,
         true,
         k,
         1,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble3,
         i4 - 1 + paramInt11,
         paramArrayOfDouble4,
         i4 - 1 + paramInt12,
         1,
         k,
         paramArrayOfDouble5,
         paramInt13,
         paramInt14,
         localintW4);
   }
   j = 1;
   for (int i13 = k - 3 - 1 + 1; i13 > 0; i13--) {
     paramArrayOfDouble6[(j + 2 - 1 + (j - 1) * paramInt17 + paramInt16)] = 0.0D;
     paramArrayOfDouble6[(j + 3 - 1 + (j - 1) * paramInt17 + paramInt16)] = 0.0D;
     j += 1;
   }
   if ((k <= 2 ? 0 : 1) != 0) {
     paramArrayOfDouble6[(k - 1 + (k - 2 - 1) * paramInt17 + paramInt16)] = 0.0D;
   }
   paramintW1.val = k;
   localintW4.val += 1;
   while ((localintW2.val > paramintW1.val ? 0 : 1) != 0) {
     if ((paramintW1.val != 1 ? 0 : 1) != 0) {
       i11 = 0;
     } else {
       i11 =
           paramArrayOfDouble6[
                       (paramintW1.val - 1 + (paramintW1.val - 1 - 1) * paramInt17 + paramInt16)]
                   == 0.0D
               ? 0
               : 1;
     }
     if ((i11 ^ 0x1) != 0) {
       d3 =
           Math.abs(
               paramArrayOfDouble6[
                   (paramintW1.val - 1 + (paramintW1.val - 1) * paramInt17 + paramInt16)]);
       if ((d3 != 0.0D ? 0 : 1) != 0) {
         d3 = Math.abs(d4);
       }
       if ((Math.abs(
                       d4
                           * paramArrayOfDouble5[
                               (1 - 1 + (paramintW1.val - 1) * paramInt14 + paramInt13)])
                   > Math.max(d5, d6 * d3)
               ? 0
               : 1)
           != 0) {
         paramintW1.val -= 1;
       } else {
         localintW1.val = paramintW1.val;
         Dtrexc.dtrexc(
             "V",
             k,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             localintW1,
             localintW2,
             paramArrayOfDouble8,
             paramInt21,
             localintW3);
         localintW2.val += 1;
       }
     } else {
       d3 =
           Math.abs(
                   paramArrayOfDouble6[
                       (paramintW1.val - 1 + (paramintW1.val - 1) * paramInt17 + paramInt16)])
               + Math.sqrt(
                       Math.abs(
                           paramArrayOfDouble6[
                               (paramintW1.val
                                   - 1
                                   + (paramintW1.val - 1 - 1) * paramInt17
                                   + paramInt16)]))
                   * Math.sqrt(
                       Math.abs(
                           paramArrayOfDouble6[
                               (paramintW1.val
                                   - 1
                                   - 1
                                   + (paramintW1.val - 1) * paramInt17
                                   + paramInt16)]));
       if ((d3 != 0.0D ? 0 : 1) != 0) {
         d3 = Math.abs(d4);
       }
       if ((Math.max(
                       Math.abs(
                           d4
                               * paramArrayOfDouble5[
                                   (1 - 1 + (paramintW1.val - 1) * paramInt14 + paramInt13)]),
                       Math.abs(
                           d4
                               * paramArrayOfDouble5[
                                   (1 - 1 + (paramintW1.val - 1 - 1) * paramInt14 + paramInt13)]))
                   > Math.max(d5, d6 * d3)
               ? 0
               : 1)
           != 0) {
         paramintW1.val -= 2;
       } else {
         localintW1.val = paramintW1.val;
         Dtrexc.dtrexc(
             "V",
             k,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             localintW1,
             localintW2,
             paramArrayOfDouble8,
             paramInt21,
             localintW3);
         localintW2.val += 2;
       }
     }
   }
   if ((paramintW1.val != 0 ? 0 : 1) != 0) {
     d4 = 0.0D;
   }
   if ((paramintW1.val >= k ? 0 : 1) != 0) {
     i12 = 0;
     i = paramintW1.val + 1;
     while (i12 == 0) {
       i12 = 1;
       i1 = i - 1;
       i = localintW4.val + 1;
       if ((i != paramintW1.val ? 0 : 1) != 0) {
         m = i + 1;
       } else if ((paramArrayOfDouble6[(i + 1 - 1 + (i - 1) * paramInt17 + paramInt16)] != 0.0D
               ? 0
               : 1)
           != 0) {
         m = i + 1;
       } else {
         m = i + 2;
       }
       while ((m > i1 ? 0 : 1) != 0) {
         if ((m != i + 1 ? 0 : 1) != 0) {
           d1 = Math.abs(paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)]);
         } else {
           d1 =
               Math.abs(paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)])
                   + Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (i + 1 - 1 + (i - 1) * paramInt17 + paramInt16)]))
                       * Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (i - 1 + (i + 1 - 1) * paramInt17 + paramInt16)]));
         }
         if ((m != i1 ? 0 : 1) != 0) {
           d2 = Math.abs(paramArrayOfDouble6[(m - 1 + (m - 1) * paramInt17 + paramInt16)]);
         } else if ((paramArrayOfDouble6[(m + 1 - 1 + (m - 1) * paramInt17 + paramInt16)] != 0.0D
                 ? 0
                 : 1)
             != 0) {
           d2 = Math.abs(paramArrayOfDouble6[(m - 1 + (m - 1) * paramInt17 + paramInt16)]);
         } else {
           d2 =
               Math.abs(paramArrayOfDouble6[(m - 1 + (m - 1) * paramInt17 + paramInt16)])
                   + Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (m + 1 - 1 + (m - 1) * paramInt17 + paramInt16)]))
                       * Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (m - 1 + (m + 1 - 1) * paramInt17 + paramInt16)]));
         }
         if ((d1 < d2 ? 0 : 1) != 0) {
           i = m;
         } else {
           i12 = 0;
           localintW1.val = i;
           localintW2.val = m;
           Dtrexc.dtrexc(
               "V",
               k,
               paramArrayOfDouble6,
               paramInt16,
               paramInt17,
               paramArrayOfDouble5,
               paramInt13,
               paramInt14,
               localintW1,
               localintW2,
               paramArrayOfDouble8,
               paramInt21,
               localintW3);
           if ((localintW3.val != 0 ? 0 : 1) != 0) {
             i = localintW2.val;
           } else {
             i = m;
           }
         }
         if ((i != i1 ? 0 : 1) != 0) {
           m = i + 1;
         } else if ((paramArrayOfDouble6[(i + 1 - 1 + (i - 1) * paramInt17 + paramInt16)] != 0.0D
                 ? 0
                 : 1)
             != 0) {
           m = i + 1;
         } else {
           m = i + 2;
         }
       }
     }
   }
   i = k;
   while ((i < localintW4.val + 1 ? 0 : 1) != 0) {
     if ((i != localintW4.val + 1 ? 0 : 1) != 0) {
       paramArrayOfDouble3[(i4 + i - 1 - 1 + paramInt11)] =
           paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)];
       paramArrayOfDouble4[(i4 + i - 1 - 1 + paramInt12)] = 0.0D;
       i -= 1;
     } else if ((paramArrayOfDouble6[(i - 1 + (i - 1 - 1) * paramInt17 + paramInt16)] != 0.0D
             ? 0
             : 1)
         != 0) {
       paramArrayOfDouble3[(i4 + i - 1 - 1 + paramInt11)] =
           paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)];
       paramArrayOfDouble4[(i4 + i - 1 - 1 + paramInt12)] = 0.0D;
       i -= 1;
     } else {
       localdoubleW1.val =
           paramArrayOfDouble6[(i - 1 - 1 + (i - 1 - 1) * paramInt17 + paramInt16)];
       localdoubleW4.val = paramArrayOfDouble6[(i - 1 + (i - 1 - 1) * paramInt17 + paramInt16)];
       localdoubleW2.val = paramArrayOfDouble6[(i - 1 - 1 + (i - 1) * paramInt17 + paramInt16)];
       localdoubleW6.val = paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)];
       dlanv2_adapter(
           localdoubleW1,
           localdoubleW2,
           localdoubleW4,
           localdoubleW6,
           paramArrayOfDouble3,
           i4 + i - 2 - 1 + paramInt11,
           paramArrayOfDouble4,
           i4 + i - 2 - 1 + paramInt12,
           paramArrayOfDouble3,
           i4 + i - 1 - 1 + paramInt11,
           paramArrayOfDouble4,
           i4 + i - 1 - 1 + paramInt12,
           localdoubleW5,
           localdoubleW9);
       i -= 2;
     }
   }
   if ((paramintW1.val >= k ? 0 : 1) == 0) {}
   if (((d4 != 0.0D ? 0 : 1) == 0 ? 0 : 1) != 0) {
     if ((paramintW1.val <= 1 ? 0 : 1) != 0) {}
     if (((d4 == 0.0D ? 0 : 1) != 0 ? 1 : 0) != 0) {
       Dcopy.dcopy(
           paramintW1.val,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           paramArrayOfDouble8,
           paramInt21,
           1);
       localdoubleW3.val = paramArrayOfDouble8[(1 - 1 + paramInt21)];
       Dlarfg.dlarfg(
           paramintW1.val,
           localdoubleW3,
           paramArrayOfDouble8,
           2 - 1 + paramInt21,
           1,
           localdoubleW10);
       paramArrayOfDouble8[(1 - 1 + paramInt21)] = 1.0D;
       Dlaset.dlaset(
           "L",
           k - 2,
           k - 2,
           0.0D,
           0.0D,
           paramArrayOfDouble6,
           3 - 1 + (1 - 1) * paramInt17 + paramInt16,
           paramInt17);
       Dlarf.dlarf(
           "L",
           paramintW1.val,
           k,
           paramArrayOfDouble8,
           paramInt21,
           1,
           localdoubleW10.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21);
       Dlarf.dlarf(
           "R",
           paramintW1.val,
           paramintW1.val,
           paramArrayOfDouble8,
           paramInt21,
           1,
           localdoubleW10.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21);
       Dlarf.dlarf(
           "R",
           k,
           paramintW1.val,
           paramArrayOfDouble8,
           paramInt21,
           1,
           localdoubleW10.val,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21);
       Dgehrd.dgehrd(
           k,
           1,
           paramintW1.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           paramInt21,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21,
           paramInt22 - k,
           localintW3);
     }
     if ((i4 <= 1 ? 0 : 1) != 0) {
       paramArrayOfDouble1[(i4 - 1 + (i4 - 1 - 1) * paramInt6 + paramInt5)] =
           (d4 * paramArrayOfDouble5[(1 - 1 + (1 - 1) * paramInt14 + paramInt13)]);
     }
     Dlacpy.dlacpy(
         "U",
         k,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble1,
         i4 - 1 + (i4 - 1) * paramInt6 + paramInt5,
         paramInt6);
     Dcopy.dcopy(
         k - 1,
         paramArrayOfDouble6,
         2 - 1 + (1 - 1) * paramInt17 + paramInt16,
         paramInt17 + 1,
         paramArrayOfDouble1,
         i4 + 1 - 1 + (i4 - 1) * paramInt6 + paramInt5,
         paramInt6 + 1);
     if ((paramintW1.val <= 1 ? 0 : 1) != 0) {}
     if (((d4 == 0.0D ? 0 : 1) != 0 ? 1 : 0) != 0) {
       Dorghr.dorghr(
           k,
           1,
           paramintW1.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           paramInt21,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21,
           paramInt22 - k,
           localintW3);
       Dgemm.dgemm(
           "N",
           "N",
           k,
           paramintW1.val,
           paramintW1.val,
           1.0D,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           0.0D,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20);
       Dlacpy.dlacpy(
           "A",
           k,
           paramintW1.val,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14);
     }
     if (paramBoolean1) {
       i5 = 1;
     } else {
       i5 = paramInt2;
     }
     i3 = i5;
     for (int i13 = (i4 - 1 - i5 + paramInt18) / paramInt18; i13 > 0; i13--) {
       i2 = Math.min(paramInt18, i4 - i3);
       Dgemm.dgemm(
           "N",
           "N",
           i2,
           k,
           k,
           1.0D,
           paramArrayOfDouble1,
           i3 - 1 + (i4 - 1) * paramInt6 + paramInt5,
           paramInt6,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           0.0D,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20);
       Dlacpy.dlacpy(
           "A",
           i2,
           k,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20,
           paramArrayOfDouble1,
           i3 - 1 + (i4 - 1) * paramInt6 + paramInt5,
           paramInt6);
       i3 += paramInt18;
     }
     if (paramBoolean1) {
       n = paramInt3 + 1;
       for (int i13 = (paramInt1 - (paramInt3 + 1) + paramInt15) / paramInt15; i13 > 0; i13--) {
         i2 = Math.min(paramInt15, paramInt1 - n + 1);
         Dgemm.dgemm(
             "C",
             "N",
             k,
             i2,
             k,
             1.0D,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             paramArrayOfDouble1,
             i4 - 1 + (n - 1) * paramInt6 + paramInt5,
             paramInt6,
             0.0D,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17);
         Dlacpy.dlacpy(
             "A",
             k,
             i2,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17,
             paramArrayOfDouble1,
             i4 - 1 + (n - 1) * paramInt6 + paramInt5,
             paramInt6);
         n += paramInt15;
       }
     }
     if (paramBoolean2) {
       i3 = paramInt7;
       for (int i13 = (paramInt8 - paramInt7 + paramInt18) / paramInt18; i13 > 0; i13--) {
         i2 = Math.min(paramInt18, paramInt8 - i3 + 1);
         Dgemm.dgemm(
             "N",
             "N",
             i2,
             k,
             k,
             1.0D,
             paramArrayOfDouble2,
             i3 - 1 + (i4 - 1) * paramInt10 + paramInt9,
             paramInt10,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             0.0D,
             paramArrayOfDouble7,
             paramInt19,
             paramInt20);
         Dlacpy.dlacpy(
             "A",
             i2,
             k,
             paramArrayOfDouble7,
             paramInt19,
             paramInt20,
             paramArrayOfDouble2,
             i3 - 1 + (i4 - 1) * paramInt10 + paramInt9,
             paramInt10);
         i3 += paramInt18;
       }
     }
   }
   paramintW2.val = (k - paramintW1.val);
   paramintW1.val -= localintW4.val;
   paramArrayOfDouble8[(1 - 1 + paramInt21)] = i9;
 }
예제 #3
0
 public static void dggevx(
     String paramString1,
     String paramString2,
     String paramString3,
     String paramString4,
     int paramInt1,
     double[] paramArrayOfDouble1,
     int paramInt2,
     int paramInt3,
     double[] paramArrayOfDouble2,
     int paramInt4,
     int paramInt5,
     double[] paramArrayOfDouble3,
     int paramInt6,
     double[] paramArrayOfDouble4,
     int paramInt7,
     double[] paramArrayOfDouble5,
     int paramInt8,
     double[] paramArrayOfDouble6,
     int paramInt9,
     int paramInt10,
     double[] paramArrayOfDouble7,
     int paramInt11,
     int paramInt12,
     intW paramintW1,
     intW paramintW2,
     double[] paramArrayOfDouble8,
     int paramInt13,
     double[] paramArrayOfDouble9,
     int paramInt14,
     doubleW paramdoubleW1,
     doubleW paramdoubleW2,
     double[] paramArrayOfDouble10,
     int paramInt15,
     double[] paramArrayOfDouble11,
     int paramInt16,
     double[] paramArrayOfDouble12,
     int paramInt17,
     int paramInt18,
     int[] paramArrayOfInt,
     int paramInt19,
     boolean[] paramArrayOfBoolean,
     int paramInt20,
     intW paramintW3) {
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   int i2 = 0;
   int i3 = 0;
   boolean bool1 = false;
   boolean bool2 = false;
   boolean bool3 = false;
   boolean bool4 = false;
   String str = new String(" ");
   int i4 = 0;
   int i5 = 0;
   intW localintW1 = new intW(0);
   int i6 = 0;
   int i7 = 0;
   intW localintW2 = new intW(0);
   int i8 = 0;
   int i9 = 0;
   int i10 = 0;
   int i11 = 0;
   int i12 = 0;
   int i13 = 0;
   int i14 = 0;
   intW localintW3 = new intW(0);
   int i15 = 0;
   int i16 = 0;
   int i17 = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   doubleW localdoubleW1 = new doubleW(0.0D);
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   doubleW localdoubleW2 = new doubleW(0.0D);
   double d6 = 0.0D;
   boolean[] arrayOfBoolean = new boolean[1];
   if (Lsame.lsame(paramString2, "N")) {
     i6 = 1;
     m = 0;
   } else if (Lsame.lsame(paramString2, "V")) {
     i6 = 2;
     m = 1;
   } else {
     i6 = -1;
     m = 0;
   }
   if (Lsame.lsame(paramString3, "N")) {
     i7 = 1;
     n = 0;
   } else if (Lsame.lsame(paramString3, "V")) {
     i7 = 2;
     n = 1;
   } else {
     i7 = -1;
     n = 0;
   }
   k = (m == 0) && (n == 0) ? 0 : 1;
   i2 = (!Lsame.lsame(paramString1, "N")) && (!Lsame.lsame(paramString1, "P")) ? 0 : 1;
   bool3 = Lsame.lsame(paramString4, "N");
   bool2 = Lsame.lsame(paramString4, "E");
   bool4 = Lsame.lsame(paramString4, "V");
   bool1 = Lsame.lsame(paramString4, "B");
   paramintW3.val = 0;
   i1 = paramInt18 != -1 ? 0 : 1;
   if (((!Lsame.lsame(paramString1, "N")) && (!Lsame.lsame(paramString1, "S")) ? 0 : 1) == 0) {}
   if ((!Lsame.lsame(paramString1, "P") ? 0 : 1) == 0) {}
   if (((!Lsame.lsame(paramString1, "B") ? 0 : 1) ^ 0x1) != 0) {
     paramintW3.val = -1;
   } else if ((i6 > 0 ? 0 : 1) != 0) {
     paramintW3.val = -2;
   } else if ((i7 > 0 ? 0 : 1) != 0) {
     paramintW3.val = -3;
   } else {
     if (((!bool3) && (!bool2) ? 0 : 1) == 0) {}
     if ((!bool1 ? 0 : 1) == 0) {}
     if (((!bool4 ? 0 : 1) ^ 0x1) != 0) {
       paramintW3.val = -4;
     } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
       paramintW3.val = -5;
     } else if ((paramInt3 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
       paramintW3.val = -7;
     } else if ((paramInt5 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
       paramintW3.val = -9;
     } else {
       if ((paramInt10 >= 1 ? 0 : 1) == 0) {
         if (m == 0) {}
       }
       if ((((paramInt10 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
         paramintW3.val = -14;
       } else {
         if ((paramInt12 >= 1 ? 0 : 1) == 0) {
           if (n == 0) {}
         }
         if ((((paramInt12 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
           paramintW3.val = -16;
         }
       }
     }
   }
   if ((paramintW3.val != 0 ? 0 : 1) != 0) {
     if ((paramInt1 != 0 ? 0 : 1) != 0) {
       i16 = 1;
       i15 = 1;
     } else {
       if (((i2 != 0) && ((k ^ 0x1) != 0) ? 1 : 0) != 0) {
         i16 = 2 * paramInt1;
       } else {
         i16 = 6 * paramInt1;
       }
       if (((!bool2) && (!bool1) ? 0 : 1) != 0) {
         i16 = 10 * paramInt1;
       }
       if (((!bool4) && (!bool1) ? 0 : 1) != 0) {
         i16 = Math.max(i16, 2 * paramInt1 * (paramInt1 + 4) + 16);
       }
       i15 = i16;
       i15 =
           Math.max(
               i15,
               paramInt1
                   + paramInt1 * Ilaenv.ilaenv(1, "DGEQRF", " ", paramInt1, 1, paramInt1, 0));
       i15 =
           Math.max(
               i15,
               paramInt1
                   + paramInt1 * Ilaenv.ilaenv(1, "DORMQR", " ", paramInt1, 1, paramInt1, 0));
       if (m != 0) {
         i15 =
             Math.max(
                 i15,
                 paramInt1
                     + paramInt1 * Ilaenv.ilaenv(1, "DORGQR", " ", paramInt1, 1, paramInt1, 0));
       }
     }
     paramArrayOfDouble12[(1 - 1 + paramInt17)] = i15;
     if ((paramInt18 >= i16 ? 0 : 1) != 0) {}
     if (((i1 ^ 0x1) != 0 ? 1 : 0) != 0) {
       paramintW3.val = -26;
     }
   }
   if ((paramintW3.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DGGEVX", -paramintW3.val);
     return;
   }
   if (i1 != 0) {
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   d5 = Dlamch.dlamch("P");
   localdoubleW2.val = Dlamch.dlamch("S");
   localdoubleW1.val = (1.0D / localdoubleW2.val);
   Dlabad.dlabad(localdoubleW2, localdoubleW1);
   localdoubleW2.val = (Math.sqrt(localdoubleW2.val) / d5);
   localdoubleW1.val = (1.0D / localdoubleW2.val);
   d1 =
       Dlange.dlange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfDouble1,
           paramInt2,
           paramInt3,
           paramArrayOfDouble12,
           paramInt17);
   i = 0;
   if ((d1 <= 0.0D ? 0 : 1) != 0) {}
   if (((d1 >= localdoubleW2.val ? 0 : 1) != 0 ? 1 : 0) != 0) {
     d2 = localdoubleW2.val;
     i = 1;
   } else if ((d1 <= localdoubleW1.val ? 0 : 1) != 0) {
     d2 = localdoubleW1.val;
     i = 1;
   }
   if (i != 0) {
     Dlascl.dlascl(
         "G",
         0,
         0,
         d1,
         d2,
         paramInt1,
         paramInt1,
         paramArrayOfDouble1,
         paramInt2,
         paramInt3,
         localintW1);
   }
   d3 =
       Dlange.dlange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfDouble2,
           paramInt4,
           paramInt5,
           paramArrayOfDouble12,
           paramInt17);
   j = 0;
   if ((d3 <= 0.0D ? 0 : 1) != 0) {}
   if (((d3 >= localdoubleW2.val ? 0 : 1) != 0 ? 1 : 0) != 0) {
     d4 = localdoubleW2.val;
     j = 1;
   } else if ((d3 <= localdoubleW1.val ? 0 : 1) != 0) {
     d4 = localdoubleW1.val;
     j = 1;
   }
   if (j != 0) {
     Dlascl.dlascl(
         "G",
         0,
         0,
         d3,
         d4,
         paramInt1,
         paramInt1,
         paramArrayOfDouble2,
         paramInt4,
         paramInt5,
         localintW1);
   }
   Dggbal.dggbal(
       paramString1,
       paramInt1,
       paramArrayOfDouble1,
       paramInt2,
       paramInt3,
       paramArrayOfDouble2,
       paramInt4,
       paramInt5,
       paramintW1,
       paramintW2,
       paramArrayOfDouble8,
       paramInt13,
       paramArrayOfDouble9,
       paramInt14,
       paramArrayOfDouble12,
       paramInt17,
       localintW1);
   paramdoubleW1.val =
       Dlange.dlange(
           "1",
           paramInt1,
           paramInt1,
           paramArrayOfDouble1,
           paramInt2,
           paramInt3,
           paramArrayOfDouble12,
           1 - 1 + paramInt17);
   if (i != 0) {
     paramArrayOfDouble12[(1 - 1 + paramInt17)] = paramdoubleW1.val;
     Dlascl.dlascl(
         "G", 0, 0, d2, d1, 1, 1, paramArrayOfDouble12, 1 - 1 + paramInt17, 1, localintW1);
     paramdoubleW1.val = paramArrayOfDouble12[(1 - 1 + paramInt17)];
   }
   paramdoubleW2.val =
       Dlange.dlange(
           "1",
           paramInt1,
           paramInt1,
           paramArrayOfDouble2,
           paramInt4,
           paramInt5,
           paramArrayOfDouble12,
           1 - 1 + paramInt17);
   if (j != 0) {
     paramArrayOfDouble12[(1 - 1 + paramInt17)] = paramdoubleW2.val;
     Dlascl.dlascl(
         "G", 0, 0, d4, d3, 1, 1, paramArrayOfDouble12, 1 - 1 + paramInt17, 1, localintW1);
     paramdoubleW2.val = paramArrayOfDouble12[(1 - 1 + paramInt17)];
   }
   i8 = paramintW2.val + 1 - paramintW1.val;
   if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
     i5 = paramInt1 + 1 - paramintW1.val;
   } else {
     i5 = i8;
   }
   i9 = 1;
   i10 = i9 + i8;
   Dgeqrf.dgeqrf(
       i8,
       i5,
       paramArrayOfDouble2,
       paramintW1.val - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
       paramInt5,
       paramArrayOfDouble12,
       i9 - 1 + paramInt17,
       paramArrayOfDouble12,
       i10 - 1 + paramInt17,
       paramInt18 + 1 - i10,
       localintW1);
   Dormqr.dormqr(
       "L",
       "T",
       i8,
       i5,
       i8,
       paramArrayOfDouble2,
       paramintW1.val - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
       paramInt5,
       paramArrayOfDouble12,
       i9 - 1 + paramInt17,
       paramArrayOfDouble1,
       paramintW1.val - 1 + (paramintW1.val - 1) * paramInt3 + paramInt2,
       paramInt3,
       paramArrayOfDouble12,
       i10 - 1 + paramInt17,
       paramInt18 + 1 - i10,
       localintW1);
   if (m != 0) {
     Dlaset.dlaset(
         "Full", paramInt1, paramInt1, 0.0D, 1.0D, paramArrayOfDouble6, paramInt9, paramInt10);
     if ((i8 <= 1 ? 0 : 1) != 0) {
       Dlacpy.dlacpy(
           "L",
           i8 - 1,
           i8 - 1,
           paramArrayOfDouble2,
           paramintW1.val + 1 - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
           paramInt5,
           paramArrayOfDouble6,
           paramintW1.val + 1 - 1 + (paramintW1.val - 1) * paramInt10 + paramInt9,
           paramInt10);
     }
     Dorgqr.dorgqr(
         i8,
         i8,
         i8,
         paramArrayOfDouble6,
         paramintW1.val - 1 + (paramintW1.val - 1) * paramInt10 + paramInt9,
         paramInt10,
         paramArrayOfDouble12,
         i9 - 1 + paramInt17,
         paramArrayOfDouble12,
         i10 - 1 + paramInt17,
         paramInt18 + 1 - i10,
         localintW1);
   }
   if (n != 0) {
     Dlaset.dlaset(
         "Full", paramInt1, paramInt1, 0.0D, 1.0D, paramArrayOfDouble7, paramInt11, paramInt12);
   }
   if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
     Dgghrd.dgghrd(
         paramString2,
         paramString3,
         paramInt1,
         paramintW1.val,
         paramintW2.val,
         paramArrayOfDouble1,
         paramInt2,
         paramInt3,
         paramArrayOfDouble2,
         paramInt4,
         paramInt5,
         paramArrayOfDouble6,
         paramInt9,
         paramInt10,
         paramArrayOfDouble7,
         paramInt11,
         paramInt12,
         localintW1);
   } else {
     Dgghrd.dgghrd(
         "N",
         "N",
         i8,
         1,
         i8,
         paramArrayOfDouble1,
         paramintW1.val - 1 + (paramintW1.val - 1) * paramInt3 + paramInt2,
         paramInt3,
         paramArrayOfDouble2,
         paramintW1.val - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
         paramInt5,
         paramArrayOfDouble6,
         paramInt9,
         paramInt10,
         paramArrayOfDouble7,
         paramInt11,
         paramInt12,
         localintW1);
   }
   if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
     str = "S";
   } else {
     str = "E";
   }
   Dhgeqz.dhgeqz(
       str,
       paramString2,
       paramString3,
       paramInt1,
       paramintW1.val,
       paramintW2.val,
       paramArrayOfDouble1,
       paramInt2,
       paramInt3,
       paramArrayOfDouble2,
       paramInt4,
       paramInt5,
       paramArrayOfDouble3,
       paramInt6,
       paramArrayOfDouble4,
       paramInt7,
       paramArrayOfDouble5,
       paramInt8,
       paramArrayOfDouble6,
       paramInt9,
       paramInt10,
       paramArrayOfDouble7,
       paramInt11,
       paramInt12,
       paramArrayOfDouble12,
       paramInt17,
       paramInt18,
       localintW1);
   if ((localintW1.val == 0 ? 0 : 1) != 0) {
     if ((localintW1.val <= 0 ? 0 : 1) != 0) {}
     if (((localintW1.val > paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
       paramintW3.val = localintW1.val;
     } else {
       if ((localintW1.val <= paramInt1 ? 0 : 1) != 0) {}
       if (((localintW1.val > 2 * paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
         localintW1.val -= paramInt1;
       } else {
         paramintW3.val = (paramInt1 + 1);
       }
     }
   } else {
     int i18;
     int i19;
     if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
       if (k != 0) {
         if (m != 0) {
           if (n != 0) {
             str = "B";
           } else {
             str = "L";
           }
         } else {
           str = "R";
         }
         Dtgevc.dtgevc(
             str,
             "B",
             arrayOfBoolean,
             0,
             paramInt1,
             paramArrayOfDouble1,
             paramInt2,
             paramInt3,
             paramArrayOfDouble2,
             paramInt4,
             paramInt5,
             paramArrayOfDouble6,
             paramInt9,
             paramInt10,
             paramArrayOfDouble7,
             paramInt11,
             paramInt12,
             paramInt1,
             localintW2,
             paramArrayOfDouble12,
             paramInt17,
             localintW1);
         if ((localintW1.val == 0 ? 0 : 1) != 0) {
           paramintW3.val = (paramInt1 + 2);
           break label3995;
         }
       }
       if ((bool3 ^ true)) {
         i3 = 0;
         i4 = 1;
         for (i18 = paramInt1 - 1 + 1; i18 > 0; i18--) {
           if (i3 != 0) {
             i3 = 0;
           } else {
             i17 = 1;
             if ((i4 >= paramInt1 ? 0 : 1) != 0) {
               if ((paramArrayOfDouble1[(i4 + 1 - 1 + (i4 - 1) * paramInt3 + paramInt2)] == 0.0D
                       ? 0
                       : 1)
                   != 0) {
                 i3 = 1;
                 i17 = 2;
               }
             }
             i12 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               paramArrayOfBoolean[(i12 - 1 + paramInt20)] = false;
               i12 += 1;
             }
             if ((i17 != 1 ? 0 : 1) != 0) {
               paramArrayOfBoolean[(i4 - 1 + paramInt20)] = true;
             } else if ((i17 != 2 ? 0 : 1) != 0) {
               paramArrayOfBoolean[(i4 - 1 + paramInt20)] = true;
               paramArrayOfBoolean[(i4 + 1 - 1 + paramInt20)] = true;
             }
             i10 = i17 * paramInt1 + 1;
             i11 = i10 + i17 * paramInt1;
             if (((!bool2) && (!bool1) ? 0 : 1) != 0) {
               Dtgevc.dtgevc(
                   "B",
                   "S",
                   paramArrayOfBoolean,
                   paramInt20,
                   paramInt1,
                   paramArrayOfDouble1,
                   paramInt2,
                   paramInt3,
                   paramArrayOfDouble2,
                   paramInt4,
                   paramInt5,
                   paramArrayOfDouble12,
                   1 - 1 + paramInt17,
                   paramInt1,
                   paramArrayOfDouble12,
                   i10 - 1 + paramInt17,
                   paramInt1,
                   i17,
                   localintW3,
                   paramArrayOfDouble12,
                   i11 - 1 + paramInt17,
                   localintW1);
               if ((localintW1.val == 0 ? 0 : 1) != 0) {
                 paramintW3.val = (paramInt1 + 2);
                 break;
               }
             }
             Dtgsna.dtgsna(
                 paramString4,
                 "S",
                 paramArrayOfBoolean,
                 paramInt20,
                 paramInt1,
                 paramArrayOfDouble1,
                 paramInt2,
                 paramInt3,
                 paramArrayOfDouble2,
                 paramInt4,
                 paramInt5,
                 paramArrayOfDouble12,
                 1 - 1 + paramInt17,
                 paramInt1,
                 paramArrayOfDouble12,
                 i10 - 1 + paramInt17,
                 paramInt1,
                 paramArrayOfDouble10,
                 i4 - 1 + paramInt15,
                 paramArrayOfDouble11,
                 i4 - 1 + paramInt16,
                 i17,
                 localintW3,
                 paramArrayOfDouble12,
                 i11 - 1 + paramInt17,
                 paramInt18 - i11 + 1,
                 paramArrayOfInt,
                 paramInt19,
                 localintW1);
           }
           i4 += 1;
         }
       }
     }
     if (m != 0) {
       Dggbak.dggbak(
           paramString1,
           "L",
           paramInt1,
           paramintW1.val,
           paramintW2.val,
           paramArrayOfDouble8,
           paramInt13,
           paramArrayOfDouble9,
           paramInt14,
           paramInt1,
           paramArrayOfDouble6,
           paramInt9,
           paramInt10,
           localintW1);
       i13 = 1;
       for (i18 = paramInt1 - 1 + 1; i18 > 0; i18--) {
         if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] >= 0.0D ? 0 : 1) == 0) {
           d6 = 0.0D;
           if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                           paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)]));
               i14 += 1;
             }
           } else {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                               paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)])
                           + Math.abs(
                               paramArrayOfDouble6[
                                   (i14 - 1 + (i13 + 1 - 1) * paramInt10 + paramInt9)]));
               i14 += 1;
             }
           }
           if ((d6 >= localdoubleW2.val ? 0 : 1) == 0) {
             d6 = 1.0D / d6;
             if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)] *= d6;
                 i14 += 1;
               }
             } else {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)] *= d6;
                 paramArrayOfDouble6[(i14 - 1 + (i13 + 1 - 1) * paramInt10 + paramInt9)] *= d6;
                 i14 += 1;
               }
             }
           }
         }
         i13 += 1;
       }
     }
     if (n != 0) {
       Dggbak.dggbak(
           paramString1,
           "R",
           paramInt1,
           paramintW1.val,
           paramintW2.val,
           paramArrayOfDouble8,
           paramInt13,
           paramArrayOfDouble9,
           paramInt14,
           paramInt1,
           paramArrayOfDouble7,
           paramInt11,
           paramInt12,
           localintW1);
       i13 = 1;
       for (i18 = paramInt1 - 1 + 1; i18 > 0; i18--) {
         if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] >= 0.0D ? 0 : 1) == 0) {
           d6 = 0.0D;
           if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                           paramArrayOfDouble7[(i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)]));
               i14 += 1;
             }
           } else {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                               paramArrayOfDouble7[
                                   (i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)])
                           + Math.abs(
                               paramArrayOfDouble7[
                                   (i14 - 1 + (i13 + 1 - 1) * paramInt12 + paramInt11)]));
               i14 += 1;
             }
           }
           if ((d6 >= localdoubleW2.val ? 0 : 1) == 0) {
             d6 = 1.0D / d6;
             if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble7[(i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)] *= d6;
                 i14 += 1;
               }
             } else {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble7[(i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)] *= d6;
                 paramArrayOfDouble7[(i14 - 1 + (i13 + 1 - 1) * paramInt12 + paramInt11)] *= d6;
                 i14 += 1;
               }
             }
           }
         }
         i13 += 1;
       }
     }
     if (i != 0) {
       Dlascl.dlascl(
           "G", 0, 0, d2, d1, paramInt1, 1, paramArrayOfDouble3, paramInt6, paramInt1, localintW1);
       Dlascl.dlascl(
           "G", 0, 0, d2, d1, paramInt1, 1, paramArrayOfDouble4, paramInt7, paramInt1, localintW1);
     }
     if (j != 0) {
       Dlascl.dlascl(
           "G", 0, 0, d4, d3, paramInt1, 1, paramArrayOfDouble5, paramInt8, paramInt1, localintW1);
     }
   }
   label3995:
   paramArrayOfDouble12[(1 - 1 + paramInt17)] = i15;
 }