#include <stdio.h>
#include <stdlib.h>
#include "shared/nvector_serial.h"
#include "nvector_nrnthread.h"
#include "nvector.h"
#include "sundialstypes.h"
#include "shared/sundialsmath.h"
#include "shared/sundialstypes.h"
#include "section.h"
#include "nrnmutdec.h"
Defines | |
#define | USELONGDOUBLE 0 |
#define | ZERO RCONST(0.0) |
#define | HALF RCONST(0.5) |
#define | ONE RCONST(1.0) |
#define | ONEPT5 RCONST(1.5) |
#define | mydebug(a) |
#define | mydebug2(a, b) |
#define | ldrealtype realtype |
#define | xpass x_ = x; |
#define | ypass y_ = y; |
#define | zpass z_ = z; |
#define | wpass w_ = w; |
#define | idpass id_ = id; |
#define | apass a_ = a; |
#define | bpass b_ = b; |
#define | cpass c_ = c; |
#define | xarg(i) NV_SUBVEC_NT(x_, i) |
#define | yarg(i) NV_SUBVEC_NT(y_, i) |
#define | zarg(i) NV_SUBVEC_NT(z_, i) |
#define | warg(i) NV_SUBVEC_NT(w_, i) |
#define | idarg(i) NV_SUBVEC_NT(id_, i) |
#define | aarg a_ |
#define | barg b_ |
#define | carg c_ |
#define | lock MUTLOCK |
#define | unlock MUTUNLOCK |
#define | lockadd(arg) lock; retval += arg; unlock; |
#define | locklongdadd(arg) lockadd(arg) |
#define | lockmax(arg) lock; if (retval < arg) { retval = arg; }; unlock; |
#define | lockmin(arg) lock; if (retval > arg) { retval = arg; }; unlock; |
#define | lockfalse lock; bretval = FALSE; unlock; |
Functions | |
N_Vector | N_VNewEmpty_NrnThread (long int length, int nthread, long int *sizes) |
N_Vector | N_VNew_NrnThread (long int length, int nthread, long int *sizes) |
N_Vector | N_VCloneEmpty_NrnThread (N_Vector w) |
N_Vector | N_VMake_NrnThread (long int length, realtype *v_data) |
N_Vector * | N_VNewVectorArray_NrnThread (int count, long int length, int nthread, long int *sizes) |
N_Vector * | N_VNewVectorArrayEmpty_NrnThread (int count, long int length, int nthread, long int *sizes) |
void | N_VDestroyVectorArray_NrnThread (N_Vector *vs, int count) |
void | N_VPrint_NrnThread (N_Vector x) |
N_Vector | N_VClone_NrnThread (N_Vector w) |
void | N_VDestroy_NrnThread (N_Vector v) |
void | N_VSpace_NrnThread (N_Vector v, long int *lrw, long int *liw) |
realtype * | N_VGetArrayPointer_NrnThread (N_Vector v) |
void | N_VSetArrayPointer_NrnThread (realtype *v_data, N_Vector v) |
void | N_VLinearSum_NrnThread (realtype a, N_Vector x, realtype b, N_Vector y, N_Vector z) |
void | N_VConst_NrnThread (realtype c, N_Vector z) |
void | N_VProd_NrnThread (N_Vector x, N_Vector y, N_Vector z) |
void | N_VDiv_NrnThread (N_Vector x, N_Vector y, N_Vector z) |
void | N_VScale_NrnThread (realtype c, N_Vector x, N_Vector z) |
void | N_VAbs_NrnThread (N_Vector x, N_Vector z) |
void | N_VInv_NrnThread (N_Vector x, N_Vector z) |
void | N_VAddConst_NrnThread (N_Vector x, realtype b, N_Vector z) |
realtype | N_VDotProd_NrnThread (N_Vector x, N_Vector y) |
realtype | N_VMaxNorm_NrnThread (N_Vector x) |
realtype | N_VWrmsNorm_NrnThread (N_Vector x, N_Vector w) |
realtype | N_VWrmsNormMask_NrnThread (N_Vector x, N_Vector w, N_Vector id) |
realtype | N_VMin_NrnThread (N_Vector x) |
realtype | N_VWL2Norm_NrnThread (N_Vector x, N_Vector w) |
realtype | N_VL1Norm_NrnThread (N_Vector x) |
void | N_VOneMask_NrnThread (N_Vector x) |
void | N_VCompare_NrnThread (realtype c, N_Vector x, N_Vector z) |
booleantype | N_VInvTest_NrnThread (N_Vector x, N_Vector z) |
booleantype | N_VConstrMask_NrnThread (N_Vector y, N_Vector x, N_Vector z) |
realtype | N_VMinQuotient_NrnThread (N_Vector x, N_Vector y) |
#define aarg a_ |
#define apass a_ = a; |
Referenced by N_VLinearSum_NrnThread(), and N_VLinearSum_NrnThreadLD().
#define barg b_ |
#define bpass b_ = b; |
Referenced by N_VAddConst_NrnThread(), N_VAddConst_NrnThreadLD(), N_VLinearSum_NrnThread(), and N_VLinearSum_NrnThreadLD().
#define carg c_ |
#define cpass c_ = c; |
#define HALF RCONST(0.5) |
#define idpass id_ = id; |
Referenced by N_VWrmsNormMask_NrnThread(), and N_VWrmsNormMask_NrnThreadLD().
#define ldrealtype realtype |
#define lock MUTLOCK |
#define lockadd | ( | arg | ) | lock; retval += arg; unlock; |
#define lockfalse lock; bretval = FALSE; unlock; |
#define locklongdadd | ( | arg | ) | lockadd(arg) |
#define lockmax | ( | arg | ) | lock; if (retval < arg) { retval = arg; }; unlock; |
#define lockmin | ( | arg | ) | lock; if (retval > arg) { retval = arg; }; unlock; |
#define mydebug | ( | a | ) |
Referenced by N_VAbs_NrnThread(), N_VAbs_NrnThreadLD(), N_VAddConst_NrnThread(), N_VAddConst_NrnThreadLD(), N_VCompare_NrnThread(), N_VCompare_NrnThreadLD(), N_VConst_NrnThread(), N_VConst_NrnThreadLD(), N_VDiv_NrnThread(), N_VDiv_NrnThreadLD(), N_VInv_NrnThread(), N_VInv_NrnThreadLD(), N_VLinearSum_NrnThread(), N_VLinearSum_NrnThreadLD(), N_VProd_NrnThread(), N_VProd_NrnThreadLD(), N_VScale_NrnThread(), and N_VScale_NrnThreadLD().
#define mydebug2 | ( | a, | |||
b | ) |
Referenced by N_VConstrMask_NrnThread(), N_VConstrMask_NrnThreadLD(), N_VDotProd_NrnThread(), N_VDotProd_NrnThreadLD(), N_VInvTest_NrnThread(), N_VInvTest_NrnThreadLD(), N_VL1Norm_NrnThread(), N_VL1Norm_NrnThreadLD(), N_VMaxNorm_NrnThread(), N_VMaxNorm_NrnThreadLD(), N_VMin_NrnThread(), N_VMin_NrnThreadLD(), N_VMinQuotient_NrnThread(), N_VMinQuotient_NrnThreadLD(), N_VWL2Norm_NrnThread(), N_VWL2Norm_NrnThreadLD(), N_VWrmsNorm_NrnThread(), N_VWrmsNorm_NrnThreadLD(), N_VWrmsNormMask_NrnThread(), and N_VWrmsNormMask_NrnThreadLD().
#define ONE RCONST(1.0) |
#define ONEPT5 RCONST(1.5) |
#define unlock MUTUNLOCK |
#define USELONGDOUBLE 0 |
#define wpass w_ = w; |
Referenced by SymDirectoryImpl::load_section().
#define xpass x_ = x; |
Referenced by N_VAbs_NrnThread(), N_VAbs_NrnThreadLD(), N_VAddConst_NrnThread(), N_VAddConst_NrnThreadLD(), N_VCompare_NrnThread(), N_VCompare_NrnThreadLD(), N_VConstrMask_NrnThread(), N_VConstrMask_NrnThreadLD(), N_VDiv_NrnThread(), N_VDiv_NrnThreadLD(), N_VDotProd_NrnThread(), N_VDotProd_NrnThreadLD(), N_VInv_NrnThread(), N_VInv_NrnThreadLD(), N_VInvTest_NrnThread(), N_VInvTest_NrnThreadLD(), N_VL1Norm_NrnThread(), N_VL1Norm_NrnThreadLD(), N_VLinearSum_NrnThread(), N_VLinearSum_NrnThreadLD(), N_VMaxNorm_NrnThread(), N_VMaxNorm_NrnThreadLD(), N_VMin_NrnThread(), N_VMin_NrnThreadLD(), N_VMinQuotient_NrnThread(), N_VMinQuotient_NrnThreadLD(), N_VOneMask_NrnThread(), N_VOneMask_NrnThreadLD(), N_VProd_NrnThread(), N_VProd_NrnThreadLD(), N_VScale_NrnThread(), N_VScale_NrnThreadLD(), N_VWL2Norm_NrnThread(), N_VWL2Norm_NrnThreadLD(), N_VWrmsNorm_NrnThread(), N_VWrmsNorm_NrnThreadLD(), N_VWrmsNormMask_NrnThread(), and N_VWrmsNormMask_NrnThreadLD().
#define ypass y_ = y; |
Referenced by N_VConstrMask_NrnThread(), N_VConstrMask_NrnThreadLD(), N_VDiv_NrnThread(), N_VDiv_NrnThreadLD(), N_VDotProd_NrnThread(), N_VDotProd_NrnThreadLD(), N_VLinearSum_NrnThread(), N_VLinearSum_NrnThreadLD(), N_VMinQuotient_NrnThread(), N_VMinQuotient_NrnThreadLD(), N_VProd_NrnThread(), and N_VProd_NrnThreadLD().
#define ZERO RCONST(0.0) |
#define zpass z_ = z; |
Referenced by N_VAbs_NrnThread(), N_VAbs_NrnThreadLD(), N_VAddConst_NrnThread(), N_VAddConst_NrnThreadLD(), N_VCompare_NrnThread(), N_VCompare_NrnThreadLD(), N_VConst_NrnThread(), N_VConst_NrnThreadLD(), N_VConstrMask_NrnThread(), N_VConstrMask_NrnThreadLD(), N_VDiv_NrnThread(), N_VDiv_NrnThreadLD(), N_VInv_NrnThread(), N_VInv_NrnThreadLD(), N_VInvTest_NrnThread(), N_VInvTest_NrnThreadLD(), N_VLinearSum_NrnThread(), N_VLinearSum_NrnThreadLD(), N_VProd_NrnThread(), N_VProd_NrnThreadLD(), N_VScale_NrnThread(), and N_VScale_NrnThreadLD().
void N_VAbs_NrnThread | ( | N_Vector | x, | |
N_Vector | z | |||
) |
References mydebug, nrn_multithread_job(), xpass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
void N_VAddConst_NrnThread | ( | N_Vector | x, | |
realtype | b, | |||
N_Vector | z | |||
) |
References bpass, mydebug, nrn_multithread_job(), xpass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
N_Vector N_VClone_NrnThread | ( | N_Vector | w | ) |
References data, i, _N_VectorContent_NrnSerialLD::length, N_VCloneEmpty_NrnThread(), N_VDestroy_NrnThread(), NV_LENGTH_NT, NV_NT_NT, NV_OWN_DATA_NT, NV_SUBVEC_NT, and v.
Referenced by N_VNewEmpty_NrnThread().
N_Vector N_VCloneEmpty_NrnThread | ( | N_Vector | w | ) |
References _N_VectorContent_NrnThread::data, i, _N_VectorContent_NrnThread::length, _N_VectorContent_NrnThread::nt, NV_CONTENT_NT, NV_LENGTH_NT, _N_VectorContent_NrnThread::own_data, and v.
Referenced by N_VClone_NrnThread().
void N_VCompare_NrnThread | ( | realtype | c, | |
N_Vector | x, | |||
N_Vector | z | |||
) |
References cpass, mydebug, nrn_multithread_job(), xpass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
void N_VConst_NrnThread | ( | realtype | c, | |
N_Vector | z | |||
) |
References cpass, mydebug, nrn_multithread_job(), and zpass.
Referenced by N_VNewEmpty_NrnThread().
booleantype N_VConstrMask_NrnThread | ( | N_Vector | y, | |
N_Vector | x, | |||
N_Vector | z | |||
) |
References mydebug2, nrn_multithread_job(), xpass, ypass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
void N_VDestroy_NrnThread | ( | N_Vector | v | ) |
References data, i, NV_CONTENT_NT, NV_NT_NT, NV_OWN_DATA_NT, and NV_SUBVEC_NT.
Referenced by N_VClone_NrnThread(), N_VDestroyVectorArray_NrnThread(), N_VNew_NrnThread(), and N_VNewEmpty_NrnThread().
References N_VDestroy_NrnThread().
Referenced by N_VNewVectorArray_NrnThread(), and N_VNewVectorArrayEmpty_NrnThread().
void N_VDiv_NrnThread | ( | N_Vector | x, | |
N_Vector | y, | |||
N_Vector | z | |||
) |
References mydebug, nrn_multithread_job(), xpass, ypass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VDotProd_NrnThread | ( | N_Vector | x, | |
N_Vector | y | |||
) |
References mydebug2, nrn_multithread_job(), xpass, ypass, and ZERO.
Referenced by N_VNewEmpty_NrnThread().
realtype* N_VGetArrayPointer_NrnThread | ( | N_Vector | v | ) |
References NV_DATA_NT.
Referenced by N_VNewEmpty_NrnThread().
void N_VInv_NrnThread | ( | N_Vector | x, | |
N_Vector | z | |||
) |
References mydebug, nrn_multithread_job(), xpass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
booleantype N_VInvTest_NrnThread | ( | N_Vector | x, | |
N_Vector | z | |||
) |
References mydebug2, nrn_multithread_job(), xpass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VL1Norm_NrnThread | ( | N_Vector | x | ) |
References mydebug2, nrn_multithread_job(), xpass, and ZERO.
Referenced by N_VNewEmpty_NrnThread().
void N_VLinearSum_NrnThread | ( | realtype | a, | |
N_Vector | x, | |||
realtype | b, | |||
N_Vector | y, | |||
N_Vector | z | |||
) |
References apass, bpass, mydebug, nrn_multithread_job(), xpass, ypass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
N_Vector N_VMake_NrnThread | ( | long int | length, | |
realtype * | v_data | |||
) |
References assert, N_VNewEmpty_NrnThread(), NV_DATA_NT, NV_OWN_DATA_NT, and v.
realtype N_VMaxNorm_NrnThread | ( | N_Vector | x | ) |
References mydebug2, nrn_multithread_job(), xpass, and ZERO.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VMin_NrnThread | ( | N_Vector | x | ) |
References mydebug2, nrn_multithread_job(), and xpass.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VMinQuotient_NrnThread | ( | N_Vector | x, | |
N_Vector | y | |||
) |
References mydebug2, nrn_multithread_job(), xpass, and ypass.
Referenced by N_VNewEmpty_NrnThread().
References data, i, N_VDestroy_NrnThread(), N_VNewEmpty_NrnThread(), NV_OWN_DATA_NT, NV_SUBVEC_NT, and v.
Referenced by N_VNewVectorArray_NrnThread().
References _N_VectorContent_NrnThread::data, i, _N_VectorContent_NrnThread::length, MUTCONSTRUCT, MUTCONSTRUCTED, N_VAbs_NrnThread(), N_VAddConst_NrnThread(), N_VClone_NrnThread(), N_VCompare_NrnThread(), N_VConst_NrnThread(), N_VConstrMask_NrnThread(), N_VDestroy_NrnThread(), N_VDiv_NrnThread(), N_VDotProd_NrnThread(), N_VGetArrayPointer_NrnThread(), N_VInv_NrnThread(), N_VInvTest_NrnThread(), N_VL1Norm_NrnThread(), N_VLinearSum_NrnThread(), N_VMaxNorm_NrnThread(), N_VMin_NrnThread(), N_VMinQuotient_NrnThread(), N_VProd_NrnThread(), N_VScale_NrnThread(), N_VSetArrayPointer_NrnThread(), N_VSpace_NrnThread(), N_VWL2Norm_NrnThread(), N_VWrmsNorm_NrnThread(), N_VWrmsNormMask_NrnThread(), _N_VectorContent_NrnThread::nt, _N_VectorContent_NrnThread::own_data, and v.
Referenced by N_VMake_NrnThread(), N_VNew_NrnThread(), and N_VNewVectorArrayEmpty_NrnThread().
References N_VDestroyVectorArray_NrnThread(), and N_VNew_NrnThread().
N_Vector* N_VNewVectorArrayEmpty_NrnThread | ( | int | count, | |
long int | length, | |||
int | nthread, | |||
long int * | sizes | |||
) |
References N_VDestroyVectorArray_NrnThread(), and N_VNewEmpty_NrnThread().
void N_VOneMask_NrnThread | ( | N_Vector | x | ) |
void N_VPrint_NrnThread | ( | N_Vector | x | ) |
References i, NV_NT_NT, and NV_SUBVEC_NT.
void N_VProd_NrnThread | ( | N_Vector | x, | |
N_Vector | y, | |||
N_Vector | z | |||
) |
References mydebug, nrn_multithread_job(), xpass, ypass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
void N_VScale_NrnThread | ( | realtype | c, | |
N_Vector | x, | |||
N_Vector | z | |||
) |
References cpass, mydebug, nrn_multithread_job(), xpass, and zpass.
Referenced by N_VNewEmpty_NrnThread().
void N_VSetArrayPointer_NrnThread | ( | realtype * | v_data, | |
N_Vector | v | |||
) |
References assert, NV_DATA_NT, and NV_LENGTH_NT.
Referenced by N_VNewEmpty_NrnThread().
References NV_LENGTH_NT.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VWL2Norm_NrnThread | ( | N_Vector | x, | |
N_Vector | w | |||
) |
References mydebug2, nrn_multithread_job(), NV_LENGTH_NT, wpass, xpass, and ZERO.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VWrmsNorm_NrnThread | ( | N_Vector | x, | |
N_Vector | w | |||
) |
References mydebug2, nrn_multithread_job(), NV_LENGTH_NT, wpass, xpass, and ZERO.
Referenced by N_VNewEmpty_NrnThread().
realtype N_VWrmsNormMask_NrnThread | ( | N_Vector | x, | |
N_Vector | w, | |||
N_Vector | id | |||
) |
References idpass, mydebug2, nrn_multithread_job(), NV_LENGTH_NT, wpass, xpass, and ZERO.
Referenced by N_VNewEmpty_NrnThread().