#ifndef DSUM_H_
#define DSUM_H_

#include <distributions/Distribution.h>

/**
 * @short Sum of two discrete random variables
 */
class DSum : public Distribution {
 public:
  DSum();
  ~DSum();
  
  double logLikelihood (SArray const & x, 
		        std::vector<SArray const *> const &parameters) const;
  void randomSample (SArray &x, std::vector<SArray const *> const &parameters)
    const;
  bool checkParameterDim (std::vector<SArray const *> const &parameters) const;
  bool checkParameterValue(std::vector<SArray const *> const &parameters) 
    const;
  Index const &dim(std::vector<SArray const *> const &parameters) const;
  unsigned long df(std::vector<SArray const *> const &parameters) const;
  double lowerSupport(unsigned long i,
		      std::vector<SArray const *> const &parameters) const;
  double upperSupport(unsigned long i,
		      std::vector<SArray const *> const &parameters) const;
};

#endif /* DSUM_H_ */


syntax highlighted by Code2HTML, v. 0.9.1