arrayfire-0.4.0.0: Haskell bindings to the ArrayFire general-purpose GPU library

Copyright David Johnson (c) 2019-2020 BSD3 David Johnson Experimental GHC None Haskell2010

ArrayFire.Statistics

Description

Statistics API. Example of finding the top k elements along with their indices from an Array

>>> let (vals,indexes) = topk ( vector @Double 10 [1..] ) 3 TopKDefault
>>> print vals
>>> print indexes

ArrayFire Array
[3 1 1 1]
10.0000     9.0000     8.0000

ArrayFire Array
[3 1 1 1]
9          8          7

Synopsis

# Documentation

Arguments

 :: AFType a => Array a Input Array -> Int The dimension along which the mean is extracted -> Array a Will contain the mean of the input Array along dimension dim

Calculates mean of Array along user-specified dimension.

>>> mean ( vector @Int 10 [1..] ) 0
ArrayFire Array
[1 1 1 1]
5.5000


Arguments

 :: AFType a => Array a Input Array -> Array a Weights Array -> Int The dimension along which the mean is extracted -> Array a Will contain the mean of the input Array along dimension dim

Calculates meanWeighted of Array along user-specified dimension.

>>> meanWeighted (vector @Double 10 [1..10]) (vector @Double 10 [1..10]) 0
ArrayFire Array
[1 1 1 1]
7.0000


Arguments

 :: AFType a => Array a Input Array -> Bool boolean denoting Population variance (false) or Sample Variance (true) -> Int The dimension along which the variance is extracted -> Array a will contain the variance of the input array along dimension dim

Calculates variance of Array along user-specified dimension.

>>> var (vector @Double 8 [1..8]) False 0
ArrayFire Array
[1 1 1 1]
6.0


Arguments

 :: AFType a => Array a Input Array -> Array a Weights Array used to scale input in before getting variance -> Int The dimension along which the variance is extracted -> Array a Contains the variance of the input array along dimension dim

Calculates varWeighted of Array along user-specified dimension.

>>> varWeighted ( vector @Int 10 [1..] ) ( vector @Int 10 [1..] ) 0
ArrayFire Array
[1 1 1 1]
5.5000


Arguments

 :: AFType a => Array a Input Array -> Int The dimension along which the standard deviation is extracted -> Array a Contains the standard deviation of the input array along dimension dim

Calculates stdev of Array along user-specified dimension.

>>> stdev (vector @Double 10 (cycle [1,-1])) 0
ArrayFire Array
[1 1 1 1]
1.0


Arguments

 :: AFType a => Array a First input Array -> Array a Second input Array -> Bool A boolean specifying if biased estimate should be taken (default: False) -> Array a Contains will the covariance of the input Arrays

Calculates covariance of two Arrays with a bias specifier.

>>> cov (vector @Double 10 (repeat 1)) (vector @Double 10 (repeat 1)) False
ArrayFire Array
[1 1 1 1]
0.0


Arguments

 :: AFType a => Array a Input Array -> Int Dimension along which to calculate median -> Array a Array containing median

Calculates median of Array along user-specified dimension.

>>> print $median ( vector @Int 10 [1..] ) 0 ArrayFire Array [1 1 1 1] 5.5000  Arguments  :: AFType a => Array a Input Array -> (Double, Double) Mean result (real and imaginary part) Calculates mean of all elements in an Array >>> fst (meanAll (matrix @Double (2,2) (repeat 10))) 10.0  Arguments  :: AFType a => Array a Input Array -> Array a Array of weights -> (Double, Double) Weighted mean (real and imaginary part) Calculates weighted mean of all elements in an Array >>> print$ fst (meanAllWeighted (matrix @Double (2,2) (repeat 10)) (matrix @Double (2,2) (repeat 0)))
10


Arguments

 :: AFType a => Array a Input Array -> Bool Input Array -> (Double, Double) Variance (real and imaginary part)

Calculates variance of all elements in an Array

>>> fst (varAll (vector @Double 10 (repeat 10)) False)
0


Arguments

 :: AFType a => Array a Input Array -> Array a Array of weights -> (Double, Double) Variance weighted result, (real and imaginary part)

Calculates weighted variance of all elements in an Array

>>> varAllWeighted ( vector @Int 10 [1..] ) ( vector @Int 10 [1..] )
0


Arguments

 :: AFType a => Array a Input Array -> (Double, Double) Standard deviation result, (real and imaginary part)

Calculates standard deviation of all elements in an Array

>>> fst (stdevAll (vector @Double 10 (repeat 10)))
10


Arguments

 :: (AFType a, Fractional a) => Array a Input Array -> (Double, Double) Median result, real and imaginary part

Calculates median of all elements in an Array

>>> fst (medianAll (vector @Double 10 (repeat 10)))
10


Arguments

 :: AFType a => Array a First input Array -> Array a Second input Array -> (Double, Double) Correlation coefficient result, real and imaginary part

This algorithm returns Pearson product-moment correlation coefficient. https://en.wikipedia.org/wiki/Pearson_correlation_coefficient

>>> fst (corrCoef ( vector @Int 10 [1..] ) ( vector @Int 10 [10,9..] ))
-1


Arguments

 :: AFType a => Array a First input Array, with at least k elements along dim -> Int The number of elements to be retrieved along the dim dimension -> TopK If descending, the highest values are returned. Otherwise, the lowest values are returned -> (Array a, Array a) Returns The values of the top k elements along the dim dimension along with the indices of the top k elements along the dim dimension

This function returns the top k values along a given dimension of the input array.

>>> let (vals,indexes) = topk ( vector @Double 10 [1..] ) 3 TopKDefault
>>> print indexes

ArrayFire Array
[3 1 1 1]
10.0000     9.0000     8.0000

>>> print vals
ArrayFire Array
[3 1 1 1]
9          8          7


The indices along with their values are returned. If the input is a multi-dimensional array, the indices will be the index of the value in that dimension. Order of duplicate values are not preserved. This function is optimized for small values of k. This function performs the operation across all dimensions of the input array. This function is optimized for small values of k. The order of the returned keys may not be in the same order as the appear in the input array