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

In Situ Animation of Accelerated Computations

Classes | Namespaces | Macros | Typedefs | Functions | Variables
isaac_kernel.hpp File Reference
#include "isaac_macros.hpp"
#include "isaac_fusion_extension.hpp"
#include "isaac_functors.hpp"
#include <boost/mpl/at.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/back.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/push_back.hpp>
#include <boost/fusion/include/push_back.hpp>
#include <boost/mpl/size.hpp>
#include <float.h>
Include dependency graph for isaac_kernel.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  isaac::FillFunctorChainPointerKernelStruct< TFunctorVector, TFeatureDim, NR >
 
struct  isaac::FillFunctorChainPointerKernelStruct< TFunctorVector, TFeatureDim, 0 >
 
struct  isaac::merge_source_iterator< Ttransfer_size, TFilter, TInterpolation, TIsoSurface >
 
struct  isaac::check_no_source_iterator< TFilter >
 
struct  isaac::IsaacRenderKernelCaller< TSimDim, TSourceList, TTransferArray, TSourceWeight, TPointerArray, TFilter, TFramebuffer, TTransfer_size, TScale, N >
 
struct  isaac::IsaacRenderKernelCaller< TSimDim, TSourceList, TTransferArray, TSourceWeight, TPointerArray, TFilter, TFramebuffer, TTransfer_size, TScale, 0 >
 
struct  isaac::dest_array_struct< N >
 

Namespaces

 isaac
 

Macros

#define ISAAC_SUB_CALL(Z, I, U)
 
#define ISAAC_LEFT_DEF(Z, I, U)   mpl::at_c< TFunctorVector, ISAAC_MAX_FUNCTORS - I - 1 >::type::call(
 
#define ISAAC_RIGHT_DEF(Z, I, U)   , isaac_parameter_d[ src_id * ISAAC_MAX_FUNCTORS + I ] )
 
#define ISAAC_LEFT   BOOST_PP_REPEAT( ISAAC_MAX_FUNCTORS, ISAAC_LEFT_DEF, ~)
 
#define ISAAC_RIGHT   BOOST_PP_REPEAT( ISAAC_MAX_FUNCTORS, ISAAC_RIGHT_DEF, ~)
 
#define ISAAC_KERNEL_START
 
#define ISAAC_KERNEL_END
 

Typedefs

typedef isaac_float(* isaac::isaac_functor_chain_pointer_4) (isaac_float_dim< 4 >, isaac_int)
 
typedef isaac_float(* isaac::isaac_functor_chain_pointer_3) (isaac_float_dim< 3 >, isaac_int)
 
typedef isaac_float(* isaac::isaac_functor_chain_pointer_2) (isaac_float_dim< 2 >, isaac_int)
 
typedef isaac_float(* isaac::isaac_functor_chain_pointer_1) (isaac_float_dim< 1 >, isaac_int)
 
typedef isaac_float(* isaac::isaac_functor_chain_pointer_N) (void *, isaac_int)
 

Functions

template<typename TFunctorVector , int TFeatureDim>
ISAAC_DEVICE isaac_float isaac::applyFunctorChain (isaac_float_dim< TFeatureDim > const value, isaac_int const src_id)
 
__global__ void isaac::fillFunctorChainPointerKernel (isaac_functor_chain_pointer_N *const functor_chain_d)
 
template<isaac_int TInterpolation, typename NR , typename TSource , typename TPos , typename TPointerArray , typename TLocalSize , typename TScale >
ISAAC_HOST_DEVICE_INLINE isaac_float isaac::get_value (const TSource &source, const TPos &pos, const TPointerArray &pointerArray, const TLocalSize &local_size, const TScale &scale)
 
template<typename TLocalSize >
ISAAC_HOST_DEVICE_INLINE void isaac::check_coord (isaac_float3 &coord, const TLocalSize local_size)
 
template<typename TSimDim , typename TSourceList , typename TTransferArray , typename TSourceWeight , typename TPointerArray , typename TFilter , size_t Ttransfer_size, isaac_int TInterpolation, isaac_int TIsoSurface, typename TScale >
__global__ void isaac::isaacRenderKernel (uint32_t *const pixels, const isaac_size2 framebuffer_size, const isaac_uint2 framebuffer_start, const TSourceList sources, isaac_float step, const isaac_float4 background_color, const TTransferArray transferArray, const TSourceWeight sourceWeight, const TPointerArray pointerArray, const TScale scale, const clipping_struct input_clipping)
 
template<int count, typename TDest >
__global__ void isaac::updateFunctorChainPointerKernel (isaac_functor_chain_pointer_N *const functor_chain_choose_d, isaac_functor_chain_pointer_N const *const functor_chain_d, TDest dest)
 
template<typename TSource >
__global__ void isaac::updateBufferKernel (const TSource source, void *const pointer, const isaac_int3 local_size)
 
template<typename TSource >
__global__ void isaac::minMaxKernel (const TSource source, const int nr, minmax_struct *const result, const isaac_int3 local_size, void const *const pointer)
 

Variables

ISAAC_CONSTANT isaac_float isaac::isaac_inverse_d [16]
 
ISAAC_CONSTANT isaac_size_struct< 3 > isaac::isaac_size_d [1]
 
ISAAC_CONSTANT isaac_float4 isaac::isaac_parameter_d [ISAAC_MAX_SOURCES *ISAAC_MAX_FUNCTORS]
 
ISAAC_CONSTANT isaac_functor_chain_pointer_N isaac::isaac_function_chain_d [ISAAC_MAX_SOURCES]
 

Macro Definition Documentation

§ ISAAC_KERNEL_END

#define ISAAC_KERNEL_END
Value:
> \
<<<grid, block>>> \
( \
framebuffer, \
framebuffer_size, \
framebuffer_start, \
sources, \
step, \
background_color, \
transferArray, \
sourceWeight, \
pointerArray, \
scale, \
clipping \
);

§ ISAAC_KERNEL_START

#define ISAAC_KERNEL_START
Value:
< \
TSimDim, \
TSourceList, \
TTransferArray, \
TSourceWeight, \
TPointerArray, \
TFilter, \
TTransfer_size,
__global__ void isaacRenderKernel(uint32_t *const pixels, const isaac_size2 framebuffer_size, const isaac_uint2 framebuffer_start, const TSourceList sources, isaac_float step, const isaac_float4 background_color, const TTransferArray transferArray, const TSourceWeight sourceWeight, const TPointerArray pointerArray, const TScale scale, const clipping_struct input_clipping)

§ ISAAC_LEFT

#define ISAAC_LEFT   BOOST_PP_REPEAT( ISAAC_MAX_FUNCTORS, ISAAC_LEFT_DEF, ~)

§ ISAAC_LEFT_DEF

#define ISAAC_LEFT_DEF (   Z,
  I,
 
)    mpl::at_c< TFunctorVector, ISAAC_MAX_FUNCTORS - I - 1 >::type::call(

§ ISAAC_RIGHT

#define ISAAC_RIGHT   BOOST_PP_REPEAT( ISAAC_MAX_FUNCTORS, ISAAC_RIGHT_DEF, ~)

§ ISAAC_RIGHT_DEF

#define ISAAC_RIGHT_DEF (   Z,
  I,
 
)    , isaac_parameter_d[ src_id * ISAAC_MAX_FUNCTORS + I ] )

§ ISAAC_SUB_CALL

#define ISAAC_SUB_CALL (   Z,
  I,
 
)
Value:
if (bytecode[ISAAC_MAX_FUNCTORS-NR] == I) \
return FillFunctorChainPointerKernelStruct \
< \
typename mpl::push_back< TFunctorVector, typename boost::mpl::at_c<IsaacFunctorPool,I>::type >::type, \
TFeatureDim, \
NR - 1 \
> ::call( bytecode );
#define ISAAC_MAX_FUNCTORS