Math.au3 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include-once
  2. #include "MathConstants.au3"
  3. ; #INDEX# =======================================================================================================================
  4. ; Title .........: Mathematical calculations
  5. ; AutoIt Version : 3.3.14.5
  6. ; Language ......: English
  7. ; Description ...: Functions that assist with mathematical calculations.
  8. ; Author(s) .....: Valik, Gary Frost, guinness ...
  9. ; ===============================================================================================================================
  10. ; #NO_DOC_FUNCTION# =============================================================================================================
  11. ; _MathCheckDiv
  12. ; ===============================================================================================================================
  13. ; #CURRENT# =====================================================================================================================
  14. ; _Degree
  15. ; _Max
  16. ; _Min
  17. ; _Radian
  18. ; ===============================================================================================================================
  19. ; #FUNCTION# ====================================================================================================================
  20. ; Author ........: Erifash <erifash at gmail dot com>
  21. ; ===============================================================================================================================
  22. Func _Degree($iRadians)
  23. Return IsNumber($iRadians) ? $iRadians * $MATH_DEGREES : SetError(1, 0, 0)
  24. EndFunc ;==>_Degree
  25. ; #NO_DOC_FUNCTION# =============================================================================================================
  26. ; Name...........: _MathCheckDiv
  27. ; Description ...: Checks if first number is divisible by the second number.
  28. ; Syntax.........: _MathCheckDiv ( $iNum1, $iNum2 = 2 )
  29. ; Parameters ....: $iNum1 - Integer value to check
  30. ; $iNum2 - [optional] Integer value to divide by (default = 2)
  31. ; Return values .: Success - $MATH_ISNOTDIVISIBLE (1) for not divisible.
  32. ; $MATH_ISDIVISIBLE (2) for divisible.
  33. ; Failure - -1 and sets the @error flag to non-zero if non-integers are entered.
  34. ; Author ........: Wes Wolfe-Wolvereness <Weswolf at aol dot com>
  35. ; Modified ......: czardas - rewritten for compatibility with Int64
  36. ; Remarks .......: This function by default checks if the first number is either odd or even, as the second value is default to 2.
  37. ; Related .......:
  38. ; Link ..........:
  39. ; Example .......:
  40. ; ===============================================================================================================================
  41. Func _MathCheckDiv($iNum1, $iNum2 = 2)
  42. If Not (IsInt($iNum1) And IsInt($iNum2)) Then
  43. Return SetError(1, 0, -1)
  44. EndIf
  45. Return (Mod($iNum1, $iNum2) = 0) ? $MATH_ISDIVISIBLE : $MATH_ISNOTDIVISIBLE
  46. EndFunc ;==>_MathCheckDiv
  47. ; #FUNCTION# ====================================================================================================================
  48. ; Author ........: Jeremy Landes <jlandes at landeserve dot com>
  49. ; Modified ......: guinness - Added ternary operator.
  50. ; ===============================================================================================================================
  51. Func _Max($iNum1, $iNum2)
  52. ; Check to see if the parameters are numbers
  53. If Not IsNumber($iNum1) Then Return SetError(1, 0, 0)
  54. If Not IsNumber($iNum2) Then Return SetError(2, 0, 0)
  55. Return ($iNum1 > $iNum2) ? $iNum1 : $iNum2
  56. EndFunc ;==>_Max
  57. ; #FUNCTION# ====================================================================================================================
  58. ; Author ........: Jeremy Landes <jlandes at landeserve dot com>
  59. ; Modified ......: guinness - Added ternary operator.
  60. ; ===============================================================================================================================
  61. Func _Min($iNum1, $iNum2)
  62. ; Check to see if the parameters are numbers
  63. If Not IsNumber($iNum1) Then Return SetError(1, 0, 0)
  64. If Not IsNumber($iNum2) Then Return SetError(2, 0, 0)
  65. Return ($iNum1 > $iNum2) ? $iNum2 : $iNum1
  66. EndFunc ;==>_Min
  67. ; #FUNCTION# ====================================================================================================================
  68. ; Author ........: Erifash <erifash at gmail dot com>
  69. ; ===============================================================================================================================
  70. Func _Radian($iDegrees)
  71. Return Number($iDegrees) ? $iDegrees / $MATH_DEGREES : SetError(1, 0, 0)
  72. EndFunc ;==>_Radian