Module:Utils/doc: Difference between revisions

ArrowHead294 (talk | contribs)
mNo edit summary
Revert for readability (see talk)
 
(23 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{documentation|
{{Documentation|{{dochead|header=library}}
{{dochead|header=none}}
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 desired functions.
 
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}}


=== Functions ===
=== Functions ===
Line 9: Line 12:
: Removes leading and trailing whitespaces (but not interior ones) from a string.
: Removes leading and trailing whitespaces (but not interior ones) from a string.


; <code>table_contains(tbl,&nbsp;x)</code>*
; <code>_yesno(frame)</code>
: Check if table contains x.
: Wrapper function for [[Module: Yesno]], for use with templates. (Module: Yesno does not have a corresponding template.)


; <code>index_of(array,&nbsp;index)</code>*
; <code>_clamp(value, min_value, max_value)</code>
: Return the first index with the given value (or nil if not found).
: Returns <code>value</code> such that it is between <code>min_value</code> and <code>max_value</code>.


; <code>value_provided(s)</code>*
; <code>table_contains(tbl, value, compare_func)</code> *
: Checks if <code>s</code> is a non-empty string.
: 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.


; <code>eval_num_arg(input, def_value)</code>*
; <code>index_of(array, value, compare_func)</code> *
: Checks if <code>input</code> is a number; on error, use <code>def_value</code>.
: 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.  


; <code>log(x,&nbsp;b)</code>
; <code>value_provided(s)</code> *
: Checks whether <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.
: 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,&nbsp;b)</code>
; <code>log2(x)</code>
: Returns the base-2 logarithm of <code>x</code>.
 
; <code>gcd(a, b)</code>
: Returns the greatest common divisor of <code>a</code> and <code>b</code>.  
: Returns the greatest common divisor of <code>a</code> and <code>b</code>.  


; <code>round_dec(x,&nbsp;places)</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.
: 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,&nbsp;prec)</code>
; <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.
: 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.


Line 39: Line 51:
: Returns the prime factorization of the given integer <code>n</code> using the exponential form (in wikitext).
: Returns the prime factorization of the given integer <code>n</code> using the exponential form (in wikitext).


; <code>prime_factorization_raw(n)</code>*
; <code>prime_factorization_raw(n)</code> *
: Returns a table encoding the prime factorization of <code>n</code>.
: Returns a table encoding the prime factorization of <code>n</code>.


; <code>signum(x)</code>*
; <code>signum(x)</code> *
: Returns 1 for positive numbers, −1 for negative ones, and 0 for zero and non-integer inputs.
: Returns 1 for positive numbers, −1 for negative ones, and 0 for zero and non-integer inputs.


; <code>next_young_diagram(d)</code>
; <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.
: 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>.


<nowiki />* These functions are designed to be used by other modules only; they cannot be called with <code>{{<nowiki />#invoke:&nbsp;}}</code>.
}}
}}