Help:Calculation

From TrainzOnline
(Difference between revisions)
Jump to: navigation, search
(genesis, port unchanged from Wikipedia+cat w/{{Mediawiki} (for diff))
(Many link fixups, correct attrib -- what a nightmare, enough for now!!!)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
:''The accuracy and format of numeric results varies with the server; even on a single page, while for any rendering there is consistency within the page, there is no consistency among renderings.''
+
{{h:h|editor toc}}
 +
{{TOL-refpg}}
 +
{{TOCright}}
 +
:''The accuracy and format of numeric results varies with the server. Currently the results produced by Wikimedia servers seem to be uniform.''
  
The MediaWiki extension [[mw:ParserFunctions|ParserFunctions]] enables users to perform [[meta:Help:Calculation|calculations]], for simple arithmetic or for functions as on a [[scientific calculator]], with rounding, floor, [[logarithm]]s (<code>ln</code>), [[sine]], [[cosine]], or [[modulo]] (etc.), plus boolean comparisons with "=" or "<" or ">=" etc.
+
The functions #expr: and #ifexpr: of MediaWiki extension {{mw|Extension:ParserFunctions|ParserFunctions}} evaluate numerical [[Wikipedia:Expression (programming)|expressions]], and also boolean expressions involving numbers and booleans (not strings). The syntax is
  
The <tt>expr</tt> function evaluates numerical expressions, and also boolean expressions involving numbers and booleans (not strings). The syntax is
+
:<nowiki>{{</nowiki> #expr: ''expression'' }}
  
:<nowiki>{{</nowiki> #expr: ''expression'' }} &nbsp; - Spaces are not required, but spaces/commas within numbers are not allowed.
+
Spaces are not needed, except between words (for operators and constants). Inside numbers no spaces are allowed.
  
The supported operators (roughly in order of precedence) are:&nbsp;
+
==General==
'''<tt>not</tt>''', '''<tt>^</tt>''',
+
An expression is a string representing a [[Wikipedia:tree structure|tree structure]] with [[Wikipedia:Data type|type]]/[[Wikipedia:Value (computer science)|value]] pairs as nodes, with [[Wikipedia:Binary operation|binary operators]] in [[Wikipedia:Infix notation|infix notation]], [[Wikipedia:Unary operation|unary operators]] in [[Wikipedia:Polish notation|prefix notation]], and end nodes represented by numbers and constants. Letters in operators and names of constants are case-insensitive.
'''<tt>*</tt>''', '''<tt>/</tt>''', '''<tt>div</tt>''', '''<tt>mod</tt>''',
+
'''<tt>+</tt>''', '''<tt>-</tt>''',
+
'''<tt>round</tt>''', '''<tt>trunc</tt>''',
+
'''<tt>=</tt>''', '''<tt>&lt;&gt;</tt>''', '''<tt>!=</tt>''', '''<tt>&lt;=</tt>''', '''<tt>&gt;=</tt>''',
+
'''<tt>and</tt>''', and
+
'''<tt>or</tt>'''. Functions include: <code>'''abs(&nbsp;), ceil(&nbsp;), floor(&nbsp;), [[natural logarithm|<font color=black>ln</font>]](&nbsp;), sin(&nbsp;), cos(&nbsp;), tan(&nbsp;)''',</code> etc.
+
  
The precision supports 14-digit numbers ([[pi]]: {{#expr:pi}}, or longer on some servers) and E-notation ("1.54E17"), but [[truncation error]] can cause mismatches on comparisons of very large numbers or tiny decimals, so see below: "[[#Tactics for handling extreme numbers|Tactics for handling extreme numbers]]".
+
The ParserFunctions software determines which operators and constants, and what numbers, are supported. The e in scientific notation and the sign of a number are treated as operators, the supported literal numbers are unsigned numbers in ordinary decimal format. The ParserFunctions software also determines the precedence of the operators and the error messages, and it converts all literal numbers to type float.  
  
== Operators ==
+
For the rest the ParserFunctions software just defines the operators in terms of [[Wikipedia:PHP|PHP]] functions and operators, and any type conversions and pecularities of the operators are properties of these PHP functions and operators themselves. Also, the format of the result is entirely determined by PHP.
 +
 
 +
The data types are the PHP data types [http://www.php.net/manual/en/language.types.float.php float] ([[Wikipedia:Double precision floating-point format|double precision floating-point format]]) and [http://www.php.net/manual/en/language.types.integer.php integer] (64-bit [[Wikipedia:Integer_(computer_science)|integer]]). The range for type integer is from -(2^63) = {{formatnum:{{#expr:trunc(1-2^63)}}}} through 2^63 - 1 = {{formatnum:{{#expr:(trunc2)^(trunc62)+((trunc2)^(trunc62)-(trunc1))}}}}. Type float allows fractions and very large  numbers, but only in the range -(2^52) = {{formatnum:{{#expr:trunc-(2^52)}}}} through (2^52) = {{formatnum:{{#expr:trunc(2^52)}}}} all integer values can be exactly represented in type float (see [[Help:Calculation accuracy]]).
 +
 
 +
[[Wikipedia:Type_system#Dynamic_typing|Dynamic typing]] is applied. The end nodes are all of type float (as mentioned, numbers are converted to float; this applies even for numbers with an integer value and format). The data type of the result of an operation depends on the operator, and for some operators on the type(s) of the argument(s), and in some cases on their value(s). If according to these rules the result is of type float,  any argument of type integer is converted to float before the operation, and the result is also rounded to float:
 +
*{{xpsoc|numfh|(trunc2^trunc62+trunc512)-2^62}}
 +
*{{xpsoc|numfh|(trunc2^trunc62+trunc512)+(trunc2^trunc62+trunc1535)}}
 +
*{{xpsoc|numfh|2^63+2047}}
 +
 
 +
Apart from that, a numerical value outside the range of type integer is converted to float, except in the case of trunc (and mod, which involves applying trunc to the arguments first).
 +
 
 +
There are 31 operators (excluding two synonyms), two constants, and the unsigned numbers in ordinary decimal notation.
 +
 
 +
== Operators, numbers, and constants ==
 +
 
 +
Since literal numbers are of type float, trunc is sometimes used in the examples to construct an integer-type argument, to demonstrate the result of an operator for this case.
 +
 
 +
{| class="wikitable sortable"
 +
! ''Operator''
 +
! ''<abbr title="number of arguments">Args</abbr>''
 +
! ''Operation''
 +
! ''PHP''
 +
! ''Data type''
 +
! ''<abbr title="Precedence">Prio</abbr>''
 +
! ''Examples''
 +
|-
 +
| <code>'''-'''</code> || 1
 +
| [[Wikipedia:Unary operation#Unary negative and positive|unary '''<tt>-</tt><code>''' sign]]  (negation)
 +
| [http://php.net/manual/en/language.operators.arithmetic.php -] || same as argument|| {{nts|10}} ||
 
{| class="wikitable"
 
{| class="wikitable"
! Operator
+
{{xpettu|-|12}}
! Operation
+
{{xpettu|-|trunc12}}
! Examples
+
{{xpettu|-|trunc(-2^63)}}
 +
|}
 
|-
 
|-
| none|| none
+
| '''<code>e<code>''' between subexpressions|| 2 || *10^ || [http://php.net/manual/en/language.operators.arithmetic.php *] [http://php.net/manual/en/function.pow.php pow] (10,..) || float unless the factor on the left is of type integer and the exponent is non-negative and of type integer || {{nts|10}}
 +
 
 
|
 
|
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:123456789012345|gives={{!}}{{!}}}}
+
{{xpettb|2|e|3}}
|-
+
{{xpettb|-2.3|e|-4}}
|{{xpd0|#expr:1.23456789012345|gives={{!}}{{!}}}}
+
{{xpettb|(trunc2)|e|(trunc-3)}}
|-
+
{{xpettb|(trunc2)|e|(trunc0)}}
|{{xpd0|#expr:.000001|gives={{!}}{{!}}}}
+
{{xpettb|(trunc2)|e|(trunc18)}}
|-
+
{{xpettb|(trunc2)|e|(trunc19)}}
|{{xpd0|#expr:.00000123456789012345|gives={{!}}{{!}}}}
+
{{xpett|6e(5-2)e-2}}
|-
+
{{xpett|1e.5}}
|{{xpd0|#expr:.123e4|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:123E-2|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:e|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:pi|gives={{!}}{{!}}}}
+
 
|}
 
|}
  
 
Wrong:
 
Wrong:
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:e4|gives={{!}}{{!}}}}
+
|{{xpett|e4}}
 
|}
 
|}
 
|-
 
|-
! exp
+
| '''<code>exp<code>''' || 1
| [[E_(mathematical_constant)|e]] to the specified power
+
| [[Wikipedia:Exponential function|exponential function e<sup>x</sup>]]
|
+
| [http://php.net/manual/en/function.exp.php exp] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:exp1.2|gives={{!}}{{!}}}}
+
{{xpettu|exp|43}}
 +
{{xpettu|exp| trunc0}}
 +
{{xpettu|exp|709}}
 +
{{xpettu|exp|-744}}
 
|}
 
|}
  
 
Compare:
 
Compare:
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:e^1.2|gives={{!}}{{!}}}}
+
|{{xpett|e^43}}
 +
|-
 +
|{{xpett|trunc exp43}}
 
|}
 
|}
 
|-
 
|-
! ln
+
| '''<code>ln<code>''' || 1
| Natural logarithm
+
| [[Wikipedia:Natural logarithm|natural logarithm]]
|
+
| [http://php.net/manual/en/function.log.php <sup>log</sup>] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:ln2|gives={{!}}{{!}}}}
+
{{xpettu|ln|2}}
 +
{{xpettu|ln| trunc1}}
 +
{{xpettu|ln|8.9e307}}
 +
{{xpettu|ln|.5e-323}}
 
|}
 
|}
Hence, the base ten logarithm of e.g. 2:
+
Hence, the common logarithm of e.g. 2:
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:ln2/ln10|gives={{!}}{{!}}}}
+
|{{xpett|ln2/ln10}}
 
|}
 
|}
 
|-
 
|-
! abs
+
| '''<code>abs<code>''' || 1
|  
+
| [[Wikipedia:Absolute value|absolute value]]
|
+
| [http://php.net/manual/en/function.abs.php abs] || same as argument || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:abs-1.2|gives={{!}}{{!}}}}
+
{{xpettu|abs|-2}}
 +
{{xpettu|abs| trunc-2}}
 +
{{xpettu|abs| trunc-2^63}}
 
|}
 
|}
 
|-
 
|-
! trunc
+
| '''<code>trunc<code>''' || 1
|  
+
| [[Wikipedia:Truncation|truncation]]
|
+
| [http://php.net/manual/en/language.types.integer.php#language.types.integer.casting (int)], i.e. [[Wikipedia:Type conversion|type-casting]] to integer || integer || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:trunc1.2|gives={{!}}{{!}}}}
+
{{xpettu|trunc|1.2}}
|-
+
{{xpettu|trunc|1.8}}
|{{xpd0|#expr:trunc-1.2|gives={{!}}{{!}}}}
+
{{xpettu|trunc|-1.2}}
 +
{{xpettu|trunc|(-2^64+1e5)}}
 +
{{xpettu|trunc|(-2^63+1e5)}}
 +
{{xpettu|trunc|(2^63)}}
 +
{{xpettu|trunc|(2^63+1e5)}}
 +
{{xpettu|trunc|(2^64+1e5)}}
 
|}
 
|}
 
|-
 
|-
! floor
+
| '''<code>floor<code>''' || 1
|  
+
| [[Wikipedia:Floor function|floor function]]
|
+
| [http://php.net/manual/en/function.floor.php floor] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:floor1.2|gives={{!}}{{!}}}}
+
{{xpettu|floor|1.2}}
|-
+
{{xpettu|floor|-1.2}}
|{{xpd0|#expr:floor-1.2|gives={{!}}{{!}}}}
+
{{xpettu|floor| trunc3}}
 
|}
 
|}
 
|-
 
|-
! ceil
+
| '''<code>ceil<code>''' || 1
|  
+
| [[Wikipedia:Ceiling function|ceiling function]]
|
+
| [http://php.net/manual/en/function.ceil.php ceil] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:ceil1.2|gives={{!}}{{!}}}}
+
{{xpettu|ceil|1.2}}
|-
+
{{xpettu|ceil|-1.2}}
|{{xpd0|#expr:ceil-1.2|gives={{!}}{{!}}}}
+
{{xpettu|ceil| trunc3}}
 
|}
 
|}
 
|-
 
|-
! sin
+
| '''<code>sin<code>''' || 1
|  
+
| [[Wikipedia:Sine function|sine]]
|
+
| [http://php.net/manual/en/function.sin.php sin] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:sin.1|gives={{!}}{{!}}}}
+
{{xpettu|sin|.1}}
 +
{{xpettu|sin| trunc1}}
 
|}
 
|}
 
With an angle in degrees, e.g. 30°:
 
With an angle in degrees, e.g. 30°:
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:sin(30*pi/180)|gives={{!}}{{!}}}}
+
|{{xpett|sin(30*pi/180)}}
 
|}
 
|}
 
|-
 
|-
! cos
+
| '''<code>cos<code>''' || 1
|  
+
| [[Wikipedia:Cosine function|cosine]]
|
+
| [http://php.net/manual/en/function.cos.php cos] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:cos.1|gives={{!}}{{!}}}}
+
{{xpettu|cos|.1}}
 +
{{xpettu|cos| trunc1}}
 
|}
 
|}
 
|-
 
|-
! tan
+
| '''<code>tan<code>''' || 1
|  
+
| [[Wikipedia:Tangent function|tangent]]
|
+
| [http://php.net/manual/en/function.tan.php tan] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:tan.1|gives={{!}}{{!}}}}
+
{{xpettu|tan|.1}}
 +
{{xpettu|tan| trunc1}}
 
|}
 
|}
 
|-
 
|-
! asin
+
| '''<code>asin<code>''' || 1
|  
+
| [[Wikipedia:Arcsine|arcsine]]
|
+
| [http://php.net/manual/en/function.asin.php asin] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:asin.1|gives={{!}}{{!}}}}
+
{{xpettu|asin|.1}}
 +
{{xpettu|asin| trunc1}}
 
|}
 
|}
 
|-
 
|-
! acos
+
| '''<code>acos<code>''' || 1
|  
+
| [[Wikipedia:Arccosine|arccosine]]
|
+
| [http://php.net/manual/en/function.acos.php acos] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:acos.1|gives={{!}}{{!}}}}
+
{{xpettu|acos|.1}}
 +
{{xpettu|acos| trunc1}}
 +
{{xpettu|2*|acos 0}}
 
|}
 
|}
 
|-
 
|-
! atan
+
| '''<code>atan<code>''' || 1
|  
+
| [[Wikipedia:Arctangent|arctangent]]
|
+
| [http://php.net/manual/en/function.atan.php atan] || float || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:atan.1|gives={{!}}{{!}}}}
+
{{xpettu|atan|.1}}
 +
{{xpettu|atan| trunc1}}
 +
{{xpettu|4*|atan 1}}  
 
|}
 
|}
 
|-
 
|-
! +
+
| '''<code>not<code>''' || 1
| Unary '''<tt>+</tt>''' sign
+
| [[Wikipedia:Negation|negation]], logical NOT
|
+
| [http://www.php.net/manual/en/language.operators.logical.php !] || integer (1 or 0) || {{nts|9}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:+12|gives={{!}}{{!}}}}
+
{{xpettu|not|0}}
|-
+
{{xpettu|not|1}}
|{{xpd0|#expr:++12|gives={{!}}{{!}}}}
+
{{xpettu|not|2}}
|-
+
{{xpettu|not| trunc1}}
|{{xpd0|#expr:+-12|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! -
+
| '''<code>^<code>''' || 2
| Unary '''<tt>-</tt>''' sign (negation)
+
| [[Wikipedia:Exponentiation|exponentiation]] (power)
|
+
| [http://php.net/manual/en/function.pow.php pow] || float unless the base is of type integer and the exponent is non-negative and of type integer || {{nts|8}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:-12|gives={{!}}{{!}}}}
+
{{xpettb|2|^|3}}
|-
+
{{xpettb|-2|^|3}}
|{{xpd0|#expr:-+12|gives={{!}}{{!}}}}
+
{{xpettb|-2|^|4}}
|-
+
{{xpettb|(trunc2)|^|(trunc-3)}}
|{{xpd0|#expr:--12|gives={{!}}{{!}}}}
+
{{xpettb|(trunc2)|^|(trunc0)}}
 +
{{xpettb|(trunc2)|^|(trunc62)}}
 +
{{xpettb|(trunc2)|^|(trunc63)}}
 +
{{xpettb|(-2)|^|1.2}}
 +
{{xpettb|(-2)|^|.5}}
 
|}
 
|}
 
|-
 
|-
! not
+
| '''<code>*<code>''' || 2
| Unary NOT, logical NOT
+
| [[Wikipedia:Multiplication|multiplication]]
|
+
| [http://php.net/manual/en/language.operators.arithmetic.php *] || integer if both arguments are integer, otherwise float || {{nts|7}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:not 0|gives={{!}}{{!}}}}
+
{{xpettb|2|*|3}}
|-
+
{{xpettb|(trunc2)|*|3}}
|{{xpd0|#expr:not 1|gives={{!}}{{!}}}}
+
{{xpettb|2|*|trunc3}}
|-
+
{{xpettb|(trunc2)|*|trunc3}}
|{{xpd0|#expr:not 2|gives={{!}}{{!}}}}
+
{{xpettb|(trunc1e10)|*|trunc1e9}}
 
|}
 
|}
 
|-
 
|-
! ^
+
| '''<code>/<code>''' (also written '''div''') || 2
| Power
+
|| [[Wikipedia:Division (mathematics)|division]] (div is not integer division<ref name="divmod">'''<code>div</code>''' and '''<code>mod</code>''' are different from all programming languages, see [[bugzilla:6068]]</ref>)
|
+
| [http://php.net/manual/en/language.operators.arithmetic.php /] || float, unless both arguments are integer and the mathematical result is an integer || {{nts|7}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:2^7|gives={{!}}{{!}}}}
+
{{xpettb|6|/|3}}
|-
+
{{xpettb|(trunc6)|/|3}}
|{{xpd0|#expr:2^-7|gives={{!}}{{!}}}}
+
{{xpettb|2|/|trunc6}}
|-
+
{{xpettb|(trunc6)|/|trunc3}}
|{{xpd0|#expr:(-2)^7|gives={{!}}{{!}}}}
+
{{xpettb|(trunc6)|/|trunc4}}
|-
+
|{{xpd0|#expr:(-2)^8|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:2^1.2|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:2^.5|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:(-2)^1.2|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:(-2)^.5|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! *
+
| '''<code>mod<code>''' || 2
| Multiplication
+
| [[Wikipedia:Modulo operation|modulo]] operation,&#160;remainder&#160;of&#160;division after truncating both operands to an integer.<ref name="divmod"/>
|
+
| [http://php.net/manual/en/language.operators.arithmetic.php %] || integer || {{nts|7}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:30*7|gives={{!}}{{!}}}}
+
{{xpettb|30|mod|7}}
|-
+
{{xpettb|-30|mod|7}}
|{{xpd0|#expr:30*-7|gives={{!}}{{!}}}}
+
{{xpettb|30|mod|-7}}
 +
{{xpettb|-30|mod|-7}}
 +
{{xpettb|30.5|mod|7.9}}
 
|}
 
|}
 
|-
 
|-
! /
+
| '''<code>+</code>''' || 2
|| Division, same as '''div'''
+
|| [[Wikipedia:Addition|addition]]
|
+
| [http://php.net/manual/en/language.operators.arithmetic.php +] || integer if both arguments are integer, otherwise float || {{nts|6}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:30/7|gives={{!}}{{!}}}}
+
{{xpettb|2|+|3}}
|-
+
{{xpettb|(trunc2)|+|3}}
|{{xpd0|#expr:30/-7|gives={{!}}{{!}}}}
+
{{xpettb|2|+|trunc3}}
 +
{{xpettb|(trunc2)|+|trunc3}}
 +
{{xpettb|(trunc7e18)|+|trunc4e18}}
 
|}
 
|}
 
|-
 
|-
! [[w:en:Division_%28mathematics%29#Division_of_integers|div]]
+
| '''<code>-</code>''' || 2
|| Division, same as '''/''',<br />not integer division
+
|| [[Wikipedia:Subtraction|subtraction]]
|
+
| [http://php.net/manual/en/language.operators.arithmetic.php -] || integer if both arguments are integer, otherwise float || {{nts|6}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:30 div 7|gives={{!}}{{!}}}} (should be 4)
+
{{xpettb|3|-|2}}
 +
{{xpettb|(trunc3)|-|2}}
 +
{{xpettb|2|-|trunc2}}
 +
{{xpettb|(trunc3)|-|trunc2}}
 +
{{xpettb|(trunc-7e18)|-|trunc4e18}}
 
|}
 
|}
 
|-
 
|-
! [[w:en:Modulo operation|mod]]
+
| '''<code>round<code>''' || 2
|"Modulo",&#160;remainder&#160;of&#160;division after truncating both operands to an integer (PHP operator [http://www.php.net/manual/en/language.operators.arithmetic.php %]).<br /><br />Caveat, '''div''' and '''mod''' are different from all programming languages. This has been fixed (but needs to be committed), see [[bugzilla:6068]].
+
|| [[Wikipedia:rounding|rounds off]] the number on the left to a multiple of 1/10 raised to a power, with the exponent equal to the truncated value of the number given on the right
|
+
| [http://php.net/manual/en/function.round.php round] || float || {{nts|5}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:30 mod 7|gives={{!}}{{!}}}}
+
{{xpettb|9.876|round|2}}
|-
+
{{xpettb|(trunc1234)|round| trunc-2}}
|{{xpd0|#expr:30 mod -7|gives={{!}}{{!}}}}
+
{{xpettb|4.5|round|0}}
|-
+
{{xpettb|-4.5|round|0}}
|{{xpd0|#expr:-30 mod 7|gives={{!}}{{!}}}}
+
{{xpettb|46.857|round|1.8}}
|-
+
{{xpettb|46.857|round|-1.8}}
|{{xpd0|#expr:-30 mod -7|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:-8 mod -3|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:-8 mod 2.9|gives={{!}}{{!}}}} (should be 2.6)
+
|-
+
|{{xpd0|#expr:-8 mod 3.2|gives={{!}}{{!}}}} (should be 1.6)
+
|-
+
|{{xpd0|#expr:8.9 mod 3|gives={{!}}{{!}}}} (should be 2.9)
+
 
|}
 
|}
 
|-
 
|-
! <tt>+</tt>
+
| '''<code>=<code>''' || 2
|| Addition
+
|| [[Wikipedia:Equality (mathematics)|equality]] (numerical incl. logical, not for strings)
|
+
| [http://php.net/manual/en/language.operators.comparison.php ==] || integer (1 or 0) || {{nts|4}} ||
 +
{| class="wikitable"
 +
{{xpettb|3.0|{{=}}|3}}
 +
{{xpettb|3.1|{{=}}|3}}
 +
{{xpettb|3.0|{{=}}|trunc3}}
 +
{{xpettb|3.1|{{=}}|trunc3}}
 +
{{xpettb|1e16|{{=}}|trunc(1e16)}}
 +
{{xpettb|1e16|{{=}}|trunc(1e16)+trunc1}}
 +
{{xpettb|trunc(1e16)|{{=}}|trunc(1e16)+trunc1}}
 +
|}
 +
 
 +
wrong:
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:30 + 7|gives={{!}}{{!}}}}
+
|{{xpett|a{{=}}a}}
 
|}
 
|}
 
|-
 
|-
! <tt>-</tt>
+
| '''<code>&lt;&gt;<code>''' (also written '''!=''') || 2
|| Subtraction
+
| [[Wikipedia:Inequality|inequality]], logical ''xor'';  not for strings  (negation of =)
|
+
| [http://php.net/manual/en/language.operators.comparison.php !=] || integer (1 or 0) || {{nts|4}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:30 - 7|gives={{!}}{{!}}}}
+
{{xpettb|3|<>|3}}
 +
{{xpettb|3|<>|4}}
 
|}
 
|}
 +
 
|-
 
|-
! round
+
| '''<code>&lt;<code>''' || 2
|| Rounds off the number on the left to the power of 1/10 given on the right (PHP function [http://www.php.net/manual/en/function.round.php round])
+
|| [[Wikipedia:Inequality (mathematics)|less than]] (not for ordering of strings)
|
+
| [http://php.net/manual/en/language.operators.comparison.php <] || integer (1 or 0) || {{nts|4}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:4.2857 round 3|gives={{!}}{{!}}}}
+
{{xpettb|3|<|3}}
|-
+
{{xpettb|3|<|4}}
|{{xpd0|#expr:4.2857 round 0|gives={{!}}{{!}}}}
+
{{xpettb|2.9|<|3}}
|-
+
{{xpettb|3.0|<|3}}
|{{xpd0|#expr:42857 round -2|gives={{!}}{{!}}}}
+
{{xpettb|2.9|<|trunc3}}
|-
+
{{xpettb|3.0|<|trunc3}}
|{{xpd0|#expr:4.5 round 0|gives={{!}}{{!}}}}
+
{{xpettb|1e16|<|trunc(1e16)+trunc1}}
|-
+
|}
|{{xpd0|#expr:-4.5 round 0|gives={{!}}{{!}}}}
+
 
 +
wrong:
 +
{| class="wikitable"
 +
{{xpettb|a|<|b}}
 
|}
 
|}
 
|-
 
|-
! =
+
| '''<code>&gt;<code>''' || 2
|| Equality (numerical incl. logical)
+
|| [[Wikipedia:Inequality (mathematics)|greater than]] (same as <, with arguments reversed)
|
+
| [http://php.net/manual/en/language.operators.comparison.php >] || integer (1 or 0) || {{nts|4}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3{{=}}03.0|gives={{!}}{{!}}}}
+
{{xpettb|4|>|3}}
 +
{{xpettb|3|>|3}}
 
|}
 
|}
 
|-
 
|-
! &lt;&gt;
+
| '''<code>&lt;=<code>''' || 2
| Inequality, same as '''!='''
+
| [[Wikipedia:Inequality (mathematics)|less than or equal to]] (same as >=, with arguments reversed)
|
+
| [http://php.net/manual/en/language.operators.comparison.php <=] || integer (1 or 0) || {{nts|4}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3<>03.0|gives={{!}}{{!}}}}
+
{{xpettb|3|<{{=}}|4}}
|-
+
{{xpettb|3|<{{=}}|3}}
|{{xpd0|#expr:3<>4|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
!| !=
+
| '''<code>&gt;=<code>''' || 2
|| Inequality, same as '''&lt;&gt;''', logical ''xor''
+
| [[Wikipedia:Inequality (mathematics)|greater than or equal to]] (negation of <)
|
+
| [http://php.net/manual/en/language.operators.logical.php >=] || integer (1 or 0) || {{nts|4}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3!{{=}}03.0|gives={{!}}{{!}}}}
+
{{xpettb|4|>{{=}}|3}}
|-
+
{{xpettb|3|>{{=}}|3}}
|{{xpd0|#expr:3!{{=}}4|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! &lt;
+
| '''<code>and<code>''' || 2
|| Less than
+
| [[Wikipedia:Logical conjunction|logical AND]]
|
+
| [http://php.net/manual/en/language.operators.logical.php &&] || integer (1 or 0) || {{nts|3}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3<2|gives={{!}}{{!}}}}
+
{{xpettb|3|and|4}}
|-
+
{{xpettb|-3|and|0}}
|{{xpd0|#expr:3<3|gives={{!}}{{!}}}}
+
{{xpettb|0|and|4}}
|-
+
{{xpettb|0|and|0}}
|{{xpd0|#expr:3<4|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! &gt;
+
| '''<code>or<code>''' || 2
|| Greater than
+
| [[Wikipedia:Logical disjunction|logical OR]]
|
+
| [http://php.net/manual/en/language.operators.logical.php <nowiki>||</nowiki>] || integer (1 or 0) || {{nts|2}} ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3>2|gives={{!}}{{!}}}}
+
{{xpettb|3|or|4}}
|-
+
{{xpettb|-3|or|0}}
|{{xpd0|#expr:3>3|gives={{!}}{{!}}}}
+
{{xpettb|0|or|4}}
|-
+
{{xpettb|0|or|0}}
|{{xpd0|#expr:3>4|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! &lt;=
+
| '''<code>+<code>''' || 1
| Less than or equal to
+
| [[Wikipedia:Unary operation#Unary negative and positive|unary '''<tt>+</tt><code>''' sign]]
|
+
| (nothing) || same as argument || n.a. ||
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3<{{=}}2|gives={{!}}{{!}}}}
+
{{xpettu|+|1}}
|-
+
{{xpettu|+|-1}}
|{{xpd0|#expr:3<{{=}}3|gives={{!}}{{!}}}}
+
{{xpettu|+|trunc1}}
|-
+
|{{xpd0|#expr:3<{{=}}4|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! &gt;=
+
| (number) || 0
| Greater than or equal to
+
| unsigned number in ordinary decimal notation (unary plus and minus and e are treated as operators, see elsewhere in this table) || [http://nl.php.net/manual/en/function.floatval.php floatval] || float || n.a.
 
|
 
|
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3>{{=}}2|gives={{!}}{{!}}}}
+
| {{xpett|1234567890123456789}}
 
|-
 
|-
|{{xpd0|#expr:3>{{=}}3|gives={{!}}{{!}}}}
+
| {{xpett|123456789.0123456789}}
|-
+
|{{xpd0|#expr:3>{{=}}4|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! and
+
| '''<code>e<code>''' as subexpression || 0
| Logical AND
+
| constant [[Wikipedia:e (mathematical constant)|e]] || [http://php.net/manual/en/function.exp.php exp](1) || float || n.a.
 
|
 
|
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3 and 4|gives={{!}}{{!}}}}
+
| {{xpett|e}}
|-
+
|{{xpd0|#expr:0 and 3|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:-3 and 0|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:0 and 0|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|-
 
|-
! or
+
| '''<code>pi<code>''' || 0
| Logical OR
+
| constant [[Wikipedia:pi|π]] || [http://php.net/manual/en/function.pi.php pi]() || float || n.a.
 
|
 
|
 
{| class="wikitable"
 
{| class="wikitable"
|{{xpd0|#expr:3 or 4|gives={{!}}{{!}}}}
+
| {{xpett|pi}}
|-
+
|{{xpd0|#expr:0 or 3|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:-3 or 0|gives={{!}}{{!}}}}
+
|-
+
|{{xpd0|#expr:0 or 0|gives={{!}}{{!}}}}
+
 
|}
 
|}
 
|}
 
|}
  
The boolean operators consider 0 to be false and any other number to be true. An intermediate or final result "true" is identified with 1. Thus {{xpd0|#expr: (2 < 3) + 1}}. Note that "and" and "or" work with #expr and #ifexpr only; for use with #if, #ifeq, and #ifexist, use 1 as then-text and 0 as else-text, and combine results with "and" and "or" in an outer #expr or #ifexpr. Instead of <nowiki>{{ #expr: {{#if:{{{a}}}|1|0}} or {{#if:{{{b}}}|1|0}} }} we can also use {{#if:{{{a}}}{{{b}}}|1|0}}}}</nowiki>. For negation, simply subtract from 1 or interchange then- and else-part.
+
Logical operators return 1 for true and 0 for false, and interpret 0 as false and any other number as true. Thus {{xpd0|d=|#expr: (2 < 3) + 1}}. Note that "and" and "or" work with #expr and #ifexpr only; for use with #if, #ifeq, and #ifexist, use 1 as then-text and 0 as else-text, and combine results with "and" and "or" in an outer #expr or #ifexpr. Instead of <nowiki>{{ #expr: {{#if:{{{a}}}|1|0}} or {{#if:{{{b}}}|1|0}} }} we can also use {{#if:{{{a}}}{{{b}}}|1|0}}}}</nowiki>. For negation, simply subtract from 1 or interchange then- and else-part.
 +
 
 +
Precedence is indicated in the table, a higher number means that the operator is applied first. Examples (">" refers to going before, "~" means application from left to right):
 +
*e > floor, not, etc.: {{xpsoc|#expr:floor1.5e1}}, {{xpsoc|#expr:not0e1}}
 +
*floor > ^: {{xpsoc|#expr:floor1.5^2}}
 +
*^ > *: {{xpsoc|#expr:2*3^2}}
 +
*<nowiki>*</nowiki> ~ / ~ mod: {{xpsoc|#expr:12/3*2}}, {{xpsoc|#expr:111/3mod10}}, {{xpsoc|#expr:358mod10*2}},
 +
*<nowiki>*</nowiki> > +, -: {{xpsoc|#expr:2+3*4}}, {{xpsoc|#expr:2-3*4}}
 +
*+ ~ -: {{xpsoc|#expr:6-2+3}}, {{xpsoc|#expr:-2+3}}
 +
*+, - > round: {{xpsoc|#expr:1.234round2-1}}
 +
*round > = etc.: {{xpsoc|1=#expr:1.23=1.234round2}}
 +
*= etc. > and: {{xpsoc|1=#expr:1 and 2=1}}
 +
*and > or: {{xpsoc|1=#expr:1 or 1 and 0}}
 +
 
 +
In the case of equal precedence number, evaluation is from left to right:
 +
*{{xpsoc|#expr:12/2*3}}
 +
*{{xpsoc|#expr:3^3^3}}
  
Precedence:
+
Parentheses can force a different precedence: {{xpsoc|#expr:(2+3)*4}}
*{{xpd0|#expr: 2 - 3 + 4 / 5 * 6}}
+
  
(+ and - have equal precedence, * and / also, both higher than the former two).
+
Blank spaces are good for readability but not needed for working properly, except between words (including "e"), and not allowed within numbers:
 +
*{{xpd0|d=|#expr:7mod3}}
 +
*{{xpd0|d=|#expr:7.5round0}}
 +
*{{xpd0|d=|#expr:0and1}}
 +
*{{xpd0|d=|#expr:0or not0}}
 +
*{{xpd0|d=|#expr:0ornot0}}
 +
*{{xpd0|d=|#expr:123 456}}
 +
*{{xpd0|d=|#expr:not not3}}
 +
*{{xpd0|d=|#expr:notnot3}}
  
*{{xpd0|1=#expr: 2 = 5 < 3 + 4}}
+
*{{xpd0|d=|#expr:---2}}
 +
*{{xpd0|d=|#expr:-+-2}}
 +
*{{xpd0|d=|#expr:2*-3}}
 +
*{{xpd0|d=|#expr:-not-not-not0}}
 +
*{{xpd0|d=|#expr:2*/3}}
 +
*{{xpd0|d=|#expr:sinln1.1}}
 +
*{{xpd0|d=|#expr:sin ln1.1}}
  
(first +, then =, then <).
+
For scientific notation e is treated as an operator. An e between subexpressions works just like *10^, except that together with the unary minus, it has the highest precedence, e.g. before a separate ^, and that the implicit 10 is of type integer, not float. An e as subexpression (i.e., with an each side either nothing or an operator) is Euler's constant. An e with on one side nothing or an operator and on the other side a subexpression gives an error message.
  
*{{xpd0|#expr:1.234 + 1.234 round 1 + 1 }}
+
==Transitivity==
 +
For comparing a number of type float with one of type integer, the integer is converted to float. Therefore the operators =, <= and >= are not [[Wikipedia:Transitive relation|transitive]] with mixed types:
 +
*{{xpsoc|1=#expr:trunc1e16=1e16}}
 +
*{{xpsoc|1=#expr:1e16=trunc1e16+trunc1}}
 +
*{{xpsoc|1=#expr:trunc1e16=trunc1e16+trunc1}}
  
(first additions, then round)
+
*{{xpsoc|1=#expr:trunc1e16>=1e16}}
 +
*{{xpsoc|1=#expr:1e16>=trunc1e16+trunc1}}
 +
*{{xpsoc|1=#expr:trunc1e16>=trunc1e16+trunc1}}
  
*{{xpd0|#expr:3 * 4 mod 10 * 10 }}
+
Similarly, a >= b and b = c does not imply a >=c:
 +
*{{xpsoc|1=#expr:trunc1e16>=1e16}}
 +
*{{xpsoc|1=#expr:1e16=trunc1e16+trunc1}}
 +
*{{xpsoc|1=#expr:trunc1e16>=trunc1e16+trunc1}}
  
(mod and multiplication have equal precedence, evaluation from left to right)
+
However, < and > ''are'' transitive.
  
Parentheses can force a different precedence: {{xpd0|#expr: (2 + 3) * 4}}
+
==Monotonicity==
 +
In division of numbers of type integer, a small change in the dividend can change the type of the result. Therefore, if the absolute value of the result is greater than 2^53, it is not always a [[Wikipedia:Monotonic function|monotonic function]] of the dividend:
  
Blank spaces are good for readability but not needed for working properly, except between not and an adjacent and/div/mod/not/or/round operator, and within numbers not allowed:
+
*{{xpsoc|numf|(trunc1e18-trunc2)/trunc3}}
*{{xpd0|#expr:7mod3}}
+
*{{xpsoc|numf|(trunc1e18-trunc1)/trunc3}}
*{{xpd0|#expr:7.5round0}}
+
*{{xpsoc|numf|trunc1e18/trunc3}}
*{{xpd0|#expr:0and1}}
+
*{{xpd0|#expr:0or not0}}
+
*{{xpd0|#expr:0ornot0}}
+
*{{xpd0|#expr:123 456}}
+
*{{xpd0|#expr:not not3}}
+
*{{xpd0|#expr:notnot3}}
+
  
*{{xpd0|#expr:---2}}
+
[[Template:Divint]] rectifies this.
*{{xpd0|#expr:-+-2}}
+
*{{xpd0|#expr:2*-3}}
+
*{{xpd0|#expr:-not-not-not0}}
+
*{{xpd0|#expr:2*/3}}
+
*{{xpd0|#expr:sinln1.1}}
+
*{{xpd0|#expr:sin ln1.1}}
+
  
 
==Numbers as input==
 
==Numbers as input==
Line 422: Line 481:
 
*{{xpd0|#expr: 12.}}
 
*{{xpd0|#expr: 12.}}
  
These equivalences are also relevant for #ifeq and #switch, see below.
+
These equivalences apply also for #ifeq and #switch, see below.
  
In [http://svn.wikimedia.org/doc/Expr_8php-source.html] we have
+
The part of the expression representing a number is a sequence of digits and points; due to [http://www.php.net/manual/en/function.floatval.php floatval] a second point and any digits and points immediately after it are ignored, and do not give an error message. '''Group separators are not allowed''': a comma is considered an unrecognised punctuation character:
define( 'EXPR_NUMBER_CLASS', '0123456789.' );
+
...
+
elseif ( false !== strpos( EXPR_NUMBER_CLASS, $char ) ) {
+
// Number
+
if ( $expecting != 'expression' ) {throw new ExprError('unexpected_number');}
+
// Find the rest of it
+
$length = strspn( $expr, EXPR_NUMBER_CLASS, $p );
+
// Convert it to float, silently removing double decimal points
+
$operands[] = floatval( substr( $expr, $p, $length ) );
+
$p += $length;$expecting = 'operator';continue;}
+
  
Thus the part of the expression representing a number is a sequence of digits and points; due to [http://www.php.net/manual/en/function.floatval.php floatval] a second point and any digits and points immediately after it are ignored, and do not give an error message. '''Group separators are not allowed''': a comma is considered an unrecognised punctuation character:
+
Thus a number can only consist of:
 +
* one or more digits, or
 +
* zero or more digits, a point, and zero or more digits.
  
Thus a number can only consist of one or more digits, or zero or more digits, a point, and zero or more digits. (For the purpose of evaluating an expression a plus or minus sign is considered a unary operator instead of part of the number.)
+
*{{xpd0|#expr:123}}
 +
*{{xpd0|#expr:123.456}}
 +
*{{xpd0|#expr:.456}}
 +
*{{xpd0|#expr:0}}
  
Canonical form:
+
Also accepted:
*{{xpd0|#expr: 123}}
+
*{{xpd0|#expr: 123.456}}
+
*{{xpd0|#expr: 0.456}}
+
*{{xpd0|#expr: 0}}
+
*{{xpd0|#expr: 2.0E-5}}
+
 
+
Accepted, although in some cases more or less odd:
+
*{{xpd0|#expr: .456}}
+
 
*{{xpd0|#expr: 123.}}
 
*{{xpd0|#expr: 123.}}
*{{xpd0|#expr: 000123}}
+
*{{xpd0|#expr:000123.4560 }}
*{{xpd0|#expr: 123.456.789}}
+
*{{xpd0|#expr:.}}
*{{xpd0|#expr: .}}
+
 
*{{xpd0|#expr: 2e-5}}
+
With ignored part:
*{{xpd0|#expr: 2E-5}}
+
*{{xpd0|#expr:123.456.789}}
*{{xpd0|#expr: E}}
+
 
*{{xpd0|#expr: e}}
+
*{{xpd0|#expr: E-5}}
+
*{{xpd0|#expr: e-5}}
+
*{{xpd0|#expr: 1e-5}}
+
 
Wrong:
 
Wrong:
 
*{{xpd0|#expr: 123,456}}
 
*{{xpd0|#expr: 123,456}}
 
*{{xpd0|#expr: 123 456}}
 
*{{xpd0|#expr: 123 456}}
  
Due to the specifier R ("raw"), {{xpdoc|NUMBEROFARTICLES:R}} etc., i.e. numbers without group separators, which can be used in computations.
+
Combinations with the operator e:
 +
 
 +
Float:
 +
*{{xpd0|#expr:2.3e-5}}
 +
*{{xpsoc|#expr:2e18}}
 +
Integer type:
 +
*{{xpsoc|#expr:(trunc123456789012345)e trunc4}}
 +
Compare:
 +
*{{xpsoc|#expr:123456789012345e4}}
 +
*{{xpsoc|#expr:trunc123456789012345e4}}
 +
*{{xpsoc|#expr:(trunc123456789012345)e4}}
 +
 
 +
*{{xpd0|#expr: e5}}
 +
 
 +
Commas can be removed as follows:
 +
*{{xpsoc|formatnum:1,2,,34.567,8|R}}
 +
 
 +
Input of a number of type integer is not possible. A float can be converted to type integer with the function trunc. An integer with a value that is not a float value can be constructed, e.g. with [[Template:Trunc]], where the number is given in two pieces:
 +
*{{xpsopocc|numf|trunc|12345678|90123456789}}
 +
 
 +
The smallest positive float can be written:
 +
*{{xpsoc|#expr:.5e-323}}
 +
but we cannot use that output as input:
 +
*{{xpsoc|#expr:{{#expr:.5e-323}}}}
 +
 
 +
All digits are used to determine the float to which a number is rounded, as demonstrated in a borderline case:
 +
 
 +
<small>{{xpsoc|hex|0.00000000000000011102230246251566636831481088739149080825}}</small><br>
 +
<small>{{xpsoc|hex|0.00000000000000011102230246251566636831481088739149080826}}</small>
 +
 
 +
*{{xpsoc|numf|2^-53}}
 +
*{{xpsoc|numf|2^-53+2^-105}}
 +
 
 +
Similarly:
 +
*{{xpsoc|numfh|4398046511104.00048828125}}
 +
*{{xpsoc|numfh|4398046511104.00048828125000000000000000000000000000000000000000000000001}}
 +
*2^42+2^-10 = 4,398,046,511,104.000,976,562,5
 +
 
 +
Thus we see that the value halfway the two consecutive floats is rounded down in this case, while the other decimal fractions between the two floats are rounded to the nearest of the two.
  
As opposed to ParserFunctions, "[[Help:Magic_words#Language-dependent_word_conversions|plural]]" accepts points ''and'' commas in numbers and interprets them in a site-language-specific way (depending on $separatorTransformTable in Messagesxx.php); on this site:
+
===Function plural===
 +
As opposed to ParserFunctions, "{{ml|Help:Magic_words|Language-dependent_word_conversions|plural}}" accepts points ''and'' commas in numbers and interprets them in a site-language-specific way (depending on $separatorTransformTable in Messagesxx.php); on this site:
 
*{{xpd5op3p3p3c||||||plural:1.000||a|||b|||c}}
 
*{{xpd5op3p3p3c||||||plural:1.000||a|||b|||c}}
 
*{{xpd5op3p3p3c||||||plural:1,000||a|||b|||c}}
 
*{{xpd5op3p3p3c||||||plural:1,000||a|||b|||c}}
Line 475: Line 556:
  
 
== Numbers as output ==
 
== Numbers as output ==
A non-integer result has a decimal point in it. Scientific notation is produced for numbers with small absolute value ( less than 1E-4) and for numbers with large absolute value ( greater than or equal to 1E+12; however, even within MediaWiki there is no uniformity, larger numbers in non-scientific notation and smaller numbers in scientific notation have been observed as output; the format of the same number can vary from preview to view, and by refreshing the page!). Thus numbers produced include (depending on the operating system of the server):
+
The MediaWiki software simply passes on the literal result of the php computation, except that logical values are changed to 1 and 0. Therefore the format can depend on the server.
  
*{{xpdoc|#expr: .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123456789012345}}
+
A number of type integer is displayed without rounding and in ordinary decimal notation:
*{{xpdoc|#expr: .00000123456789012345}}
+
*{{xpsoc|#expr:trunc(2^52)}}
*{{xpdoc|#expr: .0000123456789012345}}
+
*{{xpsoc|#expr:-trunc(2^52)}}
*{{xpdoc|#expr: .000123456789012345}}
+
*{{xpsoc|#expr:trunc1100000}}
*{{xpdoc|#expr: 123456789012.345}}
+
*{{xpsoc|#expr:trunc1200000}}
*{{xpdoc|#expr: 1234567890123.45}}
+
*{{xpsoc|#expr:trunc1300000}}
*{{xpdoc|#expr: 12345678901234.5}}
+
*{{xpsoc|#expr:trunc4100000}}
*{{xpdoc|#expr: 123456789012345}}
+
while a number of type float is rounded to 14 digits, while inconsistently displaying some numbers in scientific format. This is reportedly a bug in the [[Wikipedia:Zend Engine|Zend Engine]] which has been fixed [http://bugs.php.net/43053], but on Wikimedia apparently not yet:
*{{xpdoc|#expr: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456}}
+
*{{xpsoc|#expr:2^52}}
*{{xpdoc|#expr: 1.234e4}}
+
*{{xpsoc|#expr:-(2^52)}}
*{{xpdoc|#expr: 1.234e-4}}
+
*{{xpsoc|#expr:1100000}}
 +
*{{xpsoc|#expr:1200000}}
 +
*{{xpsoc|#expr:1300000}}
 +
*{{xpsoc|#expr:4100000}}
 +
*{{xpsoc|#expr:1/7}}
  
For negative numbers simply a minus sign is prefixed:
+
For some representable round numbers, notably some multiples of 100,000,  scientific notation is produced, which, if reused in an expression, is not even exactly equal to the original number:
*{{xpdoc|#expr: -123456789012345}}
+
*{{xpsoc|numfh|4.1e6}}
 +
Thus we may want to either compare two results of #expr (for equality up to 14 digits) or compare two expressions, such as 4100000 and 4000000+100000 (for exact equality); depending on context and intention, the negative result of the comparison of the result of expr with the exact number may be confusing. 
  
;Long <tt>YYYYMMDDhhmmss</tt> timestamps can run into the same problem:
+
The function formatnum adds commas (on the left of the point only), but does not convert from or to scientific format:
:{{xpdoc|CURRENTTIMESTAMP}},
+
:{{xpdoocc|#expr:|CURRENTTIMESTAMP}}.
+
;Timestamps without seconds are 12 digits, just short enough:
+
:{{xpdoc|#expr:{{CURRENTTIMESTAMP}}/100}}
+
  
To avoid these problems and also increase accuracy, unless the result is represented by #expr exactly and in non-scientific notation, such as a not too large integer, do not use #expr in an expression to be evaluated by #expr or #ifexpr.  Typically the result of a computational template could be needed in a further computation, so at least one version of such a template needs to give the result in a form suitable for that, e.g. {{tim|roote}} and {{tim|rooteval}}; for convenience, for the final result another version can be made simply calling the other one and applying #expr to the result, e.g. {{tim|rootfineval}}.
+
*{{xpsoc|formatnum:1234567.890123}}
 +
*{{xpsoc|formatnum:1234567.890123E16}}
  
Two methods for representing intermediate results are:
+
The number output is suitable for many other calculation programs, also the scientific notation. In that sense output like 6E23 is more convenient than 6{{e|23}}.
  
1. The expression resulting from processing the expressions themselves, using #expr for branching only.
+
[[Template:Num]] displays a number with high accuracy (such that in the case of float the specific internal value is reconstructed when using the output as input), with the variant [[Template:Numf]] showing thousands separators:
 +
*{{xpsoc|numf|trunc3^trunc39}}
 +
*{{xpsoc|numf|trunc3^trunc40}}
 +
*{{xpsoc|numf|1/7}}
  
For example, {{tim|powe}} produces the power of a number in the form of an expression:
+
==Negative zero==
*{{xpd2|powe|31.18|12}}
+
Although the literal "-0" (the unary minus applied to 0) gives 0, some operations give the float "[[Wikipedia:Signed zero|-0]]" (preserving commutativity of + and *):
  
However, the expression can get quite long, for {{tim|roote}} see  [[Help:Calculation/example 1]]. Although [[Template:Long expression demo|long expressions]] are allowed, they give rise to a large post-expand include size and template argument size, for which limits exist.
+
Generating -0 with <code>*</code>, <code>/</code>, <code>ceil</code>, <code>round</code>:
 +
*{{xpsoc|#expr: -1*0}}
 +
*{{xpsoc|#expr: (-1e-200)*1e-200}}
 +
*{{xpsoc|#expr: -1/1e333}}
 +
*{{xpsoc|#expr: 0/-1}}
 +
*{{xpsoc|#expr: (-1e-200)/1e200}}
 +
*{{xpsoc|#expr: (1e-200)/-1e200}}
 +
*{{xpsoc|#expr: ceil(-.1)}}
 +
*{{xpsoc|#expr: -.2round0}}
  
Applying #expr directly on a linked expression gives {{#expr:{{roote|.0000000000001}}}}, but it can also be used in a further computation, unlike the value just mentioned.
+
Passing <code>-0</code> on with unary <code>+</code>, binary <code>+</code>  and <code>-</code>, <code>*</code> (and hence operator <code>e</code>), <code>/</code>, <code>floor</code>, <code>ceil</code>:
 +
*{{xpsoc|#expr: +(-1*0)}}
 +
*{{xpsoc|#expr: (-1*0)+(-1*0)}}
 +
*{{xpsoc|#expr: (-1*0)-0}}
 +
*{{xpsoc|#expr: 1*(-1*0)}}
 +
**{{xpsoc|#expr: (-1*0)e0}}
 +
*{{xpsoc|#expr: (-1*0)/1}}
 +
*{{xpsoc|#expr: floor(-1*0)}}
 +
*{{xpsoc|#expr: ceil(-1*0)}}
  
2. Writing numbers splitting off factors which are powers of 10 but written plainly.
+
However:
 +
*{{xpsoc|#expr: -0}}
 +
*{{xpsoc|#expr: -10^-401}}
  
Example:
+
Since 2011 the function #ifexpr takes both 0 and the float -0 as false:
*{{xpd1|gives=giving|rooteval|.0000000000001}}
+
  
Intermediate results are also in such a form, preventing the growth of the expression like above. Again, #expr can be applied directly, as done in {{tim|rootfineval}},
+
*{{xpsoc|#ifexpr:0|1|0}}
giving {{fineval|.0000000000001}}, but the result can also be used in a further computation.
+
*{{xpsoc|#ifexpr:-1*0|1|0}}
  
Compare:
+
Also, as argument of a logical operator -0 is taken as false:  
*{{xpd0|#expr:(.0000000000001)^(1/2)}}
+
*{{xpsoc|#expr:not(-1*0)}}
 +
*{{xpsoc|#expr:(-1*0)and1}}
 +
*{{xpsoc|#expr:(-1*0)or0}}
  
This uses the same method, but with intermediate application of #expr, giving an error  because of internediate results in scientific notation.  
+
If an expression of type float can have the value -0, then an operation that removes the minus sign from a possible -0, but does not affect any other result, is the addition of 0. If an expression may be of type integer then one can add trunc0.
 +
*{{xpsoc|#expr:0+(-1*0)}}
  
If the result of rounding a negative number is zero, the result is "-0". To avoid that, an expression ''x'' can be replaced by 0 + ( ''x'' ):
+
==Type conversion==
*{{xpd0|#expr: ( -0.2 round 0 )}}
+
A float can be converted to type integer by operator trunc (note however that for 2^63 <= x <= 2^64 we get x - 2^64, for larger x we get 0; for x < -2^63 we get -2^63).
*{{xpd0|#expr: 1*(-0.2 round 0)}}
+
*{{xpd0|#expr: 0+(-0.2 round 0)}}
+
  
The number output is suitable for many other calculation programs, also the scientific notation. In that sense output like 6E23 is more convenient than 6{{e|23}}.
+
An expression of type integer can be converted to float by adding 0. Note that for integers greater than 2^53 this involves rounding.
  
==Accuracy==
+
==Limitations and workarounds==
:''The accuracy and format of numeric results varies with the operating system of the server.''
+
The operator trunc gives the correct mathematical result of rounding toward 0 to an integer for integer-type numbers and for floats x inside the integer range: -2^63 <= x < 2^63. To also get the correct mathematical result for floats outside this range is simple, because these floats all have an integer value, so they can be left unchanged. [[Template:Trunc]] does this.
  
Accuracy of the result of #expr is less than internally used within the computation of an expression:
+
The operator mod gives strange errors for some fairly large values of the second argument:
 +
*{{xpsoc|#expr:123mod(2^32-1)}}
 +
[[Template:Modint]] works correctly for a larger range.
  
*{{xpdoc|#expr:(2/3)}}
+
The operator ''round'' with second argument 0 gives wrong results for odd numbers between 2^52 and 2^53, even though the exact results are representable as float. Also, the operator rounds integer-type numbers with an absolute value between 2^53 and 2^63 to float. [[Template:Round0]] always gives the expression for the exact result, for subsequent use in an expression, or for display (with the accuracy of this depending on the accuracy of the display function or template only).
*{{xpdoc|#expr:(2/3)*1000000-666666}}
+
*{{xpdoocc|#expr:|#expr:(2/3)| *1000000-666666}}
+
*{{xpdoc|#expr:1234567890.1234567890-1234567890}} (conclusion: <font color="red">'''16'''</font> or 17 digits of 1234567890.1234567890 used)
+
*{{xpdoc|#expr:1234567890.1234567890}} (result is rounded to a total of <font color="red">'''12'''</font> digits)
+
*{{xpdoocc|#expr:(|#expr:1234567890.1234567890| -1234567890)}}
+
  
;The [[w:en:Machine epsilon|macheps]] or smallest '''x''' such that '''1+x != 1''' appears to be near <tt>0.5^53&#160;+&#160;0.5^106</tt> or 1.1102230246251566636831481088739149080825883E-<font color="red">'''16'''</font> (see above):
+
The operator ''floor'' rounds integer-type numbers with an absolute value between 2^53 and 2^63 to float, and not necessarily downward. Similarly the operator ''ceil'' rounds these numbers not necessarily upward. [[Template:Floor]] and [[Template:Ceil]] always give the expressions for the exact results, for subsequent use in an expression, or for display (with the accuracy of this, and the direction of rounding, depending on the display function or template only).
;<small>{{xpdoc|1=#expr:1=1+0.00000000000000011102230246251566636831481088739149080826}}</small>
+
;<small>{{xpdoc|1=#expr:1=1+0.00000000000000011102230246251566636831481088739149080825}}</small>
+
 
+
;That's the normal behaviour for [http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm 64=1+52+11] bits (52 mantissa, 11 exponent). As explained above it is unrelated to the smallest expression result greater than '''1''':
+
;{{xpdoc|#expr:1+0.000000000004999889392}}
+
;{{xpdoc|#expr:1+0.000000000004999889391}} below about 1 + 5E-<font color="red">'''12'''</font>.
+
  
 
==Branching depending on an expression==
 
==Branching depending on an expression==
The function [[m:ParserFunctions#.23ifexpr:|#ifexpr]] produces one of two specified results, depending on the value of a boolean expression involving numbers and booleans (not strings). Examples:
+
The function {{mw|Help:Extension:ParserFunctions##ifexpr|#ifexpr:}} produces one of two specified results, depending on the value of a boolean expression involving numbers and booleans (not strings). Examples:
 +
* <nowiki>{{#ifexpr: {{CURRENTDOW}} = 0 or {{CURRENTDOW}} = 6 | weekEND | weekDAY}}</nowiki> yields '''{{#ifexpr: {{CURRENTDOW}} = 0 or {{CURRENTDOW}} = 6|weekEND|weekDAY}}''' because today is {{CURRENTDAYNAME}} and so {{xpd0|CURRENTDOW|gives=is}}.
 +
* {{xpsoc|1=#expr:2^10=1024}}
  
;<nowiki>{{#ifexpr: {{CURRENTDOW}} = 0 or {{CURRENTDOW}} = 6 | weekEND | weekDAY}}</nowiki> yields '''{{#ifexpr: {{CURRENTDOW}} = 0 or {{CURRENTDOW}} = 6|weekEND|weekDAY}}''' because today is {{CURRENTDAYNAME}} and so {{xpd0|CURRENTDOW|gives=is}}.
+
Note that rounding errors can affect a comparison, even if they are not visible in the displayed values: the  internal values are compared. This applies even to large integers:
 +
*{{xpsoc|#expr:1024e20-1e23}}
 +
*{{xpsoc|1=#expr:1024e20-1e23=2.4e21}}
 +
Instead one may want to allow a relatively small difference that could be present due to rounding errors:
 +
*{{xpsoc|1=#expr:abs(1024e20-1e23-2.4e21)<1e8}}
  
{{xpd2|1=#ifexpr:2^10=1024|2=1|3=0}}
+
Again, for comparing a number of type float with one of type integer, the integer is converted to float. In this case the type is determined by the format of the number, e.g. 2 is an integer, but 2.0 and 2e0 are floats; also 12345678901234567890 is a float, because it is too large for an integer.
  
Note that rounding errors can affect a result:
+
Again, equality is not transitive with mixed types:
*{{xpd0|#expr:sin pi}}
+
*{{xpd2|1=#ifexpr:sin pi=0|2=1|3=0}}
+
*{{xpd2|#ifexpr:abs sin pi<1e-15|1|0}}
+
  
Similarly:
+
*{{xpsoc|#ifeq:12345678901234567|12345678901234568.0|1|0}}
*{{xpd0|1=#expr:sin pi=0}}
+
*{{xpsoc|#ifeq:12345678901234568.0|12345678901234568|1|0}}
*{{xpd0|#expr:abs sin pi<1e-15}}
+
*{{xpsoc|#ifeq:12345678901234567|12345678901234568|1|0}}
  
==Comparisons==
+
*{{xpsoc|#ifeq:12345678901234567|12345678901234567e0|1|0}}
#The function [[m:ParserFunctions#.23ifeq:|#ifeq:]] compares numbers and strings for equality (equal if both represent the same number or both are equal strings).
+
*{{xpsoc|#ifeq:12345678901234567e0|12345678901234568|1|0}}
#The function [[m:ParserFunctions#.23switch:|#switch:]] compares one string with multiple others, and correspondingly produces one of multiple specified results.
+
*{{xpsoc|#ifeq:12345678901234567|12345678901234568|1|0}}
  
*{{xpdopepepec|#switch:FR|UK|London|FR|Paris|NL|Amsterdam}}
+
*{{xpsoc|num|trunc(2^62)-trunc1+trunc(2^62)}}
<!--
+
*{{xpsoc|#ifeq:9223372036854775700|9223372036854775900|1|0}}
*{{xpd|#switch:UK|UK|3=GB=London|4=FR=Paris}}
+
*{{xpsoc|#ifeq:9223372036854775900|9223372036854775800|1|0}}
*{{xpd|#switch:ZZ|2=UK=London|3=FR=Paris|4=no match}}
+
*{{xpsoc|#ifeq:9223372036854775700|9223372036854775800|1|0}}
-->
+
  
*{{xpd3|#ifeq:3|3.0|1|0}}
+
==Comparisons==
*{{xpd3|#ifeq:3|03|1|0}}
+
The functions <code>[[Template:If##ifeq|#ifeq]]</code> and <code>[[Help:Extension:ParserFunctions##switch|#switch]]</code> compare numbers and strings for equality using PHP operator [http://www.php.net/manual/en/language.operators.comparison.php ==], the same as the equality operator mentioned above, but now applied directly to the expanded wikitext of the arguments. For comparison as numbers no expressions (not even constants) are allowed, but in this case the unary plus and minus and the e of scientific notation are taken as part of the number, instead of as operators. Without e and decimal point the type is integer, otherwise it is float. As mentioned above, when an integer is compared with a float, the integer is converted to float first.
*{{xpd3|#ifeq:0.00003456|3.456E-05|1|0}}
+
:*Note that '''#ifeq:''' unlike '''#expr:''' accepts exponential notation on input.
+
:::* <nowiki>{{#ifexpr:0.00003456 = 3.456E-05|1|0}}</nowiki> gives "{{#ifexpr:0.00003456 = 3.456E-05|1|0}}"
+
*{{xpd3|#ifeq:1234567890123|1234567890120|1|0}}
+
*{{xpd3|#ifeq:1234567890123|1.23456789012E+12|1|0}}
+
*{{xpd3|#ifeq:1234567890120|1.23456789012E+12|1|0}}
+
*{{xpd3|#ifeq:1.234567890120E12|1.23456789012E+12|1|0}}
+
*:Numerical comparisons don't depend on the output format, compare:
+
*{{xpd0|#expr:1234567890123}}
+
*{{xpd0|#expr:1234567890120}}
+
  
[[ParserFunctions#.23ifeq:|#ifeq:]] allows to compare strings containing equal signs:
+
* {{xpsoc|#ifeq:3|3.0|1|0}}
{|
+
* {{xpsoc|#ifeq:3|03|1|0}}
!#switch form
+
* {{xpsoc|#ifeq:0.00003456|3.456E-05|1|0}}
!#ifeq form
+
* {{xpsoc|#ifeq:1e23|.1e24|1|0}} although rounding both numbers to float gives different internal numbers:
|-
+
** {{xpsoc|#expr:1e23-.1e24}}  
|{{xpd|#switch:-1.0|2=-1=okay|3=fail|s=</td><td>}}
+
** {{xpsoc|1=#expr:1e23=.1e24}}  
|{{xpd|#ifeq:-1.0|-1|okay|fail|s=</td><td>}}
+
** {{xpsoc|1=#ifexpr:1e23=.1e24|2=1|3=0}}  
|-
+
* {{xpsoc|#ifeq:9034567890123456789|9034567890123456788|1|0}} (two numbers of type integer, therefore only true if exactly equal); compare:
|<code>"<nowiki>{{#switch: {{#expr:-1.0}} |-1=okay|fail}}</nowiki>"</code> gives "{{#switch: {{#expr:-1.0}} |-1=okay|fail}}" &nbsp;
+
* {{xpsoc|#ifeq:9034567890123456700.0|9034567890123456800|1|0}} (due to the decimal point in one number, both are rounded to float before the comparison, so the comparison is cruder)
|-
+
|{{xpd|1=#switch:a=b|2=a=b=okay|3=fail|s=</td><td>}}
+
|{{xpd|1=#ifeq:a=b|2=a=b|3=okay|4=fail|s=</td><td>}}
+
|-
+
|{{xpd|1=#switch:a=c|2=a=b=fail|3=okay|s=</td><td>}}
+
|{{xpd|1=#ifeq:a=c|2=a=b|3=fail|4=okay|s=</td><td>}}
+
|}{{-}}
+
  
 
==Length of expressions==
 
==Length of expressions==
To find the absolute value of a numeric expression x without using a separate template at least doubles the length of the expression:
+
Long expressions are allowed, see [[Template:Long expression demo]]. However, see also [[Help:Expansion#Efficiency|efficiency]].
*''x''<tt>*(1-2*(</tt>''x''<tt><0))</tt>
+
*x*<nowiki>{{#ifexpr:x>0|1|-1}}</nowiki>
+
(The first is not only shorter but has also the advantage that for substitution one less "subst:" or <nowiki>{{{subst|}}}</nowiki> is needed.)
+
  
Do not use
+
==Error messages==
*<nowiki>{{#ifexpr:x>0|x|-x}}</nowiki>
+
Examples for all known [[Help:Extension:ParserFunctions##expr|#expr:]] and [[Help:Extension:ParserFunctions##ifexpr|#ifexpr:]] error messages. The error texts are within the tags &lt;strong class="error">..&lt;/strong>.
for long expressions as it triples the length.
+
  
Similarly do not use mod to round or conversely, because it doubles the length of the expression.
+
*{{xpdoc|#expr:1/0}}
 +
*{{xpdoc|#expr:2*}}
 +
*{{xpdoc|#expr:1 2}}
 +
*{{xpdoc|#ifexpr:1*/2}}
 +
*{{xpdoc|#expr: 1 (2)}}
 +
*{{xpdoc|#expr: (1}}
 +
*{{xpdoc|#expr: 1)}}
 +
*{{xpdoc|#expr:2*123,456}}
 +
*{{xpdoc|#expr:{{{a}}}}}
 +
*{{xpdoc|#ifexpr:3%2}}
 +
*{{xpdoc|#ifexpr:abc}}
 +
*{{xpdoc|#expr:abc.def}}
  
Also providing a leading zero for the result of an expression if it is less than 10 doubles its length:
+
{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|102|1000*</tt>&#125;}<tt><small>&#160;</small>18</tt><small>&#160;</small>&#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|102|1000*}}18}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*18}}}}  
*<nowiki>{{#ifexpr:x<10|0}}x</nowiki>
+
  
This "exponential" growth of expressions, with much repetition, is due to the lack of variables (in the computer programming sense); however, see also [[VariablesExtension]].
+
{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|102|1000*</tt>&#125;}<tt><small>&#160;</small>179</tt><small>&#160;</small>&#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|102|1000*}}179}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*179}}}}
  
Templates (subroutines) provide some of the functionality that variables offer: a template name is comparable with a variable name, while its content is comparable with the value of the variable. Alternatively, a template parameter can be assigned a value which can be used for multiple occurrences of the same parameter in the template. Thus e.g. x*(1-2*(x<0)) with a long expression x can be evaluated avoiding duplication of that expression, in two ways:
+
{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|102|1000*</tt>&#125;}<tt><small>&#160;</small>180</tt><small>&#160;</small>&#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|102|1000*}}180}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*180}}}} (on Wikimedia "INF", but depending on the operating system of the server it may also be e.g. "1.#INF")
*put the expression x in a template (multiple calls of the same template)
+
*put x*(1-2*(x<0)) in a template with parameter x (use of a template with multiple occurrences of the same parameter)
+
  
For the [[Wikipedia:Template limits|pre-expand include size maximum]] the first method does not help, but the second does.
+
INF also appears when an intermediate result is of range:
 +
*{{xpsoc|#expr:1e309/1e308}}
 +
*{{xpsoc|#expr:1e200*1e200*1e-300}}.
 +
but
 +
*{{xpsoc|#expr:1e200*(1e200*1e-300)}}.
  
If the number of possible results of a long expression is small, a  switch allows arbitrary conversion, including the absolute value and providing a leading zero, etc., without repeating the expression.
+
{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|33|(1+(</tt>&#125;}<small>&#160;</small><tt>1</tt><small>&#160;</small>{&#123;<small>&#160;</small><tt>x|33|))</tt>&#125;} &#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|33|(1+(}}1{{x|33|))}}}}|{{#expr:(1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+(1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}
  
==Error messages==
+
{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|34|(1+(</tt>&#125;}<small>&#160;</small><tt>1</tt><small>&#160;</small>{&#123;<small>&#160;</small><tt>x|34|))</tt>&#125;} &#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|34|(1+(}}1{{x|34|))}}}}|{{#expr:(1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+(1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}
Examples for all known [[m:ParserFunctions#.23expr:|#expr:]] and [[m:ParserFunctions#.23ifexpr:|#ifexpr:]] error messages. The error texts are within the tags &lt;strong class="error">..&lt;/strong>. Note that with the old preprocessor the "=" in "class=error" disturbs the numbering of unnamed parameters, if one of them produces an error message: <nowiki>{{t1|{{#expr:1/0}}}}</nowiki> gives {{t1|{{#expr:1/0}}}}.
+
  
 +
{{xpd0|#expr:3.4.5.6}} &#160; <small>(no feature, only an oddity)</small>
  
{| cellspacing="0" cellpadding="0"
 
|-
 
||'''Expression'''
 
||'''Error message'''
 
|-
 
||{{xpd1|#expr:1/0|s=</td><td>}}
 
|-
 
||{{xpd1|#expr:2*|s=</td><td>}}
 
|-
 
||{{xpd1|#expr:1 2|s=</td><td>}}
 
|-
 
||{{xpd1|#ifexpr:1*/2|s=</td><td>}}
 
|-
 
||{{xpd1|#expr: 1 (2)|s=</td><td>}}
 
|-
 
||{{xpd1|#expr: (1 |s=</td><td>}}
 
|-
 
||{{xpd1|#expr: 1) |s=</td><td>}}
 
|-
 
||{{xpd1|#expr:2*123,456|s=&#160; &#160;</td><td>}}
 
|-
 
||{{xpd1|#expr:{{{a}}}|s=</td><td>}}
 
|-
 
||{{xpd1|#ifexpr:3%2|s=</td><td>}}
 
|-
 
||{{xpd1|#ifexpr:abc|s=</td><td>}}
 
|-
 
||{{xpd1|#expr:abc.def|s=</td><td>}}
 
|-
 
|colspan="2"|{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|102|1000*</tt>&#125;}<tt><small>&#160;</small>18</tt><small>&#160;</small>&#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|102|1000*}}18}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*18}}}}
 
|-
 
|colspan="2"|{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|102|1000*</tt>&#125;}<tt><small>&#160;</small>179</tt><small>&#160;</small>&#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|102|1000*}}179}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*179}}}}
 
|-
 
|colspan="2"|{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|102|1000*</tt>&#125;}<tt><small>&#160;</small>180</tt><small>&#160;</small>&#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|102|1000*}}180}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*180}}}} ( "INF", but depending on the operating system of the server it may also be e.g. "1.#INF")
 
|-
 
|colspan="2"|{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|33|(1+(</tt>&#125;}<small>&#160;</small><tt>1</tt><small>&#160;</small>{&#123;<small>&#160;</small><tt>x|33|))</tt>&#125;} &#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|33|(1+(}}1{{x|33|))}}}}|{{#expr:(1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+(1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}
 
|-
 
|colspan="2"|{&#123;<small>&#160;</small><tt>#expr:</tt>{&#123;<small>&#160;</small><tt>x|34|(1+(</tt>&#125;}<small>&#160;</small><tt>1</tt><small>&#160;</small>{&#123;<small>&#160;</small><tt>x|34|))</tt>&#125;} &#125;} gives {{#ifeq:{{ns:4}}|Meta|{{#expr:{{x|34|(1+(}}1{{x|34|))}}}}|{{#expr:(1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+(1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}
 
|-
 
|colspan="2"|{{xpd0|#expr:3.4.5.6}} &#160; <small>(no feature, only an oddity)</small>
 
|}
 
  
Note: {{links-small|template|x}} copies a given string, here parts of an expression, for the specified times (max. 120), this help page shown on other projects actually evaluate its substituted output like 102 factors "1000" times "180" to get '''INF''' (infinity).
+
Note: {{links-small|template|x}} copies a given string, here parts of an expression, for the specified times (max. 120).
 
   
 
   
Wikitext without error message from the parser functions, but typically an error while using or attempting to use them:
+
Wikitext without error message from the parser functions, but typically unintended:
  
 
{| cellspacing="0" cellpadding="0"
 
{| cellspacing="0" cellpadding="0"
Line 697: Line 744:
 
|-
 
|-
 
|valign="top"|<nowiki>{{#expr:2*3}</nowiki>  
 
|valign="top"|<nowiki>{{#expr:2*3}</nowiki>  
|valign="top"| {{#expr:2*3}
+
|valign="top"| <nowiki>{{#expr:2*3}</nowiki>
 
|(too few braces, the whole is interpreted as plain text)
 
|(too few braces, the whole is interpreted as plain text)
 
|}
 
|}
  
;A crude but informative "unrecognised word" error message can be generated intentionally. Only the first identified error is shown:
+
==Checking for a number==
:{&#123;<tt> #expr: 2*</tt>{&#123;<tt> #ifexpr: 3*4>10|toolarge|3*4 </tt>&#125;} &#125;} gives
+
Check whether a string is a valid numeric expression:
::{{#expr:2*{{#ifexpr:3*4>10|toolarge|3*4}}}},
+
*<code><nowiki>{{#if:{{#ifexpr:3}}|0|1}}</nowiki></code> gives {{#if:{{#ifexpr:3}}|0|1}}
:{&#123;<tt> #expr: 2*</tt>{&#123;<tt> #ifexpr: 3*4>10|too large|3*4 </tt>&#125;} &#125;} gives
+
*<code><nowiki>{{#if:{{#ifexpr:3-2}}|0|1}}</nowiki></code> gives {{#if:{{#ifexpr:3-2}}|0|1}}
::{{#expr:2*{{#ifexpr:3*4>10|too large|3*4}}}}.
+
*<code><nowiki>{{#if:{{#ifexpr:3 2}}|0|1}}</nowiki></code> gives {{#if:{{#ifexpr:3 2}}|0|1}}
  
See also [[Help:ParserFunctions#.23iferror:|#iferror]].
+
Find the value represented by a string if it is a valid numeric expression, otherwise just return the string:
 +
*<code><nowiki>{{#iferror:{{#expr:3}}|3}}</nowiki></code> gives {{#iferror:{{#expr:3}}|3}}
 +
*<code><nowiki>{{#iferror:{{#expr:3-2}}|3-2}}</nowiki></code> gives {{#iferror:{{#expr:3-2}}|3-2}}
 +
*<code><nowiki>{{#iferror:{{#expr:3 2}}|3 2}}</nowiki></code> gives {{#iferror:{{#expr:3 2}}|3 2}}
 +
 
 +
Check whether a string is a number:
 +
*<code><nowiki>{{#ifeq:3|{{#expr:3}}|1|0}}</nowiki></code> gives {{#ifeq:3|{{#expr:3}}|1|0}}
 +
*<code><nowiki>{{#ifeq:03|{{#expr:03}}|1|0}}</nowiki></code> gives {{#ifeq:03|{{#expr:03}}|1|0}}
 +
*<code><nowiki>{{#ifeq:3-2|{{#expr:3-2}}|1|0}}</nowiki></code> gives {{#ifeq:3-2|{{#expr:3-2}}|1|0}}
 +
*<code><nowiki>{{#ifeq:3 2|{{#expr:3 2}}|1|0}}</nowiki></code> gives {{#ifeq:3 2|{{#expr:3 2}}|1|0}}
  
 
==Minus sign==
 
==Minus sign==
Only the ASCII [[hyphen]] ([[hyphen-minus]]) and [[minus sign]]s work as minus signs; dashes are not permitted. The output, however, will always be in the form of a hyphen-minus:
+
Only the {{mlw|hyphen-minus||hyphen-minus}} character or {{mlw|Minus sign|Character codes|minus sign}} character, typed directly, work as a minus sign operator in expressions.
{| class="wikitable"
+
* The HTML character references (by name or by numeric code point value) are not recognized when evaluating expressions: numerical character references are converted only when generating the final HTML document (after expansion of templates and parser functions)
|hyphen-minus||{{xpd0|#expr:-12|gives={{!}}{{!}}}}
+
* Only a handful of character references by name are substituted early by MediaWiki, all others are interpreted only by the browser.
 +
* The other dash characters (such as the hyphen, the figure dash, {{mlw|Dash|En dash|en dash}}, {{mlw|Dash|Em dash|em dash}} and others), though often similar visually, are '''not''' valid minus signs, but punctuation signs or typographical variants.
 +
 
 +
{|class="wikitable"
 
|-
 
|-
|Unicode hyphen (U+2010, ‐) || <code>"{&#123;#expr:‐12}&#125;"</code> || "{{#expr:‐12}}"
+
| {{mlw|hyphen-minus||hyphen-minus}}, typed directly as the character '-' (U+002D)
 +
| {{xpd0|#expr:-12|gives={{!!}}}}
 
|-
 
|-
|[[Minus_sign#Character_codes|minus sign]] produced by &amp;minus;||<code>"{&#123;#expr:−12}&#125;"</code> || "{{#expr:−12}}"
+
| hyphen-minus, typed as the numerical character reference <tt>&amp;#x2D;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;#x2D;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#x2D;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%23x2D;12%7D%7D}}]
 
|-
 
|-
|&amp;minus;||<code>"{&#123;<nowiki/>#expr:&amp;minus;12}&#125;"</code> || "{{#expr:&minus;12}}"
+
| hyphen-minus, typed as the numerical character reference <tt>&amp;#45;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;#45;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#45;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%2345;12%7D%7D}}]
 +
 
 
|-
 
|-
|[[Dash#Em_dash|em dash]] produced by &amp;mdash;||<code>"{&#123;<nowiki/>#expr:—12}&#125;"</code> || "{{#expr:—12}}
+
| {{mlw|Minus sign|Character codes|minus sign}}, typed directly as the character '−' (U+2212)
 +
| {{xpd0|#expr:−12|gives={{!!}}}}
 
|-
 
|-
|&amp;mdash;||<code>"{&#123;<nowiki/>#expr:&amp;mdash;12}&#125;"</code> || "{{#expr:&mdash;12}}"
+
| minus sign, typed as the numerical character reference <tt>&amp;#x2212;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;#x2212;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#x2212;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%23x2212;12%7D%7D}}]
 
|-
 
|-
|[[Dash#En_dash|en dash]] produced by &amp;ndash;||<code>"{&#123;#expr:–12}&#125;"</code> || "{{#expr:–12}}"
+
| minus sign, typed as the numerical character reference <tt>&amp;#8722;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;#8722;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#8722;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%238722;12%7D%7D}}]
 
|-
 
|-
|&amp;ndash;||<code>"{&#123;<nowiki/>#expr:&amp;ndash;12}&#125;"</code> || "{{#expr:&ndash;12}}"
+
| minus sign, typed as the symbolic character reference <tt>&amp;minus;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;minus;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&minus;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26minus;12%7D%7D}}]
 +
 
 +
|-
 +
| figure dash, typed directly as the character '‒' (U+2012)
 +
| {{xpd0|#expr:‒12|gives={{!!}}}}
 +
|-
 +
| figure dash, typed as the numerical character reference <tt>&amp;#x2012;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;#x2012;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#x2012;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%23x2012;12%7D%7D}}]
 +
|-
 +
| figure dash, typed as the numerical character reference <tt>&amp;#8210;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&amp;#8210;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#8210;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%238210;12%7D%7D}}]
 +
 
 +
|-
 +
| {{mlw|Dash|En dash|en dash}}, typed directly as the character '–' (U+2013)
 +
| {{xpd0|#expr:–12|gives={{!!}}}}
 +
|-
 +
| en dash, typed as the numerical character reference <tt>&amp;#x2013;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&#x26;#x2013;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#x2013;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%23x2013;12%7D%7D}}]
 +
|-
 +
| en dash, typed as the numerical character reference <tt>&amp;#8211;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&#x26;#8211;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&#8211;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26%238211;12%7D%7D}}]
 +
|-
 +
| en dash, typed as the symbolic character reference <tt>&amp;ndash;</tt>
 +
| <code>"&#x7B;&#x7B;#expr:&#x26;ndash;12&#x7D;&#x7D;"</code>
 +
| "{{#expr:&ndash;12}}"
 +
| [{{fullurl:Special:ExpandTemplates|input=%7B%7B%23expr:%26ndash;12%7D%7D}}]
 
|}
 
|}
  
Line 732: Line 842:
  
 
==Displaying numbers and numeric expressions==
 
==Displaying numbers and numeric expressions==
Guidelines such as [[WP:Manual of Style (dates and numbers)#Numbers]] focus on number display as end product. However, a point of consideration can also be the possibility to apply the rendered output to #expr or #ifexpr, or to input it without conversion into other calculation programs. This would require the following:
+
Guidelines such as {{mlww|Manual of Style (dates and numbers)|Numbers}} focus on number display as end product. However, a point of consideration can also be the possibility to apply the rendered output to #expr or #ifexpr, or to input it without conversion into other calculation programs. This would require the following:
 
*use digits, not words
 
*use digits, not words
 
*as mentioned above, use the hyphen as minus sign
 
*as mentioned above, use the hyphen as minus sign
Line 754: Line 864:
 
If the number is the result of a computation by MediaWiki and unsuitable for use in a new computation due to application of a formatting function such as #formatnum or a formatting template, one can copy the wikitext and apply the additional computation before the formatting. However, when templates are used, and copying is done to another wiki, these templates have to be copied too, or substituted.
 
If the number is the result of a computation by MediaWiki and unsuitable for use in a new computation due to application of a formatting function such as #formatnum or a formatting template, one can copy the wikitext and apply the additional computation before the formatting. However, when templates are used, and copying is done to another wiki, these templates have to be copied too, or substituted.
  
==Tactics for handling extreme numbers==
+
If you want to calculate with {{mw|Help:Magic words|Magic words}} and return group seperated results you can use formatnum:<br>
In the digital storage of numbers, the effects of [[truncation error]] on numeric precision might cause some extreme decimal numbers (above 1E13 or below 1E-12), or other E-notation numbers, to mismatch during comparisons. There are some tactics which can help, such as comparing results with "<code>#ifeq</code>" rather than "<code>#ifexpr</code>".
+
<code><nowiki>{{formatnum: {{#expr: {{NUMBEROFPAGES:R}} - {{NUMBEROFFILES:R}} }} }}</nowiki></code> = {{formatnum: {{#expr: {{NUMBEROFPAGES:R}} - {{NUMBEROFFILES:R}} }} }} (instead of {{#expr: {{NUMBEROFPAGES:R}} - {{NUMBEROFFILES:R}} }}).
 
+
; Comparing large numbers
+
The floor function might mismatch the original value of a large number, by a tiny amount, and so comparisons can be made with <code>#ifeq</code> between separate expressions. For example:
+
 
+
::* <code><nowiki>{{#ifexpr: floor( 1.36E4 ) = 1.36E4|Equal|Differ}}</nowiki></code> gives "{{#ifexpr: floor( 1.36E4 ) = 1.36E4|Equal|Differ}}"
+
::* <code><nowiki>{{#ifexpr: floor( 1.33E4 ) = 1.33E4|Equal|Differ}}</nowiki></code> gives "{{#ifexpr: floor( 1.33E4 ) = 1.33E4|Equal|Differ}}"
+
::* <code><nowiki>{{#ifexpr: floor( 1.52E4 ) = 1.52E4|Equal|Differ}}</nowiki></code> gives "{{#ifexpr: floor( 1.52E4 ) = 1.52E4|Equal|Differ}}"
+
::* <code><nowiki>{{#ifexpr: floor( 1.36E13 ) = 1.36E13|Equal|Differ}}</nowiki></code> gives "{{#ifexpr: floor( 1.36E13 ) = 1.36E13|Equal|Differ}}"
+
::* <code><nowiki>{{#ifexpr: trunc( 1.36E13 ) = 1.36E13|Equal|Differ}}</nowiki></code> gives "{{#ifexpr: trunc( 1.36E13 ) = 1.36E13|Equal|Differ}}"
+
 
+
However, using  <code>#ifeq</code> to compare the results of 2 expressions can work:
+
::* <code><nowiki>{{#ifeq: {{#expr:floor(1.33E4) }} | {{#expr:1.33E4}}|Equal|Differ}}</nowiki></code> gives "{{#ifeq: {{#expr:floor(1.33E4) }} | {{#expr:1.33E4}}|Equal|Differ}}"
+
::* <code><nowiki>{{#ifeq: {{#expr:floor(1.36E13) }} | {{#expr:1.36E13}}|Equal|Differ}}</nowiki></code> gives "{{#ifeq: {{#expr:floor(1.36E13) }} | {{#expr:1.36E13}}|Equal|Differ}}"
+
::* <code><nowiki>{{#ifeq: {{#expr:trunc(1.36E13) }} | {{#expr:1.36E13}}|Equal|Differ}}</nowiki></code> gives "{{#ifeq: {{#expr:trunc(1.36E13) }} | {{#expr:1.36E13}}|Equal|Differ}}"
+
The truncation-error amount can usually be displayed by subtraction:
+
::* <code><nowiki>{{#expr: floor(1.36E4) - 1.36E4 }}</nowiki></code> gives "{{#expr: floor(1.36E4) - 1.36E4 }}"
+
::* <code><nowiki>{{#expr: floor(13600) - 13600 }}</nowiki></code> &nbsp; gives "{{#expr: floor(13600) - 13600 }}"
+
::* <code><nowiki>{{#expr: floor(1.36E13) - 1.36E13 }}</nowiki></code> gives "{{#expr: floor(1.36E13) - 1.36E13 }}"
+
::* <code><nowiki>{{#expr: trunc(1.36E13) - 1.36E13 }}</nowiki></code> gives "{{#expr: trunc(1.36E13) - 1.36E13 }}"
+
  
There are similar workarounds to bypass other limitations due to [[truncation error]] in the handling of extreme numbers.
+
== See also ==
 +
*[[Wikipedia:Help:Mod, round, floor, ceil, trunc]]
 +
*[[Wikipedia:Help:Calculation accuracy]]
 +
*[[Wikipedia:Help:Comparison between ParserFunctions syntax and TeX syntax]]
 +
*[[:Category:Mathematical templates]]
 +
*{{mw|Extension:MathStatFunctions}}
 +
*{{mw|Extension:Foxway}}
 +
*http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ParserFunctions/Expr.php
  
==See also==
+
{{refs}}
*[[mw:Help:Extension:ParserFunctions]]
+
{{Metawiki}}
**[http://bugzilla.wikimedia.org/attachment.cgi?id=2751 ParserFunctions patch] ([[bugzilla:6068]])
+
{{h:f|enname=Calculation}}
*[[Help:Parser function]] (general considerations)
+
{{TOL-refpg-end}}{{FAB-todo|Put away for shuteye, do more marathon another time}}
*[[Help:Substitution]]
+
[[Category:Editor handbook]]
*[[m:Category:Mathematical templates]]
+
{{mediawiki}}
+
{{Help navigation}}
+
[[Category:Wikipedia text help]]
+
[[Category:Wikipedia features]]
+

Latest revision as of 02:09, 8 July 2013

This page has it's origination in the Wikimedia Foundation's development website Meta-wiki or has been exported and is now part of the newer Mediawiki software resources website for assisting new wikis with startup organization and has been copied according to the terms of the (CC-BY-SA-3.0), the GFDL standard GNU pulic license or the source file(s) is/are in the public domain. Pages with this Notice are part of the Meta-wiki Handbook.
Using Wiki-markup —How-to-edit on this wiki
The wiki-how-to edit text and information originates in Wikimedia Foundation source pages on the sites: MediaWiki, Meta-Wiki, Wikimedia Commonsi, Wikibooks, or Wikipedia and is gratefully used verbatim, customized and/or adapted under one or more of the following licences:
CC-SA-2.5, GFPL, GFDL licensing or pages in the Public Domain.

Contents

The accuracy and format of numeric results varies with the server. Currently the results produced by Wikimedia servers seem to be uniform.

The functions #expr: and #ifexpr: of MediaWiki extension ParserFunctions evaluate numerical expressions, and also boolean expressions involving numbers and booleans (not strings). The syntax is

{{ #expr: expression }}

Spaces are not needed, except between words (for operators and constants). Inside numbers no spaces are allowed.

[edit] General

An expression is a string representing a tree structure with type/value pairs as nodes, with binary operators in infix notation, unary operators in prefix notation, and end nodes represented by numbers and constants. Letters in operators and names of constants are case-insensitive.

The ParserFunctions software determines which operators and constants, and what numbers, are supported. The e in scientific notation and the sign of a number are treated as operators, the supported literal numbers are unsigned numbers in ordinary decimal format. The ParserFunctions software also determines the precedence of the operators and the error messages, and it converts all literal numbers to type float.

For the rest the ParserFunctions software just defines the operators in terms of PHP functions and operators, and any type conversions and pecularities of the operators are properties of these PHP functions and operators themselves. Also, the format of the result is entirely determined by PHP.

The data types are the PHP data types float (double precision floating-point format) and integer (64-bit integer). The range for type integer is from -(2^63) = {{#expr:trunc(1-2^63)}} through 2^63 - 1 = {{#expr:(trunc2)^(trunc62)+((trunc2)^(trunc62)-(trunc1))}}. Type float allows fractions and very large numbers, but only in the range -(2^52) = {{#expr:trunc-(2^52)}} through (2^52) = {{#expr:trunc(2^52)}} all integer values can be exactly represented in type float (see Help:Calculation accuracy).

Dynamic typing is applied. The end nodes are all of type float (as mentioned, numbers are converted to float; this applies even for numbers with an integer value and format). The data type of the result of an operation depends on the operator, and for some operators on the type(s) of the argument(s), and in some cases on their value(s). If according to these rules the result is of type float, any argument of type integer is converted to float before the operation, and the result is also rounded to float:

  • {{numfh{{safesubst:{{safesubst:#if:(trunc2^trunc62+trunc512)-2^62|p1|p2}}||(trunc2^trunc62+trunc512)-2^62|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numfh
  • {{numfh{{safesubst:{{safesubst:#if:(trunc2^trunc62+trunc512)+(trunc2^trunc62+trunc1535)|p1|p2}}||(trunc2^trunc62+trunc512)+(trunc2^trunc62+trunc1535)|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numfh
  • {{numfh{{safesubst:{{safesubst:#if:2^63+2047|p1|p2}}||2^63+2047|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numfh

Apart from that, a numerical value outside the range of type integer is converted to float, except in the case of trunc (and mod, which involves applying trunc to the arguments first).

There are 31 operators (excluding two synonyms), two constants, and the unsigned numbers in ordinary decimal notation.

[edit] Operators, numbers, and constants

Since literal numbers are of type float, trunc is sometimes used in the examples to construct an integer-type argument, to demonstrate the result of an operator for this case.

Operator Args Operation PHP Data type Prio Examples
- 1 unary - sign (negation) - same as argument {{#if:10 {{Number table sorting/{{#ifexpr:10<0 negative positive
 }}
1={{#expr:abs 10}}
}}{{#ifeq:|yes
no 10 10
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:Xpettu
<code>e<code> between subexpressions 2 *10^ * pow (10,..) float unless the factor on the left is of type integer and the exponent is non-negative and of type integer {{#if:10 {{Number table sorting/{{#ifexpr:10<0 negative positive
 }}
1={{#expr:abs 10}}
}}{{#ifeq:|yes
no 10 10
 }}
}}

}}

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettTemplate:Xpett

Wrong:

Template:Xpett
<code>exp<code> 1 exponential function ex exp float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:XpettuTemplate:Xpettu

Compare:

Template:Xpett
Template:Xpett
<code>ln<code> 1 natural logarithm log float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:XpettuTemplate:Xpettu

Hence, the common logarithm of e.g. 2:

Template:Xpett
<code>abs<code> 1 absolute value abs same as argument {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:Xpettu
<code>trunc<code> 1 truncation (int), i.e. type-casting to integer integer {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:XpettuTemplate:XpettuTemplate:XpettuTemplate:XpettuTemplate:XpettuTemplate:Xpettu
<code>floor<code> 1 floor function floor float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:Xpettu
<code>ceil<code> 1 ceiling function ceil float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:Xpettu
<code>sin<code> 1 sine sin float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:Xpettu

With an angle in degrees, e.g. 30°:

Template:Xpett
<code>cos<code> 1 cosine cos float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:Xpettu
<code>tan<code> 1 tangent tan float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:Xpettu
<code>asin<code> 1 arcsine asin float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:Xpettu
<code>acos<code> 1 arccosine acos float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:Xpettu
<code>atan<code> 1 arctangent atan float {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:Xpettu
<code>not<code> 1 negation, logical NOT ! integer (1 or 0) {{#if:9 {{Number table sorting/{{#ifexpr:9<0 negative positive
 }}
1={{#expr:abs 9}}
}}{{#ifeq:|yes
no 9 9
 }}
}}

}} ||

Template:XpettuTemplate:XpettuTemplate:XpettuTemplate:Xpettu
<code>^<code> 2 exponentiation (power) pow float unless the base is of type integer and the exponent is non-negative and of type integer {{#if:8 {{Number table sorting/{{#ifexpr:8<0 negative positive
 }}
1={{#expr:abs 8}}
}}{{#ifeq:|yes
no 8 8
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
<code>*<code> 2 multiplication * integer if both arguments are integer, otherwise float {{#if:7 {{Number table sorting/{{#ifexpr:7<0 negative positive
 }}
1={{#expr:abs 7}}
}}{{#ifeq:|yes
no 7 7
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
<code>/<code> (also written div) 2 division (div is not integer division<ref name="divmod"><code>div and mod are different from all programming languages, see bugzilla:6068</ref>) / float, unless both arguments are integer and the mathematical result is an integer {{#if:7 {{Number table sorting/{{#ifexpr:7<0 negative positive
 }}
1={{#expr:abs 7}}
}}{{#ifeq:|yes
no 7 7
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
mod<code> 2 modulo operation, remainder of division after truncating both operands to an integer.<ref name="divmod"/> % integer {{#if:7 {{Number table sorting/{{#ifexpr:7<0 negative positive
 }}
1={{#expr:abs 7}}
}}{{#ifeq:|yes
no 7 7
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
<code>+ 2 addition + integer if both arguments are integer, otherwise float {{#if:6 {{Number table sorting/{{#ifexpr:6<0 negative positive
 }}
1={{#expr:abs 6}}
}}{{#ifeq:|yes
no 6 6
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
- 2 subtraction - integer if both arguments are integer, otherwise float {{#if:6 {{Number table sorting/{{#ifexpr:6<0 negative positive
 }}
1={{#expr:abs 6}}
}}{{#ifeq:|yes
no 6 6
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
round<code> 2 rounds off the number on the left to a multiple of 1/10 raised to a power, with the exponent equal to the truncated value of the number given on the right round float {{#if:5 {{Number table sorting/{{#ifexpr:5<0 negative positive
 }}
1={{#expr:abs 5}}
}}{{#ifeq:|yes
no 5 5
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
<code>=<code> 2 equality (numerical incl. logical, not for strings) == integer (1 or 0) {{#if:4 {{Number table sorting/{{#ifexpr:4<0 negative positive
 }}
1={{#expr:abs 4}}
}}{{#ifeq:|yes
no 4 4
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb

wrong:

Template:Xpett
<code><><code> (also written !=) 2 inequality, logical xor; not for strings (negation of =) != integer (1 or 0) {{#if:4 {{Number table sorting/{{#ifexpr:4<0 negative positive
 }}
1={{#expr:abs 4}}
}}{{#ifeq:|yes
no 4 4
 }}
}}

}} ||

Template:XpettbTemplate:Xpettb
<code><<code> 2 less than (not for ordering of strings) < integer (1 or 0) {{#if:4 {{Number table sorting/{{#ifexpr:4<0 negative positive
 }}
1={{#expr:abs 4}}
}}{{#ifeq:|yes
no 4 4
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb

wrong:

Template:Xpettb
<code>><code> 2 greater than (same as <, with arguments reversed) > integer (1 or 0) {{#if:4 {{Number table sorting/{{#ifexpr:4<0 negative positive
 }}
1={{#expr:abs 4}}
}}{{#ifeq:|yes
no 4 4
 }}
}}

}} ||

Template:XpettbTemplate:Xpettb
<code><=<code> 2 less than or equal to (same as >=, with arguments reversed) <= integer (1 or 0) {{#if:4 {{Number table sorting/{{#ifexpr:4<0 negative positive
 }}
1={{#expr:abs 4}}
}}{{#ifeq:|yes
no 4 4
 }}
}}

}} ||

Template:XpettbTemplate:Xpettb
<code>>=<code> 2 greater than or equal to (negation of <) >= integer (1 or 0) {{#if:4 {{Number table sorting/{{#ifexpr:4<0 negative positive
 }}
1={{#expr:abs 4}}
}}{{#ifeq:|yes
no 4 4
 }}
}}

}} ||

Template:XpettbTemplate:Xpettb
<code>and<code> 2 logical AND && integer (1 or 0) {{#if:3 {{Number table sorting/{{#ifexpr:3<0 negative positive
 }}
1={{#expr:abs 3}}
}}{{#ifeq:|yes
no 3 3
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
<code>or<code> 2 logical OR || integer (1 or 0) {{#if:2 {{Number table sorting/{{#ifexpr:2<0 negative positive
 }}
1={{#expr:abs 2}}
}}{{#ifeq:|yes
no 2 2
 }}
}}

}} ||

Template:XpettbTemplate:XpettbTemplate:XpettbTemplate:Xpettb
<code>+<code> 1 unary +<code> sign (nothing) same as argument n.a. Template:XpettuTemplate:XpettuTemplate:Xpettu
(number) 0 unsigned number in ordinary decimal notation (unary plus and minus and e are treated as operators, see elsewhere in this table) floatval float n.a.
Template:Xpett
Template:Xpett
<code>e<code> as subexpression 0 constant e exp(1) float n.a.
Template:Xpett
<code>pi<code> 0 constant π pi() float n.a.
Template:Xpett

Logical operators return 1 for true and 0 for false, and interpret 0 as false and any other number as true. Thus <code>{{{{#if:|Template:Xpd/wl|#expr: (2 < 3) + 1}}}} gives {{#expr: (2 < 3) + 1}} {{#ifeq:{{{gives}}}||||||}} [1]. Note that "and" and "or" work with #expr and #ifexpr only; for use with #if, #ifeq, and #ifexist, use 1 as then-text and 0 as else-text, and combine results with "and" and "or" in an outer #expr or #ifexpr. Instead of {{ #expr: {{#if:{{{a}}}|1|0}} or {{#if:{{{b}}}|1|0}} }} we can also use {{#if:{{{a}}}{{{b}}}|1|0}}}}. For negation, simply subtract from 1 or interchange then- and else-part.

Precedence is indicated in the table, a higher number means that the operator is applied first. Examples (">" refers to going before, "~" means application from left to right):

  • e > floor, not, etc.: {{#expr:floor1.5e1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:floor1.5e1||||||=|=|=}}, {{#expr:not0e1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:not0e1||||||=|=|=}}
  • floor > ^: {{#expr:floor1.5^2{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:floor1.5^2||||||=|=|=}}
  • ^ > *: {{#expr:2*3^2{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:2*3^2||||||=|=|=}}
  • * ~ / ~ mod: {{#expr:12/3*2{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:12/3*2||||||=|=|=}}, {{#expr:111/3mod10{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:111/3mod10||||||=|=|=}}, {{#expr:358mod10*2{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:358mod10*2||||||=|=|=}},
  • * > +, -: {{#expr:2+3*4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:2+3*4||||||=|=|=}}, {{#expr:2-3*4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:2-3*4||||||=|=|=}}
  • + ~ -: {{#expr:6-2+3{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:6-2+3||||||=|=|=}}, {{#expr:-2+3{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:-2+3||||||=|=|=}}
  • +, - > round: {{#expr:1.234round2-1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1.234round2-1||||||=|=|=}}
  • round > = etc.: {{#expr:1.23=1.234round2{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1.23=1.234round2||||||=|=|=}}
  • = etc. > and: {{#expr:1 and 2=1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1 and 2=1||||||=|=|=}}
  • and > or: {{#expr:1 or 1 and 0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1 or 1 and 0||||||=|=|=}}

In the case of equal precedence number, evaluation is from left to right:

  • {{#expr:12/2*3{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:12/2*3||||||=|=|=}}
  • {{#expr:3^3^3{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:3^3^3||||||=|=|=}}

Parentheses can force a different precedence: {{#expr:(2+3)*4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:(2+3)*4||||||=|=|=}}

Blank spaces are good for readability but not needed for working properly, except between words (including "e"), and not allowed within numbers:

  • {{{{#if:|Template:Xpd/wl|#expr:7mod3}}}} gives {{#expr:7mod3}} {{#ifeq:{{{gives}}}||||||}} [2]
  • {{{{#if:|Template:Xpd/wl|#expr:7.5round0}}}} gives {{#expr:7.5round0}} {{#ifeq:{{{gives}}}||||||}} [3]
  • {{{{#if:|Template:Xpd/wl|#expr:0and1}}}} gives {{#expr:0and1}} {{#ifeq:{{{gives}}}||||||}} [4]
  • {{{{#if:|Template:Xpd/wl|#expr:0or not0}}}} gives {{#expr:0or not0}} {{#ifeq:{{{gives}}}||||||}} [5]
  • {{{{#if:|Template:Xpd/wl|#expr:0ornot0}}}} gives {{#expr:0ornot0}} {{#ifeq:{{{gives}}}||||||}} [6]
  • {{{{#if:|Template:Xpd/wl|#expr:123 456}}}} gives {{#expr:123 456}} {{#ifeq:{{{gives}}}||||||}} [7]
  • {{{{#if:|Template:Xpd/wl|#expr:not not3}}}} gives {{#expr:not not3}} {{#ifeq:{{{gives}}}||||||}} [8]
  • {{{{#if:|Template:Xpd/wl|#expr:notnot3}}}} gives {{#expr:notnot3}} {{#ifeq:{{{gives}}}||||||}} [9]
  • {{{{#if:|Template:Xpd/wl|#expr:---2}}}} gives {{#expr:---2}} {{#ifeq:{{{gives}}}||||||}} [10]
  • {{{{#if:|Template:Xpd/wl|#expr:-+-2}}}} gives {{#expr:-+-2}} {{#ifeq:{{{gives}}}||||||}} [11]
  • {{{{#if:|Template:Xpd/wl|#expr:2*-3}}}} gives {{#expr:2*-3}} {{#ifeq:{{{gives}}}||||||}} [12]
  • {{{{#if:|Template:Xpd/wl|#expr:-not-not-not0}}}} gives {{#expr:-not-not-not0}} {{#ifeq:{{{gives}}}||||||}} [13]
  • {{{{#if:|Template:Xpd/wl|#expr:2*/3}}}} gives {{#expr:2*/3}} {{#ifeq:{{{gives}}}||||||}} [14]
  • {{{{#if:|Template:Xpd/wl|#expr:sinln1.1}}}} gives {{#expr:sinln1.1}} {{#ifeq:{{{gives}}}||||||}} [15]
  • {{{{#if:|Template:Xpd/wl|#expr:sin ln1.1}}}} gives {{#expr:sin ln1.1}} {{#ifeq:{{{gives}}}||||||}} [16]

For scientific notation e is treated as an operator. An e between subexpressions works just like *10^, except that together with the unary minus, it has the highest precedence, e.g. before a separate ^, and that the implicit 10 is of type integer, not float. An e as subexpression (i.e., with an each side either nothing or an operator) is Euler's constant. An e with on one side nothing or an operator and on the other side a subexpression gives an error message.

[edit] Transitivity

For comparing a number of type float with one of type integer, the integer is converted to float. Therefore the operators =, <= and >= are not transitive with mixed types:

  • {{#expr:trunc1e16=1e16{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1e16=1e16||||||=|=|=}}
  • {{#expr:1e16=trunc1e16+trunc1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e16=trunc1e16+trunc1||||||=|=|=}}
  • {{#expr:trunc1e16=trunc1e16+trunc1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1e16=trunc1e16+trunc1||||||=|=|=}}
  • {{#expr:trunc1e16>=1e16{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1e16>=1e16||||||=|=|=}}
  • {{#expr:1e16>=trunc1e16+trunc1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e16>=trunc1e16+trunc1||||||=|=|=}}
  • {{#expr:trunc1e16>=trunc1e16+trunc1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1e16>=trunc1e16+trunc1||||||=|=|=}}

Similarly, a >= b and b = c does not imply a >=c:

  • {{#expr:trunc1e16>=1e16{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1e16>=1e16||||||=|=|=}}
  • {{#expr:1e16=trunc1e16+trunc1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e16=trunc1e16+trunc1||||||=|=|=}}
  • {{#expr:trunc1e16>=trunc1e16+trunc1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1e16>=trunc1e16+trunc1||||||=|=|=}}

However, < and > are transitive.

[edit] Monotonicity

In division of numbers of type integer, a small change in the dividend can change the type of the result. Therefore, if the absolute value of the result is greater than 2^53, it is not always a monotonic function of the dividend:

  • {{numf{{safesubst:{{safesubst:#if:(trunc1e18-trunc2)/trunc3|p1|p2}}||(trunc1e18-trunc2)/trunc3|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf
  • {{numf{{safesubst:{{safesubst:#if:(trunc1e18-trunc1)/trunc3|p1|p2}}||(trunc1e18-trunc1)/trunc3|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf
  • {{numf{{safesubst:{{safesubst:#if:trunc1e18/trunc3|p1|p2}}||trunc1e18/trunc3|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf

Template:Divint rectifies this.

[edit] Numbers as input

Leading zeros are allowed, as well as a trailing decimal point (for an integer) and trailing zeros in a number with a decimal point.

  • "{{{{#if:|Template:Xpd/wl|#expr: +01.20}}}}" gives "{{#expr: +01.20}}" {{#ifeq:{{{gives}}}||||||}} [17]
  • "{{{{#if:|Template:Xpd/wl|#expr: 12.}}}}" gives "{{#expr: 12.}}" {{#ifeq:{{{gives}}}||||||}} [18]

These equivalences apply also for #ifeq and #switch, see below.

The part of the expression representing a number is a sequence of digits and points; due to floatval a second point and any digits and points immediately after it are ignored, and do not give an error message. Group separators are not allowed: a comma is considered an unrecognised punctuation character:

Thus a number can only consist of:

  • one or more digits, or
  • zero or more digits, a point, and zero or more digits.
  • "{{{{#if:|Template:Xpd/wl|#expr:123}}}}" gives "{{#expr:123}}" {{#ifeq:{{{gives}}}||||||}} [19]
  • "{{{{#if:|Template:Xpd/wl|#expr:123.456}}}}" gives "{{#expr:123.456}}" {{#ifeq:{{{gives}}}||||||}} [20]
  • "{{{{#if:|Template:Xpd/wl|#expr:.456}}}}" gives "{{#expr:.456}}" {{#ifeq:{{{gives}}}||||||}} [21]
  • "{{{{#if:|Template:Xpd/wl|#expr:0}}}}" gives "{{#expr:0}}" {{#ifeq:{{{gives}}}||||||}} [22]

Also accepted:

  • "{{{{#if:|Template:Xpd/wl|#expr: 123.}}}}" gives "{{#expr: 123.}}" {{#ifeq:{{{gives}}}||||||}} [23]
  • "{{{{#if:|Template:Xpd/wl|#expr:000123.4560 }}}}" gives "{{#expr:000123.4560 }}" {{#ifeq:{{{gives}}}||||||}} [24]
  • "{{{{#if:|Template:Xpd/wl|#expr:.}}}}" gives "{{#expr:.}}" {{#ifeq:{{{gives}}}||||||}} [25]

With ignored part:

  • "{{{{#if:|Template:Xpd/wl|#expr:123.456.789}}}}" gives "{{#expr:123.456.789}}" {{#ifeq:{{{gives}}}||||||}} [26]

Wrong:

  • "{{{{#if:|Template:Xpd/wl|#expr: 123,456}}}}" gives "{{#expr: 123,456}}" {{#ifeq:{{{gives}}}||||||}} [27]
  • "{{{{#if:|Template:Xpd/wl|#expr: 123 456}}}}" gives "{{#expr: 123 456}}" {{#ifeq:{{{gives}}}||||||}} [28]

Combinations with the operator e:

Float:

  • "{{{{#if:|Template:Xpd/wl|#expr:2.3e-5}}}}" gives "{{#expr:2.3e-5}}" {{#ifeq:{{{gives}}}||||||}} [29]
  • {{#expr:2e18{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:2e18||||||=|=|=}}

Integer type:

  • {{#expr:(trunc123456789012345)e trunc4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:(trunc123456789012345)e trunc4||||||=|=|=}}

Compare:

  • {{#expr:123456789012345e4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:123456789012345e4||||||=|=|=}}
  • {{#expr:trunc123456789012345e4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc123456789012345e4||||||=|=|=}}
  • {{#expr:(trunc123456789012345)e4{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:(trunc123456789012345)e4||||||=|=|=}}
  • "{{{{#if:|Template:Xpd/wl|#expr: e5}}}}" gives "{{#expr: e5}}" {{#ifeq:{{{gives}}}||||||}} [30]

Commas can be removed as follows:

  • {{formatnum:1,2,,34.567,8{{safesubst:{{safesubst:#if:R|p1|p2}}||R|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → 1234.5678

Input of a number of type integer is not possible. A float can be converted to type integer with the function trunc. An integer with a value that is not a float value can be constructed, e.g. with Template:Trunc, where the number is given in two pieces:

The smallest positive float can be written:

  • {{#expr:.5e-323{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:.5e-323||||||=|=|=}}

but we cannot use that output as input:

  • {{#expr:{{#expr:.5e-323}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:{{#expr:.5e-323}}||||||=|=|=}}

All digits are used to determine the float to which a number is rounded, as demonstrated in a borderline case:

{{hex{{safesubst:{{safesubst:#if:0.00000000000000011102230246251566636831481088739149080825|p1|p2}}||0.00000000000000011102230246251566636831481088739149080825|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}{{#if:0.00000000000000011102230246251566636831481088739149080825|{{#iferror:{{#expr:0.00000000000000011102230246251566636831481088739149080825}}|0.00000000000000011102230246251566636831481088739149080825|{{#ifeq:Template:Type|integer|{{#ifexpr:abs(0.00000000000000011102230246251566636831481088739149080825)>=2^53|ca. }}}}{{#ifexpr:(0.00000000000000011102230246251566636831481088739149080825)<0|-}}{{#switch:{{#expr:0.00000000000000011102230246251566636831481088739149080825}}|INF|-INF=INF|{{#ifexpr:(0.00000000000000011102230246251566636831481088739149080825)=0|0|Template:Significand2hex*2^Template:Oom2{{#ifeq:Template:Type|float| (ulp=2^{{#expr:-52+Template:Oom2}}=ca. Template:Numfh/2)}}}}}}}}}}
{{hex{{safesubst:{{safesubst:#if:0.00000000000000011102230246251566636831481088739149080826|p1|p2}}||0.00000000000000011102230246251566636831481088739149080826|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}{{#if:0.00000000000000011102230246251566636831481088739149080826|{{#iferror:{{#expr:0.00000000000000011102230246251566636831481088739149080826}}|0.00000000000000011102230246251566636831481088739149080826|{{#ifeq:Template:Type|integer|{{#ifexpr:abs(0.00000000000000011102230246251566636831481088739149080826)>=2^53|ca. }}}}{{#ifexpr:(0.00000000000000011102230246251566636831481088739149080826)<0|-}}{{#switch:{{#expr:0.00000000000000011102230246251566636831481088739149080826}}|INF|-INF=INF|{{#ifexpr:(0.00000000000000011102230246251566636831481088739149080826)=0|0|Template:Significand2hex*2^Template:Oom2{{#ifeq:Template:Type|float| (ulp=2^{{#expr:-52+Template:Oom2}}=ca. Template:Numfh/2)}}}}}}}}}}

  • {{numf{{safesubst:{{safesubst:#if:2^-53|p1|p2}}||2^-53|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf
  • {{numf{{safesubst:{{safesubst:#if:2^-53+2^-105|p1|p2}}||2^-53+2^-105|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf

Similarly:

  • {{numfh{{safesubst:{{safesubst:#if:4398046511104.00048828125|p1|p2}}||4398046511104.00048828125|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numfh
  • {{numfh{{safesubst:{{safesubst:#if:4398046511104.00048828125000000000000000000000000000000000000000000000001|p1|p2}}||4398046511104.00048828125000000000000000000000000000000000000000000000001|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numfh
  • 2^42+2^-10 = 4,398,046,511,104.000,976,562,5

Thus we see that the value halfway the two consecutive floats is rounded down in this case, while the other decimal fractions between the two floats are rounded to the nearest of the two.

[edit] Function plural

As opposed to ParserFunctions, "Template:Ml" accepts points and commas in numbers and interprets them in a site-language-specific way (depending on $separatorTransformTable in Messagesxx.php); on this site:

(on e.g. the German and the Dutch sites reversed w.r.t. the result on English sites).

However, this can be used instead of #ifeq, #ifexpr or #switch only for distinguishing a few site-language-specific categories of numbers (for English: 1 and "not equal to 1", for French <=1 and >1, etc.). Also, since it is designed for linguistic distinction of singular and plural, in some languages the categories of numbers are numerically less useful.

[edit] Numbers as output

The MediaWiki software simply passes on the literal result of the php computation, except that logical values are changed to 1 and 0. Therefore the format can depend on the server.

A number of type integer is displayed without rounding and in ordinary decimal notation:

  • {{#expr:trunc(2^52){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc(2^52)||||||=|=|=}}
  • {{#expr:-trunc(2^52){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:-trunc(2^52)||||||=|=|=}}
  • {{#expr:trunc1100000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1100000||||||=|=|=}}
  • {{#expr:trunc1200000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1200000||||||=|=|=}}
  • {{#expr:trunc1300000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc1300000||||||=|=|=}}
  • {{#expr:trunc4100000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:trunc4100000||||||=|=|=}}

while a number of type float is rounded to 14 digits, while inconsistently displaying some numbers in scientific format. This is reportedly a bug in the Zend Engine which has been fixed [31], but on Wikimedia apparently not yet:

  • {{#expr:2^52{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:2^52||||||=|=|=}}
  • {{#expr:-(2^52){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:-(2^52)||||||=|=|=}}
  • {{#expr:1100000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1100000||||||=|=|=}}
  • {{#expr:1200000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1200000||||||=|=|=}}
  • {{#expr:1300000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1300000||||||=|=|=}}
  • {{#expr:4100000{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:4100000||||||=|=|=}}
  • {{#expr:1/7{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1/7||||||=|=|=}}

For some representable round numbers, notably some multiples of 100,000, scientific notation is produced, which, if reused in an expression, is not even exactly equal to the original number:

  • {{numfh{{safesubst:{{safesubst:#if:4.1e6|p1|p2}}||4.1e6|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numfh

Thus we may want to either compare two results of #expr (for equality up to 14 digits) or compare two expressions, such as 4100000 and 4000000+100000 (for exact equality); depending on context and intention, the negative result of the comparison of the result of expr with the exact number may be confusing.

The function formatnum adds commas (on the left of the point only), but does not convert from or to scientific format:

  • {{formatnum:1234567.890123{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → 1,234,567.890123
  • {{formatnum:1234567.890123E16{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → 1,234,567.890123E16

The number output is suitable for many other calculation programs, also the scientific notation. In that sense output like 6E23 is more convenient than 6{{#if:23

|×10{{#switch:{{{2}}}
 |#default={{#switch:{{#if:23|{{#ifeq:23|{{#if:{{#ifexpr:{{#expr:23}}}}|(23)|{{#expr:23}}}}|true|{{#ifeq:23|+{{#if:{{#ifexpr:{{#expr:23}}}}|(23)|{{#expr:23}}}}|true|{{#ifeq:23|({{#if:{{#ifexpr:{{#expr:23}}}}|(23)|{{#expr:23}}}})|true|false}}}}}}}}
  |#default={{#switch:{{{2}}}
   |plus=+{{#ifexpr:(231)=(23)|Template:FormattingError|{{#ifexpr:23<0|−}}{{#ifexpr:abs(231)>10*abs(23)|{{#expr:abs(23)}}|{{#expr:trunc(abs(23))}}.{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>14|Template:FormattingError|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=1|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E1mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=2|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E2mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=3|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E3mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=4|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>4|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E4mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=5|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E5mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=6|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E6mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=7|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>7|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E7mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=8|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E8mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=9|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E9mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=10|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>10|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E10mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=11|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E11mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=12|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E12mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=13|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>13|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E13mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=14|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E14mod10}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
   |#default={{#ifexpr:(231)=(23)|Template:FormattingError|{{#ifexpr:23<0|−}}{{#ifexpr:abs(231)>10*abs(23)|{{#expr:abs(23)}}|{{#expr:trunc(abs(23))}}.{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>14|Template:FormattingError|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=1|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E1mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=2|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E2mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=3|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E3mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=4|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>4|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E4mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=5|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E5mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=6|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E6mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=7|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>7|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E7mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=8|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E8mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=9|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E9mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=10|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>10|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E10mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=11|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E11mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=12|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E12mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=13|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>13|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E13mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=14|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E14mod10}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}
  |false=23
 }}
 |text=23
}}
|e

}}.

Template:Num displays a number with high accuracy (such that in the case of float the specific internal value is reconstructed when using the output as input), with the variant Template:Numf showing thousands separators:

  • {{numf{{safesubst:{{safesubst:#if:trunc3^trunc39|p1|p2}}||trunc3^trunc39|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf
  • {{numf{{safesubst:{{safesubst:#if:trunc3^trunc40|p1|p2}}||trunc3^trunc40|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf
  • {{numf{{safesubst:{{safesubst:#if:1/7|p1|p2}}||1/7|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Numf

[edit] Negative zero

Although the literal "-0" (the unary minus applied to 0) gives 0, some operations give the float "-0" (preserving commutativity of + and *):

Generating -0 with *, /, ceil, round:

  • {{#expr: -1*0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: -1*0||||||=|=|=}}
  • {{#expr: (-1e-200)*1e-200{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (-1e-200)*1e-200||||||=|=|=}}
  • {{#expr: -1/1e333{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: -1/1e333||||||=|=|=}}
  • {{#expr: 0/-1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: 0/-1||||||=|=|=}}
  • {{#expr: (-1e-200)/1e200{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (-1e-200)/1e200||||||=|=|=}}
  • {{#expr: (1e-200)/-1e200{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (1e-200)/-1e200||||||=|=|=}}
  • {{#expr: ceil(-.1){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: ceil(-.1)||||||=|=|=}}
  • {{#expr: -.2round0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: -.2round0||||||=|=|=}}

Passing -0 on with unary +, binary + and -, * (and hence operator e), /, floor, ceil:

  • {{#expr: +(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: +(-1*0)||||||=|=|=}}
  • {{#expr: (-1*0)+(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (-1*0)+(-1*0)||||||=|=|=}}
  • {{#expr: (-1*0)-0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (-1*0)-0||||||=|=|=}}
  • {{#expr: 1*(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: 1*(-1*0)||||||=|=|=}}
    • {{#expr: (-1*0)e0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (-1*0)e0||||||=|=|=}}
  • {{#expr: (-1*0)/1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: (-1*0)/1||||||=|=|=}}
  • {{#expr: floor(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: floor(-1*0)||||||=|=|=}}
  • {{#expr: ceil(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: ceil(-1*0)||||||=|=|=}}

However:

  • {{#expr: -0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: -0||||||=|=|=}}
  • {{#expr: -10^-401{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr: -10^-401||||||=|=|=}}

Since 2011 the function #ifexpr takes both 0 and the float -0 as false:

  • {{#ifexpr:0{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifexpr:0|1|0||||=|=|=}}
  • {{#ifexpr:-1*0{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifexpr:-1*0|1|0||||=|=|=}}

Also, as argument of a logical operator -0 is taken as false:

  • {{#expr:not(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:not(-1*0)||||||=|=|=}}
  • {{#expr:(-1*0)and1{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:(-1*0)and1||||||=|=|=}}
  • {{#expr:(-1*0)or0{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:(-1*0)or0||||||=|=|=}}

If an expression of type float can have the value -0, then an operation that removes the minus sign from a possible -0, but does not affect any other result, is the addition of 0. If an expression may be of type integer then one can add trunc0.

  • {{#expr:0+(-1*0){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:0+(-1*0)||||||=|=|=}}

[edit] Type conversion

A float can be converted to type integer by operator trunc (note however that for 2^63 <= x <= 2^64 we get x - 2^64, for larger x we get 0; for x < -2^63 we get -2^63).

An expression of type integer can be converted to float by adding 0. Note that for integers greater than 2^53 this involves rounding.

[edit] Limitations and workarounds

The operator trunc gives the correct mathematical result of rounding toward 0 to an integer for integer-type numbers and for floats x inside the integer range: -2^63 <= x < 2^63. To also get the correct mathematical result for floats outside this range is simple, because these floats all have an integer value, so they can be left unchanged. Template:Trunc does this.

The operator mod gives strange errors for some fairly large values of the second argument:

  • {{#expr:123mod(2^32-1){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:123mod(2^32-1)||||||=|=|=}}

Template:Modint works correctly for a larger range.

The operator round with second argument 0 gives wrong results for odd numbers between 2^52 and 2^53, even though the exact results are representable as float. Also, the operator rounds integer-type numbers with an absolute value between 2^53 and 2^63 to float. Template:Round0 always gives the expression for the exact result, for subsequent use in an expression, or for display (with the accuracy of this depending on the accuracy of the display function or template only).

The operator floor rounds integer-type numbers with an absolute value between 2^53 and 2^63 to float, and not necessarily downward. Similarly the operator ceil rounds these numbers not necessarily upward. Template:Floor and Template:Ceil always give the expressions for the exact results, for subsequent use in an expression, or for display (with the accuracy of this, and the direction of rounding, depending on the display function or template only).

[edit] Branching depending on an expression

The function #ifexpr: produces one of two specified results, depending on the value of a boolean expression involving numbers and booleans (not strings). Examples:

  • {{#ifexpr: {{CURRENTDOW}} = 0 or {{CURRENTDOW}} = 6 | weekEND | weekDAY}} yields {{#ifexpr: 5 = 0 or 5 = 6|weekEND|weekDAY}} because today is Friday and so "{{{{#if:|Template:Xpd/wl|CURRENTDOW}}}}" is "5" {{#ifeq:is||||||}} [32].
  • {{#expr:2^10=1024{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:2^10=1024||||||=|=|=}}

Note that rounding errors can affect a comparison, even if they are not visible in the displayed values: the internal values are compared. This applies even to large integers:

  • {{#expr:1024e20-1e23{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1024e20-1e23||||||=|=|=}}
  • {{#expr:1024e20-1e23=2.4e21{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1024e20-1e23=2.4e21||||||=|=|=}}

Instead one may want to allow a relatively small difference that could be present due to rounding errors:

  • {{#expr:abs(1024e20-1e23-2.4e21)<1e8{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:abs(1024e20-1e23-2.4e21)<1e8||||||=|=|=}}

Again, for comparing a number of type float with one of type integer, the integer is converted to float. In this case the type is determined by the format of the number, e.g. 2 is an integer, but 2.0 and 2e0 are floats; also 12345678901234567890 is a float, because it is too large for an integer.

Again, equality is not transitive with mixed types:

  • {{#ifeq:12345678901234567{{safesubst:{{safesubst:#if:12345678901234568.010|p1|p2}}||12345678901234568.0|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:12345678901234567|12345678901234568.0|1|0|||=|=|=}}
  • {{#ifeq:12345678901234568.0{{safesubst:{{safesubst:#if:1234567890123456810|p1|p2}}||12345678901234568|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:12345678901234568.0|12345678901234568|1|0|||=|=|=}}
  • {{#ifeq:12345678901234567{{safesubst:{{safesubst:#if:1234567890123456810|p1|p2}}||12345678901234568|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:12345678901234567|12345678901234568|1|0|||=|=|=}}
  • {{#ifeq:12345678901234567{{safesubst:{{safesubst:#if:12345678901234567e010|p1|p2}}||12345678901234567e0|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:12345678901234567|12345678901234567e0|1|0|||=|=|=}}
  • {{#ifeq:12345678901234567e0{{safesubst:{{safesubst:#if:1234567890123456810|p1|p2}}||12345678901234568|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:12345678901234567e0|12345678901234568|1|0|||=|=|=}}
  • {{#ifeq:12345678901234567{{safesubst:{{safesubst:#if:1234567890123456810|p1|p2}}||12345678901234568|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:12345678901234567|12345678901234568|1|0|||=|=|=}}
  • {{num{{safesubst:{{safesubst:#if:trunc(2^62)-trunc1+trunc(2^62)|p1|p2}}||trunc(2^62)-trunc1+trunc(2^62)|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}}Template:Num
  • {{#ifeq:9223372036854775700{{safesubst:{{safesubst:#if:922337203685477590010|p1|p2}}||9223372036854775900|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:9223372036854775700|9223372036854775900|1|0|||=|=|=}}
  • {{#ifeq:9223372036854775900{{safesubst:{{safesubst:#if:922337203685477580010|p1|p2}}||9223372036854775800|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:9223372036854775900|9223372036854775800|1|0|||=|=|=}}
  • {{#ifeq:9223372036854775700{{safesubst:{{safesubst:#if:922337203685477580010|p1|p2}}||9223372036854775800|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:9223372036854775700|9223372036854775800|1|0|||=|=|=}}

[edit] Comparisons

The functions #ifeq and #switch compare numbers and strings for equality using PHP operator ==, the same as the equality operator mentioned above, but now applied directly to the expanded wikitext of the arguments. For comparison as numbers no expressions (not even constants) are allowed, but in this case the unary plus and minus and the e of scientific notation are taken as part of the number, instead of as operators. Without e and decimal point the type is integer, otherwise it is float. As mentioned above, when an integer is compared with a float, the integer is converted to float first.

  • {{#ifeq:3{{safesubst:{{safesubst:#if:3.010|p1|p2}}||3.0|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:3|3.0|1|0|||=|=|=}}
  • {{#ifeq:3{{safesubst:{{safesubst:#if:0310|p1|p2}}||03|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:3|03|1|0|||=|=|=}}
  • {{#ifeq:0.00003456{{safesubst:{{safesubst:#if:3.456E-0510|p1|p2}}||3.456E-05|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:0.00003456|3.456E-05|1|0|||=|=|=}}
  • {{#ifeq:1e23{{safesubst:{{safesubst:#if:.1e2410|p1|p2}}||.1e24|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:1e23|.1e24|1|0|||=|=|=}} although rounding both numbers to float gives different internal numbers:
    • {{#expr:1e23-.1e24{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e23-.1e24||||||=|=|=}}
    • {{#expr:1e23=.1e24{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e23=.1e24||||||=|=|=}}
    • {{#ifexpr:1e23=.1e24{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifexpr:1e23=.1e24|1|0||||=|=|=}}
  • {{#ifeq:9034567890123456789{{safesubst:{{safesubst:#if:903456789012345678810|p1|p2}}||9034567890123456788|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:9034567890123456789|9034567890123456788|1|0|||=|=|=}} (two numbers of type integer, therefore only true if exactly equal); compare:
  • {{#ifeq:9034567890123456700.0{{safesubst:{{safesubst:#if:903456789012345680010|p1|p2}}||9034567890123456800|}}{{safesubst:{{safesubst:#if:10|p1|p2}}||1|}}{{safesubst:{{safesubst:#if:0|p1|p2}}||0|}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#ifeq:9034567890123456700.0|9034567890123456800|1|0|||=|=|=}} (due to the decimal point in one number, both are rounded to float before the comparison, so the comparison is cruder)

[edit] Length of expressions

Long expressions are allowed, see Template:Long expression demo. However, see also efficiency.

[edit] Error messages

Examples for all known #expr: and #ifexpr: error messages. The error texts are within the tags <strong class="error">..</strong>.

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr:1/0}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr:1/0}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr:1/0q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr:1/0|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A1%2F0}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr:2*}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr:2*}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr:2*q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr:2*|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A2%2A}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr:1 2}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr:1 2}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr:1 2q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr:1 2|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A1+2}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#ifexpr:1*/2}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#ifexpr:1*/2}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#ifexpr:1*/2q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#ifexpr:1*/2|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23ifexpr%3A1%2A%2F2}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr: 1 (2)}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr: 1 (2)}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr: 1 (2)q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr: 1 (2)|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A+1+%282%29}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr: (1}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr: (1}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr: (1q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr: (1|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A+%281}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr: 1)}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr: 1)}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr: 1)q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr: 1)|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A+1%29}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr:2*123,456}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr:2*123,456}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr:2*123,456q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr:2*123,456|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A2%2A123%2C456}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr:{{{a}}}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr:{{{a}}}}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr:{{{a}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr:{{{a}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3A%7B%7B%7Ba%7D%7D%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#ifexpr:3%2}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#ifexpr:3%2}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#ifexpr:3%2q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#ifexpr:3%2|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23ifexpr%3A3%252}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#ifexpr:abc}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#ifexpr:abc}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#ifexpr:abcq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#ifexpr:abc|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23ifexpr%3Aabc}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

  • {{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|{}}{{xpd/w{{#if:|l}}|#expr:abc.def}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p

q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|{{{{{#switch:pq|p q=2|p q=3|p*q=4|p#q=5|p:q=6|7}}}}}}}{{xpd/w{{#if:|l}}|"}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}}{{xpd/w{{#if:|l}}|}} → "{{#expr:abc.def}}" "q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p{q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B}}{{#switch:p#expr:abc.defq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:#expr:abc.def|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%23expr%3Aabc.def}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:{{{{{#switch:pq|p q=2|p_q=3|p*q=4|p#q=5|p:q=6|7}}}}}|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%7B%7B%7B%7B%7B%23switch%3Apq%7Cp+q%3D2%7Cp%0Aq%3D3%7Cp%2Aq%3D4%7Cp%23q%3D5%7Cp%3Aq%3D6%7C7%7D%7D%7D%7D%7D}}{{#switch:p"q|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:"|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|%22}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}{{#switch:pq|p_*q|p_**q|p_***q|p_#q|p_##q|p_###q|p_:q|p_::q|p_:::q=%0d}}{{#switch:|&p=%7c|&e=%3d|&s=+|&nl=%0d|&*=%2a|&#=%23|&:=%3a|}}&removecomments=true

{{ #expr:{{ x|102|1000*}} 18 }} gives {{#ifeq:TrainzOnline|Meta|{{#expr:Template:X18}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*18}}}}

{{ #expr:{{ x|102|1000*}} 179 }} gives {{#ifeq:TrainzOnline|Meta|{{#expr:Template:X179}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*179}}}}

{{ #expr:{{ x|102|1000*}} 180 }} gives {{#ifeq:TrainzOnline|Meta|{{#expr:Template:X180}}|{{#expr:1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*1000*180}}}} (on Wikimedia "INF", but depending on the operating system of the server it may also be e.g. "1.#INF")

INF also appears when an intermediate result is of range:

  • {{#expr:1e309/1e308{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e309/1e308||||||=|=|=}}
  • {{#expr:1e200*1e200*1e-300{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e200*1e200*1e-300||||||=|=|=}}.

but

  • {{#expr:1e200*(1e200*1e-300){{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{safesubst:{{safesubst:#if:|p1|p2}}|||}}{{#if:||=}}{{#if:||{{{n2}}}=}}{{#if:||=}}}} → {{#expr:1e200*(1e200*1e-300)||||||=|=|=}}.

{{ #expr:{{ x|33|(1+(}} 1 {{ x|33|))}} }} gives {{#ifeq:TrainzOnline|Meta|{{#expr:Template:X1Template:X}}|{{#expr:(1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+(1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}

{{ #expr:{{ x|34|(1+(}} 1 {{ x|34|))}} }} gives {{#ifeq:TrainzOnline|Meta|{{#expr:Template:X1Template:X}}|{{#expr:(1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+((1+(1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))}}}}

"{{{{#if:|Template:Xpd/wl|#expr:3.4.5.6}}}}" gives "{{#expr:3.4.5.6}}" {{#ifeq:{{{gives}}}||||||}} [33]   (no feature, only an oddity)


Note: Template:Links-small copies a given string, here parts of an expression, for the specified times (max. 120).

Wikitext without error message from the parser functions, but typically unintended:

{{{#expr:2*3}}}   {{{#expr:2*3}}}   (triple braces, the whole is interpreted as parameter tag with parameter name "#expr:2*3")
{{#expr:2*3}}} {{#expr:2*3}}} (one closing brace too many; the last of the three is interpreted as plain text, so that the rest works fine)
{{{#expr:2*3}} {{{#expr:2*3}} (one opening brace too many; the first of the three is interpreted as plain text, so that the rest works fine)
{{#expr:2*3} {{#expr:2*3} (too few braces, the whole is interpreted as plain text)

[edit] Checking for a number

Check whether a string is a valid numeric expression:

  • {{#if:{{#ifexpr:3}}|0|1}} gives {{#if:{{#ifexpr:3}}|0|1}}
  • {{#if:{{#ifexpr:3-2}}|0|1}} gives {{#if:{{#ifexpr:3-2}}|0|1}}
  • {{#if:{{#ifexpr:3 2}}|0|1}} gives {{#if:{{#ifexpr:3 2}}|0|1}}

Find the value represented by a string if it is a valid numeric expression, otherwise just return the string:

  • {{#iferror:{{#expr:3}}|3}} gives {{#iferror:{{#expr:3}}|3}}
  • {{#iferror:{{#expr:3-2}}|3-2}} gives {{#iferror:{{#expr:3-2}}|3-2}}
  • {{#iferror:{{#expr:3 2}}|3 2}} gives {{#iferror:{{#expr:3 2}}|3 2}}

Check whether a string is a number:

  • {{#ifeq:3|{{#expr:3}}|1|0}} gives {{#ifeq:3|{{#expr:3}}|1|0}}
  • {{#ifeq:03|{{#expr:03}}|1|0}} gives {{#ifeq:03|{{#expr:03}}|1|0}}
  • {{#ifeq:3-2|{{#expr:3-2}}|1|0}} gives {{#ifeq:3-2|{{#expr:3-2}}|1|0}}
  • {{#ifeq:3 2|{{#expr:3 2}}|1|0}} gives {{#ifeq:3 2|{{#expr:3 2}}|1|0}}

[edit] Minus sign

Only the Template:Mlw character or Template:Mlw character, typed directly, work as a minus sign operator in expressions.

  • The HTML character references (by name or by numeric code point value) are not recognized when evaluating expressions: numerical character references are converted only when generating the final HTML document (after expansion of templates and parser functions)
  • Only a handful of character references by name are substituted early by MediaWiki, all others are interpreted only by the browser.
  • The other dash characters (such as the hyphen, the figure dash, Template:Mlw, Template:Mlw and others), though often similar visually, are not valid minus signs, but punctuation signs or typographical variants.
Template:Mlw, typed directly as the character '-' (U+002D) Template:Xpd/wl|#expr:-12}}}}" "{{#expr:-12}}" {{#ifeq: }} [34]
hyphen-minus, typed as the numerical character reference &#x2D; "{{#expr:&#x2D;12}}" "{{#expr:-12}}" [35]
hyphen-minus, typed as the numerical character reference &#45; "{{#expr:&#45;12}}" "{{#expr:-12}}" [36]
Template:Mlw, typed directly as the character '−' (U+2212) Template:Xpd/wl|#expr:−12}}}}" "{{#expr:−12}}" {{#ifeq: }} [37]
minus sign, typed as the numerical character reference &#x2212; "{{#expr:&#x2212;12}}" "{{#expr:−12}}" [38]
minus sign, typed as the numerical character reference &#8722; "{{#expr:&#8722;12}}" "{{#expr:−12}}" [39]
minus sign, typed as the symbolic character reference &minus; "{{#expr:&minus;12}}" "{{#expr:−12}}" [40]
figure dash, typed directly as the character '‒' (U+2012) Template:Xpd/wl|#expr:‒12}}}}" "{{#expr:‒12}}" {{#ifeq: }} [41]
figure dash, typed as the numerical character reference &#x2012; "{{#expr:&#x2012;12}}" "{{#expr:‒12}}" [42]
figure dash, typed as the numerical character reference &#8210; "{{#expr:&#8210;12}}" "{{#expr:‒12}}" [43]
Template:Mlw, typed directly as the character '–' (U+2013) Template:Xpd/wl|#expr:–12}}}}" "{{#expr:–12}}" {{#ifeq: }} [44]
en dash, typed as the numerical character reference &#x2013; "{{#expr:&#x2013;12}}" "{{#expr:–12}}" [45]
en dash, typed as the numerical character reference &#8211; "{{#expr:&#8211;12}}" "{{#expr:–12}}" [46]
en dash, typed as the symbolic character reference &ndash; "{{#expr:&ndash;12}}" "{{#expr:–12}}" [47]

Also many other calculation programs require a hyphen. Therefore, in order to be able to copy rendered numbers and expressions to the edit box or input them through a copy operation into other calculation programs, displayed minus signs also need to be hyphens.

[edit] Displaying numbers and numeric expressions

Guidelines such as Template:Mlww focus on number display as end product. However, a point of consideration can also be the possibility to apply the rendered output to #expr or #ifexpr, or to input it without conversion into other calculation programs. This would require the following:

  • use digits, not words
  • as mentioned above, use the hyphen as minus sign
  • use *, <=, and >=, not ×, ≤, or ≥
  • do not use thousands separators (however, some programs allow them)
  • use output like 6E23 or 6e23 rather than 6{{#if:23
|×10{{#switch:{{{2}}}
 |#default={{#switch:{{#if:23|{{#ifeq:23|{{#if:{{#ifexpr:{{#expr:23}}}}|(23)|{{#expr:23}}}}|true|{{#ifeq:23|+{{#if:{{#ifexpr:{{#expr:23}}}}|(23)|{{#expr:23}}}}|true|{{#ifeq:23|({{#if:{{#ifexpr:{{#expr:23}}}}|(23)|{{#expr:23}}}})|true|false}}}}}}}}
  |#default={{#switch:{{{2}}}
   |plus=+{{#ifexpr:(231)=(23)|Template:FormattingError|{{#ifexpr:23<0|−}}{{#ifexpr:abs(231)>10*abs(23)|{{#expr:abs(23)}}|{{#expr:trunc(abs(23))}}.{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>14|Template:FormattingError|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=1|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E1mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=2|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E2mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=3|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E3mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=4|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>4|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E4mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=5|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E5mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=6|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E6mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=7|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>7|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E7mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=8|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E8mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=9|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E9mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=10|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>10|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E10mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=11|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E11mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=12|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E12mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=13|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>13|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E13mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=14|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E14mod10}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
   |#default={{#ifexpr:(231)=(23)|Template:FormattingError|{{#ifexpr:23<0|−}}{{#ifexpr:abs(231)>10*abs(23)|{{#expr:abs(23)}}|{{#expr:trunc(abs(23))}}.{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>14|Template:FormattingError|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=1|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E1mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=2|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E2mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=3|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E3mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=4|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>4|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E4mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=5|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E5mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=6|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E6mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=7|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>7|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E7mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=8|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E8mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=9|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E9mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=10|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>10|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E10mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=11|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E11mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=12|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E12mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=13|{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>13|}}{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E13mod10}}{{#ifexpr:{{#expr:(-ln(abs(231)-abs(23))/ln10round 0)-1}}>=14|{{#expr:{{#expr:abs(231)-trunc(abs(231))}}*1E14mod10}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}
  |false=23
 }}
 |text=23
}}
|e

}}

Examples:

  • "{{{{#if:|Template:Xpd/wl|#expr:three}}}}" gives "{{#expr:three}}" {{#ifeq:{{{gives}}}||||||}} [48]
  • "{{{{#if:|Template:Xpd/wl|#expr:2<3}}}}" gives "{{#expr:2<3}}" {{#ifeq:{{{gives}}}||||||}} [49]
  • "{{{{#if:|Template:Xpd/wl|#expr:2≤3}}}}" gives "{{#expr:2≤3}}" {{#ifeq:{{{gives}}}||||||}} [50]
  • "{{{{#if:|Template:Xpd/wl|#expr:2<=3}}}}" gives "{{#expr:2<=3}}" {{#ifeq:{{{gives}}}||||||}} [51]
  • "{{{{#if:|Template:Xpd/wl|#expr:2>3}}}}" gives "{{#expr:2>3}}" {{#ifeq:{{{gives}}}||||||}} [52]
  • "{{{{#if:|Template:Xpd/wl|#expr:2≥3}}}}" gives "{{#expr:2≥3}}" {{#ifeq:{{{gives}}}||||||}} [53]
  • "{{{{#if:|Template:Xpd/wl|#expr:2>=3}}}}" gives "{{#expr:2>=3}}" {{#ifeq:{{{gives}}}||||||}} [54]
  • "{{{{#if:|Template:Xpd/wl|#expr:2*3}}}}" gives "{{#expr:2*3}}" {{#ifeq:{{{gives}}}||||||}} [55]
  • "{{{{#if:|Template:Xpd/wl|#expr:2×3}}}}" gives "{{#expr:2×3}}" {{#ifeq:{{{gives}}}||||||}} [56]
  • "{{{{#if:|Template:Xpd/wl|#expr:2,300}}}}" gives "{{#expr:2,300}}" {{#ifeq:{{{gives}}}||||||}} [57]
  • "{{{{#if:|Template:Xpd/wl|#expr:6E23}}}}" gives "{{#expr:6E23}}" {{#ifeq:{{{gives}}}||||||}} [58]

If the number is the result of a computation by MediaWiki and unsuitable for use in a new computation due to application of a formatting function such as #formatnum or a formatting template, one can copy the wikitext and apply the additional computation before the formatting. However, when templates are used, and copying is done to another wiki, these templates have to be copied too, or substituted.

If you want to calculate with words Magic words and return group seperated results you can use formatnum:
{{formatnum: {{#expr: {{NUMBEROFPAGES:R}} - {{NUMBEROFFILES:R}} }} }} = {{#expr: 8,023 - 4,587 }} (instead of {{#expr: 8023 - 4587 }}).

[edit] See also

1 | references-column-count references-column-count-{{{1}}} }} }} }}" {{#if: | style="-moz-column-width:{{{colwidth}}}; column-width:{{{colwidth}}};" | {{#if: | style="-moz-column-count:{{{1}}}; column-count:{{{1}}};" }} }}> Unknown extension tag "references"
This page has it's origination in the Wikimedia Foundation's development website Meta-wiki or has been exported and is now part of the newer Mediawiki software resources website for assisting new wikis with startup organization and has been copied according to the terms of the (CC-BY-SA-3.0), the GFDL standard GNU pulic license or the source file(s) is/are in the public domain.
This page has it's origination in the Wikimedia Foundation's development website Meta-wiki or has been exported and is now part of the newer Mediawiki software resources website for assisting new wikis with startup organization and has been copied according to the terms of the (CC-BY-SA-3.0), the GFDL standard GNU pulic license or the source file(s) is/are in the public domain.
Personal tools