|
|
| Line 1: |
Line 1: |
| {{documentation| | | {{documentation|{{dochead|header=library}} |
| {{dochead|header=none}}{{lua|Arguments|yesno}} | |
| This module provides several mathematical functions which are likely to be used frequently on the Xenharmonic Wiki. | | 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 <code>require("Module:Utils")</code> and calling the underscore-prefixed functions. | | Namely, the functions in this module can be called from other modules by using <code>require("Module:Utils")</code> and calling the underscore-prefixed functions. |
| | | {{module introspection}} |
| === Functions ===
| | {{todo|inline=1|add back function descriptions}} |
| ; <code>trim(s)</code>
| |
| : Removes leading and trailing whitespaces (but not interior ones) from a string.
| |
| | |
| ; <code>_yesno(frame)</code>
| |
| : Allows [[Module:Yesno]], which is not invokable directly, to be accessed by templates through [[Template:Yesno]].
| |
| | |
| ; <code>_clamp(val, min_val, max_val)</code>
| |
| : Returns <code>val</code> such that it's between <code>min_val</code> and <code>max_val</code>.
| |
| | |
| ; <code>table_contains(tbl, value, compare_func)</code>*
| |
| : Check whether table contains <code>value</code>. Passing in <code>compare_func</code> is optional; if <code>value</code> is a table and <code>tbl</code> a table of tables, pass in a comparison function <code>compare_func</code>, which returns <code>true</code> if <code>value</code> and an element in <code>tbl</code> have the same value.
| |
| | |
| ; <code>index_of(array, value, compare_func)</code>*
| |
| : Return the first index with the given <code>value</code> (or nil if not found). Passing in <code>compare_func</code> is optional; if <code>value</code> is a table and <code>tbl</code> a table of tables, pass in a comparison function <code>compare_func</code>, which returns <code>true</code> if <code>value</code> and an element in <code>tbl</code> have the same value.
| |
| | |
| ; <code>value_provided(s)</code>*
| |
| : Checks if <code>s</code> is a non-empty string.
| |
| | |
| ; <code>wlink(a, b)</code>
| |
| : Provides a link to Wikipedia.
| |
| | |
| ; <code>eval_num_arg(input, def_value)</code>*
| |
| : Checks if <code>input</code> is a number; on error, use <code>def_value</code>.
| |
| | |
| ; <code>log(x, b)</code>
| |
| : Returns the logarithm base <code>b</code> of <code>x</code>. Parameter <code>b</code> defaults to base 2 (octave) if it is omitted.
| |
| | |
| ; <code>gcd(a, b)</code>
| |
| : Returns the greatest common divisor of <code>a</code> and <code>b</code>.
| |
| | |
| ; <code>round_dec(x, places)</code>
| |
| : Returns <code>x</code> rounded to a precision of <code>places</code> decimal places. Parameter <code>places</code> defaults to 0 if it is omitted.
| |
| | |
| ; <code>round(x, prec)</code>
| |
| : Returns <code>x</code> rounded to a precision of <code>prec</code> significant figures. Parameter <code>prec</code> defaults to 6 if it is omitted.
| |
| | |
| ; <code>is_prime(n)</code>*
| |
| : Returns <code>true</code> if the given integer <code>n</code> is a prime number.
| |
| | |
| ; <code>prime_factorization(n)</code>
| |
| : Returns the prime factorization of the given integer <code>n</code> using the exponential form (in wikitext).
| |
| | |
| ; <code>prime_factorization_raw(n)</code>*
| |
| : Returns a table encoding the prime factorization of <code>n</code>.
| |
| | |
| ; <code>signum(x)</code>*
| |
| : Returns 1 for positive numbers, −1 for negative ones, and 0 for zero and non-integer inputs.
| |
| | |
| ; <code>next_young_diagram(d)</code>
| |
| : Returns the next Young diagram of the same size; the first one is <code>[N]</code>, the last one is <code>{{nowrap|[1, 1, ..., 1]}}</code>. After the last one, <code>nil</code> is returned. The input table is modified.
| |
| | |
| | |
| <nowiki />* These functions are designed to be used by other modules only; they cannot be called with <code>{{<nowiki />#invoke: }}</code>.
| |
| }} | | }} |