OpenKalman
|
A header file for the class GaussianDistribution and its traits. More...
#include <iostream>
#include <adapters/details/adapters-interface.hpp>
Go to the source code of this file.
Classes | |
struct | OpenKalman::GaussianDistribution< StaticDescriptor, MeanNestedMatrix, CovarianceNestedMatrix, random_number_engine > |
A Gaussian distribution, defined in terms of a Mean and a Covariance. More... | |
struct | OpenKalman::interface::indexible_object_traits< GaussianDistribution< Coeffs, NestedMean, NestedCovariance, re > > |
struct | OpenKalman::DistributionTraits< GaussianDistribution< Coeffs, NestedMean, NestedCovariance, re > > |
Namespaces | |
OpenKalman | |
The root namespace for OpenKalman. | |
OpenKalman::detail | |
T is an acceptable noise perturbation input to a tests. | |
Functions | |
template<typename M , typename C , std::enable_if_t< typed_matrix< M > and self_adjoint_covariance< C >, int > = 0> | |
OpenKalman::GaussianDistribution (M &&, C &&) -> GaussianDistribution< vector_space_descriptor_of_t< M, 0 >, nested_object_of_t< passable_t< M >>, nested_object_of_t< passable_t< C >>> | |
template<typename D , std::enable_if_t< gaussian_distribution< D >, int > = 0> | |
auto | OpenKalman::make_GaussianDistribution (D &&dist) |
Make a Gaussian distribution. More... | |
template<typename re = std::mt19937, typename M , typename Cov > | |
auto | OpenKalman::make_GaussianDistribution (M &&mean, Cov &&cov) |
Make a Gaussian distribution. More... | |
template<typename re = std::mt19937, typename M , typename Cov , std::enable_if_t<(not fixed_pattern< re >) and typed_matrix< M > and vector< M > and has_untyped_index< M, 1 > and square_shaped< Cov > and(covariance_nestable< Cov > or typed_matrix_nestable< Cov >) and(index_dimension_of< M, 0 >::value==index_dimension_of< Cov, 0 >::value), int > = 0> | |
auto | OpenKalman::make_GaussianDistribution (M &&mean, Cov &&cov) |
Make a Gaussian distribution. More... | |
template<typename StaticDescriptor , typename re = std::mt19937, typename M , typename Cov , std::enable_if_t< fixed_pattern< StaticDescriptor > and typed_matrix_nestable< M > and vector< M > and(covariance_nestable< Cov > or typed_matrix_nestable< Cov >), int > = 0> | |
auto | OpenKalman::make_GaussianDistribution (M &&mean, Cov &&cov) |
Make a Gaussian distribution. More... | |
template<typename M , typename Cov , typename re = std::mt19937, std::enable_if_t< typed_matrix< M > and vector< M > and has_untyped_index< M, 1 > and covariance< Cov > and compares_with< vector_space_descriptor_of_t< M, 0 >, vector_space_descriptor_of_t< Cov, 0 >>, int > = 0> | |
auto | OpenKalman::make_GaussianDistribution () |
Make a default Gaussian distribution. More... | |
template<typename StaticDescriptor , typename M , typename Cov , typename re = std::mt19937, std::enable_if_t< typed_matrix_nestable< M > and vector< M > and covariance_nestable< Cov > and(index_dimension_of< M, 0 >::value==index_dimension_of< Cov, 0 >::value), int > = 0> | |
auto | OpenKalman::make_GaussianDistribution () |
Make a default Gaussian distribution. More... | |
template<typename Arg , std::enable_if_t< gaussian_distribution< Arg >, int > = 0> | |
decltype(auto) constexpr | OpenKalman::mean_of (Arg &&arg) |
template<typename Arg , std::enable_if_t< gaussian_distribution< Arg >, int > = 0> | |
decltype(auto) constexpr | OpenKalman::covariance_of (Arg &&arg) |
template<typename T , std::size_t dimension = index_dimension_of<T, 0>::value, typename Scalar = typename scalar_type_of<T>::type, typename... runtime_dimensions, std::enable_if_t< gaussian_distribution< T > and(sizeof...(runtime_dimensions)==(dimension==dynamic_size ? 1 :0)) and(std::is_convertible_v< runtime_dimensions, std::size_t > and ...), int > = 0> | |
constexpr auto | OpenKalman::make_zero_distribution_like (runtime_dimensions...e) |
template<typename T , std::size_t dimension = index_dimension_of<T, 0>::value, typename Scalar = typename scalar_type_of<T>::type, typename... runtime_dimensions, std::enable_if_t< gaussian_distribution< T > and(sizeof...(runtime_dimensions)==(dimension==dynamic_size ? 1 :0)) and(std::is_convertible_v< runtime_dimensions, std::size_t > and ...), int > = 0> | |
constexpr auto | OpenKalman::make_normal_distribution_like (runtime_dimensions...e) |
template<typename D , typename ... Ds, std::enable_if_t<(gaussian_distribution< D > and ... and gaussian_distribution< Ds >), int > = 0> | |
auto | OpenKalman::concatenate (D &&d, Ds &&... ds) |
template<typename Dist , typename Means , typename Covariances , std::size_t ... ints> | |
auto | OpenKalman::detail::zip_dist (Means &&ms, Covariances &&cs, std::index_sequence< ints... >) |
template<typename ... Cs, typename D , std::enable_if_t<(fixed_pattern< Cs > and ...) and gaussian_distribution< D > and coordinates::compares_with< static_concatenate_t< Cs... >, typename DistributionTraits< D >::StaticDescriptor, less_equal<>>, int > = 0> | |
auto | OpenKalman::split (D &&d) |
Split distribution. | |
template<typename Dist , std::enable_if_t< gaussian_distribution< Dist >, int > = 0> | |
std::ostream & | OpenKalman::operator<< (std::ostream &os, const Dist &d) |
template<typename Dist1 , typename Dist2 , std::enable_if_t< gaussian_distribution< Dist1 > and gaussian_distribution< Dist2 > and coordinates::compares_with< typename DistributionTraits< Dist1 >::StaticDescriptor, typename DistributionTraits< Dist2 >::StaticDescriptor >, int > = 0> | |
auto | OpenKalman::operator+ (Dist1 &&d1, Dist2 &&d2) |
template<typename Dist1 , typename Dist2 , std::enable_if_t< gaussian_distribution< Dist1 > and gaussian_distribution< Dist2 > and coordinates::compares_with< typename DistributionTraits< Dist1 >::StaticDescriptor, typename DistributionTraits< Dist2 >::StaticDescriptor >, int > = 0> | |
auto | OpenKalman::operator- (Dist1 &&d1, Dist2 &&d2) |
template<typename A , typename D , std::enable_if_t< typed_matrix< A > and gaussian_distribution< D > and(not euclidean_transformed< A >) and(compares_with< vector_space_descriptor_of_t< A, 1 >, typename DistributionTraits< D >::StaticDescriptor >), int > = 0> | |
auto | OpenKalman::operator* (A &&a, D &&d) |
template<typename Dist , typename S , std::enable_if_t< gaussian_distribution< Dist > and std::is_convertible_v< S, const typename DistributionTraits< Dist >::Scalar >, int > = 0> | |
auto | OpenKalman::operator* (Dist &&d, S s) |
template<typename Dist , typename S , std::enable_if_t< gaussian_distribution< Dist > and std::is_convertible_v< S, const typename DistributionTraits< Dist >::Scalar >, int > = 0> | |
auto | OpenKalman::operator* (S s, Dist &&d) |
template<typename Dist , typename S , std::enable_if_t< gaussian_distribution< Dist > and std::is_convertible_v< S, const typename DistributionTraits< Dist >::Scalar >, int > = 0> | |
auto | OpenKalman::operator/ (Dist &&d, S s) |
A header file for the class GaussianDistribution and its traits.