{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE ViewPatterns #-}
module ArrayFire.Arith where
import Prelude (Bool(..), ($), (.), flip, fromEnum, fromIntegral, Real, RealFrac)
import Data.Coerce
import Data.Proxy
import Data.Complex
import ArrayFire.FFI
import ArrayFire.Internal.Arith
import ArrayFire.Internal.Types
import Foreign.C.Types
add
:: AFType a
=> Array a
-> Array a
-> Array a
add :: forall a. AFType a => Array a -> Array a -> Array a
add Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_add Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
addBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
addBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
addBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_add Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
sub
:: AFType a
=> Array a
-> Array a
-> Array a
sub :: forall a. AFType a => Array a -> Array a -> Array a
sub Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_sub Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
subBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
subBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
subBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_sub Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
mul
:: AFType a
=> Array a
-> Array a
-> Array a
mul :: forall a. AFType a => Array a -> Array a -> Array a
mul Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_mul Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
mulBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
mulBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
mulBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_mul Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
div
:: AFType a
=> Array a
-> Array a
-> Array a
div :: forall a. AFType a => Array a -> Array a -> Array a
div Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_div Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
divBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
divBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
divBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_div Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
lt
:: AFType a
=> Array a
-> Array a
-> Array CBool
lt :: forall a. AFType a => Array a -> Array a -> Array CBool
lt Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_lt Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
ltBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
ltBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
ltBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_lt Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
gt
:: AFType a
=> Array a
-> Array a
-> Array CBool
gt :: forall a. AFType a => Array a -> Array a -> Array CBool
gt Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_gt Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
gtBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
gtBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
gtBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_gt Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
le
:: AFType a
=> Array a
-> Array a
-> Array CBool
le :: forall a. AFType a => Array a -> Array a -> Array CBool
le Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_le Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
leBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
leBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
leBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_le Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
ge
:: AFType a
=> Array a
-> Array a
-> Array CBool
ge :: forall a. AFType a => Array a -> Array a -> Array CBool
ge Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_ge Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
geBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
geBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
geBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_ge Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
eq
:: AFType a
=> Array a
-> Array a
-> Array CBool
eq :: forall a. AFType a => Array a -> Array a -> Array CBool
eq Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_eq Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
eqBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
eqBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
eqBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_eq Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
neq
:: AFType a
=> Array a
-> Array a
-> Array CBool
neq :: forall a. AFType a => Array a -> Array a -> Array CBool
neq Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_neq Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
neqBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
neqBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
neqBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_neq Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
and
:: AFType a
=> Array a
-> Array a
-> Array CBool
and :: forall a. AFType a => Array a -> Array a -> Array CBool
and Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_and Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
andBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
andBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
andBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_and Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
or
:: AFType a
=> Array a
-> Array a
-> Array CBool
or :: forall a. AFType a => Array a -> Array a -> Array CBool
or Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_or Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
orBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
orBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
orBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_or Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
not
:: AFType a
=> Array a
-> Array CBool
not :: forall a. AFType a => Array a -> Array CBool
not = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array CBool
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array b
op1d Ptr AFArray -> AFArray -> IO AFErr
af_not
bitAnd
:: AFType a
=> Array a
-> Array a
-> Array CBool
bitAnd :: forall a. AFType a => Array a -> Array a -> Array CBool
bitAnd Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitand Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
bitAndBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
bitAndBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
bitAndBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitand Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
bitOr
:: AFType a
=> Array a
-> Array a
-> Array CBool
bitOr :: forall a. AFType a => Array a -> Array a -> Array CBool
bitOr Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitor Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
bitOrBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
bitOrBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
bitOrBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitor Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
bitXor
:: AFType a
=> Array a
-> Array a
-> Array CBool
bitXor :: forall a. AFType a => Array a -> Array a -> Array CBool
bitXor Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitxor Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
bitXorBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
bitXorBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
bitXorBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitxor Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
bitShiftL
:: AFType a
=> Array a
-> Array a
-> Array CBool
bitShiftL :: forall a. AFType a => Array a -> Array a -> Array CBool
bitShiftL Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitshiftl Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
bitShiftLBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
bitShiftLBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
bitShiftLBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitshiftl Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
bitShiftR
:: AFType a
=> Array a
-> Array a
-> Array CBool
bitShiftR :: forall a. AFType a => Array a -> Array a -> Array CBool
bitShiftR Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitshiftr Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
bitShiftRBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array CBool
bitShiftRBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array CBool
bitShiftRBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array CBool
`op2bool` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array CBool
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_bitshiftr Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
cast
:: forall a b . (AFType a, AFType b)
=> Array a
-> Array b
cast :: forall a b. (AFType a, AFType b) => Array a -> Array b
cast Array a
afArr =
Array a -> Array b
coerce (Array a -> Array b) -> Array a -> Array b
forall a b. (a -> b) -> a -> b
$ Array a
afArr Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
`op1` (\Ptr AFArray
x AFArray
y -> Ptr AFArray -> AFArray -> AFDtype -> IO AFErr
af_cast Ptr AFArray
x AFArray
y AFDtype
dtyp)
where
dtyp :: AFDtype
dtyp = Proxy b -> AFDtype
forall a. AFType a => Proxy a -> AFDtype
afType (forall {t}. Proxy t
forall {k} (t :: k). Proxy t
Proxy @b)
minOf
:: AFType a
=> Array a
-> Array a
-> Array a
minOf :: forall a. AFType a => Array a -> Array a -> Array a
minOf Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_minof Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
minOfBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
minOfBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
minOfBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_minof Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
maxOf
:: AFType a
=> Array a
-> Array a
-> Array a
maxOf :: forall a. AFType a => Array a -> Array a -> Array a
maxOf Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_maxof Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
maxOfBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
maxOfBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
maxOfBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_maxof Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
clamp
:: Array a
-> Array a
-> Array a
-> Array a
clamp :: forall a. Array a -> Array a -> Array a -> Array a
clamp Array a
a Array a
b Array a
c =
Array a
-> Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
op3 Array a
a Array a
b Array a
c ((Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 AFArray
arr3 ->
Ptr AFArray -> AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_clamp Ptr AFArray
arr AFArray
arr1 AFArray
arr2 AFArray
arr3 CBool
1
clampBatched
:: Array a
-> Array a
-> Array a
-> Bool
-> Array a
clampBatched :: forall a. Array a -> Array a -> Array a -> Bool -> Array a
clampBatched Array a
a Array a
b Array a
c (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) =
Array a
-> Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
op3 Array a
a Array a
b Array a
c ((Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 AFArray
arr3 ->
Ptr AFArray -> AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_clamp Ptr AFArray
arr AFArray
arr1 AFArray
arr2 AFArray
arr3 CBool
batch
rem
:: AFType a
=> Array a
-> Array a
-> Array a
rem :: forall a. AFType a => Array a -> Array a -> Array a
rem Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_rem Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
remBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
remBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
remBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_rem Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
mod
:: AFType a
=> Array a
-> Array a
-> Array a
mod :: forall a. AFType a => Array a -> Array a -> Array a
mod Array a
x Array a
y = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_mod Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
modBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
modBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
modBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_mod Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
abs
:: AFType a
=> Array a
-> Array a
abs :: forall a. AFType a => Array a -> Array a
abs = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_abs
arg
:: AFType a
=> Array a
-> Array a
arg :: forall a. AFType a => Array a -> Array a
arg = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_arg
sign
:: AFType a
=> Array a
-> Array a
sign :: forall a. AFType a => Array a -> Array a
sign = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_sign
round
:: AFType a
=> Array a
-> Array a
round :: forall a. AFType a => Array a -> Array a
round = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_round
trunc
:: AFType a
=> Array a
-> Array a
trunc :: forall a. AFType a => Array a -> Array a
trunc = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_trunc
floor
:: AFType a
=> Array a
-> Array a
floor :: forall a. AFType a => Array a -> Array a
floor = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_floor
ceil
:: AFType a
=> Array a
-> Array a
ceil :: forall a. AFType a => Array a -> Array a
ceil = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_ceil
sin
:: AFType a
=> Array a
-> Array a
sin :: forall a. AFType a => Array a -> Array a
sin = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_sin
cos
:: AFType a
=> Array a
-> Array a
cos :: forall a. AFType a => Array a -> Array a
cos = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_cos
tan
:: AFType a
=> Array a
-> Array a
tan :: forall a. AFType a => Array a -> Array a
tan = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_tan
asin
:: AFType a
=> Array a
-> Array a
asin :: forall a. AFType a => Array a -> Array a
asin = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_asin
acos
:: AFType a
=> Array a
-> Array a
acos :: forall a. AFType a => Array a -> Array a
acos = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_acos
atan
:: AFType a
=> Array a
-> Array a
atan :: forall a. AFType a => Array a -> Array a
atan = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_atan
atan2
:: AFType a
=> Array a
-> Array a
-> Array a
atan2 :: forall a. AFType a => Array a -> Array a -> Array a
atan2 Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_atan2 Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
atan2Batched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
atan2Batched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
atan2Batched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_atan2 Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
cplx2
:: AFType a
=> Array a
-> Array a
-> Array a
cplx2 :: forall a. AFType a => Array a -> Array a -> Array a
cplx2 Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_cplx2 Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
cplx2Batched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
cplx2Batched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
cplx2Batched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_cplx2 Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
cplx
:: AFType a
=> Array a
-> Array a
cplx :: forall a. AFType a => Array a -> Array a
cplx = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_cplx
real
:: (AFType a, AFType (Complex b), RealFrac a, RealFrac b)
=> Array (Complex b)
-> Array a
real :: forall a b.
(AFType a, AFType (Complex b), RealFrac a, RealFrac b) =>
Array (Complex b) -> Array a
real = (Array (Complex b)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr)
-> Array (Complex b)
-> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array (Complex b)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a b.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array b
op1d Ptr AFArray -> AFArray -> IO AFErr
af_real
imag
:: (AFType a, AFType (Complex b), RealFrac a, RealFrac b)
=> Array (Complex b)
-> Array a
imag :: forall a b.
(AFType a, AFType (Complex b), RealFrac a, RealFrac b) =>
Array (Complex b) -> Array a
imag = (Array (Complex b)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr)
-> Array (Complex b)
-> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array (Complex b)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a b.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array b
op1d Ptr AFArray -> AFArray -> IO AFErr
af_imag
conjg
:: AFType a
=> Array a
-> Array a
conjg :: forall a. AFType a => Array a -> Array a
conjg = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_conjg
sinh
:: AFType a
=> Array a
-> Array a
sinh :: forall a. AFType a => Array a -> Array a
sinh = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_sinh
cosh
:: AFType a
=> Array a
-> Array a
cosh :: forall a. AFType a => Array a -> Array a
cosh = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_cosh
tanh
:: AFType a
=> Array a
-> Array a
tanh :: forall a. AFType a => Array a -> Array a
tanh = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_tanh
asinh
:: AFType a
=> Array a
-> Array a
asinh :: forall a. AFType a => Array a -> Array a
asinh = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_asinh
acosh
:: AFType a
=> Array a
-> Array a
acosh :: forall a. AFType a => Array a -> Array a
acosh = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_acosh
atanh
:: AFType a
=> Array a
-> Array a
atanh :: forall a. AFType a => Array a -> Array a
atanh = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_atanh
root
:: AFType a
=> Array a
-> Array a
-> Array a
root :: forall a. AFType a => Array a -> Array a -> Array a
root Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_root Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
rootBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
rootBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
rootBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_root Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
pow
:: AFType a
=> Array a
-> Array a
-> Array a
pow :: forall a. AFType a => Array a -> Array a -> Array a
pow Array a
x Array a
y =
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_pow Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
1
powBatched
:: AFType a
=> Array a
-> Array a
-> Bool
-> Array a
powBatched :: forall a. AFType a => Array a -> Array a -> Bool -> Array a
powBatched Array a
x Array a
y (Int -> CBool
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CBool) -> (Bool -> Int) -> Bool -> CBool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum -> CBool
batch) = do
Array a
x Array a
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
forall b a.
Array b
-> Array a
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr)
-> Array a
`op2` Array a
y ((Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> AFArray -> IO AFErr) -> Array a
forall a b. (a -> b) -> a -> b
$ \Ptr AFArray
arr AFArray
arr1 AFArray
arr2 ->
Ptr AFArray -> AFArray -> AFArray -> CBool -> IO AFErr
af_pow Ptr AFArray
arr AFArray
arr1 AFArray
arr2 CBool
batch
pow2
:: AFType a
=> Array a
-> Array a
pow2 :: forall a. AFType a => Array a -> Array a
pow2 = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_pow2
exp
:: AFType a
=> Array a
-> Array a
exp :: forall a. AFType a => Array a -> Array a
exp = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_exp
sigmoid
:: AFType a
=> Array a
-> Array a
sigmoid :: forall a. AFType a => Array a -> Array a
sigmoid = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_sigmoid
expm1
:: AFType a
=> Array a
-> Array a
expm1 :: forall a. AFType a => Array a -> Array a
expm1 = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_expm1
erf
:: AFType a
=> Array a
-> Array a
erf :: forall a. AFType a => Array a -> Array a
erf = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_erf
erfc
:: AFType a
=> Array a
-> Array a
erfc :: forall a. AFType a => Array a -> Array a
erfc = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_erfc
log
:: AFType a
=> Array a
-> Array a
log :: forall a. AFType a => Array a -> Array a
log = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_log
log1p
:: AFType a
=> Array a
-> Array a
log1p :: forall a. AFType a => Array a -> Array a
log1p = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_log1p
log10
:: AFType a
=> Array a
-> Array a
log10 :: forall a. AFType a => Array a -> Array a
log10 = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_log10
log2
:: AFType a
=> Array a
-> Array a
log2 :: forall a. AFType a => Array a -> Array a
log2 = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_log2
sqrt
:: AFType a
=> Array a
-> Array a
sqrt :: forall a. AFType a => Array a -> Array a
sqrt = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_sqrt
cbrt
:: AFType a
=> Array a
-> Array a
cbrt :: forall a. AFType a => Array a -> Array a
cbrt = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_cbrt
factorial
:: AFType a
=> Array a
-> Array a
factorial :: forall a. AFType a => Array a -> Array a
factorial = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_factorial
tgamma
:: AFType a
=> Array a
-> Array a
tgamma :: forall a. AFType a => Array a -> Array a
tgamma = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_tgamma
lgamma
:: AFType a
=> Array a
-> Array a
lgamma :: forall a. AFType a => Array a -> Array a
lgamma = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a)
-> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a -> Array a
forall a b c. (a -> b -> c) -> b -> a -> c
flip Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
op1 Ptr AFArray -> AFArray -> IO AFErr
af_lgamma
isZero
:: AFType a
=> Array a
-> Array a
isZero :: forall a. AFType a => Array a -> Array a
isZero = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
`op1` Ptr AFArray -> AFArray -> IO AFErr
af_iszero)
isInf
:: (Real a, AFType a)
=> Array a
-> Array a
isInf :: forall a. (Real a, AFType a) => Array a -> Array a
isInf = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
`op1` Ptr AFArray -> AFArray -> IO AFErr
af_isinf)
isNaN
:: forall a. (AFType a, Real a)
=> Array a
-> Array a
isNaN :: forall a. (AFType a, Real a) => Array a -> Array a
isNaN = (Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
forall a.
Array a -> (Ptr AFArray -> AFArray -> IO AFErr) -> Array a
`op1` Ptr AFArray -> AFArray -> IO AFErr
af_isnan)