diff --git a/src/frontend/outitf.h b/src/frontend/outitf.h index ce67ff465..75e506d3b 100644 --- a/src/frontend/outitf.h +++ b/src/frontend/outitf.h @@ -63,7 +63,11 @@ int OUTendDomain(runDesc *plotPtr); int OUTattributes(runDesc *plotPtr, IFuid varName, int param, IFvalue *value); int OUTstopnow(void); void OUTerror(int flags, char *format, IFuid *names); -void OUTerrorf(int, const char *fmt, ...) __attribute__ ((format (__printf__, 2, 3))); +#ifdef __GNUC__ +void OUTerrorf(int, const char *fmt, ...) __attribute__((format(__printf__, 2, 3))); +#else +void OUTerrorf(int, const char *fmt, ...); +#endif #endif diff --git a/src/include/ngspice/ngspice.h b/src/include/ngspice/ngspice.h index df1152419..4ab0f7495 100644 --- a/src/include/ngspice/ngspice.h +++ b/src/include/ngspice/ngspice.h @@ -176,7 +176,9 @@ extern double x_atanh(double); #define fileno _fileno #define getcwd _getcwd #define chdir _chdir +#if (_MSC_VER < 1800) #define isnan _isnan +#endif #define finite _finite #define scalb _scalb #define logb _logb @@ -190,6 +192,12 @@ extern double x_atanh(double); #define snprintf _snprintf #define isatty _isatty #define inline __inline + +// undo a #define bool _Bool in MS Visual Studio 2015 +#if defined(bool) +#undef bool +#endif + /* NAN not available in MS VS 2008 */ #ifndef NAN static const __int64 global_nan = 0x7ff8000000000000i64; diff --git a/src/main.c b/src/main.c index aa7e6388d..eb6ddb3f6 100644 --- a/src/main.c +++ b/src/main.c @@ -196,7 +196,13 @@ extern int OUTwData(runDesc *,int,IFvalue *,void *), OUTwEnd(runDesc *), OUTendP extern int OUTbeginDomain(runDesc *,IFuid,int,IFvalue *); extern int OUTendDomain(runDesc *), OUTstopnow(void); extern void OUTerror(int,char *,IFuid *); -extern void OUTerrorf(int, const char *fmt, ...) __attribute__ ((format (__printf__, 2, 3))); + +#ifdef __GNUC__ +extern void OUTerrorf(int, const char *fmt, ...) __attribute__((format(__printf__, 2, 3))); +#else +extern void OUTerrorf(int, const char *fmt, ...); +#endif + extern int OUTattributes(runDesc *,IFuid,int,IFvalue *); extern void initw(void); diff --git a/src/maths/misc/equality.c b/src/maths/misc/equality.c index f16380431..b85d63280 100644 --- a/src/maths/misc/equality.c +++ b/src/maths/misc/equality.c @@ -3,6 +3,7 @@ Copyright 1991 Regents of the University of California. All rights reserved. **********/ #include "ngspice/ngspice.h" +#include "ngspice/missing_math.h" #include #include diff --git a/src/spicelib/analysis/CUSPICE/cuckttrunc.cu b/src/spicelib/analysis/CUSPICE/cuckttrunc.cu index b215b730f..7a33b3507 100644 --- a/src/spicelib/analysis/CUSPICE/cuckttrunc.cu +++ b/src/spicelib/analysis/CUSPICE/cuckttrunc.cu @@ -2,7 +2,7 @@ Copyright 2014 - NGSPICE Software Author: 2014 Francesco Lannutti **********/ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/cktdefs.h" #include "cuda_runtime_api.h" diff --git a/src/spicelib/analysis/acan.c b/src/spicelib/analysis/acan.c index 4dac71bff..c7e0fdf16 100644 --- a/src/spicelib/analysis/acan.c +++ b/src/spicelib/analysis/acan.c @@ -57,7 +57,9 @@ ACan(CKTcircuit *ckt, int restart) IFuid freqUid; static runDesc *acPlot = NULL; runDesc *plot = NULL; - +#ifdef KLU + int i ; +#endif #ifdef XSPICE /* gtri - add - wbk - 12/19/90 - Add IPC stuff and anal_init and anal_type */ @@ -242,7 +244,6 @@ ACan(CKTcircuit *ckt, int restart) ckt->CKTcurrentAnalysis = DOING_AC; #ifdef KLU - int i ; if (ckt->CKTmatrix->CKTkluMODE) { diff --git a/src/spicelib/analysis/cktload.c b/src/spicelib/analysis/cktload.c index a377cb7a2..6b066ae80 100644 --- a/src/spicelib/analysis/cktload.c +++ b/src/spicelib/analysis/cktload.c @@ -48,10 +48,10 @@ CKTload(CKTcircuit *ckt) { #ifdef USE_CUSPICE cusparseStatus_t cusparseStatus ; - double alpha, beta ; + double alpha=1.0, beta=0.0 ; int status ; - alpha = 1.0 ; - beta = 0.0 ; +// alpha = 1.0 ; +// beta = 0.0 ; #else int size ; #endif diff --git a/src/spicelib/analysis/cktsetup.c b/src/spicelib/analysis/cktsetup.c index 22b2491a9..19d27afd3 100644 --- a/src/spicelib/analysis/cktsetup.c +++ b/src/spicelib/analysis/cktsetup.c @@ -97,10 +97,23 @@ Compress (int *Ai, int *Bp, int num_rows, int n_COO) int CKTsetup(CKTcircuit *ckt) { + int i; + int error; + #ifdef USE_CUSPICE int status ; cusparseStatus_t cusparseStatus ; +#endif +#ifdef XSPICE + /* gtri - begin - Setup for adding rshunt option resistors */ + CKTnode *node; + int num_nodes; + /* gtri - end - Setup for adding rshunt option resistors */ +#endif + SMPmatrix *matrix; + +#ifdef USE_CUSPICE ckt->total_n_values = 0 ; ckt->total_n_Ptr = 0 ; @@ -110,15 +123,7 @@ CKTsetup(CKTcircuit *ckt) ckt->total_n_timeSteps = 0 ; #endif - int i; - int error; -#ifdef XSPICE - /* gtri - begin - Setup for adding rshunt option resistors */ - CKTnode *node; - int num_nodes; - /* gtri - end - Setup for adding rshunt option resistors */ -#endif - SMPmatrix *matrix; + ckt->CKTnumStates=0; #ifdef WANT_SENSE2 @@ -168,13 +173,24 @@ CKTsetup(CKTcircuit *ckt) #ifdef KLU if (ckt->CKTmatrix->CKTkluMODE) { - fprintf (stderr, "Using KLU as Direct Linear Solver\n") ; + int i ; int n = SMPmatSize (ckt->CKTmatrix) ; + int nz = ckt->CKTmatrix->CKTklunz ; +#ifdef USE_CUSPICE + /* In the DEVsetup the Position Vectors must be assigned and copied to the GPU */ + int j, k, u, TopologyNNZ ; + int uRHS, TopologyNNZRHS ; + int ret ; + Element *TopologyStruct ; + Element *TopologyStructRHS ; +#endif + fprintf (stderr, "Using KLU as Direct Linear Solver\n") ; + ckt->CKTmatrix->CKTkluN = n ; - int nz = ckt->CKTmatrix->CKTklunz ; + ckt->CKTmatrix->CKTkluAp = TMALLOC (int, n + 1) ; ckt->CKTmatrix->CKTkluAi = TMALLOC (int, nz) ; @@ -205,12 +221,6 @@ CKTsetup(CKTcircuit *ckt) #ifdef USE_CUSPICE fprintf (stderr, "Using CUSPICE (NGSPICE on CUDA Platforms)\n") ; - /* In the DEVsetup the Position Vectors must be assigned and copied to the GPU */ - int j, k, u, TopologyNNZ ; - int uRHS, TopologyNNZRHS ; - int ret ; - - /* CKTloadOutput Vector allocation - DIRECTLY in the GPU memory */ /* CKTloadOutput for the RHS Vector allocation - DIRECTLY in the GPU memory */ @@ -272,7 +282,7 @@ CKTsetup(CKTcircuit *ckt) /* COO format to CSR format Conversion using Quick Sort */ - Element *TopologyStruct ; + TopologyStruct = TMALLOC (Element, TopologyNNZ) ; for (i = 0 ; i < TopologyNNZ ; i++) @@ -295,7 +305,7 @@ CKTsetup(CKTcircuit *ckt) /* COO format to CSR format Conversion for the RHS using Quick Sort */ - Element *TopologyStructRHS ; + TopologyStructRHS = TMALLOC (Element, TopologyNNZRHS) ; for (i = 0 ; i < TopologyNNZRHS ; i++) diff --git a/src/spicelib/devices/bsim4/CUSPICE/cubsim4load.cu b/src/spicelib/devices/bsim4/CUSPICE/cubsim4load.cu index 104dc9ee0..e6448b6e4 100644 --- a/src/spicelib/devices/bsim4/CUSPICE/cubsim4load.cu +++ b/src/spicelib/devices/bsim4/CUSPICE/cubsim4load.cu @@ -22,12 +22,12 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/const.h" #include "ngspice/macros.h" #include "ngspice/CUSPICE/cuniinteg.cuh" -#include "bsim4def.h" +#include "../bsim4def.h" #define MAX_EXPL 2.688117142e+43 #define MIN_EXPL 3.720075976e-44 @@ -56,6 +56,9 @@ } \ } +/* without this linking fails */ +double CONSTvt0 = CONSTboltz * (27 /* deg c */ + CONSTCtoK ) / CHARGE; + extern "C" __device__ static diff --git a/src/spicelib/devices/bsim4/CUSPICE/cubsim4trunc.cu b/src/spicelib/devices/bsim4/CUSPICE/cubsim4trunc.cu index a54b5eb7f..b2ee6f531 100644 --- a/src/spicelib/devices/bsim4/CUSPICE/cubsim4trunc.cu +++ b/src/spicelib/devices/bsim4/CUSPICE/cubsim4trunc.cu @@ -2,9 +2,9 @@ Copyright 2014 - NGSPICE Software Author: 2014 Francesco Lannutti **********/ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" -#include "CUSPICE/cucktterr.cuh" +#include "cucktterr.cuh" #include "bsim4def.h" extern "C" diff --git a/src/spicelib/devices/bsim4/b4set.c b/src/spicelib/devices/bsim4/b4set.c index 54424409b..0e0c13d8a 100644 --- a/src/spicelib/devices/bsim4/b4set.c +++ b/src/spicelib/devices/bsim4/b4set.c @@ -66,7 +66,9 @@ JOB *job; unsigned int idx, InstCount; BSIM4instance **InstArray; #endif - +#ifdef USE_CUSPICE + int i, j, jRHS, l, lRHS, lTimeSteps, status ; +#endif /* Search for a noise analysis request */ for (job = ((TSKtask *)ft_curckt->ci_curTask)->jobs;job;job = job->JOBnextJob) { if(strcmp(job->JOBname,"Noise Analysis")==0) { @@ -2575,7 +2577,7 @@ do { if((here->ptr = SMPmakeElt(matrix,here->first,here->second))==(double *)NUL } #ifdef USE_CUSPICE - int i, j, jRHS, l, lRHS, lTimeSteps, status ; +// int i, j, jRHS, l, lRHS, lTimeSteps, status ; /* Counting the instances */ for (model = (BSIM4model *)inModel ; model != NULL ; model = model->BSIM4nextModel) diff --git a/src/spicelib/devices/cap/CUSPICE/captopology.c b/src/spicelib/devices/cap/CUSPICE/captopology.c index 080c1ad19..b138554f5 100644 --- a/src/spicelib/devices/cap/CUSPICE/captopology.c +++ b/src/spicelib/devices/cap/CUSPICE/captopology.c @@ -25,7 +25,7 @@ #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" -#include "capdefs.h" +#include "../capdefs.h" #include "ngspice/sperror.h" #define TopologyMatrixInsert(Ptr, instance_ID, offset, Value, global_ID) \ diff --git a/src/spicelib/devices/cap/CUSPICE/cucapfree.c b/src/spicelib/devices/cap/CUSPICE/cucapfree.c index 057e5f8a2..1f94be510 100644 --- a/src/spicelib/devices/cap/CUSPICE/cucapfree.c +++ b/src/spicelib/devices/cap/CUSPICE/cucapfree.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "capdefs.h" +#include "../capdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" int diff --git a/src/spicelib/devices/cap/CUSPICE/cucapgetic.c b/src/spicelib/devices/cap/CUSPICE/cucapgetic.c index 4ad35c591..d90a9de4b 100644 --- a/src/spicelib/devices/cap/CUSPICE/cucapgetic.c +++ b/src/spicelib/devices/cap/CUSPICE/cucapgetic.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "capdefs.h" +#include "../capdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/cap/CUSPICE/cucapload.cu b/src/spicelib/devices/cap/CUSPICE/cucapload.cu index d0caee34d..5dbf33d9d 100644 --- a/src/spicelib/devices/cap/CUSPICE/cucapload.cu +++ b/src/spicelib/devices/cap/CUSPICE/cucapload.cu @@ -22,10 +22,10 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/CUSPICE/cuniinteg.cuh" -#include "capdefs.h" +#include "../capdefs.h" extern "C" __global__ void cuCAPload_kernel (CAPparamGPUstruct, double *, double *, double *, diff --git a/src/spicelib/devices/cap/CUSPICE/cucapsetup.c b/src/spicelib/devices/cap/CUSPICE/cucapsetup.c index 749257cd5..d2dbe5156 100644 --- a/src/spicelib/devices/cap/CUSPICE/cucapsetup.c +++ b/src/spicelib/devices/cap/CUSPICE/cucapsetup.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "capdefs.h" +#include "../capdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/cap/CUSPICE/cucaptemp.c b/src/spicelib/devices/cap/CUSPICE/cucaptemp.c index a4fffb374..296ada409 100644 --- a/src/spicelib/devices/cap/CUSPICE/cucaptemp.c +++ b/src/spicelib/devices/cap/CUSPICE/cucaptemp.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "capdefs.h" +#include "../capdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/cap/CUSPICE/cucaptrunc.cu b/src/spicelib/devices/cap/CUSPICE/cucaptrunc.cu index 6912d9dfd..762853eaf 100644 --- a/src/spicelib/devices/cap/CUSPICE/cucaptrunc.cu +++ b/src/spicelib/devices/cap/CUSPICE/cucaptrunc.cu @@ -2,10 +2,10 @@ Copyright 2014 - NGSPICE Software Author: 2014 Francesco Lannutti **********/ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" -#include "CUSPICE/cucktterr.cuh" -#include "capdefs.h" +#include "cucktterr.cuh" +#include "../capdefs.h" extern "C" __global__ void cuCAPtrunc_kernel (CAPparamGPUstruct, int, double **, double *, double, diff --git a/src/spicelib/devices/cap/capsetup.c b/src/spicelib/devices/cap/capsetup.c index d46eedc61..990d55b80 100644 --- a/src/spicelib/devices/cap/capsetup.c +++ b/src/spicelib/devices/cap/capsetup.c @@ -26,7 +26,9 @@ CAPsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states) { CAPmodel *model = (CAPmodel*)inModel; CAPinstance *here; - +#ifdef USE_CUSPICE + int i, j, k, status ; +#endif /* loop through all the capacitor models */ for( ; model != NULL; model = model->CAPnextModel ) { @@ -122,7 +124,7 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ } #ifdef USE_CUSPICE - int i, j, k, status ; +// int i, j, k, status ; /* Counting the instances */ for (model = (CAPmodel *)inModel ; model != NULL ; model = model->CAPnextModel) diff --git a/src/spicelib/devices/hisim2/hsm2ld.c b/src/spicelib/devices/hisim2/hsm2ld.c index 84644307e..c6562bdbc 100644 --- a/src/spicelib/devices/hisim2/hsm2ld.c +++ b/src/spicelib/devices/hisim2/hsm2ld.c @@ -14,7 +14,7 @@ Hiroshima University & Semiconductor Technology Academic Research Center (STARC) ***********************************************************************/ - +//#pragma optimize( "", off ) #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" #include "hsm2def.h" diff --git a/src/spicelib/devices/ind/CUSPICE/cuindfree.c b/src/spicelib/devices/ind/CUSPICE/cuindfree.c index d7c69bfa2..46dab82aa 100644 --- a/src/spicelib/devices/ind/CUSPICE/cuindfree.c +++ b/src/spicelib/devices/ind/CUSPICE/cuindfree.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/CUSPICE/CUSPICE.h" int diff --git a/src/spicelib/devices/ind/CUSPICE/cuindload.cu b/src/spicelib/devices/ind/CUSPICE/cuindload.cu index 2c51d8f2c..a7c589c36 100644 --- a/src/spicelib/devices/ind/CUSPICE/cuindload.cu +++ b/src/spicelib/devices/ind/CUSPICE/cuindload.cu @@ -22,10 +22,10 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/CUSPICE/cuniinteg.cuh" -#include "inddefs.h" +#include "../inddefs.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ #define CUDAMALLOCCHECK(a, b, c, d) \ diff --git a/src/spicelib/devices/ind/CUSPICE/cuindsetup.c b/src/spicelib/devices/ind/CUSPICE/cuindsetup.c index 980edfcae..915cbf84d 100644 --- a/src/spicelib/devices/ind/CUSPICE/cuindsetup.c +++ b/src/spicelib/devices/ind/CUSPICE/cuindsetup.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/ind/CUSPICE/cuindtemp.c b/src/spicelib/devices/ind/CUSPICE/cuindtemp.c index 15af5d582..683e2764b 100644 --- a/src/spicelib/devices/ind/CUSPICE/cuindtemp.c +++ b/src/spicelib/devices/ind/CUSPICE/cuindtemp.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/ind/CUSPICE/cuindtrunc.cu b/src/spicelib/devices/ind/CUSPICE/cuindtrunc.cu index 5fa3140a2..18f5f317e 100644 --- a/src/spicelib/devices/ind/CUSPICE/cuindtrunc.cu +++ b/src/spicelib/devices/ind/CUSPICE/cuindtrunc.cu @@ -2,10 +2,10 @@ Copyright 2014 - NGSPICE Software Author: 2014 Francesco Lannutti **********/ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" -#include "CUSPICE/cucktterr.cuh" -#include "inddefs.h" +#include "cucktterr.cuh" +#include "../inddefs.h" extern "C" __global__ void cuINDtrunc_kernel (INDparamGPUstruct, int, double **, double *, double, diff --git a/src/spicelib/devices/ind/CUSPICE/cumutfree.c b/src/spicelib/devices/ind/CUSPICE/cumutfree.c index 33dd6d9e0..420355d06 100644 --- a/src/spicelib/devices/ind/CUSPICE/cumutfree.c +++ b/src/spicelib/devices/ind/CUSPICE/cumutfree.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/CUSPICE/CUSPICE.h" int diff --git a/src/spicelib/devices/ind/CUSPICE/cumutload.cu b/src/spicelib/devices/ind/CUSPICE/cumutload.cu index 05391cf01..9ed7ec776 100644 --- a/src/spicelib/devices/ind/CUSPICE/cumutload.cu +++ b/src/spicelib/devices/ind/CUSPICE/cumutload.cu @@ -22,10 +22,10 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/CUSPICE/cuniinteg.cuh" -#include "inddefs.h" +#include "../inddefs.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ #define CUDAMALLOCCHECK(a, b, c, d) \ diff --git a/src/spicelib/devices/ind/CUSPICE/cumutsetup.c b/src/spicelib/devices/ind/CUSPICE/cumutsetup.c index cc42c00a8..0c4a26491 100644 --- a/src/spicelib/devices/ind/CUSPICE/cumutsetup.c +++ b/src/spicelib/devices/ind/CUSPICE/cumutsetup.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/ind/CUSPICE/cumuttemp.c b/src/spicelib/devices/ind/CUSPICE/cumuttemp.c index 47b835b56..97624cd95 100644 --- a/src/spicelib/devices/ind/CUSPICE/cumuttemp.c +++ b/src/spicelib/devices/ind/CUSPICE/cumuttemp.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/ind/CUSPICE/indtopology.c b/src/spicelib/devices/ind/CUSPICE/indtopology.c index 559a76dfe..1aa199084 100644 --- a/src/spicelib/devices/ind/CUSPICE/indtopology.c +++ b/src/spicelib/devices/ind/CUSPICE/indtopology.c @@ -25,7 +25,7 @@ #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/sperror.h" #define TopologyMatrixInsert(Ptr, instance_ID, offset, Value, global_ID) \ diff --git a/src/spicelib/devices/ind/CUSPICE/muttopology.c b/src/spicelib/devices/ind/CUSPICE/muttopology.c index 089d02c86..907cd9068 100644 --- a/src/spicelib/devices/ind/CUSPICE/muttopology.c +++ b/src/spicelib/devices/ind/CUSPICE/muttopology.c @@ -25,7 +25,7 @@ #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" -#include "inddefs.h" +#include "../inddefs.h" #include "ngspice/sperror.h" #define TopologyMatrixInsert(Ptr, instance_ID, offset, Value, global_ID) \ @@ -36,13 +36,13 @@ int MUTtopology (GENmodel *inModel, CKTcircuit *ckt, int *i, int *j) { - NG_IGNORE (j) ; MUTmodel *model = (MUTmodel *)inModel ; MUTinstance *here ; int k ; double *basePtr ; basePtr = ckt->CKTmatrix->CKTkluAx ; + NG_IGNORE (j) ; /* loop through all the mutual inductor models */ for ( ; model != NULL ; model = model->MUTnextModel) diff --git a/src/spicelib/devices/ind/indsetup.c b/src/spicelib/devices/ind/indsetup.c index 4f129016a..9e8d6f630 100644 --- a/src/spicelib/devices/ind/indsetup.c +++ b/src/spicelib/devices/ind/indsetup.c @@ -24,7 +24,9 @@ INDsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states) INDinstance *here; int error; CKTnode *tmp; - +#ifdef USE_CUSPICE + int i, j, k, status ; +#endif /* loop through all the inductor models */ for ( ; model != NULL ; model = model->INDnextModel) { @@ -106,7 +108,7 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ } #ifdef USE_CUSPICE - int i, j, k, status ; +// int i, j, k, status ; /* Counting the instances */ for (model = (INDmodel *)inModel ; model != NULL ; model = model->INDnextModel) diff --git a/src/spicelib/devices/ind/mutsetup.c b/src/spicelib/devices/ind/mutsetup.c index 597a909f9..9554bd357 100644 --- a/src/spicelib/devices/ind/mutsetup.c +++ b/src/spicelib/devices/ind/mutsetup.c @@ -26,7 +26,11 @@ MUTsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states) MUTmodel *model = (MUTmodel*)inModel; MUTinstance *here; int ktype; - +#ifdef USE_CUSPICE + int i, j, status ; + INDmodel *indmodel ; + INDinstance *indhere ; +#endif NG_IGNORE(states); /* loop through all the mutual inductor models */ @@ -71,9 +75,7 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ } #ifdef USE_CUSPICE - int i, j, status ; - INDmodel *indmodel ; - INDinstance *indhere ; + /* Counting the instances */ for (model = (MUTmodel *)inModel ; model != NULL ; model = model->MUTnextModel) diff --git a/src/spicelib/devices/ind/muttemp.c b/src/spicelib/devices/ind/muttemp.c index 16fed19dd..191028f6d 100644 --- a/src/spicelib/devices/ind/muttemp.c +++ b/src/spicelib/devices/ind/muttemp.c @@ -23,12 +23,12 @@ MUTtemp(GENmodel *inModel, CKTcircuit *ckt) MUTinstance *here; double ind1, ind2; - NG_IGNORE(ckt); - #ifdef USE_CUSPICE int i, status ; #endif + NG_IGNORE(ckt); + /* loop through all the mutual inductor models */ for( ; model != NULL; model = model->MUTnextModel ) { diff --git a/src/spicelib/devices/isrc/CUSPICE/cuisrcfree.c b/src/spicelib/devices/isrc/CUSPICE/cuisrcfree.c index 0f92c94cf..3f938ed3b 100644 --- a/src/spicelib/devices/isrc/CUSPICE/cuisrcfree.c +++ b/src/spicelib/devices/isrc/CUSPICE/cuisrcfree.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "isrcdefs.h" +#include "../isrcdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" int diff --git a/src/spicelib/devices/isrc/CUSPICE/cuisrcload.cu b/src/spicelib/devices/isrc/CUSPICE/cuisrcload.cu index cd1467b7c..dea1c51ca 100644 --- a/src/spicelib/devices/isrc/CUSPICE/cuisrcload.cu +++ b/src/spicelib/devices/isrc/CUSPICE/cuisrcload.cu @@ -22,11 +22,13 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/CUSPICE/cuniinteg.cuh" -#include "isrcdefs.h" - +#include "../isrcdefs.h" +#ifndef M_PI +# define M_PI 3.14159265358979323846 +#endif #ifdef XSPICE_EXP /* gtri - begin - wbk - modify for supply ramping option */ #include "ngspice/cmproto.h" diff --git a/src/spicelib/devices/isrc/CUSPICE/cuisrcsetup.c b/src/spicelib/devices/isrc/CUSPICE/cuisrcsetup.c index 80d1f0067..a0ef75839 100644 --- a/src/spicelib/devices/isrc/CUSPICE/cuisrcsetup.c +++ b/src/spicelib/devices/isrc/CUSPICE/cuisrcsetup.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "isrcdefs.h" +#include "../isrcdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/isrc/CUSPICE/cuisrctemp.c b/src/spicelib/devices/isrc/CUSPICE/cuisrctemp.c index f6667ff9c..6672eaba6 100644 --- a/src/spicelib/devices/isrc/CUSPICE/cuisrctemp.c +++ b/src/spicelib/devices/isrc/CUSPICE/cuisrctemp.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "isrcdefs.h" +#include "../isrcdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/isrc/CUSPICE/isrctopology.c b/src/spicelib/devices/isrc/CUSPICE/isrctopology.c index b43bb68ed..9d1fa6741 100644 --- a/src/spicelib/devices/isrc/CUSPICE/isrctopology.c +++ b/src/spicelib/devices/isrc/CUSPICE/isrctopology.c @@ -25,7 +25,7 @@ #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" -#include "isrcdefs.h" +#include "../isrcdefs.h" #include "ngspice/sperror.h" #define TopologyMatrixInsertRHS(offset, instance_ID, offsetRHS, Value, global_ID) \ @@ -36,12 +36,12 @@ int ISRCtopology (GENmodel *inModel, CKTcircuit *ckt, int *i, int *j) { - NG_IGNORE (i) ; + ISRCmodel *model = (ISRCmodel *)inModel ; ISRCinstance *here ; int k ; - + NG_IGNORE (i) ; /* loop through all the voltage source models */ for ( ; model != NULL ; model = model->ISRCnextModel) { diff --git a/src/spicelib/devices/isrc/isrctemp.c b/src/spicelib/devices/isrc/isrctemp.c index 7b2880835..21cecd66b 100644 --- a/src/spicelib/devices/isrc/isrctemp.c +++ b/src/spicelib/devices/isrc/isrctemp.c @@ -24,12 +24,12 @@ ISRCtemp(GENmodel *inModel, CKTcircuit *ckt) ISRCinstance *here; double radians; - NG_IGNORE(ckt); - #ifdef USE_CUSPICE int i, j, status ; #endif + NG_IGNORE(ckt); + /* loop through all the voltage source models */ for( ; model != NULL; model = model->ISRCnextModel ) { diff --git a/src/spicelib/devices/res/CUSPICE/curesfree.c b/src/spicelib/devices/res/CUSPICE/curesfree.c index 0847d95df..717e63648 100644 --- a/src/spicelib/devices/res/CUSPICE/curesfree.c +++ b/src/spicelib/devices/res/CUSPICE/curesfree.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "resdefs.h" +#include "../resdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" int diff --git a/src/spicelib/devices/res/CUSPICE/curesload.cu b/src/spicelib/devices/res/CUSPICE/curesload.cu index dab4e0a3f..896f042c9 100644 --- a/src/spicelib/devices/res/CUSPICE/curesload.cu +++ b/src/spicelib/devices/res/CUSPICE/curesload.cu @@ -22,9 +22,9 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" -#include "resdefs.h" +#include "../resdefs.h" extern "C" __global__ void cuRESload_kernel (RESparamGPUstruct, double *, int, int *, double *) ; diff --git a/src/spicelib/devices/res/CUSPICE/curessetup.c b/src/spicelib/devices/res/CUSPICE/curessetup.c index 225d76e07..a0aab7608 100644 --- a/src/spicelib/devices/res/CUSPICE/curessetup.c +++ b/src/spicelib/devices/res/CUSPICE/curessetup.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "resdefs.h" +#include "../resdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/res/CUSPICE/curestemp.c b/src/spicelib/devices/res/CUSPICE/curestemp.c index aaaa7b86c..ba3e7b869 100644 --- a/src/spicelib/devices/res/CUSPICE/curestemp.c +++ b/src/spicelib/devices/res/CUSPICE/curestemp.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "resdefs.h" +#include "../resdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/res/CUSPICE/restopology.c b/src/spicelib/devices/res/CUSPICE/restopology.c index 2e434532b..074b0dc65 100644 --- a/src/spicelib/devices/res/CUSPICE/restopology.c +++ b/src/spicelib/devices/res/CUSPICE/restopology.c @@ -25,7 +25,7 @@ #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" -#include "resdefs.h" +#include "../resdefs.h" #include "ngspice/sperror.h" #define TopologyMatrixInsert(Ptr, instance_ID, offset, Value, global_ID) \ diff --git a/src/spicelib/devices/res/ressetup.c b/src/spicelib/devices/res/ressetup.c index fdd8e424b..ec6bba06f 100644 --- a/src/spicelib/devices/res/ressetup.c +++ b/src/spicelib/devices/res/ressetup.c @@ -21,7 +21,9 @@ RESsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit*ckt, int *state) { RESmodel *model = (RESmodel *)inModel; RESinstance *here; - +#ifdef USE_CUSPICE + int i, j, status ; +#endif NG_IGNORE(state); NG_IGNORE(ckt); @@ -54,7 +56,7 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ } #ifdef USE_CUSPICE - int i, j, status ; +// int i, j, status ; /* Counting the instances */ for (model = (RESmodel *)inModel ; model != NULL ; model = model->RESnextModel) diff --git a/src/spicelib/devices/vsrc/CUSPICE/cuvsrcfree.c b/src/spicelib/devices/vsrc/CUSPICE/cuvsrcfree.c index 595b3e854..db287ce9b 100644 --- a/src/spicelib/devices/vsrc/CUSPICE/cuvsrcfree.c +++ b/src/spicelib/devices/vsrc/CUSPICE/cuvsrcfree.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "vsrcdefs.h" +#include "../vsrcdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" int diff --git a/src/spicelib/devices/vsrc/CUSPICE/cuvsrcload.cu b/src/spicelib/devices/vsrc/CUSPICE/cuvsrcload.cu index 91adef2f4..fa4685943 100644 --- a/src/spicelib/devices/vsrc/CUSPICE/cuvsrcload.cu +++ b/src/spicelib/devices/vsrc/CUSPICE/cuvsrcload.cu @@ -22,10 +22,10 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#define COMPILED_BY_NVCC #include "ngspice/config.h" #include "ngspice/CUSPICE/cuniinteg.cuh" -#include "vsrcdefs.h" +#include "../vsrcdefs.h" @@ -47,7 +47,9 @@ Copyright 1991 Regents of the University of California. All rights reserved. #define TRUE 1 #define FALSE 0 - +#ifndef M_PI +# define M_PI 3.14159265358979323846 +#endif /* From Bruce Dawson, Comparing floating point numbers, http://www.cygnus-software.com/papers/comparingfloats/Comparing%20floating%20point%20numbers.htm Original this function is named AlmostEqual2sComplement but we leave it to AlmostEqualUlps diff --git a/src/spicelib/devices/vsrc/CUSPICE/cuvsrcsetup.c b/src/spicelib/devices/vsrc/CUSPICE/cuvsrcsetup.c index fce676b93..f2258d127 100644 --- a/src/spicelib/devices/vsrc/CUSPICE/cuvsrcsetup.c +++ b/src/spicelib/devices/vsrc/CUSPICE/cuvsrcsetup.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "vsrcdefs.h" +#include "../vsrcdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMalloc MACRO to check it for errors --> CUDAMALLOCCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/vsrc/CUSPICE/cuvsrctemp.c b/src/spicelib/devices/vsrc/CUSPICE/cuvsrctemp.c index 56b5cf83d..6d35bd373 100644 --- a/src/spicelib/devices/vsrc/CUSPICE/cuvsrctemp.c +++ b/src/spicelib/devices/vsrc/CUSPICE/cuvsrctemp.c @@ -25,7 +25,7 @@ #include "ngspice/config.h" #include "cuda_runtime_api.h" -#include "vsrcdefs.h" +#include "../vsrcdefs.h" #include "ngspice/CUSPICE/CUSPICE.h" /* cudaMemcpy MACRO to check it for errors --> CUDAMEMCPYCHECK(name of pointer, dimension, type, status) */ diff --git a/src/spicelib/devices/vsrc/CUSPICE/vsrctopology.c b/src/spicelib/devices/vsrc/CUSPICE/vsrctopology.c index 44b9236d8..f997e5463 100644 --- a/src/spicelib/devices/vsrc/CUSPICE/vsrctopology.c +++ b/src/spicelib/devices/vsrc/CUSPICE/vsrctopology.c @@ -25,7 +25,7 @@ #include "ngspice/ngspice.h" #include "ngspice/cktdefs.h" -#include "vsrcdefs.h" +#include "../vsrcdefs.h" #include "ngspice/sperror.h" #define TopologyMatrixInsert(Ptr, instance_ID, offset, Value, global_ID) \ diff --git a/src/spicelib/devices/vsrc/vsrcset.c b/src/spicelib/devices/vsrc/vsrcset.c index b9cd02e0b..e047bed0d 100644 --- a/src/spicelib/devices/vsrc/vsrcset.c +++ b/src/spicelib/devices/vsrc/vsrcset.c @@ -25,7 +25,9 @@ VSRCsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *state) VSRCinstance *here; CKTnode *tmp; int error; - +#ifdef USE_CUSPICE + int i, j, k, status ; +#endif NG_IGNORE(state); /* loop through all the voltage source models */ @@ -61,7 +63,6 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\ } #ifdef USE_CUSPICE - int i, j, k, status ; /* Counting the instances */ for (model = (VSRCmodel *)inModel ; model != NULL ; model = model->VSRCnextModel) diff --git a/src/spicelib/devices/vsrc/vsrctemp.c b/src/spicelib/devices/vsrc/vsrctemp.c index e792c6884..d4f2f71d5 100644 --- a/src/spicelib/devices/vsrc/vsrctemp.c +++ b/src/spicelib/devices/vsrc/vsrctemp.c @@ -24,12 +24,12 @@ VSRCtemp(GENmodel *inModel, CKTcircuit *ckt) VSRCinstance *here; double radians; - NG_IGNORE(ckt); - #ifdef USE_CUSPICE int i, j, status ; #endif + NG_IGNORE(ckt); + /* loop through all the voltage source models */ for( ; model != NULL; model = model->VSRCnextModel ) {