arrayfire / arrayfire-haskell

Haskell bindings to ArrayFire
http://hackage.haskell.org/package/arrayfire
BSD 3-Clause "New" or "Revised" License
59 stars 5 forks source link

Investigate Bits instance on Array CBool #34

Open dmjio opened 4 years ago

dmjio commented 4 years ago

Theoretically, there's no reason this can't be supported.

instance Bits (ArrayFire CBool) where
  (.&.) = A.and
  (.|.) = A.or
  xor = A.bitXor
  shiftL x n = A.shiftL x (scalar n)
  shiftR x n = A.shiftR x (scalar n)

Still need to look into implementing the following:

(rotate | rotateL, rotateR), bitSize, bitSizeMaybe, isSigned, testBit, bit, popCount
dmjio commented 4 years ago

Regarding popCount, af_count (i.e. count) can be used on CBool to act like a pop count. But the dimension must be specified as well... so we might need to use countAll.