Skip to content

Latest commit

 

History

History
166 lines (113 loc) · 3.83 KB

File metadata and controls

166 lines (113 loc) · 3.83 KB

toCompact

Convert a two-dimensional banded nested array to compact banded storage.

Usage

var toCompact = require( '@stdlib/array/base/banded/to-compact' );

toCompact( arr, ku, kl, colexicographic )

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.

Examples

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 ]
    ]
*/