236 lines
7.5 KiB
PHP
Executable File
236 lines
7.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* @package JAMA
|
|
*
|
|
* For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n
|
|
* orthogonal matrix Q and an n-by-n upper triangular matrix R so that
|
|
* A = Q*R.
|
|
*
|
|
* The QR decompostion always exists, even if the matrix does not have
|
|
* full rank, so the constructor will never fail. The primary use of the
|
|
* QR decomposition is in the least squares solution of nonsquare systems
|
|
* of simultaneous linear equations. This will fail if isFullRank()
|
|
* returns false.
|
|
*
|
|
* @author Paul Meagher
|
|
* @license PHP v3.0
|
|
* @version 1.1
|
|
*/
|
|
class PHPExcel_Shared_JAMA_QRDecomposition
|
|
{
|
|
const MATRIX_RANK_EXCEPTION = "Can only perform operation on full-rank matrix.";
|
|
|
|
/**
|
|
* Array for internal storage of decomposition.
|
|
* @var array
|
|
*/
|
|
private $QR = array();
|
|
|
|
/**
|
|
* Row dimension.
|
|
* @var integer
|
|
*/
|
|
private $m;
|
|
|
|
/**
|
|
* Column dimension.
|
|
* @var integer
|
|
*/
|
|
private $n;
|
|
|
|
/**
|
|
* Array for internal storage of diagonal of R.
|
|
* @var array
|
|
*/
|
|
private $Rdiag = array();
|
|