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