[Main]
Name=push_matrix_product
Type=Function
Subtype=ROM Call
Header Files=basop.h
Definition=void push_matrix_product (CESI ptr1, CESI ptr2);
MinAMS=1.01

[ROM Call]
Index=$3C5

[Description]
Executes TI-Basic '*' operator for matrices.

[Explanation]
Assuming that <I>ptr1</I> and <I>ptr2</I> point to tags of two matrices
(which are, in fact, lists of equally sized lists), push_matrix_product pushes
the matrix product of these two matrices to the
expression stack. As the matrix product is not comutative, the matrix pointed
to by <I>ptr1</I> is assumed to be the first factor. If the matrices are not
compatible for multiplying, an error will be thrown.
If <I>ptr1</I> or <I>ptr2</I> don't point to matrices, the behavior
is unpredictable.

[References]
In=basop.h/push_equals, basop.h/push_greater_than, basop.h/push_greater_than_or_equals, basop.h/push_less_than, basop.h/push_less_than_or_equals, basop.h/push_list_times, basop.h/push_not_equals, basfunc.h/did_push_anti_deriv, basfunc.h/push_1st_derivative, basfunc.h/push_csolve, basfunc.h/push_czeros, basfunc.h/push_def_int, basfunc.h/push_desolve, basfunc.h/push_lim, basfunc.h/push_max, basfunc.h/push_min, basfunc.h/push_nsolve, basfunc.h/push_solve, basfunc.h/push_zeros, unknown.h/get_ub, unknown.h/push_sq_matrix_to_whole_number
Out=basop.h/push_product, estack.h/delete_between, estack.h/push_quantum, estack.h/top_estack, unknown.h/get_matrix_indices, unknown.h/push0, unknown.h/replace_top2_with_sum
Out_EV_eventLoop=1
