label complex_+		# complex addition. Enter complex numbers by
sto complex_x1_i	# entering the real part, then pressing ENTER,
clx			# then entering the imaginary part. The stack
sto complex_x1_r	# will then show the real part above the 
clx			# imaginary part.
sto complex_x2_i
clx
sto complex_x2_r
rcl complex_x1_r
+
rcl complex_x1_i
rcl complex_x2_i
+
rtn
label complex_-		# complex subtraction
sto complex_x1_i
clx
sto complex_x1_r
clx
sto complex_x2_i
clx
sto complex_x2_r
rcl complex_x1_r
-
rcl complex_x1_i
rcl complex_x2_i
-
rtn
label complex_*		# complex multiplication
sto complex_x1_i
clx
sto complex_x1_r
clx
sto complex_x2_i
clx
sto complex_x2_r
rcl complex_x1_r
*
rcl complex_x1_i
rcl complex_x2_i
*
-
rcl complex_x1_i
rcl complex_x2_r
*
rcl complex_x1_r
rcl complex_x2_i
*
+
rtn
label complex_/		# complex division. Divide by the square of
sto complex_x1_i	# the amplitude, and multiply by the conjugate
clx
sto complex_x1_r
square
rcl complex_x1_i
square
+
sto complex_x1_m2
clx
rcl complex_x1_r
rcl complex_x1_i
chs
gosub complex_*
rcl complex_x1_m2
/
x<>y
rcl complex_x1_m2
/
x<>y
rtn
label complex_square	# complex square
x<>y
r>p
square
x<>y
2.0
*
x<>y
p>r
x<>y
rtn
label complex_sqrt	# complex square root
x<>y
r>p
sqrt
x<>y
2.0
/
x<>y
p>r
x<>y
rtn
