vector/utility.hpp File Reference
Include dependency graph for vector/utility.hpp:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Namespaces | |
nil | |
nil::crypto3 | |
nil::crypto3::algebra | |
Functions | |
template<typename T , std::size_t N, typename F , typename U > | |
constexpr U | nil::crypto3::algebra::accumulate (const vector< T, N > &v, U init, F &&f) |
accumulates an operation across a vector More... | |
template<typename T , typename U , std::size_t N> | |
constexpr vector< T, N > | nil::crypto3::algebra::cast (const vector< U, N > &v) |
casts a vector to another type More... | |
template<typename T , std::size_t N, std::size_t M> | |
constexpr vector< T, N+M > | nil::crypto3::algebra::concat (vector< T, N > a, vector< T, M > b) |
concatenates two vectors More... | |
template<typename F , typename T , typename... Vectors, typename U = std::invoke_result_t<F, T, typename Vectors::value_type...>, std::size_t N = detail::all_same_value<std::size_t, Vectors::size...>::value> | |
constexpr vector< U, N > | nil::crypto3::algebra::elementwise (F f, const vector< T, N > &v, const Vectors &...vectors) |
applies a function elementwise between many vectors More... | |
template<std::size_t N, typename T > | |
constexpr vector< T, N > | nil::crypto3::algebra::fill (T value) |
generates a vector containing a single value More... | |
template<std::size_t N, typename F > | |
constexpr decltype(auto) | nil::crypto3::algebra::generate (F &&f) |
generates a vector as a function of its index More... | |
template<std::size_t N, typename T > | |
constexpr vector< T, N > | nil::crypto3::algebra::iota (T value=T()) |
generates a vector containing consecutive elements More... | |
template<std::size_t N, typename T > | |
constexpr vector< T, N > | nil::crypto3::algebra::linspace (T min, T max) |
generates a vector of equally spaced elements More... | |
template<std::size_t N, typename T > | |
constexpr vector< T, N > | nil::crypto3::algebra::rotate (vector< T, N > v, int n) |
shifts vector elements More... | |
template<std::size_t M, typename T , std::size_t N> | |
constexpr vector< T, M > | nil::crypto3::algebra::slice (vector< T, N > v, std::size_t start=0) |
slices a vector into a subvector More... | |