Go to the documentation of this file.00001 #ifndef OPENMP_KERNELS_H
00002 #define OPENMP_KERNELS_H
00003
00004 class ReduceStrategy;
00005
00006 #include <parallel_common.h>
00007 #include <parallel_math.h>
00008
00009 namespace parallel_ode
00010 {
00011
00012 template <typename T>
00013 void ompZeroVector( T *buffer, int bufferSize );
00014
00015 template <typename T>
00016 void ompPGSReduce( typename vec4<T>::Type *fc0,
00017 typename vec4<T>::Type *fc1,
00018 typename vec4<T>::Type *fc0_reduction,
00019 typename vec4<T>::Type *fc1_reduction,
00020 ReduceStrategy* reduceStrategy );
00021
00022 template <typename T>
00023 void ompPGSSolve( int4 *bodyIDs,
00024 int *fIDs,
00025 typename vec4<T>::Type *j,
00026 typename vec4<T>::Type *ij,
00027 typename vec4<T>::Type *fc0,
00028 typename vec4<T>::Type *fc1,
00029 typename vec4<T>::Type *fc0_reduction,
00030 typename vec4<T>::Type *fc1_reduction,
00031 T* lambda,
00032 T* adcfm,
00033 T* rhs,
00034 T* hilo,
00035 int offset, int numConstraints, bool bUseAtomics, int bStride, int cStride );
00036
00037 }
00038 #endif