Dear William, dear John,
On Feb 20, 9:47 pm, "William Stein" <[EMAIL PROTECTED]> wrote:
<snip>
> > More generally, i believe it'd be a good idea to have a __copy__
> > method for *any* Sage objects defined via the Singular interface.
>
> > E.g., when one defines a matrix
> > sage: D=singular.matrix(3,3,'a,b,c, a**2,b**2,c**2, a**3,b**3,c**3')
> > then
> > C=copy(D)
> > should be a copy of D (in the same ring). Up to now, one obtains
> > sage: C=copy(D)
> > sage: C
> > (invalid object -- defined in terms of closed session)
>
> I would certainly be all for that too!
>
> Any chance you could write it, or do I have to?
My to-do-list says: First make the tax declaration :-((, then finally
provide a tensor product of matrices (as i promised earlier), and then
i may try to do it.
Moreover, i just found that Singular provides a method called
'ringtensor'. Unfortunately it seems that it doesn't help John:
sage: R=singular.ring(0,'(x1,x12,x2)','dp')
sage: C=singular.matrix(3,3,'1,-1,-1, -1,1,-1, -1,-1,1')
sage: D=singular.matrix(3,3,'0,0,-x12, 0,0,0, 0,0,0')
sage: singular.LIB('ncall.lib')
sage: S=C.nc_algebra(D)
sage: X=S.ringtensor(S)
sage: S.set_ring()
sage: singular('x12*x1')
-x1*x12
sage: X.set_ring()
sage: singular('x12*x1')
x1*x12
sage: X
// characteristic : 0
// number of vars : 6
// block 1 : ordering dp
// : names x1 x12 x2
// block 2 : ordering dp
// : names @(4) @(5) @(6)
// block 3 : ordering C
So, in principle it does a tensor product and changes names if
necessary. However, when implementing ringtensor it was forgotten to
include the non-commutative case. I will notify the Singular team.
Yours
Simon
--~--~---------~--~----~------------~-------~--~----~
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/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---