# HG changeset patch # User Chris Cannam # Date 1384793686 0 # Node ID 120a2dc3d93b4c239b95d936f243d1d1556fbb6b # Parent f06cdae4615e8e17062121268c767b72fee9ecf5 Add format/print, remove some type decorations that are no longer needed diff -r f06cdae4615e -r 120a2dc3d93b src/may/matrix.yeti --- a/src/may/matrix.yeti Sat Nov 16 10:11:28 2013 +0000 +++ b/src/may/matrix.yeti Mon Nov 18 16:54:46 2013 +0000 @@ -798,6 +798,25 @@ maxv (map (.v) (enumerate m)); fi; +format m = + strJoin "\n" + (chunk = 8; + map do b: + c0 = b * chunk; + c1 = b * chunk + chunk - 1; + c1 = if c1 > width m then width m else c1 fi; + [ "\nColumns \(c0) to \(c1)\n", + (map do row: + map do v: + n = int (v * 10000); + strPad ' ' 10 "\(n / 10000)"; + done (vec.list row); + done (asRows (columnSlice m c0 (c1 + 1))) |> concat |> strJoin "") + ]; + done [0..width m / chunk - 1] |> concat); + +print' = print . format; + //!!! todo: look at all occurrences of matrix (and complexmatrix) // construction and make sure we have good apis for those use cases. // in particular, constructing from literal data (list>) @@ -853,13 +872,13 @@ newRowVector, newColumnVector, newSparseMatrix, - enumerate + enumerate, + format, + print = print', } as { -//!!! check whether these are right to be .selector rather than just selector - - size is matrix_t -> { .rows is number, .columns is number }, + size is matrix_t -> { rows is number, columns is number }, width is matrix_t -> number, height is matrix_t -> number, density is matrix_t -> number, @@ -870,11 +889,11 @@ getDiagonal is number -> matrix_t -> vec.vector_t, isRowMajor? is matrix_t -> boolean, isSparse? is matrix_t -> boolean, - generate is (number -> number -> number) -> { .rows is number, .columns is number } -> matrix_t, - constMatrix is number -> { .rows is number, .columns is number } -> matrix_t, - randomMatrix is { .rows is number, .columns is number } -> matrix_t, - zeroMatrix is { .rows is number, .columns is number } -> matrix_t, - identityMatrix is { .rows is number, .columns is number } -> matrix_t, + generate is (number -> number -> number) -> { rows is number, columns is number } -> matrix_t, + constMatrix is number -> { rows is number, columns is number } -> matrix_t, + randomMatrix is { rows is number, columns is number } -> matrix_t, + zeroMatrix is { rows is number, columns is number } -> matrix_t, + identityMatrix is { rows is number, columns is number } -> matrix_t, zeroSizeMatrix is () -> matrix_t, empty? is matrix_t -> boolean, equal is matrix_t -> matrix_t -> boolean, @@ -886,7 +905,7 @@ toSparse is matrix_t -> matrix_t, toDense is matrix_t -> matrix_t, scaled is number -> matrix_t -> matrix_t, - resizedTo is { .rows is number, .columns is number } -> matrix_t -> matrix_t, + resizedTo is { rows is number, columns is number } -> matrix_t -> matrix_t, minValue is matrix_t -> number, maxValue is matrix_t -> number, asRows is matrix_t -> list, @@ -907,7 +926,9 @@ newMatrix is (ColumnMajor () | RowMajor ()) -> list -> matrix_t, newRowVector is vec.vector_t -> matrix_t, newColumnVector is vec.vector_t -> matrix_t, - newSparseMatrix is (ColumnMajor () | RowMajor ()) -> { .rows is number, .columns is number } -> list<{ .i is number, .j is number, .v is number }> -> matrix_t, - enumerate is matrix_t -> list<{ .i is number, .j is number, .v is number }> + newSparseMatrix is (ColumnMajor () | RowMajor ()) -> { rows is number, columns is number } -> list<{ i is number, j is number, v is number }> -> matrix_t, + enumerate is matrix_t -> list<{ i is number, j is number, v is number }>, + format is matrix_t -> string, + print is matrix_t -> (), } diff -r f06cdae4615e -r 120a2dc3d93b src/may/matrix/complex.yeti --- a/src/may/matrix/complex.yeti Sat Nov 16 10:11:28 2013 +0000 +++ b/src/may/matrix/complex.yeti Mon Nov 18 16:54:46 2013 +0000 @@ -320,7 +320,7 @@ newComplexColumnVector, enumerate, } as { - size is complexmatrix_t -> { .rows is number, .columns is number }, + size is complexmatrix_t -> { rows is number, columns is number }, width is complexmatrix_t -> number, height is complexmatrix_t -> number, density is complexmatrix_t -> number, @@ -331,9 +331,9 @@ getDiagonal is number -> complexmatrix_t -> array, asRows is complexmatrix_t -> list>, asColumns is complexmatrix_t -> list>, - generate is (number -> number -> cpx.complex_t) -> { .rows is number, .columns is number } -> complexmatrix_t, - constMatrix is cpx.complex_t -> { .rows is number, .columns is number } -> complexmatrix_t, - zeroMatrix is { .rows is number, .columns is number } -> complexmatrix_t, + generate is (number -> number -> cpx.complex_t) -> { rows is number, columns is number } -> complexmatrix_t, + constMatrix is cpx.complex_t -> { rows is number, columns is number } -> complexmatrix_t, + zeroMatrix is { rows is number, columns is number } -> complexmatrix_t, equal is complexmatrix_t -> complexmatrix_t -> boolean, conjugateTransposed is complexmatrix_t -> complexmatrix_t, transposed is complexmatrix_t -> complexmatrix_t, @@ -358,6 +358,6 @@ newComplexMatrix is (ColumnMajor () | RowMajor ()) -> list?> -> complexmatrix_t, newComplexRowVector is list? -> complexmatrix_t, newComplexColumnVector is list? -> complexmatrix_t, - enumerate is complexmatrix_t -> list<{ .i is number, .j is number, .v is cpx.complex_t }>, + enumerate is complexmatrix_t -> list<{ i is number, j is number, v is cpx.complex_t }>, }