Merge branch 'pre-master' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master
This commit is contained in:
commit
9f581acd6b
|
|
@ -179,7 +179,9 @@ com_fft(wordlist *wl)
|
|||
fftw_execute(plan_forward);
|
||||
|
||||
scale = (double) fpts - 1.0;
|
||||
for (j = 0; j < fpts; j++) {
|
||||
fdvec[i][0].cx_real = out[0][0]/scale/2.0;
|
||||
fdvec[i][0].cx_imag = 0.0;
|
||||
for (j = 1; j < fpts; j++) {
|
||||
fdvec[i][j].cx_real = out[j][0]/scale;
|
||||
fdvec[i][j].cx_imag = out[j][1]/scale;
|
||||
}
|
||||
|
|
@ -212,7 +214,7 @@ com_fft(wordlist *wl)
|
|||
|
||||
scale = (double) fpts - 1.0;
|
||||
/* Re(x[0]), Re(x[N/2]), Re(x[1]), Im(x[1]), Re(x[2]), Im(x[2]), ... Re(x[N/2-1]), Im(x[N/2-1]). */
|
||||
fdvec[i][0].cx_real = in[0]/scale;
|
||||
fdvec[i][0].cx_real = in[0]/scale/2.0;
|
||||
fdvec[i][0].cx_imag = 0.0;
|
||||
for (j = 1; j < fpts-1; j++) {
|
||||
fdvec[i][j].cx_real = in[2*j]/scale;
|
||||
|
|
|
|||
|
|
@ -773,7 +773,9 @@ cx_fft(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
fftw_execute(plan_forward);
|
||||
|
||||
scale = (double) fpts - 1.0;
|
||||
for (i = 0; i < fpts; i++) {
|
||||
outdata[0].cx_real = out[0][0]/scale/2.0;
|
||||
outdata[0].cx_imag = 0.0;
|
||||
for (i = 1; i < fpts; i++) {
|
||||
outdata[i].cx_real = out[i][0]/scale;
|
||||
outdata[i].cx_imag = out[i][1]/scale;
|
||||
}
|
||||
|
|
@ -798,7 +800,7 @@ cx_fft(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
|
||||
scale = (double) fpts - 1.0;
|
||||
/* Re(x[0]), Re(x[N/2]), Re(x[1]), Im(x[1]), Re(x[2]), Im(x[2]), ... Re(x[N/2-1]), Im(x[N/2-1]). */
|
||||
outdata[0].cx_real = datax[0]/scale;
|
||||
outdata[0].cx_real = datax[0]/scale/2.0;
|
||||
outdata[0].cx_imag = 0.0;
|
||||
for (i = 1; i < fpts-1; i++) {
|
||||
outdata[i].cx_real = datax[2*i]/scale;
|
||||
|
|
|
|||
|
|
@ -50,18 +50,6 @@ double osdi_pnjlim(bool init, bool *check, double vnew, double vold, double vt,
|
|||
return res;
|
||||
}
|
||||
|
||||
double osdi_typedpnjlim(bool init, bool *check, double vnew, double vold, double vt,
|
||||
double vcrit, double type) {
|
||||
if (init) {
|
||||
*check = true;
|
||||
return vcrit;
|
||||
}
|
||||
int icheck = 0;
|
||||
double res = DEVpnjlim(type*vnew, vold, vt, vcrit, &icheck);
|
||||
*check = icheck != 0;
|
||||
return res;
|
||||
}
|
||||
|
||||
double osdi_limvds(bool init, bool *check, double vnew, double vold) {
|
||||
if (init) {
|
||||
*check = true;
|
||||
|
|
|
|||
|
|
@ -96,8 +96,7 @@ typedef void (*osdi_log_ptr)(void *handle, char *msg, uint32_t lvl);
|
|||
|
||||
double osdi_pnjlim(bool init, bool *icheck, double vnew, double vold, double vt,
|
||||
double vcrit);
|
||||
double osdi_typedpnjlim(bool init, bool *icheck, double vnew, double vold, double vt,
|
||||
double vcrit, double type);
|
||||
|
||||
double osdi_limvds(bool init, bool *icheck, double vnew, double vold);
|
||||
double osdi_limitlog(bool init, bool *icheck, double vnew, double vold,
|
||||
double LIM_TOL);
|
||||
|
|
|
|||
|
|
@ -174,13 +174,13 @@ extern int OSDIload(GENmodel *inModel, CKTcircuit *ckt) {
|
|||
sim_info.flags |= CALC_NOISE | ANALYSIS_NOISE;
|
||||
}
|
||||
|
||||
int ret = OK;
|
||||
|
||||
OsdiRegistryEntry *entry = osdi_reg_entry_model(inModel);
|
||||
const OsdiDescriptor *descr = entry->descriptor;
|
||||
uint32_t eval_flags = 0;
|
||||
|
||||
#ifdef USE_OMP
|
||||
int ret = OK;
|
||||
|
||||
/* use openmp 3.0 tasks to parallelize linked list transveral */
|
||||
#pragma omp parallel
|
||||
#pragma omp single
|
||||
|
|
|
|||
|
|
@ -338,7 +338,6 @@ extern OsdiObjectFile load_object_file(const char *input) {
|
|||
for (uint32_t i = 0; i < lim_table_len; i++) {
|
||||
int expected_args = -1;
|
||||
IS_LIM_FUN("pnjlim", 2, osdi_pnjlim)
|
||||
IS_LIM_FUN("typedpnjlim", 3, osdi_typedpnjlim)
|
||||
IS_LIM_FUN("limvds", 0, osdi_limvds)
|
||||
IS_LIM_FUN("fetlim", 1, osdi_fetlim)
|
||||
IS_LIM_FUN("limitlog", 1, osdi_limitlog)
|
||||
|
|
|
|||
Loading…
Reference in New Issue