4 void absval_tensor(void);
10 int cmp_terms(const void *q1
, const void *q2
);
11 int combine_terms(U
**s
, int n
);
12 void push_terms(U
*p
);
24 U
* alloc_tensor(int nelem
);
28 void print_mem_info(void);
34 void eval_arccos(void);
36 void test_arccos(void);
39 void eval_arccosh(void);
41 void test_arccosh(void);
44 void eval_arcsin(void);
46 void test_arcsin(void);
49 void eval_arcsinh(void);
51 void test_arcsinh(void);
54 void eval_arctan(void);
56 void test_arctan(void);
59 void eval_arctanh(void);
61 void test_arctanh(void);
70 void eval_atomize(void);
77 void bake_poly_term(int k
);
81 void eval_besselj(void);
84 void test_besselj(void);
87 void eval_bessely(void);
90 void test_bessely(void);
93 unsigned int * mnew(int n
);
94 void mfree(unsigned int *p
);
95 unsigned int * mint(int n
);
96 unsigned int * mcopy(unsigned int *a
);
97 int ge(unsigned int *a
, unsigned int *b
, int len
);
98 void add_numbers(void);
99 void subtract_numbers(void);
100 void multiply_numbers(void);
101 void divide_numbers(void);
102 void invert_number(void);
103 int compare_rationals(U
*a
, U
*b
);
104 int compare_numbers(U
*a
, U
*b
);
105 void negate_number(void);
106 void bignum_truncate(void);
107 void mp_numerator(void);
108 void mp_denominator(void);
109 void bignum_power_number(int expo
);
110 double convert_bignum_to_double(unsigned int *p
);
111 double convert_rational_to_double(U
*p
);
112 void push_integer(int n
);
113 void push_double(double d
);
114 void push_rational(int a
, int b
);
115 int pop_integer(void);
116 void print_double(U
*p
, int flag
);
117 void bignum_scan_integer(char *s
);
118 void bignum_scan_float(char *s
);
119 void print_number(U
*p
);
120 void gcd_numbers(void);
121 double pop_double(void);
122 void bignum_float(void);
123 void bignum_factorial(int n
);
124 void mp_set_bit(unsigned int *x
, unsigned int k
);
125 void mp_clr_bit(unsigned int *x
, unsigned int k
);
126 void mshiftright(unsigned int *a
);
129 void eval_binomial(void);
131 void test_binomial(void);
134 void eval_ceiling(void);
136 void yyceiling(void);
137 void test_ceiling(void);
140 void eval_choose(void);
142 int choose_check_args(void);
143 void test_choose(void);
146 void eval_circexp(void);
148 void test_circexp(void);
151 void eval_clear(void);
155 void eval_clock(void);
156 void clockform(void);
157 void test_clock(void);
160 void eval_display(void);
161 void cmdisplay(void);
162 void test_cmdisplay(void);
165 void eval_coeff(void);
167 void test_coeff(void);
170 void eval_cofactor(void);
171 void cofactor(U
*p
, int n
, int row
, int col
);
172 void test_cofactor(void);
175 void eval_condense(void);
177 void yycondense(void);
178 void test_condense(void);
181 void eval_conj(void);
182 void conjugate(void);
188 void eval_contract(void);
190 void yycontract(void);
191 void test_contract(void);
196 void cosine_of_angle_sum(void);
197 void cosine_of_angle(void);
201 void eval_cosh(void);
204 void test_cosh(void);
209 void eval_decomp(void);
211 void decomp_sum(void);
212 void decomp_product(void);
215 void define_user_function(void);
218 void eval_defint(void);
219 void test_defint(void);
222 void eval_degree(void);
227 void eval_denominator(void);
228 void denominator(void);
229 void test_denominator(void);
232 void eval_derivative(void);
233 void derivative(void);
234 void d_scalar_scalar(void);
235 void d_scalar_scalar_1(void);
241 void dfunction(void);
259 void dbesselj0(void);
260 void dbesseljn(void);
261 void dbessely0(void);
262 void dbesselyn(void);
263 void derivative_of_integral(void);
264 void test_derivative(void);
268 void determinant(int n
);
271 void lu_decomp(int n
);
274 void eval_dirac(void);
276 void test_dirac(void);
280 void fixup_fraction(int x
, int k1
, int k2
);
281 void displaychar(int c
);
282 void emit_number(U
*p
, int emit_sign
);
283 char * getdisplaystr(void);
284 void test_display(void);
288 void distill_sum(void);
289 void distill_product(void);
293 void divisors_onstack(void);
294 void test_divisors(void);
300 void eval_draw(void);
301 void draw_main(void);
302 void check_for_parametric_draw(void);
303 void create_point_set(void);
304 void new_point(double t
);
305 void get_xy(double t
);
306 void eval_f(double t
);
307 void fill(int i
, int k
, int level
);
308 void setup_trange(void);
309 void setup_trange_f(void);
310 void setup_xrange(void);
311 void setup_xrange_f(void);
312 void setup_yrange(void);
313 void setup_yrange_f(void);
314 void emit_graph(void);
315 void get_xyminmax(double* xminp
, double* xmaxp
, double* yminp
, double* ymaxp
);
322 void eval_eigen(void);
323 void eval_eigenval(void);
324 void eval_eigenvec(void);
325 void test_eigen(void);
333 void eval_erfc(void);
335 double erfc(double x
);
336 void test_erfc(void);
341 void eval_cons(void);
342 void eval_binding(void);
343 void eval_check(void);
346 void eval_divisors(void);
348 void eval_dsolve(void);
349 void eval_eval(void);
351 void eval_factorial(void);
352 void eval_factorpoly(void);
353 void eval_hermite(void);
354 void eval_hilbert(void);
355 void eval_index(void);
357 void eval_invg(void);
358 void eval_isinteger(void);
359 void eval_multiply(void);
360 void eval_number(void);
361 void eval_operator(void);
362 void eval_print(void);
363 void eval_quote(void);
364 void eval_rank(void);
365 void setq_indexed(void);
366 void eval_setq(void);
367 void eval_sqrt(void);
368 void eval_stop(void);
369 void eval_subst(void);
370 void eval_unit(void);
371 void eval_noexpand(void);
372 void eval_predicate(void);
375 void eval_expand(void);
377 void expand_tensor(void);
378 void remove_negative_exponents(void);
379 void expand_get_C(void);
380 void expand_get_CF(void);
381 void trivial_divide(void);
382 void expand_get_B(void);
383 void expand_get_A(void);
384 void expand_get_AF(void);
385 void test_expand(void);
388 void eval_expcos(void);
390 void test_expcos(void);
393 void eval_expsin(void);
395 void test_expsin(void);
398 void eval_factor(void);
399 void factor_again(void);
400 void factor_term(void);
402 void factor_small_number(void);
403 void test_factor_number(void);
406 void factorial(void);
407 void simplifyfactorials(void);
408 void sfac_product(void);
409 void sfac_product_f(U
**s
, int a
, int b
);
412 void factorpoly(void);
413 void yyfactorpoly(void);
414 void test_factorpoly(void);
418 void push_term_factors(U
*p
);
421 void eval_filter(void);
423 void filter_main(void);
424 void filter_sum(void);
425 void filter_tensor(void);
428 int find(U
*p
, U
*q
);
431 void eval_float(void);
433 void test_float(void);
436 void eval_floor(void);
439 void test_floor(void);
445 void eval_gamma(void);
447 void test_gamma(void);
453 void gcd_expr_expr(void);
455 void gcd_term_term(void);
456 void gcd_term_factor(void);
457 void gcd_factor_term(void);
465 void yyhermite(void);
466 void yyhermite2(int n
);
467 void test_hermite(void);
473 void update_cmd_history(char *s
);
474 void do_up_arrow(void);
475 void do_down_arrow(void);
476 char * get_cmd_history(void);
479 void eval_imag(void);
481 void test_imag(void);
484 void index_function(int n
);
485 void set_component(int n
);
486 void test_index(void);
493 void eval_inner(void);
495 void test_inner(void);
498 void eval_integral(void);
500 void integral_of_sum(void);
501 void integral_of_product(void);
502 void integral_of_form(void);
512 int isnegativenumber(U
*p
);
514 int isminusone(U
*p
);
516 int isnonnegativeinteger(U
*p
);
518 int ispoly(U
*p
, U
*x
);
519 int ispoly_expr(U
*p
, U
*x
);
520 int ispoly_term(U
*p
, U
*x
);
521 int ispoly_factor(U
*p
, U
*x
);
522 int isnegativeterm(U
*p
);
523 int isimaginarynumber(U
*p
);
524 int iscomplexnumber(U
*p
);
525 int iseveninteger(U
*p
);
526 int isnegative(U
*p
);
527 int issymbolic(U
*p
);
528 int isintegerfactor(U
*p
);
530 int isfraction(U
*p
);
531 int equaln(U
*p
, int n
);
532 int equalq(U
*p
, int a
, int b
);
533 int isoneoversqrttwo(U
*p
);
534 int isminusoneoversqrttwo(U
*p
);
535 int isfloating(U
*p
);
536 int isimaginaryunit(U
*p
);
537 int isquarterturn(U
*p
);
541 void eval_isprime(void);
542 void test_isprime(void);
547 void test_integral(void);
550 void eval_laguerre(void);
552 void laguerre2(int n
);
553 void test_laguerre(void);
556 void eval_laplace(void);
558 void laplace_main(void);
559 void test_laplace(void);
568 void eval_leading(void);
572 void eval_legendre(void);
574 void test_legendre(void);
581 void logarithm(void);
586 unsigned int * madd(unsigned int *a
, unsigned int *b
);
587 unsigned int * msub(unsigned int *a
, unsigned int *b
);
588 void test_madd(void);
589 void test_maddf(int na
, int nb
, int nc
);
590 void test_msub(void);
591 void test_msubf(int na
, int nb
, int nc
);
602 void eval_display(void);
603 void printstr(char *s
);
604 void printchar(int c
);
605 void printchar_nowrap(int c
);
606 void set_has_drawn(int val
);
607 void eval_sample(void);
610 int mcmp(unsigned int *a
, unsigned int *b
);
611 int mcmpint(unsigned int *a
, int n
);
612 void test_mcmp(void);
615 unsigned int * mfactor(unsigned int *n
);
616 void test_mfactor(void);
619 unsigned int * mgcd(unsigned int *u
, unsigned int *v
);
620 void test_mgcd(void);
623 void mini_test(void);
626 void new_string(char *s
);
627 void out_of_memory(void);
628 void push_zero_matrix(int i
, int j
);
629 void push_identity_matrix(int n
);
630 void push_cars(U
*p
);
633 int equal(U
*p1
, U
*p2
);
634 int lessp(U
*p1
, U
*p2
);
636 int cmp_expr(U
*p1
, U
*p2
);
639 void check_endianess(void);
642 void exponential(void);
644 void sort_stack(int n
);
647 unsigned int * mmodpow(unsigned int *x
, unsigned int *n
, unsigned int *m
);
648 void test_mmodpow(void);
651 unsigned int * mmul(unsigned int *a
, unsigned int *b
);
652 unsigned int * mdiv(unsigned int *a
, unsigned int *b
);
653 unsigned int * mmod(unsigned int *a
, unsigned int *b
);
654 void mdivrem(unsigned int **q
, unsigned int **r
, unsigned int *a
, unsigned int *b
);
655 void test_mmul(void);
656 void test_mdiv(void);
657 void test_mmod(void);
665 unsigned int * mpow(unsigned int *a
, unsigned int n
);
666 void test_mpow(void);
669 int mprime(unsigned int *n
);
670 void test_mprime(void);
673 unsigned int * mroot(unsigned int *n
, unsigned int index
);
674 void test_mroot(void);
677 unsigned int * mscan(char *s
);
680 unsigned int * msqrt(unsigned int *n
);
681 void test_msqrt(void);
684 char * mstr(unsigned int *a
);
688 void yymultiply(void);
689 void combine_factors(int h
);
690 void multiply_noexpand(void);
691 void multiply_all(int n
);
692 void multiply_all_noexpand(int n
);
695 void reciprocate(void);
697 void negate_expand(void);
698 void negate_noexpand(void);
699 void test_multiply(void);
702 void eval_nroots(void);
704 void findroot(int n
);
705 void compute_fa(int n
);
707 void test_nroots(void);
710 void eval_numerator(void);
711 void numerator(void);
712 void test_numerator(void);
715 void eval_outer(void);
718 void test_outer(void);
721 void partition(void);
724 void eval_polar(void);
726 void test_polar(void);
729 void factor_number(void);
731 void try_kth_prime(int k
);
733 void push_factor(unsigned int *d
, int count
);
736 void eval_power(void);
739 void power_sum(int n
);
740 void multinomial_sum(int k
, int n
, int *a
, int i
, int m
);
741 int simplify_polar(void);
742 void test_power(void);
745 void eval_prime(void);
751 //char* get_tex_flag_address();
753 void printline(U
*p
);
754 void print_subexpr(U
*p
);
755 void print_expr(U
*p
);
756 int sign_of_term(U
*p
);
757 void print_a_over_b(U
*p
);
758 void print_term(U
*p
);
759 void print_denom(U
*p
, int d
);
760 void print_factor(U
*p
);
761 void print_index_function(U
*p
);
762 void print_factorial_function(U
*p
);
763 void print_tensor(U
*p
);
764 void print_tensor_inner(U
*p
, int j
, int *k
);
765 void print_str(char *s
);
766 void print_char(int c
);
767 void print_function_definition(U
*p
);
768 void print_arg_list(U
*p
);
769 void print_lisp(U
*p
);
771 void print_multiply_sign(void);
772 int is_denominator(U
*p
);
773 int any_denominators(U
*p
);
776 void eval_product(void);
794 void quickfactor(void);
795 void test_quickfactor(void);
798 void eval_quotient(void);
800 void test_quotient(void);
803 void eval_rationalize(void);
804 void rationalize(void);
805 void yyrationalize(void);
806 void test_rationalize(void);
809 void eval_real(void);
811 void test_real(void);
814 void eval_rect(void);
816 void test_rect(void);
820 void rewrite_tensor(void);
823 void eval_roots(void);
825 void test_roots(void);
830 void check_stack(void);
831 void echo_input(char *s
);
832 void top_level_eval(void);
833 void check_esc_flag(void);
837 int scan_meta(char *s
);
838 void scan_stmt(void);
839 void scan_relation(void);
840 void scan_expression(void);
842 void scan_term(void);
843 void scan_power(void);
844 void scan_factor(void);
845 void scan_symbol(void);
846 void scan_string(void);
847 void scan_function_call(void);
848 void scan_subexpr(void);
849 void error(char *errmsg
);
850 void build_tensor(int n
);
851 void get_next_token();
852 void get_token(void);
853 void update_token_buf(char *a
, char *b
);
854 void test_scan(void);
858 void logout(char *s
);
860 void test(char *file
, char **s
, int n
);
861 void test_low_level(void);
870 void eval_simfac(void);
875 void eval_simplify(void);
877 void simplify_main(void);
878 void simplify_trig(void);
879 void test_simplify(void);
884 void sine_of_angle_sum(void);
885 void sine_of_angle(void);
889 void eval_sinh(void);
892 void test_sinh(void);
897 void push_frame(int n
);
898 void pop_frame(int n
);
911 void std_symbol(char *s
, int n
);
912 U
* usr_symbol(char *s
);
913 char * get_printname(U
*p
);
914 void set_binding(U
*p
, U
*q
);
915 U
* get_binding(U
*p
);
916 void set_binding_and_arglist(U
*p
, U
*q
, U
*r
);
917 U
* get_arglist(U
*p
);
919 void push_symbol(int k
);
920 void clear_symbols(void);
925 void yytangent(void);
929 void eval_tanh(void);
930 void test_tanh(void);
933 void eval_taylor(void);
935 void test_taylor(void);
938 void eval_tensor(void);
939 void tensor_plus_tensor(void);
940 void tensor_times_scalar(void);
941 void scalar_times_tensor(void);
942 int is_square_matrix(U
*p
);
943 void d_tensor_tensor(void);
944 void d_scalar_tensor(void);
945 void d_tensor_scalar(void);
946 int compare_tensors(U
*p1
, U
*p2
);
947 void power_tensor(void);
948 void copy_tensor(void);
949 void test_tensor(void);
952 void eval_test(void);
953 void eval_testeq(void);
954 void eval_testge(void);
955 void eval_testgt(void);
956 void eval_testle(void);
957 void eval_testlt(void);
962 void test_test(void);
965 void transform(char **s
);
966 int f_equals_a(int h
);
969 void eval_transpose(void);
970 void transpose(void);
971 void test_transpose(void);
974 void eval_user_function(void);
975 int rewrite_args(void);
976 int rewrite_args_tensor(void);
979 void variables(void);
982 void vectorize(int n
);
985 void printchar_nowrap(int c
);
986 void printchar(int c
);
987 void printstr(char *s
);
988 void clear_term(void);
989 void shipout(unsigned char *d
, int w
, int h
);
990 void draw_display(void);
991 char * get_tty_buf(void);
994 void eval_zero(void);
995 void test_zero(void);
997 // random.cpp - by gbl08ma
998 void eval_random(void);
999 void randomnum(void);