multiple interfaces: Though real GiNaC programs have to be written in
some editor, then be compiled, linked and executed, there are more ways
to work with the GiNaC engine. Many people want to play with
-expressions interactively, as in traditional CASs. Currently, two such
-windows into GiNaC have been implemented and many more are possible: the
-tiny @command{ginsh} that is part of the distribution exposes GiNaC's
-types to a command line and second, as a more consistent approach, an
-interactive interface to the Cint C++ interpreter has been put together
-(called GiNaC-cint) that allows an interactive scripting interface
-consistent with the C++ language. It is available from the usual GiNaC
-FTP-site.
+expressions interactively, as in traditional CASs: The tiny
+@command{ginsh} that comes with the distribution exposes many, but not
+all, of GiNaC's types to a command line.
@item
seamless integration: it is somewhere between difficult and impossible
}
}
-/** Create a dummy archive. The intention is to fill archive_node's default
- * ctor, which is currently a Cint-requirement. */
-archive* archive_node::dummy_ar_creator()
-{
- static archive* some_ar = new archive;
- return some_ar;
-}
-
} // namespace GiNaC
};
typedef std::vector<property>::const_iterator archive_node_cit;
- archive_node() : a(*dummy_ar_creator()), has_expression(false) {} // hack for cint which always requires a default constructor
archive_node(archive &ar) : a(ar), has_expression(false) {}
archive_node(archive &ar, const ex &expr);
void printraw(std::ostream &os) const;
private:
- static archive* dummy_ar_creator();
-
/** Reference to the archive to which this node belongs. */
archive &a;
#include "parser/parser.h"
#endif
-#ifdef __MAKECINT__
-#pragma link C++ nestedclass;
-#pragma link C++ nestedtypedef;
-#endif
-
#endif // ndef GINAC_H
#include "archive.h"
#include <cln/complex.h>
-#if defined(G__CINTVERSION) && !defined(__MAKECINT__)
-// Cint @$#$! doesn't like forward declaring classes used for casting operators
-// so we have to include the definition of cln::cl_N here, but it is enough to
-// do so for the compiler, hence the !defined(__MAKECINT__).
- #include <cln/complex_class.h>
-#endif
#include <stdexcept>
#include <vector>
} // namespace GiNaC
-#ifdef __MAKECINT__
-#pragma link off defined_in cln/number.h;
-#pragma link off defined_in cln/complex_class.h;
-#endif
-
#endif // ndef GINAC_NUMERIC_H