Compute the eigendecomposition of a 2x2 symmetric matrix.
var dlaev2 = require( '@stdlib/lapack/base/dlaev2' );Computes the eigendecomposition of a 2x2 symmetric matrix.
var Float64Array = require( '@stdlib/array/float64' );
var ev = new Float64Array( 2 );
var out = new Float64Array( 2 );
out = dlaev2( 2.0, 3.0, 4.0, out, ev );
// out => <Float64Array>[ ~6.162, ~-0.162 ]
// ev => <Float64Array>[ ~0.585, ~0.811 ]The function has the following parameters:
- A: the (0,0) element of a 2x2 symmetric matrix.
- B: the (0,1) and the conjugate of (1,0) element of a 2x2 symmetric matrix.
- C: the (1,1) element of a 2x2 symmetric matrix.
- out: output
Float64Arraycontaining the eigenvalues of larger and smaller absolute values respectively. - ev: output
Float64ArraycontainingCS1andSN1which is unit right eigenvector forRT1giving the decomposition.
Note that indexing is relative to the first index. To introduce an offset, use typed array views.
var Float64Array = require( '@stdlib/array/float64' );
// Initial arrays...
var out0 = new Float64Array( [ 1.0, 2.0, 3.0 ] );
var ev0 = new Float64Array( [ 1.0, 2.0, 3.0 ] );
// Create offset views...
var out1 = new Float64Array( out0.buffer, out0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
var ev1 = new Float64Array( ev0.buffer, ev0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
dlaev2( 2.0, 3.0, 4.0, out1, ev1 );
// out0 => <Float64Array>[ 1.0, ~6.162, ~-0.162 ]
// ev0 => <Float64Array>[ 1.0, ~0.585, ~0.811 ]Computes the eigendecomposition of a 2x2 symmetric matrix using alternative indexing semantics.
var Float64Array = require( '@stdlib/array/float64' );
var ev = new Float64Array( 2 );
var out = new Float64Array( 2 );
out = dlaev2.ndarray( 2.0, 3.0, 4.0, out, 1, 0, ev, 1, 0 );
// out => <Float64Array>[ ~6.162, ~-0.162 ]
// ev => <Float64Array>[ ~0.585, ~0.811 ]The function has the following additional parameters:
- sout: stride length for
out. - oout: starting index of
out. - sev: stride length for
ev. - oev: starting index of
ev.
While typed array views mandate a view offset based on the underlying buffer, the offset parameters support indexing semantics based on starting indices. For example,
var Float64Array = require( '@stdlib/array/float64' );
var ev = new Float64Array( [ 999.9, 0.0, 999.9, 0.0 ] );
var out = new Float64Array( [ 0.0, 999.9, 0.0 ] );
out = dlaev2.ndarray( 2.0, 3.0, 4.0, out, -2, 2, ev, 2, 1 );
// out => <Float64Array>[ ~-0.162, 999.9, ~6.162 ]
// ev => <Float64Array>[ 999.9, ~0.585, 999.9, ~0.811 ]var Float64Array = require( '@stdlib/array/float64' );
var dlaev2 = require( '@stdlib/lapack/base/dlaev2' );
var ev = new Float64Array( 2 );
var out = new Float64Array( 2 );
out = dlaev2( 2.0, 3.0, 4.0, out, ev );
console.log( 'out: ', out );
console.log( 'ev: ', ev );TODOTODO.
TODOTODO
TODOTODO