use of org.ojalgo.matrix.transformation.Householder in project ojAlgo by optimatika.
the class PrimitiveDenseStore method transformRight.
public void transformRight(final Householder<Double> transformation, final int firstRow) {
final Householder.Primitive tmpTransf = PrimitiveDenseStore.cast(transformation);
final double[] tmpData = data;
final int tmpRowDim = myRowDim;
final int tmpColDim = myColDim;
final double[] tmpWorker = this.getWorkerColumn();
if ((tmpRowDim - firstRow) > HouseholderRight.THRESHOLD) {
final DivideAndConquer tmpConquerer = new DivideAndConquer() {
@Override
public void conquer(final int first, final int limit) {
HouseholderRight.invoke(tmpData, tmpRowDim, first, limit, tmpColDim, tmpTransf, tmpWorker);
}
};
tmpConquerer.invoke(firstRow, tmpRowDim, HouseholderRight.THRESHOLD);
} else {
HouseholderRight.invoke(tmpData, tmpRowDim, firstRow, tmpRowDim, tmpColDim, tmpTransf, tmpWorker);
}
}
use of org.ojalgo.matrix.transformation.Householder in project ojAlgo by optimatika.
the class GenericDenseStore method transformLeft.
public void transformLeft(final Householder<N> transformation, final int firstColumn) {
final Householder.Generic<N> tmpTransf = this.cast(transformation);
final N[] tmpData = data;
final int tmpRowDim = myRowDim;
final int tmpColDim = myColDim;
if ((tmpColDim - firstColumn) > HouseholderLeft.THRESHOLD) {
final DivideAndConquer tmpConquerer = new DivideAndConquer() {
@Override
public void conquer(final int aFirst, final int aLimit) {
HouseholderLeft.invoke(tmpData, tmpRowDim, aFirst, aLimit, tmpTransf, myFactory.scalar());
}
};
tmpConquerer.invoke(firstColumn, tmpColDim, HouseholderLeft.THRESHOLD);
} else {
HouseholderLeft.invoke(tmpData, tmpRowDim, firstColumn, tmpColDim, tmpTransf, myFactory.scalar());
}
}
use of org.ojalgo.matrix.transformation.Householder in project ojAlgo by optimatika.
the class GenericDenseStore method transformRight.
public void transformRight(final Householder<N> transformation, final int firstRow) {
final Householder.Generic<N> tmpTransf = this.cast(transformation);
final N[] tmpData = data;
final int tmpRowDim = myRowDim;
final int tmpColDim = myColDim;
if ((tmpRowDim - firstRow) > HouseholderRight.THRESHOLD) {
final DivideAndConquer tmpConquerer = new DivideAndConquer() {
@Override
public void conquer(final int aFirst, final int aLimit) {
HouseholderRight.invoke(tmpData, aFirst, aLimit, tmpColDim, tmpTransf, myFactory.scalar());
}
};
tmpConquerer.invoke(firstRow, tmpRowDim, HouseholderRight.THRESHOLD);
} else {
HouseholderRight.invoke(tmpData, firstRow, tmpRowDim, tmpColDim, tmpTransf, myFactory.scalar());
}
}
Aggregations