We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi again, this one is more of an edge case... But for consistency with math.Pow()
math.Pow()
Also, for -Inf: Pow(-Inf, -1) == -0, but this also doesn't work because of #35
-Inf
Pow(-Inf, -1) == -0
Thanks again!
package main import ( "fmt" "math" "math/big" "github.com/ALTree/bigfloat" ) func main() { // Exponentiation of Inf^n equals 0 for all negative n // e.g. Inf^-2 = 0 zero := math.Pow(math.Inf(1), -2) fmt.Printf("%f\n", zero) // 0.000000 bigneg2 := big.NewFloat(-2) bigInf := big.NewFloat(0.0).SetInf(false) bigzero := bigfloat.Pow(bigInf, bigneg2) fmt.Printf("%f\n", bigzero) // +Inf != 0.000000 }
The text was updated successfully, but these errors were encountered:
Repro for second case of -Inf:
package main import ( "fmt" "math" "math/big" "github.com/ALTree/bigfloat" ) func main() { // Exponentiation of -Inf^n equals -0 for all odd negative integer n // e.g. -Inf^-1 = -0 // Exponentiation of -Inf^n equals 0 for all even negative integer n // e.g. -Inf^-2 = 0 zero := math.Pow(math.Inf(-1), -1) fmt.Printf("%f\n", zero) // 0.000000 fmt.Printf("%t\n", math.Signbit(zero)) // true == negative zero zero = math.Pow(math.Inf(-1), -2) fmt.Printf("%f\n", zero) // 0.000000 fmt.Printf("%t\n", math.Signbit(zero)) // false == positive zero bigneg1 := big.NewFloat(-1) bignegInf := big.NewFloat(0.0).SetInf(true) bignegzero := bigfloat.Pow(bignegInf, bigneg1) // PANIC! fmt.Printf("%f\n", bignegzero) // Should be -0.000000 fmt.Printf("%t\n", bignegzero.Signbit()) // Should be true bigneg2 := big.NewFloat(-2) bigzero := bigfloat.Pow(bignegInf, bigneg2) // PANIC! fmt.Printf("%f\n", bigzero) // Should be 0.000000 fmt.Printf("%t\n", bigzero.Signbit()) // Should be false }
Sorry, something went wrong.
See #37
No branches or pull requests
Hi again, this one is more of an edge case... But for consistency with
math.Pow()
Also, for
-Inf
:Pow(-Inf, -1) == -0
, but this also doesn't work because of #35Thanks again!
The text was updated successfully, but these errors were encountered: