Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Array.Strided.Arith.Internal
Synopsis
- fromSNat' :: forall (n :: Nat). SNat n -> Int
- data Dict c where
- debugShow :: forall (n :: Nat) a. (Storable a, KnownNat n) => Array n a -> String
- 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
- liftOpEltwise2 :: 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 ()) -> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> b -> IO ()) -> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ()) -> Array n a -> Array n a -> Array n a
- stridesDense :: [Int] -> Int -> [Int] -> Maybe (Int, Int)
- data Unreplicated a = KnownNat n' => Unreplicated (Array n' a) Int ([Int] -> [Int])
- unreplicateStrides :: forall (n :: Nat) a. Array n a -> Unreplicated a
- 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
- 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
- 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
- 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
- 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
- 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
- vectorRedInnerOp :: 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 ()) -> (Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> Array (n + 1) a -> Array n a
- vectorRedFullOp :: 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) -> Array n a -> a
- vectorExtremumOp :: forall a b (n :: Nat). Storable a => (Ptr a -> Ptr b) -> (Ptr Int64 -> Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> Array n a -> [Int]
- vectorDotprodInnerOp :: 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) -> (Int64 -> Ptr Int64 -> Ptr b -> b -> Ptr Int64 -> Ptr b -> IO ()) -> (Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> (Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ()) -> Array (n + 1) a -> Array (n + 1) a -> Array n a
- mulWithInt :: Num a => a -> Int -> a
- addVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32
- subVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32
- mulVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32
- addVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64
- subVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64
- mulVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64
- addVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- subVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- mulVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- addVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- subVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- mulVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- quotVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32
- remVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32 -> Array n Int32
- quotVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64
- remVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64 -> Array n Int64
- divVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- powVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- logbaseVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- atan2VectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float -> Array n Float
- divVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- powVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- logbaseVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- atan2VectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double -> Array n Double
- negVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32
- absVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32
- signumVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Array n Int32
- negVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64
- absVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64
- signumVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Array n Int64
- negVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- absVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- signumVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- negVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- absVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- signumVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- recipVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- expVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- logVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- sqrtVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- sinVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- cosVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- tanVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- asinVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- acosVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- atanVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- sinhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- coshVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- tanhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- asinhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- acoshVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- atanhVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- log1pVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- expm1VectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- log1pexpVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- log1mexpVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Array n Float
- recipVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- expVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- logVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- sqrtVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- sinVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- cosVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- tanVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- asinVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- acosVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- atanVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- sinhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- coshVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- tanhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- asinhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- acoshVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- atanhVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- log1pVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- expm1VectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- log1pexpVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- log1mexpVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Array n Double
- sum1VectorInt32 :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array n Int32
- sumFullVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Int32
- product1VectorInt32 :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array n Int32
- productFullVectorInt32 :: forall (n :: Nat). SNat n -> Array n Int32 -> Int32
- sum1VectorInt64 :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array n Int64
- sumFullVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Int64
- product1VectorInt64 :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array n Int64
- productFullVectorInt64 :: forall (n :: Nat). SNat n -> Array n Int64 -> Int64
- sum1VectorFloat :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array n Float
- sumFullVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Float
- product1VectorFloat :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array n Float
- productFullVectorFloat :: forall (n :: Nat). SNat n -> Array n Float -> Float
- sum1VectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double
- sumFullVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Double
- product1VectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double
- productFullVectorDouble :: forall (n :: Nat). SNat n -> Array n Double -> Double
- minindexVectorInt32 :: forall (n :: Nat). Array n Int32 -> [Int]
- maxindexVectorInt32 :: forall (n :: Nat). Array n Int32 -> [Int]
- minindexVectorInt64 :: forall (n :: Nat). Array n Int64 -> [Int]
- maxindexVectorInt64 :: forall (n :: Nat). Array n Int64 -> [Int]
- minindexVectorFloat :: forall (n :: Nat). Array n Float -> [Int]
- maxindexVectorFloat :: forall (n :: Nat). Array n Float -> [Int]
- minindexVectorDouble :: forall (n :: Nat). Array n Double -> [Int]
- maxindexVectorDouble :: forall (n :: Nat). Array n Double -> [Int]
- dotprodinnerVectorInt32 :: forall (n :: Nat). SNat n -> Array (n + 1) Int32 -> Array (n + 1) Int32 -> Array n Int32
- dotprodinnerVectorInt64 :: forall (n :: Nat). SNat n -> Array (n + 1) Int64 -> Array (n + 1) Int64 -> Array n Int64
- dotprodinnerVectorFloat :: forall (n :: Nat). SNat n -> Array (n + 1) Float -> Array (n + 1) Float -> Array n Float
- dotprodinnerVectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array (n + 1) Double -> Array n Double
- c_stats_enable :: Int32 -> IO ()
- c_stats_print_all :: IO ()
- statisticsEnable :: Bool -> IO ()
- statisticsPrintAll :: IO ()
- 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
- 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
- intWidBranchRed1 :: 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 ()) -> (forall b. b ~ Int32 => Int64 -> Ptr b -> Ptr Int64 -> 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 b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> SNat n -> Array (n + 1) i -> Array n i
- intWidBranchRedFull :: forall i (n :: Nat). (FiniteBits i, Storable i, Integral i) => (i -> Int -> i) -> (forall b. b ~ Int32 => Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO b) -> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO b) -> SNat n -> Array n i -> i
- intWidBranchExtr :: forall i (n :: Nat). (FiniteBits i, Storable i) => (forall b. b ~ Int32 => Ptr Int64 -> Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> (forall b. b ~ Int64 => Ptr Int64 -> Int64 -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> Array n i -> [Int]
- intWidBranchDotprod :: 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 ()) -> (forall b. b ~ Int32 => Int64 -> Ptr b -> Ptr Int64 -> Ptr Int64 -> Ptr 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 b -> Ptr Int64 -> Ptr Int64 -> Ptr b -> IO ()) -> (forall b. b ~ Int64 => Int64 -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> Ptr Int64 -> Ptr b -> IO ()) -> SNat n -> Array (n + 1) i -> Array (n + 1) i -> Array n i
- class NumElt a where
- numEltAdd :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
- numEltSub :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
- numEltMul :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
- numEltNeg :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- numEltAbs :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- numEltSignum :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- numEltSum1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) a -> Array n a
- numEltProduct1Inner :: forall (n :: Nat). SNat n -> Array (n + 1) a -> Array n a
- numEltSumFull :: forall (n :: Nat). SNat n -> Array n a -> a
- numEltProductFull :: forall (n :: Nat). SNat n -> Array n a -> a
- numEltMinIndex :: forall (n :: Nat). SNat n -> Array n a -> [Int]
- numEltMaxIndex :: forall (n :: Nat). SNat n -> Array n a -> [Int]
- numEltDotprodInner :: forall (n :: Nat). SNat n -> Array (n + 1) a -> Array (n + 1) a -> Array n a
- class NumElt a => IntElt a where
- class NumElt a => FloatElt a where
- floatEltDiv :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
- floatEltPow :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
- floatEltLogbase :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
- floatEltRecip :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltExp :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltLog :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltSqrt :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltSin :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltCos :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltTan :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAsin :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAcos :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAtan :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltSinh :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltCosh :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltTanh :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAsinh :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAcosh :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAtanh :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltLog1p :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltExpm1 :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltLog1pexp :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltLog1mexp :: forall (n :: Nat). SNat n -> Array n a -> Array n a
- floatEltAtan2 :: forall (n :: Nat). SNat n -> Array n a -> Array n a -> Array n a
Documentation
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 #
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
|
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.
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
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
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
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 #
product1VectorDouble :: forall (n :: Nat). SNat n -> Array (n + 1) Double -> Array n Double 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 #
c_stats_enable :: Int32 -> IO () Source #
c_stats_print_all :: IO () Source #
statisticsEnable :: Bool -> IO () 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 #
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 |
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 |
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 |
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
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 #
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 #