diff options
Diffstat (limited to 'src/ChezScheme/s/5_1.ss')
-rw-r--r-- | src/ChezScheme/s/5_1.ss | 24 |
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) |