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.
