Source file
src/math/dim.go
1
2
3
4
5 package math
6
7
8
9
10
11
12
13 func Dim(x, y float64) float64 {
14
15
16
17
18
19 v := x - y
20 if v <= 0 {
21
22 return 0
23 }
24
25 return v
26 }
27
28
29
30
31
32
33
34
35 func Max(x, y float64) float64 {
36 if haveArchMax {
37 return archMax(x, y)
38 }
39 return max(x, y)
40 }
41
42 func max(x, y float64) float64 {
43
44 switch {
45 case IsInf(x, 1) || IsInf(y, 1):
46 return Inf(1)
47 case IsNaN(x) || IsNaN(y):
48 return NaN()
49 case x == 0 && x == y:
50 if Signbit(x) {
51 return y
52 }
53 return x
54 }
55 if x > y {
56 return x
57 }
58 return y
59 }
60
61
62
63
64
65
66
67 func Min(x, y float64) float64 {
68 if haveArchMin {
69 return archMin(x, y)
70 }
71 return min(x, y)
72 }
73
74 func min(x, y float64) float64 {
75
76 switch {
77 case IsInf(x, -1) || IsInf(y, -1):
78 return Inf(-1)
79 case IsNaN(x) || IsNaN(y):
80 return NaN()
81 case x == 0 && x == y:
82 if Signbit(x) {
83 return x
84 }
85 return y
86 }
87 if x < y {
88 return x
89 }
90 return y
91 }
92
View as plain text