32 #ifndef GUM_CNF_WRITER_H 33 #define GUM_CNF_WRITER_H 40 #include <agrum/BN/io/BNWriter.h> 41 #include <agrum/agrum.h> 42 #include <agrum/tools/core/approximations/approximationPolicy.h> 43 #include <agrum/tools/core/hashTable.h> 49 #include <agrum/tools/core/approximations/exactPolicy.h> 65 template <
typename GUM_SCALAR,
66 template <
typename >
class IApproximationPolicy = ExactPolicy >
68 public BNWriter< GUM_SCALAR >,
69 public IApproximationPolicy< GUM_SCALAR > {
84 ~CNFWriter() override;
95 void write(std::ostream& output,
96 const IBayesNet< GUM_SCALAR >& bn) override = 0;
106 void write(
const std::string& filePath,
107 const IBayesNet< GUM_SCALAR >& bn) override = 0;
109 inline GUM_SCALAR fromExact(
const GUM_SCALAR& value)
const override {
110 return IApproximationPolicy< GUM_SCALAR >::fromExact(value);
115 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 116 extern template class CNFWriter<
double >;
121 #include <agrum/BN/io/cnf/CNFWriter_tpl.h>