35#ifndef _BLAZE_MATH_EXPRESSIONS_DMATMEANEXPR_H_
36#define _BLAZE_MATH_EXPRESSIONS_DMATMEANEXPR_H_
75inline decltype(
auto) mean_backend(
const DenseMatrix<MT,SO>& dm,
FalseType )
77 using BT = UnderlyingBuiltin_t<MT>;
97inline decltype(
auto) mean_backend(
const DenseMatrix<MT,SO>& dm,
TrueType )
101 return (*dm)(0UL,0UL);
138 if(
size( *dm ) == 0UL ) {
155template< ReductionFlag RF
158decltype(
auto) mean_backend(
const DenseMatrix<MT,SO>& dm,
FalseType )
160 using BT = UnderlyingBuiltin_t<MT>;
162 const size_t n( RF == rowwise ?
columns( *dm ) :
rows( *dm ) );
166 return sum<RF>( *dm ) *
inv( BT( n ) );
183decltype(
auto) mean_backend(
const DenseMatrix<MT,SO>& dm,
TrueType )
185 const size_t n( RF == rowwise ?
rows( *dm ) :
columns( *dm ) );
189 constexpr bool TF( ( RF == rowwise ? columnVector : rowVector ) );
191 return uniform<TF>( n, (*dm)(0UL,0UL) );
Header file for run time assertion macros.
Header file for the function trace functionality.
Header file for the IntegralConstant class template.
Header file for the invert shim.
Header file for the reduction flags.
constexpr ReductionFlag rowwise
Reduction flag for row-wise reduction operations.
Definition: ReductionFlag.h:77
size_t ReductionFlag
Type of the reduction flags.
Definition: ReductionFlag.h:57
Header file for the UnderlyingBuiltin type trait.
Base class for dense matrices.
Definition: DenseMatrix.h:82
Header file for the DenseMatrix base class.
decltype(auto) mean(const DenseMatrix< MT, SO > &dm)
Computes the row-/column-wise mean function for the given dense matrix.
Definition: DMatMeanExpr.h:235
decltype(auto) inv(const DenseMatrix< MT, SO > &dm)
Calculation of the inverse of the given dense matrix.
Definition: DMatInvExpr.h:405
decltype(auto) sum(const DenseMatrix< MT, SO > &dm)
Reduces the given dense matrix by means of addition.
Definition: DMatReduceExpr.h:2156
constexpr size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:644
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:660
constexpr size_t size(const Matrix< MT, SO > &matrix) noexcept
Returns the total number of elements of the matrix.
Definition: Matrix.h:676
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.
Definition: Assert.h:101
#define BLAZE_STATIC_ASSERT_MSG(expr, msg)
Compile time assertion macro.
Definition: StaticAssert.h:123
BoolConstant< true > TrueType
Type traits base class.
Definition: IntegralConstant.h:132
BoolConstant< false > FalseType
Type/value traits base class.
Definition: IntegralConstant.h:121
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.
Definition: Exception.h:235
#define BLAZE_FUNCTION_TRACE
Function trace macro.
Definition: FunctionTrace.h:94
Header file for the exception macros of the math module.
Header file for basic type definitions.