classdef mexEpdf
    properties
	    rv=RV; %empty description add some valid RV when needed
    end
    methods
        function m=mean(p)
            error('define how to compute mean')
        end
        function validate(p)
            error('check if the density is consistent')
        end
        function dim=dimension(p)
            error('return dimension of the density')
        end
        function v=variance(p)
            error('define how to compute mean')
        end
        function l=evallog(p,x)
            error('define how to evaluate log of this density at point x')
        end
        
        %%% default functions -- no need to redefine %%%
        
        function l=evallog_nn(p,x)
            % define how to evaluate non-normalized log of this density at point x
            % makes sense if faster than normalized
            evallog(p,x);
        end
		  function r=get_rv(p)
		  	r=p.rv;
          end
    end
end