Go to the documentation of this file.
19 #ifndef viskores_worklet_FieldStatistics_h
20 #define viskores_worklet_FieldStatistics_h
39 template <
typename FieldType>
61 FieldType rawMoment[4];
62 FieldType centralMoment[4];
89 FieldType& pow4)
const
109 : constant(constant0)
114 FieldType
operator()(
const FieldType& value)
const {
return (value - constant); }
117 template <
typename Storage>
124 DeviceAlgorithms::Copy(fieldArray, tempArray);
125 DeviceAlgorithms::Sort(tempArray);
128 FieldType numValues =
static_cast<FieldType
>(dataSize);
132 statinfo.
median = firstAndMedian[1];
142 FieldType sum = DeviceAlgorithms::ScanInclusive(fieldArray, tempArray);
143 statinfo.
mean = sum / numValues;
144 statinfo.
rawMoment[FIRST] = sum / numValues;
156 calculatePowersDispatcher.Invoke(fieldArray, pow1Array, pow2Array, pow3Array, pow4Array);
159 statinfo.
rawMoment[FIRST] = DeviceAlgorithms::ScanInclusive(pow1Array, pow1Array) / numValues;
160 statinfo.
rawMoment[SECOND] = DeviceAlgorithms::ScanInclusive(pow2Array, pow2Array) / numValues;
161 statinfo.
rawMoment[THIRD] = DeviceAlgorithms::ScanInclusive(pow3Array, pow3Array) / numValues;
162 statinfo.
rawMoment[FOURTH] = DeviceAlgorithms::ScanInclusive(pow4Array, pow4Array) / numValues;
167 subtractConstDispatcher.Invoke(fieldArray, tempArray);
170 calculatePowersDispatcher.Invoke(tempArray, pow1Array, pow2Array, pow3Array, pow4Array);
174 DeviceAlgorithms::ScanInclusive(pow1Array, pow1Array) / numValues;
176 DeviceAlgorithms::ScanInclusive(pow2Array, pow2Array) / numValues;
178 DeviceAlgorithms::ScanInclusive(pow3Array, pow3Array) / numValues;
180 DeviceAlgorithms::ScanInclusive(pow4Array, pow4Array) / numValues;
194 #endif // viskores_worklet_FieldStatistics_h
Definition: FieldStatistics.h:51
void(FieldIn value, FieldOut pow1Array, FieldOut pow2Array, FieldOut pow3Array, FieldOut pow4Array) ControlSignature
Definition: FieldStatistics.h:72
FieldType median
Definition: FieldStatistics.h:55
FieldType minimum
Definition: FieldStatistics.h:53
FieldType centralMoment[4]
Definition: FieldStatistics.h:62
FieldType maximum
Definition: FieldStatistics.h:54
A control signature tag for input fields.
Definition: WorkletMapField.h:68
Definition: Algorithm.h:397
Definition: FieldStatistics.h:65
Manages an array-worth of data.
Definition: ArrayHandle.h:313
CalculatePowers(viskores::Id num)
Definition: FieldStatistics.h:79
void(_1, _2, _3, _4, _5) ExecutionSignature
Definition: FieldStatistics.h:73
_1 InputDomain
Definition: FieldStatistics.h:103
A control signature tag for output fields.
Definition: WorkletMapField.h:88
viskores::Float32 Sqrt(viskores::Float32 x)
Definition: Math.h:951
void operator()(const FieldType &value, FieldType &pow1, FieldType &pow2, FieldType &pow3, FieldType &pow4) const
Definition: FieldStatistics.h:85
SubtractConst(const FieldType &constant0)
Definition: FieldStatistics.h:108
Definition: FieldStatistics.h:98
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
#define VISKORES_CONT
Definition: ExportMacros.h:65
Groups connected points that have the same field value.
Definition: Atomic.h:27
_2(_1) ExecutionSignature
Definition: FieldStatistics.h:102
Dispatcher for worklets that inherit from WorkletMapField.
Definition: DispatcherMapField.h:33
FieldType stddev
Definition: FieldStatistics.h:58
FieldType constant
Definition: FieldStatistics.h:105
#define VISKORES_DEPRECATED(...)
Definition: Deprecated.h:156
FieldType rawMoment[4]
Definition: FieldStatistics.h:61
void Allocate(viskores::Id numberOfValues, viskores::CopyFlag preserve, viskores::cont::Token &token) const
Allocates an array large enough to hold the given number of values.
Definition: ArrayHandle.h:504
viskores::Id GetNumberOfValues() const
Returns the number of entries in the array.
Definition: ArrayHandle.h:482
Definition: FieldStatistics.h:40
Definition: DescriptiveStatistics.h:30
void ArrayGetValues(const viskores::cont::ArrayHandle< viskores::Id, SIds > &ids, const viskores::cont::ArrayHandle< T, SData > &data, viskores::cont::ArrayHandle< T, SOut > &output)
Obtain a small set of values from an ArrayHandle with minimal device transfers.
Definition: ArrayGetValues.h:127
FieldType variance
Definition: FieldStatistics.h:57
void(FieldIn value, FieldOut diff) ControlSignature
Definition: FieldStatistics.h:101
FieldType skewness
Definition: FieldStatistics.h:59
FieldType operator()(const FieldType &value) const
Definition: FieldStatistics.h:114
_1 InputDomain
Definition: FieldStatistics.h:74
Base class for worklets that do a simple mapping of field arrays.
Definition: WorkletMapField.h:47
viskores::Id numPowers
Definition: FieldStatistics.h:76
FieldType mean
Definition: FieldStatistics.h:56
void Run(viskores::cont::ArrayHandle< FieldType, Storage > fieldArray, StatInfo &statinfo)
Definition: FieldStatistics.h:118
A short fixed-length array.
Definition: Types.h:365
Binary Predicate that takes two arguments argument x, and y and returns a viskores::Vec<T,...
Definition: BinaryOperators.h:120
#define VISKORES_EXEC
Definition: ExportMacros.h:59
FieldType kurtosis
Definition: FieldStatistics.h:60