package linear_algebra; import java.io.Serializable; public class MatrixInverter implements Serializable { private double[][] a; private int b; private int c; private int d; private int[] e; public MatrixInverter(Matrix paramb) { // Byte code: // 0: aload_0 // 1: invokespecial : ()V // 4: aload_0 // 5: aload_1 // 6: invokevirtual c : ()[[D // 9: putfield a : [[D // 12: aload_0 // 13: aload_1 // 14: invokevirtual d : ()I // 17: putfield b : I // 20: aload_0 // 21: aload_1 // 22: invokevirtual e : ()I // 25: putfield c : I // 28: aload_0 // 29: aload_0 // 30: getfield b : I // 33: newarray int // 35: putfield e : [I // 38: iconst_0 // 39: istore_2 // 40: iload_2 // 41: aload_0 // 42: getfield b : I // 45: if_icmpge -> 61 // 48: aload_0 // 49: getfield e : [I // 52: iload_2 // 53: iload_2 // 54: iastore // 55: iinc #2, 1 // 58: goto -> 40 // 61: aload_0 // 62: iconst_1 // 63: putfield d : I // 66: aload_0 // 67: getfield b : I // 70: newarray double // 72: astore_3 // 73: iconst_0 // 74: istore #4 // 76: iload #4 // 78: aload_0 // 79: getfield c : I // 82: if_icmpge -> 444 // 85: iconst_0 // 86: istore #5 // 88: iload #5 // 90: aload_0 // 91: getfield b : I // 94: if_icmpge -> 117 // 97: aload_3 // 98: iload #5 // 100: aload_0 // 101: getfield a : [[D // 104: iload #5 // 106: aaload // 107: iload #4 // 109: daload // 110: dastore // 111: iinc #5, 1 // 114: goto -> 88 // 117: iconst_0 // 118: istore #5 // 120: iload #5 // 122: aload_0 // 123: getfield b : I // 126: if_icmpge -> 199 // 129: aload_0 // 130: getfield a : [[D // 133: iload #5 // 135: aaload // 136: astore_2 // 137: iload #5 // 139: iload #4 // 141: invokestatic min : (II)I // 144: istore #6 // 146: dconst_0 // 147: dstore #7 // 149: iconst_0 // 150: istore #9 // 152: iload #9 // 154: iload #6 // 156: if_icmpge -> 179 // 159: dload #7 // 161: aload_2 // 162: iload #9 // 164: daload // 165: aload_3 // 166: iload #9 // 168: daload // 169: dmul // 170: dadd // 171: dstore #7 // 173: iinc #9, 1 // 176: goto -> 152 // 179: aload_2 // 180: iload #4 // 182: aload_3 // 183: iload #5 // 185: dup2 // 186: daload // 187: dload #7 // 189: dsub // 190: dup2_x2 // 191: dastore // 192: dastore // 193: iinc #5, 1 // 196: goto -> 120 // 199: iload #4 // 201: istore #5 // 203: iload #4 // 205: iconst_1 // 206: iadd // 207: istore #6 // 209: iload #6 // 211: aload_0 // 212: getfield b : I // 215: if_icmpge -> 246 // 218: aload_3 // 219: iload #6 // 221: daload // 222: invokestatic abs : (D)D // 225: aload_3 // 226: iload #5 // 228: daload // 229: invokestatic abs : (D)D // 232: dcmpl // 233: ifle -> 240 // 236: iload #6 // 238: istore #5 // 240: iinc #6, 1 // 243: goto -> 209 // 246: iload #5 // 248: iload #4 // 250: if_icmpeq -> 356 // 253: iconst_0 // 254: istore #6 // 256: iload #6 // 258: aload_0 // 259: getfield c : I // 262: if_icmpge -> 315 // 265: aload_0 // 266: getfield a : [[D // 269: iload #5 // 271: aaload // 272: iload #6 // 274: daload // 275: dstore #7 // 277: aload_0 // 278: getfield a : [[D // 281: iload #5 // 283: aaload // 284: iload #6 // 286: aload_0 // 287: getfield a : [[D // 290: iload #4 // 292: aaload // 293: iload #6 // 295: daload // 296: dastore // 297: aload_0 // 298: getfield a : [[D // 301: iload #4 // 303: aaload // 304: iload #6 // 306: dload #7 // 308: dastore // 309: iinc #6, 1 // 312: goto -> 256 // 315: aload_0 // 316: getfield e : [I // 319: iload #5 // 321: iaload // 322: istore #6 // 324: aload_0 // 325: getfield e : [I // 328: iload #5 // 330: aload_0 // 331: getfield e : [I // 334: iload #4 // 336: iaload // 337: iastore // 338: aload_0 // 339: getfield e : [I // 342: iload #4 // 344: iload #6 // 346: iastore // 347: aload_0 // 348: aload_0 // 349: getfield d : I // 352: ineg // 353: putfield d : I // 356: iload #4 // 358: aload_0 // 359: getfield b : I // 362: if_icmpge -> 369 // 365: iconst_1 // 366: goto -> 370 // 369: iconst_0 // 370: aload_0 // 371: getfield a : [[D // 374: iload #4 // 376: aaload // 377: iload #4 // 379: daload // 380: dconst_0 // 381: dcmpl // 382: ifeq -> 389 // 385: iconst_1 // 386: goto -> 390 // 389: iconst_0 // 390: iand // 391: ifeq -> 438 // 394: iload #4 // 396: iconst_1 // 397: iadd // 398: istore #6 // 400: iload #6 // 402: aload_0 // 403: getfield b : I // 406: if_icmpge -> 438 // 409: aload_0 // 410: getfield a : [[D // 413: iload #6 // 415: aaload // 416: iload #4 // 418: dup2 // 419: daload // 420: aload_0 // 421: getfield a : [[D // 424: iload #4 // 426: aaload // 427: iload #4 // 429: daload // 430: ddiv // 431: dastore // 432: iinc #6, 1 // 435: goto -> 400 // 438: iinc #4, 1 // 441: goto -> 76 // 444: return } public boolean a() { for (byte b = 0; b < this.c; b++) { if (this.a[b][b] == 0.0D) return false; } return true; } public Matrix a(Matrix paramb) { if (paramb.d() != this.b) throw new IllegalArgumentException("Matrix row dimensions must agree."); if (!a()) throw new RuntimeException("Matrix is singular."); int i = paramb.e(); Matrix b1 = paramb.a(this.e, 0, i - 1); double[][] arrayOfDouble = b1.b(); int j; for (j = 0; j < this.c; j++) { for (int k = j + 1; k < this.c; k++) { for (byte b2 = 0; b2 < i; b2++) arrayOfDouble[k][b2] = arrayOfDouble[k][b2] - arrayOfDouble[j][b2] * this.a[k][j]; } } for (j = this.c - 1; j >= 0; j--) { byte b2; for (b2 = 0; b2 < i; b2++) arrayOfDouble[j][b2] = arrayOfDouble[j][b2] / this.a[j][j]; for (b2 = 0; b2 < j; b2++) { for (byte b3 = 0; b3 < i; b3++) arrayOfDouble[b2][b3] = arrayOfDouble[b2][b3] - arrayOfDouble[j][b3] * this.a[b2][j]; } } return b1; } } /* Location: /home/rewrich/Downloads/TunerStudioMS/TunerStudioMS/!/a/a.class * Java compiler version: 8 (52.0) * JD-Core Version: 1.1.3 */