Bill Page <[email protected]> writes:

| Waldek, Ralf,
| 
| Although as I said, I do not like to call the map x+->[x,x] a
| "coercion" (and it's associated "retraction") I have problems
| justifying denying it formally.  It seems to satisfy all the
| requirements as I understand them. (We've discussed the requirements
| previously and there are some relevant pages on the Axiom wiki.) I
| think that
| 
|   if R has SetCategory then FullyRetractableTo R
| 
| is true under our normal understanding of these terms and
| FullyRetractableTo(R) exports coerce:R->%. Also as Ralf points out
| there are other reasons why this coercion appears when R has even more
| structure (such as a Ring). I think it would be difficult to avoid
| this.
| 
| Perhaps there should be something else to obstruct the formation of
| this unexpected product.
| 
| Gaby commented in the OpenAxiom thread on this subject that he thought
| the problem might be overloading of *.

No, that is not what I said.  

What I said for THIS SPECIFIC problem is that the implicit coerciion
problem comes from

   if R has SetCategory then FullyRetractableTo R

See the message I sent on June 05, 2010.

  
http://sourceforge.net/mailarchive/message.php?msg_name=877hmdxxmu.fsf%40gauss.cs.tamu.edu

which I'm quoting:

 #  I offered the data with no much analysis.
 #  Here it is.  The multiplication 
 #
 #      %i*A
 #
 #  isn't exactly the multiplication of a scalar by a 'vector' as from
 #  vector space, since A has entries from EXPR COMPLEX INT, whereas %i
 #  is COMPLEX INT.  So, there is no direct match for '*'.  Next, the
 #  interpreter tries to find one by doing some coercions.  Among the
 #  available signatures, it finds out that it can left-multiply the square
 #  matrix A by a 'row' vector if it can coerce %i to that row-vector.
 #  Which it did because there a coerce function from a 'scalar' to a
 #  raw-vector (which I find misguided).  This goes back to a comment I made
 #  a couple of days ago: strange things can happen when operations are
 #  overloaded just because one can, without much consideration for the
 #  semantics.

| Does it make sense to use the
| symbol * to denote mulitiplication of a Matrix by a row vector
| (DirectProduct)?

That was not my proposal.

-- Gaby

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to