package mathutil

import (
	

	
)

// Min compare two value and return max value
func [ comdef.Number](,  )  {
	if  <  {
		return 
	}
	return 
}

// Max compare two value and return max value
func [ comdef.Number](,  )  {
	if  >  {
		return 
	}
	return 
}

// SwapMin compare and always return [min, max] value
func [ comdef.Number](,  ) (, ) {
	if  <  {
		return , 
	}
	return , 
}

// SwapMax compare and always return [max, min] value
func [ comdef.Number](,  ) (, ) {
	if  >  {
		return , 
	}
	return , 
}

// MaxInt compare and return max value
func (,  int) int {
	if  >  {
		return 
	}
	return 
}

// SwapMaxInt compare and return max, min value
func (,  int) (int, int) {
	if  >  {
		return , 
	}
	return , 
}

// MaxI64 compare and return max value
func (,  int64) int64 {
	if  >  {
		return 
	}
	return 
}

// SwapMaxI64 compare and return max, min value
func (,  int64) (int64, int64) {
	if  >  {
		return , 
	}
	return , 
}

// MaxFloat compare and return max value
func (,  float64) float64 {
	return math.Max(, )
}

// OrElse return default value on val is zero, else return val
func [ comdef.Number](,  )  {
	return ZeroOr(, )
}

// ZeroOr return default value on val is zero, else return val
func [ comdef.Number](,  )  {
	if  != 0 {
		return 
	}
	return 
}

// LessOr return val on val < max, else return default value.
//
// Example:
//
//	LessOr(11, 10, 1) // 1
//	LessOr(2, 10, 1) // 2
//	LessOr(10, 10, 1) // 1
func [ comdef.Number](, ,  )  {
	if  <  {
		return 
	}
	return 
}

// LteOr return val on val <= max, else return default value.
//
// Example:
//
//	LteOr(11, 10, 1) // 11
//	LteOr(2, 10, 1) // 2
//	LteOr(10, 10, 1) // 10
func [ comdef.Number](, ,  )  {
	if  <=  {
		return 
	}
	return 
}

// GreaterOr return val on val > max, else return default value.
//
// Example:
//
//	GreaterOr(23, 0, 2) // 23
//	GreaterOr(0, 0, 2) // 2
func [ comdef.Number](, ,  )  {
	if  >  {
		return 
	}
	return 
}

// GteOr return val on val >= max, else return default value.
//
// Example:
//
//	GteOr(23, 0, 2) // 23
//	GteOr(0, 0, 2) // 0
func [ comdef.Number](, ,  )  {
	if  >=  {
		return 
	}
	return 
}