1#ifndef PBAT_MATH_LINALG_MINI_NORM_H
2#define PBAT_MATH_LINALG_MINI_NORM_H
6#include "pbat/HostDevice.h"
17template <
class TMatrix>
18PBAT_HOST_DEVICE
auto SquaredNorm(TMatrix&& A)
20 return Dot(std::forward<TMatrix>(A), std::forward<TMatrix>(A));
23template <
class TMatrix>
24PBAT_HOST_DEVICE
auto Norm(TMatrix&& A)
26 using MatrixType = std::remove_cvref_t<TMatrix>;
27 PBAT_MINI_CHECK_CMATRIX(MatrixType);
28 using ScalarType =
typename MatrixType::ScalarType;
29 if constexpr (std::is_same_v<ScalarType, float>)
31 return sqrtf(SquaredNorm(std::forward<TMatrix>(A)));
35 return sqrt(SquaredNorm(std::forward<TMatrix>(A)));
Mini linear algebra related functionality.
Definition Assign.h:12
Linear Algebra related functionality.
Definition FilterEigenvalues.h:7
Math related functionality.
Definition Concepts.h:19
The main namespace of the library.
Definition Aliases.h:15