Re: New package proposal: Math_Quaternion

From: Date: Wed, 27 Nov 2002 07:37:37 +0000
Subject: Re: New package proposal: Math_Quaternion
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-11151@lists.php.net to get a copy of this message
Hmm, +1 for this jm :-) -- Regards. M.CHAILLAN Nicolas nicos@php.net www.WorldAKT.com Hébergement de sites internets. "Jesus M. Castagnetto" <jcastagnetto@yahoo.com> a écrit dans le message de news: 20021127023646.97962.qmail@web12108.mail.yahoo.com... > Got some more code (partly PEARIzed, lacks comments for now) to deal with > Quaternions and their operations. For now I have the basic operations there, > eventually there will be some nice vector rotation and similar operations too. > > Get the code doing: > > pear install > http://www.scripps.edu/~jesusmc/stuff/Math_Quaternion-0.8.tgz > > Any comments on the naming/design/algorithms of the package will be greatly > appreciated. > > And if you want to test the package, use the code below: > > <?php > /* > * To test class.quaternion.php > * numPHP (c) Jesus M. Castagnetto 1999,2000. > * $Id: testquaternion.php,v 1.4 2000/08/19 11:38:06 jmcastagnetto Exp $ > */ > > require_once 'Math/QuaternionOp.php'; > > $a = new Math_Quaternion(2,4,2,-0.5); > $b = new Math_Quaternion(1,2,3,0.5); > > echo "a: ".$a->toString()."\n"; > echo "b: ".$b->toString()."\n"; > $t = Math_QuaternionOp::conjugate($a); > echo "a': ".$t->toString()."\n"; > $t = Math_QuaternionOp::conjugate($b); > echo "b': ".$t->toString()."\n"; > echo "length(a): ".$a->length()." length2(a): > ".$a->length2()."\n"; > echo "real(a): ".$a->getReal()."\nimag(a): "; > > print_r($a->getAllIm()); > > if (!Math_QuaternionOp::areEqual($a, Math_QuaternionOp::negative($a))) {echo "a > and neg(a) are different\n";} > $t=Math_QuaternionOp::negative($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"; > ?> > > > ===== > --- Jesus M. Castagnetto (jcastagnetto@yahoo.com) > > Research: > http://metallo.scripps.edu/ > Personal: http://www.castagnetto.org/ > > __________________________________________________ > Do you Yahoo!? > Yahoo! Mail Plus - Powerful. Affordable. Sign up now. > http://mailplus.yahoo.com

« previous php.pear.dev (#11151) next »