ape  0.5.0
Audio Programming Environment
Classes | Namespaces | Functions
misc.h File Reference
#include <cstdint>
#include <vector>
#include <assert.h>
#include <type_traits>
#include "interpolation.h"

Go to the source code of this file.

Classes

struct  ape::uarray< T >
 An unowned array wrapper - a mutable "view" of something else, that cannot be resized. Construction parameters are referenced directly, and no copies of data are ever taken / made. This also means you should take care to ensure referred-to data outlives any uarray. Following that, uarrays should probably only ever exist on the stack. More...
 
struct  ape::umatrix< T >
 A container representing a 2d rectangular array (and can be used syntactically like one). As with uarray, the source contents is unowned and the dimensionality is constant. Row-major order, where each "row" is a channel and can be accessed through a uarray. More...
 
struct  ape::umatrix< T >::iterator
 Iterator for enumerating the rows of a umatrix umatrix<T>::begin() More...
 
struct  ape::DynamicSampleMatrix< T >
 An owned 2d rectangular matrix that supports a T** representation and being aliased as a umatrix. More...
 
struct  ape::circular_signal< T >
 An infinitely indexable read-only signal that repeats the original signal. Supports signed and unsigned integer indices or hermite-interpolated fractional indices. More...
 
struct  ape::windowed_signal< T >
 An infinitely indexable read-only signal that windows the original signal (ie. it is zero outside of the bounds of the source material). Supports signed and unsigned integer indices or hermite-interpolated fractional indices. More...
 
struct  ape::circular_iterator< T >
 LegacyForwardIterator with capability of iterating N steps around a flat source with an offset. In other words, if exceeding the "end" of any referenced container, it will wrap around and start from the beginning again.

See also
cyclic_begin, cyclic_end
More...
 

Namespaces

 ape
 

Functions

template<typename Container >
auto ape::cyclic_begin (Container &c, std::size_t offset)
 Constructs a suitable beginning iterator of a cyclic iteration on c . Iteration effectively wraps around, until it compares equal to something returned by cyclic_end. More...
 
template<typename Container >
auto ape::cyclic_end (Container &c, std::size_t offset, std::size_t length)
 Specifies an "end" to cyclic_begin More...
 
template<typename T >
void ape::clear (std::vector< T > &arr) noexcept
 Clear a uarray of non-const qualified T elements to a default-initialized value. More...
 
template<typename T >
std::enable_if<!std::is_const_v< T > >::type ape::clear (uarray< T > arr) noexcept
 Clear a uarray of non-const qualified T elements to a default-initialized value. More...
 
template<typename T >
std::enable_if<!std::is_const_v< T > >::type ape::clear (umatrix< T > mat, std::size_t offset=0) noexcept
 Clear a umatrix of non-const qualified T elements to a default-initialized value. More...
 
template<typename T >
uarray< T > ape::as_uarray (std::vector< T > &vec)
 
template<typename T >
uarray< const T > ape::as_uarray (const std::vector< T > &vec)
 
template<typename T >
uarray< T > ape::as_uarray (T *data, std::size_t size)
 
template<typename T >
uarray< const T > ape::as_uarray (const T *data, std::size_t size)