mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-17 20:03:17 +08:00
fix compilation errors with ICC
This commit is contained in:
parent
a594d7ffd7
commit
bc7b251cd9
@ -142,14 +142,15 @@ struct conservative_sparse_sparse_product_selector;
|
|||||||
template<typename Lhs, typename Rhs, typename ResultType>
|
template<typename Lhs, typename Rhs, typename ResultType>
|
||||||
struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
|
struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
|
||||||
{
|
{
|
||||||
typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
|
typedef typename remove_all<Lhs>::type LhsCleaned;
|
||||||
|
typedef typename LhsCleaned::Scalar Scalar;
|
||||||
|
|
||||||
static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
|
static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
|
||||||
{
|
{
|
||||||
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
||||||
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
||||||
ColMajorMatrix resCol(lhs.rows(),rhs.cols());
|
ColMajorMatrix resCol(lhs.rows(),rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
|
internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
|
||||||
// sort the non zeros:
|
// sort the non zeros:
|
||||||
RowMajorMatrix resRow(resCol);
|
RowMajorMatrix resRow(resCol);
|
||||||
res = resRow;
|
res = resRow;
|
||||||
@ -164,7 +165,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,C
|
|||||||
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
||||||
RowMajorMatrix rhsRow = rhs;
|
RowMajorMatrix rhsRow = rhs;
|
||||||
RowMajorMatrix resRow(lhs.rows(), rhs.cols());
|
RowMajorMatrix resRow(lhs.rows(), rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<RowMajorMatrix,Lhs,RowMajorMatrix>(rhsRow, lhs, resRow);
|
internal::conservative_sparse_sparse_product_impl<RowMajorMatrix,Lhs,RowMajorMatrix>(rhsRow, lhs, resRow);
|
||||||
res = resRow;
|
res = resRow;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -177,7 +178,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,R
|
|||||||
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
||||||
RowMajorMatrix lhsRow = lhs;
|
RowMajorMatrix lhsRow = lhs;
|
||||||
RowMajorMatrix resRow(lhs.rows(), rhs.cols());
|
RowMajorMatrix resRow(lhs.rows(), rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<Rhs,RowMajorMatrix,RowMajorMatrix>(rhs, lhsRow, resRow);
|
internal::conservative_sparse_sparse_product_impl<Rhs,RowMajorMatrix,RowMajorMatrix>(rhs, lhsRow, resRow);
|
||||||
res = resRow;
|
res = resRow;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -189,7 +190,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,R
|
|||||||
{
|
{
|
||||||
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
||||||
RowMajorMatrix resRow(lhs.rows(), rhs.cols());
|
RowMajorMatrix resRow(lhs.rows(), rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
|
internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
|
||||||
res = resRow;
|
res = resRow;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -204,7 +205,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,C
|
|||||||
{
|
{
|
||||||
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
||||||
ColMajorMatrix resCol(lhs.rows(), rhs.cols());
|
ColMajorMatrix resCol(lhs.rows(), rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
|
internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
|
||||||
res = resCol;
|
res = resCol;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -217,7 +218,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,C
|
|||||||
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
||||||
ColMajorMatrix lhsCol = lhs;
|
ColMajorMatrix lhsCol = lhs;
|
||||||
ColMajorMatrix resCol(lhs.rows(), rhs.cols());
|
ColMajorMatrix resCol(lhs.rows(), rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<ColMajorMatrix,Rhs,ColMajorMatrix>(lhsCol, rhs, resCol);
|
internal::conservative_sparse_sparse_product_impl<ColMajorMatrix,Rhs,ColMajorMatrix>(lhsCol, rhs, resCol);
|
||||||
res = resCol;
|
res = resCol;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -230,7 +231,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,R
|
|||||||
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
||||||
ColMajorMatrix rhsCol = rhs;
|
ColMajorMatrix rhsCol = rhs;
|
||||||
ColMajorMatrix resCol(lhs.rows(), rhs.cols());
|
ColMajorMatrix resCol(lhs.rows(), rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<Lhs,ColMajorMatrix,ColMajorMatrix>(lhs, rhsCol, resCol);
|
internal::conservative_sparse_sparse_product_impl<Lhs,ColMajorMatrix,ColMajorMatrix>(lhs, rhsCol, resCol);
|
||||||
res = resCol;
|
res = resCol;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -243,7 +244,7 @@ struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,R
|
|||||||
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
|
||||||
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
||||||
RowMajorMatrix resRow(lhs.rows(),rhs.cols());
|
RowMajorMatrix resRow(lhs.rows(),rhs.cols());
|
||||||
conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
|
internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
|
||||||
// sort the non zeros:
|
// sort the non zeros:
|
||||||
ColMajorMatrix resCol(resRow);
|
ColMajorMatrix resCol(resRow);
|
||||||
res = resCol;
|
res = resCol;
|
||||||
|
@ -101,7 +101,7 @@ struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,C
|
|||||||
static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, RealScalar tolerance)
|
static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, RealScalar tolerance)
|
||||||
{
|
{
|
||||||
typename remove_all<ResultType>::type _res(res.rows(), res.cols());
|
typename remove_all<ResultType>::type _res(res.rows(), res.cols());
|
||||||
sparse_sparse_product_with_pruning_impl<Lhs,Rhs,ResultType>(lhs, rhs, _res, tolerance);
|
internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,ResultType>(lhs, rhs, _res, tolerance);
|
||||||
res.swap(_res);
|
res.swap(_res);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -115,7 +115,7 @@ struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,C
|
|||||||
// we need a col-major matrix to hold the result
|
// we need a col-major matrix to hold the result
|
||||||
typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
|
typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
|
||||||
SparseTemporaryType _res(res.rows(), res.cols());
|
SparseTemporaryType _res(res.rows(), res.cols());
|
||||||
sparse_sparse_product_with_pruning_impl<Lhs,Rhs,SparseTemporaryType>(lhs, rhs, _res, tolerance);
|
internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,SparseTemporaryType>(lhs, rhs, _res, tolerance);
|
||||||
res = _res;
|
res = _res;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -128,7 +128,7 @@ struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,R
|
|||||||
{
|
{
|
||||||
// let's transpose the product to get a column x column product
|
// let's transpose the product to get a column x column product
|
||||||
typename remove_all<ResultType>::type _res(res.rows(), res.cols());
|
typename remove_all<ResultType>::type _res(res.rows(), res.cols());
|
||||||
sparse_sparse_product_with_pruning_impl<Rhs,Lhs,ResultType>(rhs, lhs, _res, tolerance);
|
internal::sparse_sparse_product_with_pruning_impl<Rhs,Lhs,ResultType>(rhs, lhs, _res, tolerance);
|
||||||
res.swap(_res);
|
res.swap(_res);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -142,7 +142,7 @@ struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,R
|
|||||||
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
|
||||||
ColMajorMatrix colLhs(lhs);
|
ColMajorMatrix colLhs(lhs);
|
||||||
ColMajorMatrix colRhs(rhs);
|
ColMajorMatrix colRhs(rhs);
|
||||||
sparse_sparse_product_with_pruning_impl<ColMajorMatrix,ColMajorMatrix,ResultType>(colLhs, colRhs, res, tolerance);
|
internal::sparse_sparse_product_with_pruning_impl<ColMajorMatrix,ColMajorMatrix,ResultType>(colLhs, colRhs, res, tolerance);
|
||||||
|
|
||||||
// let's transpose the product to get a column x column product
|
// let's transpose the product to get a column x column product
|
||||||
// typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
|
// typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user