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,
template <
typename >
class IApproximationPolicy = ExactPolicy >
66 class CNFWriter:
public BNWriter< GUM_SCALAR >,
public IApproximationPolicy< GUM_SCALAR > {
81 ~CNFWriter() override;
92 void write(std::ostream& output,
const IBayesNet< GUM_SCALAR >& bn) override = 0;
102 void write(
const std::string& filePath,
const IBayesNet< GUM_SCALAR >& bn) override = 0;
104 inline GUM_SCALAR fromExact(
const GUM_SCALAR& value)
const override {
105 return IApproximationPolicy< GUM_SCALAR >::fromExact(value);
110 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 111 extern template class CNFWriter<
double >;
116 #include <agrum/BN/io/cnf/CNFWriter_tpl.h>