summaryrefslogtreecommitdiff
path: root/src/ChezScheme/s/5_1.ss
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChezScheme/s/5_1.ss')
-rw-r--r--src/ChezScheme/s/5_1.ss24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/ChezScheme/s/5_1.ss b/src/ChezScheme/s/5_1.ss
index 4315602fc2..a630e595be 100644
--- a/src/ChezScheme/s/5_1.ss
+++ b/src/ChezScheme/s/5_1.ss
@@ -166,6 +166,14 @@
k
(and (fx= (fxvector-ref x i) (fxvector-ref y i))
(f (fx1- i))))))]
+ [(flvector? x)
+ (and (flvector? y)
+ (fx= (flvector-length x) (flvector-length y))
+ (let f ([i (fx- (flvector-length x) 1)])
+ (if (fx< i 0)
+ k
+ (and ($fleqv? (flvector-ref x i) (flvector-ref y i))
+ (f (fx1- i))))))]
[(box? x)
(and (box? y)
(if (union-find ht x y)
@@ -234,6 +242,14 @@
k
(and (fx= (fxvector-ref x i) (fxvector-ref y i))
(f (fx1- i))))))]
+ [(flvector? x)
+ (and (flvector? y)
+ (fx= (flvector-length x) (flvector-length y))
+ (let f ([i (fx- (flvector-length x) 1)])
+ (if (fx< i 0)
+ k
+ (and ($fleqv? (flvector-ref x i) (flvector-ref y i))
+ (f (fx1- i))))))]
[(box? x) (and (box? y) (e? (unbox x) (unbox y) k))]
[($record? x)
(and ($record? y)
@@ -303,6 +319,14 @@
k
(and (fx= (fxvector-ref x i) (fxvector-ref y i))
(f (fx1- i))))))]
+ [(flvector? x)
+ (and (flvector? y)
+ (fx= (flvector-length x) (flvector-length y))
+ (let f ([i (fx- (flvector-length x) 1)])
+ (if (fx< i 0)
+ k
+ (and ($fleqv? (flvector-ref x i) (flvector-ref y i))
+ (f (fx1- i))))))]
[(box? x)
(and (box? y)
(if (fx<= k 0)