public function testAbsReturnsAbsoluteValue() { $r1 = new RationalType(new IntType(1), new IntType(2)); $r2 = new RationalType(new IntType(-1), new IntType(2)); $r3 = new RationalType(new IntType(1), new IntType(-2)); $this->assertEquals($r1, $r1->abs()); $this->assertEquals($r1, $r2->abs()); $this->assertEquals($r1, $r3->abs()); }
/** * @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())); }
/** * 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)); }