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