@@ -17,16 +17,16 @@ module ArrayFire.Orphans where
1717
1818import Prelude
1919
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
2324import ArrayFire.Types
2425import ArrayFire.Util
25- import Foreign.C
2626
2727instance (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 )
3030
3131instance (Num a , AFType a ) => Num (Array a ) where
3232 x + y = A. add x y
@@ -40,10 +40,10 @@ instance (Num a, AFType a) => Num (Array a) where
4040 fromInteger = A. scalar . fromIntegral
4141
4242instance (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 )
4747
4848instance Show (Array a ) where
4949 show = arrayString
0 commit comments