latex.h
1 #ifndef LATEX_H
2 #define LATEX_H
3 
4 #include <symengine/printers/strprinter.h>
5 
6 namespace SymEngine
7 {
8 
9 class LatexPrinter : public BaseVisitor<LatexPrinter, StrPrinter>
10 {
11 public:
12  using StrPrinter::bvisit;
13 
14  void bvisit(const Symbol &x);
15  void bvisit(const Rational &x);
16  void bvisit(const Complex &x);
17  void bvisit(const ComplexBase &x);
18  void bvisit(const ComplexDouble &x);
19 #ifdef HAVE_SYMENGINE_MPC
20  void bvisit(const ComplexMPC &x);
21 #endif
22  void bvisit(const Interval &x);
23  void bvisit(const Piecewise &x);
24  void bvisit(const EmptySet &x);
25  void bvisit(const Complexes &x);
26  void bvisit(const Reals &x);
27  void bvisit(const Rationals &x);
28  void bvisit(const Integers &x);
29  void bvisit(const Naturals &x);
30  void bvisit(const Naturals0 &x);
31  void bvisit(const FiniteSet &x);
32  void bvisit(const ConditionSet &x);
33  void bvisit(const Contains &x);
34  void bvisit(const BooleanAtom &x);
35  void bvisit(const And &x);
36  void bvisit(const Or &x);
37  void bvisit(const Xor &x);
38  void bvisit(const Not &x);
39  void bvisit(const Union &x);
40  void bvisit(const Intersection &x);
41  void bvisit(const Complement &x);
42  void bvisit(const ImageSet &x);
43  void bvisit(const Infty &x);
44  void bvisit(const NaN &x);
45  void bvisit(const Constant &x);
46  void bvisit(const Function &x);
47  void bvisit(const Abs &x);
48  void bvisit(const Floor &x);
49  void bvisit(const Ceiling &x);
50  void bvisit(const Derivative &x);
51  void bvisit(const Subs &x);
52  void bvisit(const Equality &x);
53  void bvisit(const Unequality &x);
54  void bvisit(const LessThan &x);
55  void bvisit(const StrictLessThan &x);
56  void bvisit(const Tuple &x);
57 
58 private:
59  static const std::vector<std::string> names_;
60 
61 protected:
62  void print_with_args(const Basic &x, const std::string &join,
64  std::string parenthesize(const std::string &expr) override;
65  void _print_pow(std::ostringstream &o, const RCP<const Basic> &a,
66  const RCP<const Basic> &b) override;
67  bool split_mul_coef() override;
68  std::string print_mul() override;
69  std::string print_div(const std::string &num, const std::string &den,
70  bool paren) override;
71 };
72 } // namespace SymEngine
73 
74 #endif // LATEX_H
The lowest unit of symbolic representation.
Definition: basic.h:97
ComplexBase Class for deriving all complex classes.
Definition: complex.h:16
Complex Double Class to hold std::complex<double> values.
Complex Class.
Definition: complex.h:33
Rational Class.
Definition: rational.h:16
Main namespace for SymEngine package.
Definition: add.cpp:19