public static void main(string[] args) { // declare the matrix DMatrix3x3 a = new DMatrix3x3(); DMatrix3x3 b = new DMatrix3x3(); // Can assign values the usual way for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { a.set(i, j, i + j + 1); } } // Direct manipulation of each value is the fastest way to assign/read values a.a11 = 12; a.a23 = 64; // can print the usual way too a.print(); // most of the standard operations are support CommonOps_DDF3.transpose(a, b); b.print(); Console.WriteLine("Determinant = " + CommonOps_DDF3.det(a)); // matrix-vector operations are also supported // Constructors for vectors and matrices can be used to initialize its value DMatrix3 v = new DMatrix3(1, 2, 3); DMatrix3 result = new DMatrix3(); CommonOps_DDF3.mult(a, v, result); // Conversion into DMatrixRMaj can also be done DMatrixRMaj dm = ConvertDMatrixStruct.convert(a, null); dm.print(); // This can be useful if you need do more advanced operations SimpleMatrix <DMatrixRMaj> sv = SimpleMatrix <DMatrixRMaj> .wrap(dm).svd().getV() as SimpleMatrix <DMatrixRMaj>; // can then convert it back into a fixed matrix DMatrix3x3 fv = ConvertDMatrixStruct.convert(sv.getDDRM(), (DMatrix3x3)null); Console.WriteLine("Original simple matrix and converted fixed matrix"); sv.print(); fv.print(); }