view interps/linguine/mult.lng @ 10000:20ae0b28393e

<izabera> ` echo \'sed "s/./& /g;s/.*/20k&p/" <<< "$*" | dc\' > bin/unaryrpn; chmod +x bin/unaryrpm; unaryrpm 111+/
author HackBot
date Tue, 20 Dec 2016 23:17:40 +0000
parents 859f9b4339e6
children
line wrap: on
line source

'General multiplication and integer division routines
'Programmed by Jeffry Johnston, 2005

'test -12 / 3 = -4
1[-1=2,-2=-12,-3=3]200
2[-2#]0

'Multiply: -2 *= *-3
'-1=return jump, -4=temp, -5=temp
100[-4=*-3,-5=*-2,-2=0,-4<0:101]102
101[-4~0:*-1,-2-*-5,-4+1]101 '-3 is negative
102[-4~0:*-1,-2+*-5,-4-1]102 '-3 is positive 

'Divide: -2 /= *-3
'-1=return jump, -4=temp, -5=temp
200[-4=*-2,-2=0,-5=0,-4<0:201,-3<0:204]202
201[-5-*-4,-4=*-5,-3<0:205]203
202[-4<*-3:*-1,-4-*-3,-2+1]202
203[-4<*-3:*-1,-4-*-3,-2-1]203
204[-5-*-3,-3=*-5]203
205[-5=0,-5-*-3,-3=*-5]202