MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Differential.hpp File Reference
#include "MayaFlux/Transitive/Memory/RingBuffer.hpp"
#include <glm/glm.hpp>
+ Include dependency graph for Differential.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Kinesis
 

Functions

template<typename T >
MayaFlux::Kinesis::acceleration (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Second difference: rate of change of velocity.
 
template<typename T >
MayaFlux::Kinesis::acceleration (std::span< const T > samples, double dt) noexcept
 Convenience overload of acceleration over a raw span, samples[0] newest.
 
float MayaFlux::Kinesis::angular_delta (float to, float from) noexcept
 Shortest signed angular difference between two headings.
 
float MayaFlux::Kinesis::angular_velocity (const Memory::HistoryBuffer< float > &headings, double dt) noexcept
 Angular velocity from consecutive headings in a HistoryBuffer.
 
float MayaFlux::Kinesis::angular_velocity (std::span< const float > headings, double dt) noexcept
 Convenience overload of angular_velocity over a raw span of headings, samples[0] newest.
 
template<size_t N, typename T >
MayaFlux::Kinesis::backward_difference (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 N-th order backward finite difference of a HistoryBuffer, scaled by dt^N.
 
template<size_t N, typename T >
MayaFlux::Kinesis::backward_difference (std::span< const T > samples, double dt) noexcept
 Convenience overload of backward_difference<N> over a raw span.
 
template<typename T >
MayaFlux::Kinesis::central_first_derivative (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Central difference approximation of the first derivative.
 
template<typename T >
MayaFlux::Kinesis::central_first_derivative (std::span< const T > samples, double dt) noexcept
 Convenience overload of central_first_derivative over a raw span.
 
template<typename T >
MayaFlux::Kinesis::central_second_derivative (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Central difference approximation of the second derivative.
 
template<typename T >
MayaFlux::Kinesis::central_second_derivative (std::span< const T > samples, double dt) noexcept
 Convenience overload of central_second_derivative over a raw span.
 
glm::vec2 MayaFlux::Kinesis::centroid (const Memory::HistoryBuffer< glm::vec2 > &history, size_t window) noexcept
 Mean position across a window.
 
glm::vec2 MayaFlux::Kinesis::centroid (std::span< const glm::vec2 > samples, size_t window) noexcept
 Convenience overload of centroid over a raw span of positions, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::crackle (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Fifth difference: rate of change of jounce.
 
template<typename T >
MayaFlux::Kinesis::crackle (std::span< const T > samples, double dt) noexcept
 Convenience overload of crackle over a raw span, samples[0] newest.
 
float MayaFlux::Kinesis::cross_2d (const glm::vec2 &a, const glm::vec2 &b) noexcept
 2D scalar cross product, sign of turn direction
 
float MayaFlux::Kinesis::curvature (const glm::vec2 &vel, const glm::vec2 &accel, float min_speed=1e-3F) noexcept
 Signed curvature from velocity and acceleration.
 
float MayaFlux::Kinesis::curvature_from_history (const Memory::HistoryBuffer< glm::vec2 > &history, double dt, float min_speed=1e-3F) noexcept
 Signed curvature computed directly from a position HistoryBuffer.
 
float MayaFlux::Kinesis::curvature_from_history (std::span< const glm::vec2 > samples, double dt, float min_speed=1e-3F) noexcept
 Convenience overload of curvature_from_history over a raw span of positions, samples[0] newest.
 
double MayaFlux::Kinesis::direction_sign (const Memory::HistoryBuffer< double > &history, double dt) noexcept
 Sign of a scalar first difference.
 
double MayaFlux::Kinesis::direction_sign (std::span< const double > samples, double dt) noexcept
 Convenience overload of direction_sign over a raw span, samples[0] newest.
 
template<size_t N, typename T >
MayaFlux::Kinesis::forward_difference (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 N-th order forward finite difference, expressed on a HistoryBuffer.
 
template<size_t N, typename T >
MayaFlux::Kinesis::forward_difference (std::span< const T > samples, double dt) noexcept
 Convenience overload of forward_difference<N> over a raw span.
 
float MayaFlux::Kinesis::heading (const glm::vec2 &v) noexcept
 Heading angle of a 2D vector.
 
glm::vec2 MayaFlux::Kinesis::heading_vector (const Memory::HistoryBuffer< glm::vec2 > &history, double dt) noexcept
 Unit direction of a vec2 first difference.
 
glm::vec3 MayaFlux::Kinesis::heading_vector (const Memory::HistoryBuffer< glm::vec3 > &history, double dt) noexcept
 Unit direction of a vec3 first difference.
 
glm::vec2 MayaFlux::Kinesis::heading_vector (std::span< const glm::vec2 > samples, double dt) noexcept
 Convenience overload of heading_vector(vec2) over a raw span, samples[0] newest.
 
glm::vec3 MayaFlux::Kinesis::heading_vector (std::span< const glm::vec3 > samples, double dt) noexcept
 Convenience overload of heading_vector(vec3) over a raw span, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::jerk (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Third difference: rate of change of acceleration.
 
template<typename T >
MayaFlux::Kinesis::jerk (std::span< const T > samples, double dt) noexcept
 Convenience overload of jerk over a raw span, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::jounce (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Fourth difference: rate of change of jerk.
 
template<typename T >
MayaFlux::Kinesis::jounce (std::span< const T > samples, double dt) noexcept
 Convenience overload of jounce over a raw span, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::moving_average (const Memory::HistoryBuffer< T > &history, size_t window) noexcept
 Simple moving average over the newest window samples.
 
template<typename T >
MayaFlux::Kinesis::moving_average (std::span< const T > samples, size_t window) noexcept
 Convenience overload of moving_average over a raw span, samples[0] newest.
 
float MayaFlux::Kinesis::net_displacement (const Memory::HistoryBuffer< glm::vec2 > &history, size_t window) noexcept
 Net displacement across the newest window positions.
 
float MayaFlux::Kinesis::net_displacement (std::span< const glm::vec2 > samples, size_t window) noexcept
 Convenience overload of net_displacement over a raw span of positions, samples[0] newest.
 
float MayaFlux::Kinesis::path_length (const Memory::HistoryBuffer< glm::vec2 > &history, size_t window) noexcept
 Path length accumulated across the newest window positions.
 
float MayaFlux::Kinesis::path_length (std::span< const glm::vec2 > samples, size_t window) noexcept
 Convenience overload of path_length over a raw span of positions, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::pop (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 Sixth difference: rate of change of crackle.
 
template<typename T >
MayaFlux::Kinesis::pop (std::span< const T > samples, double dt) noexcept
 Convenience overload of pop over a raw span, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::smoothed_velocity (const Memory::HistoryBuffer< T > &history, double dt, size_t window) noexcept
 Velocity averaged over a short window rather than a single interval.
 
template<typename T >
MayaFlux::Kinesis::smoothed_velocity (std::span< const T > samples, double dt, size_t window) noexcept
 Convenience overload of smoothed_velocity over a raw span, samples[0] newest.
 
double MayaFlux::Kinesis::speed (const Memory::HistoryBuffer< double > &history, double dt) noexcept
 Absolute value of a scalar first difference.
 
float MayaFlux::Kinesis::speed (const Memory::HistoryBuffer< glm::vec2 > &history, double dt) noexcept
 Magnitude of a vec2 first difference.
 
float MayaFlux::Kinesis::speed (const Memory::HistoryBuffer< glm::vec3 > &history, double dt) noexcept
 Magnitude of a vec3 first difference.
 
double MayaFlux::Kinesis::speed (std::span< const double > samples, double dt) noexcept
 Convenience overload of speed(double) over a raw span, samples[0] newest.
 
float MayaFlux::Kinesis::speed (std::span< const glm::vec2 > samples, double dt) noexcept
 Convenience overload of speed(vec2) over a raw span, samples[0] newest.
 
float MayaFlux::Kinesis::speed (std::span< const glm::vec3 > samples, double dt) noexcept
 Convenience overload of speed(vec3) over a raw span, samples[0] newest.
 
float MayaFlux::Kinesis::spread_radius (const Memory::HistoryBuffer< glm::vec2 > &history, size_t window) noexcept
 Bounding radius of a window around its centroid.
 
float MayaFlux::Kinesis::spread_radius (std::span< const glm::vec2 > samples, size_t window) noexcept
 Convenience overload of spread_radius over a raw span of positions, samples[0] newest.
 
float MayaFlux::Kinesis::straightness (const Memory::HistoryBuffer< glm::vec2 > &history, size_t window) noexcept
 Straightness of a path over a window, 1.0 is a straight line.
 
float MayaFlux::Kinesis::straightness (std::span< const glm::vec2 > samples, size_t window) noexcept
 Convenience overload of straightness over a raw span of positions, samples[0] newest.
 
template<typename T >
Memory::HistoryBuffer< T > MayaFlux::Kinesis::to_history (std::span< const T > samples) noexcept
 Build a HistoryBuffer<T> from a newest-first span.
 
float MayaFlux::Kinesis::total_turning (const Memory::HistoryBuffer< glm::vec2 > &history, size_t window) noexcept
 Total absolute turning accumulated across a window.
 
float MayaFlux::Kinesis::total_turning (std::span< const glm::vec2 > samples, size_t window) noexcept
 Convenience overload of total_turning over a raw span of positions, samples[0] newest.
 
template<typename T >
MayaFlux::Kinesis::velocity (const Memory::HistoryBuffer< T > &history, double dt) noexcept
 First difference: rate of change of position.
 
template<typename T >
MayaFlux::Kinesis::velocity (std::span< const T > samples, double dt) noexcept
 Convenience overload of velocity over a raw span, samples[0] newest.