       Re: define a new object or use the existing?

• To: mathgroup at smc.vnet.net
• Subject: [mg24364] Re: [mg24360] define a new object or use the existing?
• From: Ken Levasseur <Kenneth_Levasseur at uml.edu>
• Date: Wed, 12 Jul 2000 23:13:07 -0400 (EDT)
• Organization: UMass Lowell
• References: <200007090853.EAA15447@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Maris:

I take it that you intend to represent your twisted polynomials as sums
of twisted terms.  You might consider an alternate form - something like
TwistedPolynomial[p,opts] where p is a list of pi's and opts includes
options such as Indeterminate->delta.  This is essentially how Al
Hibbard and I implemented polynomials over an arbitrary ring in the
AbstractAlgebra packages  that we wrote.  I found this representation
quite easy to work with.  Of course these objects can be formatted as
you like.

http://www.central.edu/eaam.html. A guide with labs is available at http://www.telospub.com/catalog/MATHEMATICA/AAwM.html

Ken Levasseur

Maris Tõnso wrote:
>
> Hi!
>
> I am trying to write a program which could handle noncommutative twisted
> polynomials. A noncommutative polynomial has a form
>
> p(delta) = pn**delta^n + ... + p2**delta^2 + p1**delta + p0,
>
> where ** denotes noncommutative multiplication. I can not decide, which
> is better way to represent an object pi**delta^i : to define additional
> rules for function NonCommutativeMulitply or to build a special new
> object on
> this purpose, for example  Twisted[pi,i].
>
> You will probably say that it depends on concrete circumstances or
> there is no difference in principle; but I still hope you can give some
> on this problem.
>
> And the other problem: If I choose to build a new object when I would
> like object
>         Twisted[p, n]
> in StandardForm to be printed as
>         p delta^n.
> One way to get it is to use Format and Postfix:
>         Format[Twisted[p_,n_]] := Postfix[{p}, delta^n ]
> But this solution does not satisfy me.
>
> I would like to know if there exists a elegant way to define the
> formatting for the object Twisted so that
> Twisted[p+q, n]  would printed as  (p+q) delta^n  (not p+q delta^n) and
> Twisted[1, n]  would printed as  delta^n  (not 1 delta^n).
>