Horner's rule for polynomial evaluation: Difference between revisions
Content added Content deleted
(Added Gambas) |
(add RPL) |
||
Line 2,306: | Line 2,306: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|RPL}}== |
|||
===Translation of the algorithm=== |
|||
Following the pseudocode given [https://web.physics.utah.edu/~detar/lessons/c++/array/node2.html here] to the letter: |
|||
≪ OVER DUP SIZE GET → a x0 p |
|||
≪ a SIZE 1 - 1 '''FOR''' j |
|||
'a(j)+x0*p' EVAL 'p' STO -1 '''STEP''' |
|||
p |
|||
≫ ≫ ‘'''HORNR'''’ STO |
|||
===Idiomatic one-liner=== |
|||
Reducing the loop to its simplest form: one memory call, one multiplication and one addition. |
|||
≪ → x0 ≪ LIST→ 2 SWAP '''START''' x0 * + '''NEXT''' ≫ ≫ ‘'''HORNR'''’ STO |
|||
{{in}} |
|||
<pre> |
|||
{ -19 7 -4 6 } 3 HORNR |
|||
</pre> |
|||
{{out}} |
|||
<pre> |
|||
1: 128 |
|||
</pre> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |