63 #ifndef _NVECTOR_NRNPARALLEL_LD_H
64 #define _NVECTOR_NRNPARALLEL_LD_H
67 #include <nrnmpiuse.h>
68 #if NRNMPI_DYNAMICLOAD
69 #define MPI_DOUBLE double
77 #include "sundialstypes.h"
87 #if defined(SUNDIALS_SINGLE_PRECISION)
89 #define PVEC_REAL_MPI_TYPE MPI_FLOAT
91 #elif defined(SUNDIALS_DOUBLE_PRECISION)
93 #define PVEC_REAL_MPI_TYPE MPI_DOUBLE
95 #elif defined(SUNDIALS_EXTENDED_PRECISION)
97 #define PVEC_REAL_MPI_TYPE MPI_LONG_DOUBLE
101 #define PVEC_INTEGER_MPI_TYPE MPI_LONG
182 #define NV_CONTENT_P_LD(v) ((N_VectorContent_NrnParallelLD) (v->content))
184 #define NV_LOCLENGTH_P_LD(v) (NV_CONTENT_P_LD(v)->local_length)
186 #define NV_GLOBLENGTH_P_LD(v) (NV_CONTENT_P_LD(v)->global_length)
188 #define NV_OWN_DATA_P_LD(v) (NV_CONTENT_P_LD(v)->own_data)
190 #define NV_DATA_P_LD(v) (NV_CONTENT_P_LD(v)->data)
192 #define NV_COMM_P_LD(v) (NV_CONTENT_P_LD(v)->comm)
194 #define NV_Ith_P_LD(v, i) (NV_DATA_P_LD(v)[i])
realtype N_VWL2Norm_NrnParallelLD(N_Vector x, N_Vector w)
void N_VSetArrayPointer_NrnParallelLD(realtype *v_data, N_Vector v)
N_Vector N_VClone_NrnParallelLD(N_Vector w)
booleantype N_VInvTest_NrnParallelLD(N_Vector x, N_Vector z)
realtype N_VL1Norm_NrnParallelLD(N_Vector x)
void N_VProd_NrnParallelLD(N_Vector x, N_Vector y, N_Vector z)
void N_VScale_NrnParallelLD(realtype c, N_Vector x, N_Vector z)
N_Vector N_VCloneEmpty_NrnParallelLD(N_Vector w)
N_Vector N_VMake_NrnParallelLD(MPI_Comm comm, long int local_length, long int global_length, realtype *v_data)
realtype N_VMin_NrnParallelLD(N_Vector x)
realtype N_VWrmsNormMask_NrnParallelLD(N_Vector x, N_Vector w, N_Vector id)
void N_VDiv_NrnParallelLD(N_Vector x, N_Vector y, N_Vector z)
void N_VSpace_NrnParallelLD(N_Vector v, long int *lrw, long int *liw)
N_Vector N_VNewEmpty_NrnParallelLD(MPI_Comm comm, long int local_length, long int global_length)
void N_VAddConst_NrnParallelLD(N_Vector x, realtype b, N_Vector z)
booleantype N_VConstrMask_NrnParallelLD(N_Vector c, N_Vector x, N_Vector m)
void N_VInv_NrnParallelLD(N_Vector x, N_Vector z)
void N_VAbs_NrnParallelLD(N_Vector x, N_Vector z)
void N_VLinearSum_NrnParallelLD(realtype a, N_Vector x, realtype b, N_Vector y, N_Vector z)
void N_VConst_NrnParallelLD(realtype c, N_Vector z)
struct _N_VectorContent_NrnParallelLD * N_VectorContent_NrnParallelLD
void N_VDestroyVectorArray_NrnParallelLD(N_Vector *vs, int count)
void N_VDestroy_NrnParallelLD(N_Vector v)
realtype N_VMaxNorm_NrnParallelLD(N_Vector x)
N_Vector * N_VNewVectorArray_NrnParallelLD(int count, MPI_Comm comm, long int local_length, long int global_length)
realtype * N_VGetArrayPointer_NrnParallelLD(N_Vector v)
realtype N_VDotProd_NrnParallelLD(N_Vector x, N_Vector y)
realtype N_VMinQuotient_NrnParallelLD(N_Vector num, N_Vector denom)
realtype N_VWrmsNorm_NrnParallelLD(N_Vector x, N_Vector w)
void N_VCompare_NrnParallelLD(realtype c, N_Vector x, N_Vector z)
N_Vector N_VNew_NrnParallelLD(MPI_Comm comm, long int local_length, long int global_length)
void N_VPrint_NrnParallelLD(N_Vector v)
N_Vector * N_VNewVectorArrayEmpty_NrnParallelLD(int count, MPI_Comm comm, long int local_length, long int global_length)