summaryrefslogtreecommitdiff
path: root/inverse.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-25 19:28:31 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-25 19:28:31 +0000
commit57a86f761605b6261d1045558c9cb7c83d723b60 (patch)
treec8b6d6c234156daafaafce9667932434496f6969 /inverse.c
parent1bf60c0cfc8e26d4f9e92e044d37169f55ac170b (diff)
Add under ⍢ and obverse ⍫
Teach inverse() that the inverse of f⍫g is g⍫f 
Diffstat (limited to 'inverse.c')
-rw-r--r--inverse.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/inverse.c b/inverse.c
index b37664b..c20e78d 100644
--- a/inverse.c
+++ b/inverse.c
@@ -7,6 +7,15 @@
Function
inverse(Function f)
{
+ /* TODO figure out a good way to structure this code */
+ if(f.type == FunctypeOp && f.operator.type == OperatortypePrim && f.operator.code == 9 && f.operator.dyadic){
+ /* obverse */
+ Function newf = f;
+ newf.operator.left = f.operator.right;
+ newf.operator.right = f.operator.left;
+ return newf;
+ }
+
Rune *msg = runesmprint("No inverse defined for %S", ppfunction(f));
throwerror(msg, EDomain);
return f;