BasicOps.hxx File Reference

#include <numeric>
#include <functional>
#include "StaticBool.hxx"
#include "DataTypes.hxx"
#include "Array.hxx"
#include "CLAM_Math.hxx"
#include "Order.hxx"

Go to the source code of this file.

Classes

struct  CLAM::Pow< o >
struct  CLAM::Pow< 1 >
struct  CLAM::Pow< 0 >
class  CLAM::Power< s, abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(x(i)^n). More...
class  CLAM::NoPowerTmpl< abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(x(i)^1). More...
class  CLAM::SquareTmpl< abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(x(i)^2). More...
class  CLAM::CubeTmpl< abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(x(i)^3). More...
class  CLAM::WeightedPower< s, abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(i*x(i)^n). More...
class  CLAM::PoweredProduct< s, T >
 Binary Operator for use with std::inner_product. More...
class  CLAM::WeightedNoPowerTmpl< abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(i*x(i)^1). More...
class  CLAM::WeightedSquareTmpl< abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(i*x(i)^2). More...
class  CLAM::WeightedCubeTmpl< abs, T >
 Binary Operator for use with std::accumulate, for computing Sum(i*x(i)^3). More...
class  CLAM::BiasedPower< s, abs, T, U >
 Binary Operator for use with std::accumulate, for computing Sum((x(i)-k)^n). More...
class  CLAM::ProductTmpl< T >
 Binary Operator for use with std::accumulate, for computing Product(x(i)). More...
class  CLAM::BaseMemOp
 Class used as base for all operators with memory, useful to define array of operators. More...
class  CLAM::PoweredSum< s, abs, T >
 Class Function that computes Sum(x(i)^n) using std::accumulate and Power<T,s> BinaryOp It also has associated memory so operation is not performed more than necessary. More...
class  CLAM::SumTmpl< abs, T >
 Class Function that computes Sum(x(i)) using std::accumulate and NoPower<T> BinaryOp. More...
class  CLAM::SquaredSumTmpl< abs, T >
 Class Function that computes Sum(x(i)^2) using std::accumulate and Square<T> BinaryOp. More...
class  CLAM::CubedSumTmpl< abs, T >
 Class Function that computes Sum(x(i)^3) using std::accumulate and Cube<T> BinaryOp. More...
class  CLAM::LogPlusTmpl< T >
 Binary Operator for use with std::accumulate, for computing Product(x(i)). More...
class  CLAM::LogSumTmpl< T >
 Class Function for computing logarithmic sum of all data in vector using. More...
class  CLAM::InnerProductTmpl< T >
 Class Function for computing product of all data in vector. More...
class  CLAM::WeightedPoweredSum< s, abs, T >
 Class Function that computes Sum(i*x(i)^n) using std::accumulate and WeightedPower<T,s> BinaryOp It also has associated memory so operation is not performed more than necessary. More...
class  CLAM::CrossWeightedPoweredSum< s, abs, T >
 Class Function that computes Sum(x(i)^n * y(i)) using std::accumulate and WeightedPower<T,s> BinaryOp It also has associated memory so operation is not performed more than necessary. More...
class  CLAM::WeightedSumTmpl< abs, T >
 Class Function that computes Sum(i*x(i)) using std::accumulate and WeightedNoPower<T> BinaryOp. More...
class  CLAM::WeightedSquaredSumTmpl< abs, T >
 Class Function that computes Sum(i*x(i)^2)using std::accumulate and WeightedSquare<T> BinaryOp. More...
class  CLAM::WeightedCubedSumTmpl< abs, T >
 Class Function that computes Sum(i*x(i)^3) using std::accumulate and WeightedCube<T> BinaryOp. More...
class  CLAM::Moment< o, abs, T, U >
 Class Function that computes 'oth' order Moment using PoweredSum Class Function. More...
class  CLAM::CenterOfGravity< o, abs, T, U >
 Class Function that computes 'oth' order Center of Gravity using WeightedPoweredSum Class Function. More...
class  CLAM::CrossCenterOfGravity< o, abs, T, U >
 Special CenterOfGravity using 2ond sequence as indexing sequence. More...
class  CLAM::CentroidTmpl< abs, T, U >
 Centroid is 1st order center of gravity. More...
class  CLAM::MeanTmpl< abs, T, U >
 Mean is 1st order Moment. More...
class  CLAM::EnergyTmpl< T >
 Energy is just the squared sum. More...
class  CLAM::RMSTmpl< T, U >
 RMS is the square root of the Energy. More...
class  CLAM::GeometricMeanTmpl< T, U >
 Class Function that computes Geometric Mean using InnerProduct class function. More...
class  CLAM::BiasedPoweredSum< s, abs, T, U >
 Class Function that computes Sum((x(i)-mean)^n) using std::accumulate and BiasedPower<T,s> BinaryOp It also has associated memory so operation is not performed more than necessary. More...
class  CLAM::CentralMoment< o, abs, T, U >
 Class Function that computes 'oth' order CentralMoment using BiasedPoweredSum Class Function. More...
class  CLAM::StandardDeviationTmpl< abs, T, U >
 Class Function to compute StandardDeviation. More...
class  CLAM::SkewTmpl< abs, T, U >
 Class Function that computes Skewness using Standard Deviation and 3rd order central moment. More...
class  CLAM::KurtosisTmpl< abs, T, U >
 Class Function that computes Kurtosis Excess using Variance and 4th order central moment. More...
class  CLAM::ComplexMin< abs, T >
 Binary Operator for use with std::accumulate, for computing Min(x(i)). More...
class  CLAM::ComplexMinElement< abs, T >
 Class Function that computes Min(x(i)) using std::accumulate and ComplexMin<T> BinaryOp It also has associated memory so operation is not performed more than necessary. More...
class  CLAM::ComplexMax< abs, T >
 Binary Operator for use with std::accumulate, for computing Max(x(i)). More...
class  CLAM::ComplexMaxElement< abs, T >
 Class Function that computes Max(x(i)) using std::accumulate and ComplexMax<T> BinaryOp It also has associated memory so operation is not performed more than necessary. More...

Namespaces

namespace  CLAM

Typedefs

typedef NoPowerTmpl CLAM::NoPower
 Typedefs.
typedef SquareTmpl CLAM::Square
typedef CubeTmpl CLAM::Cube
typedef WeightedNoPowerTmpl CLAM::WeightedNoPower
 typedefs
typedef WeightedSquareTmpl CLAM::WeightedSquare
typedef WeightedCubeTmpl CLAM::WeightedCube
typedef ProductTmpl CLAM::Product
typedef SumTmpl CLAM::Sum
typedef SquaredSumTmpl CLAM::SquaredSum
typedef CubedSumTmpl CLAM::CubedSum
typedef LogPlusTmpl CLAM::LogSum
typedef InnerProductTmpl CLAM::InnerProduct
typedef WeightedSumTmpl CLAM::WeightedSum
typedef WeightedSquaredSumTmpl CLAM::WeightedSquaredSum
typedef WeightedCubedSumTmpl CLAM::WeightedCubedSum
typedef CentroidTmpl CLAM::Centroid
typedef MeanTmpl CLAM::Mean
typedef EnergyTmpl CLAM::Energy
typedef RMSTmpl CLAM::RMS
typedef GeometricMeanTmpl CLAM::GeometricMean
typedef StandardDeviationTmpl CLAM::StandardDeviation
typedef SkewTmpl CLAM::Skew
typedef KurtosisTmpl CLAM::Kurtosis

Detailed Description

Todo:

There a lot of hacks because of Visual C++ compiler, could be optimized and cleaned-up making use of partial specialization.

It is still not clear whether the "abs" aspect should be promoted later on to the argument list.

Note:
: the "abs" aspect present in many of the operations means whether the statistic should be performed directly on the values (by default or when abs=false) or whether the statistic should be computed on the absolute value

Definition in file BasicOps.hxx.

Generated by  doxygen 1.6.3