//PL 2019-10-24: laeuft nicht durch, zu gross import java.util.Vector; import java.lang.Integer; import java.lang.Boolean; public class mathStrucMatrixOP { model; innerOp = (o) -> (ms) -> new mathStrucMatrixOP<>(o.apply(model,ms.model)); public mathStrucMatrixOP(m) { model =m; } } public class MatrixOP extends Vector> { MatrixOP () { } MatrixOP(vv) { Integer i; i = 0; while(i < vv.size()) { // Boolean a = this.add(vv.elementAt(i)); this.add(vv.elementAt(i)); i=i+1; } } public mul = (m1, m2) -> { var ret = new MatrixOP(); var i = 0; while(i < m1.size()) { var v1 = m1.elementAt(i); var v2 = new Vector(); var j = 0; while(j < v1.size()) { var erg = 0; var k = 0; while(k < v1.size()) { erg = erg + v1.elementAt(k) * m2.elementAt(k).elementAt(j); k++; } // v2.addElement(new Integer(erg)); v2.addElement(erg); j++; } ret.addElement(v2); i++; } return ret; }; } class mathStrucUseMatrixOP { main() { Vector> vv = new Vector>(); Vector v1 = new Vector(); v1.addElement(2); v1.addElement(2); Vector v2 = new Vector(); v2.addElement(3); v2.addElement(3); vv.addElement(v1); vv.addElement(v2); MatrixOP m1 = new MatrixOP(vv); Vector> vv1 = new Vector>(); Vector v3 = new Vector(); v3.addElement(2); v3.addElement(2); Vector v4 = new Vector(); v4.addElement(3); v4.addElement(3); vv1.addElement(v3); vv1.addElement(v4); MatrixOP m2 = new MatrixOP(vv1); var mms; mms = new mathStrucMatrixOP<>(m1); var mms2; mms2 = new mathStrucMatrixOP<>(m2); var mms3; mms3 = mms.innerOp.apply(m1.mul).apply(mms2); return mms3; } }