github.com/euank/go@v0.0.0-20160829210321-495514729181/src/math/abs.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package math 6 7 // Abs returns the absolute value of x. 8 // 9 // Special cases are: 10 // Abs(±Inf) = +Inf 11 // Abs(NaN) = NaN 12 func Abs(x float64) float64 { 13 // TODO: once golang.org/issue/13095 is fixed, change this to: 14 // return Float64frombits(Float64bits(x) &^ (1 << 63)) 15 // But for now, this generates better code and can also be inlined: 16 if x < 0 { 17 return -x 18 } 19 if x == 0 { 20 return 0 // return correctly abs(-0) 21 } 22 return x 23 }