Module:Utils/doc: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Ganaram inukshuk (talk | contribs)
mNo edit summary
Ganaram inukshuk (talk | contribs)
clarify; transfer all function descriptions to module introspection
Line 8: Line 8:
{{Module introspection
{{Module introspection
| desc_trim = Removes leading and trailing whitespaces (but not interior ones) from a string.
| desc_trim = Removes leading and trailing whitespaces (but not interior ones) from a string.
| desc__yesno = Wrapper function for [[Module:Yesno]], for use with templates. }}
| desc__yesno = Wrapper function for [[Module:Yesno]], for use with templates. (Module:Yesno does not have a corresponding template.)
 
| desc_table_contains = Checks whether table <code>tbl</code> contains <code>value</code> and returns <code>true</code> (if found) or <code>false</code> if not found. Passing <code>compare_func</code> is optional. By default, <code>value</code> is a numeric value or a string; to check for other values, such as ratios defined by [[Module:Rational]], a comparison function <code>compare_func</code> must be passed in.
=== Functions ===
| desc_index_of = Returns the first index with the given <code>value</code> (or nil if not found). Passing <code>compare_func</code> is optional. By default, <code>value</code> is a numeric value or a string; to check for other values, such as ratios defined by [[Module:Rational]], a comparison function <code>compare_func</code> must be passed in.
 
| desc_value_provided = Checks whether <code>s</code> is a non-empty string.
 
| desc_eval_num_arg = Evaluates <code>input</code> as a number, fraction notation supported but not other expressions; uses <code>def_value</code> on error.
; <code>_clamp(val, min_val, max_val)</code>
| desc_log = Returns the logarithm base <code>b</code> of <code>x</code>. Parameter <code>b</code> defaults to base 2 (octave) if it is omitted.
: Returns <code>val</code> such that it's between <code>min_val</code> and <code>max_val</code>.
| desc_gcd = Returns the greatest common divisor of <code>a</code> and <code>b</code>.  
 
| desc_round_dec = 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>table_contains(tbl, value, compare_func)</code> *
| desc_round = 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.
: Checks whether table <code>tbl</code> 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}}
| desc_is_prime = Returns <code>true</code> if the given integer <code>n</code> is a prime number.
 
| desc_prime_factorization = Returns the prime factorization of the given integer <code>n</code> using the exponential form (in wikitext).
; <code>index_of(array, value, compare_func)</code> *
| desc_prime_factorization_raw = Returns a table encoding the prime factorization of <code>n</code>.
: Returns 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}}
| desc_signum = Returns 1 for positive numbers, −1 for negative ones, and 0 for zero and non-integer inputs.
 
| desc_next_young_diagram = 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.}}
; <code>value_provided(s)</code> *
: Checks if <code>s</code> is a non-empty string.
 
; <code>eval_num_arg(input, def_value)</code> *
: Evaluates <code>input</code> as a number, fraction notation supported but not other expressions; uses <code>def_value</code> on error.
 
; <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>.


}}
}}

Revision as of 04:19, 25 November 2025

This module primarily serves as a library for other modules and has no corresponding template.

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 desired functions.

For pairs of functions with names that differ by a single leading underscore (for example, gcd and _gcd), the function with an underscore is meant to be called by other modules, and the function without an underscore can be used with #invoke.

To see introspection summary, see this module's main page.