NumCpp  2.8.0
A Templatized Header Only C++ Implementation of the Python NumPy Library
bartlett.hpp
Go to the documentation of this file.
1 #pragma once
29 
30 #include <cmath>
31 
33 #include "NumCpp/NdArray.hpp"
34 
35 namespace nc
36 {
37  //============================================================================
38  // Method Description:
49  {
50  if (m < 1)
51  {
52  return {};
53  }
54 
55  const auto mDouble = static_cast<double>(m);
56  const auto mMinus1Over2 = (mDouble - 1.0) / 2.0;
57  const auto mMinus1Over2Inv = 1.0 / mMinus1Over2;
58 
59  NdArray<double> result(1, m);
60  int32 i = 0;
61  for (auto n : linspace(0.0, mDouble - 1.0, m, true))
62  {
63  result[i++] = mMinus1Over2Inv * (mMinus1Over2 - std::abs(n - mMinus1Over2));
64  }
65 
66  return result;
67  }
68 } // namespace nc
Definition: Coordinate.hpp:45
NdArray< double > bartlett(int32 m)
Definition: bartlett.hpp:48
NdArray< dtype > linspace(dtype inStart, dtype inStop, uint32 inNum=50, bool endPoint=true)
Definition: linspace.hpp:60
auto abs(dtype inValue) noexcept
Definition: abs.hpp:49
std::int32_t int32
Definition: Types.hpp:36