Boost logo

Boost Users :

Subject: Re: [Boost-users] How to Boost serialize a Eigen::Matrix class
From: Oswin Krause (Oswin.Krause_at_[hidden])
Date: 2012-09-27 07:50:20


Hi,

i directly linked to the example code in question where the
"non-intrusive" version was explained. You have to create a function
namespace boost::seialization with the following signature

namespace boost {
namespace serialization {

template<class Archives,class T unsigned size1, unsigned size2>
void serialize(Archive & ar, Eigen::Matrix<T, size1, size2> & g, const
unsigned int version)
{
     //Serialization code here
}

}
}

with the Eigen matrix type i am not sure since i don't use this
library. And i also don't know how the serialization code itself should
lool like - that's your work.

Greetings,
Oswin

On 2012-09-27 11:53, Dip Ghosh wrote:
> Hi Oswin,
> Thanks for your reply. I have seen the tutorial already. I am new to
> boost so I apologize in advance if my question is very basic. So
> shall
> I have to put the serialize part inside my Eigen::Matrix class to
> work
> ? or can I put it inside my class ? Can you give me a small example
> please or explain a bit ?
>
> Regards,
> Dip
>
> -------------------------
> FROM: Oswin Krause <Oswin.Krause_at_[hidden]>
> TO: boost-users_at_[hidden]
> SENT: Thursday, September 27, 2012 1:26 PM
> SUBJECT: Re: [Boost-users] How to Boost serialize a Eigen::Matrix
> class
>
> Hi,
>
> see the tutorials:
>
>
> http://www.boost.org/doc/libs/1_51_0/libs/serialization/doc/tutorial.html#nonintrusiveversion
>
> On 2012-09-27 08:35, Dip Ghosh wrote:
>> Hi,
>> I have used Eigen::Matrix class in my project. Now i wants to
>> serialize the value of it through Boost::Serialize. Can someone help
>> me on how to achieve that.
>>
>> My class is following,
>>
>> class RandomNode {
>> private:
>> friend class boost::serialization::access;
>> template<class Archive>
>> void serialize(Archive & ar, const unsigned int version)
>> {
>> ar & is_leaf_;
>> ar & depth_;
>> ar & num_classes_;
>> ar & num_features_;
>> // Split node members
>> ar & random_feature_indices_;
>> ar & random_feature_weights_;
>> ar & threshold_;
>> ar & leftChild_;
>> ar & rightChild_;
>>
>> }
>> bool is_leaf_;
>> int depth_;
>> int num_classes_;
>> int num_features_;
>>
>> // Split node members
>> VectorXi random_feature_indices_;
>> VectorXd random_feature_weights_;
>> double threshold_;
>> RandomNode* leftChild_;
>> RandomNode* rightChild_;
>> // Methods and so on
>> }
>>
>> And i am getting the following error :
>>
>> /usr/include/boost/serialization/access.hpp:118:9: error: ‘class
>> Eigen::Matrix<double, 10000, 1>’ has no member named
> ‘serialize’
>>
>> thanks in advance.
>>
>> Regards,
>> Dip
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden] [1]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
>
> Links:
> ------
> [1] mailto:Boost-users_at_[hidden]


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net