Class RationalQuaternion

java.lang.Object
de.tilman_neumann.jml.quaternion.RationalQuaternion

public class RationalQuaternion
extends java.lang.Object
Quaternions are an extension of complex numbers to four dimensions defined as Q(i,j,k) = {x + y*i + z*j + w*k : x,y,z,w ∈ R and i^2 = j^2 = k^2 = ijk = -1}.
  • Constructor Details

  • Method Details

    • getX

      public BigRational getX()
    • getY

      public BigRational getY()
    • getZ

      public BigRational getZ()
    • getW

      public BigRational getW()
    • conjugate

      public RationalQuaternion conjugate()
    • negate

      public RationalQuaternion negate()
    • normalize

      public RationalQuaternion normalize()
    • norm

      public BigRational norm()
      Returns:
      the norm of this
    • isZero

      public boolean isZero()
    • isUnit

      public boolean isUnit()
      Returns:
      true if this is a unit
    • add

    • subtract

      public RationalQuaternion subtract​(RationalQuaternion b)
    • multiply

      public RationalQuaternion multiply​(java.math.BigInteger b)
    • multiply

      public RationalQuaternion multiply​(BigRational b)
    • multiply

      public RationalQuaternion multiply​(RationalQuaternion b)
    • square

      public RationalQuaternion square()
    • inverse

      public RationalQuaternion inverse()
      The inverse of a quaternion q is the conjugate of q divided coefficient-wise by the norm of q.
      Returns:
      the inverse of this
    • leftDivide

      public RationalQuaternion leftDivide​(RationalQuaternion b)
      "left-divide" this by b. In quaternions, there are two division algorithms, because multiplication is not commutative. The left-division variant computes a/b = inverse(b)*a = conjugate(b)*a / N(b). Its resulting quotient is apt for the right term in a complementary test multiplication. The division in rational coefficients is exact, i.e. there is no remainder.
      Parameters:
      b -
      Returns:
      left division quotient
    • rightDivide

      public RationalQuaternion rightDivide​(RationalQuaternion b)
      "right-divide" this by b. In quaternions, there are two division algorithms, because multiplication is not commutative. The right-division variant computes a/b = a*inverse(b) = a*conjugate(b) / N(b). Its resulting quotient is apt for the left> term in a complementary test multiplication. The division in rational coefficients is exact, i.e. there is no remainder.
      Parameters:
      b -
      Returns:
      right division quotient
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object