51 template<
typename dtype>
56 double sumOfSquares = 0.0;
57 const auto function = [&sumOfSquares](dtype value) ->
void
59 sumOfSquares +=
utils::sqr(
static_cast<double>(value));
78 returnArray(0, row) =
std::sqrt(sumOfSquares);
91 returnArray(0, row) =
std::sqrt(sumOfSquares);
114 template<
typename dtype>
119 std::complex<double> sumOfSquares(0.0, 0.0);
120 const auto function = [&sumOfSquares](
const std::complex<dtype>& value) ->
void
122 sumOfSquares +=
utils::sqr(complex_cast<double>(value));
137 for (
uint32 row = 0; row < inArray.numRows(); ++row)
139 sumOfSquares = std::complex<double>(0.0, 0.0);
140 std::for_each(inArray.cbegin(row), inArray.cend(row),
function);
141 returnArray(0, row) =
std::sqrt(sumOfSquares);
152 sumOfSquares = std::complex<double>(0.0, 0.0);
154 returnArray(0, row) =
std::sqrt(sumOfSquares);
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition: Error.hpp:36
#define STATIC_ASSERT_ARITHMETIC(dtype)
Definition: StaticAsserts.hpp:37
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition: NdArrayCore.hpp:72
const_iterator cbegin() const noexcept
Definition: NdArrayCore.hpp:1270
uint32 numRows() const noexcept
Definition: NdArrayCore.hpp:3615
NdArray< dtype > transpose() const
Definition: NdArrayCore.hpp:4841
const_iterator cend() const noexcept
Definition: NdArrayCore.hpp:1614
void for_each(InputIt first, InputIt last, UnaryFunction f)
Definition: StlAlgorithms.hpp:213
constexpr dtype sqr(dtype inValue) noexcept
Definition: sqr.hpp:44
Definition: Coordinate.hpp:45
Axis
Enum To describe an axis.
Definition: Types.hpp:46
auto sqrt(dtype inValue) noexcept
Definition: sqrt.hpp:50
NdArray< double > norm(const NdArray< dtype > &inArray, Axis inAxis=Axis::NONE)
Definition: norm.hpp:52
std::uint32_t uint32
Definition: Types.hpp:40