/** * Calculates the cross product between this vector and the given vector. * * @param Vector3 $vector The vector to calculate with. * @return Vector3 */ public function crossProduct(Vector3 $vector) { $x = BigNumberUtils::multiply($this->getY(), $vector->getZ()); $x->subtract(BigNumberUtils::multiply($this->getZ(), $vector->getY())); $y = BigNumberUtils::multiply($this->getZ(), $vector->getX()); $y->subtract(BigNumberUtils::multiply($this->getX(), $vector->getZ())); $z = BigNumberUtils::multiply($this->getX(), $vector->getY()); $z->subtract(BigNumberUtils::multiply($this->getY(), $vector->getX())); return new Vector3($x, $y, $z); }
public function testMultiplyWithMutableTrue() { // Arrange $number1 = new BigNumber('0.123456789'); $number2 = new BigNumber(2); // Act $result = Utils::multiply($number1, $number2, 10, true); // Assert $this->assertInstanceOf('PHP\\Math\\BigNumber\\BigNumber', $result); $this->assertEquals('0.2469135780', (string) $result); $this->assertEquals('0.123456789', $number1); $this->assertEquals('2.0000000000', $number2); $this->assertTrue($result->isMutable()); }