@@ -17,16 +17,16 @@ module ArrayFire.Orphans where
17
17
18
18
import Prelude
19
19
20
- import qualified ArrayFire.Arith as A
21
- import qualified ArrayFire.Array as A
22
- import qualified ArrayFire.Data as A
20
+ import qualified ArrayFire.Arith as A
21
+ import qualified ArrayFire.Array as A
22
+ import qualified ArrayFire.Algorithm as A
23
+ import qualified ArrayFire.Data as A
23
24
import ArrayFire.Types
24
25
import ArrayFire.Util
25
- import Foreign.C
26
26
27
27
instance (AFType a , Eq a ) => Eq (Array a ) where
28
- x == y = toEnum . fromIntegral $ A. getScalar @ CBool @ a $! A. eq x y
29
- x /= y = toEnum . fromIntegral $ A. getScalar @ CBool @ a $! A. neq x y
28
+ x == y = A. allTrueAll ( A. eqBatched x y False ) == ( 1.0 , 0.0 )
29
+ x /= y = A. allTrueAll ( A. neqBatched x y False ) == ( 0.0 , 0.0 )
30
30
31
31
instance (Num a , AFType a ) => Num (Array a ) where
32
32
x + y = A. add x y
@@ -40,10 +40,10 @@ instance (Num a, AFType a) => Num (Array a) where
40
40
fromInteger = A. scalar . fromIntegral
41
41
42
42
instance (Ord a , AFType a ) => Ord (Array a ) where
43
- x < y = toEnum . fromIntegral $ A. getScalar @ CBool @ a (A. lt x y)
44
- x > y = toEnum . fromIntegral $ A. getScalar @ CBool @ a (A. gt x y)
45
- x <= y = toEnum . fromIntegral $ A. getScalar @ CBool @ a (A. le x y)
46
- x >= y = toEnum . fromIntegral $ A. getScalar @ CBool @ a (A. ge x y)
43
+ x < y = A. allTrueAll (A. ltBatched x y False ) == ( 1.0 , 0.0 )
44
+ x > y = A. allTrueAll (A. gtBatched x y False ) == ( 1.0 , 0.0 )
45
+ x <= y = A. allTrueAll (A. leBatched x y False ) == ( 1.0 , 0.0 )
46
+ x >= y = A. allTrueAll (A. geBatched x y False ) == ( 1.0 , 0.0 )
47
47
48
48
instance Show (Array a ) where
49
49
show = arrayString
0 commit comments