Drake
Drake C++ Documentation
Loading...
Searching...
No Matches
stochastic.h File Reference
#include <memory>
#include <type_traits>
#include <variant>
#include <vector>
#include "drake/common/drake_assert.h"
#include "drake/common/drake_copyable.h"
#include "drake/common/eigen_types.h"
#include "drake/common/name_value.h"
#include "drake/common/random.h"
#include "drake/common/symbolic/expression.h"
Include dependency graph for stochastic.h:
This graph shows which files directly or indirectly include this file:

Classes

class  Distribution
 Base class for a single distribution, to be used with YAML archives. More...
class  Deterministic
 A single deterministic value. More...
class  Gaussian
 A gaussian distribution with mean and stddev. More...
class  Uniform
 A uniform distribution with min inclusive and max exclusive. More...
class  UniformDiscrete
 Chooses from among discrete values with equal probability. More...
class  DistributionVector
 Base class for a vector of distributions, to be used with YAML archives. More...
class  DeterministicVector< Size >
 A single deterministic vector value. More...
class  GaussianVector< Size >
 A gaussian distribution with vector mean and vector or scalar stddev. More...
class  UniformVector< Size >
 A uniform distribution with vector min inclusive and vector max exclusive. More...

Namespaces

namespace  drake
namespace  drake::schema

Macros

#define DRAKE_DECLARE_TEMPLATE_INSTANTIATIONS_ON_ALL_SIZES(Func)

Typedefs

using DistributionVariant
 Variant over all kinds of distributions.
template<int Size>
using DistributionVectorVariant
 Variant over all kinds of vector distributions.
using DistributionVectorVariantX = DistributionVectorVariant<Eigen::Dynamic>
 DistributionVectorVariant that permits any vector size dynamically.

Functions

std::unique_ptr< DistributionToDistribution (const DistributionVariant &var)
 Copies the given variant into a Distribution base class.
double Sample (const DistributionVariant &var, drake::RandomGenerator *generator)
 Like Distribution::Sample, but on a DistributionVariant instead.
double Mean (const DistributionVariant &var)
 Like Distribution::Mean, but on a DistributionVariant instead.
drake::symbolic::Expression ToSymbolic (const DistributionVariant &var)
 Like Distribution::ToSymbolic, but on a DistributionVariant instead.
Eigen::VectorXd Sample (const std::vector< DistributionVariant > &vec, drake::RandomGenerator *generator)
 Like Distribution::Sample, but elementwise over a collection of possibly-heterogenous DistributionVariant instead.
Eigen::VectorXd Mean (const std::vector< DistributionVariant > &vec)
 Like Distribution::Mean, but elementwise over a collection of possibly-heterogenous DistributionVariant instead.
drake::VectorX< drake::symbolic::ExpressionToSymbolic (const std::vector< DistributionVariant > &vec)
 Like Distribution::ToSymbolic, but elementwise over a collection of possibly-heterogenous DistributionVariant instead.
bool IsDeterministic (const DistributionVariant &var)
 Returns true iff var is set to a deterministic value.
double GetDeterministicValue (const DistributionVariant &var)
 If var is deterministic, retrieves its value.
template<int Size>
std::unique_ptr< DistributionVectorToDistributionVector (const DistributionVectorVariant< Size > &vec)
 Copies the given variant into a DistributionVector base class.
template<int Size>
bool IsDeterministic (const DistributionVectorVariant< Size > &vec)
 Returns true iff all of vec's elements are set to a deterministic value.
template<int Size>
Eigen::VectorXd GetDeterministicValue (const DistributionVectorVariant< Size > &vec)
 If vec is deterministic, retrieves its value.

Macro Definition Documentation

◆ DRAKE_DECLARE_TEMPLATE_INSTANTIATIONS_ON_ALL_SIZES

#define DRAKE_DECLARE_TEMPLATE_INSTANTIATIONS_ON_ALL_SIZES ( Func)
Value:
extern template Func(const DistributionVectorVariantX&); \
extern template Func(const DistributionVectorVariant<1>&); \
extern template Func(const DistributionVectorVariant<2>&); \
extern template Func(const DistributionVectorVariant<3>&); \
extern template Func(const DistributionVectorVariant<4>&); \
extern template Func(const DistributionVectorVariant<5>&); \
extern template Func(const DistributionVectorVariant<6>&);