427 lines
13 KiB
C
427 lines
13 KiB
C
/**********
|
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
|
Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group
|
|
Modified: 1999 Paolo Nenzi - 2000 AlansFixes
|
|
**********/
|
|
|
|
/*
|
|
* Definitions for all external symbols in FTE.
|
|
*/
|
|
|
|
#ifndef FTEext_h
|
|
#define FTEext_h
|
|
|
|
#include <config.h>
|
|
|
|
/* needed to find out what the interface structures look like */
|
|
#include "typedefs.h"
|
|
#include "ifsim.h"
|
|
#include "dvec.h"
|
|
#include "plot.h"
|
|
#include "cpdefs.h"
|
|
#include "ftedefs.h"
|
|
#include "fteinp.h"
|
|
|
|
/* arg.c */
|
|
|
|
extern void outmenuprompt(char *string);
|
|
|
|
/* aspice.c */
|
|
|
|
extern void com_aspice(wordlist *wl);
|
|
extern void com_jobs(wordlist *wl);
|
|
extern void com_rspice(wordlist *wl);
|
|
extern void ft_checkkids(void);
|
|
|
|
/* breakpoint.c */
|
|
|
|
extern bool ft_bpcheck(struct plot *runplot, int iteration);
|
|
extern void com_delete(wordlist *wl);
|
|
extern void com_iplot(wordlist *wl);
|
|
extern void com_save(wordlist *wl);
|
|
extern void com_save2(wordlist *wl, char *name);
|
|
extern void com_step(wordlist *wl);
|
|
extern void com_stop(wordlist *wl);
|
|
extern void com_sttus(wordlist *wl);
|
|
extern void com_trce(wordlist *wl);
|
|
extern void ft_trquery(void);
|
|
extern void dbfree(struct dbcomm *db);
|
|
|
|
|
|
/* breakp2.c */
|
|
|
|
extern int ft_getSaves(struct save_info **);
|
|
|
|
|
|
/* circuits.c */
|
|
|
|
extern struct circ *ft_curckt;
|
|
extern struct circ *ft_circuits;
|
|
extern struct subcirc *ft_subcircuits;
|
|
extern void ft_newcirc(struct circ *ckt);
|
|
|
|
/* clip.c */
|
|
|
|
extern bool clip_line(int *pX1, int *pY1, int *pX2, int *pY2, int l, int b, int r, int t);
|
|
extern bool clip_to_circle(int *x1, int *y1, int *x2, int *y2, int cx, int cy, int rad);
|
|
|
|
/* cmath1.c */
|
|
|
|
extern bool cx_degrees;
|
|
extern void *cx_mag(void *, short int , int , int *, short int *);
|
|
extern void *cx_ph(void *, short int , int , int *, short int *);
|
|
extern void *cx_j(void *, short int , int , int *, short int *);
|
|
extern void *cx_real(void *, short int , int , int *, short int *);
|
|
extern void *cx_imag(void *, short int , int , int *, short int *);
|
|
extern void *cx_pos(void *, short int , int , int *, short int *);
|
|
extern void *cx_db(void *, short int , int , int *, short int *);
|
|
extern void *cx_log(void *, short int , int , int *, short int *);
|
|
extern void *cx_ln(void *, short int , int , int *, short int *);
|
|
extern void *cx_exp(void *, short int , int , int *, short int *);
|
|
extern void *cx_sqrt(void *, short int , int , int *, short int *);
|
|
extern void *cx_sin(void *, short int , int , int *, short int *);
|
|
extern void *cx_cos(void *, short int , int , int *, short int *);
|
|
|
|
/* cmath3.c */
|
|
|
|
extern void *cx_divide(void *, void *, short int , short int , int);
|
|
extern void *cx_comma(void *, void *, short int , short int , int);
|
|
extern void *cx_power(void *, void *, short int , short int , int);
|
|
extern void *cx_eq(void *, void *, short int , short int , int);
|
|
extern void *cx_gt(void *, void *, short int , short int , int);
|
|
extern void *cx_lt(void *, void *, short int , short int , int);
|
|
extern void *cx_ge(void *, void *, short int , short int , int);
|
|
extern void *cx_le(void *, void *, short int , short int , int);
|
|
extern void *cx_ne(void *, void *, short int , short int , int);
|
|
|
|
/* cmath4.c */
|
|
|
|
extern void *cx_and(void *, void *, short int , short int , int);
|
|
extern void *cx_or(void *, void *, short int , short int , int);
|
|
extern void *cx_not(void *, short int , int , int *, short int *);
|
|
|
|
extern void *cx_interpolate(void *, short int , int , int *, short int *, struct plot *, struct plot *, int );
|
|
extern void *cx_deriv(void *, short int , int , int *, short int *, struct plot *, struct plot *, int );
|
|
extern void *cx_group_delay(void *, short int , int , int *, short int *, struct plot *, struct plot *, int );
|
|
|
|
|
|
/* cmdtab.c */
|
|
|
|
extern struct comm *cp_coms;
|
|
|
|
/* compose.c */
|
|
|
|
extern void com_compose(wordlist *wl);
|
|
|
|
/* cpinterface.c symbols declared in CPextern.h */
|
|
|
|
/* debugcoms.c */
|
|
|
|
extern void com_dump(wordlist *wl);
|
|
extern void com_state(wordlist *wl);
|
|
|
|
/* define.c */
|
|
|
|
extern struct pnode *ft_substdef(const char *name, struct pnode *args);
|
|
extern void com_define(wordlist *wl);
|
|
extern void com_undefine(wordlist *wl);
|
|
extern void ft_pnode(struct pnode *pn);
|
|
|
|
/* device.c */
|
|
|
|
extern void com_show(wordlist *wl);
|
|
extern void com_showmod(wordlist *wl);
|
|
extern void com_alter(wordlist *wl);
|
|
extern void com_altermod(wordlist *wl);
|
|
|
|
/* diff.c */
|
|
|
|
extern void com_diff(wordlist *wl);
|
|
|
|
/* doplot.c */
|
|
|
|
extern void com_asciiplot(wordlist *wl);
|
|
extern void com_hardcopy(wordlist *wl);
|
|
extern void com_plot(wordlist *wl);
|
|
extern void com_xgraph(wordlist *wl);
|
|
|
|
/* dotcards.c */
|
|
|
|
extern bool ft_acctprint;
|
|
extern bool ft_noacctprint;
|
|
extern bool ft_noinitprint;
|
|
extern bool ft_listprint;
|
|
extern bool ft_nopage;
|
|
extern bool ft_nomod;
|
|
extern bool ft_nodesprint;
|
|
extern bool ft_optsprint;
|
|
extern int ft_cktcoms(bool terse);
|
|
extern void ft_dotsaves(void);
|
|
extern int ft_savedotargs(void);
|
|
|
|
/* error.c */
|
|
|
|
extern void fatal(void);
|
|
extern void fperror(char *mess, int code);
|
|
extern void ft_sperror(int code, char *mess);
|
|
extern char ErrorMessage[];
|
|
extern void internalerror(char *);
|
|
extern void externalerror(char *);
|
|
|
|
|
|
|
|
/* evaluate.c */
|
|
|
|
extern struct dvec *ft_evaluate(struct pnode *node);
|
|
|
|
/* spec.c */
|
|
extern void com_spec(wordlist *wl);
|
|
|
|
/* com_fft.c */
|
|
extern void com_fft(wordlist*);
|
|
|
|
/* com_sysinfo.c */
|
|
extern void com_sysinfo(wordlist *wl);
|
|
|
|
/* ginterface.c
|
|
|
|
extern bool gi_init();
|
|
extern bool gi_endpause;
|
|
extern bool gi_rottext;
|
|
extern int gi_fntheight;
|
|
extern int gi_fntwidth;
|
|
extern int gi_maxx;
|
|
extern int gi_maxy;
|
|
extern int gi_nolst;
|
|
extern int gi_nocolors;
|
|
extern int gi_package;
|
|
extern void gi_arc();
|
|
extern void gi_clearscreen();
|
|
extern void gi_close();
|
|
extern void gi_drawline();
|
|
extern void gi_redraw();
|
|
extern void gi_setcolor();
|
|
extern void gi_resetcolor();
|
|
extern void gi_setlinestyle();
|
|
extern void gi_text();
|
|
extern void gi_update();
|
|
*/
|
|
|
|
/* graf.c */
|
|
|
|
extern bool gr_gmode;
|
|
extern bool gr_hmode;
|
|
extern void gr_iplot(struct plot *plot);
|
|
extern void gr_pmsg(char *text);
|
|
extern double gr_xrange[2];
|
|
extern double gr_yrange[2];
|
|
extern int gr_xmargin;
|
|
extern int gr_ymargin;
|
|
extern int gr_xcenter;
|
|
extern int gr_ycenter;
|
|
extern int gr_radius;
|
|
extern bool gr_circular;
|
|
|
|
/* inp.c */
|
|
|
|
extern void com_edit(wordlist *wl);
|
|
extern void com_listing(wordlist *wl);
|
|
extern void com_source(wordlist *wl);
|
|
void inp_dodeck(struct line *deck, char *tt, wordlist *end, bool reuse,
|
|
struct line *options, char *filename);
|
|
extern void inp_source(char *file);
|
|
void inp_spsource(FILE *fp, bool comfile, char *filename);
|
|
extern void inp_casefix(char *string);
|
|
extern void inp_list(FILE *file, struct line *deck, struct line *extras, int type);
|
|
extern void inp_readall(FILE *fp, struct line **data, int call_depth, char *dir_name, bool comfile);
|
|
extern FILE *inp_pathopen(char *name, char *mode);
|
|
|
|
/* nutinp.c */
|
|
|
|
void inp_nutsource(FILE *fp, bool comfile, char *filename);
|
|
void nutinp_dodeck(struct line *deck, char *tt, wordlist *end, bool reuse,
|
|
struct line *options, char *filename);
|
|
extern void nutcom_source(wordlist *wl);
|
|
|
|
/* interpolate.c */
|
|
|
|
extern bool ft_interpolate(double *data, double *ndata, double *oscale, int olen, double *nscale, int nlen, int degree);
|
|
extern bool ft_polyfit(double *xdata, double *ydata, double *result, int degree, double *scratch);
|
|
extern double ft_peval(double x, double *coeffs, int degree);
|
|
extern void ft_polyderiv(double *coeffs, int degree);
|
|
extern void com_linearize(wordlist *wl);
|
|
|
|
/* misccoms.c */
|
|
|
|
extern void com_bug(wordlist *wl);
|
|
extern void com_ahelp(wordlist *wl);
|
|
extern void com_ghelp(wordlist *wl);
|
|
extern void com_help(wordlist *wl);
|
|
extern void com_quit(wordlist *wl);
|
|
extern void com_version(wordlist *wl);
|
|
extern void com_where(wordlist *wl);
|
|
|
|
/* mw_coms.c */
|
|
extern void com_removecirc(wordlist *wl);
|
|
|
|
/* numparse.c */
|
|
|
|
extern bool ft_strictnumparse;
|
|
double * ft_numparse(char **s, bool whole);
|
|
|
|
/* options.c */
|
|
|
|
extern bool ft_simdb;
|
|
extern bool ft_parsedb;
|
|
extern bool ft_evdb;
|
|
extern bool ft_vecdb;
|
|
extern bool ft_grdb;
|
|
extern bool ft_gidb;
|
|
extern bool ft_controldb;
|
|
extern bool ft_asyncdb;
|
|
extern char *ft_setkwords[];
|
|
extern struct line *inp_getopts(struct line *deck);
|
|
extern struct line *inp_getoptsc(char *in_line, struct line *com_options);
|
|
extern struct variable *cp_enqvar(char *word);
|
|
extern bool ft_ngdebug;
|
|
|
|
/* parse.c */
|
|
|
|
extern struct func ft_funcs[];
|
|
extern struct func func_not;
|
|
extern struct func func_uminus;
|
|
extern struct pnode * ft_getpnames(wordlist *wl, bool check);
|
|
#define free_pnode(ptr) free_pnode_x(ptr); ptr=NULL
|
|
extern void free_pnode_x(struct pnode *t);
|
|
|
|
/* plotcurve.c */
|
|
|
|
extern int ft_findpoint(double pt, double *lims, int maxp, int minp, bool islog);
|
|
extern double * ft_minmax(struct dvec *v, bool real);
|
|
extern void ft_graf(struct dvec *v, struct dvec *xs, bool nostart);
|
|
|
|
/* postcoms.c */
|
|
|
|
extern void com_cross(wordlist *wl);
|
|
extern void com_display(wordlist *wl);
|
|
extern void com_let(wordlist *wl);
|
|
extern void com_unlet(wordlist *wl);
|
|
extern void com_load(wordlist *wl);
|
|
extern void com_print(wordlist *wl);
|
|
extern void com_write(wordlist *wl);
|
|
extern void com_write_sparam(wordlist *wl);
|
|
extern void com_destroy(wordlist *wl);
|
|
extern void com_splot(wordlist *wl);
|
|
extern void com_setscale(wordlist *wl);
|
|
extern void com_transpose(wordlist *wl);
|
|
|
|
/* rawfile.c */
|
|
extern int raw_prec;
|
|
extern void raw_write(char *name, struct plot *pl, bool app, bool binary);
|
|
extern void spar_write(char *name, struct plot *pl, double val);
|
|
extern struct plot *raw_read(char *name);
|
|
|
|
/* meas.c */
|
|
extern void do_measure(char *what, bool chk_only);
|
|
extern bool check_autostop(char *what);
|
|
extern void com_meas(wordlist *wl);
|
|
|
|
/* randnumb.c */
|
|
extern void TausSeed(void);
|
|
/* resource.c */
|
|
|
|
extern void com_rusage(wordlist *wl);
|
|
extern void ft_ckspace(void);
|
|
extern void init_rlimits(void);
|
|
|
|
/* runcoms.c */
|
|
|
|
extern void com_ac(wordlist *wl);
|
|
extern void com_dc(wordlist *wl);
|
|
extern void com_op(wordlist *wl);
|
|
extern void com_pz(wordlist *wl);
|
|
extern void com_sens(wordlist *wl);
|
|
extern void com_rset(wordlist *wl);
|
|
extern void com_resume(wordlist *wl);
|
|
extern void com_run(wordlist *wl);
|
|
extern void com_tran(wordlist *wl);
|
|
extern void com_tf(wordlist *wl);
|
|
extern void com_scirc(wordlist *wl);
|
|
extern void com_disto(wordlist *wl);
|
|
extern void com_noise(wordlist *wl);
|
|
extern int ft_dorun(char *file);
|
|
|
|
extern bool ft_getOutReq(FILE **, struct plot **, bool *, char *, char *);
|
|
|
|
/* spice.c & nutmeg.c */
|
|
|
|
extern bool ft_nutmeg;
|
|
extern IFsimulator *ft_sim;
|
|
extern char *ft_rawfile;
|
|
extern char *cp_program;
|
|
extern int main(int argc, char **argv);
|
|
|
|
/* spiceif.c & nutmegif.c */
|
|
|
|
extern bool if_tranparams(struct circ *ci, double *start, double *stop, double *step);
|
|
extern char *if_errstring(int code);
|
|
extern int if_sens_run(CKTcircuit *t, wordlist *args, INPtables *tab);
|
|
extern struct variable *(*if_getparam)(CKTcircuit *ckt, char** name, char* param, int ind, int do_model);
|
|
extern struct variable * nutif_getparam(CKTcircuit *ckt, char **name, char *param, int ind, int do_model);
|
|
extern struct variable *spif_getparam(CKTcircuit *ckt, char **name, char *param, int ind, int do_model);
|
|
extern struct variable *spif_getparam_special(CKTcircuit *ckt, char **name, char *param, int ind, int do_model);
|
|
extern void if_setndnames(char *line);
|
|
extern void if_setparam_model(CKTcircuit *ckt, char **name, char *val );
|
|
extern void if_setparam(CKTcircuit *ckt, char **name, char *param, struct dvec *val, int do_model);
|
|
extern struct variable *if_getstat(CKTcircuit *ckt, char *name);
|
|
|
|
/* typesdef.c */
|
|
|
|
extern void com_dftype(wordlist *);
|
|
extern void com_stype(wordlist *);
|
|
extern char *ft_typabbrev(int);
|
|
extern char *ft_typenames(int);
|
|
extern char *ft_plotabbrev(char *);
|
|
extern int ft_typnum(char *);
|
|
|
|
/* vectors.c */
|
|
|
|
extern bool vec_eq(struct dvec *v1, struct dvec *v2);
|
|
extern int plot_num;
|
|
extern struct dvec *vec_fromplot(char *word, struct plot *plot);
|
|
extern struct dvec *vec_copy(struct dvec *v);
|
|
extern struct dvec *vec_get(const char *word);
|
|
extern struct dvec *vec_mkfamily(struct dvec *v);
|
|
extern struct plot *plot_cur;
|
|
extern struct plot *plot_alloc(char *name);
|
|
extern struct plot *plot_list;
|
|
extern int plotl_changed;
|
|
extern void plot_add(struct plot *pl);
|
|
#define vec_free(ptr) vec_free_x(ptr); ptr=NULL
|
|
extern void vec_free_x(struct dvec *v);
|
|
extern void vec_gc(void);
|
|
extern void ft_loadfile(char *file);
|
|
extern void vec_new(struct dvec *d);
|
|
extern void plot_docoms(wordlist *wl);
|
|
extern void vec_remove(char *name);
|
|
extern void plot_setcur(char *name);
|
|
extern void plot_new(struct plot *pl);
|
|
extern char *vec_basename(struct dvec *v);
|
|
extern bool plot_prefix(char *pre, char *str);
|
|
extern void vec_transpose(struct dvec *v);
|
|
|
|
/* main.c */
|
|
extern bool ft_intrpt;
|
|
extern bool ft_setflag;
|
|
|
|
/* newcoms.c */
|
|
extern void com_reshape(wordlist *wl);
|
|
|
|
/* dimens.c */
|
|
extern void dimstring(int *data, int length, char *retstring);
|
|
extern int atodims(char *p, int *data, int *outlength);
|
|
extern void indexstring(int *data, int length, char *retstring);
|
|
extern int incindex(int *counts, int numcounts, int *dims, int numdims);
|
|
|
|
#endif /* FTEext_h */
|