ox-arrays-0.1.0.0: An efficient CPU-based multidimensional array (tensor) library
Safe HaskellNone
LanguageHaskell2010

Data.Array.Strided.Arith.Internal

Synopsis

Documentation

fromSNat' :: forall (n :: Nat). SNat n -> Int Source #

data Dict c where Source #

Constructors

Dict :: forall c. c => Dict c 

debugShow :: forall (n :: Nat) a. (Storable a, KnownNat n) => Array n a -> String Source #

liftOpEltwise1 :: forall a (n :: Nat) b. Storable a => SNat n -> (Ptr a -> Ptr b) -> (Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> Array n a -> Array n a Source #

liftOpEltwise2 Source #

Arguments

:: forall a (n :: Nat) b. Storable a 
=> SNat n 
-> (a -> b) 
-> (Ptr a -> Ptr b) 
-> (a -> a -> a) 
-> (Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

sv

-> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> b -> IO ())

vs

-> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ())

vv

-> Array n a 
-> Array n a 
-> Array n a 

stridesDense :: [Int] -> Int -> [Int] -> Maybe (Int, Int) Source #

Given shape vector, offset and stride vector, check whether this virtual vector uses a dense subarray of its backing array. If so, the first index and the number of elements in this subarray is returned. This excludes any offset.

data Unreplicated a Source #

Constructors

KnownNat n' => Unreplicated

Let the original array, with replicated dimensions, be called A.

Fields

  • (Array n' a)

    An array with all strides /= 0. Call this array U. It has the same shape as A, except with all the replicated (stride == 0) dimensions removed. The shape of U is the "unreplicated shape".

  • Int

    Product of sizes of the unreplicated dimensions

  • ([Int] -> [Int])

    Given the stride vector of an array with the unreplicated shape, this function reinserts zeros so that it may be combined with the original shape of A.

unreplicateStrides :: forall (n :: Nat) a. Array n a -> Unreplicated a Source #

Removes all replicated dimensions (i.e. those with stride == 0) from the array.

simplifyArray :: forall (n :: Nat) a r. Array n a -> (forall (n' :: Nat). KnownNat n' => Array n' a -> Int -> ([Int] -> [Int]) -> (Array n' a -> Array n a) -> (Array (n' - 1) a -> Array (n - 1) a) -> r) -> r Source #

simplifyArray2 :: forall (n :: Nat) a r. Array n a -> Array n a -> (forall (n' :: Nat). KnownNat n' => Array n' a -> Array n' a -> Int -> ([Int] -> [Int]) -> (Array n' a -> Array n a) -> (Array (n' - 1) a -> Array (n - 1) a) -> r) -> r Source #

The two input arrays must have the same shape.

wrapUnary :: forall a b (n :: Nat). Storable a => SNat n -> (Ptr a -> Ptr b) -> (Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> Array n a -> Array n a Source #

wrapBinarySV :: forall a b (n :: Nat). Storable a => SNat n -> (a -> b) -> (Ptr a -> Ptr b) -> (Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ()) -> a -> Array n a -> Array n a Source #

wrapBinaryVS :: forall a (n :: Nat) b. Storable a => SNat n -> (a -> b) -> (Ptr a -> Ptr b) -> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> b -> IO ()) -> Array n a -> a -> Array n a Source #

wrapBinaryVV :: forall a b (n :: Nat). Storable a => SNat n -> (Ptr a -> Ptr b) -> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ()) -> Array n a -> Array n a -> Array n a Source #

The two shapes must be equal and non-empty. This is checked.

vectorRedInnerOp Source #

Arguments

:: forall a b (n :: Nat). (Num a, Storable a) 
=> SNat n 
-> (a -> b) 
-> (Ptr a -> Ptr b) 
-> (Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

scale by constant

-> (Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

reduction kernel

-> Array (n + 1) a 
-> Array n a 

Reduce along the inner dimension

vectorRedFullOp Source #

Arguments

:: forall a b (n :: Nat). (Num a, Storable a) 
=> SNat n 
-> (a -> Int -> a) 
-> (b -> a) 
-> (Ptr a -> Ptr b) 
-> (Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO b)

reduction kernel

-> Array n a 
-> a 

Reduce full array

vectorExtremumOp Source #

Arguments

:: forall a b (n :: Nat). Storable a 
=> (Ptr a -> Ptr b) 
-> (Ptr Int64 -> Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

extremum kernel

-> Array n a 
-> [Int] 

Find extremum (minindex ("argmin") or maxindex) in full array

vectorDotprodInnerOp Source #

Arguments

:: forall a b (n :: Nat). (Num a, Storable a) 
=> SNat n 
-> (a -> b) 
-> (Ptr a -> Ptr b) 
-> (SNat n -> Array n a -> Array n a -> Array n a)

elementwise multiplication

-> (Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

scale by constant

-> (Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

reduction kernel

-> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ())

dotprod kernel

-> Array (n + 1) a 
-> Array (n + 1) a 
-> Array n a 

mulWithInt :: Num a => a -> Int -> a Source #

addVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

subVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

mulVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

addVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

subVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

mulVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

addVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

subVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

mulVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

addVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

subVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

mulVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

quotVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

remVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

quotVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

remVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

divVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

powVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

logbaseVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

atan2VectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

divVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

powVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

logbaseVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

atan2VectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

negVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 Source #

absVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 Source #

signumVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 Source #

negVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 Source #

absVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 Source #

signumVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 Source #

negVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

absVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

signumVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

negVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

absVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

signumVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

recipVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

expVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

logVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

sqrtVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

sinVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

cosVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

tanVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

asinVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

acosVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

atanVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

sinhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

coshVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

tanhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

asinhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

acoshVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

atanhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

log1pVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

expm1VectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

log1pexpVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

log1mexpVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

recipVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

expVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

logVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

sqrtVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

sinVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

cosVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

tanVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

asinVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

acosVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

atanVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

sinhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

coshVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

tanhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

asinhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

acoshVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

atanhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

log1pVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

expm1VectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

log1pexpVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

log1mexpVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

sum1VectorInt32 :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array n Int32 Source #

sumFullVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Int32 Source #

product1VectorInt32 :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array n Int32 Source #

productFullVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Int32 Source #

sum1VectorInt64 :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array n Int64 Source #

sumFullVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Int64 Source #

product1VectorInt64 :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array n Int64 Source #

productFullVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Int64 Source #

sum1VectorFloat :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array n Float Source #

sumFullVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Float Source #

product1VectorFloat :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array n Float Source #

productFullVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Float Source #

sum1VectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double Source #

sumFullVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Double Source #

product1VectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double Source #

minindexVectorInt32 :: forall (n :: Nat). Array n Int32 -> [Int] Source #

maxindexVectorInt32 :: forall (n :: Nat). Array n Int32 -> [Int] Source #

minindexVectorInt64 :: forall (n :: Nat). Array n Int64 -> [Int] Source #

maxindexVectorInt64 :: forall (n :: Nat). Array n Int64 -> [Int] Source #

minindexVectorFloat :: forall (n :: Nat). Array n Float -> [Int] Source #

maxindexVectorFloat :: forall (n :: Nat). Array n Float -> [Int] Source #

minindexVectorDouble :: forall (n :: Nat). Array n Double -> [Int] Source #

maxindexVectorDouble :: forall (n :: Nat). Array n Double -> [Int] Source #

dotprodinnerVectorInt32 :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array (n + 1) Int32 -> Array n Int32 Source #

dotprodinnerVectorInt64 :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array (n + 1) Int64 -> Array n Int64 Source #

dotprodinnerVectorFloat :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array (n + 1) Float -> Array n Float Source #

dotprodinnerVectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array (n + 1) Double -> Array n Double Source #

statisticsPrintAll :: IO () Source #

Consumes the log: one particular event will only ever be printed once, even if statisticsPrintAll is called multiple times.

intWidBranch1 :: forall i (n :: Nat). (FiniteBits i, Storable i) => (forall b. b ~ Int32 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> (forall b. b ~ Int64 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> SNat n -> Array n i -> Array n i Source #

intWidBranch2 :: forall i (n :: Nat). (FiniteBits i, Storable i, Integral i) => (i -> i -> i) -> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ()) -> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> b -> IO ()) -> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ()) -> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ()) -> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> b -> IO ()) -> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ()) -> SNat n -> Array n i -> Array n i -> Array n i Source #

intWidBranchRed1 Source #

Arguments

:: forall i (n :: Nat). (FiniteBits i, Storable i, Integral i) 
=> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

scale by constant

-> (forall b. b ~ Int32 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

reduction kernel int64

-> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

scale by constant

-> (forall b. b ~ Int64 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

reduction kernel

-> SNat n 
-> Array (n + 1) i 
-> Array n i 

intWidBranchRedFull Source #

Arguments

:: forall i (n :: Nat). (FiniteBits i, Storable i, Integral i) 
=> (i -> Int -> i)

scale op int32

-> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO b)

reduction kernel int64

-> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO b)

reduction kernel

-> SNat n 
-> Array n i 
-> i 

intWidBranchExtr Source #

Arguments

:: forall i (n :: Nat). (FiniteBits i, Storable i) 
=> (forall b. b ~ Int32 => Ptr Int64 -> Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

extremum kernel int64

-> (forall b. b ~ Int64 => Ptr Int64 -> Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

extremum kernel

-> Array n i 
-> [Int] 

intWidBranchDotprod Source #

Arguments

:: forall i (n :: Nat). (FiniteBits i, Storable i, Integral i, NumElt i) 
=> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

scale by constant

-> (forall b. b ~ Int32 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

reduction kernel

-> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ())

dotprod kernel int64

-> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ())

scale by constant

-> (forall b. b ~ Int64 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ())

reduction kernel

-> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ())

dotprod kernel

-> SNat n 
-> Array (n + 1) i 
-> Array (n + 1) i 
-> Array n i 

class NumElt a where Source #

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) a -> Array n a Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) a -> Array n a Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n a -> a Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n a -> a Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n a -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n a -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) a -> Array (n + 1) a -> Array n a Source #

Instances

Instances details
NumElt CInt Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt -> Array n CInt Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt -> Array n CInt Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt -> Array n CInt Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) CInt -> Array n CInt Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) CInt -> Array n CInt Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n CInt -> CInt Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n CInt -> CInt Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n CInt -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n CInt -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) CInt -> Array (n + 1) CInt -> Array n CInt Source #

NumElt Int32 Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array n Int32 Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array n Int32 Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n Int32 -> Int32 Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n Int32 -> Int32 Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n Int32 -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n Int32 -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array (n + 1) Int32 -> Array n Int32 Source #

NumElt Int64 Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array n Int64 Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array n Int64 Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n Int64 -> Int64 Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n Int64 -> Int64 Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n Int64 -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n Int64 -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array (n + 1) Int64 -> Array n Int64 Source #

NumElt Double Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n Double -> Double Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n Double -> Double Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n Double -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n Double -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array (n + 1) Double -> Array n Double Source #

NumElt Float Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array n Float Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array n Float Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n Float -> Float Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n Float -> Float Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n Float -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n Float -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array (n + 1) Float -> Array n Float Source #

NumElt Int Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

numEltAdd :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int -> Array n Int Source #

numEltSub :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int -> Array n Int Source #

numEltMul :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int -> Array n Int Source #

numEltNeg :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int Source #

numEltAbs :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int Source #

numEltSignum :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int Source #

numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Int -> Array n Int Source #

numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) Int -> Array n Int Source #

numEltSumFull :: forall (n :: Nat). SNat n -> Array n Int -> Int Source #

numEltProductFull :: forall (n :: Nat). SNat n -> Array n Int -> Int Source #

numEltMinIndex :: forall (n :: Nat). SNat n -> Array n Int -> [Int] Source #

numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n Int -> [Int] Source #

numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) Int -> Array (n + 1) Int -> Array n Int Source #

class NumElt a => IntElt a where Source #

Methods

intEltQuot :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

intEltRem :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

Instances

Instances details
IntElt CInt Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

intEltQuot :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt -> Array n CInt Source #

intEltRem :: forall (n :: Nat). SNat n -> Array n CInt -> Array n CInt -> Array n CInt Source #

IntElt Int32 Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

intEltQuot :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

intEltRem :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32 Source #

IntElt Int64 Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

intEltQuot :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

intEltRem :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64 Source #

IntElt Int Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

intEltQuot :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int -> Array n Int Source #

intEltRem :: forall (n :: Nat). SNat n -> Array n Int -> Array n Int -> Array n Int Source #

class NumElt a => FloatElt a where Source #

Methods

floatEltDiv :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

floatEltPow :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

floatEltLogbase :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

floatEltRecip :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltExp :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltLog :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltSqrt :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltSin :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltCos :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltTan :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAsin :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAcos :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAtan :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltSinh :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltCosh :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltTanh :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAsinh :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAcosh :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAtanh :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltLog1p :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltExpm1 :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltLog1pexp :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltLog1mexp :: forall (n :: Nat). SNat n -> Array n a -> Array n a Source #

floatEltAtan2 :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a Source #

Instances

Instances details
FloatElt Double Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

floatEltDiv :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

floatEltPow :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

floatEltLogbase :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

floatEltRecip :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltExp :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltLog :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltSqrt :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltSin :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltCos :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltTan :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAsin :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAcos :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAtan :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltSinh :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltCosh :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltTanh :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAsinh :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAcosh :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAtanh :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltLog1p :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltExpm1 :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltLog1pexp :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltLog1mexp :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double Source #

floatEltAtan2 :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double Source #

FloatElt Float Source # 
Instance details

Defined in Data.Array.Strided.Arith.Internal

Methods

floatEltDiv :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

floatEltPow :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

floatEltLogbase :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #

floatEltRecip :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltExp :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltLog :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltSqrt :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltSin :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltCos :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltTan :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAsin :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAcos :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAtan :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltSinh :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltCosh :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltTanh :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAsinh :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAcosh :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAtanh :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltLog1p :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltExpm1 :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltLog1pexp :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltLog1mexp :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float Source #

floatEltAtan2 :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float Source #