예제 #1
0
 public static void dpbsv(
     String paramString,
     int paramInt1,
     int paramInt2,
     int paramInt3,
     double[] paramArrayOfDouble1,
     int paramInt4,
     int paramInt5,
     double[] paramArrayOfDouble2,
     int paramInt6,
     int paramInt7,
     intW paramintW) {
   paramintW.val = 0;
   if ((((Lsame.lsame(paramString, "U") ^ true)) && ((Lsame.lsame(paramString, "L") ^ true))
           ? 1
           : 0)
       != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt3 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -4;
   } else if ((paramInt5 >= paramInt2 + 1 ? 0 : 1) != 0) {
     paramintW.val = -6;
   } else if ((paramInt7 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -8;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DPBSV ", -paramintW.val);
     return;
   }
   Dpbtrf.dpbtrf(
       paramString, paramInt1, paramInt2, paramArrayOfDouble1, paramInt4, paramInt5, paramintW);
   if ((paramintW.val != 0 ? 0 : 1) != 0) {
     Dpbtrs.dpbtrs(
         paramString,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfDouble1,
         paramInt4,
         paramInt5,
         paramArrayOfDouble2,
         paramInt6,
         paramInt7,
         paramintW);
   }
 }
예제 #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;
 }
예제 #3
0
 public static void dpbequ(
     String paramString,
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble2,
     int paramInt5,
     doubleW paramdoubleW1,
     doubleW paramdoubleW2,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   double d = 0.0D;
   paramintW.val = 0;
   bool = Lsame.lsame(paramString, "U");
   if ((((bool ^ true)) && ((Lsame.lsame(paramString, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= paramInt2 + 1 ? 0 : 1) != 0) {
     paramintW.val = -5;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DPBEQU", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     paramdoubleW1.val = 1.0D;
     paramdoubleW2.val = 0.0D;
     return;
   }
   if (bool) {
     j = paramInt2 + 1;
   } else {
     j = 1;
   }
   paramArrayOfDouble2[(1 - 1 + paramInt5)] =
       paramArrayOfDouble1[(j - 1 + (1 - 1) * paramInt4 + paramInt3)];
   d = paramArrayOfDouble2[(1 - 1 + paramInt5)];
   paramdoubleW2.val = paramArrayOfDouble2[(1 - 1 + paramInt5)];
   i = 2;
   for (int k = paramInt1 - 2 + 1; k > 0; k--) {
     paramArrayOfDouble2[(i - 1 + paramInt5)] =
         paramArrayOfDouble1[(j - 1 + (i - 1) * paramInt4 + paramInt3)];
     d = Math.min(d, paramArrayOfDouble2[(i - 1 + paramInt5)]);
     paramdoubleW2.val = Math.max(paramdoubleW2.val, paramArrayOfDouble2[(i - 1 + paramInt5)]);
     i += 1;
   }
   if ((d > 0.0D ? 0 : 1) != 0) {
     i = 1;
     for (k = paramInt1 - 1 + 1; k > 0; k--) {
       if ((paramArrayOfDouble2[(i - 1 + paramInt5)] > 0.0D ? 0 : 1) != 0) {
         paramintW.val = i;
         return;
       }
       i += 1;
     }
   } else {
     i = 1;
     for (k = paramInt1 - 1 + 1; k > 0; k--) {
       paramArrayOfDouble2[(i - 1 + paramInt5)] =
           (1.0D / Math.sqrt(paramArrayOfDouble2[(i - 1 + paramInt5)]));
       i += 1;
     }
     paramdoubleW1.val = (Math.sqrt(d) / Math.sqrt(paramdoubleW2.val));
   }
 }
예제 #4
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)]);
 }
예제 #5
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;
 }
예제 #6
0
 public static void slalsa(
     int paramInt1,
     int paramInt2,
     int paramInt3,
     int paramInt4,
     float[] paramArrayOfFloat1,
     int paramInt5,
     int paramInt6,
     float[] paramArrayOfFloat2,
     int paramInt7,
     int paramInt8,
     float[] paramArrayOfFloat3,
     int paramInt9,
     int paramInt10,
     float[] paramArrayOfFloat4,
     int paramInt11,
     int[] paramArrayOfInt1,
     int paramInt12,
     float[] paramArrayOfFloat5,
     int paramInt13,
     float[] paramArrayOfFloat6,
     int paramInt14,
     float[] paramArrayOfFloat7,
     int paramInt15,
     float[] paramArrayOfFloat8,
     int paramInt16,
     int[] paramArrayOfInt2,
     int paramInt17,
     int[] paramArrayOfInt3,
     int paramInt18,
     int paramInt19,
     int[] paramArrayOfInt4,
     int paramInt20,
     float[] paramArrayOfFloat9,
     int paramInt21,
     float[] paramArrayOfFloat10,
     int paramInt22,
     float[] paramArrayOfFloat11,
     int paramInt23,
     float[] paramArrayOfFloat12,
     int paramInt24,
     int[] paramArrayOfInt5,
     int paramInt25,
     intW paramintW) {
   int i = 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;
   intW localintW1 = new intW(0);
   int i6 = 0;
   int i7 = 0;
   int i8 = 0;
   int i9 = 0;
   int i10 = 0;
   int i11 = 0;
   intW localintW2 = new intW(0);
   int i12 = 0;
   int i13 = 0;
   int i14 = 0;
   int i15 = 0;
   paramintW.val = 0;
   if ((paramInt1 >= 0 ? 0 : 1) == 0) {}
   if (((paramInt1 <= 1 ? 0 : 1) == 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= 3 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt3 >= paramInt2 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= 1 ? 0 : 1) != 0) {
     paramintW.val = -4;
   } else if ((paramInt6 >= paramInt3 ? 0 : 1) != 0) {
     paramintW.val = -6;
   } else if ((paramInt8 >= paramInt3 ? 0 : 1) != 0) {
     paramintW.val = -8;
   } else if ((paramInt10 >= paramInt3 ? 0 : 1) != 0) {
     paramintW.val = -10;
   } else if ((paramInt19 >= paramInt3 ? 0 : 1) != 0) {
     paramintW.val = -19;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SLALSA", -paramintW.val);
     return;
   }
   n = 1;
   i7 = n + paramInt3;
   i8 = i7 + paramInt3;
   Slasdt.slasdt(
       paramInt3,
       localintW2,
       localintW1,
       paramArrayOfInt5,
       n - 1 + paramInt25,
       paramArrayOfInt5,
       i7 - 1 + paramInt25,
       paramArrayOfInt5,
       i8 - 1 + paramInt25,
       paramInt2);
   int i16;
   int i17;
   if ((paramInt1 != 1 ? 0 : 1) == 0) {
     i6 = (localintW1.val + 1) / 2;
     i = i6;
     for (i16 = localintW1.val - i6 + 1; i16 > 0; i16--) {
       j = i - 1;
       k = paramArrayOfInt5[(n + j - 1 + paramInt25)];
       i9 = paramArrayOfInt5[(i7 + j - 1 + paramInt25)];
       i12 = paramArrayOfInt5[(i8 + j - 1 + paramInt25)];
       i10 = k - i9;
       i13 = k + 1;
       Sgemm.sgemm(
           "T",
           "N",
           i9,
           paramInt4,
           i9,
           1.0F,
           paramArrayOfFloat3,
           i10 - 1 + (1 - 1) * paramInt10 + paramInt9,
           paramInt10,
           paramArrayOfFloat1,
           i10 - 1 + (1 - 1) * paramInt6 + paramInt5,
           paramInt6,
           0.0F,
           paramArrayOfFloat2,
           i10 - 1 + (1 - 1) * paramInt8 + paramInt7,
           paramInt8);
       Sgemm.sgemm(
           "T",
           "N",
           i12,
           paramInt4,
           i12,
           1.0F,
           paramArrayOfFloat3,
           i13 - 1 + (1 - 1) * paramInt10 + paramInt9,
           paramInt10,
           paramArrayOfFloat1,
           i13 - 1 + (1 - 1) * paramInt6 + paramInt5,
           paramInt6,
           0.0F,
           paramArrayOfFloat2,
           i13 - 1 + (1 - 1) * paramInt8 + paramInt7,
           paramInt8);
       i += 1;
     }
     i = 1;
     for (i16 = localintW1.val - 1 + 1; i16 > 0; i16--) {
       k = paramArrayOfInt5[(n + i - 1 - 1 + paramInt25)];
       Scopy.scopy(
           paramInt4,
           paramArrayOfFloat1,
           k - 1 + (1 - 1) * paramInt6 + paramInt5,
           paramInt6,
           paramArrayOfFloat2,
           k - 1 + (1 - 1) * paramInt8 + paramInt7,
           paramInt8);
       i += 1;
     }
     i1 = (int) Math.pow(2, localintW2.val);
     i15 = 0;
     i4 = localintW2.val;
     for (i16 = (1 - localintW2.val + -1) / -1; i16 > 0; i16--) {
       i5 = 2 * i4 - 1;
       if ((i4 != 1 ? 0 : 1) != 0) {
         i2 = 1;
         i3 = 1;
       } else {
         i2 = (int) Math.pow(2, i4 - 1);
         i3 = 2 * i2 - 1;
       }
       i = i2;
       for (i17 = i3 - i2 + 1; i17 > 0; i17--) {
         m = i - 1;
         k = paramArrayOfInt5[(n + m - 1 + paramInt25)];
         i9 = paramArrayOfInt5[(i7 + m - 1 + paramInt25)];
         i12 = paramArrayOfInt5[(i8 + m - 1 + paramInt25)];
         i10 = k - i9;
         i13 = k + 1;
         i1 -= 1;
         Slals0.slals0(
             paramInt1,
             i9,
             i12,
             i15,
             paramInt4,
             paramArrayOfFloat2,
             i10 - 1 + (1 - 1) * paramInt8 + paramInt7,
             paramInt8,
             paramArrayOfFloat1,
             i10 - 1 + (1 - 1) * paramInt6 + paramInt5,
             paramInt6,
             paramArrayOfInt4,
             i10 - 1 + (i4 - 1) * paramInt19 + paramInt20,
             paramArrayOfInt2[(i1 - 1 + paramInt17)],
             paramArrayOfInt3,
             i10 - 1 + (i5 - 1) * paramInt19 + paramInt18,
             paramInt19,
             paramArrayOfFloat9,
             i10 - 1 + (i5 - 1) * paramInt10 + paramInt21,
             paramInt10,
             paramArrayOfFloat8,
             i10 - 1 + (i5 - 1) * paramInt10 + paramInt16,
             paramArrayOfFloat5,
             i10 - 1 + (i4 - 1) * paramInt10 + paramInt13,
             paramArrayOfFloat6,
             i10 - 1 + (i5 - 1) * paramInt10 + paramInt14,
             paramArrayOfFloat7,
             i10 - 1 + (i4 - 1) * paramInt10 + paramInt15,
             paramArrayOfInt1[(i1 - 1 + paramInt12)],
             paramArrayOfFloat10[(i1 - 1 + paramInt22)],
             paramArrayOfFloat11[(i1 - 1 + paramInt23)],
             paramArrayOfFloat12,
             paramInt24,
             paramintW);
         i += 1;
       }
       i4 += -1;
     }
   } else {
     i1 = 0;
     i4 = 1;
     for (i16 = localintW2.val - 1 + 1; i16 > 0; i16--) {
       i5 = 2 * i4 - 1;
       if ((i4 != 1 ? 0 : 1) != 0) {
         i2 = 1;
         i3 = 1;
       } else {
         i2 = (int) Math.pow(2, i4 - 1);
         i3 = 2 * i2 - 1;
       }
       i = i3;
       for (i17 = (i2 - i3 + -1) / -1; i17 > 0; i17--) {
         m = i - 1;
         k = paramArrayOfInt5[(n + m - 1 + paramInt25)];
         i9 = paramArrayOfInt5[(i7 + m - 1 + paramInt25)];
         i12 = paramArrayOfInt5[(i8 + m - 1 + paramInt25)];
         i10 = k - i9;
         i13 = k + 1;
         if ((i != i3 ? 0 : 1) != 0) {
           i15 = 0;
         } else {
           i15 = 1;
         }
         i1 += 1;
         Slals0.slals0(
             paramInt1,
             i9,
             i12,
             i15,
             paramInt4,
             paramArrayOfFloat1,
             i10 - 1 + (1 - 1) * paramInt6 + paramInt5,
             paramInt6,
             paramArrayOfFloat2,
             i10 - 1 + (1 - 1) * paramInt8 + paramInt7,
             paramInt8,
             paramArrayOfInt4,
             i10 - 1 + (i4 - 1) * paramInt19 + paramInt20,
             paramArrayOfInt2[(i1 - 1 + paramInt17)],
             paramArrayOfInt3,
             i10 - 1 + (i5 - 1) * paramInt19 + paramInt18,
             paramInt19,
             paramArrayOfFloat9,
             i10 - 1 + (i5 - 1) * paramInt10 + paramInt21,
             paramInt10,
             paramArrayOfFloat8,
             i10 - 1 + (i5 - 1) * paramInt10 + paramInt16,
             paramArrayOfFloat5,
             i10 - 1 + (i4 - 1) * paramInt10 + paramInt13,
             paramArrayOfFloat6,
             i10 - 1 + (i5 - 1) * paramInt10 + paramInt14,
             paramArrayOfFloat7,
             i10 - 1 + (i4 - 1) * paramInt10 + paramInt15,
             paramArrayOfInt1[(i1 - 1 + paramInt12)],
             paramArrayOfFloat10[(i1 - 1 + paramInt22)],
             paramArrayOfFloat11[(i1 - 1 + paramInt23)],
             paramArrayOfFloat12,
             paramInt24,
             paramintW);
         i += -1;
       }
       i4 += 1;
     }
     i6 = (localintW1.val + 1) / 2;
     i = i6;
     for (i16 = localintW1.val - i6 + 1; i16 > 0; i16--) {
       j = i - 1;
       k = paramArrayOfInt5[(n + j - 1 + paramInt25)];
       i9 = paramArrayOfInt5[(i7 + j - 1 + paramInt25)];
       i12 = paramArrayOfInt5[(i8 + j - 1 + paramInt25)];
       i11 = i9 + 1;
       if ((i != localintW1.val ? 0 : 1) != 0) {
         i14 = i12;
       } else {
         i14 = i12 + 1;
       }
       i10 = k - i9;
       i13 = k + 1;
       Sgemm.sgemm(
           "T",
           "N",
           i11,
           paramInt4,
           i11,
           1.0F,
           paramArrayOfFloat4,
           i10 - 1 + (1 - 1) * paramInt10 + paramInt11,
           paramInt10,
           paramArrayOfFloat1,
           i10 - 1 + (1 - 1) * paramInt6 + paramInt5,
           paramInt6,
           0.0F,
           paramArrayOfFloat2,
           i10 - 1 + (1 - 1) * paramInt8 + paramInt7,
           paramInt8);
       Sgemm.sgemm(
           "T",
           "N",
           i14,
           paramInt4,
           i14,
           1.0F,
           paramArrayOfFloat4,
           i13 - 1 + (1 - 1) * paramInt10 + paramInt11,
           paramInt10,
           paramArrayOfFloat1,
           i13 - 1 + (1 - 1) * paramInt6 + paramInt5,
           paramInt6,
           0.0F,
           paramArrayOfFloat2,
           i13 - 1 + (1 - 1) * paramInt8 + paramInt7,
           paramInt8);
       i += 1;
     }
   }
 }
예제 #7
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);
   }
 }
예제 #8
0
 public static void stpcon(
     String paramString1,
     String paramString2,
     String paramString3,
     int paramInt1,
     float[] paramArrayOfFloat1,
     int paramInt2,
     floatW paramfloatW,
     float[] paramArrayOfFloat2,
     int paramInt3,
     int[] paramArrayOfInt,
     int paramInt4,
     intW paramintW) {
   boolean bool1 = false;
   int i = 0;
   boolean bool2 = false;
   String str = new String(" ");
   int j = 0;
   intW localintW = new intW(0);
   int k = 0;
   floatW localfloatW1 = new floatW(0.0F);
   float f1 = 0.0F;
   floatW localfloatW2 = new floatW(0.0F);
   float f2 = 0.0F;
   float f3 = 0.0F;
   int[] arrayOfInt = new int[3];
   paramintW.val = 0;
   bool2 = Lsame.lsame(paramString2, "U");
   i = (!paramString1.regionMatches(0, "1", 0, 1)) && (!Lsame.lsame(paramString1, "O")) ? 0 : 1;
   bool1 = Lsame.lsame(paramString3, "N");
   if ((((i ^ 0x1) != 0) && ((Lsame.lsame(paramString1, "I") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((((bool2 ^ true)) && ((Lsame.lsame(paramString2, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -2;
   } else if ((((bool1 ^ true)) && ((Lsame.lsame(paramString3, "U") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -3;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -4;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("STPCON", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     paramfloatW.val = 1.0F;
     return;
   }
   paramfloatW.val = 0.0F;
   f2 = Slamch.slamch("Safe minimum") * Math.max(1, paramInt1);
   f1 =
       Slantp.slantp(
           paramString1,
           paramString2,
           paramString3,
           paramInt1,
           paramArrayOfFloat1,
           paramInt2,
           paramArrayOfFloat2,
           paramInt3);
   if ((f1 <= 0.0F ? 0 : 1) != 0) {
     localfloatW1.val = 0.0F;
     str = "N";
     if (i != 0) {
       k = 1;
     } else {
       k = 2;
     }
     localintW.val = 0;
     for (; ; ) {
       Slacn2.slacn2(
           paramInt1,
           paramArrayOfFloat2,
           paramInt1 + 1 - 1 + paramInt3,
           paramArrayOfFloat2,
           paramInt3,
           paramArrayOfInt,
           paramInt4,
           localfloatW1,
           localintW,
           arrayOfInt,
           0);
       if ((localintW.val == 0 ? 0 : 1) == 0) {
         break;
       }
       if ((localintW.val != k ? 0 : 1) != 0) {
         Slatps.slatps(
             paramString2,
             "No transpose",
             paramString3,
             str,
             paramInt1,
             paramArrayOfFloat1,
             paramInt2,
             paramArrayOfFloat2,
             paramInt3,
             localfloatW2,
             paramArrayOfFloat2,
             2 * paramInt1 + 1 - 1 + paramInt3,
             paramintW);
       } else {
         Slatps.slatps(
             paramString2,
             "Transpose",
             paramString3,
             str,
             paramInt1,
             paramArrayOfFloat1,
             paramInt2,
             paramArrayOfFloat2,
             paramInt3,
             localfloatW2,
             paramArrayOfFloat2,
             2 * paramInt1 + 1 - 1 + paramInt3,
             paramintW);
       }
       str = "Y";
       if ((localfloatW2.val == 1.0F ? 0 : 1) != 0) {
         j = Isamax.isamax(paramInt1, paramArrayOfFloat2, paramInt3, 1);
         f3 = Math.abs(paramArrayOfFloat2[(j - 1 + paramInt3)]);
         if ((localfloatW2.val >= f3 * f2 ? 0 : 1) == 0) {}
         if (((localfloatW2.val != 0.0F ? 0 : 1) == 0 ? 0 : 1) != 0) {
           return;
         }
         Srscl.srscl(paramInt1, localfloatW2.val, paramArrayOfFloat2, paramInt3, 1);
       }
     }
     if ((localfloatW1.val == 0.0F ? 0 : 1) != 0) {
       paramfloatW.val = (1.0F / f1 / localfloatW1.val);
     }
   }
 }
예제 #9
0
 public static void slals0(
     int paramInt1,
     int paramInt2,
     int paramInt3,
     int paramInt4,
     int paramInt5,
     float[] paramArrayOfFloat1,
     int paramInt6,
     int paramInt7,
     float[] paramArrayOfFloat2,
     int paramInt8,
     int paramInt9,
     int[] paramArrayOfInt1,
     int paramInt10,
     int paramInt11,
     int[] paramArrayOfInt2,
     int paramInt12,
     int paramInt13,
     float[] paramArrayOfFloat3,
     int paramInt14,
     int paramInt15,
     float[] paramArrayOfFloat4,
     int paramInt16,
     float[] paramArrayOfFloat5,
     int paramInt17,
     float[] paramArrayOfFloat6,
     int paramInt18,
     float[] paramArrayOfFloat7,
     int paramInt19,
     int paramInt20,
     float paramFloat1,
     float paramFloat2,
     float[] paramArrayOfFloat8,
     int paramInt21,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 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;
   paramintW.val = 0;
   if ((paramInt1 >= 0 ? 0 : 1) == 0) {}
   if (((paramInt1 <= 1 ? 0 : 1) == 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= 1 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt3 >= 1 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else {
     if ((paramInt4 >= 0 ? 0 : 1) == 0) {}
     if (((paramInt4 <= 1 ? 0 : 1) == 0 ? 0 : 1) != 0) {
       paramintW.val = -4;
     }
   }
   m = paramInt2 + paramInt3 + 1;
   if ((paramInt5 >= 1 ? 0 : 1) != 0) {
     paramintW.val = -5;
   } else if ((paramInt7 >= m ? 0 : 1) != 0) {
     paramintW.val = -7;
   } else if ((paramInt9 >= m ? 0 : 1) != 0) {
     paramintW.val = -9;
   } else if ((paramInt11 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -11;
   } else if ((paramInt13 >= m ? 0 : 1) != 0) {
     paramintW.val = -13;
   } else if ((paramInt15 >= m ? 0 : 1) != 0) {
     paramintW.val = -15;
   } else if ((paramInt20 >= 1 ? 0 : 1) != 0) {
     paramintW.val = -20;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SLALS0", -paramintW.val);
     return;
   }
   k = m + paramInt4;
   n = paramInt2 + 1;
   int i1;
   int i2;
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     i = 1;
     for (i1 = paramInt11 - 1 + 1; i1 > 0; i1--) {
       Srot.srot(
           paramInt5,
           paramArrayOfFloat1,
           paramArrayOfInt2[(i - 1 + (2 - 1) * paramInt13 + paramInt12)]
               - 1
               + (1 - 1) * paramInt7
               + paramInt6,
           paramInt7,
           paramArrayOfFloat1,
           paramArrayOfInt2[(i - 1 + (1 - 1) * paramInt13 + paramInt12)]
               - 1
               + (1 - 1) * paramInt7
               + paramInt6,
           paramInt7,
           paramArrayOfFloat3[(i - 1 + (2 - 1) * paramInt15 + paramInt14)],
           paramArrayOfFloat3[(i - 1 + (1 - 1) * paramInt15 + paramInt14)]);
       i += 1;
     }
     Scopy.scopy(
         paramInt5,
         paramArrayOfFloat1,
         n - 1 + (1 - 1) * paramInt7 + paramInt6,
         paramInt7,
         paramArrayOfFloat2,
         1 - 1 + (1 - 1) * paramInt9 + paramInt8,
         paramInt9);
     i = 2;
     for (i1 = m - 2 + 1; i1 > 0; i1--) {
       Scopy.scopy(
           paramInt5,
           paramArrayOfFloat1,
           paramArrayOfInt1[(i - 1 + paramInt10)] - 1 + (1 - 1) * paramInt7 + paramInt6,
           paramInt7,
           paramArrayOfFloat2,
           i - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9);
       i += 1;
     }
     if ((paramInt20 != 1 ? 0 : 1) != 0) {
       Scopy.scopy(
           paramInt5,
           paramArrayOfFloat2,
           paramInt8,
           paramInt9,
           paramArrayOfFloat1,
           paramInt6,
           paramInt7);
       if ((paramArrayOfFloat7[(1 - 1 + paramInt19)] >= 0.0F ? 0 : 1) != 0) {
         Sscal.sscal(paramInt5, -1.0F, paramArrayOfFloat1, paramInt6, paramInt7);
       }
     } else {
       j = 1;
       for (i1 = paramInt20 - 1 + 1; i1 > 0; i1--) {
         f1 = paramArrayOfFloat5[(j - 1 + paramInt17)];
         f3 = paramArrayOfFloat4[(j - 1 + (1 - 1) * paramInt15 + paramInt16)];
         f4 = -paramArrayOfFloat4[(j - 1 + (2 - 1) * paramInt15 + paramInt16)];
         if ((j >= paramInt20 ? 0 : 1) != 0) {
           f2 = -paramArrayOfFloat6[(j - 1 + (1 - 1) * paramInt15 + paramInt18)];
           f5 = -paramArrayOfFloat4[(j + 1 - 1 + (2 - 1) * paramInt15 + paramInt16)];
         }
         if ((paramArrayOfFloat7[(j - 1 + paramInt19)] != 0.0F ? 0 : 1) == 0) {}
         if (((paramArrayOfFloat4[(j - 1 + (2 - 1) * paramInt15 + paramInt16)] != 0.0F ? 0 : 1)
                     == 0
                 ? 0
                 : 1)
             != 0) {
           paramArrayOfFloat8[(j - 1 + paramInt21)] = 0.0F;
         } else {
           paramArrayOfFloat8[(j - 1 + paramInt21)] =
               (-(paramArrayOfFloat4[(j - 1 + (2 - 1) * paramInt15 + paramInt16)]
                   * paramArrayOfFloat7[(j - 1 + paramInt19)]
                   / f1
                   / (paramArrayOfFloat4[(j - 1 + (2 - 1) * paramInt15 + paramInt16)] + f3)));
         }
         i = 1;
         for (i2 = j - 1 - 1 + 1; i2 > 0; i2--) {
           if ((paramArrayOfFloat7[(i - 1 + paramInt19)] != 0.0F ? 0 : 1) == 0) {}
           if (((paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)] != 0.0F ? 0 : 1)
                       == 0
                   ? 0
                   : 1)
               != 0) {
             paramArrayOfFloat8[(i - 1 + paramInt21)] = 0.0F;
           } else {
             paramArrayOfFloat8[(i - 1 + paramInt21)] =
                 (paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)]
                     * paramArrayOfFloat7[(i - 1 + paramInt19)]
                     / (Slamc3.slamc3(
                             paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)], f4)
                         - f1)
                     / (paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)] + f3));
           }
           i += 1;
         }
         i = j + 1;
         for (i2 = paramInt20 - (j + 1) + 1; i2 > 0; i2--) {
           if ((paramArrayOfFloat7[(i - 1 + paramInt19)] != 0.0F ? 0 : 1) == 0) {}
           if (((paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)] != 0.0F ? 0 : 1)
                       == 0
                   ? 0
                   : 1)
               != 0) {
             paramArrayOfFloat8[(i - 1 + paramInt21)] = 0.0F;
           } else {
             paramArrayOfFloat8[(i - 1 + paramInt21)] =
                 (paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)]
                     * paramArrayOfFloat7[(i - 1 + paramInt19)]
                     / (Slamc3.slamc3(
                             paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)], f5)
                         + f2)
                     / (paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)] + f3));
           }
           i += 1;
         }
         paramArrayOfFloat8[(1 - 1 + paramInt21)] = -1.0F;
         f6 = Snrm2.snrm2(paramInt20, paramArrayOfFloat8, paramInt21, 1);
         Sgemv.sgemv(
             "T",
             paramInt20,
             paramInt5,
             1.0F,
             paramArrayOfFloat2,
             paramInt8,
             paramInt9,
             paramArrayOfFloat8,
             paramInt21,
             1,
             0.0F,
             paramArrayOfFloat1,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Slascl.slascl(
             "G",
             0,
             0,
             f6,
             1.0F,
             1,
             paramInt5,
             paramArrayOfFloat1,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramintW);
         j += 1;
       }
     }
     if ((paramInt20 >= Math.max(k, m) ? 0 : 1) != 0) {
       Slacpy.slacpy(
           "A",
           m - paramInt20,
           paramInt5,
           paramArrayOfFloat2,
           paramInt20 + 1 - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9,
           paramArrayOfFloat1,
           paramInt20 + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
           paramInt7);
     }
   } else {
     if ((paramInt20 != 1 ? 0 : 1) != 0) {
       Scopy.scopy(
           paramInt5,
           paramArrayOfFloat1,
           paramInt6,
           paramInt7,
           paramArrayOfFloat2,
           paramInt8,
           paramInt9);
     } else {
       j = 1;
       for (i1 = paramInt20 - 1 + 1; i1 > 0; i1--) {
         f4 = paramArrayOfFloat4[(j - 1 + (2 - 1) * paramInt15 + paramInt16)];
         if ((paramArrayOfFloat7[(j - 1 + paramInt19)] != 0.0F ? 0 : 1) != 0) {
           paramArrayOfFloat8[(j - 1 + paramInt21)] = 0.0F;
         } else {
           paramArrayOfFloat8[(j - 1 + paramInt21)] =
               (-(paramArrayOfFloat7[(j - 1 + paramInt19)]
                   / paramArrayOfFloat5[(j - 1 + paramInt17)]
                   / (f4 + paramArrayOfFloat4[(j - 1 + (1 - 1) * paramInt15 + paramInt16)])
                   / paramArrayOfFloat6[(j - 1 + (2 - 1) * paramInt15 + paramInt18)]));
         }
         i = 1;
         for (i2 = j - 1 - 1 + 1; i2 > 0; i2--) {
           if ((paramArrayOfFloat7[(j - 1 + paramInt19)] != 0.0F ? 0 : 1) != 0) {
             paramArrayOfFloat8[(i - 1 + paramInt21)] = 0.0F;
           } else {
             paramArrayOfFloat8[(i - 1 + paramInt21)] =
                 (paramArrayOfFloat7[(j - 1 + paramInt19)]
                     / (Slamc3.slamc3(
                             f4,
                             -paramArrayOfFloat4[(i + 1 - 1 + (2 - 1) * paramInt15 + paramInt16)])
                         - paramArrayOfFloat6[(i - 1 + (1 - 1) * paramInt15 + paramInt18)])
                     / (f4 + paramArrayOfFloat4[(i - 1 + (1 - 1) * paramInt15 + paramInt16)])
                     / paramArrayOfFloat6[(i - 1 + (2 - 1) * paramInt15 + paramInt18)]);
           }
           i += 1;
         }
         i = j + 1;
         for (i2 = paramInt20 - (j + 1) + 1; i2 > 0; i2--) {
           if ((paramArrayOfFloat7[(j - 1 + paramInt19)] != 0.0F ? 0 : 1) != 0) {
             paramArrayOfFloat8[(i - 1 + paramInt21)] = 0.0F;
           } else {
             paramArrayOfFloat8[(i - 1 + paramInt21)] =
                 (paramArrayOfFloat7[(j - 1 + paramInt19)]
                     / (Slamc3.slamc3(
                             f4, -paramArrayOfFloat4[(i - 1 + (2 - 1) * paramInt15 + paramInt16)])
                         - paramArrayOfFloat5[(i - 1 + paramInt17)])
                     / (f4 + paramArrayOfFloat4[(i - 1 + (1 - 1) * paramInt15 + paramInt16)])
                     / paramArrayOfFloat6[(i - 1 + (2 - 1) * paramInt15 + paramInt18)]);
           }
           i += 1;
         }
         Sgemv.sgemv(
             "T",
             paramInt20,
             paramInt5,
             1.0F,
             paramArrayOfFloat1,
             paramInt6,
             paramInt7,
             paramArrayOfFloat8,
             paramInt21,
             1,
             0.0F,
             paramArrayOfFloat2,
             j - 1 + (1 - 1) * paramInt9 + paramInt8,
             paramInt9);
         j += 1;
       }
     }
     if ((paramInt4 != 1 ? 0 : 1) != 0) {
       Scopy.scopy(
           paramInt5,
           paramArrayOfFloat1,
           k - 1 + (1 - 1) * paramInt7 + paramInt6,
           paramInt7,
           paramArrayOfFloat2,
           k - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9);
       Srot.srot(
           paramInt5,
           paramArrayOfFloat2,
           1 - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9,
           paramArrayOfFloat2,
           k - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9,
           paramFloat1,
           paramFloat2);
     }
     if ((paramInt20 >= Math.max(k, m) ? 0 : 1) != 0) {
       Slacpy.slacpy(
           "A",
           m - paramInt20,
           paramInt5,
           paramArrayOfFloat1,
           paramInt20 + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
           paramInt7,
           paramArrayOfFloat2,
           paramInt20 + 1 - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9);
     }
     Scopy.scopy(
         paramInt5,
         paramArrayOfFloat2,
         1 - 1 + (1 - 1) * paramInt9 + paramInt8,
         paramInt9,
         paramArrayOfFloat1,
         n - 1 + (1 - 1) * paramInt7 + paramInt6,
         paramInt7);
     if ((paramInt4 != 1 ? 0 : 1) != 0) {
       Scopy.scopy(
           paramInt5,
           paramArrayOfFloat2,
           k - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9,
           paramArrayOfFloat1,
           k - 1 + (1 - 1) * paramInt7 + paramInt6,
           paramInt7);
     }
     i = 2;
     for (i1 = m - 2 + 1; i1 > 0; i1--) {
       Scopy.scopy(
           paramInt5,
           paramArrayOfFloat2,
           i - 1 + (1 - 1) * paramInt9 + paramInt8,
           paramInt9,
           paramArrayOfFloat1,
           paramArrayOfInt1[(i - 1 + paramInt10)] - 1 + (1 - 1) * paramInt7 + paramInt6,
           paramInt7);
       i += 1;
     }
     i = paramInt11;
     for (i1 = (1 - paramInt11 + -1) / -1; i1 > 0; i1--) {
       Srot.srot(
           paramInt5,
           paramArrayOfFloat1,
           paramArrayOfInt2[(i - 1 + (2 - 1) * paramInt13 + paramInt12)]
               - 1
               + (1 - 1) * paramInt7
               + paramInt6,
           paramInt7,
           paramArrayOfFloat1,
           paramArrayOfInt2[(i - 1 + (1 - 1) * paramInt13 + paramInt12)]
               - 1
               + (1 - 1) * paramInt7
               + paramInt6,
           paramInt7,
           paramArrayOfFloat3[(i - 1 + (2 - 1) * paramInt15 + paramInt14)],
           -paramArrayOfFloat3[(i - 1 + (1 - 1) * paramInt15 + paramInt14)]);
       i += -1;
     }
   }
 }
예제 #10
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;
 }
예제 #11
0
 public static void dpbstf(
     String paramString,
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble,
     int paramInt3,
     int paramInt4,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   double d = 0.0D;
   paramintW.val = 0;
   bool = Lsame.lsame(paramString, "U");
   if ((((bool ^ true)) && ((Lsame.lsame(paramString, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= paramInt2 + 1 ? 0 : 1) != 0) {
     paramintW.val = -5;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DPBSTF", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   j = Math.max(1, paramInt4 - 1);
   m = (paramInt1 + paramInt2) / 2;
   int n;
   if (bool) {
     i = paramInt1;
     for (n = (m + 1 - paramInt1 + -1) / -1; n > 0; n--) {
       d = paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(i - 1, paramInt2);
       Dscal.dscal(
           k,
           1.0D / d,
           paramArrayOfDouble,
           paramInt2 + 1 - k - 1 + (i - 1) * paramInt4 + paramInt3,
           1);
       Dsyr.dsyr(
           "Upper",
           k,
           -1.0D,
           paramArrayOfDouble,
           paramInt2 + 1 - k - 1 + (i - 1) * paramInt4 + paramInt3,
           1,
           paramArrayOfDouble,
           paramInt2 + 1 - 1 + (i - k - 1) * paramInt4 + paramInt3,
           j);
       i += -1;
     }
     i = 1;
     for (n = m - 1 + 1; n > 0; n--) {
       d = paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(paramInt2 + 1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(paramInt2, m - i);
       if ((k <= 0 ? 0 : 1) != 0) {
         Dscal.dscal(
             k,
             1.0D / d,
             paramArrayOfDouble,
             paramInt2 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j);
         Dsyr.dsyr(
             "Upper",
             k,
             -1.0D,
             paramArrayOfDouble,
             paramInt2 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j,
             paramArrayOfDouble,
             paramInt2 + 1 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j);
       }
       i += 1;
     }
   } else {
     i = paramInt1;
     for (n = (m + 1 - paramInt1 + -1) / -1; n > 0; n--) {
       d = paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(i - 1, paramInt2);
       Dscal.dscal(
           k, 1.0D / d, paramArrayOfDouble, k + 1 - 1 + (i - k - 1) * paramInt4 + paramInt3, j);
       Dsyr.dsyr(
           "Lower",
           k,
           -1.0D,
           paramArrayOfDouble,
           k + 1 - 1 + (i - k - 1) * paramInt4 + paramInt3,
           j,
           paramArrayOfDouble,
           1 - 1 + (i - k - 1) * paramInt4 + paramInt3,
           j);
       i += -1;
     }
     i = 1;
     for (n = m - 1 + 1; n > 0; n--) {
       d = paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)];
       if ((d > 0.0D ? 0 : 1) != 0) {
         break;
       }
       d = Math.sqrt(d);
       paramArrayOfDouble[(1 - 1 + (i - 1) * paramInt4 + paramInt3)] = d;
       k = Math.min(paramInt2, m - i);
       if ((k <= 0 ? 0 : 1) != 0) {
         Dscal.dscal(k, 1.0D / d, paramArrayOfDouble, 2 - 1 + (i - 1) * paramInt4 + paramInt3, 1);
         Dsyr.dsyr(
             "Lower",
             k,
             -1.0D,
             paramArrayOfDouble,
             2 - 1 + (i - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble,
             1 - 1 + (i + 1 - 1) * paramInt4 + paramInt3,
             j);
       }
       i += 1;
     }
   }
   return;
   paramintW.val = i;
 }
예제 #12
0
 public static void dsytrs(
     String paramString,
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     int[] paramArrayOfInt,
     int paramInt5,
     double[] paramArrayOfDouble2,
     int paramInt6,
     int paramInt7,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   int k = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   double d6 = 0.0D;
   paramintW.val = 0;
   bool = Lsame.lsame(paramString, "U");
   if ((((bool ^ true)) && ((Lsame.lsame(paramString, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -5;
   } else if ((paramInt7 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -8;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DSYTRS", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) == 0) {}
   if (((paramInt2 != 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {
     return;
   }
   int m;
   if (bool) {
     j = paramInt1;
     while ((j >= 1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         Dger.dger(
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramArrayOfDouble2,
             1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Dscal.dscal(
             paramInt2,
             1.0D / paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)],
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         j -= 1;
       } else {
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j - 1 ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         Dger.dger(
             j - 2,
             paramInt2,
             -1.0D,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramArrayOfDouble2,
             1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Dger.dger(
             j - 2,
             paramInt2,
             -1.0D,
             paramArrayOfDouble1,
             1 - 1 + (j - 1 - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             j - 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7,
             paramArrayOfDouble2,
             1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         d3 = paramArrayOfDouble1[(j - 1 - 1 + (j - 1) * paramInt4 + paramInt3)];
         d2 = paramArrayOfDouble1[(j - 1 - 1 + (j - 1 - 1) * paramInt4 + paramInt3)] / d3;
         d1 = paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)] / d3;
         d6 = d2 * d1 - 1.0D;
         i = 1;
         for (m = paramInt2 - 1 + 1; m > 0; m--) {
           d5 = paramArrayOfDouble2[(j - 1 - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           d4 = paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble2[(j - 1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
               ((d1 * d5 - d4) / d6);
           paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] = ((d2 * d4 - d5) / d6);
           i += 1;
         }
         j -= 2;
       }
     }
     j = 1;
     while ((j <= paramInt1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         Dgemv.dgemv(
             "Transpose",
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble2,
             paramInt6,
             paramInt7,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             1.0D,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j += 1;
       } else {
         Dgemv.dgemv(
             "Transpose",
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble2,
             paramInt6,
             paramInt7,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             1.0D,
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         Dgemv.dgemv(
             "Transpose",
             j - 1,
             paramInt2,
             -1.0D,
             paramArrayOfDouble2,
             paramInt6,
             paramInt7,
             paramArrayOfDouble1,
             1 - 1 + (j + 1 - 1) * paramInt4 + paramInt3,
             1,
             1.0D,
             paramArrayOfDouble2,
             j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j += 2;
       }
     }
   } else {
     j = 1;
     while ((j <= paramInt1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         if ((j >= paramInt1 ? 0 : 1) != 0) {
           Dger.dger(
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         Dscal.dscal(
             paramInt2,
             1.0D / paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)],
             paramArrayOfDouble2,
             j - 1 + (1 - 1) * paramInt7 + paramInt6,
             paramInt7);
         j += 1;
       } else {
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j + 1 ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         if ((j >= paramInt1 - 1 ? 0 : 1) != 0) {
           Dger.dger(
               paramInt1 - j - 1,
               paramInt2,
               -1.0D,
               paramArrayOfDouble1,
               j + 2 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               j + 2 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
           Dger.dger(
               paramInt1 - j - 1,
               paramInt2,
               -1.0D,
               paramArrayOfDouble1,
               j + 2 - 1 + (j + 1 - 1) * paramInt4 + paramInt3,
               1,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               j + 2 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         d3 = paramArrayOfDouble1[(j + 1 - 1 + (j - 1) * paramInt4 + paramInt3)];
         d2 = paramArrayOfDouble1[(j - 1 + (j - 1) * paramInt4 + paramInt3)] / d3;
         d1 = paramArrayOfDouble1[(j + 1 - 1 + (j + 1 - 1) * paramInt4 + paramInt3)] / d3;
         d6 = d2 * d1 - 1.0D;
         i = 1;
         for (m = paramInt2 - 1 + 1; m > 0; m--) {
           d5 = paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           d4 = paramArrayOfDouble2[(j + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble2[(j - 1 + (i - 1) * paramInt7 + paramInt6)] = ((d1 * d5 - d4) / d6);
           paramArrayOfDouble2[(j + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
               ((d2 * d4 - d5) / d6);
           i += 1;
         }
         j += 2;
       }
     }
     j = paramInt1;
     while ((j >= 1 ? 0 : 1) == 0) {
       if ((paramArrayOfInt[(j - 1 + paramInt5)] <= 0 ? 0 : 1) != 0) {
         if ((j >= paramInt1 ? 0 : 1) != 0) {
           Dgemv.dgemv(
               "Transpose",
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               1.0D,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         k = paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j -= 1;
       } else {
         if ((j >= paramInt1 ? 0 : 1) != 0) {
           Dgemv.dgemv(
               "Transpose",
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1) * paramInt4 + paramInt3,
               1,
               1.0D,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
           Dgemv.dgemv(
               "Transpose",
               paramInt1 - j,
               paramInt2,
               -1.0D,
               paramArrayOfDouble2,
               j + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble1,
               j + 1 - 1 + (j - 1 - 1) * paramInt4 + paramInt3,
               1,
               1.0D,
               paramArrayOfDouble2,
               j - 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         k = -paramArrayOfInt[(j - 1 + paramInt5)];
         if ((k == j ? 0 : 1) != 0) {
           Dswap.dswap(
               paramInt2,
               paramArrayOfDouble2,
               j - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7,
               paramArrayOfDouble2,
               k - 1 + (1 - 1) * paramInt7 + paramInt6,
               paramInt7);
         }
         j -= 2;
       }
     }
   }
 }
예제 #13
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;
 }
예제 #14
0
 public static void spbequ(
     String paramString,
     int paramInt1,
     int paramInt2,
     float[] paramArrayOfFloat1,
     int paramInt3,
     int paramInt4,
     float[] paramArrayOfFloat2,
     int paramInt5,
     floatW paramfloatW1,
     floatW paramfloatW2,
     intW paramintW) {
   boolean bool = false;
   int i = 0;
   int j = 0;
   float f = 0.0F;
   paramintW.val = 0;
   bool = Lsame.lsame(paramString, "U");
   if ((((bool ^ true)) && ((Lsame.lsame(paramString, "L") ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= paramInt2 + 1 ? 0 : 1) != 0) {
     paramintW.val = -5;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SPBEQU", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     paramfloatW1.val = 1.0F;
     paramfloatW2.val = 0.0F;
     return;
   }
   if (bool) {
     j = paramInt2 + 1;
   } else {
     j = 1;
   }
   paramArrayOfFloat2[(1 - 1 + paramInt5)] =
       paramArrayOfFloat1[(j - 1 + (1 - 1) * paramInt4 + paramInt3)];
   f = paramArrayOfFloat2[(1 - 1 + paramInt5)];
   paramfloatW2.val = paramArrayOfFloat2[(1 - 1 + paramInt5)];
   i = 2;
   for (int k = paramInt1 - 2 + 1; k > 0; k--) {
     paramArrayOfFloat2[(i - 1 + paramInt5)] =
         paramArrayOfFloat1[(j - 1 + (i - 1) * paramInt4 + paramInt3)];
     f = Math.min(f, paramArrayOfFloat2[(i - 1 + paramInt5)]);
     paramfloatW2.val = Math.max(paramfloatW2.val, paramArrayOfFloat2[(i - 1 + paramInt5)]);
     i += 1;
   }
   if ((f > 0.0F ? 0 : 1) != 0) {
     i = 1;
     for (k = paramInt1 - 1 + 1; k > 0; k--) {
       if ((paramArrayOfFloat2[(i - 1 + paramInt5)] > 0.0F ? 0 : 1) != 0) {
         paramintW.val = i;
         return;
       }
       i += 1;
     }
   } else {
     i = 1;
     for (k = paramInt1 - 1 + 1; k > 0; k--) {
       paramArrayOfFloat2[(i - 1 + paramInt5)] =
           (1.0F / (float) Math.sqrt(paramArrayOfFloat2[(i - 1 + paramInt5)]));
       i += 1;
     }
     paramfloatW1.val = ((float) Math.sqrt(f) / (float) Math.sqrt(paramfloatW2.val));
   }
 }
예제 #15
0
 public static void strmv(
     String paramString1,
     String paramString2,
     String paramString3,
     int paramInt1,
     float[] paramArrayOfFloat1,
     int paramInt2,
     int paramInt3,
     float[] paramArrayOfFloat2,
     int paramInt4,
     int paramInt5) {
   float f = 0.0F;
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   boolean bool = false;
   j = 0;
   if ((((Lsame.lsame(paramString1, "U") ^ true)) && ((Lsame.lsame(paramString1, "L") ^ true))
           ? 1
           : 0)
       != 0) {
     j = 1;
   } else {
     if ((((Lsame.lsame(paramString2, "N") ^ true)) && ((Lsame.lsame(paramString2, "T") ^ true))
             ? 1
             : 0)
         != 0) {}
     if (((Lsame.lsame(paramString2, "C") ^ true) ? 1 : 0) != 0) {
       j = 2;
     } else if ((((Lsame.lsame(paramString3, "U") ^ true))
                 && ((Lsame.lsame(paramString3, "N") ^ true))
             ? 1
             : 0)
         != 0) {
       j = 3;
     } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
       j = 4;
     } else if ((paramInt3 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
       j = 6;
     } else if ((paramInt5 != 0 ? 0 : 1) != 0) {
       j = 8;
     }
   }
   if ((j == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("STRMV ", j);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   bool = Lsame.lsame(paramString3, "N");
   if ((paramInt5 > 0 ? 0 : 1) != 0) {
     i1 = 1 - (paramInt1 - 1) * paramInt5;
   } else if ((paramInt5 == 1 ? 0 : 1) != 0) {
     i1 = 1;
   }
   int i2;
   int i3;
   if (Lsame.lsame(paramString2, "N")) {
     if (Lsame.lsame(paramString1, "U")) {
       if ((paramInt5 != 1 ? 0 : 1) != 0) {
         m = 1;
         for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
           if ((paramArrayOfFloat2[(m - 1 + paramInt4)] == 0.0F ? 0 : 1) != 0) {
             f = paramArrayOfFloat2[(m - 1 + paramInt4)];
             i = 1;
             for (i3 = m - 1 - 1 + 1; i3 > 0; i3--) {
               paramArrayOfFloat2[(i - 1 + paramInt4)] +=
                   f * paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)];
               i += 1;
             }
             if (bool) {
               paramArrayOfFloat2[(m - 1 + paramInt4)] *=
                   paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
             }
           }
           m += 1;
         }
       } else {
         n = i1;
         m = 1;
         for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
           if ((paramArrayOfFloat2[(n - 1 + paramInt4)] == 0.0F ? 0 : 1) != 0) {
             f = paramArrayOfFloat2[(n - 1 + paramInt4)];
             k = i1;
             i = 1;
             for (i3 = m - 1 - 1 + 1; i3 > 0; i3--) {
               paramArrayOfFloat2[(k - 1 + paramInt4)] +=
                   f * paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)];
               k += paramInt5;
               i += 1;
             }
             if (bool) {
               paramArrayOfFloat2[(n - 1 + paramInt4)] *=
                   paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
             }
           }
           n += paramInt5;
           m += 1;
         }
       }
     } else if ((paramInt5 != 1 ? 0 : 1) != 0) {
       m = paramInt1;
       for (i2 = (1 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         if ((paramArrayOfFloat2[(m - 1 + paramInt4)] == 0.0F ? 0 : 1) != 0) {
           f = paramArrayOfFloat2[(m - 1 + paramInt4)];
           i = paramInt1;
           for (i3 = (m + 1 - paramInt1 + -1) / -1; i3 > 0; i3--) {
             paramArrayOfFloat2[(i - 1 + paramInt4)] +=
                 f * paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)];
             i += -1;
           }
           if (bool) {
             paramArrayOfFloat2[(m - 1 + paramInt4)] *=
                 paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
           }
         }
         m += -1;
       }
     } else {
       i1 += (paramInt1 - 1) * paramInt5;
       n = i1;
       m = paramInt1;
       for (i2 = (1 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         if ((paramArrayOfFloat2[(n - 1 + paramInt4)] == 0.0F ? 0 : 1) != 0) {
           f = paramArrayOfFloat2[(n - 1 + paramInt4)];
           k = i1;
           i = paramInt1;
           for (i3 = (m + 1 - paramInt1 + -1) / -1; i3 > 0; i3--) {
             paramArrayOfFloat2[(k - 1 + paramInt4)] +=
                 f * paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)];
             k -= paramInt5;
             i += -1;
           }
           if (bool) {
             paramArrayOfFloat2[(n - 1 + paramInt4)] *=
                 paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
           }
         }
         n -= paramInt5;
         m += -1;
       }
     }
   } else if (Lsame.lsame(paramString1, "U")) {
     if ((paramInt5 != 1 ? 0 : 1) != 0) {
       m = paramInt1;
       for (i2 = (1 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         f = paramArrayOfFloat2[(m - 1 + paramInt4)];
         if (bool) {
           f *= paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
         }
         i = m - 1;
         for (i3 = (1 - (m - 1) + -1) / -1; i3 > 0; i3--) {
           f +=
               paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)]
                   * paramArrayOfFloat2[(i - 1 + paramInt4)];
           i += -1;
         }
         paramArrayOfFloat2[(m - 1 + paramInt4)] = f;
         m += -1;
       }
     } else {
       n = i1 + (paramInt1 - 1) * paramInt5;
       m = paramInt1;
       for (i2 = (1 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         f = paramArrayOfFloat2[(n - 1 + paramInt4)];
         k = n;
         if (bool) {
           f *= paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
         }
         i = m - 1;
         for (i3 = (1 - (m - 1) + -1) / -1; i3 > 0; i3--) {
           k -= paramInt5;
           f +=
               paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)]
                   * paramArrayOfFloat2[(k - 1 + paramInt4)];
           i += -1;
         }
         paramArrayOfFloat2[(n - 1 + paramInt4)] = f;
         n -= paramInt5;
         m += -1;
       }
     }
   } else if ((paramInt5 != 1 ? 0 : 1) != 0) {
     m = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       f = paramArrayOfFloat2[(m - 1 + paramInt4)];
       if (bool) {
         f *= paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
       }
       i = m + 1;
       for (i3 = paramInt1 - (m + 1) + 1; i3 > 0; i3--) {
         f +=
             paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)]
                 * paramArrayOfFloat2[(i - 1 + paramInt4)];
         i += 1;
       }
       paramArrayOfFloat2[(m - 1 + paramInt4)] = f;
       m += 1;
     }
   } else {
     n = i1;
     m = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       f = paramArrayOfFloat2[(n - 1 + paramInt4)];
       k = n;
       if (bool) {
         f *= paramArrayOfFloat1[(m - 1 + (m - 1) * paramInt3 + paramInt2)];
       }
       i = m + 1;
       for (i3 = paramInt1 - (m + 1) + 1; i3 > 0; i3--) {
         k += paramInt5;
         f +=
             paramArrayOfFloat1[(i - 1 + (m - 1) * paramInt3 + paramInt2)]
                 * paramArrayOfFloat2[(k - 1 + paramInt4)];
         i += 1;
       }
       paramArrayOfFloat2[(n - 1 + paramInt4)] = f;
       n += paramInt5;
       m += 1;
     }
   }
 }
예제 #16
0
 public static void dtzrqf(
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble2,
     int paramInt5,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   paramintW.val = 0;
   if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= paramInt1 ? 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) {
     Xerbla.xerbla("DTZRQF", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   int m;
   if ((paramInt1 != paramInt2 ? 0 : 1) != 0) {
     i = 1;
     for (m = paramInt2 - 1 + 1; m > 0; m--) {
       paramArrayOfDouble2[(i - 1 + paramInt5)] = 0.0D;
       i += 1;
     }
   } else {
     k = Math.min(paramInt1 + 1, paramInt2);
     j = paramInt1;
     for (m = (1 - paramInt1 + -1) / -1; m > 0; m--) {
       dlarfg_adapter(
           paramInt2 - paramInt1 + 1,
           paramArrayOfDouble1,
           j - 1 + (j - 1) * paramInt4 + paramInt3,
           paramArrayOfDouble1,
           j - 1 + (k - 1) * paramInt4 + paramInt3,
           paramInt4,
           paramArrayOfDouble2,
           j - 1 + paramInt5);
       if ((paramArrayOfDouble2[(j - 1 + paramInt5)] == 0.0D ? 0 : 1) != 0) {}
       if (((j <= 1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
         Dcopy.dcopy(
             j - 1,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1,
             paramArrayOfDouble2,
             paramInt5,
             1);
         Dgemv.dgemv(
             "No transpose",
             j - 1,
             paramInt2 - paramInt1,
             1.0D,
             paramArrayOfDouble1,
             1 - 1 + (k - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble1,
             j - 1 + (k - 1) * paramInt4 + paramInt3,
             paramInt4,
             1.0D,
             paramArrayOfDouble2,
             paramInt5,
             1);
         Daxpy.daxpy(
             j - 1,
             -paramArrayOfDouble2[(j - 1 + paramInt5)],
             paramArrayOfDouble2,
             paramInt5,
             1,
             paramArrayOfDouble1,
             1 - 1 + (j - 1) * paramInt4 + paramInt3,
             1);
         Dger.dger(
             j - 1,
             paramInt2 - paramInt1,
             -paramArrayOfDouble2[(j - 1 + paramInt5)],
             paramArrayOfDouble2,
             paramInt5,
             1,
             paramArrayOfDouble1,
             j - 1 + (k - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble1,
             1 - 1 + (k - 1) * paramInt4 + paramInt3,
             paramInt4);
       }
       j += -1;
     }
   }
 }
예제 #17
0
 public static void slarzb(
     String paramString1,
     String paramString2,
     String paramString3,
     String paramString4,
     int paramInt1,
     int paramInt2,
     int paramInt3,
     int paramInt4,
     float[] paramArrayOfFloat1,
     int paramInt5,
     int paramInt6,
     float[] paramArrayOfFloat2,
     int paramInt7,
     int paramInt8,
     float[] paramArrayOfFloat3,
     int paramInt9,
     int paramInt10,
     float[] paramArrayOfFloat4,
     int paramInt11,
     int paramInt12) {
   String str = new String(" ");
   int i = 0;
   int j = 0;
   int k = 0;
   if ((paramInt1 > 0 ? 0 : 1) == 0) {}
   if (((paramInt2 > 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {
     return;
   }
   j = 0;
   if ((Lsame.lsame(paramString3, "B") ^ true)) {
     j = -3;
   } else if ((Lsame.lsame(paramString4, "R") ^ true)) {
     j = -4;
   }
   if ((j == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SLARZB", -j);
     return;
   }
   if (Lsame.lsame(paramString2, "N")) {
     str = "T";
   } else {
     str = "N";
   }
   int m;
   int n;
   if (Lsame.lsame(paramString1, "L")) {
     k = 1;
     for (m = paramInt3 - 1 + 1; m > 0; m--) {
       Scopy.scopy(
           paramInt2,
           paramArrayOfFloat3,
           k - 1 + (1 - 1) * paramInt10 + paramInt9,
           paramInt10,
           paramArrayOfFloat4,
           1 - 1 + (k - 1) * paramInt12 + paramInt11,
           1);
       k += 1;
     }
     if ((paramInt4 <= 0 ? 0 : 1) != 0) {
       Sgemm.sgemm(
           "Transpose",
           "Transpose",
           paramInt2,
           paramInt3,
           paramInt4,
           1.0F,
           paramArrayOfFloat3,
           paramInt1 - paramInt4 + 1 - 1 + (1 - 1) * paramInt10 + paramInt9,
           paramInt10,
           paramArrayOfFloat1,
           paramInt5,
           paramInt6,
           1.0F,
           paramArrayOfFloat4,
           paramInt11,
           paramInt12);
     }
     Strmm.strmm(
         "Right",
         "Lower",
         str,
         "Non-unit",
         paramInt2,
         paramInt3,
         1.0F,
         paramArrayOfFloat2,
         paramInt7,
         paramInt8,
         paramArrayOfFloat4,
         paramInt11,
         paramInt12);
     k = 1;
     for (m = paramInt2 - 1 + 1; m > 0; m--) {
       i = 1;
       for (n = paramInt3 - 1 + 1; n > 0; n--) {
         paramArrayOfFloat3[(i - 1 + (k - 1) * paramInt10 + paramInt9)] -=
             paramArrayOfFloat4[(k - 1 + (i - 1) * paramInt12 + paramInt11)];
         i += 1;
       }
       k += 1;
     }
     if ((paramInt4 <= 0 ? 0 : 1) != 0) {
       Sgemm.sgemm(
           "Transpose",
           "Transpose",
           paramInt4,
           paramInt2,
           paramInt3,
           -1.0F,
           paramArrayOfFloat1,
           paramInt5,
           paramInt6,
           paramArrayOfFloat4,
           paramInt11,
           paramInt12,
           1.0F,
           paramArrayOfFloat3,
           paramInt1 - paramInt4 + 1 - 1 + (1 - 1) * paramInt10 + paramInt9,
           paramInt10);
     }
   } else if (Lsame.lsame(paramString1, "R")) {
     k = 1;
     for (m = paramInt3 - 1 + 1; m > 0; m--) {
       Scopy.scopy(
           paramInt1,
           paramArrayOfFloat3,
           1 - 1 + (k - 1) * paramInt10 + paramInt9,
           1,
           paramArrayOfFloat4,
           1 - 1 + (k - 1) * paramInt12 + paramInt11,
           1);
       k += 1;
     }
     if ((paramInt4 <= 0 ? 0 : 1) != 0) {
       Sgemm.sgemm(
           "No transpose",
           "Transpose",
           paramInt1,
           paramInt3,
           paramInt4,
           1.0F,
           paramArrayOfFloat3,
           1 - 1 + (paramInt2 - paramInt4 + 1 - 1) * paramInt10 + paramInt9,
           paramInt10,
           paramArrayOfFloat1,
           paramInt5,
           paramInt6,
           1.0F,
           paramArrayOfFloat4,
           paramInt11,
           paramInt12);
     }
     Strmm.strmm(
         "Right",
         "Lower",
         paramString2,
         "Non-unit",
         paramInt1,
         paramInt3,
         1.0F,
         paramArrayOfFloat2,
         paramInt7,
         paramInt8,
         paramArrayOfFloat4,
         paramInt11,
         paramInt12);
     k = 1;
     for (m = paramInt3 - 1 + 1; m > 0; m--) {
       i = 1;
       for (n = paramInt1 - 1 + 1; n > 0; n--) {
         paramArrayOfFloat3[(i - 1 + (k - 1) * paramInt10 + paramInt9)] -=
             paramArrayOfFloat4[(i - 1 + (k - 1) * paramInt12 + paramInt11)];
         i += 1;
       }
       k += 1;
     }
     if ((paramInt4 <= 0 ? 0 : 1) != 0) {
       Sgemm.sgemm(
           "No transpose",
           "No transpose",
           paramInt1,
           paramInt4,
           paramInt3,
           -1.0F,
           paramArrayOfFloat4,
           paramInt11,
           paramInt12,
           paramArrayOfFloat1,
           paramInt5,
           paramInt6,
           1.0F,
           paramArrayOfFloat3,
           1 - 1 + (paramInt2 - paramInt4 + 1 - 1) * paramInt10 + paramInt9,
           paramInt10);
     }
   }
 }
예제 #18
0
 public static void slaed8(
     int paramInt1,
     intW paramintW1,
     int paramInt2,
     int paramInt3,
     float[] paramArrayOfFloat1,
     int paramInt4,
     float[] paramArrayOfFloat2,
     int paramInt5,
     int paramInt6,
     int[] paramArrayOfInt1,
     int paramInt7,
     floatW paramfloatW,
     int paramInt8,
     float[] paramArrayOfFloat3,
     int paramInt9,
     float[] paramArrayOfFloat4,
     int paramInt10,
     float[] paramArrayOfFloat5,
     int paramInt11,
     int paramInt12,
     float[] paramArrayOfFloat6,
     int paramInt13,
     int[] paramArrayOfInt2,
     int paramInt14,
     intW paramintW2,
     int[] paramArrayOfInt3,
     int paramInt15,
     float[] paramArrayOfFloat7,
     int paramInt16,
     int[] paramArrayOfInt4,
     int paramInt17,
     int[] paramArrayOfInt5,
     int paramInt18,
     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;
   int i4 = 0;
   int i5 = 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;
   paramintW3.val = 0;
   if ((paramInt1 >= 0 ? 0 : 1) == 0) {}
   if (((paramInt1 <= 1 ? 0 : 1) == 0 ? 0 : 1) != 0) {
     paramintW3.val = -1;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW3.val = -3;
   } else {
     if ((paramInt1 != 1 ? 0 : 1) != 0) {}
     if (((paramInt3 >= paramInt2 ? 0 : 1) != 0 ? 1 : 0) != 0) {
       paramintW3.val = -4;
     } else if ((paramInt6 >= Math.max(1, paramInt2) ? 0 : 1) != 0) {
       paramintW3.val = -7;
     } else {
       if ((paramInt8 >= Math.min(1, paramInt2) ? 0 : 1) == 0) {}
       if (((paramInt8 <= paramInt2 ? 0 : 1) == 0 ? 0 : 1) != 0) {
         paramintW3.val = -10;
       } else if ((paramInt12 >= Math.max(1, paramInt2) ? 0 : 1) != 0) {
         paramintW3.val = -14;
       }
     }
   }
   if ((paramintW3.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SLAED8", -paramintW3.val);
     return;
   }
   if ((paramInt2 != 0 ? 0 : 1) != 0) {
     return;
   }
   i3 = paramInt8;
   i5 = paramInt2 - i3;
   i4 = i3 + 1;
   if ((paramfloatW.val >= 0.0F ? 0 : 1) != 0) {
     Sscal.sscal(i5, -1.0F, paramArrayOfFloat3, i4 - 1 + paramInt9, 1);
   }
   f4 = 1.0F / (float) Math.sqrt(2.0F);
   k = 1;
   for (int i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
     paramArrayOfInt5[(k - 1 + paramInt18)] = k;
     k += 1;
   }
   Sscal.sscal(paramInt2, f4, paramArrayOfFloat3, paramInt9, 1);
   paramfloatW.val = Math.abs(2.0F * paramfloatW.val);
   i = paramInt8 + 1;
   for (i6 = paramInt2 - (paramInt8 + 1) + 1; i6 > 0; i6--) {
     paramArrayOfInt1[(i - 1 + paramInt7)] += paramInt8;
     i += 1;
   }
   i = 1;
   for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
     paramArrayOfFloat4[(i - 1 + paramInt10)] =
         paramArrayOfFloat1[(paramArrayOfInt1[(i - 1 + paramInt7)] - 1 + paramInt4)];
     paramArrayOfFloat6[(i - 1 + paramInt13)] =
         paramArrayOfFloat3[(paramArrayOfInt1[(i - 1 + paramInt7)] - 1 + paramInt9)];
     i += 1;
   }
   i = 1;
   k = paramInt8 + 1;
   Slamrg.slamrg(i3, i5, paramArrayOfFloat4, paramInt10, 1, 1, paramArrayOfInt5, paramInt18);
   i = 1;
   for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
     paramArrayOfFloat1[(i - 1 + paramInt4)] =
         paramArrayOfFloat4[(paramArrayOfInt5[(i - 1 + paramInt18)] - 1 + paramInt10)];
     paramArrayOfFloat3[(i - 1 + paramInt9)] =
         paramArrayOfFloat6[(paramArrayOfInt5[(i - 1 + paramInt18)] - 1 + paramInt13)];
     i += 1;
   }
   j = Isamax.isamax(paramInt2, paramArrayOfFloat3, paramInt9, 1);
   n = Isamax.isamax(paramInt2, paramArrayOfFloat1, paramInt4, 1);
   f2 = Slamch.slamch("Epsilon");
   f6 = 8.0F * f2 * Math.abs(paramArrayOfFloat1[(n - 1 + paramInt4)]);
   if ((paramfloatW.val * Math.abs(paramArrayOfFloat3[(j - 1 + paramInt9)]) > f6 ? 0 : 1) != 0) {
     paramintW1.val = 0;
     if ((paramInt1 != 0 ? 0 : 1) != 0) {
       k = 1;
       for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
         paramArrayOfInt2[(k - 1 + paramInt14)] =
             paramArrayOfInt1[(paramArrayOfInt5[(k - 1 + paramInt18)] - 1 + paramInt7)];
         k += 1;
       }
     } else {
       k = 1;
       for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
         paramArrayOfInt2[(k - 1 + paramInt14)] =
             paramArrayOfInt1[(paramArrayOfInt5[(k - 1 + paramInt18)] - 1 + paramInt7)];
         Scopy.scopy(
             paramInt3,
             paramArrayOfFloat2,
             1 - 1 + (paramArrayOfInt2[(k - 1 + paramInt14)] - 1) * paramInt6 + paramInt5,
             1,
             paramArrayOfFloat5,
             1 - 1 + (k - 1) * paramInt12 + paramInt11,
             1);
         k += 1;
       }
       Slacpy.slacpy(
           "A",
           paramInt3,
           paramInt2,
           paramArrayOfFloat5,
           1 - 1 + (1 - 1) * paramInt12 + paramInt11,
           paramInt12,
           paramArrayOfFloat2,
           1 - 1 + (1 - 1) * paramInt6 + paramInt5,
           paramInt6);
     }
     return;
   }
   paramintW1.val = 0;
   paramintW2.val = 0;
   i2 = paramInt2 + 1;
   k = 1;
   for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
     if ((paramfloatW.val * Math.abs(paramArrayOfFloat3[(k - 1 + paramInt9)]) > f6 ? 0 : 1) != 0) {
       i2 -= 1;
       paramArrayOfInt4[(i2 - 1 + paramInt17)] = k;
       if ((k != paramInt2 ? 0 : 1) != 0) {
         break label1922;
       }
     } else {
       m = k;
       break;
     }
     k += 1;
   }
   for (; ; ) {
     k += 1;
     if ((k <= paramInt2 ? 0 : 1) != 0) {
       break;
     }
     if ((paramfloatW.val * Math.abs(paramArrayOfFloat3[(k - 1 + paramInt9)]) > f6 ? 0 : 1) != 0) {
       i2 -= 1;
       paramArrayOfInt4[(i2 - 1 + paramInt17)] = k;
     } else {
       f3 = paramArrayOfFloat3[(m - 1 + paramInt9)];
       f1 = paramArrayOfFloat3[(k - 1 + paramInt9)];
       f5 = Slapy2.slapy2(f1, f3);
       f4 = paramArrayOfFloat1[(k - 1 + paramInt4)] - paramArrayOfFloat1[(m - 1 + paramInt4)];
       f1 /= f5;
       f3 = -(f3 / f5);
       if ((Math.abs(f4 * f1 * f3) > f6 ? 0 : 1) != 0) {
         paramArrayOfFloat3[(k - 1 + paramInt9)] = f5;
         paramArrayOfFloat3[(m - 1 + paramInt9)] = 0.0F;
         paramintW2.val += 1;
         paramArrayOfInt3[(1 - 1 + (paramintW2.val - 1) * 2 + paramInt15)] =
             paramArrayOfInt1[(paramArrayOfInt5[(m - 1 + paramInt18)] - 1 + paramInt7)];
         paramArrayOfInt3[(2 - 1 + (paramintW2.val - 1) * 2 + paramInt15)] =
             paramArrayOfInt1[(paramArrayOfInt5[(k - 1 + paramInt18)] - 1 + paramInt7)];
         paramArrayOfFloat7[(1 - 1 + (paramintW2.val - 1) * 2 + paramInt16)] = f1;
         paramArrayOfFloat7[(2 - 1 + (paramintW2.val - 1) * 2 + paramInt16)] = f3;
         if ((paramInt1 != 1 ? 0 : 1) != 0) {
           Srot.srot(
               paramInt3,
               paramArrayOfFloat2,
               1
                   - 1
                   + (paramArrayOfInt1[(paramArrayOfInt5[(m - 1 + paramInt18)] - 1 + paramInt7)]
                           - 1)
                       * paramInt6
                   + paramInt5,
               1,
               paramArrayOfFloat2,
               1
                   - 1
                   + (paramArrayOfInt1[(paramArrayOfInt5[(k - 1 + paramInt18)] - 1 + paramInt7)]
                           - 1)
                       * paramInt6
                   + paramInt5,
               1,
               f1,
               f3);
         }
         f4 =
             paramArrayOfFloat1[(m - 1 + paramInt4)] * f1 * f1
                 + paramArrayOfFloat1[(k - 1 + paramInt4)] * f3 * f3;
         paramArrayOfFloat1[(k - 1 + paramInt4)] =
             (paramArrayOfFloat1[(m - 1 + paramInt4)] * f3 * f3
                 + paramArrayOfFloat1[(k - 1 + paramInt4)] * f1 * f1);
         paramArrayOfFloat1[(m - 1 + paramInt4)] = f4;
         i2 -= 1;
         i = 1;
         while ((i2 + i > paramInt2 ? 0 : 1) != 0) {
           if ((paramArrayOfFloat1[(m - 1 + paramInt4)]
                       >= paramArrayOfFloat1[
                           (paramArrayOfInt4[(i2 + i - 1 + paramInt17)] - 1 + paramInt4)]
                   ? 0
                   : 1)
               != 0) {
             paramArrayOfInt4[(i2 + i - 1 - 1 + paramInt17)] =
                 paramArrayOfInt4[(i2 + i - 1 + paramInt17)];
             paramArrayOfInt4[(i2 + i - 1 + paramInt17)] = m;
             i += 1;
           } else {
             paramArrayOfInt4[(i2 + i - 1 - 1 + paramInt17)] = m;
             break label1772;
           }
         }
         paramArrayOfInt4[(i2 + i - 1 - 1 + paramInt17)] = m;
         label1772:
         m = k;
       } else {
         paramintW1.val += 1;
         paramArrayOfFloat6[(paramintW1.val - 1 + paramInt13)] =
             paramArrayOfFloat3[(m - 1 + paramInt9)];
         paramArrayOfFloat4[(paramintW1.val - 1 + paramInt10)] =
             paramArrayOfFloat1[(m - 1 + paramInt4)];
         paramArrayOfInt4[(paramintW1.val - 1 + paramInt17)] = m;
         m = k;
       }
     }
   }
   paramintW1.val += 1;
   paramArrayOfFloat6[(paramintW1.val - 1 + paramInt13)] = paramArrayOfFloat3[(m - 1 + paramInt9)];
   paramArrayOfFloat4[(paramintW1.val - 1 + paramInt10)] = paramArrayOfFloat1[(m - 1 + paramInt4)];
   paramArrayOfInt4[(paramintW1.val - 1 + paramInt17)] = m;
   label1922:
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     k = 1;
     for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
       i1 = paramArrayOfInt4[(k - 1 + paramInt17)];
       paramArrayOfFloat4[(k - 1 + paramInt10)] = paramArrayOfFloat1[(i1 - 1 + paramInt4)];
       paramArrayOfInt2[(k - 1 + paramInt14)] =
           paramArrayOfInt1[(paramArrayOfInt5[(i1 - 1 + paramInt18)] - 1 + paramInt7)];
       k += 1;
     }
   } else {
     k = 1;
     for (i6 = paramInt2 - 1 + 1; i6 > 0; i6--) {
       i1 = paramArrayOfInt4[(k - 1 + paramInt17)];
       paramArrayOfFloat4[(k - 1 + paramInt10)] = paramArrayOfFloat1[(i1 - 1 + paramInt4)];
       paramArrayOfInt2[(k - 1 + paramInt14)] =
           paramArrayOfInt1[(paramArrayOfInt5[(i1 - 1 + paramInt18)] - 1 + paramInt7)];
       Scopy.scopy(
           paramInt3,
           paramArrayOfFloat2,
           1 - 1 + (paramArrayOfInt2[(k - 1 + paramInt14)] - 1) * paramInt6 + paramInt5,
           1,
           paramArrayOfFloat5,
           1 - 1 + (k - 1) * paramInt12 + paramInt11,
           1);
       k += 1;
     }
   }
   if ((paramintW1.val >= paramInt2 ? 0 : 1) != 0) {
     if ((paramInt1 != 0 ? 0 : 1) != 0) {
       Scopy.scopy(
           paramInt2 - paramintW1.val,
           paramArrayOfFloat4,
           paramintW1.val + 1 - 1 + paramInt10,
           1,
           paramArrayOfFloat1,
           paramintW1.val + 1 - 1 + paramInt4,
           1);
     } else {
       Scopy.scopy(
           paramInt2 - paramintW1.val,
           paramArrayOfFloat4,
           paramintW1.val + 1 - 1 + paramInt10,
           1,
           paramArrayOfFloat1,
           paramintW1.val + 1 - 1 + paramInt4,
           1);
       Slacpy.slacpy(
           "A",
           paramInt3,
           paramInt2 - paramintW1.val,
           paramArrayOfFloat5,
           1 - 1 + (paramintW1.val + 1 - 1) * paramInt12 + paramInt11,
           paramInt12,
           paramArrayOfFloat2,
           1 - 1 + (paramintW1.val + 1 - 1) * paramInt6 + paramInt5,
           paramInt6);
     }
   }
 }
예제 #19
0
 public static void dgbsv(
     int paramInt1,
     int paramInt2,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble1,
     int paramInt5,
     int paramInt6,
     int[] paramArrayOfInt,
     int paramInt7,
     double[] paramArrayOfDouble2,
     int paramInt8,
     int paramInt9,
     intW paramintW) {
   paramintW.val = 0;
   if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt3 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt4 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -4;
   } else if ((paramInt6 >= 2 * paramInt2 + paramInt3 + 1 ? 0 : 1) != 0) {
     paramintW.val = -6;
   } else if ((paramInt9 >= Math.max(paramInt1, 1) ? 0 : 1) != 0) {
     paramintW.val = -9;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DGBSV ", -paramintW.val);
     return;
   }
   Dgbtrf.dgbtrf(
       paramInt1,
       paramInt1,
       paramInt2,
       paramInt3,
       paramArrayOfDouble1,
       paramInt5,
       paramInt6,
       paramArrayOfInt,
       paramInt7,
       paramintW);
   if ((paramintW.val != 0 ? 0 : 1) != 0) {
     Dgbtrs.dgbtrs(
         "No transpose",
         paramInt1,
         paramInt2,
         paramInt3,
         paramInt4,
         paramArrayOfDouble1,
         paramInt5,
         paramInt6,
         paramArrayOfInt,
         paramInt7,
         paramArrayOfDouble2,
         paramInt8,
         paramInt9,
         paramintW);
   }
 }