11 #ifndef PRIMATOLOGIST_PROBA_PROBA_H
12 #define PRIMATOLOGIST_PROBA_PROBA_H
14 #include <cartodata/volume/volume.h>
21 double attenuate(
double proba,
float alpha,
int n );
23 template <
typename P,
typename M>
27 const carto::VolumeRef<M> & mask );
31 attenuate( carto::VolumeRef<P> & proba,
float alpha );
33 template <
typename P,
typename M>
37 const carto::VolumeRef<M> & mask );
41 newAttenuate(
const carto::VolumeRef<P> & proba,
float alpha );
43 template <
typename P,
typename M>
47 const carto::VolumeRef<M> & mask );
51 attenuateZ( carto::VolumeRef<P> & proba,
float alpha );
53 template <
typename P,
typename M>
57 const carto::VolumeRef<M> & mask );
61 newAttenuateZ(
const carto::VolumeRef<P> & proba,
float alpha );
65 template <
typename P,
typename M>
68 const carto::VolumeRef<M> & mask );
74 template <
typename P,
typename M>
77 const carto::VolumeRef<M> & mask );
86 template <
typename P,
typename I,
typename M,
typename Distrib>
88 pdf(
const std::vector<Distrib> & param,
89 const carto::VolumeRef<I> & values,
90 carto::VolumeRef<P> & output,
91 const carto::VolumeRef<M> & mask );
93 template <
typename P,
typename I,
typename Distrib>
95 pdf(
const std::vector<Distrib> & param,
96 const carto::VolumeRef<I> & values,
97 carto::VolumeRef<P> & output );
99 template <
typename P,
typename I,
typename M,
typename Distrib>
101 newPdf(
const std::vector<Distrib> & param,
102 const carto::VolumeRef<I> & values,
103 const carto::VolumeRef<M> & mask );
105 template <
typename P,
typename I,
typename Distrib>
107 newPdf(
const std::vector<Distrib> & param,
108 const carto::VolumeRef<I> & values );
112 template <
typename OP,
typename P1,
typename P2,
typename M>
113 carto::VolumeRef<OP> &
114 bayes(
const carto::VolumeRef<P1> & conditional,
115 const std::vector<P2> & prior,
116 carto::VolumeRef<OP> & output,
117 const carto::VolumeRef<M> & mask );
119 template <
typename OP,
typename P1,
typename P2>
120 carto::VolumeRef<OP> &
121 bayes(
const carto::VolumeRef<P1> & conditional,
122 const std::vector<P2> & prior,
123 carto::VolumeRef<OP> & output);
125 template <
typename OP,
typename P1,
typename P2,
typename M>
127 newBayes(
const carto::VolumeRef<P1> & conditional,
128 const std::vector<P2> & prior,
129 const carto::VolumeRef<M> & mask );
131 template <
typename OP,
typename P1,
typename P2>
133 newBayes(
const carto::VolumeRef<P1> & conditional,
134 const std::vector<P2> & prior );
138 template <
typename OP,
typename P1,
typename P2,
typename M>
139 carto::VolumeRef<OP> &
140 bayes(
const carto::VolumeRef<P1> & conditional,
141 const carto::VolumeRef<P2> & prior,
142 carto::VolumeRef<OP> & output,
143 const carto::VolumeRef<M> & mask );
145 template <
typename OP,
typename P1,
typename P2>
146 carto::VolumeRef<OP> &
147 bayes(
const carto::VolumeRef<P1> & conditional,
148 const carto::VolumeRef<P2> & prior,
149 carto::VolumeRef<OP> & output);
151 template <
typename OP,
typename P1,
typename P2,
typename M>
153 newBayes(
const carto::VolumeRef<P1> & conditional,
154 const carto::VolumeRef<P2> & prior,
155 const carto::VolumeRef<M> & mask );
157 template <
typename OP,
typename P1,
typename P2>
159 newBayes(
const carto::VolumeRef<P1> & conditional,
160 const carto::VolumeRef<P2> & prior );
164 template <
typename OP,
typename P1,
typename P2,
typename M>
165 carto::VolumeRef<OP> &
167 const carto::VolumeRef<P1> & conditional,
168 const std::vector<P2> & prior,
169 carto::VolumeRef<OP> & output,
170 const carto::VolumeRef<M> & mask );
172 template <
typename OP,
typename P1,
typename P2>
173 carto::VolumeRef<OP> &
175 const carto::VolumeRef<P1> & conditional,
176 const std::vector<P2> & prior,
177 carto::VolumeRef<OP> & output);
179 template <
typename OP,
typename P1,
typename P2,
typename M>
182 const carto::VolumeRef<P1> & conditional,
183 const std::vector<P2> & prior,
184 const carto::VolumeRef<M> & mask );
186 template <
typename OP,
typename P1,
typename P2>
189 const carto::VolumeRef<P1> & conditional,
190 const std::vector<P2> & prior );
194 template <
typename OP,
typename P1,
typename P2,
typename M>
195 carto::VolumeRef<OP> &
197 const carto::VolumeRef<P1> & conditional,
198 const carto::VolumeRef<P2> & prior,
199 carto::VolumeRef<OP> & output,
200 const carto::VolumeRef<M> & mask );
202 template <
typename OP,
typename P1,
typename P2>
203 carto::VolumeRef<OP> &
205 const carto::VolumeRef<P1> & conditional,
206 const carto::VolumeRef<P2> & prior,
207 carto::VolumeRef<OP> & output);
209 template <
typename OP,
typename P1,
typename P2,
typename M>
212 const carto::VolumeRef<P1> & conditional,
213 const carto::VolumeRef<P2> & prior,
214 const carto::VolumeRef<M> & mask );
216 template <
typename OP,
typename P1,
typename P2>
219 const carto::VolumeRef<P1> & conditional,
220 const carto::VolumeRef<P2> & prior );
224 template <
typename C,
typename P,
typename M>
225 carto::VolumeRef<C> &
227 carto::VolumeRef<C> & output,
228 const carto::VolumeRef<M> & mask );
230 template <
typename C,
typename P>
231 carto::VolumeRef<C> &
233 carto::VolumeRef<C> & output );
235 template <
typename C,
typename P,
typename M>
238 const carto::VolumeRef<M> & mask );
240 template <
typename C,
typename P>
246 template <
typename C,
typename P1,
typename P2,
typename M>
247 carto::VolumeRef<C> &
249 const carto::VolumeRef<P2> & prior,
250 carto::VolumeRef<C> & output,
251 const carto::VolumeRef<M> & mask );
253 template <
typename C,
typename P1,
typename P2>
254 carto::VolumeRef<C> &
256 const carto::VolumeRef<P2> & prior,
257 carto::VolumeRef<C> & output );
259 template <
typename C,
typename P1,
typename P2,
typename M>
262 const carto::VolumeRef<P2> & prior,
263 const carto::VolumeRef<M> & mask );
265 template <
typename C,
typename P1,
typename P2>
268 const carto::VolumeRef<P2> & prior );
272 template <
typename C,
typename P1,
typename P2,
typename M>
273 carto::VolumeRef<C> &
275 const carto::VolumeRef<P1> & conditional,
276 const carto::VolumeRef<P2> & prior,
277 carto::VolumeRef<C> & output,
278 const carto::VolumeRef<M> & mask );
280 template <
typename C,
typename P1,
typename P2>
281 carto::VolumeRef<C> &
283 const carto::VolumeRef<P1> & conditional,
284 const carto::VolumeRef<P2> & prior,
285 carto::VolumeRef<C> & output );
287 template <
typename C,
typename P1,
typename P2,
typename M>
290 const carto::VolumeRef<P1> & conditional,
291 const carto::VolumeRef<P2> & prior,
292 const carto::VolumeRef<M> & mask );
294 template <
typename C,
typename P1,
typename P2>
297 const carto::VolumeRef<P1> & conditional,
298 const carto::VolumeRef<P2> & prior );
302 template <
typename P,
typename M>
305 const carto::VolumeRef<M> & mask );
307 template <
typename P>
carto::VolumeRef< OP > newRobustBayes(int n_best, const carto::VolumeRef< P1 > &conditional, const std::vector< P2 > &prior, const carto::VolumeRef< M > &mask)
carto::VolumeRef< P > & normalize(carto::VolumeRef< P > &proba, const carto::VolumeRef< M > &mask)
double attenuate(double proba, float alpha, int n)
carto::VolumeRef< P > newPdf(const std::vector< Distrib > ¶m, const carto::VolumeRef< I > &values, const carto::VolumeRef< M > &mask)
double logLikelihoodSum(const carto::VolumeRef< P > &conditional, const carto::VolumeRef< M > &mask)
carto::VolumeRef< P > newNormalize(const carto::VolumeRef< P > &proba, const carto::VolumeRef< M > &mask)
carto::VolumeRef< P > newAttenuateZ(const carto::VolumeRef< P > &proba, float alpha, const carto::VolumeRef< M > &mask)
carto::VolumeRef< C > newRobustMaximumAPosteriori(int n_best, const carto::VolumeRef< P1 > &conditional, const carto::VolumeRef< P2 > &prior, const carto::VolumeRef< M > &mask)
carto::VolumeRef< P > newAttenuate(const carto::VolumeRef< P > &proba, float alpha, const carto::VolumeRef< M > &mask)
carto::VolumeRef< C > & maximumAPosteriori(const carto::VolumeRef< P1 > &conditional, const carto::VolumeRef< P2 > &prior, carto::VolumeRef< C > &output, const carto::VolumeRef< M > &mask)
carto::VolumeRef< P > & pdf(const std::vector< Distrib > ¶m, const carto::VolumeRef< I > &values, carto::VolumeRef< P > &output, const carto::VolumeRef< M > &mask)
carto::VolumeRef< C > newMaximumAPosteriori(const carto::VolumeRef< P1 > &conditional, const carto::VolumeRef< P2 > &prior, const carto::VolumeRef< M > &mask)
carto::VolumeRef< C > newMaximumLikelihood(const carto::VolumeRef< P > &proba, const carto::VolumeRef< M > &mask)
carto::VolumeRef< C > & robustMaximumAPosteriori(int n_best, const carto::VolumeRef< P1 > &conditional, const carto::VolumeRef< P2 > &prior, carto::VolumeRef< C > &output, const carto::VolumeRef< M > &mask)
carto::VolumeRef< OP > & robustBayes(int n_best, const carto::VolumeRef< P1 > &conditional, const std::vector< P2 > &prior, carto::VolumeRef< OP > &output, const carto::VolumeRef< M > &mask)
carto::VolumeRef< C > & maximumLikelihood(const carto::VolumeRef< P > &proba, carto::VolumeRef< C > &output, const carto::VolumeRef< M > &mask)
carto::VolumeRef< OP > newBayes(const carto::VolumeRef< P1 > &conditional, const std::vector< P2 > &prior, const carto::VolumeRef< M > &mask)
carto::VolumeRef< P > & attenuateZ(carto::VolumeRef< P > &proba, float alpha, const carto::VolumeRef< M > &mask)
carto::VolumeRef< OP > & bayes(const carto::VolumeRef< P1 > &conditional, const std::vector< P2 > &prior, carto::VolumeRef< OP > &output, const carto::VolumeRef< M > &mask)