[opengm] 06/386: add I/O for LPotts
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Aug 31 08:34:58 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/master
in repository opengm.
commit 4ac8ec206cd20e350208153437d617f2dda56388
Author: joergkappes <kappes at math.uni-heidelberg.de>
Date: Fri May 16 15:09:39 2014 +0200
add I/O for LPotts
---
include/opengm/functions/learnable/lpotts.hxx | 88 ++++++++++++++++-----------
1 file changed, 54 insertions(+), 34 deletions(-)
diff --git a/include/opengm/functions/learnable/lpotts.hxx b/include/opengm/functions/learnable/lpotts.hxx
index bb548cd..b923788 100644
--- a/include/opengm/functions/learnable/lpotts.hxx
+++ b/include/opengm/functions/learnable/lpotts.hxx
@@ -39,6 +39,11 @@ public:
const L numLabels,
const std::vector<size_t>& parameterIDs,
const std::vector<T>& feat
+ );
+ LPotts(
+ const L numLabels,
+ const std::vector<size_t>& parameterIDs,
+ const std::vector<T>& feat
);
L shape(const size_t) const;
size_t size() const;
@@ -46,6 +51,8 @@ public:
template<class ITERATOR> T operator()(ITERATOR) const;
// parameters
+ void setParameters(const Parameters<T,I>& parameters)
+ {parameters_ = ¶meters;}
size_t numberOfParameters()const
{return parameterIDs_.size();}
I parameterIndex(const size_t paramNumber) const
@@ -60,30 +67,9 @@ protected:
const std::vector<T> feat_;
- //friend class FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> > ;
+ friend class opengm::FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> > ;
};
- /*
-/// FunctionSerialization
-template<class T, class I, class L>
-class FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> > {
-public:
- typedef typename opengm::functions::learnable::LPotts<T, I, L>::ValueType ValueType;
- static size_t indexSequenceSize(const opengm::functions::learnable::LPotts<T, I, L>&);
- static size_t valueSequenceSize(const opengm::functions::learnable::LPotts<T, I, L>&);
- template<class INDEX_OUTPUT_ITERATOR, class VALUE_OUTPUT_ITERATOR>
- static void serialize(const opengm::functions::learnable::LPotts<T, I, L>&, INDEX_OUTPUT_ITERATOR, VALUE_OUTPUT_ITERATOR);
- template<class INDEX_INPUT_ITERATOR, class VALUE_INPUT_ITERATOR>
- static void deserialize( INDEX_INPUT_ITERATOR, VALUE_INPUT_ITERATOR, opengm::functions::learnable::LPotts<T, I, L>&);
-};
-
-template<class T, class I, class L>
-struct FunctionRegistration<opengm::functions::learnable::LPotts<T, I, L> > {
- enum ID {
- Id = opengm::FUNCTION_TYPE_ID_OFFSET + 100 + 65
- };
-};
- */
template <class T, class I, class L>
inline
@@ -99,6 +85,19 @@ LPotts<T, I, L>::LPotts
OPENGM_ASSERT( parameterIDs_.size()==feat_.size() );
}
+template <class T, class I, class L>
+inline
+LPotts<T, I, L>::LPotts
+(
+ const L numLabels,
+ const std::vector<size_t>& parameterIDs,
+ const std::vector<T>& feat
+ )
+ : numLabels_(numLabels), parameterIDs_(parameterIDs),feat_(feat)
+{
+ OPENGM_ASSERT( parameterIDs_.size()==feat_.size() );
+}
+
template <class T, class I, class L>
template <class ITERATOR>
@@ -150,14 +149,38 @@ LPotts<T, I, L>::size() const {
return numLabels_*numLabels_;
}
- /*
+} // namespace learnable
+} // namespace functions
+
+
+/// FunctionSerialization
+template<class T, class I, class L>
+class FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> > {
+public:
+ typedef typename opengm::functions::learnable::LPotts<T, I, L>::ValueType ValueType;
+
+ static size_t indexSequenceSize(const opengm::functions::learnable::LPotts<T, I, L>&);
+ static size_t valueSequenceSize(const opengm::functions::learnable::LPotts<T, I, L>&);
+ template<class INDEX_OUTPUT_ITERATOR, class VALUE_OUTPUT_ITERATOR>
+ static void serialize(const opengm::functions::learnable::LPotts<T, I, L>&, INDEX_OUTPUT_ITERATOR, VALUE_OUTPUT_ITERATOR);
+ template<class INDEX_INPUT_ITERATOR, class VALUE_INPUT_ITERATOR>
+ static void deserialize( INDEX_INPUT_ITERATOR, VALUE_INPUT_ITERATOR, opengm::functions::learnable::LPotts<T, I, L>&);
+};
+
+template<class T, class I, class L>
+struct FunctionRegistration<opengm::functions::learnable::LPotts<T, I, L> > {
+ enum ID {
+ Id = opengm::FUNCTION_TYPE_ID_OFFSET + 100 + 65
+ };
+};
+
template<class T, class I, class L>
inline size_t
FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> >::indexSequenceSize
(
const opengm::functions::learnable::LPotts<T, I, L> & src
) {
- return 2+parameterIDs_.size();
+ return 2+src.parameterIDs_.size();
}
template<class T, class I, class L>
@@ -166,7 +189,7 @@ FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> >::valueSequ
(
const opengm::functions::learnable::LPotts<T, I, L> & src
) {
- return feat_.size();
+ return src.feat_.size();
}
template<class T, class I, class L>
@@ -182,12 +205,12 @@ FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> >::serialize
++indexOutIterator;
*indexOutIterator = src.feat_.size();
++indexOutIterator;
- for(size_t i=0; i<parameterIDs_.size();++i){
+ for(size_t i=0; i<src.parameterIDs_.size();++i){
*indexOutIterator = src.parameterIndex(i);
++indexOutIterator;
}
- for(size_t i=0; i<feat_.size();++i){
- *valueOutIterator = feat_[i];
+ for(size_t i=0; i<src.feat_.size();++i){
+ *valueOutIterator = src.feat_[i];
++valueOutIterator;
}
}
@@ -208,16 +231,13 @@ FunctionSerialization<opengm::functions::learnable::LPotts<T, I, L> >::deseriali
std::vector<size_t> id(numW);
for(size_t i=0; i<numW;++i){
feat[i]=*valueInIterator;
- id[i]=*indexIterator;
- ++indexIterator;
+ id[i]=*indexInIterator;
+ ++indexInIterator;
++valueInIterator;
}
- // dst=LPottsFunction<T, I, L>(shape1, shape2, param1, param2);
+ dst=opengm::functions::learnable::LPotts<T, I, L>(numL,id,feat);
}
-*/
-} // namespace learnable
-} // namespace functions
} // namespace opengm
#endif // #ifndef OPENGM_LEARNABLE_FUNCTION_HXX
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/opengm.git
More information about the debian-science-commits
mailing list