use of org.ojalgo.matrix.store.RawStore in project ojAlgo by optimatika.
the class RawQR method getR.
/**
* Return the upper triangular factor
*
* @return R
*/
public MatrixStore<Double> getR() {
final int tmpColDim = this.getColDim();
final double[][] tmpData = this.getRawInPlaceData();
final RawStore retVal = new RawStore(tmpColDim, tmpColDim);
final double[][] retData = retVal.data;
double[] tmpRow;
for (int i = 0; i < tmpColDim; i++) {
tmpRow = retData[i];
tmpRow[i] = myDiagonalR[i];
for (int j = i + 1; j < tmpColDim; j++) {
tmpRow[j] = tmpData[j][i];
}
}
return retVal;
}
use of org.ojalgo.matrix.store.RawStore in project ojAlgo by optimatika.
the class RawSingularValue method doGetInverse.
MatrixStore<Double> doGetInverse(final PrimitiveDenseStore preallocated) {
if (myPseudoinverse == null) {
final double[][] tmpQ1t = myTransposed ? myVt : myUt;
final double[] tmpSingular = s;
final RawStore tmpMtrx = new RawStore(tmpSingular.length, tmpQ1t[0].length);
final double[][] tmpMtrxData = tmpMtrx.data;
final double tmpEps = (tmpSingular[0] * MACHINE_EPSILON) * tmpSingular.length;
for (int i = 0; i < tmpSingular.length; i++) {
final double tmpVal = tmpSingular[i];
if (tmpVal > tmpEps) {
final double[] tmpRow = tmpMtrxData[i];
for (int j = 0; j < tmpRow.length; j++) {
tmpRow[j] = tmpQ1t[i][j] / tmpVal;
}
}
}
preallocated.fillByMultiplying(this.getQ2(), tmpMtrx);
myPseudoinverse = preallocated;
}
return myPseudoinverse;
}
Aggregations