almost all devices now support KLU (Part 2)

This commit is contained in:
Francesco Lannutti 2012-02-21 01:49:42 +01:00 committed by Francesco Lannutti
parent 765711c13d
commit d99e935137
142 changed files with 612 additions and 92 deletions

View File

@ -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 */

View File

@ -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 */

View File

@ -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 */

View File

@ -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 ;

View File

@ -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

View File

@ -73,7 +73,12 @@ SPICEdev ASRCinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &ASRCiSize,
/* DEVmodSize */ &ASRCmSize
/* DEVmodSize */ &ASRCmSize,
#ifdef KLU
/* DEVbindCSC */ NULL,
/* DEVbindCSCComplex */ NULL,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -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
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev B1info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &B1iSize,
/* DEVmodSize */ &B1mSize
/* DEVmodSize */ &B1mSize,
#ifdef KLU
/* DEVbindCSC */ B1bindCSC,
/* DEVbindCSCComplex */ B1bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev B2info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &B2iSize,
/* DEVmodSize */ &B2mSize
/* DEVmodSize */ &B2mSize,
#ifdef KLU
/* DEVbindCSC */ B2bindCSC,
/* DEVbindCSCComplex */ B2bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -71,7 +71,11 @@ SPICEdev BSIM3info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &BSIM3iSize,
/* DEVmodSize */ &BSIM3mSize
/* DEVmodSize */ &BSIM3mSize,
#ifdef KLU
/* DEVbindCSC */ BSIM3bindCSC,
/* DEVbindCSCComplex */ BSIM3bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -69,7 +69,12 @@ SPICEdev B3SOIDDinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &B3SOIDDiSize,
/* DEVmodSize */ &B3SOIDDmSize
/* DEVmodSize */ &B3SOIDDmSize,
#ifdef KLU
/* DEVbindCSC */ B3SOIDDbindCSC,
/* DEVbindCSCComplex */ B3SOIDDbindCSCComplex,
#endif
};
SPICEdev *

View File

@ -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)

View File

@ -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

View File

@ -70,7 +70,12 @@ SPICEdev B3SOIFDinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize*/ &B3SOIFDiSize,
/* DEVmodSize*/ &B3SOIFDmSize
/* DEVmodSize*/ &B3SOIFDmSize,
#ifdef KLU
/* DEVbindCSC */ B3SOIFDbindCSC,
/* DEVbindCSCComplex */ B3SOIFDbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -71,7 +71,12 @@ SPICEdev B3SOIPDinfo = {
/* DEVacct*/ NULL,
#endif
/* DEVinstSize*/ &B3SOIPDiSize,
/* DEVmodSize*/ &B3SOIPDmSize
/* DEVmodSize*/ &B3SOIPDmSize,
#ifdef KLU
/* DEVbindCSC */ B3SOIPDbindCSC,
/* DEVbindCSCComplex */ B3SOIPDbindCSCComplex,
#endif
};
SPICEdev *

View File

@ -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)

View File

@ -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

View File

@ -70,7 +70,11 @@ SPICEdev B3v0info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &BSIM3v0iSize,
/* DEVmodSize */ &BSIM3v0mSize
/* DEVmodSize */ &BSIM3v0mSize,
#ifdef KLU
/* DEVbindCSC */ BSIM3v0bindCSC,
/* DEVbindCSCComplex */ BSIM3v0bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -70,7 +70,11 @@ SPICEdev BSIM3v1info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &BSIM3v1iSize,
/* DEVmodSize */ &BSIM3v1mSize
/* DEVmodSize */ &BSIM3v1mSize,
#ifdef KLU
/* DEVbindCSC */ BSIM3v1bindCSC,
/* DEVbindCSCComplex */ BSIM3v1bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -71,7 +71,11 @@ SPICEdev BSIM3v32info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &BSIM3v32iSize,
/* DEVmodSize */ &BSIM3v32mSize
/* DEVmodSize */ &BSIM3v32mSize,
#ifdef KLU
/* DEVbindCSC */ BSIM3v32bindCSC,
/* DEVbindCSCComplex */ BSIM3v32bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,12 @@ SPICEdev BSIM4info = {
NULL, /* DEVacct */
#endif
&BSIM4iSize, /* DEVinstSize */
&BSIM4mSize /* DEVmodSize */
&BSIM4mSize, /* DEVmodSize */
#ifdef KLU
/* DEVbindCSC */ BSIM4bindCSC,
/* DEVbindCSCComplex */ BSIM4bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,12 @@ SPICEdev BSIM4v4info = {
NULL, /* DEVacct */
#endif
&BSIM4v4iSize, /* DEVinstSize */
&BSIM4v4mSize /* DEVmodSize */
&BSIM4v4mSize, /* DEVmodSize */
#ifdef KLU
/* DEVbindCSC */ BSIM4v4bindCSC,
/* DEVbindCSCComplex */ BSIM4v4bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,12 @@ SPICEdev BSIM4v5info = {
NULL, /* DEVacct */
#endif
&BSIM4v5iSize, /* DEVinstSize */
&BSIM4v5mSize /* DEVmodSize */
&BSIM4v5mSize, /* DEVmodSize */
#ifdef KLU
/* DEVbindCSC */ BSIM4v5bindCSC,
/* DEVbindCSCComplex */ BSIM4v5bindCSCComplex,
#endif
};

View File

@ -29,7 +29,7 @@ libbsim4v6_la_SOURCES = \
bsim4v6itf.h
if KLU_WANTED
libbsim4v6_la_SOURCES += b4v6bindklu.c
libbsim4v6_la_SOURCES += b4v6bindCSC.c
endif

View File

@ -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

View File

@ -74,8 +74,8 @@ SPICEdev BSIM4v6info = {
&BSIM4v6iSize, /* DEVinstSize */
&BSIM4v6mSize, /* DEVmodSize */
#ifdef KLU
BSIM4v6bindklu, /* DEVbindklu */
BSIM4v6bindkluComplex, /* DEVbindkluComplex */
BSIM4v6bindCSC, /* DEVbindklu */
BSIM4v6bindCSCComplex, /* DEVbindkluComplex */
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -70,7 +70,12 @@ SPICEdev B4SOIinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &B4SOIiSize,
/* DEVmodSize */ &B4SOImSize
/* DEVmodSize */ &B4SOImSize,
#ifdef KLU
/* DEVbindCSC */ B4SOIbindCSC,
/* DEVbindCSCComplex */ B4SOIbindCSCComplex,
#endif
};
SPICEdev *

View File

@ -30,7 +30,7 @@ libcap_la_SOURCES = \
captrunc.c
if KLU_WANTED
libcap_la_SOURCES += capbindklu.c
libcap_la_SOURCES += capbindCSC.c
endif

View File

@ -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

View File

@ -73,8 +73,8 @@ SPICEdev CAPinfo = {
/* DEVinstSize */ &CAPiSize,
/* DEVmodSize */ &CAPmSize,
#ifdef KLU
/* DEVbindklu */ CAPbindklu,
/* DEVbindkluComplex */ CAPbindkluComplex,
/* DEVbindklu */ CAPbindCSC,
/* DEVbindkluComplex */ CAPbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -71,7 +71,11 @@ SPICEdev CCCSinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &CCCSiSize,
/* DEVmodSize */ &CCCSmSize
/* DEVmodSize */ &CCCSmSize,
#ifdef KLU
/* DEVbindCSC */ CCCSbindCSC,
/* DEVbindCSCComplex */ CCCSbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev CCVSinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &CCVSiSize,
/* DEVmodSize */ &CCVSmSize
/* DEVmodSize */ &CCVSmSize,
#ifdef KLU
/* DEVbindCSC */ CCVSbindCSC,
/* DEVbindCSCComplex */ CCVSbindCSCComplex,
#endif
};

View File

@ -72,7 +72,11 @@ SPICEdev CPLinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &CPLiSize,
/* DEVmodSize */ &CPLmSize
/* DEVmodSize */ &CPLmSize,
#ifdef KLU
/* DEVbindCSC */ NULL,
/* DEVbindCSCComplex */ NULL,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -74,7 +74,11 @@ SPICEdev CSWinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &CSWiSize,
/* DEVmodSize */ &CSWmSize
/* DEVmodSize */ &CSWmSize,
#ifdef KLU
/* DEVbindCSC */ CSWbindCSC,
/* DEVbindCSCComplex */ CSWbindCSCComplex,
#endif
};

View File

@ -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

View File

@ -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

View File

@ -73,7 +73,12 @@ SPICEdev DIOinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &DIOiSize,
/* DEVmodSize */ &DIOmSize
/* DEVmodSize */ &DIOmSize,
#ifdef KLU
/* DEVbindCSC */ DIObindCSC,
/* DEVbindCSCComplex */ DIObindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev HFETAinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &HFETAiSize,
/* DEVmodSize */ &HFETAmSize
/* DEVmodSize */ &HFETAmSize,
#ifdef KLU
/* DEVbindCSC */ HFETAbindCSC,
/* DEVbindCSCComplex */ HFETAbindCSC,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev HFET2info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &HFET2iSize,
/* DEVmodSize */ &HFET2mSize
/* DEVmodSize */ &HFET2mSize,
#ifdef KLU
/* DEVbindCSC */ HFET2bindCSC,
/* DEVbindCSCComplex */ HFET2bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -70,7 +70,11 @@ SPICEdev HSM2info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &HSM2iSize,
/* DEVmodSize */ &HSM2mSize
/* DEVmodSize */ &HSM2mSize,
#ifdef KLU
/* DEVbindCSC */ HSM2bindCSC,
/* DEVbindCSCComplex */ HSM2bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -70,7 +70,11 @@ SPICEdev HSMHVinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &HSMHViSize,
/* DEVmodSize */ &HSMHVmSize
/* DEVmodSize */ &HSMHVmSize,
#ifdef KLU
/* DEVbindCSC */ HSMHVbindCSC,
/* DEVbindCSCComplex */ HSMHVbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -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
};

View File

@ -72,7 +72,12 @@ SPICEdev ISRCinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &ISRCiSize,
/* DEVmodSize */ &ISRCmSize
/* DEVmodSize */ &ISRCmSize,
#ifdef KLU
/* DEVbindCSC */ NULL,
/* DEVbindCSCComplex */ NULL,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev JFETinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &JFETiSize,
/* DEVmodSize */ &JFETmSize
/* DEVmodSize */ &JFETmSize,
#ifdef KLU
/* DEVbindCSC */ JFETbindCSC,
/* DEVbindCSCComplex */ JFETbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev JFET2info = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &JFET2iSize,
/* DEVmodSize */ &JFET2mSize
/* DEVmodSize */ &JFET2mSize,
#ifdef KLU
/* DEVbindCSC */ JFET2bindCSC,
/* DEVbindCSCComplex */ JFET2bindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev LTRAinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &LTRAiSize,
/* DEVmodSize */ &LTRAmSize
/* DEVmodSize */ &LTRAmSize,
#ifdef KLU
/* DEVbindCSC */ LTRAbindCSC,
/* DEVbindCSCComplex */ LTRAbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev MESinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &MESiSize,
/* DEVmodSize */ &MESmSize
/* DEVmodSize */ &MESmSize,
#ifdef KLU
/* DEVbindCSC */ MESbindCSC,
/* DEVbindCSCComplex */ MESbindCSCComplex,
#endif
};

View File

@ -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)

View File

@ -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

View File

@ -72,7 +72,11 @@ SPICEdev MESAinfo = {
/* DEVacct */ NULL,
#endif
/* DEVinstSize */ &MESAiSize,
/* DEVmodSize */ &MESAmSize
/* DEVmodSize */ &MESAmSize,
#ifdef KLU
/* DEVbindCSC */ MESAbindCSC,
/* DEVbindCSCComplex */ MESAbindCSCComplex,
#endif
};

View File

@ -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)

Some files were not shown because too many files have changed in this diff Show More