Commit ed7ab11ccd34ec75a1df1d7bb15a523f21c77652

Thomas de Grivel 2024-03-07T07:59:47

wip complex

diff --git a/.ic3_history b/.ic3_history
index 3a10a83..054a827 100644
--- a/.ic3_history
+++ b/.ic3_history
@@ -1,19 +1,3 @@
-if 1 2 3 4
-if = C3.if
-if 1 2 3 4
-if 1 2 3
-if 1 2
-if
-if_then_else true 1 2
-if_then_else false 1 2
-if true && true
-  1 + 1
-  2 + 2
-else
-  3 + 3
-  4 + 4
-end
-if_then_else true 1 2
 if_then_else
 féls
 false
@@ -97,3 +81,19 @@ sqrt(-1)
 sq = fn (x) { x * x }
 type(1 +i 2 +i 3 + 4)
 sq(1 +i 2 +i 3 + 4)
+sq = fn (x) { x * x }
+type(1 +i 2 +i 3 + 4)
+sq(1 +i 2 +i 3 + 4)
+1 +i 2 +i 3 + 4
+sq = fn (x) { x * x }
+sq(1 +i 2 +i 3 + 4)
+sq(1 +i 0)
+sq(1 +i 1)
+sq(0 +i 1)
+sq(1 +i 1)
+sq(1 +i 2)
+sq(1 +i 0)
+sq(1 +i 0.5)
+sq(1 +i 1/2)
+(Ratio) 1
+quote (Complex) 0
diff --git a/ic3/.ic3_history b/ic3/.ic3_history
index 0e17807..57d6470 100644
--- a/ic3/.ic3_history
+++ b/ic3/.ic3_history
@@ -97,3 +97,4 @@ if true 1 else 2 end
 quote if true 1 else 2 end
 quote if false 1 else 2 end
 if false 1 else 2 end
+
diff --git a/lib/c3/0.1/complex.facts b/lib/c3/0.1/complex.facts
index 9efeac6..ee36818 100644
--- a/lib/c3/0.1/complex.facts
+++ b/lib/c3/0.1/complex.facts
@@ -2,4 +2,6 @@
   version: 1}
 replace {Complex, :is_a, :module}
 replace {Complex, :defstruct, [x: ?, y: ?]}
-replace {Complex, :clean, cfn Void "gl_object_clean" (Complex)}
+replace {Complex, :symbol, Complex.cast}
+replace {Complex.cast, :cfn, cfn Complex "complex_init_cast" (Result, Tag)}
+replace {Complex, :clean, cfn Void "complex_clean" (Complex)}