QR decomposition: Difference between revisions

m
m (Minor refactoring.)
m (→‎{{header|Wren}}: Minor tidy)
 
(2 intermediate revisions by one other user not shown)
Line 2,162:
vectorE.set_entry(i, 0, ( i == k ) ? 1 : 0);
}
vectorE = vectorE.scalarMultiply(magnitudeX).add(vectorX).unit();
vectorE = vectorE.unit();
versions_of_Q.emplace_back(householder_factor(vectorE));
z = versions_of_Q[k].multiply(z1);
Line 3,316 ⟶ 3,315:
for ( int k = 0; k < columnCount && k < rowCount - 1; k++ ) {
Matrix vectorE = new Matrix(rowCount, new double[rowCount][1] );
z1 = z.minor(k);
Matrix vectorX = z1.column(k);
Line 3,327 ⟶ 3,326:
vectorE.setEntry(i, 0, ( i == k ) ? 1 : 0);
}
vectorE = vectorE.scalarMultiply(magnitudeX).add(vectorX).unit();
vectorE = vectorE.unit();
versionsOfQ.add(householderFactor(vectorE));
z = versionsOfQ.get(k).multiply(z1);
Line 3,349 ⟶ 3,347:
final int size = aVector.size();
double[][]Matrix newDataresult = new double[Matrix(size][, size]);
for ( int i = 0; i < size; i++ ) {
for ( int j = 0; j < size; j++ ) {
newData[result.setEntry(i][j], =j, -2 * aVector.getEntry(i, 0) * aVector.getEntry(j, 0));
}
}
for ( int i = 0; i < size; i++ ) {
result.setEntry(i, i, newData[result.getEntry(i][, i]) += 1.0);
}
return new Matrix(newData)result;
}
Line 3,412 ⟶ 3,410:
}
public Matrix(int aRowsaRowCount, int aColsaColumnCount) {
this( new double[aRowsaRowCount][aColsaColumnCount] );
}
 
Line 3,470 ⟶ 3,468:
}
public Matrix column(int aColumnaIndex) {
Matrix result = new Matrix(rowCount, 1);
for ( int i = 0; i < rowCount; i++ ) {
result.setEntry(i, 0, data[i][aColumnaIndex]);
}
return result;
Line 3,484 ⟶ 3,482:
Matrix result = new Matrix(rowCount, columnCount);
for ( int i = 0; i < data.lengthrowCount; i++ ) {
result.data[i][0] = data[i][0] * aValue;
}
Line 3,497 ⟶ 3,495:
final double magnitude = magnitude();
Matrix result = new Matrix(rowCount, columnCount);
for ( int i = 0; i < data.lengthrowCount; i++ ) {
result.data[i][0] = data[i][0] / magnitude;
}
Line 3,519 ⟶ 3,517:
throw new IllegalArgumentException("Incompatible matrix dimensions.");
}
return data.lengthrowCount;
}
Line 3,533 ⟶ 3,531:
}
public double getEntry(int aRow, int aColaColumn) {
return data[aRow][aColaColumn];
}
public void setEntry(int aRow, int aColaColumn, double aValue) {
data[aRow][aColaColumn] = aValue;
}
Line 5,444 ⟶ 5,442:
{{libheader|Wren-matrix}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascriptwren">import "./matrix" for Matrix
import "./fmt" for Fmt
 
var minor = Fn.new { |x, d|
9,482

edits