Convert a two-dimensional banded nested array to compact banded storage.
var toCompact = require( '@stdlib/array/base/banded/to-compact' );Converts a two-dimensional banded nested array to compact banded storage.
var x = [ [ -1, 2, 0 ], [ 2, -2, 4 ], [ 0, 4, -3 ] ];
var out = toCompact( x, 1, 1, false );
// returns [ [ 0, 2, 4 ], [ -1, -2, -3 ], [ 2, 4, 0 ] ]The function accepts the following arguments:
- arr: input two-dimensional nested array.
- ku: number of super-diagonals.
- kl: number of sub-diagonals.
- colexicographic: boolean specifying whether to store diagonals in colexicographic access order.
var toCompact = require( '@stdlib/array/base/banded/to-compact' );
// Define a banded matrix:
var A = [
[ 1, 2, 3, 0, 0 ],
[ -2, 4, 5, 6, 0 ],
[ -3, -5, 7, 8, 9 ],
[ 0, -6, -8, 10, 11 ],
[ 0, 0, -9, -11, 12 ]
];
// Convert the matrix to lexicographic compact form:
var AC = toCompact( A, 2, 2, false );
/* e.g., returns =>
[
[ 0, 0, 3, 6, 9 ],
[ 0, 2, 5, 8, 11 ],
[ 1, 4, 7, 10, 12 ],
[ -2, -5, -8, -11, 0 ],
[ -3, -6, -9, 0, 0 ]
]
*/
AC = toCompact( A, 2, 1, false );
/* e.g., returns =>
[
[ 0, 0, 3, 6, 9 ],
[ 0, 2, 5, 8, 11 ],
[ 1, 4, 7, 10, 12 ],
[ -2, -5, -8, -11, 0 ]
]
*/
AC = toCompact( A, 1, 2, false );
/* e.g., returns =>
[
[ 0, 2, 5, 8, 11 ],
[ 1, 4, 7, 10, 12 ],
[ -2, -5, -8, -11, 0 ],
[ -3, -6, -9, 0, 0 ]
]
*/
// Convert the matrix to colexicographic compact form:
AC = toCompact( A, 2, 2, true );
/* e.g., returns =>
[
[ 0, 0, 1, 2, 3 ],
[ 0, -2, 4, 5, 6 ],
[ -3, -5, 7, 8, 9 ],
[ -6, -8, 10, 11, 0 ],
[ -9, -11, 12, 0, 0 ]
]
*/