At 18:23 -0800 1/4/07, Dave Whipp wrote: >Darren Duncan wrote: > >>For example, the extra space of putting them aside will let us expand them to >>make them more thorough, such as dealing well with exact vs inexact, fixed vs >>infinite length, fuzzy or interval based vs not, caring about sigfigs or not, >>real vs complex vs quaternon, etc. > >I agree with the general idea that this is non core (from an implementatin >perspective); but one thing struck me here (slightly off topic, but not too >far): a quaternion cannot be a Num because anyone using a "Num" will assume >that multiplication is commutative (for quaternions, $a*$b != $b*$a).
Complex is truly a kind of number even though it has two dimensions, sort of. Completeness in the sense that every number has a square root is an argument for including them in the core. Quaternions are much more like vectors - real ones - where we have been before. Those array operators which I first thought were going to be real vector operators like cross and dot product are confusing enough. I think of a quarternion as a unit vector with an extra component for length. Aren't there two kinds of multiplication for them? Vectors, matrices, tensors, and symmetry groups should not be core but the procedures for overloading operators so that they can be implemented as add-ins should be ready to use and easy for a simple-minded mathematician to implement. -- --> If it's not on fire it's a software problem. <--