Sindbad~EG File Manager
/* M. Beeson, for Mathpert.
Module 'automode' consists of:
postops,preops,cflags,autosimp,autotrig,autosum
autocalc,autoeqn,autoeqns,autoineq,
Public interface to the module:
*/
int opcommand(int,int);
void set_control_flags(int,int); /* cflags.c */
int one_step(PDOCDATA, term *, char *, operation *);
int in_loop(term,operation);
int contains_constofint(term t);
void unpack_flags(int);
void pack_flags(int);
int get_activeline(void);
int contains_bound_vars(term t);
int get_indenomflag(void);
int get_intflag(void);
int get_innumflag(void);
int get_difflag(void);
int get_indexsumflag(void);
int get_seriesflag(void);
int trigfunctor(unsigned short);
int contextsensitive(actualop);
int stop_apart(term t);
int numerical_sum(term t);
void init_optable(void);
/* Functions private to the module: */
void select_trigeval_op(int flag, term t, actualop *o, int *nops);
int block_squareeqn2(term t);
void set_trigflag(term, unsigned short *);
void set_hypertrigflag(term, unsigned short *);
void pre_ops(term, actualop *, int *);
void pre_product(term, actualop *, int *);
void post_ops(term t, term *arg, actualop *o, int *nops);
void autosum(term, actualop *, int *);
void autoproduct(term, actualop *, int *);
void autotrig(term t,actualop *o, int *nops);
#define TRIGFUNCTOR2(f) (ACOS <= (f) && (f) <= COT) /* used in automode.c */
#define TRIGINDEX(f) ((f) - ACOS)
#define TRIGCONTAINS(flag,f) ((1 << TRIGINDEX(f)) & (flag))
#define ARCTRIGSPRESENT(flag) ((flag) & 0x003f) /* check rightmost 6 bits */
#define FACTORFLAG (((factorflag & 1) && innumflag) || ((factorflag & 0x10) && indenomflag) || (factorflag & 0x100))
#define DISTRIB ((!SOLVETYPE(problemtype) && !limitflag && ((indenomflag && (expandflag & 0x10)) || ( innumflag && (expandflag & 1)) || (!innumflag && !indenomflag && (expandflag & 0x100)) || (intflag && !indenomflag)) && !comdenomflag) || (SOLVETYPE(problemtype) && !FACTORFLAG))
/* used to include this in DISTRIB: || (problemtype > LIMITS && !indenomflag)
but took it out to prevent using distriblaw after differentiating
(x^3-2x+1)^111 ; used to have difflag where expandflag is, but
we don't want to distribute before differentiating (6t^2 +5)^3(t^3-7)^4 */
#define EXPANDFLAG (expandflag & 0x0100 || ((expandflag & 0x0001) && innumflag) || ((expandflag & 0x0010) && indenomflag))
void solve_linear_equations(term, term *, int, actualop *, int *); /* autoeqns.c */
void solve_by_substitution(term, term *, int, actualop *, int *); /* autoeqns.c */
void solve_matrix_equation(term, term *, int, actualop *, int *); /* autoeqn.c */
void solve_equation(term, int, actualop *, int *); /* autoeqn.c */
void pre_equation(term, actualop *, int *);
void pre_ineq(term, actualop *, int *);
void solve_ineq(term, int, actualop *, int *); /* autoineq.c */
int attractible(term, term);
void autotrig(term t,actualop *o, int *nops); /* autotrig.c */
void autosum(term t,actualop *o, int *nops); /* autosum.c */
void autoproduct(term t,actualop *o, int *nops); /* autosum.c */
int suppress_factoring(int,int); /* preops.c */
int sqrtexp_conditions(term); /* postops, also called in preops */
int intsub_in_preops(term, term); /* preops, also called in autocalc */
void determine_trigexpandflag(term); /* autosimp, called also in ssolve */
void set_checked(void); /* autosimp, called also in exec */
void set_prime(term);
unsigned nbits(unsigned short);
int use_logdif(term,term); /* autocalc.c */
int ftrig(term,term);
int possible_trigsub(term,term);
int is_sincos(term,term); /* autocalc.c */
int get_limitflag(void);
int get_limfractflag(void);
int get_inpowerflag(void);
int get_insqrtflag(void);
int get_inrootflag(void);
int get_infractexpflag(void);
int get_inlogflag(void);
int pulloutrational_aux(term num, term denom);
int sqrtcomdenom(term); /* preops */
int hypertrigindex(unsigned short f);
int hyperindicates(unsigned short flag, unsigned short f);
int contains_hypertrig(term t);
void set_hflag(int);
int get_hflag(void);
int contains_double(term t);
#define INDICATES(trigflag,f) ((trigflag) & (1 << TRIGINDEX(f)))
actualop factorops(int); /* factor.c */
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists