ISAAC
Overview :: Library Doc :: Server Doc :: JSON Commands

In Situ Animation of Accelerated Computations

Classes | Namespaces | Macros | Typedefs | Enumerations
isaac_types.hpp File Reference
#include <boost/preprocessor.hpp>
#include "isaac_defines.hpp"
Include dependency graph for isaac_types.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  isaac::isaac_size_struct< simdim >
 
struct  isaac::transfer_d_struct< N >
 
struct  isaac::transfer_h_struct< N >
 
struct  isaac::functions_struct
 
struct  isaac::source_weight_struct< N >
 
struct  isaac::pointer_array_struct< N >
 
struct  isaac::minmax_struct
 
struct  isaac::minmax_array_struct< N >
 
struct  isaac::clipping_struct
 

Namespaces

 isaac
 

Macros

#define ISAAC_COMPONENTS_SEQ_3   (x)(y)(z)(w)
 
#define ISAAC_COMPONENTS_SEQ_2   (x)(y)(z)
 
#define ISAAC_COMPONENTS_SEQ_1   (x)(y)
 
#define ISAAC_COMPONENTS_SEQ_0   (x)
 
#define ISAAC_FLOAT_DEF(Z, I, unused)
 
#define ISAAC_UINT_DEF(Z, I, unused)
 
#define ISAAC_INT_DEF(Z, I, unused)
 
#define ISAAC_SIZE_DEF(Z, I, unused)
 
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF(Z, I, OP)
 
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_ROTHER(Z, I, OP)
 
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_LOTHER(Z, I, OP)
 
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_UNARY(Z, I, OP)
 
#define ISAAC_OVERLOAD_OPERATOR_DEF(Z, I, OP)
 
#define ISAAC_OVERLOAD_OPERATOR_DEF_UNARY(Z, I, OP)
 
#define ISAAC_OVERLOAD_OPERATOR_COUNT   4
 
#define ISAAC_OVERLOAD_OPERATORS   (ISAAC_OVERLOAD_OPERATOR_COUNT, (+, -, *, / ) )
 
#define ISAAC_OVERLOAD_ITERATOR(Z, I, TYPE)   BOOST_PP_REPEAT( 4, ISAAC_OVERLOAD_OPERATOR_DEF, (2, (TYPE, BOOST_PP_ARRAY_ELEM( I, ISAAC_OVERLOAD_OPERATORS ) ) ) ) \
 
#define ISAAC_OVERLOAD_OPERATOR_CREATE(TYPE)
 
#define ISAAC_DIM_TYPES   ( 4, ( size, float, int, uint ) )
 
#define ISAAC_DIM_TYPES_DIM   ( 4, ( size_dim, float_dim, int_dim, uint_dim ) )
 
#define ISAAC_DIM_SUBDEF(Z, J, I)
 
#define ISAAC_DIM_DEF(Z, I, unused)
 

Typedefs

typedef float isaac::isaac_float
 
typedef int32_t isaac::isaac_int
 
typedef uint32_t isaac::isaac_uint
 

Enumerations

enum  isaac::IsaacVisualizationMetaEnum { isaac::META_MERGE = 0, isaac::META_MASTER = 1 }
 

Macro Definition Documentation

§ ISAAC_COMPONENTS_SEQ_0

#define ISAAC_COMPONENTS_SEQ_0   (x)

Definition at line 32 of file isaac_types.hpp.

§ ISAAC_COMPONENTS_SEQ_1

#define ISAAC_COMPONENTS_SEQ_1   (x)(y)

Definition at line 31 of file isaac_types.hpp.

§ ISAAC_COMPONENTS_SEQ_2

#define ISAAC_COMPONENTS_SEQ_2   (x)(y)(z)

Definition at line 30 of file isaac_types.hpp.

§ ISAAC_COMPONENTS_SEQ_3

#define ISAAC_COMPONENTS_SEQ_3   (x)(y)(z)(w)

Definition at line 29 of file isaac_types.hpp.

§ ISAAC_DIM_DEF

#define ISAAC_DIM_DEF (   Z,
  I,
  unused 
)
Value:
template < size_t > \
struct BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( I, ISAAC_DIM_TYPES_DIM ) ); \
BOOST_PP_REPEAT( 4, ISAAC_DIM_SUBDEF, I )
#define ISAAC_DIM_SUBDEF(Z, J, I)
#define ISAAC_DIM_TYPES_DIM

Definition at line 170 of file isaac_types.hpp.

§ ISAAC_DIM_SUBDEF

#define ISAAC_DIM_SUBDEF (   Z,
  J,
 
)
Value:
template <> \
struct BOOST_PP_CAT( isaac_, BOOST_PP_ARRAY_ELEM( I, ISAAC_DIM_TYPES_DIM ) ) \
< size_t( BOOST_PP_INC(J) ) > { \
BOOST_PP_CAT( isaac_, BOOST_PP_CAT( BOOST_PP_ARRAY_ELEM( I, ISAAC_DIM_TYPES ) , BOOST_PP_INC(J) ) ) value; };
#define ISAAC_DIM_TYPES
#define ISAAC_DIM_TYPES_DIM

Definition at line 164 of file isaac_types.hpp.

§ ISAAC_DIM_TYPES

#define ISAAC_DIM_TYPES   ( 4, ( size, float, int, uint ) )

Definition at line 161 of file isaac_types.hpp.

§ ISAAC_DIM_TYPES_DIM

#define ISAAC_DIM_TYPES_DIM   ( 4, ( size_dim, float_dim, int_dim, uint_dim ) )

Definition at line 162 of file isaac_types.hpp.

§ ISAAC_FLOAT_DEF

#define ISAAC_FLOAT_DEF (   Z,
  I,
  unused 
)
Value:
struct BOOST_PP_CAT(isaac_float, BOOST_PP_INC(I) ) \
{ \
isaac_float BOOST_PP_SEQ_ENUM( BOOST_PP_CAT( ISAAC_COMPONENTS_SEQ_ , I ) ); \
};
float isaac_float
Definition: isaac_types.hpp:25

Definition at line 36 of file isaac_types.hpp.

§ ISAAC_INT_DEF

#define ISAAC_INT_DEF (   Z,
  I,
  unused 
)
Value:
struct BOOST_PP_CAT(isaac_int, BOOST_PP_INC(I) ) \
{ \
isaac_int BOOST_PP_SEQ_ENUM( BOOST_PP_CAT( ISAAC_COMPONENTS_SEQ_ , I ) ); \
};
int32_t isaac_int
Definition: isaac_types.hpp:26

Definition at line 52 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_ITERATOR

#define ISAAC_OVERLOAD_ITERATOR (   Z,
  I,
  TYPE 
)    BOOST_PP_REPEAT( 4, ISAAC_OVERLOAD_OPERATOR_DEF, (2, (TYPE, BOOST_PP_ARRAY_ELEM( I, ISAAC_OVERLOAD_OPERATORS ) ) ) ) \

Definition at line 138 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_COUNT

#define ISAAC_OVERLOAD_OPERATOR_COUNT   4

Definition at line 135 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_CREATE

#define ISAAC_OVERLOAD_OPERATOR_CREATE (   TYPE)
Value:
BOOST_PP_REPEAT( 4, ISAAC_OVERLOAD_OPERATOR_DEF_UNARY, (2, (TYPE, - ) ) )
#define ISAAC_OVERLOAD_OPERATOR_COUNT
#define ISAAC_OVERLOAD_OPERATOR_DEF_UNARY(Z, I, OP)
#define ISAAC_OVERLOAD_ITERATOR(Z, I, TYPE)

Definition at line 141 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_DEF

#define ISAAC_OVERLOAD_OPERATOR_DEF (   Z,
  I,
  OP 
)
Value:
ISAAC_HOST_DEVICE_INLINE BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) operator BOOST_PP_ARRAY_ELEM( 1, OP ) ( \
const BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) & left, \
const BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) & right) \
{ \
BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) result; \
BOOST_PP_REPEAT( BOOST_PP_INC(I), ISAAC_OVERLOAD_OPERATOR_SUBDEF, OP ) \
return result; \
} \
ISAAC_HOST_DEVICE_INLINE BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) operator BOOST_PP_ARRAY_ELEM( 1, OP ) ( \
const BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) & left, \
const isaac_float & right) \
{ \
BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) result; \
BOOST_PP_REPEAT( BOOST_PP_INC(I), ISAAC_OVERLOAD_OPERATOR_SUBDEF_ROTHER, OP ) \
return result; \
} \
ISAAC_HOST_DEVICE_INLINE BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) operator BOOST_PP_ARRAY_ELEM( 1, OP ) ( \
const isaac_float & left, \
const BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) & right ) \
{ \
BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) result; \
BOOST_PP_REPEAT( BOOST_PP_INC(I), ISAAC_OVERLOAD_OPERATOR_SUBDEF_LOTHER, OP ) \
return result; \
}
float isaac_float
Definition: isaac_types.hpp:25
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_LOTHER(Z, I, OP)
Definition: isaac_types.hpp:90
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_ROTHER(Z, I, OP)
Definition: isaac_types.hpp:85
#define ISAAC_HOST_DEVICE_INLINE
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF(Z, I, OP)
Definition: isaac_types.hpp:80

Definition at line 100 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_DEF_UNARY

#define ISAAC_OVERLOAD_OPERATOR_DEF_UNARY (   Z,
  I,
  OP 
)
Value:
ISAAC_HOST_DEVICE_INLINE BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) operator BOOST_PP_ARRAY_ELEM( 1, OP ) ( \
const BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) & left ) \
{ \
BOOST_PP_CAT( BOOST_PP_CAT( isaac_ , BOOST_PP_ARRAY_ELEM( 0, OP ) ), BOOST_PP_INC(I) ) result; \
BOOST_PP_REPEAT( BOOST_PP_INC(I), ISAAC_OVERLOAD_OPERATOR_SUBDEF_UNARY, OP ) \
return result; \
}
#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_UNARY(Z, I, OP)
Definition: isaac_types.hpp:95
#define ISAAC_HOST_DEVICE_INLINE

Definition at line 126 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_SUBDEF

#define ISAAC_OVERLOAD_OPERATOR_SUBDEF (   Z,
  I,
  OP 
)
Value:
result. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) ) = \
left. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) ) BOOST_PP_ARRAY_ELEM( 1, OP ) \
right. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) );
#define ISAAC_COMPONENTS_SEQ_3
Definition: isaac_types.hpp:29

Definition at line 80 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_SUBDEF_LOTHER

#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_LOTHER (   Z,
  I,
  OP 
)
Value:
result. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) ) = \
left BOOST_PP_ARRAY_ELEM( 1, OP ) \
right. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) );
#define ISAAC_COMPONENTS_SEQ_3
Definition: isaac_types.hpp:29

Definition at line 90 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_SUBDEF_ROTHER

#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_ROTHER (   Z,
  I,
  OP 
)
Value:
result. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) ) = \
left. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) ) BOOST_PP_ARRAY_ELEM( 1, OP ) \
right;
#define ISAAC_COMPONENTS_SEQ_3
Definition: isaac_types.hpp:29

Definition at line 85 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATOR_SUBDEF_UNARY

#define ISAAC_OVERLOAD_OPERATOR_SUBDEF_UNARY (   Z,
  I,
  OP 
)
Value:
result. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) ) = BOOST_PP_ARRAY_ELEM( 1, OP ) \
left. BOOST_PP_ARRAY_ELEM( I, BOOST_PP_SEQ_TO_ARRAY( ISAAC_COMPONENTS_SEQ_3 ) );
#define ISAAC_COMPONENTS_SEQ_3
Definition: isaac_types.hpp:29

Definition at line 95 of file isaac_types.hpp.

§ ISAAC_OVERLOAD_OPERATORS

#define ISAAC_OVERLOAD_OPERATORS   (ISAAC_OVERLOAD_OPERATOR_COUNT, (+, -, *, / ) )

Definition at line 136 of file isaac_types.hpp.

§ ISAAC_SIZE_DEF

#define ISAAC_SIZE_DEF (   Z,
  I,
  unused 
)
Value:
struct BOOST_PP_CAT(isaac_size, BOOST_PP_INC(I) ) \
{ \
size_t BOOST_PP_SEQ_ENUM( BOOST_PP_CAT( ISAAC_COMPONENTS_SEQ_ , I ) ); \
};

Definition at line 70 of file isaac_types.hpp.

§ ISAAC_UINT_DEF

#define ISAAC_UINT_DEF (   Z,
  I,
  unused 
)
Value:
struct BOOST_PP_CAT(isaac_uint, BOOST_PP_INC(I) ) \
{ \
isaac_uint BOOST_PP_SEQ_ENUM( BOOST_PP_CAT( ISAAC_COMPONENTS_SEQ_ , I ) ); \
};
uint32_t isaac_uint
Definition: isaac_types.hpp:27

Definition at line 44 of file isaac_types.hpp.