NumCpp
2.4.0
A Templatized Header Only C++ Implementation of the Python NumPy Library
angle.hpp
Go to the documentation of this file.
1
#pragma once
29
30
#include "
NumCpp/Core/Internal/StaticAsserts.hpp
"
31
#include "
NumCpp/Core/Internal/StlAlgorithms.hpp
"
32
#include "
NumCpp/NdArray.hpp
"
33
34
#include <complex>
35
36
namespace
nc
37
{
38
//============================================================================
39
// Method Description:
49
template
<
typename
dtype>
50
auto
angle
(
const
std::complex<dtype>& inValue)
51
{
52
STATIC_ASSERT_ARITHMETIC
(dtype);
53
54
return
std::arg(inValue);
55
}
56
57
//============================================================================
58
// Method Description:
68
template
<
typename
dtype>
69
auto
angle
(
const
NdArray
<std::complex<dtype>>& inArray)
70
{
71
NdArray
<decltype(
angle
(std::complex<dtype>{0}))> returnArray(inArray.shape());
72
stl_algorithms::transform
(inArray.cbegin(), inArray.cend(), returnArray.
begin
(),
73
[](
auto
& inValue) ->
auto
74
{
75
return angle(inValue);
76
});
77
78
return
returnArray;
79
}
80
}
// namespace nc
StaticAsserts.hpp
STATIC_ASSERT_ARITHMETIC
#define STATIC_ASSERT_ARITHMETIC(dtype)
Definition:
StaticAsserts.hpp:37
nc::NdArray
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition:
NdArrayCore.hpp:71
nc::stl_algorithms::transform
OutputIt transform(InputIt first, InputIt last, OutputIt destination, UnaryOperation unaryFunction)
Definition:
StlAlgorithms.hpp:702
NdArray.hpp
nc::angle
auto angle(const std::complex< dtype > &inValue)
Definition:
angle.hpp:50
nc
Definition:
Coordinate.hpp:44
StlAlgorithms.hpp
nc::NdArray::begin
iterator begin() noexcept
Definition:
NdArrayCore.hpp:1087
include
NumCpp
Functions
angle.hpp
Generated by
1.8.17