35#ifndef _BLAZE_MATH_EXPRESSIONS_SMATMEANEXPR_H_
36#define _BLAZE_MATH_EXPRESSIONS_SMATMEANEXPR_H_
76inline decltype(
auto) mean_backend(
const SparseMatrix<MT,SO>& sm,
FalseType )
78 using BT = UnderlyingBuiltin_t<MT>;
98inline decltype(
auto) mean_backend(
const SparseMatrix<MT,SO>& sm,
TrueType )
104 return ElementType_t<MT>();
142 if(
size( *sm ) == 0UL ) {
160template< ReductionFlag RF
163decltype(
auto) mean_backend(
const SparseMatrix<MT,SO>& sm,
FalseType )
165 using BT = UnderlyingBuiltin_t<MT>;
167 const size_t n( RF == rowwise ?
columns( *sm ) :
rows( *sm ) );
171 return sum<RF>( *sm ) *
inv( BT( n ) );
189decltype(
auto) mean_backend(
const SparseMatrix<MT,SO>& sm,
TrueType )
191 const size_t n( RF == rowwise ?
rows( *sm ) :
columns( *sm ) );
195 constexpr bool TF( ( RF == rowwise ? columnVector : rowVector ) );
197 return uniform<TF>( n, ElementType_t<MT>() );
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 MAYBE_UNUSED function template.
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 sparse matrices.
Definition: SparseMatrix.h:77
Header file for the SparseMatrix base class.
decltype(auto) mean(const DenseMatrix< MT, SO > &dm)
Computes the (arithmetic) mean for the given dense matrix.
Definition: DMatMeanExpr.h:134
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
constexpr void MAYBE_UNUSED(const Args &...)
Suppression of unused parameter warnings.
Definition: MaybeUnused.h:81
#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.
Compile time check for zero vectors or matrices.
Definition: IsZero.h:109
Header file for the IsZero type trait.
Header file for basic type definitions.