Module:Utils
Lua error in Module:Variable_arguments at line 63: attempt to call field 'trim' (a nil value).
This module provides several mathematical functions which are likely to be used frequently on the Xenharmonic Wiki.
Namely, the functions in this module can be called from other modules by using require("Module:Utils")
and calling the underscore-prefixed functions.
Functions
trim(s)
- Removes leading and trailing whitespaces (but not interior ones) from a string.
_yesno(frame)
- Allows Module:Yesno, which is not invokable directly, to be accessed by templates through Template:Yesno.
table_contains(tbl, x)
*- Check if table contains x.
index_of(array, index)
*- Return the first index with the given value (or nil if not found).
value_provided(s)
*- Checks if
s
is a non-empty string.
wlink(a, b)
- Provides a link to Wikipedia.
eval_num_arg(input, def_value)
*- Checks if
input
is a number; on error, usedef_value
.
log(x, b)
- Returns the logarithm base
b
ofx
. Parameterb
defaults to base 2 (octave) if it is omitted.
gcd(a, b)
- Returns the greatest common divisor of
a
andb
.
round_dec(x, places)
- Returns
x
rounded to a precision ofplaces
decimal places. Parameterplaces
defaults to 0 if it is omitted.
round(x, prec)
- Returns
x
rounded to a precision ofprec
significant figures. Parameterprec
defaults to 6 if it is omitted.
is_prime(n)
*- Returns
true
if the given integern
is a prime number.
prime_factorization(n)
- Returns the prime factorization of the given integer
n
using the exponential form (in wikitext).
prime_factorization_raw(n)
*- Returns a table encoding the prime factorization of
n
.
signum(x)
*- Returns 1 for positive numbers, −1 for negative ones, and 0 for zero and non-integer inputs.
next_young_diagram(d)
- Returns the next Young diagram of the same size; the first one is
[N]
, the last one isLua error in Module:Variable_arguments at line 93: attempt to call field 'trim' (a nil value).
. After the last one,nil
is returned. The input table is modified.
* These functions are designed to be used by other modules only; they cannot be called with {{#invoke: }}
.
local p = {}
-- return logarithm base b of x
local function log(x, b)
b = b or 2 -- defaults to base 2 (octave) if b is omitted
return math.log(x)/math.log(b)
end
-- return x rounded to a precision of p decimal places
local function round(x, p)
p = p or 3 -- default to 3 decimal places if p is omitted
return math.floor(x*10^p+0.5)/10^p
end
return p