Ethiopian multiplication: Difference between revisions
Content added Content deleted
(Added Quackery) |
(→{{header|Quackery}}: renamed double, halve) |
||
Line 4,332: | Line 4,332: | ||
Adapted from Forth version, extended to handle negative numbers. |
Adapted from Forth version, extended to handle negative numbers. |
||
<lang Quackery>[ 1 & not ] is even ( n --> b ) |
<lang Quackery>[ 1 & not ] is even ( n --> b ) |
||
[ 1 << ] |
[ 1 << ] is double( n --> n ) |
||
[ 1 >> ] |
[ 1 >> ] is halve ( n --> n ) |
||
[ dup 0 < unrot abs |
[ dup 0 < unrot abs |
||
[ dup 0 = iff nip done |
[ dup 0 = iff nip done |
||
over |
over double over halve |
||
recurse |
recurse |
||
swap even |
swap even |
||
iff nip else + ] |
iff nip else + ] |
||
swap if negate ] is e* ( n n --> n )</lang> |
swap if negate ] is e* ( n n --> n )</lang> |
||
=={{header|R}}== |
=={{header|R}}== |