Skip to content

Commit e607a7e

Browse files
committed
Avoid negation, use A.select ternary.
1 parent 9d2c9a7 commit e607a7e

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

src/ArrayFire/Orphans.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import Control.DeepSeq (NFData(..))
2323
import qualified ArrayFire.Arith as A
2424
import qualified ArrayFire.Array as A
2525
import qualified ArrayFire.Algorithm as A
26+
import qualified ArrayFire.Data as A
2627
import ArrayFire.Types
2728
import ArrayFire.Util
2829

@@ -39,7 +40,7 @@ instance (Num a, AFType a) => Num (Array a) where
3940
x + y = A.add x y
4041
x * y = A.mul x y
4142
abs = A.abs
42-
signum x = A.cast (A.gt x 0) - A.cast (A.lt x 0)
43+
signum x = A.select (A.gt x 0) 1 (A.select (A.lt x 0) (-1) 0)
4344
negate arr = A.scalar @a (fromInteger (-1)) `A.mul` arr
4445
x - y = A.sub x y
4546
fromInteger = A.scalar . fromIntegral

0 commit comments

Comments
 (0)