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  }