Math_Quaternion
[ class tree: Math_Quaternion ] [ index: Math_Quaternion ] [ all elements ]

Class: Math_QuaternionOp

Source Location: /Math_Quaternion-0.8.0/Math/QuaternionOp.php

Class Overview


Math_QuaternionOp: class that implements operations on quaternions


Author(s):

Version:

  • 0.7

Methods


Inherited Variables

Inherited Methods


Class Details

[line 102]
Math_QuaternionOp: class that implements operations on quaternions

Originally this class was part of NumPHP (Numeric PHP package)

Example:

 require_once 'Math/QuaternionOp.php';

 $a = new Math_Quaternion(2,4,2,-0.5);
 $b = new Math_Quaternion(1,2,3,0.5);

 if (!Math_QuaternionOp::areEqual($a, Math_QuaternionOp::negate($a))) {
     echo "a and neg(a) are different\n";
 }
 $t=Math_QuaternionOp::negate($a);
 echo "Neg(a) is ".$t->toString()."\n";
 $t=Math_QuaternionOp::conjugate($a);
 echo "Conj(a) is ".$t->toString()."\n";
 $t=Math_QuaternionOp::inverse($a);
 echo "Inv(a) is ".$t->toString()."\n";
 $t=Math_QuaternionOp::multReal($a, 1.23);
 echo "MultReal(a, 1.23) is ".$t->toString()."\n";

 echo "====\n";
 $t=Math_QuaternionOp::mult($a,$b);
 echo "a*b: ".$t->toString()."\n";
 $t=Math_QuaternionOp::mult($b,$a);
 echo "b*a: ".$t->toString()."\n";
 $t=Math_QuaternionOp::mult($a,Math_QuaternionOp::conjugate($a));
 echo "a*a': ".$t->toString()."\n";
 echo "length(a*a'): ".$t->length()."\n";
 $t=Math_QuaternionOp::add($a,$b);
 echo "a+b: ".$t->toString()."\n";
 $t=Math_QuaternionOp::sub($a,$b);
 echo "a-b: ".$t->toString()."\n";
 $t=Math_QuaternionOp::sub($b,$a);
 echo "b-a: ".$t->toString()."\n";
 $t=Math_QuaternionOp::sub($b,Math_QuaternionOp::conjugate($a));
 echo "b-a': ".$t->toString()."\n";
 $t=Math_QuaternionOp::sub(Math_QuaternionOp::conjugate($b), $a);
 echo "b'-a: ".$t->toString()."\n";
 $t=Math_QuaternionOp::sub(Math_QuaternionOp::conjugate($b), Math_QuaternionOp::conjugate($a));
 echo "b'-a': ".$t->toString()."\n";
 $t = Math_QuaternionOp::div($a, $b);
 echo "a/b: ".$t->toString()."\n";
 $t = Math_QuaternionOp::div($b, $a);
 echo "b/a: ".$t->toString()."\n";

Output from example:

 a and neg(a) are different
 Neg(a) is -2 + -4i + -2j + 0.5k
 Conj(a) is 2 + -4i + -2j + 0.5k
 Inv(a) is 0.40613846605345 + -0.8122769321069i + -0.40613846605345j + 0.10153461651336k
 MultReal(a, 1.23) is 2.46 + 4.92i + 2.46j + -0.615k
 ====
 a*b: -11.25 + 6i + 9j + 1.5k
 b*a: -18.25 + 12i + 6j + -1.5k
 a*a': -16.25 + -16i + -8j + 2k
 length(a*a'): 24.25
 a+b: 3 + 6i + 5j + 0k
 a-b: 1 + 2i + -1j + -1k
 b-a: -1 + -2i + 1j + 1k
 b-a': -1 + 6i + 5j + 0k
 b'-a: -1 + -6i + -5j + 0k
 b'-a': -1 + 2i + -1j + -1k
 a/b: -19.720187057174 + 9.059625885652i + 4.529812942826j + -1.1324532357065k
 b/a: -12.843861533947 + 2.8122769321069i + 4.2184153981603j + 0.70306923302672k



[ Top ]


Method Detail

add   [line 197]

object a &add( &$q1, &$q2, object Math_Quaternion $q1, object Math_Quaternion $q2)

Adds two quaternions: q1 + q2
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
object Math_Quaternion   $q2   — 
   &$q1   — 
   &$q2   — 

[ Top ]

areEqual   [line 181]

mixed areEqual( &$q1, &$q2, object Math_Quaternion $q1, object Math_Quaternion $q2)

Checks if two quaternions represent the same number
  • Return: PEAR_Error on error, TRUE if q1 == q2, FALSE otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
object Math_Quaternion   $q2   — 
   &$q1   — 
   &$q2   — 

[ Top ]

conjugate   [line 127]

object a &conjugate( &$q1, object Math_Quaternion $q1)

Calculate the conjugate of a quaternion
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
   &$q1   — 

[ Top ]

div   [line 270]

object a &div( &$q1, &$q2, object Math_Quaternion $q1, object Math_Quaternion $q2)

Divides two quaternions: q1 / q2
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
object Math_Quaternion   $q2   — 
   &$q1   — 
   &$q2   — 

[ Top ]

inverse   [line 160]

object a &inverse( &$q1, object Math_Quaternion $q1)

Inverts the given quaternion
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • See: Math_QuaternionOp::multReal
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
   &$q1   — 

[ Top ]

isQuaternion   [line 111]

boolean isQuaternion( &$q1, object Math_Quaternion $q1)

Whether the object is a Math_Quaternion instance
  • Return: TRUE if object is a Math_Quaternion, FALSE otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
   &$q1   — 

[ Top ]

mult   [line 231]

object a &mult( &$q1, &$q2, object Math_Quaternion $q1, object Math_Quaternion $q2)

Multiplies two quaternions: q1 * q2 It uses a fast multiplication algorithm.
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
object Math_Quaternion   $q2   — 
   &$q1   — 
   &$q2   — 

[ Top ]

multReal   [line 289]

object a &multReal( &$q1, float $realnum, object Math_Quaternion $q1)

Multiplies a quaternion by a real number: q1 * realnum
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
float   $realnum   — 
   &$q1   — 

[ Top ]

negate   [line 143]

object a &negate( &$q1, object Math_Quaternion $q1)

Negates the given quaternion
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
   &$q1   — 

[ Top ]

sub   [line 215]

object a &sub( &$q1, &$q2, object Math_Quaternion $q1, object Math_Quaternion $q2)

Substracts two quaternions: q1 - q2
  • Return: Math_Quaternion on success, PEAR_Error otherwise
  • Access: public

Parameters:

object Math_Quaternion   $q1   — 
object Math_Quaternion   $q2   — 
   &$q1   — 
   &$q2   — 

[ Top ]


Documentation generated on Mon, 11 Mar 2019 15:39:16 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.