* Interface to GiNaC's light-weight expression handles. */
/*
- * GiNaC Copyright (C) 1999-2006 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* @see utils.cpp */
class library_init {
+ static void init_unarchivers();
public:
library_init();
~library_init();
/** For construction of flyweights, etc. */
static library_init library_initializer;
-/** Rotate bits of unsigned value by one bit to the left.
- * This can be necesary if the user wants to define its own hashes. */
-inline unsigned rotate_left(unsigned n)
-{
- return (n & 0x80000000U) ? (n << 1 | 0x00000001U) : (n << 1);
-}
-
class scalar_products;
class const_iterator;
class const_preorder_iterator;
// pattern matching
bool has(const ex & pattern, unsigned options = 0) const { return bp->has(pattern, options); }
- bool find(const ex & pattern, lst & found) const;
+ bool find(const ex & pattern, exset& found) const;
bool match(const ex & pattern) const;
- bool match(const ex & pattern, lst & repl_lst) const { return bp->match(pattern, repl_lst); }
+ bool match(const ex & pattern, exmap & repls) const { return bp->match(pattern, repls); }
// substitutions
ex subs(const exmap & m, unsigned options = 0) const;
// noncommutativity
unsigned return_type() const { return bp->return_type(); }
- tinfo_t return_type_tinfo() const { return bp->return_type_tinfo(); }
+ return_type_t return_type_tinfo() const { return bp->return_type_tinfo(); }
unsigned gethash() const { return bp->gethash(); }
inline bool has(const ex & thisex, const ex & pattern, unsigned options = 0)
{ return thisex.has(pattern, options); }
-inline bool find(const ex & thisex, const ex & pattern, lst & found)
+inline bool find(const ex & thisex, const ex & pattern, exset& found)
{ return thisex.find(pattern, found); }
inline bool is_polynomial(const ex & thisex, const ex & vars)
inline ex series(const ex & thisex, const ex & r, int order, unsigned options = 0)
{ return thisex.series(r, order, options); }
-inline bool match(const ex & thisex, const ex & pattern, lst & repl_lst)
+inline bool match(const ex & thisex, const ex & pattern, exmap& repl_lst)
{ return thisex.match(pattern, repl_lst); }
inline ex simplify_indexed(const ex & thisex, unsigned options = 0)