This commit is contained in:
Gael Guennebaud
2010-07-07 16:44:05 +02:00
54 changed files with 143 additions and 70 deletions

View File

@@ -25,6 +25,20 @@
#ifndef EIGEN_ARRAY_H
#define EIGEN_ARRAY_H
/** \class Array
* \ingroup Core_Module
*
* \brief General-purpose arrays with easy API for coefficient-wise operations
*
* The %Array class is very similar to the Matrix class. It provides
* general-purpose one- and two-dimensional arrays. The difference between the
* %Array and the %Matrix class is primarily in the API: the API for the
* %Array class provides easy access to coefficient-wise operations, while the
* API for the %Matrix class provides easy access to linear-algebra
* operations.
*
* \sa \ref TutorialArrayClass
*/
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
struct ei_traits<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > : ei_traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
{
@@ -231,6 +245,7 @@ class Array
};
/** \defgroup arraytypedefs Global array typedefs
* \ingroup Core_Module
*
* Eigen defines several typedef shortcuts for most common 1D and 2D array types.
*

View File

@@ -28,6 +28,7 @@
template<typename ExpressionType> class MatrixWrapper;
/** \class ArrayBase
* \ingroup Core_Module
*
* \brief Base class for all 1D and 2D array, and related expressions
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_ARRAYWRAPPER_H
/** \class ArrayWrapper
* \ingroup Core_Module
*
* \brief Expression of a mathematical vector or matrix as an array object
*
@@ -110,6 +111,7 @@ class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
};
/** \class MatrixWrapper
* \ingroup Core_Module
*
* \brief Expression of an array as a mathematical vector or matrix
*

View File

@@ -27,6 +27,7 @@
/**
* \class BandMatrix
* \ingroup Core_Module
*
* \brief Represents a rectangular matrix with a banded storage
*
@@ -205,6 +206,7 @@ class BandMatrix : public EigenBase<BandMatrix<_Scalar,Rows,Cols,Supers,Subs,Opt
/**
* \class TridiagonalMatrix
* \ingroup Core_Module
*
* \brief Represents a tridiagonal matrix
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_BLOCK_H
/** \class Block
* \ingroup Core_Module
*
* \brief Expression of a fixed-size or dynamic-size block
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_COMMAINITIALIZER_H
/** \class CommaInitializer
* \ingroup Core_Module
*
* \brief Helper class used by the comma initializer operator
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_CWISE_BINARY_OP_H
/** \class CwiseBinaryOp
* \ingroup Core_Module
*
* \brief Generic expression where a coefficient-wise binary operator is applied to two expressions
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_CWISE_NULLARY_OP_H
/** \class CwiseNullaryOp
* \ingroup Core_Module
*
* \brief Generic expression of a matrix where all coefficients are defined by a functor
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_CWISE_UNARY_OP_H
/** \class CwiseUnaryOp
* \ingroup Core_Module
*
* \brief Generic expression where a coefficient-wise unary operator is applied to an expression
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_CWISE_UNARY_VIEW_H
/** \class CwiseUnaryView
* \ingroup Core_Module
*
* \brief Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_DENSEBASE_H
/** \class DenseBase
* \ingroup Core_Module
*
* \brief Base class for all dense matrices, vectors, and arrays
*

View File

@@ -432,8 +432,9 @@ class DenseStorageBase : public ei_dense_xpr_base<Derived>::type
ei_assert((this->size()==0 || (IsVectorAtCompileTime ? (this->size() == other.size())
: (rows() == other.rows() && cols() == other.cols())))
&& "Size mismatch. Automatic resizing is disabled because EIGEN_NO_AUTOMATIC_RESIZING is defined");
#endif
#else
resizeLike(other);
#endif
}
/**

View File

@@ -26,6 +26,7 @@
#define EIGEN_DIAGONAL_H
/** \class Diagonal
* \ingroup Core_Module
*
* \brief Expression of a diagonal/subdiagonal/superdiagonal in a matrix
*

View File

@@ -87,6 +87,7 @@ void DiagonalBase<Derived>::evalTo(MatrixBase<DenseDerived> &other) const
#endif
/** \class DiagonalMatrix
* \ingroup Core_Module
*
* \brief Represents a diagonal matrix with its storage
*
@@ -188,6 +189,7 @@ class DiagonalMatrix
};
/** \class DiagonalWrapper
* \ingroup Core_Module
*
* \brief Expression of a diagonal matrix
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_FLAGGED_H
/** \class Flagged
* \ingroup Core_Module
*
* \brief Expression with modified flags
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_FORCEALIGNEDACCESS_H
/** \class ForceAlignedAccess
* \ingroup Core_Module
*
* \brief Enforce aligned packet loads and stores regardless of what is requested
*

View File

@@ -31,6 +31,7 @@ enum { StreamPrecision = -1,
FullPrecision = -2 };
/** \class IOFormat
* \ingroup Core_Module
*
* \brief Stores a set of parameters controlling the way matrices are printed
*
@@ -80,6 +81,7 @@ struct IOFormat
};
/** \class WithFormat
* \ingroup Core_Module
*
* \brief Pseudo expression providing matrix output with given format
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_MAP_H
/** \class Map
* \ingroup Core_Module
*
* \brief A matrix or vector expression mapping an existing array of data.
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_MAPBASE_H
/** \class MapBase
* \ingroup Core_Module
*
* \brief Base class for Map and Block expression with direct access
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_MATRIX_H
/** \class Matrix
* \ingroup Core_Module
*
* \brief The matrix class, also used for vectors and row-vectors
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_MATRIXBASE_H
/** \class MatrixBase
* \ingroup Core_Module
*
* \brief Base class for all dense matrices, vectors, and expressions
*

View File

@@ -79,6 +79,7 @@ struct ei_matrix_array<T, 0, MatrixOptions, Alignment>
/** \internal
*
* \class ei_matrix_storage
* \ingroup Core_Module
*
* \brief Stores the data of a matrix
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_NESTBYVALUE_H
/** \class NestByValue
* \ingroup Core_Module
*
* \brief Expression which must be nested by value
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_NOALIAS_H
/** \class NoAlias
* \ingroup Core_Module
*
* \brief Pseudo expression providing an operator = assuming no aliasing
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_NUMTRAITS_H
/** \class NumTraits
* \ingroup Core_Module
*
* \brief Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_PERMUTATIONMATRIX_H
/** \class PermutationMatrix
* \ingroup Core_Module
*
* \brief Permutation matrix
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_PRODUCT_H
/** \class GeneralProduct
* \ingroup Core_Module
*
* \brief Expression of the product of two general matrices or vectors
*
@@ -120,6 +121,7 @@ template<> struct ei_product_type_selector<Small,Large,Small> { en
template<> struct ei_product_type_selector<Large,Large,Small> { enum { ret = GemmProduct }; };
/** \class ProductReturnType
* \ingroup Core_Module
*
* \brief Helper class to get the correct and optimized returned type of operator*
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_PRODUCTBASE_H
/** \class ProductBase
* \ingroup Core_Module
*
*/
template<typename Derived, typename _Lhs, typename _Rhs>

View File

@@ -27,6 +27,7 @@
/**
* \class Replicate
* \ingroup Core_Module
*
* \brief Expression of the multiple replication of a matrix or vector
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_RETURNBYVALUE_H
/** \class ReturnByValue
* \ingroup Core_Module
*
*/
template<typename Derived>

View File

@@ -28,6 +28,7 @@
#define EIGEN_REVERSE_H
/** \class Reverse
* \ingroup Core_Module
*
* \brief Expression of the reverse of a vector or matrix
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_SELECT_H
/** \class Select
* \ingroup Core_Module
*
* \brief Expression of a coefficient wise version of the C++ ternary operator ?:
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_SELFADJOINTMATRIX_H
/** \class SelfAdjointView
* \ingroup Core_Module
*
*
* \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix

View File

@@ -26,6 +26,7 @@
#define EIGEN_SELFCWISEBINARYOP_H
/** \class SelfCwiseBinaryOp
* \ingroup Core_Module
*
* \internal
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_STRIDE_H
/** \class Stride
* \ingroup Core_Module
*
* \brief Holds strides information for Map
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_SWAP_H
/** \class SwapWrapper
* \ingroup Core_Module
*
* \internal
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_TRANSPOSE_H
/** \class Transpose
* \ingroup Core_Module
*
* \brief Expression of the transpose of a matrix
*

View File

@@ -26,6 +26,7 @@
#define EIGEN_TRANSPOSITIONS_H
/** \class Transpositions
* \ingroup Core_Module
*
* \brief Represents a sequence of transpositions (row/column interchange)
*

View File

@@ -29,6 +29,7 @@
/** \internal
*
* \class TriangularBase
* \ingroup Core_Module
*
* \brief Base class for triangular part in a matrix
*/
@@ -112,6 +113,7 @@ template<typename Derived> class TriangularBase : public EigenBase<Derived>
};
/** \class TriangularView
* \ingroup Core_Module
*
* \brief Base class for triangular part in a matrix
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_VECTORBLOCK_H
/** \class VectorBlock
* \ingroup Core_Module
*
* \brief Expression of a fixed-size or dynamic-size sub-vector
*

View File

@@ -27,6 +27,7 @@
#define EIGEN_PARTIAL_REDUX_H
/** \class PartialReduxExpr
* \ingroup Core_Module
*
* \brief Generic expression of a partially reduxed matrix
*
@@ -154,6 +155,7 @@ struct ei_member_redux {
};
/** \class VectorwiseOp
* \ingroup Core_Module
*
* \brief Pseudo expression providing partial reduction operations
*

View File

@@ -38,7 +38,7 @@ const int Dynamic = -1;
*/
const int Infinity = -1;
/** \defgroup flags flags
/** \defgroup flags Flags
* \ingroup Core_Module
*
* These are the possible bits which can be OR'ed to constitute the flags of a matrix or

View File

@@ -495,6 +495,7 @@ inline static Index ei_first_aligned(const Scalar* array, Index size)
/****************************************************************************/
/** \class aligned_allocator
* \ingroup Core_Module
*
* \brief STL compatible allocator to use with with 16 byte aligned types
*
@@ -588,17 +589,17 @@ public:
//---------- Cache sizes ----------
#if defined(__GNUC__)
# if defined(__PIC__) && defined(__i386__)
# if defined(__PIC__) && defined(__i386__)
# define EIGEN_CPUID(abcd,func,id) \
__asm__ __volatile__ ("xchgl %%ebx, %%esi;cpuid; xchgl %%ebx,%%esi": "=a" (abcd[0]), "=S" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id));
# else
# elif !defined(__arm__) && !defined(__powerpc__)
# define EIGEN_CPUID(abcd,func,id) \
__asm__ __volatile__ ("cpuid": "=a" (abcd[0]), "=b" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id) );
# endif
# endif
#elif defined(_MSC_VER)
#if (_MSC_VER > 1500) /* newer than MSVC++ 9.0 */ || (_MSC_VER == 1500 && _MSC_FULL_VER >= 150030729) /* MSVC++ 9.0 with SP1*/
# if (_MSC_VER > 1500) /* newer than MSVC++ 9.0 */ || (_MSC_VER == 1500 && _MSC_FULL_VER >= 150030729) /* MSVC++ 9.0 with SP1*/
# define EIGEN_CPUID(abcd,func,id) __cpuidex((int*)abcd,func,id)
#endif
# endif
#endif
#ifdef EIGEN_CPUID
@@ -771,6 +772,8 @@ inline void ei_queryCacheSizes(int& l1, int& l2, int& l3)
// ||ei_cpuid_is_vendor(abcd,"NexGenDriven")
// ||ei_cpuid_is_vendor(abcd,"CentaurHauls")
// ||ei_cpuid_is_vendor(abcd,"CentaurHauls")
#else
l1 = l2 = l3 = -1;
#endif
}