diff --git a/src/include/ngspice/devdefs.h b/src/include/ngspice/devdefs.h index 63137c403..ba19b12f2 100644 --- a/src/include/ngspice/devdefs.h +++ b/src/include/ngspice/devdefs.h @@ -102,8 +102,8 @@ typedef struct SPICEdev { int *DEVmodSize; /* size of a model */ #ifdef KLU - int (*DEVbindklu)(GENmodel*, CKTcircuit*); - int (*DEVbindkluComplex)(GENmodel*, CKTcircuit*); + int (*DEVbindCSC)(GENmodel*, CKTcircuit*); + int (*DEVbindCSCComplex)(GENmodel*, CKTcircuit*); #endif } SPICEdev; /* instance of structure for each possible type of device */ diff --git a/src/include/ngspice/smpdefs.h b/src/include/ngspice/smpdefs.h index 3d7e141da..c8b4c5b74 100644 --- a/src/include/ngspice/smpdefs.h +++ b/src/include/ngspice/smpdefs.h @@ -34,10 +34,10 @@ struct SMPmatrix { double *CKTkluAx ; /* KLU element */ double *CKTkluIntermediate ; /* KLU RHS Intermediate for Solve Real Step */ double *CKTkluIntermediate_Complex ; /* KLU iRHS Intermediate for Solve Complex Step */ - double **CKTkluBind_Sparse ; /* KLU - Sparse original element position */ - double **CKTkluBind_KLU ; /* KLU - KLU new element position */ - double **CKTkluBind_KLU_Complex ; /* KLU - KLU new element position in Complex analysis */ - double **CKTkluDiag ; /* KLU pointer to diagonal element to perform Gmin */ + double **CKTbind_Sparse ; /* KLU - Sparse original element position */ + double **CKTbind_CSC ; /* KLU - KLU new element position */ + double **CKTbind_CSC_Complex ; /* KLU - KLU new element position in Complex analysis */ + double **CKTdiag_CSC ; /* KLU pointer to diagonal element to perform Gmin */ int CKTkluN ; /* KLU N, copied */ int CKTklunz ; /* KLU nz, copied for AC Analysis */ int CKTkluMODE ; /* KLU MODE parameter to enable KLU or not from the heuristic */ diff --git a/src/maths/ni/niinit.c b/src/maths/ni/niinit.c index c4cba5b85..952cb534c 100644 --- a/src/maths/ni/niinit.c +++ b/src/maths/ni/niinit.c @@ -40,10 +40,10 @@ NIinit(CKTcircuit *ckt) ckt->CKTmatrix->CKTkluAx = NULL ; ckt->CKTmatrix->CKTkluIntermediate = NULL ; ckt->CKTmatrix->CKTkluIntermediate_Complex = NULL ; - ckt->CKTmatrix->CKTkluBind_Sparse = NULL ; - ckt->CKTmatrix->CKTkluBind_KLU = NULL ; - ckt->CKTmatrix->CKTkluBind_KLU_Complex = NULL ; - ckt->CKTmatrix->CKTkluDiag = NULL ; + ckt->CKTmatrix->CKTbind_Sparse = NULL ; + ckt->CKTmatrix->CKTbind_CSC = NULL ; + ckt->CKTmatrix->CKTbind_CSC_Complex = NULL ; + ckt->CKTmatrix->CKTdiag_CSC = NULL ; ckt->CKTmatrix->CKTkluN = 0 ; ckt->CKTmatrix->CKTklunz = 0 ; ckt->CKTmatrix->CKTkluMODE = CKTkluON ; /* TO BE SUBSTITUTED WITH THE HEURISTICS */ diff --git a/src/spicelib/analysis/acan.c b/src/spicelib/analysis/acan.c index 40147809e..06437b4c8 100644 --- a/src/spicelib/analysis/acan.c +++ b/src/spicelib/analysis/acan.c @@ -247,18 +247,17 @@ ACan(CKTcircuit *ckt, int restart) int i, m; double *temp; temp = TMALLOC (double, 2 * ckt->CKTmatrix->CKTklunz) ; - ckt->CKTmatrix->CKTkluBind_KLU_Complex = TMALLOC (double *, ckt->CKTmatrix->CKTklunz) ; + ckt->CKTmatrix->CKTbind_CSC_Complex = TMALLOC (double *, ckt->CKTmatrix->CKTklunz) ; ckt->CKTmatrix->CKTkluIntermediate_Complex = TMALLOC (double, 2 * ckt->CKTmatrix->CKTkluN) ; m = 0; for (i = 0 ; i < ckt->CKTmatrix->CKTklunz ; i++) { - ckt->CKTmatrix->CKTkluBind_KLU_Complex [i] = &(temp [m]) ; + ckt->CKTmatrix->CKTbind_CSC_Complex [i] = &(temp [m]) ; m += 2; } - DEVices[13]->DEVbindkluComplex (ckt->CKThead[13], ckt) ; - DEVices[17]->DEVbindkluComplex (ckt->CKThead[17], ckt) ; - DEVices[40]->DEVbindkluComplex (ckt->CKThead[40], ckt) ; - DEVices[48]->DEVbindkluComplex (ckt->CKThead[48], ckt) ; + for (i = 0 ; i < DEVmaxnum ; i++) + if (DEVices [i] && DEVices [i]->DEVbindCSCComplex) + DEVices [i]->DEVbindCSCComplex (ckt->CKThead [i], ckt) ; free (ckt->CKTmatrix->CKTkluAx) ; ckt->CKTmatrix->CKTkluAx = temp ; diff --git a/src/spicelib/analysis/cktop.c b/src/spicelib/analysis/cktop.c index fd2409d7e..4e3f1074a 100644 --- a/src/spicelib/analysis/cktop.c +++ b/src/spicelib/analysis/cktop.c @@ -30,6 +30,7 @@ ckt->CKTmode = firstmode; #ifdef KLU if (ckt->CKTmatrix->CKTkluMODE) { + int i ; int n = ckt->CKTmatrix->CKTkluN ; int nz = ckt->CKTmatrix->CKTklunz ; @@ -38,17 +39,16 @@ ckt->CKTmode = firstmode; ckt->CKTmatrix->CKTkluAx = TMALLOC (double, nz) ; ckt->CKTmatrix->CKTkluIntermediate = TMALLOC (double, n ) ; - ckt->CKTmatrix->CKTkluBind_Sparse = TMALLOC (double *, nz) ; - ckt->CKTmatrix->CKTkluBind_KLU = TMALLOC (double *, nz) ; + ckt->CKTmatrix->CKTbind_Sparse = TMALLOC (double *, nz) ; + ckt->CKTmatrix->CKTbind_CSC = TMALLOC (double *, nz) ; - ckt->CKTmatrix->CKTkluDiag = TMALLOC (double *, n) ; + ckt->CKTmatrix->CKTdiag_CSC = TMALLOC (double *, n) ; SMPmatrix_CSC (ckt->CKTmatrix) ; - DEVices[13]->DEVbindklu (ckt->CKThead[13], ckt); - DEVices[17]->DEVbindklu (ckt->CKThead[17], ckt); - DEVices[40]->DEVbindklu (ckt->CKThead[40], ckt); - DEVices[48]->DEVbindklu (ckt->CKThead[48], ckt); + for (i = 0 ; i < DEVmaxnum ; i++) + if (DEVices [i] && DEVices [i]->DEVbindCSC) + DEVices [i]->DEVbindCSC (ckt->CKThead [i], ckt) ; } #endif diff --git a/src/spicelib/devices/asrc/asrcinit.c b/src/spicelib/devices/asrc/asrcinit.c index a9339deee..37bf5b990 100644 --- a/src/spicelib/devices/asrc/asrcinit.c +++ b/src/spicelib/devices/asrc/asrcinit.c @@ -73,7 +73,12 @@ SPICEdev ASRCinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &ASRCiSize, - /* DEVmodSize */ &ASRCmSize + /* DEVmodSize */ &ASRCmSize, +#ifdef KLU + /* DEVbindCSC */ NULL, + /* DEVbindCSCComplex */ NULL, +#endif + }; diff --git a/src/spicelib/devices/bjt/Makefile.am b/src/spicelib/devices/bjt/Makefile.am index 8b4ab3664..3f8d26bfd 100644 --- a/src/spicelib/devices/bjt/Makefile.am +++ b/src/spicelib/devices/bjt/Makefile.am @@ -35,6 +35,9 @@ libbjt_la_SOURCES = \ bjttrunc.c +if KLU_WANTED +libbjt_la_SOURCES += bjtbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bjt/bjtext.h b/src/spicelib/devices/bjt/bjtext.h index 69e5c3322..105611872 100644 --- a/src/spicelib/devices/bjt/bjtext.h +++ b/src/spicelib/devices/bjt/bjtext.h @@ -33,3 +33,8 @@ extern int BJTnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BJTdSetup(GENmodel*, register CKTcircuit*); #endif + +#ifdef KLU +extern int BJTbindCSC(GENmodel*, CKTcircuit*); +extern int BJTbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bjt/bjtinit.c b/src/spicelib/devices/bjt/bjtinit.c index c412225b9..b511216c0 100644 --- a/src/spicelib/devices/bjt/bjtinit.c +++ b/src/spicelib/devices/bjt/bjtinit.c @@ -72,7 +72,11 @@ SPICEdev BJTinfo = { /* description from struct IFdevice */ /* DEVacct */ NULL, #endif /* DEVinstSize */ &BJTiSize, - /* DEVmodSize */ &BJTmSize + /* DEVmodSize */ &BJTmSize, +#ifdef KLU + /* DEVbindCSC */ BJTbindCSC, + /* DEVbindCSCComplex */ BJTbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim1/Makefile.am b/src/spicelib/devices/bsim1/Makefile.am index da088cf5b..62ae1816a 100644 --- a/src/spicelib/devices/bsim1/Makefile.am +++ b/src/spicelib/devices/bsim1/Makefile.am @@ -31,6 +31,9 @@ libbsim1_la_SOURCES = \ bsim1itf.h +if KLU_WANTED +libbsim1_la_SOURCES += b1bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim1/bsim1ext.h b/src/spicelib/devices/bsim1/bsim1ext.h index e859e3009..2accd47b7 100644 --- a/src/spicelib/devices/bsim1/bsim1ext.h +++ b/src/spicelib/devices/bsim1/bsim1ext.h @@ -29,3 +29,8 @@ extern int B1temp(GENmodel*,CKTcircuit*); extern int B1trunc(GENmodel*,CKTcircuit*,double*); extern int B1disto(int,GENmodel*,CKTcircuit*); extern int B1dSetup(GENmodel*, register CKTcircuit*); + +#ifdef KLU +extern int B1bindCSC(GENmodel*, CKTcircuit*); +extern int B1bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim1/bsim1init.c b/src/spicelib/devices/bsim1/bsim1init.c index 38cadef6e..9ba9e6253 100644 --- a/src/spicelib/devices/bsim1/bsim1init.c +++ b/src/spicelib/devices/bsim1/bsim1init.c @@ -72,7 +72,11 @@ SPICEdev B1info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &B1iSize, - /* DEVmodSize */ &B1mSize + /* DEVmodSize */ &B1mSize, +#ifdef KLU + /* DEVbindCSC */ B1bindCSC, + /* DEVbindCSCComplex */ B1bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim2/Makefile.am b/src/spicelib/devices/bsim2/Makefile.am index ea8ae9855..97597da11 100644 --- a/src/spicelib/devices/bsim2/Makefile.am +++ b/src/spicelib/devices/bsim2/Makefile.am @@ -29,6 +29,9 @@ libbsim2_la_SOURCES = \ bsim2itf.h +if KLU_WANTED +libbsim2_la_SOURCES += b2bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim2/bsim2ext.h b/src/spicelib/devices/bsim2/bsim2ext.h index ab7b800da..e931afd0b 100644 --- a/src/spicelib/devices/bsim2/bsim2ext.h +++ b/src/spicelib/devices/bsim2/bsim2ext.h @@ -25,3 +25,8 @@ extern int B2setup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int B2unsetup(GENmodel*,CKTcircuit*); extern int B2temp(GENmodel*,CKTcircuit*); extern int B2trunc(GENmodel*,CKTcircuit*,double*); + +#ifdef KLU +extern int B2bindCSC(GENmodel*, CKTcircuit*); +extern int B2bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim2/bsim2init.c b/src/spicelib/devices/bsim2/bsim2init.c index 9af87b53c..f64a37563 100644 --- a/src/spicelib/devices/bsim2/bsim2init.c +++ b/src/spicelib/devices/bsim2/bsim2init.c @@ -72,7 +72,11 @@ SPICEdev B2info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &B2iSize, - /* DEVmodSize */ &B2mSize + /* DEVmodSize */ &B2mSize, +#ifdef KLU + /* DEVbindCSC */ B2bindCSC, + /* DEVbindCSCComplex */ B2bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim3/Makefile.am b/src/spicelib/devices/bsim3/Makefile.am index 2871b0f2e..3a36f0207 100644 --- a/src/spicelib/devices/bsim3/Makefile.am +++ b/src/spicelib/devices/bsim3/Makefile.am @@ -28,6 +28,9 @@ libbsim3_la_SOURCES = \ bsim3itf.h +if KLU_WANTED +libbsim3_la_SOURCES += b3bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3/bsim3ext.h b/src/spicelib/devices/bsim3/bsim3ext.h index 71662ea8b..b24190f1d 100644 --- a/src/spicelib/devices/bsim3/bsim3ext.h +++ b/src/spicelib/devices/bsim3/bsim3ext.h @@ -28,3 +28,8 @@ extern int BSIM3temp(GENmodel*,CKTcircuit*); extern int BSIM3trunc(GENmodel*,CKTcircuit*,double*); extern int BSIM3noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM3unsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int BSIM3bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM3bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3/bsim3init.c b/src/spicelib/devices/bsim3/bsim3init.c index 48c2f08ae..70f7aa6e7 100644 --- a/src/spicelib/devices/bsim3/bsim3init.c +++ b/src/spicelib/devices/bsim3/bsim3init.c @@ -71,7 +71,11 @@ SPICEdev BSIM3info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &BSIM3iSize, - /* DEVmodSize */ &BSIM3mSize + /* DEVmodSize */ &BSIM3mSize, +#ifdef KLU + /* DEVbindCSC */ BSIM3bindCSC, + /* DEVbindCSCComplex */ BSIM3bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim3soi_dd/Makefile.am b/src/spicelib/devices/bsim3soi_dd/Makefile.am index 5187d67e3..df3b14beb 100644 --- a/src/spicelib/devices/bsim3soi_dd/Makefile.am +++ b/src/spicelib/devices/bsim3soi_dd/Makefile.am @@ -28,6 +28,9 @@ libbsim3soidd_la_SOURCES = \ b3soidditf.h +if KLU_WANTED +libbsim3soidd_la_SOURCES += b3soiddbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3soi_dd/b3soiddext.h b/src/spicelib/devices/bsim3soi_dd/b3soiddext.h index 1d5d90695..77fb29dcc 100644 --- a/src/spicelib/devices/bsim3soi_dd/b3soiddext.h +++ b/src/spicelib/devices/bsim3soi_dd/b3soiddext.h @@ -28,3 +28,8 @@ extern int B3SOIDDtemp(GENmodel*,CKTcircuit*); extern int B3SOIDDtrunc(GENmodel*,CKTcircuit*,double*); extern int B3SOIDDnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int B3SOIDDunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int B3SOIDDbindCSC(GENmodel*, CKTcircuit*); +extern int B3SOIDDbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3soi_dd/b3soiddinit.c b/src/spicelib/devices/bsim3soi_dd/b3soiddinit.c index d3b0fb490..563962bf0 100644 --- a/src/spicelib/devices/bsim3soi_dd/b3soiddinit.c +++ b/src/spicelib/devices/bsim3soi_dd/b3soiddinit.c @@ -69,7 +69,12 @@ SPICEdev B3SOIDDinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &B3SOIDDiSize, - /* DEVmodSize */ &B3SOIDDmSize + /* DEVmodSize */ &B3SOIDDmSize, +#ifdef KLU + /* DEVbindCSC */ B3SOIDDbindCSC, + /* DEVbindCSCComplex */ B3SOIDDbindCSCComplex, +#endif + }; SPICEdev * diff --git a/src/spicelib/devices/bsim3soi_fd/Makefile.am b/src/spicelib/devices/bsim3soi_fd/Makefile.am index aac0e863a..dad13649e 100644 --- a/src/spicelib/devices/bsim3soi_fd/Makefile.am +++ b/src/spicelib/devices/bsim3soi_fd/Makefile.am @@ -28,6 +28,9 @@ libbsim3soifd_la_SOURCES = \ b3soifditf.h +if KLU_WANTED +libbsim3soifd_la_SOURCES += b3soifdbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifdext.h b/src/spicelib/devices/bsim3soi_fd/b3soifdext.h index 1c6ed33dd..b699d268e 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifdext.h +++ b/src/spicelib/devices/bsim3soi_fd/b3soifdext.h @@ -29,3 +29,8 @@ extern int B3SOIFDtrunc(GENmodel*,CKTcircuit*,double*); extern int B3SOIFDnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int B3SOIFDunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int B3SOIFDbindCSC(GENmodel*, CKTcircuit*); +extern int B3SOIFDbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3soi_fd/b3soifdinit.c b/src/spicelib/devices/bsim3soi_fd/b3soifdinit.c index 27b3a6d43..2611310de 100644 --- a/src/spicelib/devices/bsim3soi_fd/b3soifdinit.c +++ b/src/spicelib/devices/bsim3soi_fd/b3soifdinit.c @@ -70,7 +70,12 @@ SPICEdev B3SOIFDinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize*/ &B3SOIFDiSize, - /* DEVmodSize*/ &B3SOIFDmSize + /* DEVmodSize*/ &B3SOIFDmSize, +#ifdef KLU + /* DEVbindCSC */ B3SOIFDbindCSC, + /* DEVbindCSCComplex */ B3SOIFDbindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/bsim3soi_pd/Makefile.am b/src/spicelib/devices/bsim3soi_pd/Makefile.am index f363b1d0e..5c426c521 100644 --- a/src/spicelib/devices/bsim3soi_pd/Makefile.am +++ b/src/spicelib/devices/bsim3soi_pd/Makefile.am @@ -28,6 +28,9 @@ libbsim3soipd_la_SOURCES = \ b3soipditf.h +if KLU_WANTED +libbsim3soipd_la_SOURCES += b3soipdbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3soi_pd/b3soipdext.h b/src/spicelib/devices/bsim3soi_pd/b3soipdext.h index ea2951794..e41c9cb10 100644 --- a/src/spicelib/devices/bsim3soi_pd/b3soipdext.h +++ b/src/spicelib/devices/bsim3soi_pd/b3soipdext.h @@ -28,3 +28,8 @@ extern int B3SOIPDtemp(GENmodel*,CKTcircuit*); extern int B3SOIPDtrunc(GENmodel*,CKTcircuit*,double*); extern int B3SOIPDnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int B3SOIPDunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int B3SOIPDbindCSC(GENmodel*, CKTcircuit*); +extern int B3SOIPDbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3soi_pd/b3soipdinit.c b/src/spicelib/devices/bsim3soi_pd/b3soipdinit.c index 1fdab9690..81096ab8f 100644 --- a/src/spicelib/devices/bsim3soi_pd/b3soipdinit.c +++ b/src/spicelib/devices/bsim3soi_pd/b3soipdinit.c @@ -71,7 +71,12 @@ SPICEdev B3SOIPDinfo = { /* DEVacct*/ NULL, #endif /* DEVinstSize*/ &B3SOIPDiSize, - /* DEVmodSize*/ &B3SOIPDmSize + /* DEVmodSize*/ &B3SOIPDmSize, +#ifdef KLU + /* DEVbindCSC */ B3SOIPDbindCSC, + /* DEVbindCSCComplex */ B3SOIPDbindCSCComplex, +#endif + }; SPICEdev * diff --git a/src/spicelib/devices/bsim3v0/Makefile.am b/src/spicelib/devices/bsim3v0/Makefile.am index 4db27a86d..8273566bf 100644 --- a/src/spicelib/devices/bsim3v0/Makefile.am +++ b/src/spicelib/devices/bsim3v0/Makefile.am @@ -27,6 +27,9 @@ libbsim3v0_la_SOURCES = \ bsim3v0itf.h +if KLU_WANTED +libbsim3v0_la_SOURCES += b3v0bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3v0/bsim3v0ext.h b/src/spicelib/devices/bsim3v0/bsim3v0ext.h index 02ad75173..621ab51c1 100644 --- a/src/spicelib/devices/bsim3v0/bsim3v0ext.h +++ b/src/spicelib/devices/bsim3v0/bsim3v0ext.h @@ -28,3 +28,8 @@ extern int BSIM3v0trunc(GENmodel*,CKTcircuit*,double*); extern int BSIM3v0noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM3v0unsetup(GENmodel *, CKTcircuit *); + +#ifdef KLU +extern int BSIM3v0bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM3v0bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3v0/bsim3v0init.c b/src/spicelib/devices/bsim3v0/bsim3v0init.c index 43a8e1575..cc460ef31 100644 --- a/src/spicelib/devices/bsim3v0/bsim3v0init.c +++ b/src/spicelib/devices/bsim3v0/bsim3v0init.c @@ -70,7 +70,11 @@ SPICEdev B3v0info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &BSIM3v0iSize, - /* DEVmodSize */ &BSIM3v0mSize + /* DEVmodSize */ &BSIM3v0mSize, +#ifdef KLU + /* DEVbindCSC */ BSIM3v0bindCSC, + /* DEVbindCSCComplex */ BSIM3v0bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim3v1/Makefile.am b/src/spicelib/devices/bsim3v1/Makefile.am index 9ede60cb9..3b22e68ce 100644 --- a/src/spicelib/devices/bsim3v1/Makefile.am +++ b/src/spicelib/devices/bsim3v1/Makefile.am @@ -28,6 +28,9 @@ libbsim3v1_la_SOURCES = \ bsim3v1itf.h +if KLU_WANTED +libbsim3v1_la_SOURCES += b3v1bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3v1/bsim3v1ext.h b/src/spicelib/devices/bsim3v1/bsim3v1ext.h index 67c96c37e..c5f723928 100644 --- a/src/spicelib/devices/bsim3v1/bsim3v1ext.h +++ b/src/spicelib/devices/bsim3v1/bsim3v1ext.h @@ -29,3 +29,8 @@ extern int BSIM3v1trunc(GENmodel *, CKTcircuit *, double *); extern int BSIM3v1noise(int, int, GENmodel *, CKTcircuit *, Ndata *, double *); extern int BSIM3v1unsetup(GENmodel *, CKTcircuit *); + +#ifdef KLU +extern int BSIM3v1bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM3v1bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3v1/bsim3v1init.c b/src/spicelib/devices/bsim3v1/bsim3v1init.c index 170807bdb..c0415e98b 100644 --- a/src/spicelib/devices/bsim3v1/bsim3v1init.c +++ b/src/spicelib/devices/bsim3v1/bsim3v1init.c @@ -70,7 +70,11 @@ SPICEdev BSIM3v1info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &BSIM3v1iSize, - /* DEVmodSize */ &BSIM3v1mSize + /* DEVmodSize */ &BSIM3v1mSize, +#ifdef KLU + /* DEVbindCSC */ BSIM3v1bindCSC, + /* DEVbindCSCComplex */ BSIM3v1bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim3v32/Makefile.am b/src/spicelib/devices/bsim3v32/Makefile.am index 37674d382..6db93d780 100644 --- a/src/spicelib/devices/bsim3v32/Makefile.am +++ b/src/spicelib/devices/bsim3v32/Makefile.am @@ -28,6 +28,9 @@ libbsim3v32_la_SOURCES = \ bsim3v32itf.h +if KLU_WANTED +libbsim3v32_la_SOURCES += b3v32bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3v32/bsim3v32ext.h b/src/spicelib/devices/bsim3v32/bsim3v32ext.h index b61b05109..7f96aa39d 100644 --- a/src/spicelib/devices/bsim3v32/bsim3v32ext.h +++ b/src/spicelib/devices/bsim3v32/bsim3v32ext.h @@ -29,3 +29,8 @@ extern int BSIM3v32temp(GENmodel*,CKTcircuit*); extern int BSIM3v32trunc(GENmodel*,CKTcircuit*,double*); extern int BSIM3v32noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM3v32unsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int BSIM3v32bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM3v32bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim3v32/bsim3v32init.c b/src/spicelib/devices/bsim3v32/bsim3v32init.c index 954088002..eddffce54 100644 --- a/src/spicelib/devices/bsim3v32/bsim3v32init.c +++ b/src/spicelib/devices/bsim3v32/bsim3v32init.c @@ -71,7 +71,11 @@ SPICEdev BSIM3v32info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &BSIM3v32iSize, - /* DEVmodSize */ &BSIM3v32mSize + /* DEVmodSize */ &BSIM3v32mSize, +#ifdef KLU + /* DEVbindCSC */ BSIM3v32bindCSC, + /* DEVbindCSCComplex */ BSIM3v32bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/bsim4/Makefile.am b/src/spicelib/devices/bsim4/Makefile.am index 9403a4129..6f1dfbbf4 100644 --- a/src/spicelib/devices/bsim4/Makefile.am +++ b/src/spicelib/devices/bsim4/Makefile.am @@ -29,6 +29,9 @@ libbsim4_la_SOURCES = \ bsim4itf.h +if KLU_WANTED +libbsim4_la_SOURCES += b4bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim4/bsim4ext.h b/src/spicelib/devices/bsim4/bsim4ext.h index 171406ae5..3209c7d57 100644 --- a/src/spicelib/devices/bsim4/bsim4ext.h +++ b/src/spicelib/devices/bsim4/bsim4ext.h @@ -28,3 +28,8 @@ extern int BSIM4temp(GENmodel*,CKTcircuit*); extern int BSIM4trunc(GENmodel*,CKTcircuit*,double*); extern int BSIM4noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM4unsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int BSIM4bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM4bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim4/bsim4init.c b/src/spicelib/devices/bsim4/bsim4init.c index 88b4fd97c..e77bee554 100644 --- a/src/spicelib/devices/bsim4/bsim4init.c +++ b/src/spicelib/devices/bsim4/bsim4init.c @@ -72,7 +72,12 @@ SPICEdev BSIM4info = { NULL, /* DEVacct */ #endif &BSIM4iSize, /* DEVinstSize */ - &BSIM4mSize /* DEVmodSize */ + &BSIM4mSize, /* DEVmodSize */ +#ifdef KLU + /* DEVbindCSC */ BSIM4bindCSC, + /* DEVbindCSCComplex */ BSIM4bindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/bsim4v4/Makefile.am b/src/spicelib/devices/bsim4v4/Makefile.am index a4f55eb42..8a70506b8 100644 --- a/src/spicelib/devices/bsim4v4/Makefile.am +++ b/src/spicelib/devices/bsim4v4/Makefile.am @@ -29,6 +29,9 @@ libbsim4v4_la_SOURCES = \ bsim4v4itf.h +if KLU_WANTED +libbsim4v4_la_SOURCES += b4v4bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim4v4/bsim4v4ext.h b/src/spicelib/devices/bsim4v4/bsim4v4ext.h index fd5fce099..4741f36ee 100644 --- a/src/spicelib/devices/bsim4v4/bsim4v4ext.h +++ b/src/spicelib/devices/bsim4v4/bsim4v4ext.h @@ -31,3 +31,8 @@ extern int BSIM4v4noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM4v4unsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int BSIM4v4bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM4v4bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim4v4/bsim4v4init.c b/src/spicelib/devices/bsim4v4/bsim4v4init.c index b50bd92fa..2e328e5a3 100644 --- a/src/spicelib/devices/bsim4v4/bsim4v4init.c +++ b/src/spicelib/devices/bsim4v4/bsim4v4init.c @@ -72,7 +72,12 @@ SPICEdev BSIM4v4info = { NULL, /* DEVacct */ #endif &BSIM4v4iSize, /* DEVinstSize */ - &BSIM4v4mSize /* DEVmodSize */ + &BSIM4v4mSize, /* DEVmodSize */ +#ifdef KLU + /* DEVbindCSC */ BSIM4v4bindCSC, + /* DEVbindCSCComplex */ BSIM4v4bindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/bsim4v5/Makefile.am b/src/spicelib/devices/bsim4v5/Makefile.am index a7ab65505..a16c1fdb3 100644 --- a/src/spicelib/devices/bsim4v5/Makefile.am +++ b/src/spicelib/devices/bsim4v5/Makefile.am @@ -29,6 +29,9 @@ libbsim4v5_la_SOURCES = \ bsim4v5itf.h +if KLU_WANTED +libbsim4v5_la_SOURCES += b4v5bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim4v5/bsim4v5ext.h b/src/spicelib/devices/bsim4v5/bsim4v5ext.h index 511969bfb..c256b61f6 100644 --- a/src/spicelib/devices/bsim4v5/bsim4v5ext.h +++ b/src/spicelib/devices/bsim4v5/bsim4v5ext.h @@ -28,3 +28,8 @@ extern int BSIM4v5temp(GENmodel*,CKTcircuit*); extern int BSIM4v5trunc(GENmodel*,CKTcircuit*,double*); extern int BSIM4v5noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM4v5unsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int BSIM4v5bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM4v5bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsim4v5/bsim4v5init.c b/src/spicelib/devices/bsim4v5/bsim4v5init.c index 5289072a7..a725ee969 100644 --- a/src/spicelib/devices/bsim4v5/bsim4v5init.c +++ b/src/spicelib/devices/bsim4v5/bsim4v5init.c @@ -72,7 +72,12 @@ SPICEdev BSIM4v5info = { NULL, /* DEVacct */ #endif &BSIM4v5iSize, /* DEVinstSize */ - &BSIM4v5mSize /* DEVmodSize */ + &BSIM4v5mSize, /* DEVmodSize */ +#ifdef KLU + /* DEVbindCSC */ BSIM4v5bindCSC, + /* DEVbindCSCComplex */ BSIM4v5bindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/bsim4v6/Makefile.am b/src/spicelib/devices/bsim4v6/Makefile.am index b8d3067cc..3222c3abc 100644 --- a/src/spicelib/devices/bsim4v6/Makefile.am +++ b/src/spicelib/devices/bsim4v6/Makefile.am @@ -29,7 +29,7 @@ libbsim4v6_la_SOURCES = \ bsim4v6itf.h if KLU_WANTED -libbsim4v6_la_SOURCES += b4v6bindklu.c +libbsim4v6_la_SOURCES += b4v6bindCSC.c endif diff --git a/src/spicelib/devices/bsim4v6/bsim4v6ext.h b/src/spicelib/devices/bsim4v6/bsim4v6ext.h index cb83a0887..fcb80e4e4 100644 --- a/src/spicelib/devices/bsim4v6/bsim4v6ext.h +++ b/src/spicelib/devices/bsim4v6/bsim4v6ext.h @@ -30,6 +30,6 @@ extern int BSIM4v6noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int BSIM4v6unsetup(GENmodel*,CKTcircuit*); #ifdef KLU -extern int BSIM4v6bindklu(GENmodel*,CKTcircuit*); -extern int BSIM4v6bindkluComplex(GENmodel*,CKTcircuit*); +extern int BSIM4v6bindCSC(GENmodel*, CKTcircuit*); +extern int BSIM4v6bindCSCComplex(GENmodel*, CKTcircuit*); #endif diff --git a/src/spicelib/devices/bsim4v6/bsim4v6init.c b/src/spicelib/devices/bsim4v6/bsim4v6init.c index 28473314f..7fc042bab 100644 --- a/src/spicelib/devices/bsim4v6/bsim4v6init.c +++ b/src/spicelib/devices/bsim4v6/bsim4v6init.c @@ -74,8 +74,8 @@ SPICEdev BSIM4v6info = { &BSIM4v6iSize, /* DEVinstSize */ &BSIM4v6mSize, /* DEVmodSize */ #ifdef KLU - BSIM4v6bindklu, /* DEVbindklu */ - BSIM4v6bindkluComplex, /* DEVbindkluComplex */ + BSIM4v6bindCSC, /* DEVbindklu */ + BSIM4v6bindCSCComplex, /* DEVbindkluComplex */ #endif }; diff --git a/src/spicelib/devices/bsimsoi/Makefile.am b/src/spicelib/devices/bsimsoi/Makefile.am index 7a7ed8ea0..adb78a748 100644 --- a/src/spicelib/devices/bsimsoi/Makefile.am +++ b/src/spicelib/devices/bsimsoi/Makefile.am @@ -28,6 +28,9 @@ libbsim4soi_la_SOURCES = \ b4soiitf.h +if KLU_WANTED +libbsim4soi_la_SOURCES += b4soibindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/bsim3soi/b4soibindCSC.c b/src/spicelib/devices/bsimsoi/b4soibindCSC.c similarity index 100% rename from src/spicelib/devices/bsim3soi/b4soibindCSC.c rename to src/spicelib/devices/bsimsoi/b4soibindCSC.c diff --git a/src/spicelib/devices/bsimsoi/b4soiext.h b/src/spicelib/devices/bsimsoi/b4soiext.h index a3c663f6f..67a40acd2 100644 --- a/src/spicelib/devices/bsimsoi/b4soiext.h +++ b/src/spicelib/devices/bsimsoi/b4soiext.h @@ -30,3 +30,8 @@ extern int B4SOItemp(GENmodel*,CKTcircuit*); extern int B4SOItrunc(GENmodel*,CKTcircuit*,double*); extern int B4SOInoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int B4SOIunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int B4SOIbindCSC(GENmodel*, CKTcircuit*); +extern int B4SOIbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/bsimsoi/b4soiinit.c b/src/spicelib/devices/bsimsoi/b4soiinit.c index fa88a6740..cf9582cd0 100644 --- a/src/spicelib/devices/bsimsoi/b4soiinit.c +++ b/src/spicelib/devices/bsimsoi/b4soiinit.c @@ -70,7 +70,12 @@ SPICEdev B4SOIinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &B4SOIiSize, - /* DEVmodSize */ &B4SOImSize + /* DEVmodSize */ &B4SOImSize, +#ifdef KLU + /* DEVbindCSC */ B4SOIbindCSC, + /* DEVbindCSCComplex */ B4SOIbindCSCComplex, +#endif + }; SPICEdev * diff --git a/src/spicelib/devices/cap/Makefile.am b/src/spicelib/devices/cap/Makefile.am index 482c64809..9fa90ef1b 100644 --- a/src/spicelib/devices/cap/Makefile.am +++ b/src/spicelib/devices/cap/Makefile.am @@ -30,7 +30,7 @@ libcap_la_SOURCES = \ captrunc.c if KLU_WANTED -libcap_la_SOURCES += capbindklu.c +libcap_la_SOURCES += capbindCSC.c endif diff --git a/src/spicelib/devices/cap/capext.h b/src/spicelib/devices/cap/capext.h index 00a93fc55..65276205f 100644 --- a/src/spicelib/devices/cap/capext.h +++ b/src/spicelib/devices/cap/capext.h @@ -24,6 +24,6 @@ extern int CAPtemp(GENmodel*,CKTcircuit*); extern int CAPtrunc(GENmodel*,CKTcircuit*,double*); #ifdef KLU -extern int CAPbindklu(GENmodel*,CKTcircuit*); -extern int CAPbindkluComplex(GENmodel*,CKTcircuit*); +extern int CAPbindCSC(GENmodel*, CKTcircuit*); +extern int CAPbindCSCComplex(GENmodel*, CKTcircuit*); #endif diff --git a/src/spicelib/devices/cap/capinit.c b/src/spicelib/devices/cap/capinit.c index 0429269f6..fb9ad85f0 100644 --- a/src/spicelib/devices/cap/capinit.c +++ b/src/spicelib/devices/cap/capinit.c @@ -73,8 +73,8 @@ SPICEdev CAPinfo = { /* DEVinstSize */ &CAPiSize, /* DEVmodSize */ &CAPmSize, #ifdef KLU - /* DEVbindklu */ CAPbindklu, - /* DEVbindkluComplex */ CAPbindkluComplex, + /* DEVbindklu */ CAPbindCSC, + /* DEVbindkluComplex */ CAPbindCSCComplex, #endif }; diff --git a/src/spicelib/devices/cccs/Makefile.am b/src/spicelib/devices/cccs/Makefile.am index 566cb2774..dfc2af295 100644 --- a/src/spicelib/devices/cccs/Makefile.am +++ b/src/spicelib/devices/cccs/Makefile.am @@ -23,6 +23,9 @@ libcccs_la_SOURCES = \ cccssset.c +if KLU_WANTED +libcccs_la_SOURCES += cccsbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/cccs/cccsext.h b/src/spicelib/devices/cccs/cccsext.h index 5a8934518..08cfa6b64 100644 --- a/src/spicelib/devices/cccs/cccsext.h +++ b/src/spicelib/devices/cccs/cccsext.h @@ -17,3 +17,8 @@ extern void CCCSsPrint(GENmodel*,CKTcircuit*); extern int CCCSsSetup(SENstruct*,GENmodel*); extern int CCCSsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); + +#ifdef KLU +extern int CCCSbindCSC(GENmodel*, CKTcircuit*); +extern int CCCSbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/cccs/cccsinit.c b/src/spicelib/devices/cccs/cccsinit.c index 1a86cb79c..dc6d615be 100644 --- a/src/spicelib/devices/cccs/cccsinit.c +++ b/src/spicelib/devices/cccs/cccsinit.c @@ -71,7 +71,11 @@ SPICEdev CCCSinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &CCCSiSize, - /* DEVmodSize */ &CCCSmSize + /* DEVmodSize */ &CCCSmSize, +#ifdef KLU + /* DEVbindCSC */ CCCSbindCSC, + /* DEVbindCSCComplex */ CCCSbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/ccvs/Makefile.am b/src/spicelib/devices/ccvs/Makefile.am index 3e72d2145..0faa88b17 100644 --- a/src/spicelib/devices/ccvs/Makefile.am +++ b/src/spicelib/devices/ccvs/Makefile.am @@ -24,6 +24,9 @@ libccvs_la_SOURCES = \ ccvssset.c +if KLU_WANTED +libccvs_la_SOURCES += ccvsbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/ccvs/ccvsext.h b/src/spicelib/devices/ccvs/ccvsext.h index 779cdd225..f78a1d848 100644 --- a/src/spicelib/devices/ccvs/ccvsext.h +++ b/src/spicelib/devices/ccvs/ccvsext.h @@ -17,3 +17,8 @@ extern void CCVSsPrint(GENmodel*,CKTcircuit*); extern int CCVSsSetup(SENstruct*,GENmodel*); extern int CCVSsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int CCVSunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int CCVSbindCSC(GENmodel*, CKTcircuit*); +extern int CCVSbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/ccvs/ccvsinit.c b/src/spicelib/devices/ccvs/ccvsinit.c index 24ad03d9f..9637551ed 100644 --- a/src/spicelib/devices/ccvs/ccvsinit.c +++ b/src/spicelib/devices/ccvs/ccvsinit.c @@ -72,7 +72,11 @@ SPICEdev CCVSinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &CCVSiSize, - /* DEVmodSize */ &CCVSmSize + /* DEVmodSize */ &CCVSmSize, +#ifdef KLU + /* DEVbindCSC */ CCVSbindCSC, + /* DEVbindCSCComplex */ CCVSbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/cpl/cplinit.c b/src/spicelib/devices/cpl/cplinit.c index a2a987c54..cd62d07a5 100644 --- a/src/spicelib/devices/cpl/cplinit.c +++ b/src/spicelib/devices/cpl/cplinit.c @@ -72,7 +72,11 @@ SPICEdev CPLinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &CPLiSize, -/* DEVmodSize */ &CPLmSize +/* DEVmodSize */ &CPLmSize, +#ifdef KLU + /* DEVbindCSC */ NULL, + /* DEVbindCSCComplex */ NULL, +#endif }; diff --git a/src/spicelib/devices/csw/Makefile.am b/src/spicelib/devices/csw/Makefile.am index 715d29da5..4271aff55 100644 --- a/src/spicelib/devices/csw/Makefile.am +++ b/src/spicelib/devices/csw/Makefile.am @@ -24,6 +24,9 @@ libcsw_la_SOURCES = \ cswtrunc.c +if KLU_WANTED +libcsw_la_SOURCES += cswbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/csw/cswext.h b/src/spicelib/devices/csw/cswext.h index daf6dbc11..b14de42b1 100644 --- a/src/spicelib/devices/csw/cswext.h +++ b/src/spicelib/devices/csw/cswext.h @@ -17,3 +17,8 @@ extern int CSWpzLoad(GENmodel*,CKTcircuit*,SPcomplex*); extern int CSWsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int CSWnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int CSWtrunc(GENmodel*,CKTcircuit*,double*); + +#ifdef KLU +extern int CSWbindCSC(GENmodel*, CKTcircuit*); +extern int CSWbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/csw/cswinit.c b/src/spicelib/devices/csw/cswinit.c index 2ad8fd87a..117139e99 100644 --- a/src/spicelib/devices/csw/cswinit.c +++ b/src/spicelib/devices/csw/cswinit.c @@ -74,7 +74,11 @@ SPICEdev CSWinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &CSWiSize, - /* DEVmodSize */ &CSWmSize + /* DEVmodSize */ &CSWmSize, +#ifdef KLU + /* DEVbindCSC */ CSWbindCSC, + /* DEVbindCSCComplex */ CSWbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/dio/Makefile.am b/src/spicelib/devices/dio/Makefile.am index 7218d39b0..88917abb4 100644 --- a/src/spicelib/devices/dio/Makefile.am +++ b/src/spicelib/devices/dio/Makefile.am @@ -34,6 +34,10 @@ libdio_la_SOURCES = \ diotrunc.c +if KLU_WANTED +libdio_la_SOURCES += diobindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) MAINTAINERCLEANFILES = Makefile.in diff --git a/src/spicelib/devices/dio/dioext.h b/src/spicelib/devices/dio/dioext.h index bb0a132d0..6fce696f4 100644 --- a/src/spicelib/devices/dio/dioext.h +++ b/src/spicelib/devices/dio/dioext.h @@ -29,3 +29,7 @@ extern int DIOdisto(int,GENmodel*,CKTcircuit*); extern int DIOnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int DIOdSetup(DIOmodel*,CKTcircuit*); +#ifdef KLU +extern int DIObindCSC(GENmodel*, CKTcircuit*); +extern int DIObindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/dio/dioinit.c b/src/spicelib/devices/dio/dioinit.c index 9ccece87e..53e9f6c41 100644 --- a/src/spicelib/devices/dio/dioinit.c +++ b/src/spicelib/devices/dio/dioinit.c @@ -73,7 +73,12 @@ SPICEdev DIOinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &DIOiSize, - /* DEVmodSize */ &DIOmSize + /* DEVmodSize */ &DIOmSize, +#ifdef KLU + /* DEVbindCSC */ DIObindCSC, + /* DEVbindCSCComplex */ DIObindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/hfet1/Makefile.am b/src/spicelib/devices/hfet1/Makefile.am index 5d9ef9eee..fff5beb92 100644 --- a/src/spicelib/devices/hfet1/Makefile.am +++ b/src/spicelib/devices/hfet1/Makefile.am @@ -25,6 +25,9 @@ libhfet_la_SOURCES = \ hfettrunc.c +if KLU_WANTED +libhfet_la_SOURCES += hfetbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/hfet1/hfetext.h b/src/spicelib/devices/hfet1/hfetext.h index 36d866f2d..f50441145 100644 --- a/src/spicelib/devices/hfet1/hfetext.h +++ b/src/spicelib/devices/hfet1/hfetext.h @@ -18,3 +18,8 @@ extern int HFETAsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int HFETAtemp(GENmodel*,CKTcircuit*); extern int HFETAtrunc(GENmodel*,CKTcircuit*,double*); extern int HFETAunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int HFETAbindCSC(GENmodel*, CKTcircuit*); +extern int HFETAbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/hfet1/hfetinit.c b/src/spicelib/devices/hfet1/hfetinit.c index 9affd0801..1983864c5 100644 --- a/src/spicelib/devices/hfet1/hfetinit.c +++ b/src/spicelib/devices/hfet1/hfetinit.c @@ -72,7 +72,11 @@ SPICEdev HFETAinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &HFETAiSize, - /* DEVmodSize */ &HFETAmSize + /* DEVmodSize */ &HFETAmSize, +#ifdef KLU + /* DEVbindCSC */ HFETAbindCSC, + /* DEVbindCSCComplex */ HFETAbindCSC, +#endif }; diff --git a/src/spicelib/devices/hfet2/Makefile.am b/src/spicelib/devices/hfet2/Makefile.am index 743fae0a2..76c4e15e0 100644 --- a/src/spicelib/devices/hfet2/Makefile.am +++ b/src/spicelib/devices/hfet2/Makefile.am @@ -25,6 +25,9 @@ libhfet2_la_SOURCES = \ hfet2trunc.c +if KLU_WANTED +libhfet2_la_SOURCES += hfet2bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/hfet2/hfet2ext.h b/src/spicelib/devices/hfet2/hfet2ext.h index 243861744..1c1222e5a 100644 --- a/src/spicelib/devices/hfet2/hfet2ext.h +++ b/src/spicelib/devices/hfet2/hfet2ext.h @@ -18,3 +18,8 @@ extern int HFET2setup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int HFET2temp(GENmodel*,CKTcircuit*); extern int HFET2trunc(GENmodel*,CKTcircuit*,double*); extern int HFET2unsetup( GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int HFET2bindCSC(GENmodel*, CKTcircuit*); +extern int HFET2bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/hfet2/hfet2init.c b/src/spicelib/devices/hfet2/hfet2init.c index 10de5b4d5..425eabe94 100644 --- a/src/spicelib/devices/hfet2/hfet2init.c +++ b/src/spicelib/devices/hfet2/hfet2init.c @@ -72,7 +72,11 @@ SPICEdev HFET2info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &HFET2iSize, - /* DEVmodSize */ &HFET2mSize + /* DEVmodSize */ &HFET2mSize, +#ifdef KLU + /* DEVbindCSC */ HFET2bindCSC, + /* DEVbindCSCComplex */ HFET2bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/hisim2/Makefile.am b/src/spicelib/devices/hisim2/Makefile.am index 33fff2074..f673adccf 100644 --- a/src/spicelib/devices/hisim2/Makefile.am +++ b/src/spicelib/devices/hisim2/Makefile.am @@ -31,6 +31,10 @@ libhisim2_la_SOURCES = hisim2.h \ hsm2trunc.c +if KLU_WANTED +libhisim2_la_SOURCES += hsm2bindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/hisim2/hsm2ext.h b/src/spicelib/devices/hisim2/hsm2ext.h index 0d7225cd2..d8bdc2370 100644 --- a/src/spicelib/devices/hisim2/hsm2ext.h +++ b/src/spicelib/devices/hisim2/hsm2ext.h @@ -37,3 +37,8 @@ extern int HSM2unsetup(GENmodel*,CKTcircuit*); extern int HSM2temp(GENmodel*,CKTcircuit*); extern int HSM2trunc(GENmodel*,CKTcircuit*,double*); extern int HSM2noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); + +#ifdef KLU +extern int HSM2bindCSC(GENmodel*, CKTcircuit*); +extern int HSM2bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/hisim2/hsm2init.c b/src/spicelib/devices/hisim2/hsm2init.c index 28c526e2f..3c0f9f39f 100644 --- a/src/spicelib/devices/hisim2/hsm2init.c +++ b/src/spicelib/devices/hisim2/hsm2init.c @@ -70,7 +70,11 @@ SPICEdev HSM2info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &HSM2iSize, - /* DEVmodSize */ &HSM2mSize + /* DEVmodSize */ &HSM2mSize, +#ifdef KLU + /* DEVbindCSC */ HSM2bindCSC, + /* DEVbindCSCComplex */ HSM2bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/hisimhv1/Makefile.am b/src/spicelib/devices/hisimhv1/Makefile.am index ea6d9e6fe..70ad8de72 100644 --- a/src/spicelib/devices/hisimhv1/Makefile.am +++ b/src/spicelib/devices/hisimhv1/Makefile.am @@ -31,6 +31,11 @@ libhisimhv1_la_SOURCES = hisimhv.h \ hsmhvtemp_eval.h \ hsmhvtrunc.c + +if KLU_WANTED +libhisimhv1_la_SOURCES += hsmhvbindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/hisimhv1/hsmhvext.h b/src/spicelib/devices/hisimhv1/hsmhvext.h index ec4f306bf..03ee1cce3 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvext.h +++ b/src/spicelib/devices/hisimhv1/hsmhvext.h @@ -37,3 +37,8 @@ extern int HSMHVunsetup(GENmodel*,CKTcircuit*); extern int HSMHVtemp(GENmodel*,CKTcircuit*); extern int HSMHVtrunc(GENmodel*,CKTcircuit*,double*); extern int HSMHVnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); + +#ifdef KLU +extern int HSMHVbindCSC(GENmodel*, CKTcircuit*); +extern int HSMHVbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/hisimhv1/hsmhvinit.c b/src/spicelib/devices/hisimhv1/hsmhvinit.c index 53d7759a0..f5a753589 100644 --- a/src/spicelib/devices/hisimhv1/hsmhvinit.c +++ b/src/spicelib/devices/hisimhv1/hsmhvinit.c @@ -70,7 +70,11 @@ SPICEdev HSMHVinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &HSMHViSize, - /* DEVmodSize */ &HSMHVmSize + /* DEVmodSize */ &HSMHVmSize, +#ifdef KLU + /* DEVbindCSC */ HSMHVbindCSC, + /* DEVbindCSCComplex */ HSMHVbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/ind/Makefile.am b/src/spicelib/devices/ind/Makefile.am index 5a05ee97b..5bc00ec2b 100644 --- a/src/spicelib/devices/ind/Makefile.am +++ b/src/spicelib/devices/ind/Makefile.am @@ -40,6 +40,9 @@ libind_la_SOURCES = \ muttemp.c +if KLU_WANTED +libind_la_SOURCES += indMUTbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/ind/indext.h b/src/spicelib/devices/ind/indext.h index 8d2fa035c..268924247 100644 --- a/src/spicelib/devices/ind/indext.h +++ b/src/spicelib/devices/ind/indext.h @@ -36,4 +36,12 @@ extern void MUTsPrint(GENmodel*,CKTcircuit*); extern int MUTsSetup(SENstruct*,GENmodel*); extern int MUTsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int MUTtemp(GENmodel *inModel, CKTcircuit *ckt); + +#ifdef KLU +extern int INDbindCSC(GENmodel*, CKTcircuit*); +extern int INDbindCSCComplex(GENmodel*, CKTcircuit*); +extern int MUTbindCSC(GENmodel*, CKTcircuit*); +extern int MUTbindCSCComplex(GENmodel*, CKTcircuit*); +#endif + #endif diff --git a/src/spicelib/devices/ind/indinit.c b/src/spicelib/devices/ind/indinit.c index 7eea1fcd2..5b06cddfd 100644 --- a/src/spicelib/devices/ind/indinit.c +++ b/src/spicelib/devices/ind/indinit.c @@ -71,7 +71,11 @@ SPICEdev INDinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &INDiSize, - /* DEVmodSize */ &INDmSize + /* DEVmodSize */ &INDmSize, +#ifdef KLU + /* DEVbindCSC */ INDbindCSC, + /* DEVbindCSCComplex */ INDbindCSCComplex, +#endif }; @@ -140,7 +144,11 @@ SPICEdev MUTinfo = { /* DEVacct */ NULL, #endif &MUTiSize, - &MUTmSize + &MUTmSize, +#ifdef KLU + /* DEVbindCSC */ MUTbindCSC, + /* DEVbindCSCComplex */ MUTbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/isrc/isrcinit.c b/src/spicelib/devices/isrc/isrcinit.c index da4301fe7..ac696f35d 100644 --- a/src/spicelib/devices/isrc/isrcinit.c +++ b/src/spicelib/devices/isrc/isrcinit.c @@ -72,7 +72,12 @@ SPICEdev ISRCinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &ISRCiSize, - /* DEVmodSize */ &ISRCmSize + /* DEVmodSize */ &ISRCmSize, +#ifdef KLU + /* DEVbindCSC */ NULL, + /* DEVbindCSCComplex */ NULL, +#endif + }; diff --git a/src/spicelib/devices/jfet/Makefile.am b/src/spicelib/devices/jfet/Makefile.am index fc4907373..126c64fcc 100644 --- a/src/spicelib/devices/jfet/Makefile.am +++ b/src/spicelib/devices/jfet/Makefile.am @@ -28,6 +28,9 @@ libjfet_la_SOURCES = \ jfettrun.c +if KLU_WANTED +libjfet_la_SOURCES += jfetbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/jfet/jfetext.h b/src/spicelib/devices/jfet/jfetext.h index 475bdbe1a..268f5f20c 100644 --- a/src/spicelib/devices/jfet/jfetext.h +++ b/src/spicelib/devices/jfet/jfetext.h @@ -22,3 +22,8 @@ extern int JFETtrunc(GENmodel*,CKTcircuit*,double*); extern int JFETdisto(int,GENmodel*,CKTcircuit*); extern int JFETnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int JFETdSetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int JFETbindCSC(GENmodel*, CKTcircuit*); +extern int JFETbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/jfet/jfetinit.c b/src/spicelib/devices/jfet/jfetinit.c index d2a67d1cf..3c1716073 100644 --- a/src/spicelib/devices/jfet/jfetinit.c +++ b/src/spicelib/devices/jfet/jfetinit.c @@ -72,7 +72,11 @@ SPICEdev JFETinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &JFETiSize, - /* DEVmodSize */ &JFETmSize + /* DEVmodSize */ &JFETmSize, +#ifdef KLU + /* DEVbindCSC */ JFETbindCSC, + /* DEVbindCSCComplex */ JFETbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/jfet2/Makefile.am b/src/spicelib/devices/jfet2/Makefile.am index f8789cd9b..8609cfb6d 100644 --- a/src/spicelib/devices/jfet2/Makefile.am +++ b/src/spicelib/devices/jfet2/Makefile.am @@ -28,7 +28,9 @@ libjfet2_la_SOURCES = \ psmodel.h - +if KLU_WANTED +libjfet2_la_SOURCES += jfet2bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/jfet2/jfet2ext.h b/src/spicelib/devices/jfet2/jfet2ext.h index fc330fe59..abd15d7bf 100644 --- a/src/spicelib/devices/jfet2/jfet2ext.h +++ b/src/spicelib/devices/jfet2/jfet2ext.h @@ -22,3 +22,8 @@ extern int JFET2unsetup(GENmodel*,CKTcircuit*); extern int JFET2temp(GENmodel*,CKTcircuit*); extern int JFET2trunc(GENmodel*,CKTcircuit*,double*); extern int JFET2noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); + +#ifdef KLU +extern int JFET2bindCSC(GENmodel*, CKTcircuit*); +extern int JFET2bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/jfet2/jfet2init.c b/src/spicelib/devices/jfet2/jfet2init.c index 5f1ee084e..c92733f7e 100644 --- a/src/spicelib/devices/jfet2/jfet2init.c +++ b/src/spicelib/devices/jfet2/jfet2init.c @@ -72,7 +72,11 @@ SPICEdev JFET2info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &JFET2iSize, - /* DEVmodSize */ &JFET2mSize + /* DEVmodSize */ &JFET2mSize, +#ifdef KLU + /* DEVbindCSC */ JFET2bindCSC, + /* DEVbindCSCComplex */ JFET2bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/ltra/Makefile.am b/src/spicelib/devices/ltra/Makefile.am index 42a9c042a..0b1d18cb6 100644 --- a/src/spicelib/devices/ltra/Makefile.am +++ b/src/spicelib/devices/ltra/Makefile.am @@ -25,6 +25,9 @@ libltra_la_SOURCES = \ ltratrun.c +if KLU_WANTED +libltra_la_SOURCES += ltrabindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/ltra/ltraext.h b/src/spicelib/devices/ltra/ltraext.h index 09cc06a8c..daf058073 100644 --- a/src/spicelib/devices/ltra/ltraext.h +++ b/src/spicelib/devices/ltra/ltraext.h @@ -44,3 +44,8 @@ extern double LTRAh3dashCoeffSetup(double*,int,double,double,double,double*,int, extern void LTRArcCoeffsSetup(double*,double*,double*,double*,double*,double*,int,double,double,double,double*,int,double); extern void LTRArlcCoeffsSetup(double*,double*,double*,double*,double*,double*,int,double,double,double,double,double*,int,double,int*); extern int LTRAstraightLineCheck(double,double,double,double,double,double,double,double); + +#ifdef KLU +extern int LTRAbindCSC(GENmodel*, CKTcircuit*); +extern int LTRAbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/ltra/ltrainit.c b/src/spicelib/devices/ltra/ltrainit.c index 5cb81e1bf..6634b4e78 100644 --- a/src/spicelib/devices/ltra/ltrainit.c +++ b/src/spicelib/devices/ltra/ltrainit.c @@ -72,7 +72,11 @@ SPICEdev LTRAinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ <RAiSize, - /* DEVmodSize */ <RAmSize + /* DEVmodSize */ <RAmSize, +#ifdef KLU + /* DEVbindCSC */ LTRAbindCSC, + /* DEVbindCSCComplex */ LTRAbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/mes/Makefile.am b/src/spicelib/devices/mes/Makefile.am index 3d0c3b3d5..9988ca7af 100644 --- a/src/spicelib/devices/mes/Makefile.am +++ b/src/spicelib/devices/mes/Makefile.am @@ -28,6 +28,9 @@ libmes_la_SOURCES = \ mestrunc.c +if KLU_WANTED +libmes_la_SOURCES += mesbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/mes/mesext.h b/src/spicelib/devices/mes/mesext.h index 7ff419573..e2ff4f85b 100644 --- a/src/spicelib/devices/mes/mesext.h +++ b/src/spicelib/devices/mes/mesext.h @@ -23,3 +23,8 @@ extern int MESdisto(int,GENmodel*,CKTcircuit*); extern int MESnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int MESdSetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MESbindCSC(GENmodel*, CKTcircuit*); +extern int MESbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mes/mesinit.c b/src/spicelib/devices/mes/mesinit.c index 81db8ac17..66317bf74 100644 --- a/src/spicelib/devices/mes/mesinit.c +++ b/src/spicelib/devices/mes/mesinit.c @@ -72,7 +72,11 @@ SPICEdev MESinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MESiSize, - /* DEVmodSize */ &MESmSize + /* DEVmodSize */ &MESmSize, +#ifdef KLU + /* DEVbindCSC */ MESbindCSC, + /* DEVbindCSCComplex */ MESbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/mesa/Makefile.am b/src/spicelib/devices/mesa/Makefile.am index 79e6f7555..4c61219c3 100644 --- a/src/spicelib/devices/mesa/Makefile.am +++ b/src/spicelib/devices/mesa/Makefile.am @@ -25,6 +25,9 @@ libmesa_la_SOURCES = \ mesatrunc.c +if KLU_WANTED +libmesa_la_SOURCES += mesabindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/mesa/mesaext.h b/src/spicelib/devices/mesa/mesaext.h index a1967cf44..9ee04f462 100644 --- a/src/spicelib/devices/mesa/mesaext.h +++ b/src/spicelib/devices/mesa/mesaext.h @@ -18,3 +18,8 @@ extern int MESAsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int MESAtemp(GENmodel*,CKTcircuit*); extern int MESAtrunc(GENmodel*,CKTcircuit*,double*); extern int MESAunsetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MESAbindCSC(GENmodel*, CKTcircuit*); +extern int MESAbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mesa/mesainit.c b/src/spicelib/devices/mesa/mesainit.c index fac27cc1e..237e0c577 100644 --- a/src/spicelib/devices/mesa/mesainit.c +++ b/src/spicelib/devices/mesa/mesainit.c @@ -72,7 +72,11 @@ SPICEdev MESAinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MESAiSize, - /* DEVmodSize */ &MESAmSize + /* DEVmodSize */ &MESAmSize, +#ifdef KLU + /* DEVbindCSC */ MESAbindCSC, + /* DEVbindCSCComplex */ MESAbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/mos1/Makefile.am b/src/spicelib/devices/mos1/Makefile.am index e523c113c..55d8b4cdb 100644 --- a/src/spicelib/devices/mos1/Makefile.am +++ b/src/spicelib/devices/mos1/Makefile.am @@ -34,6 +34,9 @@ libmos1_la_SOURCES = \ mos1trun.c +if KLU_WANTED +libmos1_la_SOURCES += mos1bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/mos1/mos1ext.h b/src/spicelib/devices/mos1/mos1ext.h index b1ed69d52..d0c85337f 100644 --- a/src/spicelib/devices/mos1/mos1ext.h +++ b/src/spicelib/devices/mos1/mos1ext.h @@ -28,3 +28,8 @@ extern int MOS1convTest(GENmodel*,CKTcircuit*); extern int MOS1disto(int,GENmodel*,CKTcircuit*); extern int MOS1noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int MOS1dSetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MOS1bindCSC(GENmodel*, CKTcircuit*); +extern int MOS1bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mos1/mos1init.c b/src/spicelib/devices/mos1/mos1init.c index 85f30088d..7ed1edb18 100644 --- a/src/spicelib/devices/mos1/mos1init.c +++ b/src/spicelib/devices/mos1/mos1init.c @@ -72,7 +72,12 @@ SPICEdev MOS1info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MOS1iSize, - /* DEVmodSize */ &MOS1mSize + /* DEVmodSize */ &MOS1mSize, +#ifdef KLU + /* DEVbindCSC */ MOS1bindCSC, + /* DEVbindCSCComplex */ MOS1bindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/mos2/Makefile.am b/src/spicelib/devices/mos2/Makefile.am index a27ddc9d2..22394e318 100644 --- a/src/spicelib/devices/mos2/Makefile.am +++ b/src/spicelib/devices/mos2/Makefile.am @@ -34,6 +34,10 @@ libmos2_la_SOURCES = \ mos2trun.c +if KLU_WANTED +libmos2_la_SOURCES += mos2bindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) MAINTAINERCLEANFILES = Makefile.in diff --git a/src/spicelib/devices/mos2/mos2ext.h b/src/spicelib/devices/mos2/mos2ext.h index 46a8a3e38..50fbb1c70 100644 --- a/src/spicelib/devices/mos2/mos2ext.h +++ b/src/spicelib/devices/mos2/mos2ext.h @@ -29,3 +29,8 @@ extern int MOS2disto(int,GENmodel*,CKTcircuit*); extern int MOS2noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int MOS2dSetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MOS2bindCSC(GENmodel*, CKTcircuit*); +extern int MOS2bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mos2/mos2init.c b/src/spicelib/devices/mos2/mos2init.c index e7e47fd9b..c3adf70f4 100644 --- a/src/spicelib/devices/mos2/mos2init.c +++ b/src/spicelib/devices/mos2/mos2init.c @@ -72,7 +72,12 @@ SPICEdev MOS2info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MOS2iSize, - /* DEVmodSize */ &MOS2mSize + /* DEVmodSize */ &MOS2mSize, +#ifdef KLU + /* DEVbindCSC */ MOS2bindCSC, + /* DEVbindCSCComplex */ MOS2bindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/mos3/Makefile.am b/src/spicelib/devices/mos3/Makefile.am index 7419051a9..251e3f5d6 100644 --- a/src/spicelib/devices/mos3/Makefile.am +++ b/src/spicelib/devices/mos3/Makefile.am @@ -34,6 +34,10 @@ libmos3_la_SOURCES = \ mos3trun.c +if KLU_WANTED +libmos3_la_SOURCES += mos3bindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) MAINTAINERCLEANFILES = Makefile.in diff --git a/src/spicelib/devices/mos3/mos3ext.h b/src/spicelib/devices/mos3/mos3ext.h index 843d68329..248d8d8e3 100644 --- a/src/spicelib/devices/mos3/mos3ext.h +++ b/src/spicelib/devices/mos3/mos3ext.h @@ -28,3 +28,8 @@ extern int MOS3trunc(GENmodel*,CKTcircuit*,double*); extern int MOS3disto(int,GENmodel*,CKTcircuit*); extern int MOS3noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int MOS3dSetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MOS3bindCSC(GENmodel*, CKTcircuit*); +extern int MOS3bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mos3/mos3init.c b/src/spicelib/devices/mos3/mos3init.c index a096977ba..bac4d8869 100644 --- a/src/spicelib/devices/mos3/mos3init.c +++ b/src/spicelib/devices/mos3/mos3init.c @@ -72,7 +72,11 @@ SPICEdev MOS3info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MOS3iSize, - /* DEVmodSize */ &MOS3mSize + /* DEVmodSize */ &MOS3mSize, +#ifdef KLU + /* DEVbindCSC */ MOS3bindCSC, + /* DEVbindCSCComplex */ MOS3bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/mos6/Makefile.am b/src/spicelib/devices/mos6/Makefile.am index 5161dbac3..6e685d129 100644 --- a/src/spicelib/devices/mos6/Makefile.am +++ b/src/spicelib/devices/mos6/Makefile.am @@ -22,6 +22,9 @@ libmos6_la_SOURCES = \ mos6trun.c +if KLU_WANTED +libmos6_la_SOURCES += mos6bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/mos6/mos6ext.h b/src/spicelib/devices/mos6/mos6ext.h index e5d203145..8fdaf8a42 100644 --- a/src/spicelib/devices/mos6/mos6ext.h +++ b/src/spicelib/devices/mos6/mos6ext.h @@ -19,3 +19,8 @@ extern int MOS6unsetup(GENmodel*,CKTcircuit*); extern int MOS6temp(GENmodel*,CKTcircuit*); extern int MOS6trunc(GENmodel*,CKTcircuit*,double*); extern int MOS6convTest(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MOS6bindCSC(GENmodel*, CKTcircuit*); +extern int MOS6bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mos6/mos6init.c b/src/spicelib/devices/mos6/mos6init.c index febf8f691..40987971a 100644 --- a/src/spicelib/devices/mos6/mos6init.c +++ b/src/spicelib/devices/mos6/mos6init.c @@ -72,7 +72,12 @@ SPICEdev MOS6info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MOS6iSize, - /* DEVmodSize */ &MOS6mSize + /* DEVmodSize */ &MOS6mSize, +#ifdef KLU + /* DEVbindCSC */ MOS6bindCSC, + /* DEVbindCSCComplex */ MOS6bindCSCComplex, +#endif + }; diff --git a/src/spicelib/devices/mos9/Makefile.am b/src/spicelib/devices/mos9/Makefile.am index 5db83e4c0..75afaaa26 100644 --- a/src/spicelib/devices/mos9/Makefile.am +++ b/src/spicelib/devices/mos9/Makefile.am @@ -34,6 +34,9 @@ libmos9_la_SOURCES = \ mos9trun.c +if KLU_WANTED +libmos9_la_SOURCES += mos9bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/mos9/mos9ext.h b/src/spicelib/devices/mos9/mos9ext.h index c2af0a136..63cf1a53d 100644 --- a/src/spicelib/devices/mos9/mos9ext.h +++ b/src/spicelib/devices/mos9/mos9ext.h @@ -28,3 +28,8 @@ extern int MOS9trunc(GENmodel*,CKTcircuit*,double*); extern int MOS9disto(int,GENmodel*,CKTcircuit*); extern int MOS9noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int MOS9dSetup(GENmodel*,CKTcircuit*); + +#ifdef KLU +extern int MOS9bindCSC(GENmodel*, CKTcircuit*); +extern int MOS9bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/mos9/mos9init.c b/src/spicelib/devices/mos9/mos9init.c index 10a3e82d9..39c8edf19 100644 --- a/src/spicelib/devices/mos9/mos9init.c +++ b/src/spicelib/devices/mos9/mos9init.c @@ -72,7 +72,11 @@ SPICEdev MOS9info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &MOS9iSize, - /* DEVmodSize */ &MOS9mSize + /* DEVmodSize */ &MOS9mSize, +#ifdef KLU + /* DEVbindCSC */ MOS9bindCSC, + /* DEVbindCSCComplex */ MOS9bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/res/Makefile.am b/src/spicelib/devices/res/Makefile.am index 1eddfcbc9..7e86e5c7e 100644 --- a/src/spicelib/devices/res/Makefile.am +++ b/src/spicelib/devices/res/Makefile.am @@ -26,10 +26,10 @@ libres_la_SOURCES = \ ressset.c \ restemp.c -if KLU_WANTED -libres_la_SOURCES += resbindklu.c -endif +if KLU_WANTED +libres_la_SOURCES += resbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/res/resext.h b/src/spicelib/devices/res/resext.h index 07d7c5ee3..94806b6d6 100644 --- a/src/spicelib/devices/res/resext.h +++ b/src/spicelib/devices/res/resext.h @@ -22,6 +22,6 @@ extern int REStemp(GENmodel*,CKTcircuit*); extern int RESnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); #ifdef KLU -extern int RESbindklu(GENmodel*,CKTcircuit*); -extern int RESbindkluComplex(GENmodel*,CKTcircuit*); +extern int RESbindCSC(GENmodel*, CKTcircuit*); +extern int RESbindCSCComplex(GENmodel*, CKTcircuit*); #endif diff --git a/src/spicelib/devices/res/resinit.c b/src/spicelib/devices/res/resinit.c index a0ae0574f..214d760ba 100644 --- a/src/spicelib/devices/res/resinit.c +++ b/src/spicelib/devices/res/resinit.c @@ -74,8 +74,8 @@ SPICEdev RESinfo = { /* DEVinstSize */ &RESiSize, /* DEVmodSize */ &RESmSize, #ifdef KLU - /* DEVbindklu */ RESbindklu, - /* DEVbindkluComplex */ RESbindkluComplex, + /* DEVbindCSC */ RESbindCSC, + /* DEVbindCSCComplex */ RESbindCSCComplex, #endif }; diff --git a/src/spicelib/devices/soi3/Makefile.am b/src/spicelib/devices/soi3/Makefile.am index 09b1591dd..01dfcf9cd 100644 --- a/src/spicelib/devices/soi3/Makefile.am +++ b/src/spicelib/devices/soi3/Makefile.am @@ -27,6 +27,9 @@ libsoi3_la_SOURCES = \ soi3trun.c +if KLU_WANTED +libsoi3_la_SOURCES += soi3bindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/soi3/soi3ext.h b/src/spicelib/devices/soi3/soi3ext.h index c7e194acd..17eff2e2b 100644 --- a/src/spicelib/devices/soi3/soi3ext.h +++ b/src/spicelib/devices/soi3/soi3ext.h @@ -65,3 +65,8 @@ extern int SOI3convTest(GENmodel*,CKTcircuit*); /* extern int SOI3disto(int,GENmodel*,CKTcircuit*); */ extern int SOI3noise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); + +#ifdef KLU +extern int SOI3bindCSC(GENmodel*, CKTcircuit*); +extern int SOI3bindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/soi3/soi3init.c b/src/spicelib/devices/soi3/soi3init.c index 9a4a8f676..654642bb3 100644 --- a/src/spicelib/devices/soi3/soi3init.c +++ b/src/spicelib/devices/soi3/soi3init.c @@ -72,7 +72,11 @@ SPICEdev SOI3info = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &SOI3iSize, - /* DEVmodSize */ &SOI3mSize + /* DEVmodSize */ &SOI3mSize, +#ifdef KLU + /* DEVbindCSC */ SOI3bindCSC, + /* DEVbindCSCComplex */ SOI3bindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/sw/Makefile.am b/src/spicelib/devices/sw/Makefile.am index 445c1a790..077053cc1 100644 --- a/src/spicelib/devices/sw/Makefile.am +++ b/src/spicelib/devices/sw/Makefile.am @@ -24,6 +24,9 @@ libsw_la_SOURCES = \ swtrunc.c +if KLU_WANTED +libsw_la_SOURCES += swbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/sw/swext.h b/src/spicelib/devices/sw/swext.h index ee447e7a9..0447ac31e 100644 --- a/src/spicelib/devices/sw/swext.h +++ b/src/spicelib/devices/sw/swext.h @@ -17,3 +17,8 @@ extern int SWpzLoad(GENmodel*,CKTcircuit*,SPcomplex*); extern int SWsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int SWnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); extern int SWtrunc(GENmodel*,CKTcircuit*,double*); + +#ifdef KLU +extern int SWbindCSC(GENmodel*, CKTcircuit*); +extern int SWbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/sw/swinit.c b/src/spicelib/devices/sw/swinit.c index 4daf3f41e..23c8f8bc1 100644 --- a/src/spicelib/devices/sw/swinit.c +++ b/src/spicelib/devices/sw/swinit.c @@ -73,7 +73,11 @@ SPICEdev SWinfo = { /* DEVacct */ NULL, #endif /* CIDER */ /* DEVinstSize */ &SWiSize, - /* DEVmodSize */ &SWmSize + /* DEVmodSize */ &SWmSize, +#ifdef KLU + /* DEVbindCSC */ SWbindCSC, + /* DEVbindCSCComplex */ SWbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/tra/Makefile.am b/src/spicelib/devices/tra/Makefile.am index de708838f..17576a55f 100644 --- a/src/spicelib/devices/tra/Makefile.am +++ b/src/spicelib/devices/tra/Makefile.am @@ -22,6 +22,10 @@ libtra_la_SOURCES = \ tratrunc.c +if KLU_WANTED +libtra_la_SOURCES += trabindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) MAINTAINERCLEANFILES = Makefile.in diff --git a/src/spicelib/devices/tra/traext.h b/src/spicelib/devices/tra/traext.h index 95a1d2b25..bfa5ac9d0 100644 --- a/src/spicelib/devices/tra/traext.h +++ b/src/spicelib/devices/tra/traext.h @@ -16,3 +16,8 @@ extern int TRAsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int TRAunsetup(GENmodel*,CKTcircuit*); extern int TRAtemp(GENmodel*,CKTcircuit*); extern int TRAtrunc(GENmodel*,CKTcircuit*,double*); + +#ifdef KLU +extern int TRAbindCSC(GENmodel*, CKTcircuit*); +extern int TRAbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/tra/trainit.c b/src/spicelib/devices/tra/trainit.c index c6c0883b8..1647f10dc 100644 --- a/src/spicelib/devices/tra/trainit.c +++ b/src/spicelib/devices/tra/trainit.c @@ -72,7 +72,11 @@ SPICEdev TRAinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &TRAiSize, - /* DEVmodSize */ &TRAmSize + /* DEVmodSize */ &TRAmSize, +#ifdef KLU + /* DEVbindCSC */ TRAbindCSC, + /* DEVbindCSCComplex */ TRAbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/txl/Makefile.am b/src/spicelib/devices/txl/Makefile.am index 0e07d1a38..25e7c4d9a 100644 --- a/src/spicelib/devices/txl/Makefile.am +++ b/src/spicelib/devices/txl/Makefile.am @@ -21,6 +21,11 @@ libtxl_la_SOURCES = \ txlsetup.c \ txlinit.c + +if KLU_WANTED +libtxl_la_SOURCES += txlbindCSC.c +endif + AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/txl/txlext.h b/src/spicelib/devices/txl/txlext.h index 1211b71d0..b5271cee0 100644 --- a/src/spicelib/devices/txl/txlext.h +++ b/src/spicelib/devices/txl/txlext.h @@ -12,3 +12,8 @@ extern int TXLmParam(int,IFvalue*,GENmodel*); extern int TXLparam(int,IFvalue*,GENinstance*,IFvalue*); extern int TXLsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int TXLunsetup(GENmodel*, CKTcircuit*); + +#ifdef KLU +extern int TXLbindCSC(GENmodel*, CKTcircuit*); +extern int TXLbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/txl/txlinit.c b/src/spicelib/devices/txl/txlinit.c index 1e8a72d37..2922eb7a9 100644 --- a/src/spicelib/devices/txl/txlinit.c +++ b/src/spicelib/devices/txl/txlinit.c @@ -77,7 +77,11 @@ SPICEdev TXLinfo = { /* DEVacct */ NULL, #endif &TXLiSize, - &TXLmSize + &TXLmSize, +#ifdef KLU + /* DEVbindCSC */ TXLbindCSC, + /* DEVbindCSCComplex */ TXLbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/urc/urcinit.c b/src/spicelib/devices/urc/urcinit.c index 31c2eb8a1..9d526dc90 100644 --- a/src/spicelib/devices/urc/urcinit.c +++ b/src/spicelib/devices/urc/urcinit.c @@ -72,7 +72,11 @@ SPICEdev URCinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &URCiSize, - /* DEVmodSize */ &URCmSize + /* DEVmodSize */ &URCmSize, +#ifdef KLU + /* DEVbindCSC */ NULL, + /* DEVbindCSCComplex */ NULL, +#endif }; diff --git a/src/spicelib/devices/vbic/Makefile.am b/src/spicelib/devices/vbic/Makefile.am index 0ea84de4f..0e00a7037 100644 --- a/src/spicelib/devices/vbic/Makefile.am +++ b/src/spicelib/devices/vbic/Makefile.am @@ -27,6 +27,9 @@ libvbic_la_SOURCES = \ vbictrunc.c +if KLU_WANTED +libvbic_la_SOURCES += vbicbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/vbic/vbicext.h b/src/spicelib/devices/vbic/vbicext.h index 96e0d11bc..a2e40a156 100644 --- a/src/spicelib/devices/vbic/vbicext.h +++ b/src/spicelib/devices/vbic/vbicext.h @@ -27,3 +27,8 @@ extern int VBICtrunc(GENmodel*,CKTcircuit*,double*); extern int VBICnoise(int,int,GENmodel*,CKTcircuit*,Ndata*,double*); #endif + +#ifdef KLU +extern int VBICbindCSC(GENmodel*, CKTcircuit*); +extern int VBICbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/vbic/vbicinit.c b/src/spicelib/devices/vbic/vbicinit.c index 1ddfabb15..9a8af362e 100644 --- a/src/spicelib/devices/vbic/vbicinit.c +++ b/src/spicelib/devices/vbic/vbicinit.c @@ -77,7 +77,11 @@ SPICEdev VBICinfo = { NULL, /* DEVacct */ #endif &VBICiSize, /* DEVinstSize */ - &VBICmSize /* DEVmodSize */ + &VBICmSize, /* DEVmodSize */ +#ifdef KLU + /* DEVbindCSC */ VBICbindCSC, + /* DEVbindCSCComplex */ VBICbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/vccs/Makefile.am b/src/spicelib/devices/vccs/Makefile.am index 145693195..33fd0c432 100644 --- a/src/spicelib/devices/vccs/Makefile.am +++ b/src/spicelib/devices/vccs/Makefile.am @@ -23,6 +23,9 @@ libvccs_la_SOURCES = \ vccssset.c +if KLU_WANTED +libvccs_la_SOURCES += vccsbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/vccs/vccsext.h b/src/spicelib/devices/vccs/vccsext.h index 464020523..234c5a34e 100644 --- a/src/spicelib/devices/vccs/vccsext.h +++ b/src/spicelib/devices/vccs/vccsext.h @@ -15,3 +15,8 @@ extern int VCCSsLoad(GENmodel*,CKTcircuit*); extern int VCCSsSetup(SENstruct*,GENmodel*); extern void VCCSsPrint(GENmodel*,CKTcircuit*); extern int VCCSsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); + +#ifdef KLU +extern int VCCSbindCSC(GENmodel*, CKTcircuit*); +extern int VCCSbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/vccs/vccsinit.c b/src/spicelib/devices/vccs/vccsinit.c index bf633a526..0ceaa9c67 100644 --- a/src/spicelib/devices/vccs/vccsinit.c +++ b/src/spicelib/devices/vccs/vccsinit.c @@ -72,8 +72,11 @@ SPICEdev VCCSinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &VCCSiSize, - /* DEVmodSize */ &VCCSmSize - + /* DEVmodSize */ &VCCSmSize, +#ifdef KLU + /* DEVbindCSC */ VCCSbindCSC, + /* DEVbindCSCComplex */ VCCSbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/vcvs/Makefile.am b/src/spicelib/devices/vcvs/Makefile.am index 8ad37e37b..8d87dd48d 100644 --- a/src/spicelib/devices/vcvs/Makefile.am +++ b/src/spicelib/devices/vcvs/Makefile.am @@ -24,6 +24,9 @@ libvcvs_la_SOURCES = \ vcvssset.c +if KLU_WANTED +libvcvs_la_SOURCES += vcvsbindCSC.c +endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include AM_CFLAGS = $(STATIC) diff --git a/src/spicelib/devices/vcvs/vcvsext.h b/src/spicelib/devices/vcvs/vcvsext.h index 3d3858273..0c984b74e 100644 --- a/src/spicelib/devices/vcvs/vcvsext.h +++ b/src/spicelib/devices/vcvs/vcvsext.h @@ -18,3 +18,7 @@ extern void VCVSsPrint(GENmodel*,CKTcircuit*); extern int VCVSsetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int VCVSunsetup(GENmodel*,CKTcircuit*); +#ifdef KLU +extern int VCVSbindCSC(GENmodel*, CKTcircuit*); +extern int VCVSbindCSCComplex(GENmodel*, CKTcircuit*); +#endif diff --git a/src/spicelib/devices/vcvs/vcvsinit.c b/src/spicelib/devices/vcvs/vcvsinit.c index b48f3cbf0..65ef1fb1a 100644 --- a/src/spicelib/devices/vcvs/vcvsinit.c +++ b/src/spicelib/devices/vcvs/vcvsinit.c @@ -72,7 +72,11 @@ SPICEdev VCVSinfo = { /* DEVacct */ NULL, #endif /* DEVinstSize */ &VCVSiSize, - /* DEVmodSize */ &VCVSmSize + /* DEVmodSize */ &VCVSmSize, +#ifdef KLU + /* DEVbindCSC */ VCVSbindCSC, + /* DEVbindCSCComplex */ VCVSbindCSCComplex, +#endif }; diff --git a/src/spicelib/devices/vsrc/Makefile.am b/src/spicelib/devices/vsrc/Makefile.am index c18f5955b..0c27cda4e 100644 --- a/src/spicelib/devices/vsrc/Makefile.am +++ b/src/spicelib/devices/vsrc/Makefile.am @@ -24,7 +24,7 @@ libvsrc_la_SOURCES = \ vsrctemp.c if KLU_WANTED -libvsrc_la_SOURCES += vsrcbindklu.c +libvsrc_la_SOURCES += vsrcbindCSC.c endif diff --git a/src/spicelib/devices/vsrc/vsrcext.h b/src/spicelib/devices/vsrc/vsrcext.h index 994028259..5ea505deb 100644 --- a/src/spicelib/devices/vsrc/vsrcext.h +++ b/src/spicelib/devices/vsrc/vsrcext.h @@ -20,6 +20,6 @@ extern int VSRCpzSetup(SMPmatrix*,GENmodel*,CKTcircuit*,int*); extern int VSRCtemp(GENmodel*,CKTcircuit*); #ifdef KLU -extern int VSRCbindklu(GENmodel*,CKTcircuit*); -extern int VSRCbindkluComplex(GENmodel*,CKTcircuit*); +extern int VSRCbindCSC(GENmodel*, CKTcircuit*); +extern int VSRCbindCSCComplex(GENmodel*, CKTcircuit*); #endif diff --git a/src/spicelib/devices/vsrc/vsrcinit.c b/src/spicelib/devices/vsrc/vsrcinit.c index a31388660..c94e437d7 100644 --- a/src/spicelib/devices/vsrc/vsrcinit.c +++ b/src/spicelib/devices/vsrc/vsrcinit.c @@ -74,8 +74,8 @@ SPICEdev VSRCinfo = { /* DEVinstSize */ &VSRCiSize, /* DEVmodSize */ &VSRCmSize, #ifdef KLU - /* DEVbindklu */ VSRCbindklu, - /* DEVbindkluComplex */ VSRCbindkluComplex, + /* DEVbindklu */ VSRCbindCSC, + /* DEVbindkluComplex */ VSRCbindCSCComplex, #endif };