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: 1993 Stephen R. Whiteley
5 ****************************************************************************/
6 
7 #ifndef ANALH
8 #define ANALH
9 
10 #define IFP IF_SET|IF_ASK
11 
12 
13 /* general DC analysis defines */
14 
15 #define DCTNESTLEVEL 2 /* depth of nesting of curves - 2 for spice2 */
16 
17 #define DC_NAME1  101
18 #define DC_START1 102
19 #define DC_STOP1  103
20 #define DC_STEP1  104
21 #define DC_NAME2  105
22 #define DC_START2 106
23 #define DC_STOP2  107
24 #define DC_STEP2  108
25 
26 struct sDCTprms {
27     double vstart[DCTNESTLEVEL];     /* starting voltage/current */
28     double vstop[DCTNESTLEVEL];      /* ending voltage/current */
29     double vstep[DCTNESTLEVEL];      /* voltage/current step */
30     double vsave[DCTNESTLEVEL];      /* voltage of this source BEFORE
31                                       * analysis - to restore when done */
32     double vstate[DCTNESTLEVEL];     /* internal values saved during pause */
33     GENinstance *elt[DCTNESTLEVEL];  /* pointer to source */
34     IFuid eltName[DCTNESTLEVEL];     /* source being varied */
35     int nestLevel;                   /* number of levels of nesting */
36     int nestSave;                    /* iteration state during pause */
37     int dims[DCTNESTLEVEL+1];        /* dimensions of output vector */
38     int skip;                        /* restart subanalysis */
39 };
40 
41 
42 /* general AC analysis defines */
43 
44 /* available step types: */
45 
46 #define DCSTEP 0
47 #define DECADE 1
48 #define OCTAVE 2
49 #define LINEAR 3
50 
51 
52 #define AC_DEC   201
53 #define AC_OCT   202
54 #define AC_LIN   203
55 #define AC_START 204
56 #define AC_STOP  205
57 #define AC_STEPS 206
58 
59 struct sACprms {
60     double fstart;
61     double fstop;
62     double fsave;
63     int numSteps;
64     int stepType;
65 };
66 
67 #ifdef __STDC__
68 extern int ACquery(struct sACprms*,int,IFvalue*);
69 extern int ACsetp(struct sACprms*,int,IFvalue*);
70 extern int DCTquery(struct sDCTprms*,int,IFvalue*);
71 extern int DCTsetp(struct sDCTprms*,int,IFvalue*);
72 #else
73 extern int ACquery();
74 extern int ACsetp();
75 extern int DCTquery();
76 extern int DCTsetp();
77 #endif
78 
79 #ifdef ANAL_EXT
80 /* sOUTdata defined */
81 
82 #ifdef __STDC__
83 extern int ACloop(int(*)(),CKTcircuit*,int,struct sACprms*,
84             struct sOUTdata*);
85 extern int DCTloop(int(*)(),CKTcircuit*,int,struct sDCTprms*,
86             struct sOUTdata*);
87 #else
88 extern int ACloop();
89 extern int DCTloop();
90 #endif
91 
92 #endif
93 
94 
95 #endif
96