1 #ifndef ngspice_PZDEFS_H 2 #define ngspice_PZDEFS_H 3 4 /* structure used to describe an PZ analysis to be performed */ 5 6 #include "ngspice/jobdefs.h" 7 #include <math.h> 8 #include "ngspice/complex.h" 9 #include "ngspice/typedefs.h" 10 11 struct PZtrial { 12 SPcomplex s, f_raw, f_def; 13 PZtrial *next, *prev; 14 int mag_raw, mag_def; 15 int multiplicity; 16 int flags; 17 int seq_num; 18 int count; 19 }; 20 21 struct PZAN { 22 int JOBtype; 23 JOB *JOBnextJob; 24 IFuid JOBname; 25 int PZin_pos; 26 int PZin_neg; 27 int PZout_pos; 28 int PZout_neg; 29 int PZinput_type; 30 int PZwhich; 31 int PZnumswaps; 32 int PZbalance_col; 33 int PZsolution_col; 34 PZtrial *PZpoleList; 35 PZtrial *PZzeroList; 36 int PZnPoles; 37 int PZnZeros; 38 double *PZdrive_pptr; 39 double *PZdrive_nptr; 40 }; 41 42 #define PZ_DO_POLES 0x1 43 #define PZ_DO_ZEROS 0x2 44 #define PZ_IN_VOL 1 45 #define PZ_IN_CUR 2 46 47 enum { 48 PZ_NODEI = 1, 49 PZ_NODEG, 50 PZ_NODEJ, 51 PZ_NODEK, 52 PZ_V, 53 PZ_I, 54 PZ_POL, 55 PZ_ZER, 56 PZ_PZ, 57 }; 58 59 #endif 60