Eigenmath/prototypes.h

999 lines
19 KiB
C

// abs.cpp
void eval_abs(void);
void absval(void);
void absval_tensor(void);
void test_abs(void);
// add.cpp
void eval_add(void);
void add_terms(int n);
int cmp_terms(const void *q1, const void *q2);
int combine_terms(U **s, int n);
void push_terms(U *p);
void add();
void add_all(int k);
void subtract(void);
// adj.cpp
void eval_adj(void);
void adj(void);
void test_adj(void);
// alloc.cpp
U * alloc(void);
U * alloc_tensor(int nelem);
void gc(void);
void untag(U *p);
void alloc_mem(void);
void print_mem_info(void);
// append.cpp
void append(void);
// arccos.cpp
void eval_arccos(void);
void arccos(void);
void test_arccos(void);
// arccosh.cpp
void eval_arccosh(void);
void arccosh(void);
void test_arccosh(void);
// arcsin.cpp
void eval_arcsin(void);
void arcsin(void);
void test_arcsin(void);
// arcsinh.cpp
void eval_arcsinh(void);
void arcsinh(void);
void test_arcsinh(void);
// arctan.cpp
void eval_arctan(void);
void arctan(void);
void test_arctan(void);
// arctanh.cpp
void eval_arctanh(void);
void arctanh(void);
void test_arctanh(void);
// arg.cpp
void eval_arg(void);
void arg(void);
void yyarg(void);
void test_arg(void);
// atomize.cpp
void eval_atomize(void);
void atomize(void);
// bake.cpp
void bake(void);
void polyform(void);
void bake_poly();
void bake_poly_term(int k);
void test_bake(void);
// besselj.cpp
void eval_besselj(void);
void besselj(void);
void yybesselj(void);
void test_besselj(void);
// bessely.cpp
void eval_bessely(void);
void bessely(void);
void yybessely(void);
void test_bessely(void);
// bignum.cpp
unsigned int * mnew(int n);
void mfree(unsigned int *p);
unsigned int * mint(int n);
unsigned int * mcopy(unsigned int *a);
int ge(unsigned int *a, unsigned int *b, int len);
void add_numbers(void);
void subtract_numbers(void);
void multiply_numbers(void);
void divide_numbers(void);
void invert_number(void);
int compare_rationals(U *a, U *b);
int compare_numbers(U *a, U *b);
void negate_number(void);
void bignum_truncate(void);
void mp_numerator(void);
void mp_denominator(void);
void bignum_power_number(int expo);
double convert_bignum_to_double(unsigned int *p);
double convert_rational_to_double(U *p);
void push_integer(int n);
void push_double(double d);
void push_rational(int a, int b);
int pop_integer(void);
void print_double(U *p, int flag);
void bignum_scan_integer(char *s);
void bignum_scan_float(char *s);
void print_number(U *p);
void gcd_numbers(void);
double pop_double(void);
void bignum_float(void);
void bignum_factorial(int n);
void mp_set_bit(unsigned int *x, unsigned int k);
void mp_clr_bit(unsigned int *x, unsigned int k);
void mshiftright(unsigned int *a);
// binomial.cpp
void eval_binomial(void);
void binomial(void);
void test_binomial(void);
// ceiling.cpp
void eval_ceiling(void);
void ceiling(void);
void yyceiling(void);
void test_ceiling(void);
// choose.cpp
void eval_choose(void);
void choose(void);
int choose_check_args(void);
void test_choose(void);
// circexp.cpp
void eval_circexp(void);
void circexp(void);
void test_circexp(void);
// clear.cpp
void eval_clear(void);
void clear(void);
// clock.cpp
void eval_clock(void);
void clockform(void);
void test_clock(void);
// cmdisplay.cpp
void eval_display(void);
void cmdisplay(void);
void test_cmdisplay(void);
// coeff.cpp
void eval_coeff(void);
int coeff(void);
void test_coeff(void);
// cofactor.cpp
void eval_cofactor(void);
void cofactor(U *p, int n, int row, int col);
void test_cofactor(void);
// condense.cpp
void eval_condense(void);
void Condense(void);
void yycondense(void);
void test_condense(void);
// conj.cpp
void eval_conj(void);
void conjugate(void);
// cons.cpp
void cons(void);
// contract.cpp
void eval_contract(void);
void contract(void);
void yycontract(void);
void test_contract(void);
// cos.cpp
void eval_cos(void);
void cosine(void);
void cosine_of_angle_sum(void);
void cosine_of_angle(void);
void test_cos(void);
// cosh.cpp
void eval_cosh(void);
void ycosh(void);
void yycosh(void);
void test_cosh(void);
// data.cpp
// decomp.cpp
void eval_decomp(void);
void decomp(void);
void decomp_sum(void);
void decomp_product(void);
// define.cpp
void define_user_function(void);
// defint.cpp
void eval_defint(void);
void test_defint(void);
// degree.cpp
void eval_degree(void);
void degree(void);
void yydegree(U *p);
// denominator.cpp
void eval_denominator(void);
void denominator(void);
void test_denominator(void);
// derivative.cpp
void eval_derivative(void);
void derivative(void);
void d_scalar_scalar(void);
void d_scalar_scalar_1(void);
void dsum(void);
void dproduct(void);
void dpower(void);
void dlog(void);
void dd(void);
void dfunction(void);
void dsin(void);
void dcos(void);
void dtan(void);
void darcsin(void);
void darccos(void);
void darctan(void);
void dsinh(void);
void dcosh(void);
void dtanh(void);
void darcsinh(void);
void darccosh(void);
void darctanh(void);
void dabs(void);
void dsgn(void);
void dhermite(void);
void derf(void);
void derfc(void);
void dbesselj0(void);
void dbesseljn(void);
void dbessely0(void);
void dbesselyn(void);
void derivative_of_integral(void);
void test_derivative(void);
// det.cpp
void det(void);
void determinant(int n);
void detg(void);
void yydetg(void);
void lu_decomp(int n);
// dirac.cpp
void eval_dirac(void);
void dirac(void);
void test_dirac(void);
// display.cpp
void display(U *p);
void fixup_fraction(int x, int k1, int k2);
void displaychar(int c);
void emit_number(U *p, int emit_sign);
char * getdisplaystr(void);
void test_display(void);
// distill.cpp
void distill(void);
void distill_sum(void);
void distill_product(void);
// divisors.cpp
void divisors(void);
void divisors_onstack(void);
void test_divisors(void);
// dpow.cpp
void dpow(void);
// draw.cpp
void eval_draw(void);
void draw_main(void);
void check_for_parametric_draw(void);
void create_point_set(void);
void new_point(double t);
void get_xy(double t);
void eval_f(double t);
void fill(int i, int k, int level);
void setup_trange(void);
void setup_trange_f(void);
void setup_xrange(void);
void setup_xrange_f(void);
void setup_yrange(void);
void setup_yrange_f(void);
void emit_graph(void);
void get_xyminmax(double* xminp, double* xmaxp, double* yminp, double* ymaxp);
// dsolve.cpp
void dsolve(void);
int distilly();
// eigen.cpp
void eval_eigen(void);
void eval_eigenval(void);
void eval_eigenvec(void);
void test_eigen(void);
// erf.cpp
void eval_erf(void);
void yerf(void);
void test_erf(void);
// erfc.cpp
void eval_erfc(void);
void yerfc(void);
double erfc(double x);
void test_erfc(void);
// eval.cpp
void eval(void);
void eval_sym(void);
void eval_cons(void);
void eval_binding(void);
void eval_check(void);
void eval_det(void);
void eval_dim(void);
void eval_divisors(void);
void eval_do(void);
void eval_dsolve(void);
void eval_eval(void);
void eval_exp(void);
void eval_factorial(void);
void eval_factorpoly(void);
void eval_hermite(void);
void eval_hilbert(void);
void eval_index(void);
void eval_inv(void);
void eval_invg(void);
void eval_isinteger(void);
void eval_multiply(void);
void eval_number(void);
void eval_operator(void);
void eval_print(void);
void eval_quote(void);
void eval_rank(void);
void setq_indexed(void);
void eval_setq(void);
void eval_sqrt(void);
void eval_stop(void);
void eval_subst(void);
void eval_unit(void);
void eval_noexpand(void);
void eval_predicate(void);
// expand.cpp
void eval_expand(void);
void expand(void);
void expand_tensor(void);
void remove_negative_exponents(void);
void expand_get_C(void);
void expand_get_CF(void);
void trivial_divide(void);
void expand_get_B(void);
void expand_get_A(void);
void expand_get_AF(void);
void test_expand(void);
// expcos.cpp
void eval_expcos(void);
void expcos(void);
void test_expcos(void);
// expsin.cpp
void eval_expsin(void);
void expsin(void);
void test_expsin(void);
// factor.cpp
void eval_factor(void);
void factor_again(void);
void factor_term(void);
void factor(void);
void factor_small_number(void);
void test_factor_number(void);
// factorial.cpp
void factorial(void);
void simplifyfactorials(void);
void sfac_product(void);
void sfac_product_f(U **s, int a, int b);
// factorpoly.cpp
void factorpoly(void);
void yyfactorpoly(void);
void test_factorpoly(void);
// factors.cpp
int factors(U *p);
void push_term_factors(U *p);
// filter.cpp
void eval_filter(void);
void filter(void);
void filter_main(void);
void filter_sum(void);
void filter_tensor(void);
// find.cpp
int find(U *p, U *q);
// float.cpp
void eval_float(void);
void yyfloat(void);
void test_float(void);
// floor.cpp
void eval_floor(void);
void yfloor(void);
void yyfloor(void);
void test_floor(void);
// for.cpp
void eval_for(void);
// gamma.cpp
void eval_gamma(void);
void gamma(void);
void test_gamma(void);
// gcd.cpp
void eval_gcd(void);
void gcd(void);
void gcd_main(void);
void gcd_expr_expr(void);
void gcd_expr(U *p);
void gcd_term_term(void);
void gcd_term_factor(void);
void gcd_factor_term(void);
void test_gcd(void);
// guess.cpp
void guess(void);
// hermite.cpp
void hermite(void);
void yyhermite(void);
void yyhermite2(int n);
void test_hermite(void);
// hilbert.cpp
void hilbert(void);
// history.cpp
void update_cmd_history(char *s);
void do_up_arrow(void);
void do_down_arrow(void);
char * get_cmd_history(void);
// imag.cpp
void eval_imag(void);
void imag(void);
void test_imag(void);
// index.cpp
void index_function(int n);
void set_component(int n);
void test_index(void);
// init.cpp
void init(void);
void defn(void);
// inner.cpp
void eval_inner(void);
void inner(void);
void test_inner(void);
// integral.cpp
void eval_integral(void);
void integral(void);
void integral_of_sum(void);
void integral_of_product(void);
void integral_of_form(void);
// inv.cpp
void inv(void);
void invg(void);
void yyinvg(void);
void decomp(int n);
// is.cpp
int iszero(U *p);
int isnegativenumber(U *p);
int isplusone(U *p);
int isminusone(U *p);
int isinteger(U *p);
int isnonnegativeinteger(U *p);
int isposint(U *p);
int ispoly(U *p, U *x);
int ispoly_expr(U *p, U *x);
int ispoly_term(U *p, U *x);
int ispoly_factor(U *p, U *x);
int isnegativeterm(U *p);
int isimaginarynumber(U *p);
int iscomplexnumber(U *p);
int iseveninteger(U *p);
int isnegative(U *p);
int issymbolic(U *p);
int isintegerfactor(U *p);
int isoneover(U *p);
int isfraction(U *p);
int equaln(U *p, int n);
int equalq(U *p, int a, int b);
int isoneoversqrttwo(U *p);
int isminusoneoversqrttwo(U *p);
int isfloating(U *p);
int isimaginaryunit(U *p);
int isquarterturn(U *p);
int isnpi(U *p);
// isprime.cpp
void eval_isprime(void);
void test_isprime(void);
// itab.cpp
// itest.cpp
void test_integral(void);
// laguerre.cpp
void eval_laguerre(void);
void laguerre(void);
void laguerre2(int n);
void test_laguerre(void);
// laplace.cpp
void eval_laplace(void);
void laplace(void);
void laplace_main(void);
void test_laplace(void);
// lcm.cpp
void eval_lcm(void);
void lcm(void);
void yylcm(void);
void test_lcm(void);
// leading.cpp
void eval_leading(void);
void leading(void);
// legendre.cpp
void eval_legendre(void);
void legendre(void);
void test_legendre(void);
// list.cpp
void list(int n);
// log.cpp
void eval_log(void);
void logarithm(void);
void yylog(void);
void test_log(void);
// madd.cpp
unsigned int * madd(unsigned int *a, unsigned int *b);
unsigned int * msub(unsigned int *a, unsigned int *b);
void test_madd(void);
void test_maddf(int na, int nb, int nc);
void test_msub(void);
void test_msubf(int na, int nb, int nc);
// mag.cpp
void eval_mag(void);
void mag(void);
void yymag(void);
void test_mag(void);
// main.cpp
int main();
void clear_term();
void eval_display(void);
void printstr(char *s);
void printchar(int c);
void printchar_nowrap(int c);
void set_has_drawn(int val);
void eval_sample(void);
// mcmp.cpp
int mcmp(unsigned int *a, unsigned int *b);
int mcmpint(unsigned int *a, int n);
void test_mcmp(void);
// mfactor.cpp
unsigned int * mfactor(unsigned int *n);
void test_mfactor(void);
// mgcd.cpp
unsigned int * mgcd(unsigned int *u, unsigned int *v);
void test_mgcd(void);
// mini-test.cpp
void mini_test(void);
// misc.cpp
void new_string(char *s);
void out_of_memory(void);
void push_zero_matrix(int i, int j);
void push_identity_matrix(int n);
void push_cars(U *p);
void peek(void);
void peek2(void);
int equal(U *p1, U *p2);
int lessp(U *p1, U *p2);
int sign(int n);
int cmp_expr(U *p1, U *p2);
int length(U *p);
U * unique(U *p);
void check_endianess(void);
void ssqrt(void);
void yyexpand(void);
void exponential(void);
void square(void);
void sort_stack(int n);
// mmodpow.cpp
unsigned int * mmodpow(unsigned int *x, unsigned int *n, unsigned int *m);
void test_mmodpow(void);
// mmul.cpp
unsigned int * mmul(unsigned int *a, unsigned int *b);
unsigned int * mdiv(unsigned int *a, unsigned int *b);
unsigned int * mmod(unsigned int *a, unsigned int *b);
void mdivrem(unsigned int **q, unsigned int **r, unsigned int *a, unsigned int *b);
void test_mmul(void);
void test_mdiv(void);
void test_mmod(void);
// mod.cpp
void eval_mod(void);
void mod(void);
void test_mod(void);
// mpow.cpp
unsigned int * mpow(unsigned int *a, unsigned int n);
void test_mpow(void);
// mprime.cpp
int mprime(unsigned int *n);
void test_mprime(void);
// mroot.cpp
unsigned int * mroot(unsigned int *n, unsigned int index);
void test_mroot(void);
// mscan.cpp
unsigned int * mscan(char *s);
// msqrt.cpp
unsigned int * msqrt(unsigned int *n);
void test_msqrt(void);
// mstr.cpp
char * mstr(unsigned int *a);
// multiply.cpp
void multiply(void);
void yymultiply(void);
void combine_factors(int h);
void multiply_noexpand(void);
void multiply_all(int n);
void multiply_all_noexpand(int n);
void divide(void);
void inverse(void);
void reciprocate(void);
void negate(void);
void negate_expand(void);
void negate_noexpand(void);
void test_multiply(void);
// nroots.cpp
void eval_nroots(void);
void monic(int n);
void findroot(int n);
void compute_fa(int n);
void divpoly(int n);
void test_nroots(void);
// numerator.cpp
void eval_numerator(void);
void numerator(void);
void test_numerator(void);
// outer.cpp
void eval_outer(void);
void outer(void);
void yyouter(void);
void test_outer(void);
// partition.cpp
void partition(void);
// polar.cpp
void eval_polar(void);
void polar(void);
void test_polar(void);
// pollard.cpp
void factor_number(void);
void factor_a(void);
void try_kth_prime(int k);
int factor_b(void);
void push_factor(unsigned int *d, int count);
// power.cpp
void eval_power(void);
void power(void);
void yypower(void);
void power_sum(int n);
void multinomial_sum(int k, int n, int *a, int i, int m);
int simplify_polar(void);
void test_power(void);
// prime.cpp
void eval_prime(void);
void prime(void);
// primetab.cpp
// print.cpp
//char* get_tex_flag_address();
void print(U *p);
void printline(U *p);
void print_subexpr(U *p);
void print_expr(U *p);
int sign_of_term(U *p);
void print_a_over_b(U *p);
void print_term(U *p);
void print_denom(U *p, int d);
void print_factor(U *p);
void print_index_function(U *p);
void print_factorial_function(U *p);
void print_tensor(U *p);
void print_tensor_inner(U *p, int j, int *k);
void print_str(char *s);
void print_char(int c);
void print_function_definition(U *p);
void print_arg_list(U *p);
void print_lisp(U *p);
void print1(U *p);
void print_multiply_sign(void);
int is_denominator(U *p);
int any_denominators(U *p);
// product.cpp
void eval_product(void);
// qadd.cpp
void qadd(void);
// qdiv.cpp
void qdiv(void);
// qmul.cpp
void qmul(void);
// qpow.cpp
void qpow();
// qsub.cpp
void qsub(void);
// quickfactor.cpp
void quickfactor(void);
void test_quickfactor(void);
// quotient.cpp
void eval_quotient(void);
void divpoly(void);
void test_quotient(void);
// rationalize.cpp
void eval_rationalize(void);
void rationalize(void);
void yyrationalize(void);
void test_rationalize(void);
// real.cpp
void eval_real(void);
void real(void);
void test_real(void);
// rect.cpp
void eval_rect(void);
void rect(void);
void test_rect(void);
// rewrite.cpp
void rewrite(void);
void rewrite_tensor(void);
// roots.cpp
void eval_roots(void);
void roots(void);
void test_roots(void);
// run.cpp
void stop(char *s);
void run(char *s);
void check_stack(void);
void echo_input(char *s);
void top_level_eval(void);
void check_esc_flag(void);
// scan.cpp
int scan(char *s);
int scan_meta(char *s);
void scan_stmt(void);
void scan_relation(void);
void scan_expression(void);
int is_factor(void);
void scan_term(void);
void scan_power(void);
void scan_factor(void);
void scan_symbol(void);
void scan_string(void);
void scan_function_call(void);
void scan_subexpr(void);
void error(char *errmsg);
void build_tensor(int n);
void get_next_token();
void get_token(void);
void update_token_buf(char *a, char *b);
void test_scan(void);
// selftest.cpp
void selftest(void);
void logout(char *s);
void errout(void);
void test(char *file, char **s, int n);
void test_low_level(void);
// sgn.cpp
void eval_sgn(void);
void sgn(void);
void yysgn(void);
void test_sgn(void);
// simfac.cpp
void eval_simfac(void);
void simfac(void);
void simfac(void);
// simplify.cpp
void eval_simplify(void);
void simplify(void);
void simplify_main(void);
void simplify_trig(void);
void test_simplify(void);
// sin.cpp
void eval_sin(void);
void sine(void);
void sine_of_angle_sum(void);
void sine_of_angle(void);
void test_sin(void);
// sinh.cpp
void eval_sinh(void);
void ysinh(void);
void yysinh(void);
void test_sinh(void);
// stack.cpp
void push(U *p);
U * pop();
void push_frame(int n);
void pop_frame(int n);
void save(void);
void restore(void);
void swap(void);
void dupl(void);
// subst.cpp
void subst(void);
// sum.cpp
void eval_sum(void);
// symbol.cpp
void std_symbol(char *s, int n);
U * usr_symbol(char *s);
char * get_printname(U *p);
void set_binding(U *p, U *q);
U * get_binding(U *p);
void set_binding_and_arglist(U *p, U *q, U *r);
U * get_arglist(U *p);
int symnum(U *p);
void push_symbol(int k);
void clear_symbols(void);
// tan.cpp
void eval_tan(void);
void tangent(void);
void yytangent(void);
void test_tan(void);
// tanh.cpp
void eval_tanh(void);
void test_tanh(void);
// taylor.cpp
void eval_taylor(void);
void taylor(void);
void test_taylor(void);
// tensor.cpp
void eval_tensor(void);
void tensor_plus_tensor(void);
void tensor_times_scalar(void);
void scalar_times_tensor(void);
int is_square_matrix(U *p);
void d_tensor_tensor(void);
void d_scalar_tensor(void);
void d_tensor_scalar(void);
int compare_tensors(U *p1, U *p2);
void power_tensor(void);
void copy_tensor(void);
void test_tensor(void);
// test.cpp
void eval_test(void);
void eval_testeq(void);
void eval_testge(void);
void eval_testgt(void);
void eval_testle(void);
void eval_testlt(void);
void eval_not(void);
void eval_and(void);
void eval_or(void);
int cmp_args(void);
void test_test(void);
// transform.cpp
void transform(char **s);
int f_equals_a(int h);
// transpose.cpp
void eval_transpose(void);
void transpose(void);
void test_transpose(void);
// userfunc.cpp
void eval_user_function(void);
int rewrite_args(void);
int rewrite_args_tensor(void);
// variables.cpp
void variables(void);
// vectorize.cpp
void vectorize(int n);
// window.cpp
void printchar_nowrap(int c);
void printchar(int c);
void printstr(char *s);
void clear_term(void);
void shipout(unsigned char *d, int w, int h);
void draw_display(void);
char * get_tty_buf(void);
// zero.cpp
void eval_zero(void);
void test_zero(void);
// random.cpp - by gbl08ma
void eval_random(void);
void randomnum(void);