Source File
dim.go
Belonging Package
math
// Copyright 2010 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package math// Dim returns the maximum of x-y or 0.//// Special cases are:// Dim(+Inf, +Inf) = NaN// Dim(-Inf, -Inf) = NaN// Dim(x, NaN) = Dim(NaN, x) = NaNfunc (, float64) float64 {// The special cases result in NaN after the subtraction:// +Inf - +Inf = NaN// -Inf - -Inf = NaN// NaN - y = NaN// x - NaN = NaN:= -if <= 0 {// v is negative or 0return 0}// v is positive or NaNreturn}// Max returns the larger of x or y.//// Special cases are:// Max(x, +Inf) = Max(+Inf, x) = +Inf// Max(x, NaN) = Max(NaN, x) = NaN// Max(+0, ±0) = Max(±0, +0) = +0// Max(-0, -0) = -0func (, float64) float64func (, float64) float64 {// special casesswitch {case IsInf(, 1) || IsInf(, 1):return Inf(1)case IsNaN() || IsNaN():return NaN()case == 0 && == :if Signbit() {return}return}if > {return}return}// Min returns the smaller of x or y.//// Special cases are:// Min(x, -Inf) = Min(-Inf, x) = -Inf// Min(x, NaN) = Min(NaN, x) = NaN// Min(-0, ±0) = Min(±0, -0) = -0func (, float64) float64func (, float64) float64 {// special casesswitch {case IsInf(, -1) || IsInf(, -1):return Inf(-1)case IsNaN() || IsNaN():return NaN()case == 0 && == :if Signbit() {return}return}if < {return}return}