Go to the documentation of this file.00001
00002 #ifndef pdf1d_flat_h
00003 #define pdf1d_flat_h
00004
00005
00006
00007
00008
00009
00010 #include <vcl_cmath.h>
00011 #include <vcl_iosfwd.h>
00012 #include <pdf1d/pdf1d_pdf.h>
00013
00014
00015
00016 class pdf1d_flat : public pdf1d_pdf
00017 {
00018 double lo_,hi_;
00019 double p_;
00020 double log_p_;
00021
00022 public:
00023
00024 pdf1d_flat();
00025
00026
00027 pdf1d_flat(double lo, double hi);
00028
00029
00030 virtual ~pdf1d_flat();
00031
00032
00033 double sd() const { return vcl_sqrt(variance()); }
00034
00035
00036 void set(double lo, double hi);
00037
00038
00039 double lo() const { return lo_; }
00040
00041
00042 double hi() const { return hi_; }
00043
00044
00045
00046
00047 virtual pdf1d_sampler* new_sampler() const;
00048
00049
00050 virtual double operator()(double x) const;
00051
00052
00053
00054
00055 virtual double log_p(double x) const;
00056
00057
00058 virtual double cdf(double x) const;
00059
00060
00061 virtual bool cdf_is_analytic() const;
00062
00063
00064 virtual double gradient(double x, double& p) const;
00065
00066
00067 virtual double log_prob_thresh(double pass_proportion) const;
00068
00069
00070
00071
00072
00073
00074 virtual double nearest_plausible(double x, double log_p_min) const;
00075
00076
00077 short version_no() const;
00078
00079
00080 virtual vcl_string is_a() const;
00081
00082
00083 virtual bool is_class(vcl_string const& s) const;
00084
00085
00086 virtual pdf1d_pdf* clone() const;
00087
00088
00089 virtual void print_summary(vcl_ostream& os) const;
00090
00091
00092 virtual void b_write(vsl_b_ostream& bfs) const;
00093
00094
00095
00096 virtual void b_read(vsl_b_istream& bfs);
00097 };
00098
00099 #endif // pdf1d_flat_h