Utopia 2
Framework for studying models of complex & adaptive systems.
|
#include <cmath>
#include <random>
#include <numeric>
#include <vector>
#include <limits>
#include <armadillo>
#include <spdlog/spdlog.h>
#include <utopia/core/types.hh>
Go to the source code of this file.
Namespaces | |
namespace | Utopia |
namespace | Utopia::Models |
namespace | Utopia::Models::SimpleFlocking |
Functions | |
template<class RNG , class T = double> | |
T | Utopia::Models::SimpleFlocking::random_angle (const std::shared_ptr< RNG > &rng) |
Returns a uniformly random angle value in [-π, +π) | |
template<class T > | |
T | Utopia::Models::SimpleFlocking::constrain_angle (T angle) |
Constrains an angle value to interval [-π, +π) | |
template<class Container > | |
void | Utopia::Models::SimpleFlocking::constrain_angles (Container &angles) |
In-place constrains all angles in a container to interval [-π, +π) | |
template<class Container > | |
double | Utopia::Models::SimpleFlocking::absolute_group_velocity (const Container &velocities) |
Computes the absolute group velocity from a container of velocity vectors. | |
template<class Container > | |
auto | Utopia::Models::SimpleFlocking::_circular_sin_cos_sum (const Container &angles) |
Compute sum of sine and cosine values from angles in a container. | |
template<class Container = std::vector<double>> | |
auto | Utopia::Models::SimpleFlocking::circular_mean (const Container &angles) |
Computes the circular mean from a sample of (constrained) angles. | |
template<class Container = std::vector<double>> | |
auto | Utopia::Models::SimpleFlocking::circular_mean_and_std (const Container &angles) |
Computes the circular mean and std from a sample of (constrained) angles. | |
Variables | |
constexpr double | Utopia::Models::SimpleFlocking::TAU = 2*M_PI |
constexpr double | Utopia::Models::SimpleFlocking::NaN = std::numeric_limits<double>::quiet_NaN() |