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