github.com/sandwich-go/boost@v1.3.29/xmath/math.go (about) 1 // Code generated by tools. DO NOT EDIT. 2 package xmath 3 4 import "math" 5 6 const ( 7 EPSILON64 float64 = 0.00000001 8 EPSILON32 float32 = 0.00000001 9 ) 10 11 // Integer limit values. 12 const ( 13 ConstMaxInt = math.MaxInt 14 ConstMinInt = math.MinInt 15 ConstMaxUint = math.MaxUint 16 ConstMaxInt8 = math.MaxInt8 17 ConstMinInt8 = math.MinInt8 18 ConstMaxInt16 = math.MaxInt16 19 ConstMinInt16 = math.MinInt16 20 ConstMaxInt32 = math.MaxInt32 21 ConstMinInt32 = math.MinInt32 22 ConstMaxInt64 = math.MaxInt64 23 ConstMinInt64 = math.MinInt64 24 ConstMaxUint8 = math.MaxUint8 25 ConstMaxUint16 = math.MaxUint16 26 ConstMaxUint32 = math.MaxUint32 27 ConstMaxUint64 = math.MaxUint64 28 ) 29 30 // Float64Equals 判断 float64 是否相等 31 func Float64Equals(a, b float64) bool { 32 return (a-b) < EPSILON64 && (b-a) < EPSILON64 33 } 34 35 // Float32Equals 判断 float32 是否相等 36 func Float32Equals(a, b float32) bool { 37 return (a-b) < EPSILON32 && (b-a) < EPSILON32 38 } 39 40 // IsZeroFloat64 判断 float64 是否是零值 41 func IsZeroFloat64(v float64) bool { 42 return Float64Equals(v, 0) 43 } 44 45 // IsZeroFloat32 判断 float32 是否是零值 46 func IsZeroFloat32(v float32) bool { 47 return Float32Equals(v, 0) 48 } 49 50 // IsBelowZeroFloat64 v == 0 时也返回true 51 func IsBelowZeroFloat64(v float64) bool { 52 return (v - 0) < EPSILON64 53 } 54 55 // IsBelowZeroFloat32 v == 0 时也返回true 56 func IsBelowZeroFloat32(v float32) bool { 57 return (v - 0) < EPSILON32 58 } 59 60 // MaxFloat32 返回 float32 类型大值 61 func MaxFloat32(a, b float32) float32 { 62 return float32(math.Max(float64(a), float64(b))) 63 } 64 65 // MinFloat32 返回 float32 类型小值 66 func MinFloat32(a, b float32) float32 { 67 return float32(math.Min(float64(a), float64(b))) 68 } 69 70 // AbsFloat32 返回 float32 类型绝对值 71 func AbsFloat32(v float32) float32 { 72 if IsBelowZeroFloat32(v) { 73 return -v 74 } 75 return v 76 } 77 78 // EffectZeroLimitFloat32 加 change 值,返回 float32 类型值,该值不会小于0 79 func EffectZeroLimitFloat32(v, change float32) float32 { 80 v += change 81 if IsBelowZeroFloat32(v) { 82 v = 0 83 } 84 return v 85 } 86 87 // MaxFloat64 返回 float64 类型大值 88 func MaxFloat64(a, b float64) float64 { 89 return math.Max(a, b) 90 } 91 92 // MinFloat64 返回 float64 类型小值 93 func MinFloat64(a, b float64) float64 { 94 return math.Min(a, b) 95 } 96 97 // AbsFloat64 返回 float64 类型绝对值 98 func AbsFloat64(v float64) float64 { 99 if IsBelowZeroFloat64(v) { 100 return -v 101 } 102 return v 103 } 104 105 // EffectZeroLimitFloat64 加 change 值,返回 float64 类型值,该值不会小于0 106 func EffectZeroLimitFloat64(v, change float64) float64 { 107 v += change 108 if IsBelowZeroFloat64(v) { 109 v = 0 110 } 111 return v 112 } 113 114 // MaxInt 返回 int 类型大值 115 func MaxInt(a, b int) int { 116 if a > b { 117 return a 118 } 119 return b 120 } 121 122 // MinInt 返回 int 类型小值 123 func MinInt(a, b int) int { 124 if a < b { 125 return a 126 } 127 return b 128 } 129 130 // AbsInt 返回 int 类型绝对值 131 func AbsInt(v int) int { 132 if v < 0 { 133 return -v 134 } 135 return v 136 } 137 138 // EffectZeroLimitInt 加 change 值,返回 int 类型值,该值不会小于0 139 func EffectZeroLimitInt(v, change int) int { 140 v += change 141 if v < 0 { 142 v = 0 143 } 144 return v 145 } 146 147 // MaxInt16 返回 int16 类型大值 148 func MaxInt16(a, b int16) int16 { 149 if a > b { 150 return a 151 } 152 return b 153 } 154 155 // MinInt16 返回 int16 类型小值 156 func MinInt16(a, b int16) int16 { 157 if a < b { 158 return a 159 } 160 return b 161 } 162 163 // AbsInt16 返回 int16 类型绝对值 164 func AbsInt16(v int16) int16 { 165 if v < 0 { 166 return -v 167 } 168 return v 169 } 170 171 // EffectZeroLimitInt16 加 change 值,返回 int16 类型值,该值不会小于0 172 func EffectZeroLimitInt16(v, change int16) int16 { 173 v += change 174 if v < 0 { 175 v = 0 176 } 177 return v 178 } 179 180 // MaxInt32 返回 int32 类型大值 181 func MaxInt32(a, b int32) int32 { 182 if a > b { 183 return a 184 } 185 return b 186 } 187 188 // MinInt32 返回 int32 类型小值 189 func MinInt32(a, b int32) int32 { 190 if a < b { 191 return a 192 } 193 return b 194 } 195 196 // AbsInt32 返回 int32 类型绝对值 197 func AbsInt32(v int32) int32 { 198 if v < 0 { 199 return -v 200 } 201 return v 202 } 203 204 // EffectZeroLimitInt32 加 change 值,返回 int32 类型值,该值不会小于0 205 func EffectZeroLimitInt32(v, change int32) int32 { 206 v += change 207 if v < 0 { 208 v = 0 209 } 210 return v 211 } 212 213 // MaxInt64 返回 int64 类型大值 214 func MaxInt64(a, b int64) int64 { 215 if a > b { 216 return a 217 } 218 return b 219 } 220 221 // MinInt64 返回 int64 类型小值 222 func MinInt64(a, b int64) int64 { 223 if a < b { 224 return a 225 } 226 return b 227 } 228 229 // AbsInt64 返回 int64 类型绝对值 230 func AbsInt64(v int64) int64 { 231 if v < 0 { 232 return -v 233 } 234 return v 235 } 236 237 // EffectZeroLimitInt64 加 change 值,返回 int64 类型值,该值不会小于0 238 func EffectZeroLimitInt64(v, change int64) int64 { 239 v += change 240 if v < 0 { 241 v = 0 242 } 243 return v 244 } 245 246 // MaxInt8 返回 int8 类型大值 247 func MaxInt8(a, b int8) int8 { 248 if a > b { 249 return a 250 } 251 return b 252 } 253 254 // MinInt8 返回 int8 类型小值 255 func MinInt8(a, b int8) int8 { 256 if a < b { 257 return a 258 } 259 return b 260 } 261 262 // AbsInt8 返回 int8 类型绝对值 263 func AbsInt8(v int8) int8 { 264 if v < 0 { 265 return -v 266 } 267 return v 268 } 269 270 // EffectZeroLimitInt8 加 change 值,返回 int8 类型值,该值不会小于0 271 func EffectZeroLimitInt8(v, change int8) int8 { 272 v += change 273 if v < 0 { 274 v = 0 275 } 276 return v 277 } 278 279 // MaxUint 返回 uint 类型大值 280 func MaxUint(a, b uint) uint { 281 if a > b { 282 return a 283 } 284 return b 285 } 286 287 // MinUint 返回 uint 类型小值 288 func MinUint(a, b uint) uint { 289 if a < b { 290 return a 291 } 292 return b 293 } 294 295 // MaxUint16 返回 uint16 类型大值 296 func MaxUint16(a, b uint16) uint16 { 297 if a > b { 298 return a 299 } 300 return b 301 } 302 303 // MinUint16 返回 uint16 类型小值 304 func MinUint16(a, b uint16) uint16 { 305 if a < b { 306 return a 307 } 308 return b 309 } 310 311 // MaxUint32 返回 uint32 类型大值 312 func MaxUint32(a, b uint32) uint32 { 313 if a > b { 314 return a 315 } 316 return b 317 } 318 319 // MinUint32 返回 uint32 类型小值 320 func MinUint32(a, b uint32) uint32 { 321 if a < b { 322 return a 323 } 324 return b 325 } 326 327 // MaxUint64 返回 uint64 类型大值 328 func MaxUint64(a, b uint64) uint64 { 329 if a > b { 330 return a 331 } 332 return b 333 } 334 335 // MinUint64 返回 uint64 类型小值 336 func MinUint64(a, b uint64) uint64 { 337 if a < b { 338 return a 339 } 340 return b 341 } 342 343 // MaxUint8 返回 uint8 类型大值 344 func MaxUint8(a, b uint8) uint8 { 345 if a > b { 346 return a 347 } 348 return b 349 } 350 351 // MinUint8 返回 uint8 类型小值 352 func MinUint8(a, b uint8) uint8 { 353 if a < b { 354 return a 355 } 356 return b 357 }