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: 1985 Wayne A. Christopher
5          1992 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 /*
9  * General front end stuff.
10  */
11 
12 #ifndef FTEdefs_h
13 #define FTEdefs_h
14 
15 #define DEF_WIDTH   80  /* Line printer width. */
16 #define DEF_HEIGHT  60  /* Line printer height. */
17 #define IPOINTMIN   20  /* When we start plotting incremental plots. */
18 
19 #include "ifsim.h"
20 #include "cpdefs.h"
21 #include "fteparse.h"
22 
23 /* The curcuits that are currently available to the user. */
24 
25 struct circ {
26     char *ci_name;            /* What the circuit can be called. */
27     char *ci_ckt;             /* The CKTcircuit structure. */
28     char *ci_symtab;          /* The INP symbol table. */
29     char *ci_contblk;         /* Name of control block for range analysis */
30     struct line *ci_deck;     /* The input deck. */
31     struct line *ci_origdeck; /* The input deck, before subckt expansion. */
32     struct line *ci_options;  /* The .option cards from the deck... */
33     struct variable *ci_vars; /* ... and the parsed versions. */
34     bool ci_inprogress;       /* We are in a break now. */
35     bool ci_runonce;          /* So com_run can to a reset if necessary... */
36     wordlist *ci_commands;    /* Things to do when this circuit is done. */
37     struct circ *ci_next;     /* The next in the list. */
38     char *ci_nodes;           /* ccom structs for the nodes... */
39     char *ci_devices;         /* and devices in the circuit. */
40     char *ci_filename;        /* Where this circuit came from. */
41     char *ci_defTask;         /* the default task for this circuit */
42     char *ci_specTask;        /* the special task for command line jobs */
43     char *ci_curTask;         /* the most recent task for this circuit */
44     char *ci_defOpt;          /* the default options anal. for this circuit */
45     char *ci_specOpt;   /* the special options anal. for command line jobs */
46     char *ci_curOpt;    /* the most recent options anal. for the circuit */
47 } ;
48 
49 struct subcirc {
50     char *sc_name;  /* Whatever... */
51 } ;
52 
53 #define mylog10(xx) (((xx) > 0.0) ? log10(xx) : (- log10(HUGE)))
54 
55 #define DCOPY(s,d,n) {int i = (n); \
56     double *ps = (double*)(s); double *pd = (double*)(d); \
57     while (i--) *pd++ = *ps++; }
58 
59 #define CCOPY(s,d,n) {int i = (n); \
60     complex *ps = (complex*)(s); complex *pd = (complex*)(d); \
61     while (i--) *pd++ = *ps++; }
62 
63 #include "fteext.h"
64 
65 #endif /* FTEdefs_h */
66