我正在使用BigRational
的BCL Codeplex实现,但它似乎没有Pow方法可以使用两个BigRational
,只有一个需要BigRational
和一个BigInteger
。我自己写一个,但我不知道从哪里开始。
编辑:一些代码:
public static BigRational Pow(BigRational baseVal, BigRational exponent, int inputPrecision)
{
if (exponent == 0)
{
return BigRational.One;
}
if (exponent == 1)
{
return baseVal;
}
if (exponent.GetWholePart() == exponent)
{
return Pow(baseVal, exponent.GetWholePart());
}
baseVal = Round(baseVal, inputPrecision); //custom rounding method
exponent = Round(exponent, inputPrecision);
BigInteger exponentWhole = exponent.GetWholePart();
BigRational extra = exponent - exponentWhole;
return //what?
}