[GiNaC-devel] Print function for user-defined function

Jan private jrheinlaender at gmx.de
Tue Sep 28 09:31:24 CEST 2010


Hello,

I did this (code shortened to what is interesting):

class imathprint : public print_dflt {
  GINAC_DECLARE_PRINT_CONTEXT(imathprint, print_dflt)
public:
  optstack* poptions; // imathprint-specific print options
  imathprint(std::ostream & os, optstack* popt, unsigned opt = 0) : 
    print_dflt(os, opt), poptions(popt) {};
  static void init();
};

DECLARE_FUNCTION_3P(partialdiff)
static void partialdiff_print_imath(..., const imathprint &c) {}
static void partialdiff_print_ltx(..., const print_context &c) {}

REGISTER_FUNCTION(partialdiff, ...
  print_func<print_latex>(&partialdiff_print_ltx).
  print_func<imathprint>(&partialdiff_print_imath).
  ...);

This gives me an error

func.cpp:1310: error: no matching function for call to
‘GiNaC::function_options::print_func(void (*)(const GiNaC::ex&, const
GiNaC::ex&, const GiNaC::ex&, const imathprint&))

But doing the same kind of thing in
GINAC_IMPLEMENT_REGISTERED_CLASS_OPT
works!

What I am trying to do is to create an extended print context imathprint
which has more options and also options of non-integer type.

Any better ideas?

Thank you,
	Jan





More information about the GiNaC-devel mailing list