Hi! Felipe Bordeu wrote:
I have a little problem, I'm dealing functions made of matrix products.
My question is, how can "force" ginac to convert automatically all the 1by1 matrices to scalars?. or do I have to do it manually??
Here is a simple example.
void main2(){ ex m1=symbolic_matrix(1, 3, "x"); ex m2=symbolic_matrix(3, 1, "y");
cout << m1 << std::endl; cout << m2 << std::endl; ex m3 = (m1*m2).evalm(); cout << m3 << std::endl; cout << ex_to<matrix>(m3)(0,0)<< std::endl;; ex m4 = m3-ex_to<matrix>(m3)(0,0); cout << m4 << std::endl; }; the output :
[[x0,x1,x2]] [[y0],[y1],[y2]] [[y1*x1+y2*x2+y0*x0]] y1*x1+y2*x2+y0*x0 -y1*x1+[[y1*x1+y2*x2+y0*x0]]-y2*x2-y0*x0
the last line "should" be zero ?--
You'll have to do it "manually". Just write a function that replaces all 1x1 matrices with their 0,0 elements. This is of course because there is nothing special about vectors. They are just 1xn or nx1 matrices. -richy. -- Richard B. Kreckel <http://www.ginac.de/~kreckel/>