class MatrixOP {

  TPH JGDT mul;
MatrixOP(){
    super(());
    this.mul = (TPH JGDU m1, TPH JGDV m2) -> {
      TPH JGDW ret;
      ret = new MatrixOP();
      TPH JGDY i;
      i = 0;
      while(i op m1.size Signature: [TPH JGEB]()){
        TPH JGEE v1;
        v1 = m1.elementAt Signature: [TPH JGEF, TPH JGEG](i);
        TPH JGEJ v2;
        v2 = new java.util.Vector();
        TPH JGEL j;
        j = 0;
        while(j op v1.size Signature: [TPH JGEO]()){
          TPH JGER erg;
          erg = 0;
          TPH JGET k;
          k = 0;
          while(k op v1.size Signature: [TPH JGEW]()){
            erg = erg op v1.elementAt Signature: [TPH JGEZ, TPH JGFA](k) op m2.elementAt Signature: [TPH JGFD, TPH JGFE](k).elementAt Signature: [TPH JGFH, TPH JGFI](j);
            k++;
          };
          v2.addElement Signature: [TPH JGFQ, TPH JGFR](erg);
          j++;
        };
        ret.addElement Signature: [TPH JGFX, TPH JGFY](v2);
        i++;
      };
      return ret;
    };
  }
  MatrixOP(){
    super(());
    return;
  }

  MatrixOP(TPH JGGP vv){
    super(());
    java.lang.Integer i;
    i = 0;
    while(i op vv.size Signature: [TPH JGGS]()){
      this.add Signature: [TPH JGHA, TPH JGHB](vv.elementAt Signature: [TPH JGGW, TPH JGGX](i));
      i = i op 1;
    };
    return;
  }

}