@Override public void drootbranchfn( final double[][] d, final int i, final int j, final int ni, final int nj, final doubleW bi, final doubleW bj) { bi.val = bj.val = 0.5 * d[i][j]; }
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; }
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); } }
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)); } }
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; }