public static function fromNativePolar(RationalType $radius, RationalType $theta)
    {
        $cos = RationalTypeFactory::fromFloat(cos($theta()));
        $sin = RationalTypeFactory::fromFloat(sin($theta()));

        list($realNumerator, $realDenominator) = self::getRealPartsFromRadiusAndCos($radius, $cos);
        list($imaginaryNumerator, $imaginaryDenominator) = self::getImaginaryPartsFromRadiusAndSin($radius, $sin);

        $realPart = RationalTypeFactory::create($realNumerator, $realDenominator);
        $imaginaryPart = RationalTypeFactory::create($imaginaryNumerator, $imaginaryDenominator);
        
        return new ComplexType($realPart, $imaginaryPart);
    }