PLearn 0.1
|
we follow the same pattern as Var & Variable More...
#include <RandomVar.h>
Public Member Functions | |
RandomVar () | |
RandomVar (int length, int width=1) | |
RandomVar (RandomVariable *v) | |
RandomVar (const RandomVar &other) | |
RandomVar (const Vec &vec) | |
RandomVar (const Mat &mat) | |
RandomVar (const Var &var) | |
RandomVar (const RVArray &vars) | |
make joint distribution | |
RandomVar | operator[] (RandomVar index) |
extract from joint or element of vector | |
void | operator= (const RVArray &vars) |
void | operator= (real f) |
these two only work with NonRandomVariables | |
void | operator= (const Vec &v) |
copy v into value | |
void | operator= (const Mat &m) |
void | operator= (const Var &v) |
assign value to v | |
RVInstance | operator== (const Var &v) const |
associate a RV to an observation v, as in expressions of the form (V==v) | |
bool | operator== (const RandomVar &rv) const |
compare two RandomVars: == if same underlying RandomVariable (same address) | |
bool | operator!= (const RandomVar &rv) const |
RVArray | operator& (const RandomVar &v) const |
make an array of RV's, as in expressions like X&Y | |
ConditionalExpression | operator| (RVArray rhs) const |
ConditionalExpression | operator| (RVInstanceArray rhs) const |
This operator represents expressions of the form Y|(X==x && Z==z) |
we follow the same pattern as Var & Variable
Definition at line 354 of file RandomVar.h.
PLearn::RandomVar::RandomVar | ( | ) |
Definition at line 76 of file RandomVar.cc.
Referenced by operator=().
:PP<RandomVariable>(new NonRandomVariable(1)) {}
Definition at line 82 of file RandomVar.cc.
:PP<RandomVariable>(new NonRandomVariable(length,width)) {}
PLearn::RandomVar::RandomVar | ( | RandomVariable * | v | ) |
Definition at line 78 of file RandomVar.cc.
:PP<RandomVariable>(v) {}
PLearn::RandomVar::RandomVar | ( | const RandomVar & | other | ) |
Definition at line 80 of file RandomVar.cc.
:PP<RandomVariable>(other) {}
PLearn::RandomVar::RandomVar | ( | const Vec & | vec | ) |
Definition at line 85 of file RandomVar.cc.
:PP<RandomVariable>(new NonRandomVariable(Var(vec))) {}
PLearn::RandomVar::RandomVar | ( | const Mat & | mat | ) |
Definition at line 87 of file RandomVar.cc.
:PP<RandomVariable>(new NonRandomVariable(Var(mat))) {}
PLearn::RandomVar::RandomVar | ( | const Var & | var | ) |
Definition at line 89 of file RandomVar.cc.
:PP<RandomVariable>(new NonRandomVariable(v)) {}
PLearn::RandomVar::RandomVar | ( | const RVArray & | vars | ) |
make joint distribution
Definition at line 92 of file RandomVar.cc.
:PP<RandomVariable>(new JointRandomVariable(rvars)) {}
Definition at line 387 of file RandomVar.h.
References PLearn::PP< T >::ptr.
{ return rv.ptr != this->ptr; }
make an array of RV's, as in expressions like X&Y
Definition at line 136 of file RandomVar.cc.
{ return RVArray(*this,v,10); }
void PLearn::RandomVar::operator= | ( | const Vec & | v | ) |
copy v into value
Definition at line 108 of file RandomVar.cc.
References PLERROR.
{ if (!(*this)->isNonRandom()) PLERROR("RandomVar: can't assign a values to a truly random RV"); (*this)->value->value << v; }
void PLearn::RandomVar::operator= | ( | const RVArray & | vars | ) |
Definition at line 98 of file RandomVar.cc.
References RandomVar().
{ *this = RandomVar(vars); }
void PLearn::RandomVar::operator= | ( | const Mat & | m | ) |
Definition at line 115 of file RandomVar.cc.
References PLERROR.
void PLearn::RandomVar::operator= | ( | real | f | ) |
these two only work with NonRandomVariables
fill value to f
Definition at line 101 of file RandomVar.cc.
References PLERROR.
{ if (!(*this)->isNonRandom()) PLERROR("RandomVar: can't assign values to a truly random RV"); (*this)->value->value.fill(f); }
void PLearn::RandomVar::operator= | ( | const Var & | v | ) |
assign value to v
Definition at line 123 of file RandomVar.cc.
References PLERROR.
{ if (!(*this)->isNonRandom()) PLERROR("RandomVar: can't assign a Var to a truly random RV"); (*this)->value = v; }
compare two RandomVars: == if same underlying RandomVariable (same address)
Definition at line 386 of file RandomVar.h.
References PLearn::PP< T >::ptr.
{ return rv.ptr == this->ptr; }
RVInstance PLearn::RandomVar::operator== | ( | const Var & | v | ) | const |
associate a RV to an observation v, as in expressions of the form (V==v)
Definition at line 130 of file RandomVar.cc.
{ return RVInstance(*this,v); }
extract from joint or element of vector
Definition at line 95 of file RandomVar.cc.
{ return new RandomElementOfRandomVariable((*this),index); }
ConditionalExpression PLearn::RandomVar::operator| | ( | RVArray | rhs | ) | const |
This operator represents expressions of the form Y|(X&Z). It is almost the same as & (i.e. it also builds a RVArray), but it allows us to know that the LHS of the | will always be the first element of the array, so if the user types ((Y&Z)|(X&U)) the result will be a 3-element array, because the first two-element array created by (Y&Z) is coerced into a JointRV, which will be the first element of the result.
Definition at line 141 of file RandomVar.cc.
References i, and PLearn::TVec< T >::size().
{ RVInstanceArray rvia(a.size()); for (int i=0;i<a.size();i++) { rvia[i].V = a[i]; rvia[i].v = a[i]->value; } return ConditionalExpression(RVInstance(*this,Var((*this)->length())),rvia); }
ConditionalExpression PLearn::RandomVar::operator| | ( | RVInstanceArray | rhs | ) | const |
This operator represents expressions of the form Y|(X==x && Z==z)
Definition at line 152 of file RandomVar.cc.
{ return ConditionalExpression(RVInstance(*this,Var((*this)->length())),rhs); }