After loading "vect", you may remove commutivity from "." with the command
(c1) remove(".", commutative);
In Maxima and Macsyma, atoms can be declared to be nonscalar, but there is
no way
to distinguish "simple vectors" (vectors with scalar components) from
matrices;
computations involving atoms that are matrices (where "." isn't
commutative) and
simple vectors (where "." is commutative) isn't supported. I've written
parts of a new vector
package that declares a feature "vector" that allows symbolic computations
involving matrices and vectors. (I've forgotten the details, but Maxima's
vect package
doesn't always simplify terms involving the cross and dot products that
should vanish
to zero). Someday, I'll finish my code, but don't hold your breath.
Additionally, under
Maxima, the crossproduct misbehaves for vectors that aren't simple (it uses
"*" for
the product).
Macsyma Inc Macsyma's vect package had (or has) a option variable
simple_vector_p that if true made Macsyma assume that each component of a
vector was scalar; maxima doesn't have this option.
blw