#hs.math

Various helpful mathematical functions

This module includes, and is a superset of the built-in Lua math library so it is safe to do something like the following in your own code and still have access to both libraries:

local math = require("hs.math") local n = math.sin(math.minFloat) -- works even though they're both from different libraries

The documentation for the math library can be found at http://www.lua.org/manual/5.3/ or from the Hammerspoon console via the help command: help.lua.math. This includes the following functions and variables:

  • hs.math.abs - help available via help.lua.math.abs
  • hs.math.acos - help available via help.lua.math.acos
  • hs.math.asin - help available via help.lua.math.asin
  • hs.math.atan - help available via help.lua.math.atan
  • hs.math.ceil - help available via help.lua.math.ceil
  • hs.math.cos - help available via help.lua.math.cos
  • hs.math.deg - help available via help.lua.math.deg
  • hs.math.exp - help available via help.lua.math.exp
  • hs.math.floor - help available via help.lua.math.floor
  • hs.math.fmod - help available via help.lua.math.fmod
  • hs.math.huge - help available via help.lua.math.huge
  • hs.math.log - help available via help.lua.math.log
  • hs.math.max - help available via help.lua.math.max
  • hs.math.maxinteger - help available via help.lua.math.maxinteger
  • hs.math.min - help available via help.lua.math.min
  • hs.math.mininteger - help available via help.lua.math.mininteger
  • hs.math.modf - help available via help.lua.math.modf
  • hs.math.pi - help available via help.lua.math.pi
  • hs.math.rad - help available via help.lua.math.rad
  • hs.math.random - help available via help.lua.math.random
  • hs.math.randomseed - help available via help.lua.math.randomseed
  • hs.math.sin - help available via help.lua.math.sin
  • hs.math.sqrt - help available via help.lua.math.sqrt
  • hs.math.tan - help available via help.lua.math.tan
  • hs.math.tointeger - help available via help.lua.math.tointeger
  • hs.math.type - help available via help.lua.math.type
  • hs.math.ult - help available via help.lua.math.ult

Additional functions and values that are specific to Hammerspoon which provide expanded math support are documented here.


#API Overview

Constants - Useful values which cannot be changed

Functions - API calls offered directly by the extension


#API Documentation

#Constants

Signaturehs.math.minFloat
TypeConstant
DescriptionSmallest positive floating point number representable in Hammerspoon
Notes
  • Because specifying a delay of 0 to hs.timer.doAfter results in the event not triggering, use this value to indicate that the action should occur as soon as possible after the current code block has completed execution.
Sourceextensions/math/math.lua line 96

#Functions

Signaturehs.math.isFinite(value) -> boolean
TypeFunction
DescriptionReturns whether or not the value is a finite number
Parameters
  • value - the value to be tested
Returns
  • true if the value is a finite number, or false otherwise
Notes
ExamplesNone
Sourceextensions/math/math.lua line 78

Signaturehs.math.isInfinite(value) -> 1, -1, false
TypeFunction
DescriptionReturns whether or not the value is the mathematical equivalent of either positive or negative "Infinity"
Parameters
  • value - the value to be tested
Returns
  • 1 if the value is equivalent to positive infinity, -1 if the value is equivalent to negative infinity, or false otherwise.
Notes
  • This function specifically checks if the value is equivalent to positive or negative infinity --- it does not do type checking. If value is not a numeric value (e.g. a string), it cannot be equivalent to positive or negative infinity and will return false.
  • Because lua treats any value other than nil and false as true, the return value of this function can be safely used in conditionals when you don't care about the sign of the infinite value.
ExamplesNone
Sourceextensions/math/math.lua line 61

Signaturehs.math.isNaN(value) -> boolean
TypeFunction
DescriptionReturns whether or not the value is the mathematical equivalent of "Not-A-Number"
Parameters
  • value - the value to be tested
Returns
  • true if value is equal to the mathematical "value" of NaN, or false otherwise
Notes
  • Mathematical NaN represents an impossible value, usually the result of a calculation, yet is still considered within the domain of mathematics. The most common case is the result of n / 0 as division by 0 is considered undefined or "impossible".
  • This function specifically checks if the value is NaN --- it does not do type checking. If value is not a numeric value (e.g. a string), it cannot be equivalent to NaN and this function will return false.
ExamplesNone
Sourceextensions/math/math.lua line 44

Signaturehs.math.randomFloat() -> number
TypeFunction
DescriptionReturns a random floating point number between 0 and 1
Parameters
  • None
Returns
  • A random number between 0 and 1
NotesNone
ExamplesNone
Sourceextensions/math/libmath.m line 6

Signaturehs.math.randomFromRange(start, end) -> integer
TypeFunction
DescriptionReturns a random integer between the start and end parameters
Parameters
  • start - A number to start the range, must be greater than or equal to zero
  • end - A number to end the range, must be greater than zero and greater than start
Returns
  • A randomly chosen integer between start and end
NotesNone
ExamplesNone
Sourceextensions/math/libmath.m line 26