Fix MSVC GPU build.

This commit is contained in:
Antonio Sánchez
2024-02-27 23:26:06 +00:00
parent a2f8eba026
commit a962a27594
2 changed files with 16 additions and 15 deletions

View File

@@ -612,7 +612,18 @@ class JacobiSVD : public SVDBase<JacobiSVD<MatrixType_, Options_> > {
using Base::rows;
private:
void allocate(Index rows, Index cols, unsigned int computationOptions);
void allocate(Index rows_, Index cols_, unsigned int computationOptions) {
if (Base::allocate(rows_, cols_, computationOptions)) return;
eigen_assert(!(ShouldComputeThinU && int(QRPreconditioner) == int(FullPivHouseholderQRPreconditioner)) &&
!(ShouldComputeThinU && int(QRPreconditioner) == int(FullPivHouseholderQRPreconditioner)) &&
"JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
"Use the ColPivHouseholderQR preconditioner instead.");
m_workMatrix.resize(diagSize(), diagSize());
if (cols() > rows()) m_qr_precond_morecols.allocate(*this);
if (rows() > cols()) m_qr_precond_morerows.allocate(*this);
}
JacobiSVD& compute_impl(const MatrixType& matrix, unsigned int computationOptions);
protected:
@@ -650,20 +661,6 @@ class JacobiSVD : public SVDBase<JacobiSVD<MatrixType_, Options_> > {
WorkMatrixType m_workMatrix;
};
template <typename MatrixType, int Options>
void JacobiSVD<MatrixType, Options>::allocate(Index rows_, Index cols_, unsigned int computationOptions_) {
if (Base::allocate(rows_, cols_, computationOptions_)) return;
eigen_assert(!(ShouldComputeThinU && int(QRPreconditioner) == int(FullPivHouseholderQRPreconditioner)) &&
!(ShouldComputeThinU && int(QRPreconditioner) == int(FullPivHouseholderQRPreconditioner)) &&
"JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
"Use the ColPivHouseholderQR preconditioner instead.");
m_workMatrix.resize(diagSize(), diagSize());
if (cols() > rows()) m_qr_precond_morecols.allocate(*this);
if (rows() > cols()) m_qr_precond_morerows.allocate(*this);
}
template <typename MatrixType, int Options>
JacobiSVD<MatrixType, Options>& JacobiSVD<MatrixType, Options>::compute_impl(const MatrixType& matrix,
unsigned int computationOptions) {