10 #ifndef EIGEN_TESTSPARSE_H
11 #define EIGEN_TESTSPARSE_H
13 #define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
25 #include <unordered_map>
26 #define EIGEN_UNORDERED_MAP_SUPPORT
28 #include <Eigen/Cholesky>
30 #include <Eigen/Sparse>
41 template <
typename Scalar,
int Opt1,
int Opt2,
typename StorageIndex>
49 int nnz =
static_cast<int>((1.5 *
density) *
static_cast<double>(IsRowMajor ? refMat.
cols() : refMat.
rows()));
50 sparseMat.
reserve(VectorXi::Constant(IsRowMajor ? refMat.
rows() : refMat.
cols(), nnz));
52 Index insert_count = 0;
61 v = internal::random<Scalar>() *
Scalar(3.);
80 }
else if (zeroCoords) {
92 template <
typename Scalar,
int Options,
typename Index>
94 std::vector<int>* zeroCoords = 0, std::vector<int>* nonzeroCoords = 0) {
97 for (
int i = 0;
i < refVec.size();
i++) {
101 if (nonzeroCoords) nonzeroCoords->push_back(
i);
102 }
else if (zeroCoords)
103 zeroCoords->push_back(
i);
108 template <
typename Scalar,
int Options,
typename Index>
110 std::vector<int>* zeroCoords = 0, std::vector<int>* nonzeroCoords = 0) {
113 for (
int i = 0;
i < refVec.size();
i++) {
117 if (nonzeroCoords) nonzeroCoords->push_back(
i);
118 }
else if (zeroCoords)
119 zeroCoords->push_back(
i);
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
int i
Definition: BiCGSTAB_step_by_step.cpp:9
SCALAR Scalar
Definition: bench_gemm.cpp:45
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: PlainObjectBase.h:192
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: PlainObjectBase.h:191
A versatible sparse matrix representation.
Definition: SparseMatrix.h:121
void setZero()
Definition: SparseMatrix.h:303
Index outerSize() const
Definition: SparseMatrix.h:166
Scalar & insertByOuterInner(Index j, Index i)
Definition: SparseMatrix.h:566
Index innerSize() const
Definition: SparseMatrix.h:164
void reserve(Index reserveSize)
Definition: SparseMatrix.h:315
a sparse vector class
Definition: SparseVector.h:62
Scalar & insertBack(Index i)
Definition: SparseVector.h:142
void setZero()
Definition: SparseVector.h:127
void reserve(Index reserveSize)
Definition: SparseVector.h:186
float real
Definition: datatypes.h:10
EIGEN_BLAS_FUNC() swap(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy)
Definition: level1_impl.h:117
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool is_exactly_zero(const X &x)
Definition: Meta.h:592
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
@ ForceRealDiag
Definition: sparse.h:32
@ ForceNonZeroDiag
Definition: sparse.h:32
@ MakeUpperTriangular
Definition: sparse.h:32
@ MakeLowerTriangular
Definition: sparse.h:32
void initSparse(double density, Matrix< Scalar, Dynamic, Dynamic, Opt1 > &refMat, SparseMatrix< Scalar, Opt2, StorageIndex > &sparseMat, int flags=0, std::vector< Matrix< StorageIndex, 2, 1 > > *zeroCoords=0, std::vector< Matrix< StorageIndex, 2, 1 > > *nonzeroCoords=0)
Definition: sparse.h:42
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2