num_dimensions.cpp File Reference
#include "main.h"
#include <Eigen/SparseCore>

Typedefs

template<typename Scalar , int Rows, int Cols>
using TArray = Array< Scalar, Rows, Cols >
 
template<typename Scalar , int Rows, int Cols>
using TMatrix = Matrix< Scalar, Rows, Cols >
 

Functions

template<int ExpectedDim, typename Xpr >
void check_dim (const Xpr &)
 
template<template< typename, int, int > class Object>
void map_num_dimensions ()
 
 EIGEN_DECLARE_TEST (num_dimensions)
 

Typedef Documentation

◆ TArray

template<typename Scalar , int Rows, int Cols>
using TArray = Array<Scalar, Rows, Cols>

◆ TMatrix

template<typename Scalar , int Rows, int Cols>
using TMatrix = Matrix<Scalar, Rows, Cols>

Function Documentation

◆ check_dim()

template<int ExpectedDim, typename Xpr >
void check_dim ( const Xpr &  )
14  {
15  STATIC_CHECK(Xpr::NumDimensions == ExpectedDim);
16 }
#define STATIC_CHECK(COND)
Definition: main.h:380

References STATIC_CHECK.

◆ EIGEN_DECLARE_TEST()

EIGEN_DECLARE_TEST ( num_dimensions  )
59  {
60  int n = 10;
61  ArrayXXd A(n, n);
62  CALL_SUBTEST(check_dim<2>(A));
63  CALL_SUBTEST(check_dim<2>(A.block(1, 1, 2, 2)));
64  CALL_SUBTEST(check_dim<1>(A.col(1)));
65  CALL_SUBTEST(check_dim<1>(A.row(1)));
66 
67  MatrixXd M(n, n);
68  CALL_SUBTEST(check_dim<0>(M.row(1) * M.col(1)));
69 
71  CALL_SUBTEST(check_dim<2>(S));
72  CALL_SUBTEST(check_dim<2>(S.block(1, 1, 2, 2)));
73  CALL_SUBTEST(check_dim<1>(S.col(1)));
74  CALL_SUBTEST(check_dim<1>(S.row(1)));
75 
77  CALL_SUBTEST(check_dim<1>(s));
78  CALL_SUBTEST(check_dim<1>(s.head(2)));
79 
80  CALL_SUBTEST(map_num_dimensions<TArray>());
81  CALL_SUBTEST(map_num_dimensions<TMatrix>());
82 }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition: bench_gemm.cpp:47
Matrix< RealScalar, Dynamic, Dynamic > M
Definition: bench_gemm.cpp:50
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
a sparse vector class
Definition: SparseVector.h:62
RealScalar s
Definition: level1_cplx_impl.h:130
#define CALL_SUBTEST(FUNC)
Definition: main.h:382
@ S
Definition: quadtree.h:62

References CALL_SUBTEST, n, s, and oomph::QuadTreeNames::S.

◆ map_num_dimensions()

template<template< typename, int, int > class Object>
void map_num_dimensions ( )
19  {
20  typedef Object<double, 1, 1> ArrayScalarType;
21  typedef Object<double, 2, 1> ArrayVectorType;
22  typedef Object<double, 1, 2> TransposeArrayVectorType;
23  typedef Object<double, 2, 2> ArrayType;
24  typedef Object<double, Eigen::Dynamic, 1> DynamicArrayVectorType;
25  typedef Object<double, 1, Eigen::Dynamic> DynamicTransposeArrayVectorType;
26  typedef Object<double, Eigen::Dynamic, Eigen::Dynamic> DynamicArrayType;
27 
28  STATIC_CHECK(ArrayScalarType::NumDimensions == 0);
29  STATIC_CHECK(ArrayVectorType::NumDimensions == 1);
30  STATIC_CHECK(TransposeArrayVectorType::NumDimensions == 1);
31  STATIC_CHECK(ArrayType::NumDimensions == 2);
32  STATIC_CHECK(DynamicArrayVectorType::NumDimensions == 1);
33  STATIC_CHECK(DynamicTransposeArrayVectorType::NumDimensions == 1);
34  STATIC_CHECK(DynamicArrayType::NumDimensions == 2);
35 
36  typedef Eigen::Map<ArrayScalarType> ArrayScalarMap;
37  typedef Eigen::Map<ArrayVectorType> ArrayVectorMap;
38  typedef Eigen::Map<TransposeArrayVectorType> TransposeArrayVectorMap;
39  typedef Eigen::Map<ArrayType> ArrayMap;
40  typedef Eigen::Map<DynamicArrayVectorType> DynamicArrayVectorMap;
41  typedef Eigen::Map<DynamicTransposeArrayVectorType> DynamicTransposeArrayVectorMap;
42  typedef Eigen::Map<DynamicArrayType> DynamicArrayMap;
43 
44  STATIC_CHECK(ArrayScalarMap::NumDimensions == 0);
45  STATIC_CHECK(ArrayVectorMap::NumDimensions == 1);
46  STATIC_CHECK(TransposeArrayVectorMap::NumDimensions == 1);
47  STATIC_CHECK(ArrayMap::NumDimensions == 2);
48  STATIC_CHECK(DynamicArrayVectorMap::NumDimensions == 1);
49  STATIC_CHECK(DynamicTransposeArrayVectorMap::NumDimensions == 1);
50  STATIC_CHECK(DynamicArrayMap::NumDimensions == 2);
51 }
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96

References STATIC_CHECK.