From 5b42d09618cc530b8833a3a0ebf48a3d05ccec55 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 23 Jul 2016 10:34:37 +0200 Subject: [PATCH] unify, use memcpy for CKTstate copy operations --- src/maths/ni/niiter.c | 5 ++--- src/spicelib/analysis/cktop.c | 23 ++++++++++------------- src/spicelib/analysis/dcpss.c | 8 ++++---- src/spicelib/analysis/dctran.c | 8 ++++---- 4 files changed, 20 insertions(+), 24 deletions(-) diff --git a/src/maths/ni/niiter.c b/src/maths/ni/niiter.c index 8aea29e5c..0a1d1dadf 100644 --- a/src/maths/ni/niiter.c +++ b/src/maths/ni/niiter.c @@ -153,9 +153,8 @@ NIiter(CKTcircuit *ckt, int maxIter) CKTnumStates the first time it is run */ if(!OldCKTstate0) OldCKTstate0=TMALLOC(double, ckt->CKTnumStates + 1); - for(i=0; iCKTnumStates; i++) { - OldCKTstate0[i] = ckt->CKTstate0[i]; - } + memcpy(OldCKTstate0, ckt->CKTstate0, + (size_t) ckt->CKTnumStates * sizeof(double)); startTime = SPfrontEnd->IFseconds(); SMPsolve(ckt->CKTmatrix,ckt->CKTrhs,ckt->CKTrhsSpare); diff --git a/src/spicelib/analysis/cktop.c b/src/spicelib/analysis/cktop.c index f82e2a4a3..bf3ad67ad 100644 --- a/src/spicelib/analysis/cktop.c +++ b/src/spicelib/analysis/cktop.c @@ -184,9 +184,8 @@ dynamic_gmin (CKTcircuit * ckt, long int firstmode, i++; } - for (i = 0; i < ckt->CKTnumStates; i++) { - OldCKTstate0[i] = ckt->CKTstate0[i]; - } + memcpy(OldCKTstate0, ckt->CKTstate0, + (size_t) ckt->CKTnumStates * sizeof(double)); if (iters <= (ckt->CKTdcTrcvMaxIter / 4)) { factor *= sqrt (factor); @@ -223,9 +222,8 @@ dynamic_gmin (CKTcircuit * ckt, long int firstmode, i++; } - for (i = 0; i < ckt->CKTnumStates; i++) { - ckt->CKTstate0[i] = OldCKTstate0[i]; - } + memcpy(ckt->CKTstate0, OldCKTstate0, + (size_t) ckt->CKTnumStates * sizeof(double)); } } } @@ -449,9 +447,8 @@ gillespie_src (CKTcircuit * ckt, long int firstmode, i++; } - for (i = 0; i < ckt->CKTnumStates; i++) - OldCKTstate0[i] = ckt->CKTstate0[i]; - + memcpy(OldCKTstate0, ckt->CKTstate0, + (size_t) ckt->CKTnumStates * sizeof(double)); SPfrontEnd->IFerrorf (ERR_INFO, "One successful source step"); @@ -486,8 +483,8 @@ gillespie_src (CKTcircuit * ckt, long int firstmode, i++; } - for (i = 0; i < ckt->CKTnumStates; i++) - OldCKTstate0[i] = ckt->CKTstate0[i]; + memcpy(OldCKTstate0, ckt->CKTstate0, + (size_t) ckt->CKTnumStates * sizeof(double)); SPfrontEnd->IFerrorf (ERR_INFO, "One successful source step"); @@ -522,8 +519,8 @@ gillespie_src (CKTcircuit * ckt, long int firstmode, i++; } - for (i = 0; i < ckt->CKTnumStates; i++) - ckt->CKTstate0[i] = OldCKTstate0[i]; + memcpy(ckt->CKTstate0, OldCKTstate0, + (size_t) ckt->CKTnumStates * sizeof(double)); } diff --git a/src/spicelib/analysis/dcpss.c b/src/spicelib/analysis/dcpss.c index c012bd6e9..af5bc900e 100644 --- a/src/spicelib/analysis/dcpss.c +++ b/src/spicelib/analysis/dcpss.c @@ -1399,10 +1399,10 @@ resume: ckt->CKTstat->STATtimePts ++; ckt->CKTmode = (ckt->CKTmode&MODEUIC)|MODETRAN | MODEINITPRED; if(firsttime) { - for(i=0;iCKTnumStates;i++) { - ckt->CKTstate2[i] = ckt->CKTstate1[i]; - ckt->CKTstate3[i] = ckt->CKTstate1[i]; - } + memcpy(ckt->CKTstate2, ckt->CKTstate1, + (size_t) ckt->CKTnumStates * sizeof(double)); + memcpy(ckt->CKTstate3, ckt->CKTstate1, + (size_t) ckt->CKTnumStates * sizeof(double)); } /* txl, cpl addition */ if (converged == 1111) { diff --git a/src/spicelib/analysis/dctran.c b/src/spicelib/analysis/dctran.c index 34826d14e..4966fd177 100644 --- a/src/spicelib/analysis/dctran.c +++ b/src/spicelib/analysis/dctran.c @@ -781,10 +781,10 @@ resume: ckt->CKTstat->STATtimePts ++; ckt->CKTmode = (ckt->CKTmode&MODEUIC)|MODETRAN | MODEINITPRED; if(firsttime) { - for(i=0;iCKTnumStates;i++) { - ckt->CKTstate2[i] = ckt->CKTstate1[i]; - ckt->CKTstate3[i] = ckt->CKTstate1[i]; - } + memcpy(ckt->CKTstate2, ckt->CKTstate1, + (size_t) ckt->CKTnumStates * sizeof(double)); + memcpy(ckt->CKTstate3, ckt->CKTstate1, + (size_t) ckt->CKTnumStates * sizeof(double)); } /* txl, cpl addition */ if (converged == 1111) {