Power: Difference between revisions
From NARS2000
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 11: | Line 11: | ||
<td></td> | <td></td> | ||
<td></td> | <td></td> | ||
<td>for non-negative | <td>for non-negative integer scalar <apll><i>b</i></apll>, successively applies the function <apll><i>f</i></apll> (or, if there is a Left argument, the function <apll>L∘<i>f</i></apll>) to <apll>R</apll>, <apll><i>b</i></apll> number of times;<br/> | ||
for a negative integer scalar <apll><i>b</i></apll>, successively applies the inverse of the function <apll><i>f</i></apll> (or, if there is a Left argument, the inverse to the function <apll>L∘<i>f</i></apll>), <apll>|<i>b</i></apll> number of times</td> | |||
</tr> | </tr> | ||
Line 23: | Line 24: | ||
<tr> | <tr> | ||
<td colspan="4">In the second case, <apll><i>b</i></apll> must be | <td colspan="4">In the second case, <apll><i>b</i></apll> must be an integer scalar, otherwise a <apll>DOMAIN ERROR</apll> is signaled.</td> | ||
</tr> | </tr> | ||
Line 43: | Line 44: | ||
phi | phi | ||
1.618033988749894 | 1.618033988749894 | ||
</pre></apll> | |||
=Inverses= | |||
When the right operand to the Power Operator is a negative integer scalar, the inverse of the function left operand is applied to the right argument. At the moment, only a few inverse functions are available as follows: | |||
<table border="1" cellpadding="5" cellspacing="0" summary=""> | |||
<tr> | |||
<td>'''Function'''</td> | |||
<td>'''Meaning of Inverse'''</td> | |||
</tr> | |||
<tr> | |||
<td><apll> L⊥⍣¯1 R</apll></td> | |||
<td><apll><apll>(N⍴L)⊤R</apll> for <apll>N</apll> sufficiently large to display all digits of <apll>R</apll></td> | |||
</tr> | |||
<tr> | |||
<td><apll> ⊥⍣¯1 R</apll></td> | |||
<td><apll>2⊥⍣¯1 R</apll></td> | |||
</tr> | |||
<tr> | |||
<td><apll> L⊤⍣¯1 R</apll></td> | |||
<td><apll>L⊥R</apll></td> | |||
</tr> | |||
<tr> | |||
<td><apll> ×/⍣¯1 R</apll></td> | |||
<td><apll>πR</apll>, that is, factor <apll>R</apll></td> | |||
</tr> | |||
<tr> | |||
<td><apll> π⍣¯1 R</apll></td> | |||
<td><apll>×/R</apll>, that is, multiply together the factors</td> | |||
</tr> | |||
<tr> | |||
<td><apll> +\⍣¯1 R</apll></td> | |||
<td><apll>¯2-\R</apll></td> | |||
</tr> | |||
<tr> | |||
<td><apll> ¯2-\⍣¯1 R</apll></td> | |||
<td><apll> +\R</apll></td> | |||
</tr> | |||
<tr> | |||
<td><apll> +∘÷/⍣¯1 R</apll></td> | |||
<td>Display the [https://en.wikipedia.org/wiki/Continued_fraction Continued Fraction] expansion of <apll>R</apll> to at most <apll>⎕PP</apll> terms</td> | |||
</tr> | |||
<tr> | |||
<td><apll>L+∘÷/⍣¯1 R</apll></td> | |||
<td>Display the [https://en.wikipedia.org/wiki/Continued_fraction Continued Fraction] expansion of <apll>R</apll> to at most <apll>L</apll> terms</td> | |||
</tr> | |||
</table> | |||
<p>For example,</p> | |||
<apll><pre> | |||
10⊥⍣¯1 1234567890 | |||
1 2 3 4 5 6 7 8 9 0 | |||
⊥⍣¯1 19 | |||
1 0 0 1 1 | |||
10 10 10⊤⍣¯1 2 3 4 | |||
234 | |||
×/⍣¯1 130 | |||
2 5 13 | |||
π⍣¯1 2 5 13 | |||
130 | |||
+\⍣¯1 ⍳4 | |||
1 1 1 1 | |||
¯2-\⍣¯1 4⍴1 | |||
1 2 3 4 | |||
+∘÷/⍣¯1 449<_r/>303 | |||
1 2 13 3 1 2 | |||
+∘÷/+∘÷/⍣¯1 449<_r/>303 | |||
449<_r/>303 | |||
15 +∘÷/⍣¯1 ○1<_x/> | |||
3 7 15 1 292 1 1 1 2 1 3 1 14 2 1 | |||
+∘÷\3 7 15 1<_x/> ⍝ Convergents to Pi | |||
3 22<_r/>7 333<_r/>106 355<_r/>113 | |||
25 +∘÷/⍣¯1 *1<_x/> | |||
2 1 2 1 1 4 1 1 6 1 1 8 1 1 10 1 1 12 1 1 14 1 1 16 1 | |||
</pre></apll> | </pre></apll> |
Revision as of 20:57, 17 December 2019
Z←{L} f⍣g R | successively applies the function f (or, if there is a Left argument, the function L∘f) to R until the expression Zn g Zn-1 returns a singleton 1. Zn and Zn-1 represent two consecutive applications of f (or L∘f) to R where Z0←R and Zn←f Zn-1 (or Zn←L∘f Zn-1). | ||
Z←{L} f⍣b R | for non-negative integer scalar b, successively applies the function f (or, if there is a Left argument, the function L∘f) to R, b number of times; for a negative integer scalar b, successively applies the inverse of the function f (or, if there is a Left argument, the inverse to the function L∘f), |b number of times |
||
L and R are arbitrary arrays. | |||
In the first case, Zn g Zn-1 must return a Boolean-valued singleton; otherwise a DOMAIN ERROR is signaled. | |||
In the second case, b must be an integer scalar, otherwise a DOMAIN ERROR is signaled. |
For example,
sqrt←{{0.5×⍵+⍺÷⍵}⍣=⍨⍵} ⍝ Calculate square root using Newton's method sqrt 2 1.414213562373095 fib←{⍵,+/¯2↑⍵} ⍝ Calculate a Fibonacci sequence fib⍣15 ⊢ 1 1 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 pow←{⍵=0:,1 ⋄ ⍺+⍡×⍣(⍵-1) ⍺} ⍝ Raise a polynomial to a non-negative integer power 1 ¯1 pow 5 1 ¯5 10 ¯10 5 ¯1 phi←1+∘÷⍣=1 ⍝ Calculate the Golden Ratio phi 1.618033988749894
Inverses
When the right operand to the Power Operator is a negative integer scalar, the inverse of the function left operand is applied to the right argument. At the moment, only a few inverse functions are available as follows:
Function | Meaning of Inverse |
L⊥⍣¯1 R | |
⊥⍣¯1 R | 2⊥⍣¯1 R |
L⊤⍣¯1 R | L⊥R |
×/⍣¯1 R | πR, that is, factor R |
π⍣¯1 R | ×/R, that is, multiply together the factors |
+\⍣¯1 R | ¯2-\R |
¯2-\⍣¯1 R | +\R |
+∘÷/⍣¯1 R | Display the Continued Fraction expansion of R to at most ⎕PP terms |
L+∘÷/⍣¯1 R | Display the Continued Fraction expansion of R to at most L terms |
For example,
10⊥⍣¯1 1234567890 1 2 3 4 5 6 7 8 9 0 ⊥⍣¯1 19 1 0 0 1 1 10 10 10⊤⍣¯1 2 3 4 234 ×/⍣¯1 130 2 5 13 π⍣¯1 2 5 13 130 +\⍣¯1 ⍳4 1 1 1 1 ¯2-\⍣¯1 4⍴1 1 2 3 4 +∘÷/⍣¯1 449r303 1 2 13 3 1 2 +∘÷/+∘÷/⍣¯1 449r303 449r303 15 +∘÷/⍣¯1 ○1x 3 7 15 1 292 1 1 1 2 1 3 1 14 2 1 +∘÷\3 7 15 1x ⍝ Convergents to Pi 3 22r7 333r106 355r113 25 +∘÷/⍣¯1 *1x 2 1 2 1 1 4 1 1 6 1 1 8 1 1 10 1 1 12 1 1 14 1 1 16 1