#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().

1.6.3