conversions.h
Go to the documentation of this file.
00001 /************************************************************************
00002  *  Copyright (C) 2012 Eindhoven University of Technology (TU/e).       *
00003  *  All rights reserved.                                                *
00004  ************************************************************************
00005  *  Redistribution and use in source and binary forms, with or without  *
00006  *  modification, are permitted provided that the following conditions  *
00007  *  are met:                                                            *
00008  *                                                                      *
00009  *      1.  Redistributions of source code must retain the above        *
00010  *          copyright notice, this list of conditions and the following *
00011  *          disclaimer.                                                 *
00012  *                                                                      *
00013  *      2.  Redistributions in binary form must reproduce the above     *
00014  *          copyright notice, this list of conditions and the following *
00015  *          disclaimer in the documentation and/or other materials      *
00016  *          provided with the distribution.                             *
00017  *                                                                      *
00018  *  THIS SOFTWARE IS PROVIDED BY TU/e "AS IS" AND ANY EXPRESS OR        *
00019  *  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED      *
00020  *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  *
00021  *  ARE DISCLAIMED. IN NO EVENT SHALL TU/e OR CONTRIBUTORS BE LIABLE    *
00022  *  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR        *
00023  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT   *
00024  *  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;     *
00025  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF       *
00026  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT           *
00027  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE   *
00028  *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH    *
00029  *  DAMAGE.                                                             *
00030  *                                                                      *
00031  *  The views and conclusions contained in the software and             *
00032  *  documentation are those of the authors and should not be            *
00033  *  interpreted as representing official policies, either expressed or  *
00034  *  implied, of TU/e.                                                   *
00035  ************************************************************************/
00036 
00037 #ifndef PROBLIB_CONVERSIONS_H_
00038 #define PROBLIB_CONVERSIONS_H_
00039 
00040 #include "problib/PDF.h"
00041 
00042 #include "problib/pdfs/Gaussian.h"
00043 #include "problib/pdfs/Mixture.h"
00044 #include "problib/pdfs/Hybrid.h"
00045 #include "problib/pdfs/PMF.h"
00046 
00047 #include "problib/datatypes.h"
00048 
00049 namespace pbl {
00050 
00051 /* * * * * * * CONVERSION * * * * * * */
00052 
00058 void PDFtoMsg(const PDF& pdf, problib::PDF& msg);
00059 
00065 problib::PDF PDFtoMsg(const PDF& pdf);
00066 
00072 PDF* msgToPDF(const problib::PDF& msg);
00073 
00080 Gaussian* msgToGaussian(const problib::PDF& msg);
00081 
00088 Mixture* msgToMixture(const problib::PDF& msg);
00089 
00096 PMF* msgToPMF(const problib::PDF& msg);
00097 
00103 const Gaussian* PDFtoGaussian(const PDF& pdf);
00104 
00110 const Mixture* PDFtoMixture(const PDF& pdf);
00111 
00117 const Uniform* PDFtoUniform(const PDF& pdf);
00118 
00119 
00125 const PMF* PDFtoPMF(const PDF& pdf);
00126 
00127 /* * * * * * * OTHER * * * * * * */
00128 
00129 std::string typeToName(PDF::PDFType type);
00130 
00131 /* * * * * * * SERIALIZATION AND DESERIALIZATION * * * * * * */
00132 
00133 void serialize(const PDF& gauss, problib::PDF& msg);
00134 
00135 PDF* deserialize(const problib::PDF& msg, int type, int& i_data);
00136 
00137 void serialize_gaussian(const Gaussian& gauss, problib::PDF& msg);
00138 
00139 Gaussian* deserialize_gaussian(const problib::PDF& msg, int& i_data);
00140 
00141 void serialize_mixture(const Mixture& mix, problib::PDF& msg);
00142 
00143 Mixture* deserialize_mixture(const problib::PDF& msg, int& i_data);
00144 
00145 void serialize_uniform(const Uniform& uniform, problib::PDF& msg);
00146 
00147 Uniform* deserialize_uniform(const problib::PDF& msg, int& i_data);
00148 
00149 void serialize_hybrid(const Hybrid& hybrid, problib::PDF& msg);
00150 
00151 Hybrid *deserialize_hybrid(const problib::PDF& msg, int& i_data);
00152 
00153 void serialize_discrete(const PMF& pmf, problib::PDF& msg);
00154 
00155 PMF* deserialize_discrete(const problib::PDF& msg);
00156 
00157 PDF* deserialize_exact(const problib::PDF& msg);
00158 
00159 }
00160 
00161 #endif /* CONVERSIONS_H_ */


problib
Author(s): Sjoerd van den Dries
autogenerated on Tue Jan 7 2014 11:42:42