1 #ifndef DIRAC_PROBABILITY_DISTRIBUTION_H 2 #define DIRAC_PROBABILITY_DISTRIBUTION_H 4 #include "ProbabilityDistribution.h" 12 virtual void GetParameters(
Vector& parameters) {
14 parameters(0) = value;
16 virtual void SetParameters(
const Vector& parameters) {
17 Assert(parameters.n == 1);
18 value = parameters(0);
20 virtual Real PDF(Real _value) {
if(value==_value)
return 1;
else return 0; }
21 virtual Real CDF(Real value) {
if(value>=_value)
return 1;
else return 0; }
22 virtual bool IsDiscrete() {
return true; }
23 virtual Real Minimum() {
return value; }
24 virtual Real Maximum() {
return value; }
25 virtual Real Mean() {
return value; }
26 virtual Real Variance() {
return 0; }
27 virtual Real Skewness() {
return 0; }
28 virtual Real Kurtosis() {
return 0; }
29 virtual Real Moment(
int moment) {
30 if(moment == 0)
return value;
33 virtual Real Sample() {
return value; }
34 virtual bool CanSample()
const {
return true; }
42 DiracMultivarateDistribution(
const Vector& _value) : value(_value) {}
43 virtual int NumDimensions() {
return value.n; }
44 virtual void GetParameters(
Vector& parameters) { parameters = value; }
45 virtual void SetParameters(
const Vector& parameters) { value = parameters; }
46 virtual Real PDF(
const Vector& x) {
if(value == x)
return 1; }
47 virtual Real CDF(
const Vector& x) {
48 Assert(x.n == value.n);
49 for(
int i=0;i<value.n;i++)
50 if(x(i) < value(i))
return 0;
53 virtual bool IsDiscrete() {
return true; }
54 virtual void Minimum(
Vector& bmin) { bmin=value; }
55 virtual void Maximum(
Vector& bmax) { bmax=value; }
56 virtual void Mean(
Vector& mean) { mean=value; }
57 virtual void Covariance(
Matrix& m) { m.resize(value.n,value.n,Zero); }
58 virtual void Sample(
Vector& x) { x=value; }
59 virtual bool CanSample()
const {
return true; }
61 for(
int i=0;i<x.n;i++) {
62 if(i!=var) Assert(x[i] == value[i]);
67 vector<bool> returned(x.n,
false);
68 for(
size_t i=0;i<indices.size();i++)
69 returned[indices[i]]=
true;
70 Vector newvalue(indices.size());
72 for(
int i=0;i<x.n;i++) {
73 if(!returned[i]) Assert(x[i] == value[i]);
74 else newvalue[k++] = x[i];
Definition: ProbabilityDistribution.h:14
Contains all definitions in the statistics directory.
Definition: BernoulliDistribution.h:6
Definition: DiracDistribution.h:39
Definition: DiracDistribution.h:8
Definition: ProbabilityDistribution.h:41