aboutsummaryrefslogtreecommitdiffhomepage
path: root/std/Math
diff options
context:
space:
mode:
Diffstat (limited to 'std/Math')
-rw-r--r--std/Math/Complex.bruijn14
1 files changed, 13 insertions, 1 deletions
diff --git a/std/Math/Complex.bruijn b/std/Math/Complex.bruijn
index f40f876..ec83462 100644
--- a/std/Math/Complex.bruijn
+++ b/std/Math/Complex.bruijn
@@ -10,23 +10,35 @@
# adds two complex numbers
add &[[&[[(R.add 3 1) : (R.add 2 0)]]]] ⧗ Complex → Complex → Complex
+…+… add
+
# subtracts two complex numbers
sub &[[&[[(R.sub 3 1) : (R.sub 2 0)]]]] ⧗ Complex → Complex → Complex
+…+… sub
+
# multiplies two complex numbers
mul &[[&[[p : q]]]] ⧗ Complex → Complex → Complex
p R.sub (R.mul 3 1) (R.mul 2 0)
q R.add (R.mul 3 0) (R.mul 2 1)
+…⋅… mul
+
# divides two complex numbers
div &[[&[[p : q]]]] ⧗ Complex → Complex → Complex
p R.div (R.add (R.mul 3 1) (R.mul 2 0)) (R.add (R.mul 1 1) (R.mul 0 0))
q R.div (R.sub (R.mul 2 1) (R.mul 1 0)) (R.add (R.mul 1 1) (R.mul 0 0))
+…/… div
+
# negates a complex number
negate &[[(R.negate 1) : (R.negate 0)]] ⧗ Complex → Complex
+-‣ negate
+
# inverts a complex number
-invert &[[p : q]]
+invert &[[p : q]] ⧗ Complex → Complex
p R.div 1 (R.add (R.mul 1 1) (R.mul 0 0))
q R.div 0 (R.add (R.mul 1 1) (R.mul 0 0))
+
+~‣ invert