C#/.NET has the BigInteger class that provides methods for exponentiation and logarithms on arbitrary precision integers.
public static double Log (System.Numerics.BigInteger value);
public static double Log (System.Numerics.BigInteger value);
public static System.Numerics.BigInteger Pow (System.Numerics.BigInteger value, int exponent);
How does one compute BigInteger.Pow(x, y) where y is a float or double type? It looks like there is no built-in method in the class library. Is there an algorithm one can implement for this?