autoppl  v0.8
A C++ template library for probabilistic programming
density.hpp File Reference
#include <cmath>
#include <autoppl/math/math.hpp>
#include <autoppl/util/traits/dist_expr_traits.hpp>
#include <fastad_bits/util/type_traits.hpp>
#include <Eigen/Dense>

Go to the source code of this file.

Namespaces

 ppl
 
 ppl::math
 

Macros

#define M_PI   3.14159265358979323846
 

Typedefs

using ppl::math::dist_value_t = util::dist_value_t
 

Functions

template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<MeanType> && std::is_arithmetic_v<SigmaType> >>
dist_value_t ppl::math::normal_pdf (const XType &x, const MeanType &mean, const SigmaType &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<MeanType> && std::is_arithmetic_v<SigmaType> >>
dist_value_t ppl::math::normal_pdf (const Eigen::MatrixBase< XType > &x, const MeanType &mean, const SigmaType &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<SigmaType> >>
dist_value_t ppl::math::normal_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MeanType > &mean, const SigmaType &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<MeanType> >>
dist_value_t ppl::math::normal_pdf (const Eigen::MatrixBase< XType > &x, const MeanType &mean, const Eigen::MatrixBase< SigmaType > &sigma)
 
template<class XType , class MeanType , class SigmaType >
dist_value_t ppl::math::normal_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MeanType > &mean, const Eigen::MatrixBase< SigmaType > &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<MeanType> && std::is_arithmetic_v<SigmaType> >>
dist_value_t ppl::math::normal_log_pdf (const XType &x, const MeanType &mean, const SigmaType &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<MeanType> && std::is_arithmetic_v<SigmaType> >>
dist_value_t ppl::math::normal_log_pdf (const Eigen::MatrixBase< XType > &x, const MeanType &mean, const SigmaType &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<SigmaType> >>
dist_value_t ppl::math::normal_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MeanType > &mean, const SigmaType &sigma)
 
template<class XType , class MeanType , class SigmaType , class = std::enable_if_t< std::is_arithmetic_v<MeanType> >>
dist_value_t ppl::math::normal_log_pdf (const Eigen::MatrixBase< XType > &x, const MeanType &mean, const Eigen::MatrixBase< SigmaType > &sigma)
 
template<class XType , class MeanType , class SigmaType >
dist_value_t ppl::math::normal_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MeanType > &mean, const Eigen::MatrixBase< SigmaType > &sigma)
 
template<class XType , class LocType , class ScaleType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<LocType> && std::is_arithmetic_v<ScaleType> >>
dist_value_t ppl::math::cauchy_log_pdf (const XType &x, const LocType &loc, const ScaleType &scale)
 
template<class XType , class LocType , class ScaleType , class = std::enable_if_t< std::is_arithmetic_v<LocType> && std::is_arithmetic_v<ScaleType> >>
dist_value_t ppl::math::cauchy_log_pdf (const Eigen::MatrixBase< XType > &x, const LocType &loc, const ScaleType &scale)
 
template<class XType , class LocType , class ScaleType , class = std::enable_if_t< std::is_arithmetic_v<ScaleType> >>
dist_value_t ppl::math::cauchy_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< LocType > &loc, const ScaleType &scale)
 
template<class XType , class LocType , class ScaleType , class = std::enable_if_t< std::is_arithmetic_v<LocType> >>
dist_value_t ppl::math::cauchy_log_pdf (const Eigen::MatrixBase< XType > &x, const LocType &loc, const Eigen::MatrixBase< ScaleType > &scale)
 
template<class XType , class LocType , class ScaleType >
dist_value_t ppl::math::cauchy_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< LocType > &loc, const Eigen::MatrixBase< ScaleType > &scale)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<MinType> && std::is_arithmetic_v<MaxType> >>
dist_value_t ppl::math::uniform_pdf (const XType &x, const MinType &min, const MaxType &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<MinType> && std::is_arithmetic_v<MaxType> >>
dist_value_t ppl::math::uniform_pdf (const Eigen::MatrixBase< XType > &x, const MinType &min, const MaxType &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<MaxType> >>
dist_value_t ppl::math::uniform_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MinType > &min, const MaxType &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<MinType> >>
dist_value_t ppl::math::uniform_pdf (const Eigen::MatrixBase< XType > &x, const MinType &min, const Eigen::MatrixBase< MaxType > &max)
 
template<class XType , class MinType , class MaxType >
dist_value_t ppl::math::uniform_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MinType > &min, const Eigen::MatrixBase< MaxType > &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<MinType> && std::is_arithmetic_v<MaxType> >>
dist_value_t ppl::math::uniform_log_pdf (const XType &x, const MinType &min, const MaxType &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<MinType> && std::is_arithmetic_v<MaxType> >>
dist_value_t ppl::math::uniform_log_pdf (const Eigen::MatrixBase< XType > &x, const MinType &min, const MaxType &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<MaxType> >>
dist_value_t ppl::math::uniform_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MinType > &min, const MaxType &max)
 
template<class XType , class MinType , class MaxType , class = std::enable_if_t< std::is_arithmetic_v<MinType> >>
dist_value_t ppl::math::uniform_log_pdf (const Eigen::MatrixBase< XType > &x, const MinType &min, const Eigen::MatrixBase< MaxType > &max)
 
template<class XType , class MinType , class MaxType >
dist_value_t ppl::math::uniform_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< MinType > &min, const Eigen::MatrixBase< MaxType > &max)
 
template<class XType , class PType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<PType> >>
dist_value_t ppl::math::bernoulli_pdf (const XType &x, const PType &p)
 
template<class XType , class PType , class = std::enable_if_t< std::is_arithmetic_v<PType> >>
dist_value_t ppl::math::bernoulli_pdf (const Eigen::MatrixBase< XType > &x, const PType &p)
 
template<class XType , class PType >
dist_value_t ppl::math::bernoulli_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< PType > &p)
 
template<class XType , class PType , class = std::enable_if_t< std::is_arithmetic_v<XType> && std::is_arithmetic_v<PType> >>
dist_value_t ppl::math::bernoulli_log_pdf (const XType &x, const PType &p)
 
template<class XType , class PType , class = std::enable_if_t< std::is_arithmetic_v<PType> >>
dist_value_t ppl::math::bernoulli_log_pdf (const Eigen::MatrixBase< XType > &x, const PType &p)
 
template<class XType , class PType >
dist_value_t ppl::math::bernoulli_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< PType > &p)
 
template<class XType , class VType , class NType >
dist_value_t ppl::math::wishart_log_pdf (const Eigen::MatrixBase< XType > &x, const Eigen::MatrixBase< VType > &v, const NType &n)
 

Variables

constexpr double ppl::math::SQRT_TWO_PI
 
constexpr double ppl::math::LOG_SQRT_TWO_PI
 

Macro Definition Documentation

◆ M_PI

#define M_PI   3.14159265358979323846