Rev | Line | |
---|
[937] | 1 | classdef mexEpdf |
---|
| 2 | properties |
---|
[943] | 3 | rv=RV; %empty description add some valid RV when needed |
---|
[937] | 4 | end |
---|
| 5 | methods |
---|
| 6 | function m=mean(p) |
---|
| 7 | error('define how to compute mean') |
---|
| 8 | end |
---|
| 9 | function validate(p) |
---|
| 10 | error('check if the density is consistent') |
---|
| 11 | end |
---|
| 12 | function dim=dimension(p) |
---|
| 13 | error('return dimension of the density') |
---|
| 14 | end |
---|
| 15 | function v=variance(p) |
---|
| 16 | error('define how to compute mean') |
---|
| 17 | end |
---|
| 18 | function l=evallog(p,x) |
---|
| 19 | error('define how to evaluate log of this density at point x') |
---|
| 20 | end |
---|
[1037] | 21 | function l=sample(p) |
---|
| 22 | error('define how to sample from this density') |
---|
| 23 | end |
---|
[943] | 24 | |
---|
[944] | 25 | %%% default functions -- no need to redefine %%% |
---|
[943] | 26 | |
---|
[937] | 27 | function l=evallog_nn(p,x) |
---|
| 28 | % define how to evaluate non-normalized log of this density at point x |
---|
| 29 | % makes sense if faster than normalized |
---|
[1037] | 30 | l=evallog(p,x); |
---|
[937] | 31 | end |
---|
[943] | 32 | function r=get_rv(p) |
---|
| 33 | r=p.rv; |
---|
| 34 | end |
---|
[1037] | 35 | function m = samplemat(obj, n) |
---|
| 36 | m = zeros(obj.dimension, n); |
---|
| 37 | for i=1:n |
---|
| 38 | m(:,i) = obj.sample; |
---|
| 39 | end |
---|
| 40 | end |
---|
[937] | 41 | end |
---|
| 42 | end |
---|