[sympy] Re: symbolic Four vectors

```Thank you so much I am goig to foloow your suggestion

El viernes, 6 de abril de 2018, 1:02:31 (UTC-5), Moises Zeleny escribiÃ³:
>
> Hi, everyone
>
> I am a new sympy user and usually I work with Jupyter notebook. I would
> like construct a new symbolic class named FV (Four vector), I have made this
>
> from sympy import *
> init_printing()
>
> class FV:
>
>     def __init__(self,p0,p1,p2,p3):
>         self.p0 = p0
>         self.p1 = p1
>         self.p2 = p2
>         self.p3 = p3
>
>     def __str__(self):
>         return '({a},{b},{c},{d})'.format(a=self.p0, b=self.p1, c=self.p2,
> d=self.p3)
>
>     def __repr__(self):
>         return self.__str__()
>
>         p0,p1,p2,p3 = self.p0,self.p1,self.p2,self.p3
>         k0,k1,k2,k3 = other.p0,other.p1,other.p2,other.p3
>         return FV(p0+k0, p1+k1, p2+k2, p3+k3)
>
>     def __mul__(self,other):
>         p0,p1,p2,p3 = self.p0,self.p1,self.p2,self.p3
>         k0,k1,k2,k3 = other.p0,other.p1,other.p2,other.p3
>         return FV(p0*k0,-p1*k1,-p2*k2,-p3*k3)
>
>     def __abs__(self):
>         from sympy import sqrt
>         p0,p1,p2,p3 = self.p0,self.p1,self.p2,self.p3
>         return sqrt(p0**2 - p1**2 - p2**2 - p3**2)
>
>     def __eq__(self,other):
>         return self.p0 == other.p0 and self.p1 == other.p1 and self.p2 ==
> other.p2 and self.p3 == other.p3
>
>     def __neq__(self,other):
>         return not self.__eq__(other)
>
> but this works while I use float or int python objects for the components
> in FV, when I use symbols I obtained
>
> p = {i:symbols('{{p^{a}}}'.format(a=i)) for i in range(4)}
> pmu = FV(p[0],p[1],p[2],p[3])
> pmu
>
> ({p^0},{p^1},{p^2},{p^3})
>
>
> this output do not used a init_printing(). Can someone help me please?
>```
```
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email