Ejemplo n.º 1
0
  @Override
  public RQ factor(DenseMatrix A) {

    if (Q.numRows() != A.numRows())
      throw new IllegalArgumentException("Q.numRows() != A.numRows()");
    else if (Q.numColumns() != A.numColumns())
      throw new IllegalArgumentException("Q.numColumns() != A.numColumns()");
    else if (R == null) throw new IllegalArgumentException("R == null");

    /*
     * Calculate factorisation, and extract the triangular factor
     */
    intW info = new intW(0);
    LAPACK.getInstance().dgerqf(m, n, A.getData(), Matrices.ld(m), tau, work, work.length, info);

    if (info.val < 0) throw new IllegalArgumentException();

    R.zero();
    for (MatrixEntry e : A)
      if (e.column() >= (n - m) + e.row()) R.set(e.row(), e.column() - (n - m), e.get());

    /*
     * Generate the orthogonal matrix
     */
    info.val = 0;
    LAPACK
        .getInstance()
        .dorgrq(m, n, k, A.getData(), Matrices.ld(m), tau, workGen, workGen.length, info);

    if (info.val < 0) throw new IllegalArgumentException();

    Q.set(A);

    return this;
  }
Ejemplo n.º 2
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);
   }
 }
Ejemplo n.º 3
0
 public static void dlaein(
     boolean paramBoolean1,
     boolean paramBoolean2,
     int paramInt1,
     double[] paramArrayOfDouble1,
     int paramInt2,
     int paramInt3,
     double paramDouble1,
     double paramDouble2,
     double[] paramArrayOfDouble2,
     int paramInt4,
     double[] paramArrayOfDouble3,
     int paramInt5,
     double[] paramArrayOfDouble4,
     int paramInt6,
     int paramInt7,
     double[] paramArrayOfDouble5,
     int paramInt8,
     double paramDouble3,
     double paramDouble4,
     double paramDouble5,
     intW paramintW) {
   String str1 = new String(" ");
   String str2 = new String(" ");
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   intW localintW = new intW(0);
   int n = 0;
   int i1 = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   double d6 = 0.0D;
   double d7 = 0.0D;
   double d8 = 0.0D;
   double d9 = 0.0D;
   doubleW localdoubleW = new doubleW(0.0D);
   double d10 = 0.0D;
   double d11 = 0.0D;
   double d12 = 0.0D;
   double d13 = 0.0D;
   double d14 = 0.0D;
   double d15 = 0.0D;
   double d16 = 0.0D;
   double d17 = 0.0D;
   double d18 = 0.0D;
   double d19 = 0.0D;
   paramintW.val = 0;
   d9 = Math.sqrt(paramInt1);
   d5 = 0.1D / d9;
   d7 = Math.max(1.0D, paramDouble3 * d9) * paramDouble4;
   i1 = 1;
   int i3;
   for (int i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
     i = 1;
     for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
       paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
           paramArrayOfDouble1[(i - 1 + (i1 - 1) * paramInt3 + paramInt2)];
       i += 1;
     }
     paramArrayOfDouble1[(i1 - 1 + (i1 - 1) * paramInt3 + paramInt2)] -= paramDouble1;
     i1 += 1;
   }
   if ((paramDouble2 != 0.0D ? 0 : 1) != 0) {
     if (paramBoolean2) {
       i = 1;
       for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = paramDouble3;
         i += 1;
       }
     } else {
       d13 = Dnrm2.dnrm2(paramInt1, paramArrayOfDouble2, paramInt4, 1);
       Dscal.dscal(
           paramInt1, paramDouble3 * d9 / Math.max(d13, d7), paramArrayOfDouble2, paramInt4, 1);
     }
     if (paramBoolean1) {
       i = 1;
       for (i2 = paramInt1 - 1 - 1 + 1; i2 > 0; i2--) {
         d3 = paramArrayOfDouble1[(i + 1 - 1 + (i - 1) * paramInt3 + paramInt2)];
         if ((Math.abs(paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)])
                     >= Math.abs(d3)
                 ? 0
                 : 1)
             != 0) {
           d16 = paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = d3;
           i1 = i + 1;
           for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d16 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             i1 += 1;
           }
         } else {
           if ((paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1)
               != 0) {
             paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = paramDouble3;
           }
           d16 = d3 / paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)];
           if ((d16 == 0.0D ? 0 : 1) != 0) {
             i1 = i + 1;
             for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
               paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] -=
                   d16 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)];
               i1 += 1;
             }
           }
         }
         i += 1;
       }
       if ((paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] != 0.0D
               ? 0
               : 1)
           != 0) {
         paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] =
             paramDouble3;
       }
       str2 = "N";
     } else {
       i1 = paramInt1;
       for (i2 = (2 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         d4 = paramArrayOfDouble1[(i1 - 1 + (i1 - 1 - 1) * paramInt3 + paramInt2)];
         if ((Math.abs(paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)])
                     >= Math.abs(d4)
                 ? 0
                 : 1)
             != 0) {
           d16 = paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] / d4;
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d4;
           i = 1;
           for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d16 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             i += 1;
           }
         } else {
           if ((paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1)
               != 0) {
             paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
           }
           d16 = d4 / paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)];
           if ((d16 == 0.0D ? 0 : 1) != 0) {
             i = 1;
             for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
               paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] -=
                   d16 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)];
               i += 1;
             }
           }
         }
         i1 += -1;
       }
       if ((paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1) != 0) {
         paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
       }
       str2 = "T";
     }
     str1 = "N";
     n = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       Dlatrs.dlatrs(
           "Upper",
           str2,
           "Nonunit",
           str1,
           paramInt1,
           paramArrayOfDouble4,
           paramInt6,
           paramInt7,
           paramArrayOfDouble2,
           paramInt4,
           localdoubleW,
           paramArrayOfDouble5,
           paramInt8,
           localintW);
       str1 = "Y";
       d13 = Dasum.dasum(paramInt1, paramArrayOfDouble2, paramInt4, 1);
       if ((d13 < d5 * localdoubleW.val ? 0 : 1) != 0) {
         break;
       }
       d10 = paramDouble3 / (d9 + 1.0D);
       paramArrayOfDouble2[(1 - 1 + paramInt4)] = paramDouble3;
       i = 2;
       for (i3 = paramInt1 - 2 + 1; i3 > 0; i3--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = d10;
         i += 1;
       }
       paramArrayOfDouble2[(paramInt1 - n + 1 - 1 + paramInt4)] -= paramDouble3 * d9;
       n += 1;
     }
     paramintW.val = 1;
     i = Idamax.idamax(paramInt1, paramArrayOfDouble2, paramInt4, 1);
     Dscal.dscal(
         paramInt1,
         1.0D / Math.abs(paramArrayOfDouble2[(i - 1 + paramInt4)]),
         paramArrayOfDouble2,
         paramInt4,
         1);
   } else {
     if (paramBoolean2) {
       i = 1;
       for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = paramDouble3;
         paramArrayOfDouble3[(i - 1 + paramInt5)] = 0.0D;
         i += 1;
       }
     } else {
       d6 =
           Dlapy2.dlapy2(
               Dnrm2.dnrm2(paramInt1, paramArrayOfDouble2, paramInt4, 1),
               Dnrm2.dnrm2(paramInt1, paramArrayOfDouble3, paramInt5, 1));
       d8 = paramDouble3 * d9 / Math.max(d6, d7);
       Dscal.dscal(paramInt1, d8, paramArrayOfDouble2, paramInt4, 1);
       Dscal.dscal(paramInt1, d8, paramArrayOfDouble3, paramInt5, 1);
     }
     if (paramBoolean1) {
       paramArrayOfDouble4[(2 - 1 + (1 - 1) * paramInt7 + paramInt6)] = (-paramDouble2);
       i = 2;
       for (i2 = paramInt1 - 2 + 1; i2 > 0; i2--) {
         paramArrayOfDouble4[(i + 1 - 1 + (1 - 1) * paramInt7 + paramInt6)] = 0.0D;
         i += 1;
       }
       i = 1;
       for (i2 = paramInt1 - 1 - 1 + 1; i2 > 0; i2--) {
         d1 =
             Dlapy2.dlapy2(
                 paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)],
                 paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
         d3 = paramArrayOfDouble1[(i + 1 - 1 + (i - 1) * paramInt3 + paramInt2)];
         if ((d1 >= Math.abs(d3) ? 0 : 1) != 0) {
           d18 = paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           d17 = paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] / d3;
           paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = d3;
           paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
           i1 = i + 1;
           for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d18 * d10);
             paramArrayOfDouble4[(i1 + 1 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] - d17 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
             i1 += 1;
           }
           paramArrayOfDouble4[(i + 2 - 1 + (i - 1) * paramInt7 + paramInt6)] = (-paramDouble2);
           paramArrayOfDouble4[(i + 1 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] -=
               d17 * paramDouble2;
           paramArrayOfDouble4[(i + 2 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] +=
               d18 * paramDouble2;
         } else {
           if ((d1 != 0.0D ? 0 : 1) != 0) {
             paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] = paramDouble3;
             paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
             d1 = paramDouble3;
           }
           d3 = d3 / d1 / d1;
           d18 = paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)] * d3;
           d17 = -(paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] * d3);
           i1 = i + 1;
           for (i3 = paramInt1 - (i + 1) + 1; i3 > 0; i3--) {
             paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                     - d18 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                     + d17 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
             paramArrayOfDouble4[(i1 + 1 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] =
                 (-(d18 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)])
                     - d17 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]);
             i1 += 1;
           }
           paramArrayOfDouble4[(i + 2 - 1 + (i + 1 - 1) * paramInt7 + paramInt6)] -= paramDouble2;
         }
         paramArrayOfDouble5[(i - 1 + paramInt8)] =
             (Dasum.dasum(
                     paramInt1 - i,
                     paramArrayOfDouble4,
                     i - 1 + (i + 1 - 1) * paramInt7 + paramInt6,
                     paramInt7)
                 + Dasum.dasum(
                     paramInt1 - i,
                     paramArrayOfDouble4,
                     i + 2 - 1 + (i - 1) * paramInt7 + paramInt6,
                     1));
         i += 1;
       }
       if ((paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] != 0.0D
               ? 0
               : 1)
           != 0) {}
       if (((paramArrayOfDouble4[(paramInt1 + 1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)]
                           != 0.0D
                       ? 0
                       : 1)
                   != 0
               ? 1
               : 0)
           != 0) {
         paramArrayOfDouble4[(paramInt1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] =
             paramDouble3;
       }
       paramArrayOfDouble5[(paramInt1 - 1 + paramInt8)] = 0.0D;
       j = paramInt1;
       k = 1;
       m = -1;
     } else {
       paramArrayOfDouble4[(paramInt1 + 1 - 1 + (paramInt1 - 1) * paramInt7 + paramInt6)] =
           paramDouble2;
       i1 = 1;
       for (i2 = paramInt1 - 1 - 1 + 1; i2 > 0; i2--) {
         paramArrayOfDouble4[(paramInt1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = 0.0D;
         i1 += 1;
       }
       i1 = paramInt1;
       for (i2 = (2 - paramInt1 + -1) / -1; i2 > 0; i2--) {
         d4 = paramArrayOfDouble1[(i1 - 1 + (i1 - 1 - 1) * paramInt3 + paramInt2)];
         d2 =
             Dlapy2.dlapy2(
                 paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)],
                 paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]);
         if ((d2 >= Math.abs(d4) ? 0 : 1) != 0) {
           d18 = paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] / d4;
           d17 = paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] / d4;
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d4;
           paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = 0.0D;
           i = 1;
           for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
             d10 = paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)];
             paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] - d18 * d10);
             paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] - d17 * d10);
             paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)] = d10;
             paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)] = 0.0D;
             i += 1;
           }
           paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] = paramDouble2;
           paramArrayOfDouble4[(i1 - 1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] +=
               d17 * paramDouble2;
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] -=
               d18 * paramDouble2;
         } else {
           if ((d2 != 0.0D ? 0 : 1) != 0) {
             paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
             paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] = 0.0D;
             d2 = paramDouble3;
           }
           d4 = d4 / d2 / d2;
           d18 = paramArrayOfDouble4[(i1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] * d4;
           d17 = -(paramArrayOfDouble4[(i1 + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)] * d4);
           i = 1;
           for (i3 = i1 - 1 - 1 + 1; i3 > 0; i3--) {
             paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] =
                 (paramArrayOfDouble4[(i - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)]
                     - d18 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                     + d17 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
             paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)] =
                 (-(d18 * paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)])
                     - d17 * paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]);
             i += 1;
           }
           paramArrayOfDouble4[(i1 - 1 + (i1 - 1 - 1) * paramInt7 + paramInt6)] += paramDouble2;
         }
         paramArrayOfDouble5[(i1 - 1 + paramInt8)] =
             (Dasum.dasum(i1 - 1, paramArrayOfDouble4, 1 - 1 + (i1 - 1) * paramInt7 + paramInt6, 1)
                 + Dasum.dasum(
                     i1 - 1,
                     paramArrayOfDouble4,
                     i1 + 1 - 1 + (1 - 1) * paramInt7 + paramInt6,
                     paramInt7));
         i1 += -1;
       }
       if ((paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1)
           != 0) {}
       if (((paramArrayOfDouble4[(2 - 1 + (1 - 1) * paramInt7 + paramInt6)] != 0.0D ? 0 : 1) != 0
               ? 1
               : 0)
           != 0) {
         paramArrayOfDouble4[(1 - 1 + (1 - 1) * paramInt7 + paramInt6)] = paramDouble3;
       }
       paramArrayOfDouble5[(1 - 1 + paramInt8)] = 0.0D;
       j = 1;
       k = paramInt1;
       m = 1;
     }
     n = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       localdoubleW.val = 1.0D;
       d12 = 1.0D;
       d11 = paramDouble5;
       i = j;
       for (i3 = (k - j + m) / m; i3 > 0; i3--) {
         if ((paramArrayOfDouble5[(i - 1 + paramInt8)] <= d11 ? 0 : 1) != 0) {
           d8 = 1.0D / d12;
           Dscal.dscal(paramInt1, d8, paramArrayOfDouble2, paramInt4, 1);
           Dscal.dscal(paramInt1, d8, paramArrayOfDouble3, paramInt5, 1);
           localdoubleW.val *= d8;
           d12 = 1.0D;
           d11 = paramDouble5;
         }
         d18 = paramArrayOfDouble2[(i - 1 + paramInt4)];
         d17 = paramArrayOfDouble3[(i - 1 + paramInt5)];
         int i4;
         if (paramBoolean1) {
           i1 = i + 1;
           for (i4 = paramInt1 - (i + 1) + 1; i4 > 0; i4--) {
             d18 =
                 d18
                     - paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)]
                     + paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)];
             d17 =
                 d17
                     - paramArrayOfDouble4[(i - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)]
                     - paramArrayOfDouble4[(i1 + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)];
             i1 += 1;
           }
         } else {
           i1 = 1;
           for (i4 = i - 1 - 1 + 1; i4 > 0; i4--) {
             d18 =
                 d18
                     - paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)]
                     + paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)];
             d17 =
                 d17
                     - paramArrayOfDouble4[(i1 - 1 + (i - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble3[(i1 - 1 + paramInt5)]
                     - paramArrayOfDouble4[(i + 1 - 1 + (i1 - 1) * paramInt7 + paramInt6)]
                         * paramArrayOfDouble2[(i1 - 1 + paramInt4)];
             i1 += 1;
           }
         }
         d14 =
             Math.abs(paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)])
                 + Math.abs(paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)]);
         if ((d14 <= paramDouble4 ? 0 : 1) != 0) {
           if ((d14 >= 1.0D ? 0 : 1) != 0) {
             d15 = Math.abs(d18) + Math.abs(d17);
             if ((d15 <= d14 * paramDouble5 ? 0 : 1) != 0) {
               d8 = 1.0D / d15;
               Dscal.dscal(paramInt1, d8, paramArrayOfDouble2, paramInt4, 1);
               Dscal.dscal(paramInt1, d8, paramArrayOfDouble3, paramInt5, 1);
               d18 = paramArrayOfDouble2[(i - 1 + paramInt4)];
               d17 = paramArrayOfDouble3[(i - 1 + paramInt5)];
               localdoubleW.val *= d8;
               d12 *= d8;
             }
           }
           dladiv_adapter(
               d18,
               d17,
               paramArrayOfDouble4[(i - 1 + (i - 1) * paramInt7 + paramInt6)],
               paramArrayOfDouble4[(i + 1 - 1 + (i - 1) * paramInt7 + paramInt6)],
               paramArrayOfDouble2,
               i - 1 + paramInt4,
               paramArrayOfDouble3,
               i - 1 + paramInt5);
           d12 =
               Math.max(
                   Math.abs(paramArrayOfDouble2[(i - 1 + paramInt4)])
                       + Math.abs(paramArrayOfDouble3[(i - 1 + paramInt5)]),
                   d12);
           d11 = paramDouble5 / d12;
         } else {
           i1 = 1;
           for (i4 = paramInt1 - 1 + 1; i4 > 0; i4--) {
             paramArrayOfDouble2[(i1 - 1 + paramInt4)] = 0.0D;
             paramArrayOfDouble3[(i1 - 1 + paramInt5)] = 0.0D;
             i1 += 1;
           }
           paramArrayOfDouble2[(i - 1 + paramInt4)] = 1.0D;
           paramArrayOfDouble3[(i - 1 + paramInt5)] = 1.0D;
           localdoubleW.val = 0.0D;
           d12 = 1.0D;
           d11 = paramDouble5;
         }
         i += m;
       }
       d13 =
           Dasum.dasum(paramInt1, paramArrayOfDouble2, paramInt4, 1)
               + Dasum.dasum(paramInt1, paramArrayOfDouble3, paramInt5, 1);
       if ((d13 < d5 * localdoubleW.val ? 0 : 1) != 0) {
         break;
       }
       d19 = paramDouble3 / (d9 + 1.0D);
       paramArrayOfDouble2[(1 - 1 + paramInt4)] = paramDouble3;
       paramArrayOfDouble3[(1 - 1 + paramInt5)] = 0.0D;
       i = 2;
       for (i3 = paramInt1 - 2 + 1; i3 > 0; i3--) {
         paramArrayOfDouble2[(i - 1 + paramInt4)] = d19;
         paramArrayOfDouble3[(i - 1 + paramInt5)] = 0.0D;
         i += 1;
       }
       paramArrayOfDouble2[(paramInt1 - n + 1 - 1 + paramInt4)] -= paramDouble3 * d9;
       n += 1;
     }
     paramintW.val = 1;
     d13 = 0.0D;
     i = 1;
     for (i2 = paramInt1 - 1 + 1; i2 > 0; i2--) {
       d13 =
           Math.max(
               d13,
               Math.abs(paramArrayOfDouble2[(i - 1 + paramInt4)])
                   + Math.abs(paramArrayOfDouble3[(i - 1 + paramInt5)]));
       i += 1;
     }
     Dscal.dscal(paramInt1, 1.0D / d13, paramArrayOfDouble2, paramInt4, 1);
     Dscal.dscal(paramInt1, 1.0D / d13, paramArrayOfDouble3, paramInt5, 1);
   }
 }
Ejemplo n.º 4
0
 public static void dgeqlf(
     int paramInt1,
     int paramInt2,
     double[] paramArrayOfDouble1,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble2,
     int paramInt5,
     double[] paramArrayOfDouble3,
     int paramInt6,
     int paramInt7,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   intW localintW = new intW(0);
   int m = 0;
   int n = 0;
   int i1 = 0;
   int i2 = 0;
   int i3 = 0;
   int i4 = 0;
   int i5 = 0;
   int i6 = 0;
   int i7 = 0;
   int i8 = 0;
   int i9 = 0;
   paramintW.val = 0;
   i = paramInt7 != -1 ? 0 : 1;
   if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((paramInt2 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt4 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -4;
   }
   if ((paramintW.val != 0 ? 0 : 1) != 0) {
     n = Math.min(paramInt1, paramInt2);
     if ((n != 0 ? 0 : 1) != 0) {
       i4 = 1;
     } else {
       i6 = Ilaenv.ilaenv(1, "DGEQLF", " ", paramInt1, paramInt2, -1, -1);
       i4 = paramInt2 * i6;
     }
     paramArrayOfDouble3[(1 - 1 + paramInt6)] = i4;
     if ((paramInt7 >= Math.max(1, paramInt2) ? 0 : 1) != 0) {}
     if (((i ^ 0x1) != 0 ? 1 : 0) != 0) {
       paramintW.val = -7;
     }
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DGEQLF", -paramintW.val);
     return;
   }
   if (i != 0) {
     return;
   }
   if ((n != 0 ? 0 : 1) != 0) {
     return;
   }
   i7 = 2;
   i9 = 1;
   m = paramInt2;
   if ((i6 <= 1 ? 0 : 1) != 0) {}
   if (((i6 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {
     i9 = Math.max(0, Ilaenv.ilaenv(3, "DGEQLF", " ", paramInt1, paramInt2, -1, -1));
     if ((i9 >= n ? 0 : 1) != 0) {
       i3 = paramInt2;
       m = i3 * i6;
       if ((paramInt7 >= m ? 0 : 1) != 0) {
         i6 = paramInt7 / i3;
         i7 = Math.max(2, Ilaenv.ilaenv(2, "DGEQLF", " ", paramInt1, paramInt2, -1, -1));
       }
     }
   }
   if ((i6 < i7 ? 0 : 1) != 0) {}
   if (((i6 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {}
   if (((i9 >= n ? 0 : 1) != 0 ? 1 : 0) != 0) {
     i1 = (n - i9 - 1) / i6 * i6;
     i2 = Math.min(n, i1 + i6);
     j = n - i2 + i1 + 1;
     for (int i10 = (n - i2 + 1 - (n - i2 + i1 + 1) + -i6) / -i6; i10 > 0; i10--) {
       k = Math.min(n - j + 1, i6);
       Dgeql2.dgeql2(
           paramInt1 - n + j + k - 1,
           k,
           paramArrayOfDouble1,
           1 - 1 + (paramInt2 - n + j - 1) * paramInt4 + paramInt3,
           paramInt4,
           paramArrayOfDouble2,
           j - 1 + paramInt5,
           paramArrayOfDouble3,
           paramInt6,
           localintW);
       if ((paramInt2 - n + j <= 1 ? 0 : 1) != 0) {
         Dlarft.dlarft(
             "Backward",
             "Columnwise",
             paramInt1 - n + j + k - 1,
             k,
             paramArrayOfDouble1,
             1 - 1 + (paramInt2 - n + j - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble2,
             j - 1 + paramInt5,
             paramArrayOfDouble3,
             paramInt6,
             i3);
         Dlarfb.dlarfb(
             "Left",
             "Transpose",
             "Backward",
             "Columnwise",
             paramInt1 - n + j + k - 1,
             paramInt2 - n + j - 1,
             k,
             paramArrayOfDouble1,
             1 - 1 + (paramInt2 - n + j - 1) * paramInt4 + paramInt3,
             paramInt4,
             paramArrayOfDouble3,
             paramInt6,
             i3,
             paramArrayOfDouble1,
             paramInt3,
             paramInt4,
             paramArrayOfDouble3,
             k + 1 - 1 + paramInt6,
             i3);
       }
       j += -i6;
     }
     i5 = paramInt1 - n + j + i6 - 1;
     i8 = paramInt2 - n + j + i6 - 1;
   } else {
     i5 = paramInt1;
     i8 = paramInt2;
   }
   if ((i5 <= 0 ? 0 : 1) != 0) {}
   if (((i8 <= 0 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     Dgeql2.dgeql2(
         i5,
         i8,
         paramArrayOfDouble1,
         paramInt3,
         paramInt4,
         paramArrayOfDouble2,
         paramInt5,
         paramArrayOfDouble3,
         paramInt6,
         localintW);
   }
   paramArrayOfDouble3[(1 - 1 + paramInt6)] = m;
 }
Ejemplo n.º 5
0
 public static void dlaqr3(
     boolean paramBoolean1,
     boolean paramBoolean2,
     int paramInt1,
     int paramInt2,
     int paramInt3,
     int paramInt4,
     double[] paramArrayOfDouble1,
     int paramInt5,
     int paramInt6,
     int paramInt7,
     int paramInt8,
     double[] paramArrayOfDouble2,
     int paramInt9,
     int paramInt10,
     intW paramintW1,
     intW paramintW2,
     double[] paramArrayOfDouble3,
     int paramInt11,
     double[] paramArrayOfDouble4,
     int paramInt12,
     double[] paramArrayOfDouble5,
     int paramInt13,
     int paramInt14,
     int paramInt15,
     double[] paramArrayOfDouble6,
     int paramInt16,
     int paramInt17,
     int paramInt18,
     double[] paramArrayOfDouble7,
     int paramInt19,
     int paramInt20,
     double[] paramArrayOfDouble8,
     int paramInt21,
     int paramInt22) {
   doubleW localdoubleW1 = new doubleW(0.0D);
   doubleW localdoubleW2 = new doubleW(0.0D);
   doubleW localdoubleW3 = new doubleW(0.0D);
   doubleW localdoubleW4 = new doubleW(0.0D);
   doubleW localdoubleW5 = new doubleW(0.0D);
   doubleW localdoubleW6 = new doubleW(0.0D);
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   doubleW localdoubleW7 = new doubleW(0.0D);
   doubleW localdoubleW8 = new doubleW(0.0D);
   double d5 = 0.0D;
   doubleW localdoubleW9 = new doubleW(0.0D);
   doubleW localdoubleW10 = new doubleW(0.0D);
   double d6 = 0.0D;
   int i = 0;
   intW localintW1 = new intW(0);
   intW localintW2 = new intW(0);
   intW localintW3 = new intW(0);
   intW localintW4 = new intW(0);
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   int i2 = 0;
   int i3 = 0;
   int i4 = 0;
   int i5 = 0;
   int i6 = 0;
   int i7 = 0;
   int i8 = 0;
   int i9 = 0;
   int i10 = 0;
   int i11 = 0;
   int i12 = 0;
   k = Math.min(paramInt4, paramInt3 - paramInt2 + 1);
   if ((k > 2 ? 0 : 1) != 0) {
     i9 = 1;
   } else {
     Dgehrd.dgehrd(
         k,
         1,
         k - 1,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble8,
         paramInt21,
         paramArrayOfDouble8,
         paramInt21,
         -1,
         localintW3);
     i6 = (int) paramArrayOfDouble8[(1 - 1 + paramInt21)];
     Dorghr.dorghr(
         k,
         1,
         k - 1,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble8,
         paramInt21,
         paramArrayOfDouble8,
         paramInt21,
         -1,
         localintW3);
     i7 = (int) paramArrayOfDouble8[(1 - 1 + paramInt21)];
     Dlaqr4.dlaqr4(
         true,
         true,
         k,
         1,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble3,
         paramInt11,
         paramArrayOfDouble4,
         paramInt12,
         1,
         k,
         paramArrayOfDouble5,
         paramInt13,
         paramInt14,
         paramArrayOfDouble8,
         paramInt21,
         -1,
         localintW4);
     i8 = (int) paramArrayOfDouble8[(1 - 1 + paramInt21)];
     i9 = Math.max(k + Math.max(i6, i7), i8);
   }
   if ((paramInt22 != -1 ? 0 : 1) != 0) {
     paramArrayOfDouble8[(1 - 1 + paramInt21)] = i9;
     return;
   }
   paramintW1.val = 0;
   paramintW2.val = 0;
   if ((paramInt2 <= paramInt3 ? 0 : 1) != 0) {
     return;
   }
   if ((paramInt4 >= 1 ? 0 : 1) != 0) {
     return;
   }
   localdoubleW8.val = Dlamch.dlamch("SAFE MINIMUM");
   localdoubleW7.val = (1.0D / localdoubleW8.val);
   Dlabad.dlabad(localdoubleW8, localdoubleW7);
   d6 = Dlamch.dlamch("PRECISION");
   d5 = localdoubleW8.val * (paramInt1 / d6);
   k = Math.min(paramInt4, paramInt3 - paramInt2 + 1);
   i4 = paramInt3 - k + 1;
   if ((i4 != paramInt2 ? 0 : 1) != 0) {
     d4 = 0.0D;
   } else {
     d4 = paramArrayOfDouble1[(i4 - 1 + (i4 - 1 - 1) * paramInt6 + paramInt5)];
   }
   if ((paramInt3 != i4 ? 0 : 1) != 0) {
     paramArrayOfDouble3[(i4 - 1 + paramInt11)] =
         paramArrayOfDouble1[(i4 - 1 + (i4 - 1) * paramInt6 + paramInt5)];
     paramArrayOfDouble4[(i4 - 1 + paramInt12)] = 0.0D;
     paramintW1.val = 1;
     paramintW2.val = 0;
     if ((Math.abs(d4)
                 > Math.max(
                     d5,
                     d6
                         * Math.abs(
                             paramArrayOfDouble1[(i4 - 1 + (i4 - 1) * paramInt6 + paramInt5)]))
             ? 0
             : 1)
         != 0) {
       paramintW1.val = 0;
       paramintW2.val = 1;
       if ((i4 <= paramInt2 ? 0 : 1) != 0) {
         paramArrayOfDouble1[(i4 - 1 + (i4 - 1 - 1) * paramInt6 + paramInt5)] = 0.0D;
       }
     }
     return;
   }
   Dlacpy.dlacpy(
       "U",
       k,
       k,
       paramArrayOfDouble1,
       i4 - 1 + (i4 - 1) * paramInt6 + paramInt5,
       paramInt6,
       paramArrayOfDouble6,
       paramInt16,
       paramInt17);
   Dcopy.dcopy(
       k - 1,
       paramArrayOfDouble1,
       i4 + 1 - 1 + (i4 - 1) * paramInt6 + paramInt5,
       paramInt6 + 1,
       paramArrayOfDouble6,
       2 - 1 + (1 - 1) * paramInt17 + paramInt16,
       paramInt17 + 1);
   Dlaset.dlaset("A", k, k, 0.0D, 1.0D, paramArrayOfDouble5, paramInt13, paramInt14);
   i10 = Ilaenv.ilaenv(12, "DLAQR3", "SV", k, 1, k, paramInt22);
   if ((k <= i10 ? 0 : 1) != 0) {
     Dlaqr4.dlaqr4(
         true,
         true,
         k,
         1,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble3,
         i4 - 1 + paramInt11,
         paramArrayOfDouble4,
         i4 - 1 + paramInt12,
         1,
         k,
         paramArrayOfDouble5,
         paramInt13,
         paramInt14,
         paramArrayOfDouble8,
         paramInt21,
         paramInt22,
         localintW4);
   } else {
     Dlahqr.dlahqr(
         true,
         true,
         k,
         1,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble3,
         i4 - 1 + paramInt11,
         paramArrayOfDouble4,
         i4 - 1 + paramInt12,
         1,
         k,
         paramArrayOfDouble5,
         paramInt13,
         paramInt14,
         localintW4);
   }
   j = 1;
   for (int i13 = k - 3 - 1 + 1; i13 > 0; i13--) {
     paramArrayOfDouble6[(j + 2 - 1 + (j - 1) * paramInt17 + paramInt16)] = 0.0D;
     paramArrayOfDouble6[(j + 3 - 1 + (j - 1) * paramInt17 + paramInt16)] = 0.0D;
     j += 1;
   }
   if ((k <= 2 ? 0 : 1) != 0) {
     paramArrayOfDouble6[(k - 1 + (k - 2 - 1) * paramInt17 + paramInt16)] = 0.0D;
   }
   paramintW1.val = k;
   localintW4.val += 1;
   while ((localintW2.val > paramintW1.val ? 0 : 1) != 0) {
     if ((paramintW1.val != 1 ? 0 : 1) != 0) {
       i11 = 0;
     } else {
       i11 =
           paramArrayOfDouble6[
                       (paramintW1.val - 1 + (paramintW1.val - 1 - 1) * paramInt17 + paramInt16)]
                   == 0.0D
               ? 0
               : 1;
     }
     if ((i11 ^ 0x1) != 0) {
       d3 =
           Math.abs(
               paramArrayOfDouble6[
                   (paramintW1.val - 1 + (paramintW1.val - 1) * paramInt17 + paramInt16)]);
       if ((d3 != 0.0D ? 0 : 1) != 0) {
         d3 = Math.abs(d4);
       }
       if ((Math.abs(
                       d4
                           * paramArrayOfDouble5[
                               (1 - 1 + (paramintW1.val - 1) * paramInt14 + paramInt13)])
                   > Math.max(d5, d6 * d3)
               ? 0
               : 1)
           != 0) {
         paramintW1.val -= 1;
       } else {
         localintW1.val = paramintW1.val;
         Dtrexc.dtrexc(
             "V",
             k,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             localintW1,
             localintW2,
             paramArrayOfDouble8,
             paramInt21,
             localintW3);
         localintW2.val += 1;
       }
     } else {
       d3 =
           Math.abs(
                   paramArrayOfDouble6[
                       (paramintW1.val - 1 + (paramintW1.val - 1) * paramInt17 + paramInt16)])
               + Math.sqrt(
                       Math.abs(
                           paramArrayOfDouble6[
                               (paramintW1.val
                                   - 1
                                   + (paramintW1.val - 1 - 1) * paramInt17
                                   + paramInt16)]))
                   * Math.sqrt(
                       Math.abs(
                           paramArrayOfDouble6[
                               (paramintW1.val
                                   - 1
                                   - 1
                                   + (paramintW1.val - 1) * paramInt17
                                   + paramInt16)]));
       if ((d3 != 0.0D ? 0 : 1) != 0) {
         d3 = Math.abs(d4);
       }
       if ((Math.max(
                       Math.abs(
                           d4
                               * paramArrayOfDouble5[
                                   (1 - 1 + (paramintW1.val - 1) * paramInt14 + paramInt13)]),
                       Math.abs(
                           d4
                               * paramArrayOfDouble5[
                                   (1 - 1 + (paramintW1.val - 1 - 1) * paramInt14 + paramInt13)]))
                   > Math.max(d5, d6 * d3)
               ? 0
               : 1)
           != 0) {
         paramintW1.val -= 2;
       } else {
         localintW1.val = paramintW1.val;
         Dtrexc.dtrexc(
             "V",
             k,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             localintW1,
             localintW2,
             paramArrayOfDouble8,
             paramInt21,
             localintW3);
         localintW2.val += 2;
       }
     }
   }
   if ((paramintW1.val != 0 ? 0 : 1) != 0) {
     d4 = 0.0D;
   }
   if ((paramintW1.val >= k ? 0 : 1) != 0) {
     i12 = 0;
     i = paramintW1.val + 1;
     while (i12 == 0) {
       i12 = 1;
       i1 = i - 1;
       i = localintW4.val + 1;
       if ((i != paramintW1.val ? 0 : 1) != 0) {
         m = i + 1;
       } else if ((paramArrayOfDouble6[(i + 1 - 1 + (i - 1) * paramInt17 + paramInt16)] != 0.0D
               ? 0
               : 1)
           != 0) {
         m = i + 1;
       } else {
         m = i + 2;
       }
       while ((m > i1 ? 0 : 1) != 0) {
         if ((m != i + 1 ? 0 : 1) != 0) {
           d1 = Math.abs(paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)]);
         } else {
           d1 =
               Math.abs(paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)])
                   + Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (i + 1 - 1 + (i - 1) * paramInt17 + paramInt16)]))
                       * Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (i - 1 + (i + 1 - 1) * paramInt17 + paramInt16)]));
         }
         if ((m != i1 ? 0 : 1) != 0) {
           d2 = Math.abs(paramArrayOfDouble6[(m - 1 + (m - 1) * paramInt17 + paramInt16)]);
         } else if ((paramArrayOfDouble6[(m + 1 - 1 + (m - 1) * paramInt17 + paramInt16)] != 0.0D
                 ? 0
                 : 1)
             != 0) {
           d2 = Math.abs(paramArrayOfDouble6[(m - 1 + (m - 1) * paramInt17 + paramInt16)]);
         } else {
           d2 =
               Math.abs(paramArrayOfDouble6[(m - 1 + (m - 1) * paramInt17 + paramInt16)])
                   + Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (m + 1 - 1 + (m - 1) * paramInt17 + paramInt16)]))
                       * Math.sqrt(
                           Math.abs(
                               paramArrayOfDouble6[
                                   (m - 1 + (m + 1 - 1) * paramInt17 + paramInt16)]));
         }
         if ((d1 < d2 ? 0 : 1) != 0) {
           i = m;
         } else {
           i12 = 0;
           localintW1.val = i;
           localintW2.val = m;
           Dtrexc.dtrexc(
               "V",
               k,
               paramArrayOfDouble6,
               paramInt16,
               paramInt17,
               paramArrayOfDouble5,
               paramInt13,
               paramInt14,
               localintW1,
               localintW2,
               paramArrayOfDouble8,
               paramInt21,
               localintW3);
           if ((localintW3.val != 0 ? 0 : 1) != 0) {
             i = localintW2.val;
           } else {
             i = m;
           }
         }
         if ((i != i1 ? 0 : 1) != 0) {
           m = i + 1;
         } else if ((paramArrayOfDouble6[(i + 1 - 1 + (i - 1) * paramInt17 + paramInt16)] != 0.0D
                 ? 0
                 : 1)
             != 0) {
           m = i + 1;
         } else {
           m = i + 2;
         }
       }
     }
   }
   i = k;
   while ((i < localintW4.val + 1 ? 0 : 1) != 0) {
     if ((i != localintW4.val + 1 ? 0 : 1) != 0) {
       paramArrayOfDouble3[(i4 + i - 1 - 1 + paramInt11)] =
           paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)];
       paramArrayOfDouble4[(i4 + i - 1 - 1 + paramInt12)] = 0.0D;
       i -= 1;
     } else if ((paramArrayOfDouble6[(i - 1 + (i - 1 - 1) * paramInt17 + paramInt16)] != 0.0D
             ? 0
             : 1)
         != 0) {
       paramArrayOfDouble3[(i4 + i - 1 - 1 + paramInt11)] =
           paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)];
       paramArrayOfDouble4[(i4 + i - 1 - 1 + paramInt12)] = 0.0D;
       i -= 1;
     } else {
       localdoubleW1.val =
           paramArrayOfDouble6[(i - 1 - 1 + (i - 1 - 1) * paramInt17 + paramInt16)];
       localdoubleW4.val = paramArrayOfDouble6[(i - 1 + (i - 1 - 1) * paramInt17 + paramInt16)];
       localdoubleW2.val = paramArrayOfDouble6[(i - 1 - 1 + (i - 1) * paramInt17 + paramInt16)];
       localdoubleW6.val = paramArrayOfDouble6[(i - 1 + (i - 1) * paramInt17 + paramInt16)];
       dlanv2_adapter(
           localdoubleW1,
           localdoubleW2,
           localdoubleW4,
           localdoubleW6,
           paramArrayOfDouble3,
           i4 + i - 2 - 1 + paramInt11,
           paramArrayOfDouble4,
           i4 + i - 2 - 1 + paramInt12,
           paramArrayOfDouble3,
           i4 + i - 1 - 1 + paramInt11,
           paramArrayOfDouble4,
           i4 + i - 1 - 1 + paramInt12,
           localdoubleW5,
           localdoubleW9);
       i -= 2;
     }
   }
   if ((paramintW1.val >= k ? 0 : 1) == 0) {}
   if (((d4 != 0.0D ? 0 : 1) == 0 ? 0 : 1) != 0) {
     if ((paramintW1.val <= 1 ? 0 : 1) != 0) {}
     if (((d4 == 0.0D ? 0 : 1) != 0 ? 1 : 0) != 0) {
       Dcopy.dcopy(
           paramintW1.val,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           paramArrayOfDouble8,
           paramInt21,
           1);
       localdoubleW3.val = paramArrayOfDouble8[(1 - 1 + paramInt21)];
       Dlarfg.dlarfg(
           paramintW1.val,
           localdoubleW3,
           paramArrayOfDouble8,
           2 - 1 + paramInt21,
           1,
           localdoubleW10);
       paramArrayOfDouble8[(1 - 1 + paramInt21)] = 1.0D;
       Dlaset.dlaset(
           "L",
           k - 2,
           k - 2,
           0.0D,
           0.0D,
           paramArrayOfDouble6,
           3 - 1 + (1 - 1) * paramInt17 + paramInt16,
           paramInt17);
       Dlarf.dlarf(
           "L",
           paramintW1.val,
           k,
           paramArrayOfDouble8,
           paramInt21,
           1,
           localdoubleW10.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21);
       Dlarf.dlarf(
           "R",
           paramintW1.val,
           paramintW1.val,
           paramArrayOfDouble8,
           paramInt21,
           1,
           localdoubleW10.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21);
       Dlarf.dlarf(
           "R",
           k,
           paramintW1.val,
           paramArrayOfDouble8,
           paramInt21,
           1,
           localdoubleW10.val,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21);
       Dgehrd.dgehrd(
           k,
           1,
           paramintW1.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           paramInt21,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21,
           paramInt22 - k,
           localintW3);
     }
     if ((i4 <= 1 ? 0 : 1) != 0) {
       paramArrayOfDouble1[(i4 - 1 + (i4 - 1 - 1) * paramInt6 + paramInt5)] =
           (d4 * paramArrayOfDouble5[(1 - 1 + (1 - 1) * paramInt14 + paramInt13)]);
     }
     Dlacpy.dlacpy(
         "U",
         k,
         k,
         paramArrayOfDouble6,
         paramInt16,
         paramInt17,
         paramArrayOfDouble1,
         i4 - 1 + (i4 - 1) * paramInt6 + paramInt5,
         paramInt6);
     Dcopy.dcopy(
         k - 1,
         paramArrayOfDouble6,
         2 - 1 + (1 - 1) * paramInt17 + paramInt16,
         paramInt17 + 1,
         paramArrayOfDouble1,
         i4 + 1 - 1 + (i4 - 1) * paramInt6 + paramInt5,
         paramInt6 + 1);
     if ((paramintW1.val <= 1 ? 0 : 1) != 0) {}
     if (((d4 == 0.0D ? 0 : 1) != 0 ? 1 : 0) != 0) {
       Dorghr.dorghr(
           k,
           1,
           paramintW1.val,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           paramArrayOfDouble8,
           paramInt21,
           paramArrayOfDouble8,
           k + 1 - 1 + paramInt21,
           paramInt22 - k,
           localintW3);
       Dgemm.dgemm(
           "N",
           "N",
           k,
           paramintW1.val,
           paramintW1.val,
           1.0D,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           paramArrayOfDouble6,
           paramInt16,
           paramInt17,
           0.0D,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20);
       Dlacpy.dlacpy(
           "A",
           k,
           paramintW1.val,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14);
     }
     if (paramBoolean1) {
       i5 = 1;
     } else {
       i5 = paramInt2;
     }
     i3 = i5;
     for (int i13 = (i4 - 1 - i5 + paramInt18) / paramInt18; i13 > 0; i13--) {
       i2 = Math.min(paramInt18, i4 - i3);
       Dgemm.dgemm(
           "N",
           "N",
           i2,
           k,
           k,
           1.0D,
           paramArrayOfDouble1,
           i3 - 1 + (i4 - 1) * paramInt6 + paramInt5,
           paramInt6,
           paramArrayOfDouble5,
           paramInt13,
           paramInt14,
           0.0D,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20);
       Dlacpy.dlacpy(
           "A",
           i2,
           k,
           paramArrayOfDouble7,
           paramInt19,
           paramInt20,
           paramArrayOfDouble1,
           i3 - 1 + (i4 - 1) * paramInt6 + paramInt5,
           paramInt6);
       i3 += paramInt18;
     }
     if (paramBoolean1) {
       n = paramInt3 + 1;
       for (int i13 = (paramInt1 - (paramInt3 + 1) + paramInt15) / paramInt15; i13 > 0; i13--) {
         i2 = Math.min(paramInt15, paramInt1 - n + 1);
         Dgemm.dgemm(
             "C",
             "N",
             k,
             i2,
             k,
             1.0D,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             paramArrayOfDouble1,
             i4 - 1 + (n - 1) * paramInt6 + paramInt5,
             paramInt6,
             0.0D,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17);
         Dlacpy.dlacpy(
             "A",
             k,
             i2,
             paramArrayOfDouble6,
             paramInt16,
             paramInt17,
             paramArrayOfDouble1,
             i4 - 1 + (n - 1) * paramInt6 + paramInt5,
             paramInt6);
         n += paramInt15;
       }
     }
     if (paramBoolean2) {
       i3 = paramInt7;
       for (int i13 = (paramInt8 - paramInt7 + paramInt18) / paramInt18; i13 > 0; i13--) {
         i2 = Math.min(paramInt18, paramInt8 - i3 + 1);
         Dgemm.dgemm(
             "N",
             "N",
             i2,
             k,
             k,
             1.0D,
             paramArrayOfDouble2,
             i3 - 1 + (i4 - 1) * paramInt10 + paramInt9,
             paramInt10,
             paramArrayOfDouble5,
             paramInt13,
             paramInt14,
             0.0D,
             paramArrayOfDouble7,
             paramInt19,
             paramInt20);
         Dlacpy.dlacpy(
             "A",
             i2,
             k,
             paramArrayOfDouble7,
             paramInt19,
             paramInt20,
             paramArrayOfDouble2,
             i3 - 1 + (i4 - 1) * paramInt10 + paramInt9,
             paramInt10);
         i3 += paramInt18;
       }
     }
   }
   paramintW2.val = (k - paramintW1.val);
   paramintW1.val -= localintW4.val;
   paramArrayOfDouble8[(1 - 1 + paramInt21)] = i9;
 }
Ejemplo n.º 6
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));
   }
 }
Ejemplo n.º 7
0
 public static void shseqr(
     String paramString1,
     String paramString2,
     int paramInt1,
     int paramInt2,
     int paramInt3,
     float[] paramArrayOfFloat1,
     int paramInt4,
     int paramInt5,
     float[] paramArrayOfFloat2,
     int paramInt6,
     float[] paramArrayOfFloat3,
     int paramInt7,
     float[] paramArrayOfFloat4,
     int paramInt8,
     int paramInt9,
     float[] paramArrayOfFloat5,
     int paramInt10,
     int paramInt11,
     intW paramintW) {
   float[] arrayOfFloat1 = new float[49 * 49];
   float[] arrayOfFloat2 = new float[49];
   int i = 0;
   int j = 0;
   int k = 0;
   boolean bool1 = false;
   int m = 0;
   boolean bool2 = false;
   boolean bool3 = false;
   bool2 = Lsame.lsame(paramString1, "S");
   bool1 = Lsame.lsame(paramString2, "I");
   bool3 = (bool1) || (Lsame.lsame(paramString2, "V"));
   paramArrayOfFloat5[(1 - 1 + paramInt10)] = Math.max(1, paramInt1);
   m = paramInt11 != -1 ? 0 : 1;
   paramintW.val = 0;
   if ((((Lsame.lsame(paramString1, "E") ^ true)) && ((bool2 ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -1;
   } else if ((((Lsame.lsame(paramString2, "N") ^ true)) && ((bool3 ^ true)) ? 1 : 0) != 0) {
     paramintW.val = -2;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else {
     if ((paramInt2 >= 1 ? 0 : 1) == 0) {}
     if (((paramInt2 <= Math.max(1, paramInt1) ? 0 : 1) == 0 ? 0 : 1) != 0) {
       paramintW.val = -4;
     } else {
       if ((paramInt3 >= Math.min(paramInt2, paramInt1) ? 0 : 1) == 0) {}
       if (((paramInt3 <= paramInt1 ? 0 : 1) == 0 ? 0 : 1) != 0) {
         paramintW.val = -5;
       } else if ((paramInt5 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
         paramintW.val = -7;
       } else {
         if ((paramInt9 >= 1 ? 0 : 1) == 0) {
           if (!bool3) {}
         }
         if ((((paramInt9 >= Math.max(1, paramInt1) ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
           paramintW.val = -11;
         } else {
           if ((paramInt11 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {}
           if (((m ^ 0x1) != 0 ? 1 : 0) != 0) {
             paramintW.val = -13;
           }
         }
       }
     }
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SHSEQR", -paramintW.val);
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   if (m != 0) {
     Slaqr0.slaqr0(
         bool2,
         bool3,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfFloat1,
         paramInt4,
         paramInt5,
         paramArrayOfFloat2,
         paramInt6,
         paramArrayOfFloat3,
         paramInt7,
         paramInt2,
         paramInt3,
         paramArrayOfFloat4,
         paramInt8,
         paramInt9,
         paramArrayOfFloat5,
         paramInt10,
         paramInt11,
         paramintW);
     paramArrayOfFloat5[(1 - 1 + paramInt10)] =
         Math.max(Math.max(1, paramInt1), paramArrayOfFloat5[(1 - 1 + paramInt10)]);
     return;
   }
   i = 1;
   for (int n = paramInt2 - 1 - 1 + 1; n > 0; n--) {
     paramArrayOfFloat2[(i - 1 + paramInt6)] =
         paramArrayOfFloat1[(i - 1 + (i - 1) * paramInt5 + paramInt4)];
     paramArrayOfFloat3[(i - 1 + paramInt7)] = 0.0F;
     i += 1;
   }
   i = paramInt3 + 1;
   for (n = paramInt1 - (paramInt3 + 1) + 1; n > 0; n--) {
     paramArrayOfFloat2[(i - 1 + paramInt6)] =
         paramArrayOfFloat1[(i - 1 + (i - 1) * paramInt5 + paramInt4)];
     paramArrayOfFloat3[(i - 1 + paramInt7)] = 0.0F;
     i += 1;
   }
   if (bool1) {
     Slaset.slaset(
         "A", paramInt1, paramInt1, 0.0F, 1.0F, paramArrayOfFloat4, paramInt8, paramInt9);
   }
   if ((paramInt2 != paramInt3 ? 0 : 1) != 0) {
     paramArrayOfFloat2[(paramInt2 - 1 + paramInt6)] =
         paramArrayOfFloat1[(paramInt2 - 1 + (paramInt2 - 1) * paramInt5 + paramInt4)];
     paramArrayOfFloat3[(paramInt2 - 1 + paramInt7)] = 0.0F;
     return;
   }
   k =
       Ilaenv.ilaenv(
           1,
           "SHSEQR",
           paramString1.substring(1 + -1, 1) + paramString2.substring(1 + -1, 1),
           paramInt1,
           paramInt2,
           paramInt3,
           paramInt11);
   k = Math.max(11, k);
   if ((paramInt1 <= k ? 0 : 1) != 0) {
     Slaqr0.slaqr0(
         bool2,
         bool3,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfFloat1,
         paramInt4,
         paramInt5,
         paramArrayOfFloat2,
         paramInt6,
         paramArrayOfFloat3,
         paramInt7,
         paramInt2,
         paramInt3,
         paramArrayOfFloat4,
         paramInt8,
         paramInt9,
         paramArrayOfFloat5,
         paramInt10,
         paramInt11,
         paramintW);
   } else {
     Slahqr.slahqr(
         bool2,
         bool3,
         paramInt1,
         paramInt2,
         paramInt3,
         paramArrayOfFloat1,
         paramInt4,
         paramInt5,
         paramArrayOfFloat2,
         paramInt6,
         paramArrayOfFloat3,
         paramInt7,
         paramInt2,
         paramInt3,
         paramArrayOfFloat4,
         paramInt8,
         paramInt9,
         paramintW);
     if ((paramintW.val <= 0 ? 0 : 1) != 0) {
       j = paramintW.val;
       if ((paramInt1 < 49 ? 0 : 1) != 0) {
         Slaqr0.slaqr0(
             bool2,
             bool3,
             paramInt1,
             paramInt2,
             j,
             paramArrayOfFloat1,
             paramInt4,
             paramInt5,
             paramArrayOfFloat2,
             paramInt6,
             paramArrayOfFloat3,
             paramInt7,
             paramInt2,
             paramInt3,
             paramArrayOfFloat4,
             paramInt8,
             paramInt9,
             paramArrayOfFloat5,
             paramInt10,
             paramInt11,
             paramintW);
       } else {
         Slacpy.slacpy(
             "A",
             paramInt1,
             paramInt1,
             paramArrayOfFloat1,
             paramInt4,
             paramInt5,
             arrayOfFloat1,
             0,
             49);
         arrayOfFloat1[(paramInt1 + 1 - 1 + (paramInt1 - 1) * 49)] = 0.0F;
         Slaset.slaset(
             "A",
             49,
             49 - paramInt1,
             0.0F,
             0.0F,
             arrayOfFloat1,
             1 - 1 + (paramInt1 + 1 - 1) * 49,
             49);
         Slaqr0.slaqr0(
             bool2,
             bool3,
             49,
             paramInt2,
             j,
             arrayOfFloat1,
             0,
             49,
             paramArrayOfFloat2,
             paramInt6,
             paramArrayOfFloat3,
             paramInt7,
             paramInt2,
             paramInt3,
             paramArrayOfFloat4,
             paramInt8,
             paramInt9,
             arrayOfFloat2,
             0,
             49,
             paramintW);
         if (!bool2) {}
         if (((paramintW.val == 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {
           Slacpy.slacpy(
               "A",
               paramInt1,
               paramInt1,
               arrayOfFloat1,
               0,
               49,
               paramArrayOfFloat1,
               paramInt4,
               paramInt5);
         }
       }
     }
   }
   if (!bool2) {}
   if (((paramintW.val == 0 ? 0 : 1) == 0 ? 0 : 1) != 0) {}
   if (((paramInt1 <= 2 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     Slaset.slaset(
         "L",
         paramInt1 - 2,
         paramInt1 - 2,
         0.0F,
         0.0F,
         paramArrayOfFloat1,
         3 - 1 + (1 - 1) * paramInt5 + paramInt4,
         paramInt5);
   }
   paramArrayOfFloat5[(1 - 1 + paramInt10)] =
       Math.max(Math.max(1, paramInt1), paramArrayOfFloat5[(1 - 1 + paramInt10)]);
 }
Ejemplo n.º 8
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;
 }
Ejemplo n.º 9
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;
     }
   }
 }
Ejemplo n.º 10
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));
   }
 }
Ejemplo n.º 11
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);
     }
   }
 }
Ejemplo n.º 12
0
 public static void sgegs(
     String paramString1,
     String paramString2,
     int paramInt1,
     float[] paramArrayOfFloat1,
     int paramInt2,
     int paramInt3,
     float[] paramArrayOfFloat2,
     int paramInt4,
     int paramInt5,
     float[] paramArrayOfFloat3,
     int paramInt6,
     float[] paramArrayOfFloat4,
     int paramInt7,
     float[] paramArrayOfFloat5,
     int paramInt8,
     float[] paramArrayOfFloat6,
     int paramInt9,
     int paramInt10,
     float[] paramArrayOfFloat7,
     int paramInt11,
     int paramInt12,
     float[] paramArrayOfFloat8,
     int paramInt13,
     int paramInt14,
     intW paramintW) {
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   intW localintW1 = new intW(0);
   intW localintW2 = new intW(0);
   int i2 = 0;
   int i3 = 0;
   int i4 = 0;
   intW localintW3 = new intW(0);
   int i5 = 0;
   int i6 = 0;
   int i7 = 0;
   int i8 = 0;
   int i9 = 0;
   int i10 = 0;
   int i11 = 0;
   int i12 = 0;
   int i13 = 0;
   int i14 = 0;
   int i15 = 0;
   float f1 = 0.0F;
   float f2 = 0.0F;
   float f3 = 0.0F;
   float f4 = 0.0F;
   float f5 = 0.0F;
   float f6 = 0.0F;
   float f7 = 0.0F;
   float f8 = 0.0F;
   if (Lsame.lsame(paramString1, "N")) {
     i2 = 1;
     k = 0;
   } else if (Lsame.lsame(paramString1, "V")) {
     i2 = 2;
     k = 1;
   } else {
     i2 = -1;
     k = 0;
   }
   if (Lsame.lsame(paramString2, "N")) {
     i3 = 1;
     m = 0;
   } else if (Lsame.lsame(paramString2, "V")) {
     i3 = 2;
     m = 1;
   } else {
     i3 = -1;
     m = 0;
   }
   i10 = Math.max(4 * paramInt1, 1);
   i11 = i10;
   paramArrayOfFloat8[(1 - 1 + paramInt13)] = i11;
   n = paramInt14 != -1 ? 0 : 1;
   paramintW.val = 0;
   if ((i2 > 0 ? 0 : 1) != 0) {
     paramintW.val = -1;
   } else if ((i3 > 0 ? 0 : 1) != 0) {
     paramintW.val = -2;
   } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
     paramintW.val = -3;
   } else if ((paramInt3 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -5;
   } else if ((paramInt5 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
     paramintW.val = -7;
   } else {
     if ((paramInt10 >= 1 ? 0 : 1) == 0) {
       if (k == 0) {}
     }
     if ((((paramInt10 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
       paramintW.val = -12;
     } else {
       if ((paramInt12 >= 1 ? 0 : 1) == 0) {
         if (m == 0) {}
       }
       if ((((paramInt12 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
         paramintW.val = -14;
       } else {
         if ((paramInt14 >= i10 ? 0 : 1) != 0) {}
         if (((n ^ 0x1) != 0 ? 1 : 0) != 0) {
           paramintW.val = -16;
         }
       }
     }
   }
   if ((paramintW.val != 0 ? 0 : 1) != 0) {
     i13 = Ilaenv.ilaenv(1, "SGEQRF", " ", paramInt1, paramInt1, -1, -1);
     i14 = Ilaenv.ilaenv(1, "SORMQR", " ", paramInt1, paramInt1, paramInt1, -1);
     i15 = Ilaenv.ilaenv(1, "SORGQR", " ", paramInt1, paramInt1, paramInt1, -1);
     i12 = Util.max(i13, i14, i15);
     i9 = 2 * paramInt1 + paramInt1 * (i12 + 1);
     paramArrayOfFloat8[(1 - 1 + paramInt13)] = i9;
   }
   if ((paramintW.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("SGEGS ", -paramintW.val);
     return;
   }
   if (n != 0) {
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   f6 = Slamch.slamch("E") * Slamch.slamch("B");
   f7 = Slamch.slamch("S");
   f8 = paramInt1 * f7 / f6;
   f3 = 1.0F / f8;
   f1 =
       Slange.slange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfFloat1,
           paramInt2,
           paramInt3,
           paramArrayOfFloat8,
           paramInt13);
   i = 0;
   if ((f1 <= 0.0F ? 0 : 1) != 0) {}
   if (((f1 >= f8 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     f2 = f8;
     i = 1;
   } else if ((f1 <= f3 ? 0 : 1) != 0) {
     f2 = f3;
     i = 1;
   }
   if (i != 0) {
     Slascl.slascl(
         "G",
         -1,
         -1,
         f1,
         f2,
         paramInt1,
         paramInt1,
         paramArrayOfFloat1,
         paramInt2,
         paramInt3,
         localintW2);
     if ((localintW2.val == 0 ? 0 : 1) != 0) {
       paramintW.val = (paramInt1 + 9);
       return;
     }
   }
   f4 =
       Slange.slange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfFloat2,
           paramInt4,
           paramInt5,
           paramArrayOfFloat8,
           paramInt13);
   j = 0;
   if ((f4 <= 0.0F ? 0 : 1) != 0) {}
   if (((f4 >= f8 ? 0 : 1) != 0 ? 1 : 0) != 0) {
     f5 = f8;
     j = 1;
   } else if ((f4 <= f3 ? 0 : 1) != 0) {
     f5 = f3;
     j = 1;
   }
   if (j != 0) {
     Slascl.slascl(
         "G",
         -1,
         -1,
         f4,
         f5,
         paramInt1,
         paramInt1,
         paramArrayOfFloat2,
         paramInt4,
         paramInt5,
         localintW2);
     if ((localintW2.val == 0 ? 0 : 1) != 0) {
       paramintW.val = (paramInt1 + 9);
       return;
     }
   }
   i4 = 1;
   i5 = paramInt1 + 1;
   i8 = i5 + paramInt1;
   Sggbal.sggbal(
       "P",
       paramInt1,
       paramArrayOfFloat1,
       paramInt2,
       paramInt3,
       paramArrayOfFloat2,
       paramInt4,
       paramInt5,
       localintW3,
       localintW1,
       paramArrayOfFloat8,
       i4 - 1 + paramInt13,
       paramArrayOfFloat8,
       i5 - 1 + paramInt13,
       paramArrayOfFloat8,
       i8 - 1 + paramInt13,
       localintW2);
   if ((localintW2.val == 0 ? 0 : 1) != 0) {
     paramintW.val = (paramInt1 + 1);
   } else {
     i6 = localintW1.val + 1 - localintW3.val;
     i1 = paramInt1 + 1 - localintW3.val;
     i7 = i8;
     i8 = i7 + i6;
     Sgeqrf.sgeqrf(
         i6,
         i1,
         paramArrayOfFloat2,
         localintW3.val - 1 + (localintW3.val - 1) * paramInt5 + paramInt4,
         paramInt5,
         paramArrayOfFloat8,
         i7 - 1 + paramInt13,
         paramArrayOfFloat8,
         i8 - 1 + paramInt13,
         paramInt14 + 1 - i8,
         localintW2);
     if ((localintW2.val < 0 ? 0 : 1) != 0) {
       i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
     }
     if ((localintW2.val == 0 ? 0 : 1) != 0) {
       paramintW.val = (paramInt1 + 2);
     } else {
       Sormqr.sormqr(
           "L",
           "T",
           i6,
           i1,
           i6,
           paramArrayOfFloat2,
           localintW3.val - 1 + (localintW3.val - 1) * paramInt5 + paramInt4,
           paramInt5,
           paramArrayOfFloat8,
           i7 - 1 + paramInt13,
           paramArrayOfFloat1,
           localintW3.val - 1 + (localintW3.val - 1) * paramInt3 + paramInt2,
           paramInt3,
           paramArrayOfFloat8,
           i8 - 1 + paramInt13,
           paramInt14 + 1 - i8,
           localintW2);
       if ((localintW2.val < 0 ? 0 : 1) != 0) {
         i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
       }
       if ((localintW2.val == 0 ? 0 : 1) != 0) {
         paramintW.val = (paramInt1 + 3);
       } else {
         if (k != 0) {
           Slaset.slaset(
               "Full",
               paramInt1,
               paramInt1,
               0.0F,
               1.0F,
               paramArrayOfFloat6,
               paramInt9,
               paramInt10);
           Slacpy.slacpy(
               "L",
               i6 - 1,
               i6 - 1,
               paramArrayOfFloat2,
               localintW3.val + 1 - 1 + (localintW3.val - 1) * paramInt5 + paramInt4,
               paramInt5,
               paramArrayOfFloat6,
               localintW3.val + 1 - 1 + (localintW3.val - 1) * paramInt10 + paramInt9,
               paramInt10);
           Sorgqr.sorgqr(
               i6,
               i6,
               i6,
               paramArrayOfFloat6,
               localintW3.val - 1 + (localintW3.val - 1) * paramInt10 + paramInt9,
               paramInt10,
               paramArrayOfFloat8,
               i7 - 1 + paramInt13,
               paramArrayOfFloat8,
               i8 - 1 + paramInt13,
               paramInt14 + 1 - i8,
               localintW2);
           if ((localintW2.val < 0 ? 0 : 1) != 0) {
             i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
           }
           if ((localintW2.val == 0 ? 0 : 1) != 0) {
             paramintW.val = (paramInt1 + 4);
             break label2389;
           }
         }
         if (m != 0) {
           Slaset.slaset(
               "Full",
               paramInt1,
               paramInt1,
               0.0F,
               1.0F,
               paramArrayOfFloat7,
               paramInt11,
               paramInt12);
         }
         Sgghrd.sgghrd(
             paramString1,
             paramString2,
             paramInt1,
             localintW3.val,
             localintW1.val,
             paramArrayOfFloat1,
             paramInt2,
             paramInt3,
             paramArrayOfFloat2,
             paramInt4,
             paramInt5,
             paramArrayOfFloat6,
             paramInt9,
             paramInt10,
             paramArrayOfFloat7,
             paramInt11,
             paramInt12,
             localintW2);
         if ((localintW2.val == 0 ? 0 : 1) != 0) {
           paramintW.val = (paramInt1 + 5);
         } else {
           i8 = i7;
           Shgeqz.shgeqz(
               "S",
               paramString1,
               paramString2,
               paramInt1,
               localintW3.val,
               localintW1.val,
               paramArrayOfFloat1,
               paramInt2,
               paramInt3,
               paramArrayOfFloat2,
               paramInt4,
               paramInt5,
               paramArrayOfFloat3,
               paramInt6,
               paramArrayOfFloat4,
               paramInt7,
               paramArrayOfFloat5,
               paramInt8,
               paramArrayOfFloat6,
               paramInt9,
               paramInt10,
               paramArrayOfFloat7,
               paramInt11,
               paramInt12,
               paramArrayOfFloat8,
               i8 - 1 + paramInt13,
               paramInt14 + 1 - i8,
               localintW2);
           if ((localintW2.val < 0 ? 0 : 1) != 0) {
             i11 = Math.max(i11, (int) paramArrayOfFloat8[(i8 - 1 + paramInt13)] + i8 - 1);
           }
           if ((localintW2.val == 0 ? 0 : 1) != 0) {
             if ((localintW2.val <= 0 ? 0 : 1) != 0) {}
             if (((localintW2.val > paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
               paramintW.val = localintW2.val;
             } else {
               if ((localintW2.val <= paramInt1 ? 0 : 1) != 0) {}
               if (((localintW2.val > 2 * paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
                 localintW2.val -= paramInt1;
               } else {
                 paramintW.val = (paramInt1 + 6);
               }
             }
           } else {
             if (k != 0) {
               Sggbak.sggbak(
                   "P",
                   "L",
                   paramInt1,
                   localintW3.val,
                   localintW1.val,
                   paramArrayOfFloat8,
                   i4 - 1 + paramInt13,
                   paramArrayOfFloat8,
                   i5 - 1 + paramInt13,
                   paramInt1,
                   paramArrayOfFloat6,
                   paramInt9,
                   paramInt10,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 7);
                 break label2389;
               }
             }
             if (m != 0) {
               Sggbak.sggbak(
                   "P",
                   "R",
                   paramInt1,
                   localintW3.val,
                   localintW1.val,
                   paramArrayOfFloat8,
                   i4 - 1 + paramInt13,
                   paramArrayOfFloat8,
                   i5 - 1 + paramInt13,
                   paramInt1,
                   paramArrayOfFloat7,
                   paramInt11,
                   paramInt12,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 8);
                 break label2389;
               }
             }
             if (i != 0) {
               Slascl.slascl(
                   "H",
                   -1,
                   -1,
                   f2,
                   f1,
                   paramInt1,
                   paramInt1,
                   paramArrayOfFloat1,
                   paramInt2,
                   paramInt3,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
               Slascl.slascl(
                   "G",
                   -1,
                   -1,
                   f2,
                   f1,
                   paramInt1,
                   1,
                   paramArrayOfFloat3,
                   paramInt6,
                   paramInt1,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
               Slascl.slascl(
                   "G",
                   -1,
                   -1,
                   f2,
                   f1,
                   paramInt1,
                   1,
                   paramArrayOfFloat4,
                   paramInt7,
                   paramInt1,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
             }
             if (j != 0) {
               Slascl.slascl(
                   "U",
                   -1,
                   -1,
                   f5,
                   f4,
                   paramInt1,
                   paramInt1,
                   paramArrayOfFloat2,
                   paramInt4,
                   paramInt5,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
               Slascl.slascl(
                   "G",
                   -1,
                   -1,
                   f5,
                   f4,
                   paramInt1,
                   1,
                   paramArrayOfFloat5,
                   paramInt8,
                   paramInt1,
                   localintW2);
               if ((localintW2.val == 0 ? 0 : 1) != 0) {
                 paramintW.val = (paramInt1 + 9);
                 return;
               }
             }
           }
         }
       }
     }
   }
   label2389:
   paramArrayOfFloat8[(1 - 1 + paramInt13)] = i11;
 }
Ejemplo n.º 13
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);
   }
 }
Ejemplo n.º 14
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;
     }
   }
 }
Ejemplo n.º 15
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;
 }
Ejemplo n.º 16
0
 public static void dlarrc(
     String paramString,
     int paramInt1,
     double paramDouble1,
     double paramDouble2,
     double[] paramArrayOfDouble1,
     int paramInt2,
     double[] paramArrayOfDouble2,
     int paramInt3,
     double paramDouble3,
     intW paramintW1,
     intW paramintW2,
     intW paramintW3,
     intW paramintW4) {
   int i = 0;
   boolean bool = false;
   double d1 = 0.0D;
   double d2 = 0.0D;
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   double d6 = 0.0D;
   paramintW4.val = 0;
   paramintW2.val = 0;
   paramintW3.val = 0;
   paramintW1.val = 0;
   bool = Lsame.lsame(paramString, "T");
   int j;
   if (bool) {
     d1 = paramArrayOfDouble1[(1 - 1 + paramInt2)] - paramDouble1;
     d2 = paramArrayOfDouble1[(1 - 1 + paramInt2)] - paramDouble2;
     if ((d1 > 0.0D ? 0 : 1) != 0) {
       paramintW2.val += 1;
     }
     if ((d2 > 0.0D ? 0 : 1) != 0) {
       paramintW3.val += 1;
     }
     i = 1;
     for (j = paramInt1 - 1 - 1 + 1; j > 0; j--) {
       d5 = Math.pow(paramArrayOfDouble2[(i - 1 + paramInt3)], 2);
       d1 = paramArrayOfDouble1[(i + 1 - 1 + paramInt2)] - paramDouble1 - d5 / d1;
       d2 = paramArrayOfDouble1[(i + 1 - 1 + paramInt2)] - paramDouble2 - d5 / d2;
       if ((d1 > 0.0D ? 0 : 1) != 0) {
         paramintW2.val += 1;
       }
       if ((d2 > 0.0D ? 0 : 1) != 0) {
         paramintW3.val += 1;
       }
       i += 1;
     }
   } else {
     d3 = -paramDouble1;
     d4 = -paramDouble2;
     i = 1;
     for (j = paramInt1 - 1 - 1 + 1; j > 0; j--) {
       d1 = paramArrayOfDouble1[(i - 1 + paramInt2)] + d3;
       d2 = paramArrayOfDouble1[(i - 1 + paramInt2)] + d4;
       if ((d1 > 0.0D ? 0 : 1) != 0) {
         paramintW2.val += 1;
       }
       if ((d2 > 0.0D ? 0 : 1) != 0) {
         paramintW3.val += 1;
       }
       d5 =
           paramArrayOfDouble2[(i - 1 + paramInt3)]
               * paramArrayOfDouble1[(i - 1 + paramInt2)]
               * paramArrayOfDouble2[(i - 1 + paramInt3)];
       d6 = d5 / d1;
       if ((d6 != 0.0D ? 0 : 1) != 0) {
         d3 = d5 - paramDouble1;
       } else {
         d3 = d3 * d6 - paramDouble1;
       }
       d6 = d5 / d2;
       if ((d6 != 0.0D ? 0 : 1) != 0) {
         d4 = d5 - paramDouble2;
       } else {
         d4 = d4 * d6 - paramDouble2;
       }
       i += 1;
     }
     d1 = paramArrayOfDouble1[(paramInt1 - 1 + paramInt2)] + d3;
     d2 = paramArrayOfDouble1[(paramInt1 - 1 + paramInt2)] + d4;
     if ((d1 > 0.0D ? 0 : 1) != 0) {
       paramintW2.val += 1;
     }
     if ((d2 > 0.0D ? 0 : 1) != 0) {
       paramintW3.val += 1;
     }
   }
   paramintW3.val -= paramintW2.val;
 }
Ejemplo n.º 17
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;
       }
     }
   }
 }
Ejemplo n.º 18
0
 public static void dggevx(
     String paramString1,
     String paramString2,
     String paramString3,
     String paramString4,
     int paramInt1,
     double[] paramArrayOfDouble1,
     int paramInt2,
     int paramInt3,
     double[] paramArrayOfDouble2,
     int paramInt4,
     int paramInt5,
     double[] paramArrayOfDouble3,
     int paramInt6,
     double[] paramArrayOfDouble4,
     int paramInt7,
     double[] paramArrayOfDouble5,
     int paramInt8,
     double[] paramArrayOfDouble6,
     int paramInt9,
     int paramInt10,
     double[] paramArrayOfDouble7,
     int paramInt11,
     int paramInt12,
     intW paramintW1,
     intW paramintW2,
     double[] paramArrayOfDouble8,
     int paramInt13,
     double[] paramArrayOfDouble9,
     int paramInt14,
     doubleW paramdoubleW1,
     doubleW paramdoubleW2,
     double[] paramArrayOfDouble10,
     int paramInt15,
     double[] paramArrayOfDouble11,
     int paramInt16,
     double[] paramArrayOfDouble12,
     int paramInt17,
     int paramInt18,
     int[] paramArrayOfInt,
     int paramInt19,
     boolean[] paramArrayOfBoolean,
     int paramInt20,
     intW paramintW3) {
   int i = 0;
   int j = 0;
   int k = 0;
   int m = 0;
   int n = 0;
   int i1 = 0;
   int i2 = 0;
   int i3 = 0;
   boolean bool1 = false;
   boolean bool2 = false;
   boolean bool3 = false;
   boolean bool4 = false;
   String str = new String(" ");
   int i4 = 0;
   int i5 = 0;
   intW localintW1 = new intW(0);
   int i6 = 0;
   int i7 = 0;
   intW localintW2 = new intW(0);
   int i8 = 0;
   int i9 = 0;
   int i10 = 0;
   int i11 = 0;
   int i12 = 0;
   int i13 = 0;
   int i14 = 0;
   intW localintW3 = new intW(0);
   int i15 = 0;
   int i16 = 0;
   int i17 = 0;
   double d1 = 0.0D;
   double d2 = 0.0D;
   doubleW localdoubleW1 = new doubleW(0.0D);
   double d3 = 0.0D;
   double d4 = 0.0D;
   double d5 = 0.0D;
   doubleW localdoubleW2 = new doubleW(0.0D);
   double d6 = 0.0D;
   boolean[] arrayOfBoolean = new boolean[1];
   if (Lsame.lsame(paramString2, "N")) {
     i6 = 1;
     m = 0;
   } else if (Lsame.lsame(paramString2, "V")) {
     i6 = 2;
     m = 1;
   } else {
     i6 = -1;
     m = 0;
   }
   if (Lsame.lsame(paramString3, "N")) {
     i7 = 1;
     n = 0;
   } else if (Lsame.lsame(paramString3, "V")) {
     i7 = 2;
     n = 1;
   } else {
     i7 = -1;
     n = 0;
   }
   k = (m == 0) && (n == 0) ? 0 : 1;
   i2 = (!Lsame.lsame(paramString1, "N")) && (!Lsame.lsame(paramString1, "P")) ? 0 : 1;
   bool3 = Lsame.lsame(paramString4, "N");
   bool2 = Lsame.lsame(paramString4, "E");
   bool4 = Lsame.lsame(paramString4, "V");
   bool1 = Lsame.lsame(paramString4, "B");
   paramintW3.val = 0;
   i1 = paramInt18 != -1 ? 0 : 1;
   if (((!Lsame.lsame(paramString1, "N")) && (!Lsame.lsame(paramString1, "S")) ? 0 : 1) == 0) {}
   if ((!Lsame.lsame(paramString1, "P") ? 0 : 1) == 0) {}
   if (((!Lsame.lsame(paramString1, "B") ? 0 : 1) ^ 0x1) != 0) {
     paramintW3.val = -1;
   } else if ((i6 > 0 ? 0 : 1) != 0) {
     paramintW3.val = -2;
   } else if ((i7 > 0 ? 0 : 1) != 0) {
     paramintW3.val = -3;
   } else {
     if (((!bool3) && (!bool2) ? 0 : 1) == 0) {}
     if ((!bool1 ? 0 : 1) == 0) {}
     if (((!bool4 ? 0 : 1) ^ 0x1) != 0) {
       paramintW3.val = -4;
     } else if ((paramInt1 >= 0 ? 0 : 1) != 0) {
       paramintW3.val = -5;
     } else if ((paramInt3 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
       paramintW3.val = -7;
     } else if ((paramInt5 >= Math.max(1, paramInt1) ? 0 : 1) != 0) {
       paramintW3.val = -9;
     } else {
       if ((paramInt10 >= 1 ? 0 : 1) == 0) {
         if (m == 0) {}
       }
       if ((((paramInt10 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
         paramintW3.val = -14;
       } else {
         if ((paramInt12 >= 1 ? 0 : 1) == 0) {
           if (n == 0) {}
         }
         if ((((paramInt12 >= paramInt1 ? 0 : 1) != 0 ? 1 : 0) == 0 ? 0 : 1) != 0) {
           paramintW3.val = -16;
         }
       }
     }
   }
   if ((paramintW3.val != 0 ? 0 : 1) != 0) {
     if ((paramInt1 != 0 ? 0 : 1) != 0) {
       i16 = 1;
       i15 = 1;
     } else {
       if (((i2 != 0) && ((k ^ 0x1) != 0) ? 1 : 0) != 0) {
         i16 = 2 * paramInt1;
       } else {
         i16 = 6 * paramInt1;
       }
       if (((!bool2) && (!bool1) ? 0 : 1) != 0) {
         i16 = 10 * paramInt1;
       }
       if (((!bool4) && (!bool1) ? 0 : 1) != 0) {
         i16 = Math.max(i16, 2 * paramInt1 * (paramInt1 + 4) + 16);
       }
       i15 = i16;
       i15 =
           Math.max(
               i15,
               paramInt1
                   + paramInt1 * Ilaenv.ilaenv(1, "DGEQRF", " ", paramInt1, 1, paramInt1, 0));
       i15 =
           Math.max(
               i15,
               paramInt1
                   + paramInt1 * Ilaenv.ilaenv(1, "DORMQR", " ", paramInt1, 1, paramInt1, 0));
       if (m != 0) {
         i15 =
             Math.max(
                 i15,
                 paramInt1
                     + paramInt1 * Ilaenv.ilaenv(1, "DORGQR", " ", paramInt1, 1, paramInt1, 0));
       }
     }
     paramArrayOfDouble12[(1 - 1 + paramInt17)] = i15;
     if ((paramInt18 >= i16 ? 0 : 1) != 0) {}
     if (((i1 ^ 0x1) != 0 ? 1 : 0) != 0) {
       paramintW3.val = -26;
     }
   }
   if ((paramintW3.val == 0 ? 0 : 1) != 0) {
     Xerbla.xerbla("DGGEVX", -paramintW3.val);
     return;
   }
   if (i1 != 0) {
     return;
   }
   if ((paramInt1 != 0 ? 0 : 1) != 0) {
     return;
   }
   d5 = Dlamch.dlamch("P");
   localdoubleW2.val = Dlamch.dlamch("S");
   localdoubleW1.val = (1.0D / localdoubleW2.val);
   Dlabad.dlabad(localdoubleW2, localdoubleW1);
   localdoubleW2.val = (Math.sqrt(localdoubleW2.val) / d5);
   localdoubleW1.val = (1.0D / localdoubleW2.val);
   d1 =
       Dlange.dlange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfDouble1,
           paramInt2,
           paramInt3,
           paramArrayOfDouble12,
           paramInt17);
   i = 0;
   if ((d1 <= 0.0D ? 0 : 1) != 0) {}
   if (((d1 >= localdoubleW2.val ? 0 : 1) != 0 ? 1 : 0) != 0) {
     d2 = localdoubleW2.val;
     i = 1;
   } else if ((d1 <= localdoubleW1.val ? 0 : 1) != 0) {
     d2 = localdoubleW1.val;
     i = 1;
   }
   if (i != 0) {
     Dlascl.dlascl(
         "G",
         0,
         0,
         d1,
         d2,
         paramInt1,
         paramInt1,
         paramArrayOfDouble1,
         paramInt2,
         paramInt3,
         localintW1);
   }
   d3 =
       Dlange.dlange(
           "M",
           paramInt1,
           paramInt1,
           paramArrayOfDouble2,
           paramInt4,
           paramInt5,
           paramArrayOfDouble12,
           paramInt17);
   j = 0;
   if ((d3 <= 0.0D ? 0 : 1) != 0) {}
   if (((d3 >= localdoubleW2.val ? 0 : 1) != 0 ? 1 : 0) != 0) {
     d4 = localdoubleW2.val;
     j = 1;
   } else if ((d3 <= localdoubleW1.val ? 0 : 1) != 0) {
     d4 = localdoubleW1.val;
     j = 1;
   }
   if (j != 0) {
     Dlascl.dlascl(
         "G",
         0,
         0,
         d3,
         d4,
         paramInt1,
         paramInt1,
         paramArrayOfDouble2,
         paramInt4,
         paramInt5,
         localintW1);
   }
   Dggbal.dggbal(
       paramString1,
       paramInt1,
       paramArrayOfDouble1,
       paramInt2,
       paramInt3,
       paramArrayOfDouble2,
       paramInt4,
       paramInt5,
       paramintW1,
       paramintW2,
       paramArrayOfDouble8,
       paramInt13,
       paramArrayOfDouble9,
       paramInt14,
       paramArrayOfDouble12,
       paramInt17,
       localintW1);
   paramdoubleW1.val =
       Dlange.dlange(
           "1",
           paramInt1,
           paramInt1,
           paramArrayOfDouble1,
           paramInt2,
           paramInt3,
           paramArrayOfDouble12,
           1 - 1 + paramInt17);
   if (i != 0) {
     paramArrayOfDouble12[(1 - 1 + paramInt17)] = paramdoubleW1.val;
     Dlascl.dlascl(
         "G", 0, 0, d2, d1, 1, 1, paramArrayOfDouble12, 1 - 1 + paramInt17, 1, localintW1);
     paramdoubleW1.val = paramArrayOfDouble12[(1 - 1 + paramInt17)];
   }
   paramdoubleW2.val =
       Dlange.dlange(
           "1",
           paramInt1,
           paramInt1,
           paramArrayOfDouble2,
           paramInt4,
           paramInt5,
           paramArrayOfDouble12,
           1 - 1 + paramInt17);
   if (j != 0) {
     paramArrayOfDouble12[(1 - 1 + paramInt17)] = paramdoubleW2.val;
     Dlascl.dlascl(
         "G", 0, 0, d4, d3, 1, 1, paramArrayOfDouble12, 1 - 1 + paramInt17, 1, localintW1);
     paramdoubleW2.val = paramArrayOfDouble12[(1 - 1 + paramInt17)];
   }
   i8 = paramintW2.val + 1 - paramintW1.val;
   if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
     i5 = paramInt1 + 1 - paramintW1.val;
   } else {
     i5 = i8;
   }
   i9 = 1;
   i10 = i9 + i8;
   Dgeqrf.dgeqrf(
       i8,
       i5,
       paramArrayOfDouble2,
       paramintW1.val - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
       paramInt5,
       paramArrayOfDouble12,
       i9 - 1 + paramInt17,
       paramArrayOfDouble12,
       i10 - 1 + paramInt17,
       paramInt18 + 1 - i10,
       localintW1);
   Dormqr.dormqr(
       "L",
       "T",
       i8,
       i5,
       i8,
       paramArrayOfDouble2,
       paramintW1.val - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
       paramInt5,
       paramArrayOfDouble12,
       i9 - 1 + paramInt17,
       paramArrayOfDouble1,
       paramintW1.val - 1 + (paramintW1.val - 1) * paramInt3 + paramInt2,
       paramInt3,
       paramArrayOfDouble12,
       i10 - 1 + paramInt17,
       paramInt18 + 1 - i10,
       localintW1);
   if (m != 0) {
     Dlaset.dlaset(
         "Full", paramInt1, paramInt1, 0.0D, 1.0D, paramArrayOfDouble6, paramInt9, paramInt10);
     if ((i8 <= 1 ? 0 : 1) != 0) {
       Dlacpy.dlacpy(
           "L",
           i8 - 1,
           i8 - 1,
           paramArrayOfDouble2,
           paramintW1.val + 1 - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
           paramInt5,
           paramArrayOfDouble6,
           paramintW1.val + 1 - 1 + (paramintW1.val - 1) * paramInt10 + paramInt9,
           paramInt10);
     }
     Dorgqr.dorgqr(
         i8,
         i8,
         i8,
         paramArrayOfDouble6,
         paramintW1.val - 1 + (paramintW1.val - 1) * paramInt10 + paramInt9,
         paramInt10,
         paramArrayOfDouble12,
         i9 - 1 + paramInt17,
         paramArrayOfDouble12,
         i10 - 1 + paramInt17,
         paramInt18 + 1 - i10,
         localintW1);
   }
   if (n != 0) {
     Dlaset.dlaset(
         "Full", paramInt1, paramInt1, 0.0D, 1.0D, paramArrayOfDouble7, paramInt11, paramInt12);
   }
   if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
     Dgghrd.dgghrd(
         paramString2,
         paramString3,
         paramInt1,
         paramintW1.val,
         paramintW2.val,
         paramArrayOfDouble1,
         paramInt2,
         paramInt3,
         paramArrayOfDouble2,
         paramInt4,
         paramInt5,
         paramArrayOfDouble6,
         paramInt9,
         paramInt10,
         paramArrayOfDouble7,
         paramInt11,
         paramInt12,
         localintW1);
   } else {
     Dgghrd.dgghrd(
         "N",
         "N",
         i8,
         1,
         i8,
         paramArrayOfDouble1,
         paramintW1.val - 1 + (paramintW1.val - 1) * paramInt3 + paramInt2,
         paramInt3,
         paramArrayOfDouble2,
         paramintW1.val - 1 + (paramintW1.val - 1) * paramInt5 + paramInt4,
         paramInt5,
         paramArrayOfDouble6,
         paramInt9,
         paramInt10,
         paramArrayOfDouble7,
         paramInt11,
         paramInt12,
         localintW1);
   }
   if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
     str = "S";
   } else {
     str = "E";
   }
   Dhgeqz.dhgeqz(
       str,
       paramString2,
       paramString3,
       paramInt1,
       paramintW1.val,
       paramintW2.val,
       paramArrayOfDouble1,
       paramInt2,
       paramInt3,
       paramArrayOfDouble2,
       paramInt4,
       paramInt5,
       paramArrayOfDouble3,
       paramInt6,
       paramArrayOfDouble4,
       paramInt7,
       paramArrayOfDouble5,
       paramInt8,
       paramArrayOfDouble6,
       paramInt9,
       paramInt10,
       paramArrayOfDouble7,
       paramInt11,
       paramInt12,
       paramArrayOfDouble12,
       paramInt17,
       paramInt18,
       localintW1);
   if ((localintW1.val == 0 ? 0 : 1) != 0) {
     if ((localintW1.val <= 0 ? 0 : 1) != 0) {}
     if (((localintW1.val > paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
       paramintW3.val = localintW1.val;
     } else {
       if ((localintW1.val <= paramInt1 ? 0 : 1) != 0) {}
       if (((localintW1.val > 2 * paramInt1 ? 0 : 1) != 0 ? 1 : 0) != 0) {
         localintW1.val -= paramInt1;
       } else {
         paramintW3.val = (paramInt1 + 1);
       }
     }
   } else {
     int i18;
     int i19;
     if (((k == 0) && (!(bool3 ^ true)) ? 0 : 1) != 0) {
       if (k != 0) {
         if (m != 0) {
           if (n != 0) {
             str = "B";
           } else {
             str = "L";
           }
         } else {
           str = "R";
         }
         Dtgevc.dtgevc(
             str,
             "B",
             arrayOfBoolean,
             0,
             paramInt1,
             paramArrayOfDouble1,
             paramInt2,
             paramInt3,
             paramArrayOfDouble2,
             paramInt4,
             paramInt5,
             paramArrayOfDouble6,
             paramInt9,
             paramInt10,
             paramArrayOfDouble7,
             paramInt11,
             paramInt12,
             paramInt1,
             localintW2,
             paramArrayOfDouble12,
             paramInt17,
             localintW1);
         if ((localintW1.val == 0 ? 0 : 1) != 0) {
           paramintW3.val = (paramInt1 + 2);
           break label3995;
         }
       }
       if ((bool3 ^ true)) {
         i3 = 0;
         i4 = 1;
         for (i18 = paramInt1 - 1 + 1; i18 > 0; i18--) {
           if (i3 != 0) {
             i3 = 0;
           } else {
             i17 = 1;
             if ((i4 >= paramInt1 ? 0 : 1) != 0) {
               if ((paramArrayOfDouble1[(i4 + 1 - 1 + (i4 - 1) * paramInt3 + paramInt2)] == 0.0D
                       ? 0
                       : 1)
                   != 0) {
                 i3 = 1;
                 i17 = 2;
               }
             }
             i12 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               paramArrayOfBoolean[(i12 - 1 + paramInt20)] = false;
               i12 += 1;
             }
             if ((i17 != 1 ? 0 : 1) != 0) {
               paramArrayOfBoolean[(i4 - 1 + paramInt20)] = true;
             } else if ((i17 != 2 ? 0 : 1) != 0) {
               paramArrayOfBoolean[(i4 - 1 + paramInt20)] = true;
               paramArrayOfBoolean[(i4 + 1 - 1 + paramInt20)] = true;
             }
             i10 = i17 * paramInt1 + 1;
             i11 = i10 + i17 * paramInt1;
             if (((!bool2) && (!bool1) ? 0 : 1) != 0) {
               Dtgevc.dtgevc(
                   "B",
                   "S",
                   paramArrayOfBoolean,
                   paramInt20,
                   paramInt1,
                   paramArrayOfDouble1,
                   paramInt2,
                   paramInt3,
                   paramArrayOfDouble2,
                   paramInt4,
                   paramInt5,
                   paramArrayOfDouble12,
                   1 - 1 + paramInt17,
                   paramInt1,
                   paramArrayOfDouble12,
                   i10 - 1 + paramInt17,
                   paramInt1,
                   i17,
                   localintW3,
                   paramArrayOfDouble12,
                   i11 - 1 + paramInt17,
                   localintW1);
               if ((localintW1.val == 0 ? 0 : 1) != 0) {
                 paramintW3.val = (paramInt1 + 2);
                 break;
               }
             }
             Dtgsna.dtgsna(
                 paramString4,
                 "S",
                 paramArrayOfBoolean,
                 paramInt20,
                 paramInt1,
                 paramArrayOfDouble1,
                 paramInt2,
                 paramInt3,
                 paramArrayOfDouble2,
                 paramInt4,
                 paramInt5,
                 paramArrayOfDouble12,
                 1 - 1 + paramInt17,
                 paramInt1,
                 paramArrayOfDouble12,
                 i10 - 1 + paramInt17,
                 paramInt1,
                 paramArrayOfDouble10,
                 i4 - 1 + paramInt15,
                 paramArrayOfDouble11,
                 i4 - 1 + paramInt16,
                 i17,
                 localintW3,
                 paramArrayOfDouble12,
                 i11 - 1 + paramInt17,
                 paramInt18 - i11 + 1,
                 paramArrayOfInt,
                 paramInt19,
                 localintW1);
           }
           i4 += 1;
         }
       }
     }
     if (m != 0) {
       Dggbak.dggbak(
           paramString1,
           "L",
           paramInt1,
           paramintW1.val,
           paramintW2.val,
           paramArrayOfDouble8,
           paramInt13,
           paramArrayOfDouble9,
           paramInt14,
           paramInt1,
           paramArrayOfDouble6,
           paramInt9,
           paramInt10,
           localintW1);
       i13 = 1;
       for (i18 = paramInt1 - 1 + 1; i18 > 0; i18--) {
         if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] >= 0.0D ? 0 : 1) == 0) {
           d6 = 0.0D;
           if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                           paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)]));
               i14 += 1;
             }
           } else {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                               paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)])
                           + Math.abs(
                               paramArrayOfDouble6[
                                   (i14 - 1 + (i13 + 1 - 1) * paramInt10 + paramInt9)]));
               i14 += 1;
             }
           }
           if ((d6 >= localdoubleW2.val ? 0 : 1) == 0) {
             d6 = 1.0D / d6;
             if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)] *= d6;
                 i14 += 1;
               }
             } else {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble6[(i14 - 1 + (i13 - 1) * paramInt10 + paramInt9)] *= d6;
                 paramArrayOfDouble6[(i14 - 1 + (i13 + 1 - 1) * paramInt10 + paramInt9)] *= d6;
                 i14 += 1;
               }
             }
           }
         }
         i13 += 1;
       }
     }
     if (n != 0) {
       Dggbak.dggbak(
           paramString1,
           "R",
           paramInt1,
           paramintW1.val,
           paramintW2.val,
           paramArrayOfDouble8,
           paramInt13,
           paramArrayOfDouble9,
           paramInt14,
           paramInt1,
           paramArrayOfDouble7,
           paramInt11,
           paramInt12,
           localintW1);
       i13 = 1;
       for (i18 = paramInt1 - 1 + 1; i18 > 0; i18--) {
         if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] >= 0.0D ? 0 : 1) == 0) {
           d6 = 0.0D;
           if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                           paramArrayOfDouble7[(i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)]));
               i14 += 1;
             }
           } else {
             i14 = 1;
             for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
               d6 =
                   Math.max(
                       d6,
                       Math.abs(
                               paramArrayOfDouble7[
                                   (i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)])
                           + Math.abs(
                               paramArrayOfDouble7[
                                   (i14 - 1 + (i13 + 1 - 1) * paramInt12 + paramInt11)]));
               i14 += 1;
             }
           }
           if ((d6 >= localdoubleW2.val ? 0 : 1) == 0) {
             d6 = 1.0D / d6;
             if ((paramArrayOfDouble4[(i13 - 1 + paramInt7)] != 0.0D ? 0 : 1) != 0) {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble7[(i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)] *= d6;
                 i14 += 1;
               }
             } else {
               i14 = 1;
               for (i19 = paramInt1 - 1 + 1; i19 > 0; i19--) {
                 paramArrayOfDouble7[(i14 - 1 + (i13 - 1) * paramInt12 + paramInt11)] *= d6;
                 paramArrayOfDouble7[(i14 - 1 + (i13 + 1 - 1) * paramInt12 + paramInt11)] *= d6;
                 i14 += 1;
               }
             }
           }
         }
         i13 += 1;
       }
     }
     if (i != 0) {
       Dlascl.dlascl(
           "G", 0, 0, d2, d1, paramInt1, 1, paramArrayOfDouble3, paramInt6, paramInt1, localintW1);
       Dlascl.dlascl(
           "G", 0, 0, d2, d1, paramInt1, 1, paramArrayOfDouble4, paramInt7, paramInt1, localintW1);
     }
     if (j != 0) {
       Dlascl.dlascl(
           "G", 0, 0, d4, d3, paramInt1, 1, paramArrayOfDouble5, paramInt8, paramInt1, localintW1);
     }
   }
   label3995:
   paramArrayOfDouble12[(1 - 1 + paramInt17)] = i15;
 }
Ejemplo n.º 19
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;
     }
   }
 }
Ejemplo n.º 20
0
  @Test
  public void test() {
    boolean test;
    int i, j, NDIM = 4, NMAX = 200;
    intW iter = new intW(0);
    double temperature, sbeps, del = 10.0, FTOL = 1.0e-8;
    double ddels[] = {5.0, 2.0, 6.0, 3.0};
    double[] dels = buildVector(ddels);
    double pp[] = {
      3.5, 3.2, 3.2, 3.0, 8.4, -0.5, 0.7, 0.5, 0.7, 5.6, 0.1, 0.0, -0.7, 0.7, 7.5, -0.2, 0.2, 0.2,
      -0.2, 5.4
    };
    double[][] p = buildMatrix(NDIM + 1, NDIM, pp);
    boolean localflag, globalflag = false;

    // Test Amebsa
    System.out.println("Testing Amebsa");

    // Test interface #1
    double[] point = buildVector(4, 3.5);
    func_amebsa func_amebsa = new func_amebsa();
    Amebsa amb1 = new Amebsa(point, del, func_amebsa, FTOL);

    iter.val = 1000;
    temperature = 100.0;
    for (j = 0; j < NMAX; j++) {
      test = amb1.anneal(iter, temperature);
      if (test) break;
      else {
        iter.val = 1000;
        temperature *= 0.8;
      }
    }

    //    System.out.printf(j);
    //    System.out.printf(iter);
    //    System.out.printf(abs(1.0-amb1.yb));
    //    System.out.printf(amb1.pb[0] << " " << amb1.pb[1] << " " << amb1.pb[2] << " " <<
    // amb1.pb[3]);
    //    System.out.printf(endl;

    sbeps = 1.e-8;
    localflag = abs(1.0 - amb1.yb) > sbeps;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa, interface 1: Incorrect minimum function value");
    }

    sbeps = 1.e-4;
    localflag = false;
    for (i = 0; i < 4; i++) localflag = localflag || abs(amb1.pb[i]) > sbeps;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa, interface 1: Did not converge to the global minumum at the origin");
    }

    // Test interface #2
    Amebsa amb2 = new Amebsa(point, dels, func_amebsa, FTOL);

    iter.val = 1000;
    temperature = 100.0;
    for (j = 0; j < NMAX; j++) {
      test = amb2.anneal(iter, temperature);
      if (test) break;
      else {
        iter.val = 1000;
        temperature *= 0.8;
      }
    }

    //    System.out.printf(j);
    //    System.out.printf(iter);
    //    System.out.printf(amb2.yb);
    //    System.out.printf(amb2.pb[0] << " " << amb2.pb[1] << " " << amb2.pb[2] << " " <<
    // amb2.pb[3]);
    //    System.out.printf(endl;

    sbeps = 1.e-8;
    localflag = abs(1.0 - amb2.yb) > sbeps;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa, interface 2: Incorrect minimum function value");
    }

    sbeps = 1.e-4;
    localflag = false;
    for (i = 0; i < 4; i++) localflag = localflag || abs(amb2.pb[i]) > sbeps;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa, interface 2: Did not converge to the global minumum at the origin");
    }

    // Test interface #3

    Amebsa amb3 = new Amebsa(p, func_amebsa, FTOL);

    iter.val = 1000;
    temperature = 100.0;
    for (j = 0; j < NMAX; j++) {
      test = amb3.anneal(iter, temperature);
      if (test) break;
      else {
        iter.val = 1000;
        temperature *= 0.8;
      }
    }

    //    System.out.printf(j);
    //    System.out.printf(iter);
    //    System.out.printf(amb3.yb);
    //    System.out.printf(amb3.pb[0] << " " << amb3.pb[1] << " " << amb3.pb[2] << " " <<
    // amb3.pb[3]);
    //    System.out.printf(endl;

    sbeps = 1.e-8;
    localflag = abs(1.0 - amb3.yb) > sbeps;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa, interface 3: Incorrect minimum function value");
    }

    sbeps = 1.e-4;
    localflag = false;
    for (i = 0; i < 4; i++) localflag = localflag || abs(amb3.pb[i]) > sbeps;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa, interface 3: Did not converge to the global minumum at the origin");
    }

    localflag = false;
    globalflag = globalflag || localflag;
    if (localflag) {
      fail("*** Amebsa: **********************");
    }

    if (globalflag) System.out.println("Failed\n");
    else System.out.println("Passed\n");
  }
Ejemplo n.º 21
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);
     }
   }
 }
Ejemplo n.º 22
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);
   }
 }