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 << ] is 2* ( n --> n )
[ 1 << ] is double( n --> n )


[ 1 >> ] is 2/ ( n --> n )
[ 1 >> ] is halve ( n --> n )
[ dup 0 < unrot abs
[ dup 0 < unrot abs
[ dup 0 = iff nip done
[ dup 0 = iff nip done
over 2* over 2/
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}}==