37 lines
633 B
C++
37 lines
633 B
C++
#pragma once
|
|
|
|
#include "utils/vector.h"
|
|
|
|
|
|
namespace utils{
|
|
|
|
template <typename T>
|
|
void inplace_linspace(utils::Vector<T>& a, T start, T stop, bool endpoint=true){
|
|
|
|
uint64_t N = a.size();
|
|
T step;
|
|
|
|
if (endpoint){
|
|
step = (stop - start) / static_cast<T>(N - 1);
|
|
}else{
|
|
step = (stop - start) / static_cast<T>(N);
|
|
}
|
|
|
|
for (uint64_t i = 0; i < N; ++i){
|
|
a[i] = start + (step*static_cast<T>(i));
|
|
}
|
|
}
|
|
|
|
template <typename T>
|
|
utils::Vector<T> linspace(T start, T stop, uint64_t N, bool endpoint=true){
|
|
|
|
utils::Vector<T> a(N);
|
|
|
|
inplace_linspace(a, start, stop, endpoint);
|
|
|
|
return a;
|
|
}
|
|
|
|
|
|
|
|
} // end namespace utils
|