Nektar++
Macros
ExplicitInstantiation.h File Reference
#include <boost/preprocessor/arithmetic/sub.hpp>
#include <boost/preprocessor/array/elem.hpp>
#include <boost/preprocessor/array/pop_front.hpp>
#include <boost/preprocessor/array/push_back.hpp>
#include <boost/preprocessor/array/size.hpp>
#include <boost/preprocessor/comparison/greater.hpp>
#include <boost/preprocessor/comparison/less.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/punctuation/comma.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/punctuation/paren.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <LibUtilities/LinearAlgebra/NekTypeDefs.hpp>

Go to the source code of this file.

Macros

#define BOOST_PP_TUPLE_REM_0()
 
#define NEKTAR_ALL_MATRIX_TYPES
 
#define NEKTAR_BLOCK_MATRIX_TYPES
 
#define NEKTAR_STANDARD_AND_SCALED_MATRICES    (2, (const DNekMat &, const DNekScalMat &))
 
#define NEKTAR_ALL_MATRIX_TYPES_SINGLE
 
#define NEKTAR_BLOCK_MATRIX_TYPES_SINGLE
 
#define NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE    (2, (const SNekMat &, const SNekScalMat &))
 
#define NEKTAR_PRINT_ARRAY(z, n, data)
 
#define NEKTAR_CREATE_EXPLICIT_INTSTANTIATION(z, n, data)
 
#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX( MethodName, MatrixTypes, ReturnType, BeforeArgs, AfterArgs)
 
#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES_INNER( z, n, data)
 
#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES( MethodName, FirstMatrixTypes, SecondMatrixTypes, ReturnType, BeforeArgs, AfterArgs)
 

Macro Definition Documentation

◆ BOOST_PP_TUPLE_REM_0

#define BOOST_PP_TUPLE_REM_0 ( )

Definition at line 54 of file ExplicitInstantiation.h.

◆ NEKTAR_ALL_MATRIX_TYPES

#define NEKTAR_ALL_MATRIX_TYPES
Value:
(6, (const DNekMat &, const DNekScalMat &, const DNekBlkMat &, \
const BlkMatDNekBlkMat &, const DNekScalBlkMat &, \
NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > DNekScalBlkMat
Definition: NekTypeDefs.hpp:68
NekMatrix< NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatDNekScalBlkMat
Definition: NekTypeDefs.hpp:73
NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > DNekScalMat
NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatDNekBlkMat
Definition: NekTypeDefs.hpp:64
NekMatrix< NekDouble, StandardMatrixTag > DNekMat
Definition: NekTypeDefs.hpp:50
NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, BlockMatrixTag > DNekBlkMat
Definition: NekTypeDefs.hpp:58

Definition at line 58 of file ExplicitInstantiation.h.

◆ NEKTAR_ALL_MATRIX_TYPES_SINGLE

#define NEKTAR_ALL_MATRIX_TYPES_SINGLE
Value:
(6, (const SNekMat &, const SNekScalMat &, const SNekBlkMat &, \
const BlkMatSNekBlkMat &, const SNekScalBlkMat &, \
NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > SNekScalMat
NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, BlockMatrixTag > SNekBlkMat
NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatSNekBlkMat
NekMatrix< NekSingle, StandardMatrixTag > SNekMat
Definition: NekTypeDefs.hpp:97
NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > SNekScalBlkMat
NekMatrix< NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatSNekScalBlkMat

Definition at line 68 of file ExplicitInstantiation.h.

◆ NEKTAR_BLOCK_MATRIX_TYPES

#define NEKTAR_BLOCK_MATRIX_TYPES
Value:
(4, (const DNekBlkMat &, const BlkMatDNekBlkMat &, const DNekScalBlkMat &, \

Definition at line 62 of file ExplicitInstantiation.h.

◆ NEKTAR_BLOCK_MATRIX_TYPES_SINGLE

#define NEKTAR_BLOCK_MATRIX_TYPES_SINGLE
Value:
(4, (const SNekBlkMat &, const BlkMatSNekBlkMat &, const SNekScalBlkMat &, \

Definition at line 72 of file ExplicitInstantiation.h.

◆ NEKTAR_CREATE_EXPLICIT_INTSTANTIATION

#define NEKTAR_CREATE_EXPLICIT_INTSTANTIATION (   z,
  n,
  data 
)
Value:
template LIB_UTILITIES_EXPORT BOOST_PP_ARRAY_ELEM( \
0, BOOST_PP_ARRAY_ELEM(2, data)) BOOST_PP_ARRAY_ELEM(0, data) \
BOOST_PP_LPAREN() BOOST_PP_REPEAT( \
BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_ELEM(3, data)), \
NEKTAR_PRINT_ARRAY, BOOST_PP_ARRAY_ELEM(3, data)) \
BOOST_PP_COMMA_IF(BOOST_PP_GREATER( \
BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_ELEM(3, data)), 0)) \
BOOST_PP_ARRAY_ELEM(n, BOOST_PP_ARRAY_ELEM(1, data)) \
BOOST_PP_COMMA_IF(BOOST_PP_GREATER( \
BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_ELEM(4, data)), 0)) \
BOOST_PP_REPEAT( \
BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_ELEM(4, data)), \
NEKTAR_PRINT_ARRAY, BOOST_PP_ARRAY_ELEM(4, data)) \
BOOST_PP_RPAREN();
#define NEKTAR_PRINT_ARRAY(z, n, data)
#define LIB_UTILITIES_EXPORT

Definition at line 83 of file ExplicitInstantiation.h.

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX

#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (   MethodName,
  MatrixTypes,
  ReturnType,
  BeforeArgs,
  AfterArgs 
)
Value:
BOOST_PP_REPEAT( \
BOOST_PP_ARRAY_SIZE(MatrixTypes), \
(5, (MethodName, MatrixTypes, ReturnType, BeforeArgs, AfterArgs)))
#define NEKTAR_CREATE_EXPLICIT_INTSTANTIATION(z, n, data)

Definition at line 99 of file ExplicitInstantiation.h.

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES

#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (   MethodName,
  FirstMatrixTypes,
  SecondMatrixTypes,
  ReturnType,
  BeforeArgs,
  AfterArgs 
)
Value:
BOOST_PP_REPEAT( \
BOOST_PP_ARRAY_SIZE(FirstMatrixTypes), \
(6, (MethodName, FirstMatrixTypes, SecondMatrixTypes, ReturnType, \
BeforeArgs, AfterArgs)))
#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES_INNER( z, n, data)

Definition at line 119 of file ExplicitInstantiation.h.

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES_INNER

#define NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES_INNER (   z,
  n,
  data 
)
Value:
BOOST_PP_REPEAT( \
BOOST_PP_ARRAY_SIZE(BOOST_PP_ARRAY_ELEM(2, data)), \
(5, (BOOST_PP_ARRAY_ELEM(0, data), BOOST_PP_ARRAY_ELEM(2, data), \
BOOST_PP_ARRAY_ELEM(3, data), \
BOOST_PP_ARRAY_PUSH_BACK( \
BOOST_PP_ARRAY_ELEM(4, data), \
BOOST_PP_ARRAY_ELEM(n, BOOST_PP_ARRAY_ELEM(1, data))), \
BOOST_PP_ARRAY_ELEM(5, data))))

Definition at line 106 of file ExplicitInstantiation.h.

◆ NEKTAR_PRINT_ARRAY

#define NEKTAR_PRINT_ARRAY (   z,
  n,
  data 
)
Value:
BOOST_PP_ARRAY_ELEM(n, data) \
BOOST_PP_COMMA_IF( \
BOOST_PP_LESS(n, BOOST_PP_SUB(BOOST_PP_ARRAY_SIZE(data), 1)))

Definition at line 78 of file ExplicitInstantiation.h.

◆ NEKTAR_STANDARD_AND_SCALED_MATRICES

#define NEKTAR_STANDARD_AND_SCALED_MATRICES    (2, (const DNekMat &, const DNekScalMat &))

Definition at line 65 of file ExplicitInstantiation.h.

◆ NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE

#define NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE    (2, (const SNekMat &, const SNekScalMat &))

Definition at line 75 of file ExplicitInstantiation.h.