([color=BLUE]if[/color] ([color=BLUE]equal[/color] r1 ([color=BLUE]setq[/color] x ([color=BLUE]/[/color] ([color=BLUE]-[/color] ([color=BLUE]+[/color] ([color=BLUE]*[/color] r1 r1) ([color=BLUE]*[/color] d d)) ([color=BLUE]*[/color] r2 r2)) ([color=BLUE]+[/color] d d))) 1e-
([color=BLUE]setq[/color] l ([color=BLUE]list[/color] ([color=BLUE]list[/color] x 0.0 0.0)))
([color=BLUE]setq[/color] y ([color=BLUE]sqrt[/color] ([color=BLUE]-[/color] ([color=BLUE]*[/color] r1 r1) ([color=BLUE]*[/color] x x)))
l ([color=BLUE]list[/color] ([color=BLUE]list[/color] x y 0.0) ([color=BLUE]list[/color] x ([color=BLUE]-[/color] y) 0.0))
)
)
([color=BLUE]setq[/color] a ([color=BLUE]angle[/color] c1 c2)
m ([color=BLUE]list[/color] ([color=BLUE]list[/color] ([color=BLUE]cos[/color] a) ([color=BLUE]-[/color] ([color=BLUE]sin[/color] a)) 0) ([color=BLUE]list[/color] ([color=BLUE]sin[/color] a) ([color=BLUE]cos[/color] a) 0) '(0 0 1))
)
([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( v ) ([color=BLUE]mapcar[/color] '[color=BLUE]+[/color] c1 (mxv m v))) l)
)
)
)
[color=GREEN];; Matrix x Vector - Vladimir Nesterovsky[/color]
[color=GREEN];; Args: m - nxn matrix, v - vector in R^n[/color]
([color=BLUE]defun[/color] mxv ( m v )
([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( r ) ([color=BLUE]apply[/color] '[color=BLUE]+[/color] ([color=BLUE]mapcar[/color] '[color=BLUE]*[/color] r v))) m)