Go to the documentation of this file.
18 #ifndef viskores_worklet_DescriptiveStatistics_h
19 #define viskores_worklet_DescriptiveStatistics_h
39 ,
min_(std::numeric_limits<T>::max())
40 ,
max_(std::numeric_limits<T>::lowest())
110 T delta2 = delta * delta;
113 T delta3 = delta * delta2;
114 T n2 = result.
n_ * result.
n_;
116 result.
M3_ += delta3 * x.
n_ * y.
n_ * (x.
n_ - y.
n_) / n2;
117 result.
M3_ += T(3.0) * delta * (x.
n_ * y.
M2_ - y.
n_ * x.
M2_) / result.
n_;
119 T delta4 = delta2 * delta2;
120 T n3 = result.
n_ * n2;
123 result.
M4_ += T(6.0) * delta2 * (x.
n_ * x.
n_ * y.
M2_ + y.
n_ * y.
n_ * x.
M2_) / n2;
124 result.
M4_ += T(4.0) * delta * (x.
n_ * y.
M3_ - y.
n_ * x.
M3_) / result.
n_;
165 return this->
M2_ / (this->
n_ - 1);
171 if (this->
M2_ == 0 || this->
n_ == 0)
175 return this->
M2_ / this->
n_;
181 if (this->
M2_ == 0 || this->
n_ == 0)
193 if (this->
M2_ == 0 || this->
n_ == 0)
199 return this->
n_ * this->
M4_ / (this->
M2_ * this->
M2_);
216 template <
typename T>
233 template <
typename FieldType,
typename Storage>
244 template <
typename KeyType,
typename ValueType,
typename KeyInStorage,
typename ValueInStorage>
261 Algorithm::SortByKey(keys_copy, values_copy);
267 Algorithm::ReduceByKey(keys_copy, states, keys_out, results,
viskores::Add{});
275 #endif // viskores_worklet_DescriptiveStatistics_h
T PopulationStddev() const
Definition: DescriptiveStatistics.h:156
T SampleVariance() const
Definition: DescriptiveStatistics.h:159
T PopulationVariance() const
Definition: DescriptiveStatistics.h:169
T M3() const
Definition: DescriptiveStatistics.h:147
T max_
Definition: DescriptiveStatistics.h:206
T M4_
Definition: DescriptiveStatistics.h:211
viskores::cont::ArrayHandleZip< FirstHandleType, SecondHandleType > make_ArrayHandleZip(const FirstHandleType &first, const SecondHandleType &second)
A convenience function for creating an ArrayHandleZip.
Definition: ArrayHandleZip.h:300
Definition: Algorithm.h:397
Definition: DescriptiveStatistics.h:34
T Kurtosis() const
Definition: DescriptiveStatistics.h:191
T M3_
Definition: DescriptiveStatistics.h:210
T Mean() const
Definition: DescriptiveStatistics.h:141
Manages an array-worth of data.
Definition: ArrayHandle.h:313
T M4() const
Definition: DescriptiveStatistics.h:150
T M2() const
Definition: DescriptiveStatistics.h:144
#define VISKORES_EXEC_CONT
Definition: ExportMacros.h:60
ArrayHandleZip is a specialization of ArrayHandle.
Definition: ArrayHandleZip.h:263
T Max() const
Definition: DescriptiveStatistics.h:135
viskores::Float32 Sqrt(viskores::Float32 x)
Definition: Math.h:951
Definition: DescriptiveStatistics.h:214
T Sum() const
Definition: DescriptiveStatistics.h:138
StatState()
Definition: DescriptiveStatistics.h:37
#define VISKORES_CONT
Definition: ExportMacros.h:65
Groups connected points that have the same field value.
Definition: Atomic.h:27
static StatState< FieldType > Run(const viskores::cont::ArrayHandle< FieldType, Storage > &field)
Calculate various summary statistics for the input ArrayHandle.
Definition: DescriptiveStatistics.h:234
T M2_
Definition: DescriptiveStatistics.h:209
T Skewness() const
Definition: DescriptiveStatistics.h:179
StatState(T value)
Definition: DescriptiveStatistics.h:50
Definition: DescriptiveStatistics.h:30
viskores::worklet::DescriptiveStatistics::StatState< T > operator()(T value) const
Definition: DescriptiveStatistics.h:217
static auto Run(const viskores::cont::ArrayHandle< KeyType, KeyInStorage > &keys, const viskores::cont::ArrayHandle< ValueType, ValueInStorage > &values) -> viskores::cont::ArrayHandleZip< viskores::cont::ArrayHandle< KeyType >, viskores::cont::ArrayHandle< StatState< ValueType >>>
Definition: DescriptiveStatistics.h:245
T Min() const
Definition: DescriptiveStatistics.h:132
T min_
Definition: DescriptiveStatistics.h:205
T N() const
Definition: DescriptiveStatistics.h:129
StatState operator+(const StatState< T > &y) const
Definition: DescriptiveStatistics.h:76
T n_
Definition: DescriptiveStatistics.h:204
T mean_
Definition: DescriptiveStatistics.h:208
void ArrayCopy(const SourceArrayType &source, DestArrayType &destination)
Does a deep copy from one array to another array.
Definition: ArrayCopy.h:129
viskores::cont::ArrayHandleTransform< HandleType, FunctorType > make_ArrayHandleTransform(HandleType handle, FunctorType functor)
make_ArrayHandleTransform is convenience function to generate an ArrayHandleTransform.
Definition: ArrayHandleTransform.h:495
T sum_
Definition: DescriptiveStatistics.h:207
StatState(T n, T min, T max, T sum, T mean, T M2, T M3, T M4)
Definition: DescriptiveStatistics.h:63
T SampleStddev() const
Definition: DescriptiveStatistics.h:153