vector/utility.hpp File Reference
#include <nil/crypto3/algebra/vector/vector.hpp>
#include <tuple>
+ 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...