DECLARE SUB zadd (x!, y!, u!, v!, xx!, yy!) DECLARE SUB zdiv (x!, y!, u!, v!, xx!, yy!) DECLARE SUB zsub (x!, y!, u!, v!, xx!, yy!) DECLARE SUB zmul (x!, y!, u!, v!, xx!, yy!) DECLARE SUB scalar.div (x!, y!, s!) DECLARE FUNCTION zabsq! (x!, y!) ' complex arithmetic: zadd, zsub, zmul and zdiv ' test x = 1: y = 2: u = 3: v = 4 CLS CALL zadd(x, y, u, v, xx, yy): PRINT xx, yy CALL zsub(x, y, u, v, xx, yy): PRINT xx, yy CALL zmul(x, y, u, -v, xx, yy): PRINT xx, yy PRINT zabsq(u, v) CALL zdiv(x, y, u, v, xx, yy): PRINT xx, yy ' test results: ' 4 6 ' -2 -2 ' 11 2 ' 25 ' .44 .08 SUB scalar.div (x, y, s) IF (s = 0!) THEN PRINT "Can't divide a complex # by 0!" EXIT SUB END IF x = x / s y = y / s END SUB FUNCTION zabsq (x, y) zabsq = x * x + y * y END FUNCTION SUB zadd (x, y, u, v, xx, yy) xx = x + u yy = y + v END SUB SUB zdiv (x, y, u, v, xx, yy) CALL zmul(x, y, u, -v, xx, yy) CALL scalar.div(xx, yy, zabsq(u, v)) END SUB SUB zmul (x, y, u, v, xx, yy) xx = x * u - y * v yy = x * v + y * u END SUB SUB zsub (x, y, u, v, xx, yy) xx = x - u yy = y - v END SUB