Ejemplo n.º 1
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;
 }
Ejemplo n.º 2
0
 public static void dgeqlf(
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble2,
     int paramInt5,
     double[] paramArrayOfDouble3,
     int paramInt6,
     int paramInt7,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   intW localintW = new intW(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;
   paramintW.val = 0;
   i = paramInt7 != -1 ? 0 : 1;
   if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt4 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -4;
   }
   if ((paramintW.val != 0 ? 0 : 1) != 0) {
     n = Math.min(paramInt1, paramInt2);
     if ((n != 0 ? 0 : 1) != 0) {
       i4 = 1;
     } else {
       i6 = Ilaenv.ilaenv(1, "DGEQLF", " ", paramInt1, paramInt2, -1, -1);
       i4 = paramInt2 * i6;
     }
     paramArrayOfDouble3[(1 - 1 + paramInt6)] = i4;
     if ((paramInt7 >= Math.max(1, paramInt2) ? 0 : 1) != 0) {}
     if (((i ^ 0x1) != 0 ? 1 : 0) != 0) {
       paramintW.val = -7;
     }
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DGEQLF", -paramintW.val);
     return;
   }
   if (i != 0) {
     return;
   }
   if ((n != 0 ? 0 : 1) != 0) {
     return;
   }
   i7 = 2;
   i9 = 1;
   m = paramInt2;
   if ((i6 <= 1 ? 0 : 1) != 0) {}
   if (((i6 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {
     i9 = Math.max(0, Ilaenv.ilaenv(3, "DGEQLF", " ", paramInt1, paramInt2, -1, -1));
     if ((i9 >= n ? 0 : 1) != 0) {
       i3 = paramInt2;
       m = i3 * i6;
       if ((paramInt7 >= m ? 0 : 1) != 0) {
         i6 = paramInt7 / i3;
         i7 = Math.max(2, Ilaenv.ilaenv(2, "DGEQLF", " ", paramInt1, paramInt2, -1, -1));
       }
     }
   }
   if ((i6 < i7 ? 0 : 1) != 0) {}
   if (((i6 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {}
   if (((i9 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {
     i1 = (n - i9 - 1) / i6 * i6;
     i2 = Math.min(n, i1 + i6);
     j = n - i2 + i1 + 1;
     for (int i10 = (n - i2 + 1 - (n - i2 + i1 + 1) + -i6) / -i6; i10 > 0; i10--) {
       k = Math.min(n - j + 1, i6);
       Dgeql2.dgeql2(
           paramInt1 - n + j + k - 1,
           k,
           paramArrayOfDouble1,
           1 - 1 + (paramInt2 - n + j - 1) * paramInt4 + paramInt3,
           paramInt4,
           paramArrayOfDouble2,
           j - 1 + paramInt5,
           paramArrayOfDouble3,
           paramInt6,
           localintW);
       if ((paramInt2 - n + j <= 1 ? 0 : 1) != 0) {
         Dlarft.dlarft(
             "Backward",
             "Columnwise",
             paramInt1 - n + j + k - 1,
             k,
             paramArrayOfDouble1,
             1 - 1 + (paramInt2 - n + j - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble2,
             j - 1 + paramInt5,
             paramArrayOfDouble3,
             paramInt6,
             i3);
         Dlarfb.dlarfb(
             "Left",
             "Transpose",
             "Backward",
             "Columnwise",
             paramInt1 - n + j + k - 1,
             paramInt2 - n + j - 1,
             k,
             paramArrayOfDouble1,
             1 - 1 + (paramInt2 - n + j - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble3,
             paramInt6,
             i3,
             paramArrayOfDouble1,
             paramInt3,
             paramInt4,
             paramArrayOfDouble3,
             k + 1 - 1 + paramInt6,
             i3);
       }
       j += -i6;
     }
     i5 = paramInt1 - n + j + i6 - 1;
     i8 = paramInt2 - n + j + i6 - 1;
   } else {
     i5 = paramInt1;
     i8 = paramInt2;
   }
   if ((i5 <= 0 ? 0 : 1) != 0) {}
   if (((i8 <= 0 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     Dgeql2.dgeql2(
         i5,
         i8,
         paramArrayOfDouble1,
         paramInt3,
         paramInt4,
         paramArrayOfDouble2,
         paramInt5,
         paramArrayOfDouble3,
         paramInt6,
         localintW);
   }
   paramArrayOfDouble3[(1 - 1 + paramInt6)] = m;
 }
Ejemplo n.º 3
0
 public static void shseqr(
     String paramString1,
     String paramString2,
     int paramInt1,
     int paramInt2,
     int paramInt3,
     float[] paramArrayOfFloat1,
     int paramInt4,
     int paramInt5,
     float[] paramArrayOfFloat2,
     int paramInt6,
     float[] paramArrayOfFloat3,
     int paramInt7,
     float[] paramArrayOfFloat4,
     int paramInt8,
     int paramInt9,
     float[] paramArrayOfFloat5,
     int paramInt10,
     int paramInt11,
     intW paramintW) {
   float[] arrayOfFloat1 = new float[49 * 49];
   float[] arrayOfFloat2 = new float[49];
   int i = 0;
   int j = 0;
   int k = 0;
   boolean bool1 = false;
   int m = 0;
   boolean bool2 = false;
   boolean bool3 = false;
   bool2 = Lsame.lsame(paramString1, "S");
   bool1 = Lsame.lsame(paramString2, "I");
   bool3 = (bool1) || (Lsame.lsame(paramString2, "V"));
   paramArrayOfFloat5[(1 - 1 + paramInt10)] = Math.max(1, paramInt1);
   m = paramInt11 != -1 ? 0 : 1;
   paramintW.val = 0;
   if ((((Lsame.lsame(paramString1, "E") ^ true)) && ((bool2 ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((((Lsame.lsame(paramString2, "N") ^ true)) && ((bool3 ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -2;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else {
     if ((paramInt2 >= 1 ? 0 : 1) == 0) {}
     if (((paramInt2 <= Math.max(1, paramInt1) ? 0 : 1) == 0 ? 0 : 1) != 0) {
       paramintW.val = -4;
     } else {
       if ((paramInt3 >= Math.min(paramInt2, paramInt1) ? 0 : 1) == 0) {}
       if (((paramInt3 <= paramInt1 ? 0 : 1) == 0 ? 0 : 1) != 0) {
         paramintW.val = -5;
       } else if ((paramInt5 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
         paramintW.val = -7;
       } else {
         if ((paramInt9 >= 1 ? 0 : 1) == 0) {
           if (!bool3) {}
         }
         if ((((paramInt9 >= Math.max(1, paramInt1) ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
           paramintW.val = -11;
         } else {
           if ((paramInt11 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {}
           if (((m ^ 0x1) != 0 ? 1 : 0) != 0) {
             paramintW.val = -13;
           }
         }
       }
     }
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SHSEQR", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   if (m != 0) {
     Slaqr0.slaqr0(
         bool2,
         bool3,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfFloat1,
         paramInt4,
         paramInt5,
         paramArrayOfFloat2,
         paramInt6,
         paramArrayOfFloat3,
         paramInt7,
         paramInt2,
         paramInt3,
         paramArrayOfFloat4,
         paramInt8,
         paramInt9,
         paramArrayOfFloat5,
         paramInt10,
         paramInt11,
         paramintW);
     paramArrayOfFloat5[(1 - 1 + paramInt10)] =
         Math.max(Math.max(1, paramInt1), paramArrayOfFloat5[(1 - 1 + paramInt10)]);
     return;
   }
   i = 1;
   for (int n = paramInt2 - 1 - 1 + 1; n > 0; n--) {
     paramArrayOfFloat2[(i - 1 + paramInt6)] =
         paramArrayOfFloat1[(i - 1 + (i - 1) * paramInt5 + paramInt4)];
     paramArrayOfFloat3[(i - 1 + paramInt7)] = 0.0F;
     i += 1;
   }
   i = paramInt3 + 1;
   for (n = paramInt1 - (paramInt3 + 1) + 1; n > 0; n--) {
     paramArrayOfFloat2[(i - 1 + paramInt6)] =
         paramArrayOfFloat1[(i - 1 + (i - 1) * paramInt5 + paramInt4)];
     paramArrayOfFloat3[(i - 1 + paramInt7)] = 0.0F;
     i += 1;
   }
   if (bool1) {
     Slaset.slaset(
         "A", paramInt1, paramInt1, 0.0F, 1.0F, paramArrayOfFloat4, paramInt8, paramInt9);
   }
   if ((paramInt2 != paramInt3 ? 0 : 1) != 0) {
     paramArrayOfFloat2[(paramInt2 - 1 + paramInt6)] =
         paramArrayOfFloat1[(paramInt2 - 1 + (paramInt2 - 1) * paramInt5 + paramInt4)];
     paramArrayOfFloat3[(paramInt2 - 1 + paramInt7)] = 0.0F;
     return;
   }
   k =
       Ilaenv.ilaenv(
           1,
           "SHSEQR",
           paramString1.substring(1 + -1, 1) + paramString2.substring(1 + -1, 1),
           paramInt1,
           paramInt2,
           paramInt3,
           paramInt11);
   k = Math.max(11, k);
   if ((paramInt1 <= k ? 0 : 1) != 0) {
     Slaqr0.slaqr0(
         bool2,
         bool3,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfFloat1,
         paramInt4,
         paramInt5,
         paramArrayOfFloat2,
         paramInt6,
         paramArrayOfFloat3,
         paramInt7,
         paramInt2,
         paramInt3,
         paramArrayOfFloat4,
         paramInt8,
         paramInt9,
         paramArrayOfFloat5,
         paramInt10,
         paramInt11,
         paramintW);
   } else {
     Slahqr.slahqr(
         bool2,
         bool3,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfFloat1,
         paramInt4,
         paramInt5,
         paramArrayOfFloat2,
         paramInt6,
         paramArrayOfFloat3,
         paramInt7,
         paramInt2,
         paramInt3,
         paramArrayOfFloat4,
         paramInt8,
         paramInt9,
         paramintW);
     if ((paramintW.val <= 0 ? 0 : 1) != 0) {
       j = paramintW.val;
       if ((paramInt1 < 49 ? 0 : 1) != 0) {
         Slaqr0.slaqr0(
             bool2,
             bool3,
             paramInt1,
             paramInt2,
             j,
             paramArrayOfFloat1,
             paramInt4,
             paramInt5,
             paramArrayOfFloat2,
             paramInt6,
             paramArrayOfFloat3,
             paramInt7,
             paramInt2,
             paramInt3,
             paramArrayOfFloat4,
             paramInt8,
             paramInt9,
             paramArrayOfFloat5,
             paramInt10,
             paramInt11,
             paramintW);
       } else {
         Slacpy.slacpy(
             "A",
             paramInt1,
             paramInt1,
             paramArrayOfFloat1,
             paramInt4,
             paramInt5,
             arrayOfFloat1,
             0,
             49);
         arrayOfFloat1[(paramInt1 + 1 - 1 + (paramInt1 - 1) * 49)] = 0.0F;
         Slaset.slaset(
             "A",
             49,
             49 - paramInt1,
             0.0F,
             0.0F,
             arrayOfFloat1,
             1 - 1 + (paramInt1 + 1 - 1) * 49,
             49);
         Slaqr0.slaqr0(
             bool2,
             bool3,
             49,
             paramInt2,
             j,
             arrayOfFloat1,
             0,
             49,
             paramArrayOfFloat2,
             paramInt6,
             paramArrayOfFloat3,
             paramInt7,
             paramInt2,
             paramInt3,
             paramArrayOfFloat4,
             paramInt8,
             paramInt9,
             arrayOfFloat2,
             0,
             49,
             paramintW);
         if (!bool2) {}
         if (((paramintW.val == 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {
           Slacpy.slacpy(
               "A",
               paramInt1,
               paramInt1,
               arrayOfFloat1,
               0,
               49,
               paramArrayOfFloat1,
               paramInt4,
               paramInt5);
         }
       }
     }
   }
   if (!bool2) {}
   if (((paramintW.val == 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {}
   if (((paramInt1 <= 2 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     Slaset.slaset(
         "L",
         paramInt1 - 2,
         paramInt1 - 2,
         0.0F,
         0.0F,
         paramArrayOfFloat1,
         3 - 1 + (1 - 1) * paramInt5 + paramInt4,
         paramInt5);
   }
   paramArrayOfFloat5[(1 - 1 + paramInt10)] =
       Math.max(Math.max(1, paramInt1), paramArrayOfFloat5[(1 - 1 + paramInt10)]);
 }
Ejemplo n.º 4
0
 public static void sgegs(
     String paramString1,
     String paramString2,
     int paramInt1,
     float[] paramArrayOfFloat1,
     int paramInt2,
     int paramInt3,
     float[] paramArrayOfFloat2,
     int paramInt4,
     int paramInt5,
     float[] paramArrayOfFloat3,
     int paramInt6,
     float[] paramArrayOfFloat4,
     int paramInt7,
     float[] paramArrayOfFloat5,
     int paramInt8,
     float[] paramArrayOfFloat6,
     int paramInt9,
     int paramInt10,
     float[] paramArrayOfFloat7,
     int paramInt11,
     int paramInt12,
     float[] paramArrayOfFloat8,
     int paramInt13,
     int paramInt14,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   intW localintW1 = new intW(0);
   intW localintW2 = new intW(0);
   int i2 = 0;
   int i3 = 0;
   int i4 = 0;
   intW localintW3 = new intW(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;
   int i13 = 0;
   int i14 = 0;
   int i15 = 0;
   float f1 = 0.0F;
   float f2 = 0.0F;
   float f3 = 0.0F;
   float f4 = 0.0F;
   float f5 = 0.0F;
   float f6 = 0.0F;
   float f7 = 0.0F;
   float f8 = 0.0F;
   if (Lsame.lsame(paramString1, "N")) {
     i2 = 1;
     k = 0;
   } else if (Lsame.lsame(paramString1, "V")) {
     i2 = 2;
     k = 1;
   } else {
     i2 = -1;
     k = 0;
   }
   if (Lsame.lsame(paramString2, "N")) {
     i3 = 1;
     m = 0;
   } else if (Lsame.lsame(paramString2, "V")) {
     i3 = 2;
     m = 1;
   } else {
     i3 = -1;
     m = 0;
   }
   i10 = Math.max(4 * paramInt1, 1);
   i11 = i10;
   paramArrayOfFloat8[(1 - 1 + paramInt13)] = i11;
   n = paramInt14 != -1 ? 0 : 1;
   paramintW.val = 0;
   if ((i2 > 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((i3 > 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt3 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -5;
   } else if ((paramInt5 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -7;
   } else {
     if ((paramInt10 >= 1 ? 0 : 1) == 0) {
       if (k == 0) {}
     }
     if ((((paramInt10 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
       paramintW.val = -12;
     } else {
       if ((paramInt12 >= 1 ? 0 : 1) == 0) {
         if (m == 0) {}
       }
       if ((((paramInt12 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
         paramintW.val = -14;
       } else {
         if ((paramInt14 >= i10 ? 0 : 1) != 0) {}
         if (((n ^ 0x1) != 0 ? 1 : 0) != 0) {
           paramintW.val = -16;
         }
       }
     }
   }
   if ((paramintW.val != 0 ? 0 : 1) != 0) {
     i13 = Ilaenv.ilaenv(1, "SGEQRF", " ", paramInt1, paramInt1, -1, -1);
     i14 = Ilaenv.ilaenv(1, "SORMQR", " ", paramInt1, paramInt1, paramInt1, -1);
     i15 = Ilaenv.ilaenv(1, "SORGQR", " ", paramInt1, paramInt1, paramInt1, -1);
     i12 = Util.max(i13, i14, i15);
     i9 = 2 * paramInt1 + paramInt1 * (i12 + 1);
     paramArrayOfFloat8[(1 - 1 + paramInt13)] = i9;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SGEGS ", -paramintW.val);
     return;
   }
   if (n != 0) {
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   f6 = Slamch.slamch("E") * Slamch.slamch("B");
   f7 = Slamch.slamch("S");
   f8 = paramInt1 * f7 / f6;
   f3 = 1.0F / f8;
   f1 =
       Slange.slange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfFloat1,
           paramInt2,
           paramInt3,
           paramArrayOfFloat8,
           paramInt13);
   i = 0;
   if ((f1 <= 0.0F ? 0 : 1) != 0) {}
   if (((f1 >= f8 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     f2 = f8;
     i = 1;
   } else if ((f1 <= f3 ? 0 : 1) != 0) {
     f2 = f3;
     i = 1;
   }
   if (i != 0) {
     Slascl.slascl(
         "G",
         -1,
         -1,
         f1,
         f2,
         paramInt1,
         paramInt1,
         paramArrayOfFloat1,
         paramInt2,
         paramInt3,
         localintW2);
     if ((localintW2.val == 0 ? 0 : 1) != 0) {
       paramintW.val = (paramInt1 + 9);
       return;
     }
   }
   f4 =
       Slange.slange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfFloat2,
           paramInt4,
           paramInt5,
           paramArrayOfFloat8,
           paramInt13);
   j = 0;
   if ((f4 <= 0.0F ? 0 : 1) != 0) {}
   if (((f4 >= f8 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     f5 = f8;
     j = 1;
   } else if ((f4 <= f3 ? 0 : 1) != 0) {
     f5 = f3;
     j = 1;
   }
   if (j != 0) {
     Slascl.slascl(
         "G",
         -1,
         -1,
         f4,
         f5,
         paramInt1,
         paramInt1,
         paramArrayOfFloat2,
         paramInt4,
         paramInt5,
         localintW2);
     if ((localintW2.val == 0 ? 0 : 1) != 0) {
       paramintW.val = (paramInt1 + 9);
       return;
     }
   }
   i4 = 1;
   i5 = paramInt1 + 1;
   i8 = i5 + paramInt1;
   Sggbal.sggbal(
       "P",
       paramInt1,
       paramArrayOfFloat1,
       paramInt2,
       paramInt3,
       paramArrayOfFloat2,
       paramInt4,
       paramInt5,
       localintW3,
       localintW1,
       paramArrayOfFloat8,
       i4 - 1 + paramInt13,
       paramArrayOfFloat8,
       i5 - 1 + paramInt13,
       paramArrayOfFloat8,
       i8 - 1 + paramInt13,
       localintW2);
   if ((localintW2.val == 0 ? 0 : 1) != 0) {
     paramintW.val = (paramInt1 + 1);
   } else {
     i6 = localintW1.val + 1 - localintW3.val;
     i1 = paramInt1 + 1 - localintW3.val;
     i7 = i8;
     i8 = i7 + i6;
     Sgeqrf.sgeqrf(
         i6,
         i1,
         paramArrayOfFloat2,
         localintW3.val - 1 + (localintW3.val - 1) * paramInt5 + paramInt4,
         paramInt5,
         paramArrayOfFloat8,
         i7 - 1 + paramInt13,
         paramArrayOfFloat8,
         i8 - 1 + paramInt13,
         paramInt14 + 1 - i8,
         localintW2);
     if ((localintW2.val < 0 ? 0 : 1) != 0) {
       i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
     }
     if ((localintW2.val == 0 ? 0 : 1) != 0) {
       paramintW.val = (paramInt1 + 2);
     } else {
       Sormqr.sormqr(
           "L",
           "T",
           i6,
           i1,
           i6,
           paramArrayOfFloat2,
           localintW3.val - 1 + (localintW3.val - 1) * paramInt5 + paramInt4,
           paramInt5,
           paramArrayOfFloat8,
           i7 - 1 + paramInt13,
           paramArrayOfFloat1,
           localintW3.val - 1 + (localintW3.val - 1) * paramInt3 + paramInt2,
           paramInt3,
           paramArrayOfFloat8,
           i8 - 1 + paramInt13,
           paramInt14 + 1 - i8,
           localintW2);
       if ((localintW2.val < 0 ? 0 : 1) != 0) {
         i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
       }
       if ((localintW2.val == 0 ? 0 : 1) != 0) {
         paramintW.val = (paramInt1 + 3);
       } else {
         if (k != 0) {
           Slaset.slaset(
               "Full",
               paramInt1,
               paramInt1,
               0.0F,
               1.0F,
               paramArrayOfFloat6,
               paramInt9,
               paramInt10);
           Slacpy.slacpy(
               "L",
               i6 - 1,
               i6 - 1,
               paramArrayOfFloat2,
               localintW3.val + 1 - 1 + (localintW3.val - 1) * paramInt5 + paramInt4,
               paramInt5,
               paramArrayOfFloat6,
               localintW3.val + 1 - 1 + (localintW3.val - 1) * paramInt10 + paramInt9,
               paramInt10);
           Sorgqr.sorgqr(
               i6,
               i6,
               i6,
               paramArrayOfFloat6,
               localintW3.val - 1 + (localintW3.val - 1) * paramInt10 + paramInt9,
               paramInt10,
               paramArrayOfFloat8,
               i7 - 1 + paramInt13,
               paramArrayOfFloat8,
               i8 - 1 + paramInt13,
               paramInt14 + 1 - i8,
               localintW2);
           if ((localintW2.val < 0 ? 0 : 1) != 0) {
             i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
           }
           if ((localintW2.val == 0 ? 0 : 1) != 0) {
             paramintW.val = (paramInt1 + 4);
             break label2389;
           }
         }
         if (m != 0) {
           Slaset.slaset(
               "Full",
               paramInt1,
               paramInt1,
               0.0F,
               1.0F,
               paramArrayOfFloat7,
               paramInt11,
               paramInt12);
         }
         Sgghrd.sgghrd(
             paramString1,
             paramString2,
             paramInt1,
             localintW3.val,
             localintW1.val,
             paramArrayOfFloat1,
             paramInt2,
             paramInt3,
             paramArrayOfFloat2,
             paramInt4,
             paramInt5,
             paramArrayOfFloat6,
             paramInt9,
             paramInt10,
             paramArrayOfFloat7,
             paramInt11,
             paramInt12,
             localintW2);
         if ((localintW2.val == 0 ? 0 : 1) != 0) {
           paramintW.val = (paramInt1 + 5);
         } else {
           i8 = i7;
           Shgeqz.shgeqz(
               "S",
               paramString1,
               paramString2,
               paramInt1,
               localintW3.val,
               localintW1.val,
               paramArrayOfFloat1,
               paramInt2,
               paramInt3,
               paramArrayOfFloat2,
               paramInt4,
               paramInt5,
               paramArrayOfFloat3,
               paramInt6,
               paramArrayOfFloat4,
               paramInt7,
               paramArrayOfFloat5,
               paramInt8,
               paramArrayOfFloat6,
               paramInt9,
               paramInt10,
               paramArrayOfFloat7,
               paramInt11,
               paramInt12,
               paramArrayOfFloat8,
               i8 - 1 + paramInt13,
               paramInt14 + 1 - i8,
               localintW2);
           if ((localintW2.val < 0 ? 0 : 1) != 0) {
             i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
           }
           if ((localintW2.val == 0 ? 0 : 1) != 0) {
             if ((localintW2.val <= 0 ? 0 : 1) != 0) {}
             if (((localintW2.val > paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
               paramintW.val = localintW2.val;
             } else {
               if ((localintW2.val <= paramInt1 ? 0 : 1) != 0) {}
               if (((localintW2.val > 2 * paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
                 localintW2.val -= paramInt1;
               } else {
                 paramintW.val = (paramInt1 + 6);
               }
             }
           } else {
             if (k != 0) {
               Sggbak.sggbak(
                   "P",
                   "L",
                   paramInt1,
                   localintW3.val,
                   localintW1.val,
                   paramArrayOfFloat8,
                   i4 - 1 + paramInt13,
                   paramArrayOfFloat8,
                   i5 - 1 + paramInt13,
                   paramInt1,
                   paramArrayOfFloat6,
                   paramInt9,
                   paramInt10,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 7);
                 break label2389;
               }
             }
             if (m != 0) {
               Sggbak.sggbak(
                   "P",
                   "R",
                   paramInt1,
                   localintW3.val,
                   localintW1.val,
                   paramArrayOfFloat8,
                   i4 - 1 + paramInt13,
                   paramArrayOfFloat8,
                   i5 - 1 + paramInt13,
                   paramInt1,
                   paramArrayOfFloat7,
                   paramInt11,
                   paramInt12,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 8);
                 break label2389;
               }
             }
             if (i != 0) {
               Slascl.slascl(
                   "H",
                   -1,
                   -1,
                   f2,
                   f1,
                   paramInt1,
                   paramInt1,
                   paramArrayOfFloat1,
                   paramInt2,
                   paramInt3,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
               Slascl.slascl(
                   "G",
                   -1,
                   -1,
                   f2,
                   f1,
                   paramInt1,
                   1,
                   paramArrayOfFloat3,
                   paramInt6,
                   paramInt1,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
               Slascl.slascl(
                   "G",
                   -1,
                   -1,
                   f2,
                   f1,
                   paramInt1,
                   1,
                   paramArrayOfFloat4,
                   paramInt7,
                   paramInt1,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
             }
             if (j != 0) {
               Slascl.slascl(
                   "U",
                   -1,
                   -1,
                   f5,
                   f4,
                   paramInt1,
                   paramInt1,
                   paramArrayOfFloat2,
                   paramInt4,
                   paramInt5,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
               Slascl.slascl(
                   "G",
                   -1,
                   -1,
                   f5,
                   f4,
                   paramInt1,
                   1,
                   paramArrayOfFloat5,
                   paramInt8,
                   paramInt1,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
             }
           }
         }
       }
     }
   }
   label2389:
   paramArrayOfFloat8[(1 - 1 + paramInt13)] = i11;
 }
Ejemplo n.º 5
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;
 }
Ejemplo n.º 6
0
 public static void dgeqrf(
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble2,
     int paramInt5,
     double[] paramArrayOfDouble3,
     int paramInt6,
     int paramInt7,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   intW localintW = new intW(0);
   int m = 0;
   int n = 0;
   int i1 = 0;
   int i2 = 0;
   int i3 = 0;
   int i4 = 0;
   int i5 = 0;
   paramintW.val = 0;
   i3 = Ilaenv.ilaenv(1, "DGEQRF", " ", paramInt1, paramInt2, -1, -1);
   i2 = paramInt2 * i3;
   paramArrayOfDouble3[(1 - 1 + paramInt6)] = i2;
   i = paramInt7 != -1 ? 0 : 1;
   if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt4 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -4;
   } else {
     if ((paramInt7 >= Math.max(1, paramInt2) ? 0 : 1) != 0) {}
     if (((i ^ 0x1) != 0 ? 1 : 0) != 0) {
       paramintW.val = -7;
     }
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DGEQRF", -paramintW.val);
     return;
   }
   if (i != 0) {
     return;
   }
   n = Math.min(paramInt1, paramInt2);
   if ((n != 0 ? 0 : 1) != 0) {
     paramArrayOfDouble3[(1 - 1 + paramInt6)] = 1;
     return;
   }
   i4 = 2;
   i5 = 0;
   m = paramInt2;
   if ((i3 <= 1 ? 0 : 1) != 0) {}
   if (((i3 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {
     i5 = Math.max(0, Ilaenv.ilaenv(3, "DGEQRF", " ", paramInt1, paramInt2, -1, -1));
     if ((i5 >= n ? 0 : 1) != 0) {
       i1 = paramInt2;
       m = i1 * i3;
       if ((paramInt7 >= m ? 0 : 1) != 0) {
         i3 = paramInt7 / i1;
         i4 = Math.max(2, Ilaenv.ilaenv(2, "DGEQRF", " ", paramInt1, paramInt2, -1, -1));
       }
     }
   }
   if ((i3 < i4 ? 0 : 1) != 0) {}
   if (((i3 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {}
   if (((i5 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {
     j = 1;
     for (int i6 = (n - i5 - 1 + i3) / i3; i6 > 0; i6--) {
       k = Math.min(n - j + 1, i3);
       Dgeqr2.dgeqr2(
           paramInt1 - j + 1,
           k,
           paramArrayOfDouble1,
           j - 1 + (j - 1) * paramInt4 + paramInt3,
           paramInt4,
           paramArrayOfDouble2,
           j - 1 + paramInt5,
           paramArrayOfDouble3,
           paramInt6,
           localintW);
       if ((j + k > paramInt2 ? 0 : 1) != 0) {
         Dlarft.dlarft(
             "Forward",
             "Columnwise",
             paramInt1 - j + 1,
             k,
             paramArrayOfDouble1,
             j - 1 + (j - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble2,
             j - 1 + paramInt5,
             paramArrayOfDouble3,
             paramInt6,
             i1);
         Dlarfb.dlarfb(
             "Left",
             "Transpose",
             "Forward",
             "Columnwise",
             paramInt1 - j + 1,
             paramInt2 - j - k + 1,
             k,
             paramArrayOfDouble1,
             j - 1 + (j - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble3,
             paramInt6,
             i1,
             paramArrayOfDouble1,
             j - 1 + (j + k - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble3,
             k + 1 - 1 + paramInt6,
             i1);
       }
       j += i3;
     }
   } else {
     j = 1;
   }
   if ((j > n ? 0 : 1) != 0) {
     Dgeqr2.dgeqr2(
         paramInt1 - j + 1,
         paramInt2 - j + 1,
         paramArrayOfDouble1,
         j - 1 + (j - 1) * paramInt4 + paramInt3,
         paramInt4,
         paramArrayOfDouble2,
         j - 1 + paramInt5,
         paramArrayOfDouble3,
         paramInt6,
         localintW);
   }
   paramArrayOfDouble3[(1 - 1 + paramInt6)] = m;
 }