Skip to content
This repository has been archived by the owner on Jun 9, 2023. It is now read-only.

Latest commit

 

History

History
108 lines (91 loc) · 9.3 KB

hs.math.md

File metadata and controls

108 lines (91 loc) · 9.3 KB

docs » 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

API Documentation

Constants

Signature hs.math.minFloat
Type Constant
Description Smallest 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.

Functions

Signature hs.math.isFinite(value) -> boolean
Type Function
Description Returns 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
Signature hs.math.isInfinite(value) -> 1, -1, false
Type Function
Description Returns 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.
Signature hs.math.isNaN(value) -> boolean
Type Function
Description Returns 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.
Signature hs.math.randomFloat() -> number
Type Function
Description Returns a random floating point number between 0 and 1
Parameters
  • None
Returns
  • A random number between 0 and 1
Signature hs.math.randomFromRange(start, end) -> integer
Type Function
Description Returns a random integer between the start and end paramters
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