Module:Utils/doc: Difference between revisions

Ganaram inukshuk (talk | contribs)
mNo edit summary
Add back function descriptions. Request clarification
Line 1: Line 1:
{{documentation|{{dochead|header=library}}
{{Documentation|{{dochead|header=library}}
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.


Line 5: Line 5:


For pairs of functions with names that differ by a single leading underscore (for example, <code>gcd</code> and <code>_gcd</code>), the function ''with'' an underscore is meant to be called by other modules, and the function ''without'' an underscore can be used with <code>#invoke</code>.
For pairs of functions with names that differ by a single leading underscore (for example, <code>gcd</code> and <code>_gcd</code>), the function ''with'' an underscore is meant to be called by other modules, and the function ''without'' an underscore can be used with <code>#invoke</code>.
{{module introspection}}
 
{{todo|inline=1|expand|comment=add back function descriptions}}
{{Module introspection}}
 
=== Functions ===
; <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]].{{clarify}}
 
; <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.{{clarify}}
 
; <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.{{clarify}}
 
; <code>value_provided(s)</code> *
: Checks if <code>s</code> is a non-empty string.
 
; <code>eval_num_arg(input,&nbsp;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>[1, 1, …, 1]</code>. After the last one, <code>nil</code> is returned. The input table is modified.
 
<nowiki>*</nowiki> These functions are designed to be used by other modules only; they cannot be called with <code><nowiki>{{#invoke: }}</nowiki></code>.
 
}}
}}