Quaternion * integer
how can i multiply my own quaternion group elements with a normal integer?
it says this: unsupported operand parent(s) for +: 'Integer Ring' and '<class 'quater'="">'
how can i multiply my own quaternion group elements with a normal integer?
it says this: unsupported operand parent(s) for +: 'Integer Ring' and '<class 'quater'="">'
by defining a method def __mul__(self, other):
in your class called quater
. Something like this:
def __mul__(self, other):
if isinstance(other, Integer):
...
return something
elif isinstance(other, quater):
...
return something else
else:
raise TypeError('multiplication with other(={}) not defined'.format(other))
i wrote it like this, and it works with two group elements but i cant multiply with 5,for example
def __mul__(self,other):
q = self.a * other.a - self.b * other.b - self.c * other.c - self.d * other.d
w = self.a * other.b + self.b * other.a + self.c * other.d - self.d * other.c
v = self.a * other.c + self.c * other.a + self.d * other.b - self.b * other.d
t = self.a * other.d + self.d * other.a + self.b * other.c - self.c * other.b
return quater(q,w,v,t)
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2019-01-03 16:36:01 +0100
Seen: 457 times
Last updated: Jan 06 '19
Culd you please provide your implementation of the quaternions ?
class kvat(object):
and the mul down below, max comment lenght was reached but i copied it here already anyway