(loader '((title |dderiv.lo|)))
(loader'((fentry check-dderiv subr0)
(entry check-dderiv subr0)
(mov '7 a2)
(mov '(test-dderiv 1) a1)
(jmp check-value)
))
(loader'((fentry meter-dderiv subr0)
(entry meter-dderiv subr0)
(mov 'dderiv a2)
(mov '(dderiv-run) a1)
(jmp perform-meter)
))
(loader'((fentry test-dderiv subr1)
(entry test-dderiv subr1)
(cabne a1 '1 104)
(bra dderiv-run)
103
(push a1)
(call dderiv-run)
(pop a1)
104
(sobgez a1 103)
(mov 't a1)
(return)
))
(loader'((entry dderiv-aux subr1)
(push a1)
(push (@ 101))
(push '/)
(call dderiv)
(push a1)
(push (& 3))
(mov '3 a4)
(jmp list)
101
(eval ())
(adjstk '1)
(return)
))
(loader'((fentry +dderiv subr1)
(entry +dderiv subr1)
(push a1)
(push nil)
101
(bfcons (& 1) 102)
(mov (& 1) a1)
(mov (cdr a1) (& 1))
(mov (car a1) a1)
(call dderiv)
(mov (& 0) a2)
(jcall cons)
(mov a1 (& 0))
(bra 101)
102
(mov (& 0) a1)
(jcall nreverse)
(adjstk '2)
(mov a1 a2)
(mov '+ a1)
(jmp cons)
))
(putprop '+ '+dderiv 'dderiv)
(loader'((fentry -dderiv subr1)
(entry -dderiv subr1)
(push a1)
(push nil)
101
(bfcons (& 1) 102)
(mov (& 1) a1)
(mov (cdr a1) (& 1))
(mov (car a1) a1)
(call dderiv)
(mov (& 0) a2)
(jcall cons)
(mov a1 (& 0))
(bra 101)
102
(mov (& 0) a1)
(jcall nreverse)
(adjstk '2)
(mov a1 a2)
(mov '- a1)
(jmp cons)
))
(putprop '- '-dderiv 'dderiv)
(loader'((fentry *dderiv subr1)
(entry *dderiv subr1)
(push a1)
(push (@ 101))
(push '*)
(mov a1 a2)
(mov '* a1)
(jcall cons)
(push a1)
(push (& 3))
(push nil)
102
(bfcons (& 1) 103)
(mov (& 1) a1)
(mov (cdr a1) (& 1))
(mov (car a1) a1)
(call dderiv-aux)
(mov (& 0) a2)
(jcall cons)
(mov a1 (& 0))
(bra 102)
103
(mov (& 0) a1)
(jcall nreverse)
(adjstk '2)
(mov a1 a2)
(mov '+ a1)
(jcall cons)
(push a1)
(mov '3 a4)
(jmp list)
101
(eval ())
(adjstk '1)
(return)
))
(putprop '* '*dderiv 'dderiv)
(loader'((fentry /dderiv subr1)
(entry /dderiv subr1)
(push a1)
(push (@ 101))
(push '-)
(push (@ 102))
(push '/)
(mov (car a1) a1)
(call dderiv)
(push a1)
(mov (& 5) a4)
(mov (cdr a4) a4)
(push (car a4))
(mov '3 a4)
(jmp list)
102
(eval ())
(push a1)
(push (@ 103))
(push '/)
(mov (& 5) a4)
(push (car a4))
(push (@ 104))
(push '*)
(mov (cdr a4) a3)
(push (car a3))
(mov (cdr a4) a3)
(push (car a3))
(mov (cdr a4) a1)
(mov (car a1) a1)
(call dderiv)
(push a1)
(mov '4 a4)
(jmp list)
104
(eval ())
(push a1)
(mov '3 a4)
(jmp list)
103
(eval ())
(push a1)
(mov '3 a4)
(jmp list)
101
(eval ())
(adjstk '1)
(return)
))
(putprop '/ '/dderiv 'dderiv)
(loader'((entry dderiv subr1)
(push a1)
(btcons a1 101)
(cabne a1 'x 103)
(mov '1 a1)
(adjstk '1)
(return)
103
(mov '0 a1)
(adjstk '1)
(return)
101
(mov 'dderiv a2)
(mov (car a1) a1)
(jcall get)
(btnil a1 105)
(push (@ 107))
(push a1)
(mov (& 2) a4)
(push (cdr a4))
(mov '2 a4)
(jmp funcall)
107
(eval ())
(adjstk '1)
(return)
105
(mov 'error a1)
(adjstk '1)
(return)
))
(loader'((entry dderiv-run subr0)
(mov '5000 a4)
(bra 102)
101
(push a4)
(mov '(+ (* 3 x x) (* a x x) (* b x) 5) a1)
(call dderiv)
(pop a4)
102
(sobgez a4 101)
(mov 't a1)
(return)
))
(loader '((end)))