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); } }
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 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; }