/** * @param RationalType $radius * @param RationalType $sin * * @return array * * @throws InvalidTypeException */ private static function getImaginaryPartsFromRadiusAndSin(RationalType $radius, RationalType $sin) { return array(TypeFactory::create('int', $radius->numerator()->get() * $sin->numerator()->get()), TypeFactory::create('int', $radius->denominator()->get() * $sin->denominator()->get())); }
public function testNegativeDenominatorNormalizesToNegativeNumerator() { $r = new RationalType(new IntType(4), new IntType(-3)); $this->assertEquals(-4, $r->numerator()->get()); $this->assertEquals(3, $r->denominator()->get()); }
/** * Rational sqrt * * @param RationalType $a operand * * @return RationalType result */ public function rationalSqrt(RationalType $a) { $num = sqrt($a->numerator()->get()); $den = sqrt($a->denominator()->get()); return $this->rationalDiv(RationalTypeFactory::fromFloat($num), RationalTypeFactory::fromFloat($den)); }