1 #ifndef SYMENGINE_CODEGEN_H
2 #define SYMENGINE_CODEGEN_H
4 #include <symengine/printers.h>
6 #include <symengine/printers/strprinter.h>
7 #include <symengine/symengine_exception.h>
16 = CodePrinterPrecision::Double);
17 using StrPrinter::apply;
18 using StrPrinter::bvisit;
19 using StrPrinter::str_;
20 void bvisit(
const Basic &x);
22 void bvisit(
const Dummy &x);
27 void bvisit(
const And &x);
28 void bvisit(
const Or &x);
29 void bvisit(
const Xor &x);
30 void bvisit(
const Not &x);
35 void bvisit(
const Reals &x);
39 void bvisit(
const Abs &x);
42 void bvisit(
const Max &x);
43 void bvisit(
const Min &x);
45 void bvisit(
const NaN &x);
50 void bvisit(
const Sign &x);
54 void bvisit(
const Subs &x);
58 #ifdef HAVE_SYMENGINE_MPFR
63 CodePrinterPrecision precision_;
64 std::string print_scalar_literal(
double d)
const;
65 std::string print_math_function(
const std::string &name)
const;
72 = CodePrinterPrecision::Double);
73 using CodePrinter::apply;
74 using CodePrinter::bvisit;
75 using CodePrinter::str_;
76 void bvisit(
const Infty &x);
77 void _print_pow(std::ostringstream &o,
const RCP<const Basic> &a,
78 const RCP<const Basic> &b)
override;
85 = CodePrinterPrecision::Double);
86 using C89CodePrinter::apply;
87 using C89CodePrinter::bvisit;
88 using C89CodePrinter::str_;
89 void bvisit(
const Infty &x);
90 void _print_pow(std::ostringstream &o,
const RCP<const Basic> &a,
91 const RCP<const Basic> &b)
override;
92 void bvisit(
const Gamma &x);
100 = CodePrinterPrecision::Double);
101 using C99CodePrinter::apply;
102 using C99CodePrinter::bvisit;
103 using C99CodePrinter::str_;
106 void bvisit(
const NaN &x);
107 void bvisit(
const Infty &x);
113 using CodePrinter::apply;
114 using CodePrinter::bvisit;
115 using CodePrinter::str_;
117 void _print_pow(std::ostringstream &o,
const RCP<const Basic> &a,
118 const RCP<const Basic> &b)
override;
119 void bvisit(
const Abs &x);
120 void bvisit(
const Sin &x);
121 void bvisit(
const Cos &x);
122 void bvisit(
const Max &x);
123 void bvisit(
const Min &x);
The lowest unit of symbolic representation.
RealDouble Class to hold double values.
Main namespace for SymEngine package.