Jspice3
distodef.h
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1988 Jaijeet S Roychowdhury
5  1992 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #ifndef DISTODEF
9 #define DISTODEF
10 
11 #ifdef D_DBG_ALLTIMES
12 #define D_DBG_BLOCKTIMES
13 #define D_DBG_SMALLTIMES
14 #endif
15 
16 /* structure for passing a large number of values */
17 typedef struct {
18 
19  double cxx;
20  double cyy;
21  double czz;
22  double cxy;
23  double cyz;
24  double cxz;
25  double cxxx;
26  double cyyy;
27  double czzz;
28  double cxxy;
29  double cxxz;
30  double cxyy;
31  double cyyz;
32  double cxzz;
33  double cyzz;
34  double cxyz;
35  double r1h1x;
36  double i1h1x;
37  double r1h1y;
38  double i1h1y;
39  double r1h1z;
40  double i1h1z;
41  double r1h2x;
42  double i1h2x;
43  double r1h2y;
44  double i1h2y;
45  double r1h2z;
46  double i1h2z;
47  double r2h11x;
48  double i2h11x;
49  double r2h11y;
50  double i2h11y;
51  double r2h11z;
52  double i2h11z;
53  double h2f1f2x;
54  double ih2f1f2x;
55  double h2f1f2y;
56  double ih2f1f2y;
57  double h2f1f2z;
58  double ih2f1f2z;
59 
60 } DpassStr;
61 
62 
63 /* structure to keep derivatives of upto 3rd order w.r.t 3 variables */
64 typedef struct {
65 
66  double value;
67  double d1_p;
68  double d1_q;
69  double d1_r;
70  double d2_p2;
71  double d2_q2;
72  double d2_r2;
73  double d2_pq;
74  double d2_qr;
75  double d2_pr;
76  double d3_p3;
77  double d3_q3;
78  double d3_r3;
79  double d3_p2q;
80  double d3_p2r;
81  double d3_pq2;
82  double d3_q2r;
83  double d3_pr2;
84  double d3_qr2;
85  double d3_pqr;
86 
87 } Dderivs;
88 
89  /* structure used to describe an DISTO analysis to be performed */
90 typedef struct {
91  int JOBtype;
92  JOB *JOBnextJob; /* pointer to next thing to do */
93  char *JOBname; /* name of this job */
94  double DstartF1; /* the start value of the higher frequency for
95  distortion analysis */
96  double DstopF1; /* the stop value ove above */
97  double DfreqDelta; /* multiplier for decade/octave stepping, */
98  /* step for linear steps. */
99  double DsaveF1; /* frequency at which we left off last time*/
100  int DstepType; /* values described below */
102  int Df2wanted; /* set if f2overf1 is given in the disto command */
103  int Df2given; /* set if at least 1 source has an f2 input */
104  double Df2ovrF1; /* ratio of f2 over f1 if 2 frequencies given
105  should be < 1 */
106  double Domega1; /* current omega1 */
107  double Domega2; /* current omega2 */
108 
109  double* r1H1ptr;
110  double* i1H1ptr;
111  double* r2H11ptr;
112  double* i2H11ptr;
113  double* r3H11ptr;
114  double* i3H11ptr;
115  double* r1H2ptr; /* distortion analysis Volterra transforms */
116  double* i1H2ptr;
117  double* r2H12ptr;
118  double* i2H12ptr;
119  double* r2H1m2ptr;
120  double* i2H1m2ptr;
121  double* r3H1m2ptr;
122  double* i3H1m2ptr;
123 
124  double** r1H1stor;
125  double** i1H1stor;
126  double** r2H11stor;
127  double** i2H11stor;
128  double** r3H11stor;
129  double** i3H11stor; /*these store computed values*/
130  double** r1H2stor; /* for the plots */
131  double** i1H2stor;
132  double** r2H12stor;
133  double** i2H12stor;
134  double** r2H1m2stor;
135  double** i2H1m2stor;
136  double** r3H1m2stor;
137  double** i3H1m2stor;
138 } DISTOAN;
139 
140 /* available step types: */
141 
142 #define DECADE 1
143 #define OCTAVE 2
144 #define LINEAR 3
145 
146 /* defns. used in DsetParm */
147 
148 #define D_DEC 1
149 #define D_OCT 2
150 #define D_LIN 3
151 #define D_START 4
152 #define D_STOP 5
153 #define D_STEPS 6
154 #define D_F2OVRF1 7
155 
156 /* defns. used by CKTdisto for calling different functions */
157 
158 #define D_SETUP 1
159 #define D_F1 2
160 #define D_F2 3
161 #define D_TWOF1 4
162 #define D_THRF1 5
163 #define D_F1PF2 6
164 #define D_F1MF2 7
165 #define D_2F1MF2 8
166 #define D_RHSF1 9
167 #define D_RHSF2 10
168 
169 #endif /* DISTODEFS */
double d2_pr
Definition: distodef.h:75
double d3_pr2
Definition: distodef.h:83
double r1h1z
Definition: distodef.h:39
double cxxy
Definition: distodef.h:28
double ** i3H11stor
Definition: distodef.h:129
double r1h2z
Definition: distodef.h:45
double d3_pq2
Definition: distodef.h:81
double DfreqDelta
Definition: distodef.h:97
double d3_p3
Definition: distodef.h:76
double r1h2y
Definition: distodef.h:43
double ih2f1f2y
Definition: distodef.h:56
double d1_q
Definition: distodef.h:68
double d2_pq
Definition: distodef.h:73
double ** i3H1m2stor
Definition: distodef.h:137
double * i1H2ptr
Definition: distodef.h:116
double ih2f1f2x
Definition: distodef.h:54
double cyy
Definition: distodef.h:20
int JOBtype
Definition: distodef.h:91
double cxyy
Definition: distodef.h:30
double r1h2x
Definition: distodef.h:41
double d3_pqr
Definition: distodef.h:85
double * r1H1ptr
Definition: distodef.h:109
double * r2H12ptr
Definition: distodef.h:117
double cyyz
Definition: distodef.h:31
double d2_r2
Definition: distodef.h:72
double r1h1x
Definition: distodef.h:35
double ** i2H12stor
Definition: distodef.h:133
double ** r2H1m2stor
Definition: distodef.h:134
double * r2H1m2ptr
Definition: distodef.h:119
Definition: cktdefs.h:23
int DnumSteps
Definition: distodef.h:101
double * r3H11ptr
Definition: distodef.h:113
double r2h11y
Definition: distodef.h:49
double * r1H2ptr
Definition: distodef.h:115
double DstartF1
Definition: distodef.h:94
double * i3H1m2ptr
Definition: distodef.h:122
int DstepType
Definition: distodef.h:100
double cyyy
Definition: distodef.h:26
double czzz
Definition: distodef.h:27
char * JOBname
Definition: distodef.h:93
double i2h11y
Definition: distodef.h:50
double d3_p2r
Definition: distodef.h:80
double ** i2H11stor
Definition: distodef.h:127
double h2f1f2z
Definition: distodef.h:57
double i1h1z
Definition: distodef.h:40
double d2_qr
Definition: distodef.h:74
double cxx
Definition: distodef.h:19
double * i2H1m2ptr
Definition: distodef.h:120
double d1_r
Definition: distodef.h:69
double d1_p
Definition: distodef.h:67
double d3_qr2
Definition: distodef.h:84
int Df2given
Definition: distodef.h:103
double Domega2
Definition: distodef.h:107
double * i2H12ptr
Definition: distodef.h:118
double cxyz
Definition: distodef.h:34
double DstopF1
Definition: distodef.h:96
double ** r2H12stor
Definition: distodef.h:132
double ** r1H2stor
Definition: distodef.h:130
double d3_q3
Definition: distodef.h:77
double i1h1y
Definition: distodef.h:38
double r1h1y
Definition: distodef.h:37
double cxz
Definition: distodef.h:24
double cxxx
Definition: distodef.h:25
double cyz
Definition: distodef.h:23
double * r2H11ptr
Definition: distodef.h:111
double * i2H11ptr
Definition: distodef.h:112
double ih2f1f2z
Definition: distodef.h:58
double i2h11z
Definition: distodef.h:52
double h2f1f2y
Definition: distodef.h:55
double ** r2H11stor
Definition: distodef.h:126
double ** i1H2stor
Definition: distodef.h:131
double d3_q2r
Definition: distodef.h:82
double h2f1f2x
Definition: distodef.h:53
double ** r3H1m2stor
Definition: distodef.h:136
double i1h1x
Definition: distodef.h:36
int Df2wanted
Definition: distodef.h:102
double i1h2y
Definition: distodef.h:44
double ** r3H11stor
Definition: distodef.h:128
double * r3H1m2ptr
Definition: distodef.h:121
double i1h2x
Definition: distodef.h:42
double cxxz
Definition: distodef.h:29
double czz
Definition: distodef.h:21
double cxy
Definition: distodef.h:22
double ** i2H1m2stor
Definition: distodef.h:135
double value
Definition: distodef.h:66
double Df2ovrF1
Definition: distodef.h:104
double d3_r3
Definition: distodef.h:78
double DsaveF1
Definition: distodef.h:99
double r2h11x
Definition: distodef.h:47
double i1h2z
Definition: distodef.h:46
JOB * JOBnextJob
Definition: distodef.h:92
double d3_p2q
Definition: distodef.h:79
double * i1H1ptr
Definition: distodef.h:110
double d2_q2
Definition: distodef.h:71
double Domega1
Definition: distodef.h:106
double cxzz
Definition: distodef.h:32
double ** i1H1stor
Definition: distodef.h:125
double * i3H11ptr
Definition: distodef.h:114
double r2h11z
Definition: distodef.h:51
double ** r1H1stor
Definition: distodef.h:124
double cyzz
Definition: distodef.h:33
double d2_p2
Definition: distodef.h:70
double i2h11x
Definition: distodef.h:48