SparseMap.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #ifndef EIGEN_SPARSE_MAP_H
11 #define EIGEN_SPARSE_MAP_H
12 
13 namespace Eigen {
14 
15 namespace internal {
16 
17 template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
18 struct traits<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
19  : public traits<SparseMatrix<MatScalar,MatOptions,MatIndex> >
20 {
23  enum {
24  Flags = TraitsBase::Flags & (~NestByRefBit)
25  };
26 };
27 
28 template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
29 struct traits<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
30  : public traits<SparseMatrix<MatScalar,MatOptions,MatIndex> >
31 {
34  enum {
35  Flags = TraitsBase::Flags & (~ (NestByRefBit | LvalueBit))
36  };
37 };
38 
39 } // end namespace internal
40 
41 template<typename Derived,
43 > class SparseMapBase;
44 
49 template<typename Derived>
51  : public SparseCompressedBase<Derived>
52 {
53  public:
55  typedef typename Base::Scalar Scalar;
56  typedef typename Base::StorageIndex StorageIndex;
57  enum { IsRowMajor = Base::IsRowMajor };
58  using Base::operator=;
59  protected:
60 
61  typedef typename internal::conditional<
64  typedef typename internal::conditional<
67 
75 
76  public:
77 
79  inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
81  inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
83  inline Index innerSize() const { return m_innerSize; }
85  inline Index outerSize() const { return m_outerSize; }
87  inline Index nonZeros() const { return m_zero_nnz[1]; }
88 
90  bool isCompressed() const { return m_innerNonZeros==0; }
91 
92  //----------------------------------------
93  // direct access interface
95  inline const Scalar* valuePtr() const { return m_values; }
97  inline const StorageIndex* innerIndexPtr() const { return m_innerIndices; }
99  inline const StorageIndex* outerIndexPtr() const { return m_outerIndex; }
101  inline const StorageIndex* innerNonZeroPtr() const { return m_innerNonZeros; }
102  //----------------------------------------
103 
105  inline Scalar coeff(Index row, Index col) const
106  {
107  const Index outer = IsRowMajor ? row : col;
108  const Index inner = IsRowMajor ? col : row;
109 
110  Index start = m_outerIndex[outer];
111  Index end = isCompressed() ? m_outerIndex[outer+1] : start + m_innerNonZeros[outer];
112  if (start==end)
113  return Scalar(0);
114  else if (end>0 && inner==m_innerIndices[end-1])
115  return m_values[end-1];
116  // ^^ optimization: let's first check if it is the last coefficient
117  // (very common in high level algorithms)
118 
119  const StorageIndex* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner);
120  const Index id = r-&m_innerIndices[0];
121  return ((*r==inner) && (id<end)) ? m_values[id] : Scalar(0);
122  }
123 
124  inline SparseMapBase(Index rows, Index cols, Index nnz, IndexPointer outerIndexPtr, IndexPointer innerIndexPtr,
125  ScalarPointer valuePtr, IndexPointer innerNonZerosPtr = 0)
126  : m_outerSize(IsRowMajor?rows:cols), m_innerSize(IsRowMajor?cols:rows), m_zero_nnz(0,internal::convert_index<StorageIndex>(nnz)), m_outerIndex(outerIndexPtr),
127  m_innerIndices(innerIndexPtr), m_values(valuePtr), m_innerNonZeros(innerNonZerosPtr)
128  {}
129 
130  // for vectors
131  inline SparseMapBase(Index size, Index nnz, IndexPointer innerIndexPtr, ScalarPointer valuePtr)
132  : m_outerSize(1), m_innerSize(size), m_zero_nnz(0,internal::convert_index<StorageIndex>(nnz)), m_outerIndex(m_zero_nnz.data()),
133  m_innerIndices(innerIndexPtr), m_values(valuePtr), m_innerNonZeros(0)
134  {}
135 
137  inline ~SparseMapBase() {}
138 
139  protected:
140  inline SparseMapBase() {}
141 };
142 
147 template<typename Derived>
149  : public SparseMapBase<Derived,ReadOnlyAccessors>
150 {
152 
153  public:
155  typedef typename Base::Scalar Scalar;
156  typedef typename Base::StorageIndex StorageIndex;
157  enum { IsRowMajor = Base::IsRowMajor };
158 
159  using Base::operator=;
160 
161  public:
162 
163  //----------------------------------------
164  // direct access interface
165  using Base::valuePtr;
166  using Base::innerIndexPtr;
167  using Base::outerIndexPtr;
168  using Base::innerNonZeroPtr;
170  inline Scalar* valuePtr() { return Base::m_values; }
172  inline StorageIndex* innerIndexPtr() { return Base::m_innerIndices; }
174  inline StorageIndex* outerIndexPtr() { return Base::m_outerIndex; }
176  inline StorageIndex* innerNonZeroPtr() { return Base::m_innerNonZeros; }
177  //----------------------------------------
178 
181  {
182  const Index outer = IsRowMajor ? row : col;
183  const Index inner = IsRowMajor ? col : row;
184 
185  Index start = Base::m_outerIndex[outer];
186  Index end = Base::isCompressed() ? Base::m_outerIndex[outer+1] : start + Base::m_innerNonZeros[outer];
187  eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
188  eigen_assert(end>start && "coeffRef cannot be called on a zero coefficient");
189  StorageIndex* r = std::lower_bound(&Base::m_innerIndices[start],&Base::m_innerIndices[end],inner);
190  const Index id = r - &Base::m_innerIndices[0];
191  eigen_assert((*r==inner) && (id<end) && "coeffRef cannot be called on a zero coefficient");
192  return const_cast<Scalar*>(Base::m_values)[id];
193  }
194 
195  inline SparseMapBase(Index rows, Index cols, Index nnz, StorageIndex* outerIndexPtr, StorageIndex* innerIndexPtr,
196  Scalar* valuePtr, StorageIndex* innerNonZerosPtr = 0)
197  : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZerosPtr)
198  {}
199 
200  // for vectors
201  inline SparseMapBase(Index size, Index nnz, StorageIndex* innerIndexPtr, Scalar* valuePtr)
202  : Base(size, nnz, innerIndexPtr, valuePtr)
203  {}
204 
206  inline ~SparseMapBase() {}
207 
208  protected:
209  inline SparseMapBase() {}
210 };
211 
220 #ifndef EIGEN_PARSED_BY_DOXYGEN
221 template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
222 class Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType>
223  : public SparseMapBase<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
224 #else
225 template<typename SparseMatrixType>
226 class Map<SparseMatrixType>
227  : public SparseMapBase<Derived,WriteAccessors>
228 #endif
229 {
230  public:
233  enum { IsRowMajor = Base::IsRowMajor };
234 
235  public:
236 
245  inline Map(Index rows, Index cols, Index nnz, StorageIndex* outerIndexPtr,
246  StorageIndex* innerIndexPtr, Scalar* valuePtr, StorageIndex* innerNonZerosPtr = 0)
247  : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZerosPtr)
248  {}
249 #ifndef EIGEN_PARSED_BY_DOXYGEN
250 
251  inline ~Map() {}
252 };
253 
254 template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
255 class Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType>
256  : public SparseMapBase<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
257 {
258  public:
261  enum { IsRowMajor = Base::IsRowMajor };
262 
263  public:
264 #endif
265 
270  inline Map(Index rows, Index cols, Index nnz, const StorageIndex* outerIndexPtr,
271  const StorageIndex* innerIndexPtr, const Scalar* valuePtr, const StorageIndex* innerNonZerosPtr = 0)
272  : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZerosPtr)
273  {}
274 
276  inline ~Map() {}
277 };
278 
279 namespace internal {
280 
281 template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
282 struct evaluator<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
283  : evaluator<SparseCompressedBase<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
284 {
287  evaluator() : Base() {}
288  explicit evaluator(const XprType &mat) : Base(mat) {}
289 };
290 
291 template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
292 struct evaluator<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
293  : evaluator<SparseCompressedBase<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
294 {
297  evaluator() : Base() {}
298  explicit evaluator(const XprType &mat) : Base(mat) {}
299 };
300 
301 }
302 
303 } // end namespace Eigen
304 
305 #endif // EIGEN_SPARSE_MAP_H
Eigen::SparseMapBase< Derived, WriteAccessors >::valuePtr
Scalar * valuePtr()
Definition: SparseMap.h:170
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::nonZeros
Index nonZeros() const
Definition: SparseMap.h:87
Eigen::SparseMapBase< Derived, WriteAccessors >::Scalar
Base::Scalar Scalar
Definition: SparseMap.h:155
Eigen::internal::traits< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::TraitsBase
traits< PlainObjectType > TraitsBase
Definition: SparseMap.h:33
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::IndexPointer
internal::conditional< bool(internal::is_lvalue< Derived >::value), StorageIndex *, const StorageIndex * >::type IndexPointer
Definition: SparseMap.h:66
Eigen::SparseMapBase< Derived, WriteAccessors >::SparseMapBase
SparseMapBase(Index size, Index nnz, StorageIndex *innerIndexPtr, Scalar *valuePtr)
Definition: SparseMap.h:201
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_zero_nnz
Array< StorageIndex, 2, 1 > m_zero_nnz
Definition: SparseMap.h:70
Eigen
Namespace containing all symbols from the Eigen library.
Definition: jet.h:637
Eigen::SparseMatrix
A versatible sparse matrix representation.
Definition: SparseMatrix.h:96
col
m col(1)
Eigen::SparseMapBase< Derived, WriteAccessors >::StorageIndex
Base::StorageIndex StorageIndex
Definition: SparseMap.h:156
Eigen::SparseMapBase< Derived, WriteAccessors >::ReadOnlyMapBase
MapBase< Derived, ReadOnlyAccessors > ReadOnlyMapBase
Definition: SparseMap.h:151
Eigen::SparseMapBase< Derived, WriteAccessors >::outerIndexPtr
StorageIndex * outerIndexPtr()
Definition: SparseMap.h:174
Eigen::Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >::Base
SparseMapBase< Map > Base
Definition: SparseMap.h:231
eigen_assert
#define eigen_assert(x)
Definition: Macros.h:1037
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::isCompressed
bool isCompressed() const
Definition: SparseMap.h:90
Eigen::internal::is_lvalue
Definition: XprHelper.h:659
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::outerIndexPtr
const StorageIndex * outerIndexPtr() const
Definition: SparseMap.h:99
Eigen::Array< StorageIndex, 2, 1 >
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::innerSize
Index innerSize() const
Definition: SparseMap.h:83
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::coeff
Scalar coeff(Index row, Index col) const
Definition: SparseMap.h:105
type
Definition: pytypes.h:1491
Eigen::SparseMapBase
Definition: SparseMap.h:43
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_innerNonZeros
IndexPointer m_innerNonZeros
Definition: SparseMap.h:74
mat
MatrixXf mat
Definition: Tutorial_AdvancedInitialization_CommaTemporary.cpp:1
Eigen::internal::traits< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::PlainObjectType
SparseMatrix< MatScalar, MatOptions, MatIndex > PlainObjectType
Definition: SparseMap.h:32
Eigen::Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >::~Map
~Map()
Definition: SparseMap.h:251
rows
int rows
Definition: Tutorial_commainit_02.cpp:1
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::cols
Index cols() const
Definition: SparseMap.h:81
Eigen::internal::evaluator< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::evaluator
evaluator()
Definition: SparseMap.h:297
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_outerSize
Index m_outerSize
Definition: SparseMap.h:68
size
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
Eigen::SparseCompressedBase
Common base class for sparse [compressed]-{row|column}-storage format.
Definition: SparseCompressedBase.h:15
EIGEN_SPARSE_PUBLIC_INTERFACE
#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
Definition: SparseUtil.h:43
Eigen::internal::true_type
Definition: Meta.h:96
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::Base
SparseCompressedBase< Derived > Base
Definition: SparseMap.h:54
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_outerIndex
IndexPointer m_outerIndex
Definition: SparseMap.h:71
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::SparseMapBase
SparseMapBase(Index size, Index nnz, IndexPointer innerIndexPtr, ScalarPointer valuePtr)
Definition: SparseMap.h:131
id
static const Similarity3 id
Definition: testSimilarity3.cpp:44
Eigen::Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >::Map
Map(Index rows, Index cols, Index nnz, StorageIndex *outerIndexPtr, StorageIndex *innerIndexPtr, Scalar *valuePtr, StorageIndex *innerNonZerosPtr=0)
Definition: SparseMap.h:245
Eigen::internal::evaluator< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::XprType
Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > XprType
Definition: SparseMap.h:296
Eigen::internal::evaluator< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::evaluator
evaluator(const XprType &mat)
Definition: SparseMap.h:288
data
int data[]
Definition: Map_placement_new.cpp:1
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >
Common base class for Map and Ref instance of sparse matrix and vector.
Definition: SparseMap.h:50
Eigen::LvalueBit
const unsigned int LvalueBit
Definition: Constants.h:144
Eigen::Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >::Base
SparseMapBase< Map > Base
Definition: SparseMap.h:259
Eigen::internal::evaluator< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::Base
evaluator< SparseCompressedBase< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > > > Base
Definition: SparseMap.h:295
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::SparseMapBase
SparseMapBase(Index rows, Index cols, Index nnz, IndexPointer outerIndexPtr, IndexPointer innerIndexPtr, ScalarPointer valuePtr, IndexPointer innerNonZerosPtr=0)
Definition: SparseMap.h:124
Eigen::Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >
Specialization of class Map for SparseMatrix-like storage.
Definition: SparseMap.h:222
Eigen::SparseMapBase< Derived, WriteAccessors >::~SparseMapBase
~SparseMapBase()
Definition: SparseMap.h:206
Eigen::SparseMapBase< Derived, WriteAccessors >::innerIndexPtr
StorageIndex * innerIndexPtr()
Definition: SparseMap.h:172
Eigen::internal::traits< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::TraitsBase
traits< PlainObjectType > TraitsBase
Definition: SparseMap.h:22
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::rows
Index rows() const
Definition: SparseMap.h:79
Eigen::internal::accessors_level::has_write_access
@ has_write_access
Definition: ForwardDeclarations.h:33
Eigen::internal::evaluator
Definition: CoreEvaluators.h:90
Eigen::Map
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:94
Eigen::internal::convert_index
EIGEN_DEVICE_FUNC IndexDest convert_index(const IndexSrc &idx)
Definition: XprHelper.h:31
Eigen::internal::evaluator< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::XprType
Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > XprType
Definition: SparseMap.h:286
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::SparseMapBase
SparseMapBase()
Definition: SparseMap.h:140
Eigen::ReadOnlyAccessors
@ ReadOnlyAccessors
Definition: Constants.h:376
Eigen::Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >::Map
Map(Index rows, Index cols, Index nnz, const StorageIndex *outerIndexPtr, const StorageIndex *innerIndexPtr, const Scalar *valuePtr, const StorageIndex *innerNonZerosPtr=0)
Definition: SparseMap.h:270
Eigen::internal::evaluator< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::evaluator
evaluator()
Definition: SparseMap.h:287
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::ScalarPointer
internal::conditional< bool(internal::is_lvalue< Derived >::value), Scalar *, const Scalar * >::type ScalarPointer
Definition: SparseMap.h:63
Eigen::SparseMapBase< Derived, WriteAccessors >::innerNonZeroPtr
StorageIndex * innerNonZeroPtr()
Definition: SparseMap.h:176
Eigen::internal::traits
Definition: ForwardDeclarations.h:17
Eigen::MapBase< Derived, ReadOnlyAccessors >
Base class for dense Map and Block expression with direct access.
Definition: MapBase.h:37
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::Scalar
Base::Scalar Scalar
Definition: SparseMap.h:55
row
m row(1)
Eigen::Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >
Definition: SparseMap.h:255
Eigen::internal::conditional
Definition: Meta.h:109
Eigen::Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType >::~Map
~Map()
Definition: SparseMap.h:276
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::innerIndexPtr
const StorageIndex * innerIndexPtr() const
Definition: SparseMap.h:97
Eigen::internal::evaluator< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::Base
evaluator< SparseCompressedBase< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > > > Base
Definition: SparseMap.h:285
Eigen::internal::evaluator< Map< const SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::evaluator
evaluator(const XprType &mat)
Definition: SparseMap.h:298
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_innerIndices
IndexPointer m_innerIndices
Definition: SparseMap.h:72
Eigen::SparseMapBase< Derived, WriteAccessors >::coeffRef
Scalar & coeffRef(Index row, Index col)
Definition: SparseMap.h:180
Eigen::SparseMapBase< Derived, WriteAccessors >::SparseMapBase
SparseMapBase(Index rows, Index cols, Index nnz, StorageIndex *outerIndexPtr, StorageIndex *innerIndexPtr, Scalar *valuePtr, StorageIndex *innerNonZerosPtr=0)
Definition: SparseMap.h:195
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::outerSize
Index outerSize() const
Definition: SparseMap.h:85
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::~SparseMapBase
~SparseMapBase()
Definition: SparseMap.h:137
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_values
ScalarPointer m_values
Definition: SparseMap.h:73
internal
Definition: BandTriangularSolver.h:13
cols
int cols
Definition: Tutorial_commainit_02.cpp:1
Eigen::placeholders::end
static const EIGEN_DEPRECATED end_t end
Definition: IndexedViewHelper.h:181
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::valuePtr
const Scalar * valuePtr() const
Definition: SparseMap.h:95
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::innerNonZeroPtr
const StorageIndex * innerNonZeroPtr() const
Definition: SparseMap.h:101
Eigen::WriteAccessors
@ WriteAccessors
Definition: Constants.h:378
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::StorageIndex
Base::StorageIndex StorageIndex
Definition: SparseMap.h:56
Eigen::SparseMapBase< Derived, WriteAccessors >::Base
SparseMapBase< Derived, ReadOnlyAccessors > Base
Definition: SparseMap.h:154
Eigen::SparseMapBase< Derived, WriteAccessors >::SparseMapBase
SparseMapBase()
Definition: SparseMap.h:209
Eigen::NestByRefBit
const unsigned int NestByRefBit
Definition: Constants.h:169
Eigen::internal::traits< Map< SparseMatrix< MatScalar, MatOptions, MatIndex >, Options, StrideType > >::PlainObjectType
SparseMatrix< MatScalar, MatOptions, MatIndex > PlainObjectType
Definition: SparseMap.h:21
Eigen::SparseMapBase< Derived, ReadOnlyAccessors >::m_innerSize
Index m_innerSize
Definition: SparseMap.h:69
Scalar
SCALAR Scalar
Definition: bench_gemm.cpp:46
Eigen::Index
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74


gtsam
Author(s):
autogenerated on Tue Jun 25 2024 03:03:11