19 Covariance3
operator + (
const Covariance3 & cov)
const;
38 void computeFromSamples(
const std::vector<OrientedPoint> & poses);
39 void computeFromSamples(
const std::vector<OrientedPoint> & poses,
const std::vector<double>& weights );
42 template<
typename Po
intIterator,
typename WeightIterator>
48 WeightIterator wt=weightBegin;
49 double *w=
new double();
51 for (PointIterator pt=pointBegin; pt!=pointEnd; pt++){
69 for (PointIterator pt=pointBegin; pt!=pointEnd; pt++){
74 cov.xx+=*w*delta.
x*delta.
x;
75 cov.yy+=*w*delta.
y*delta.
y;
77 cov.xy+=*w*delta.
x*delta.
y;
78 cov.yt+=*w*delta.
y*delta.
theta;
79 cov.xt+=*w*delta.
x*delta.
theta;
97 template<
typename Po
intIterator>
104 for (PointIterator pt=pointBegin; pt!=pointEnd; pt++){
119 for (PointIterator pt=pointBegin; pt!=pointEnd; pt++){
123 cov.xx+=delta.
x*delta.
x;
124 cov.yy+=delta.
y*delta.
y;
126 cov.xy+=delta.
x*delta.
y;
127 cov.yt+=delta.
y*delta.
theta;
128 cov.xt+=delta.
x*delta.
theta;
const char *const *argv double delta
point< T > min(const point< T > &p1, const point< T > &p2)
double sampleUniformDouble(double min, double max)
double evalGaussian(double sigmaSquare, double delta)
Gaussian3 computeGaussianFromSamples(PointIterator &pointBegin, PointIterator &pointEnd, WeightIterator &weightBegin, WeightIterator &weightEnd)
double sampleGaussian(double sigma, unsigned int S=0)
point< T > max(const point< T > &p1, const point< T > &p2)
Covariance3 operator+(const Covariance3 &cov) const
int sampleUniformInt(int max)
double evalLogGaussian(double sigmaSquare, double delta)
EigenCovariance3 covariance
orientedpoint< double, double > OrientedPoint