2.0.1 • Published 9 years ago

ndarray-ldl-factorization v2.0.1

Weekly downloads
3
License
-
Repository
github
Last release
9 years ago

ndarray-ldl-factorization

NPM version Build Status Dependencies

LDL Decomposition for ndarrays

Installation

$ npm install ndarray-ldl-factorization

For use in the browser, use browserify.

Usage

var ldl = require( 'ndarray-ldl-factorization' );

ldl(A, L, d)

This function calculates the LDL decomposition of matrix A = LDL^t, where L is a lower-unit triangular matrix and D is a diagonal matrix. Consult the book Matrix computations (3rd ed.) by Gene H. Golub and Charles F. Van Loan for further information. The function takes L and d, the vector of diagonal elements of D, as arguments and changes them during execution. Note in particular the the upper triangular part of L is left untouched and so is not automatically zeroed.

ldl(A)

This function calculates the in-place LDL decomposition of matrix A = LDL^t. It is equivalent to ldl( A, A, diag(A) ) using diag = require('ndarray-diagonal').

Examples

var ndarray = require('ndarray'),
	show = require('ndarray-show'),
	ldl = require( 'ndarray-ldl-factorization' ),
	pool = require('ndarray-scratch');

var A = ndarray(new Float64Array([9,-1,2,-1,8,-5,2,-5,7]), [3,3]);
var L = pool.zeros( A.shape, A.dtype );
var d = pool.zeros( [ A.shape[0] ], A.dtype);

ldl(A, L, d);

console.log( 'A:\n' + show(A), '\n' );

/*  
   9.000   -1.000    2.000
  -1.000    8.000   -5.000
   2.000   -5.000    7.000
*/

console.log( 'L:\n' + show(L) );

/*
   1.000   -0.111    0.222
   0.000    1.000   -0.606
   0.000    0.000    1.000
*/

console.log( 'd:\n' + show(d) );

/*
 9.000    7.889    3.662
*/

To run the example code from the top-level application directory,

$ node ./examples/index.js

Tests

Unit

Unit tests use the Tape test framework. To run the tests, execute the following command in the top-level application directory:

$ npm test

License

MIT license.

Copyright

Copyright © 2015. Philipp Burckhardt.

2.0.1

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago