Package bigfloat provides arbitrary-precision natural logarithm and
exponentiation for the standard library's big.Float
type.
The package requires Go 1.10 or newer.
package main
import (
"fmt"
"math/big"
"github.com/ALTree/bigfloat"
)
// We'll compute the value of the transcendental number 2^√2, also
// known as the Gelfond–Schneider constant, to 1000 bits.
func main() {
const prec = 1000 // in binary digits
two := big.NewFloat(2).SetPrec(prec)
sqrtTwo := new(big.Float).SetPrec(prec).Sqrt(two)
// Pow uses the first argument's precision.
gsc := bigfloat.Pow(two, sqrtTwo) // 2^√2
fmt.Printf("gsc = %.60f\n", gsc)
}
outputs:
gsc = 2.665144142690225188650297249873139848274211313714659492835980