NumCpp  2.12.1
A Templatized Header Only C++ Implementation of the Python NumPy Library
sign.hpp
Go to the documentation of this file.
1
28#pragma once
29
30#include <complex>
31
35#include "NumCpp/NdArray.hpp"
36
37namespace nc
38{
39 //============================================================================
40 // Method Description:
51 template<typename dtype>
52 int8 sign(dtype inValue) noexcept
53 {
55
56 if (inValue < dtype{ 0 })
57 {
58 return -1;
59 }
60
61 if (inValue > dtype{ 0 })
62 {
63 return 1;
64 }
65
66 return 0;
67 }
68
69 //============================================================================
70 // Method Description:
81 template<typename dtype>
83 {
84 NdArray<int8> returnArray(inArray.shape());
86 inArray.cend(),
87 returnArray.begin(),
88 [](dtype inValue) noexcept -> int8 { return sign(inValue); });
89
90 return returnArray;
91 }
92} // namespace nc
#define STATIC_ASSERT_ARITHMETIC_OR_COMPLEX(dtype)
Definition: StaticAsserts.hpp:56
Holds 1D and 2D arrays, the main work horse of the NumCpp library.
Definition: NdArrayCore.hpp:139
const_iterator cbegin() const noexcept
Definition: NdArrayCore.hpp:1365
const Shape & shape() const noexcept
Definition: NdArrayCore.hpp:4511
const_iterator cend() const noexcept
Definition: NdArrayCore.hpp:1673
iterator begin() noexcept
Definition: NdArrayCore.hpp:1315
OutputIt transform(InputIt first, InputIt last, OutputIt destination, UnaryOperation unaryFunction)
Definition: StlAlgorithms.hpp:775
Definition: Cartesian.hpp:40
std::int8_t int8
Definition: Types.hpp:38
int8 sign(dtype inValue) noexcept
Definition: sign.hpp:52