|
GiNaC
1.6.2
|
Interface to sequences of expression pairs. More...
#include "expair.h"#include "indexed.h"#include <algorithm>#include <list>#include <memory>#include <vector>Go to the source code of this file.
Classes | |
| class | GiNaC::expairseq |
| A sequence of class expair. More... | |
| class | GiNaC::make_flat_inserter |
| Class to handle the renaming of dummy indices. More... | |
Namespaces | |
| namespace | GiNaC |
CRC32 hash function. | |
Defines | |
| #define | EXPAIRSEQ_USE_HASHTAB 0 |
| Using hash tables can potentially enhance the asymptotic behaviour of combining n terms into one large sum (or n terms into one large product) from O(n*log(n)) to about O(n). | |
Typedefs | |
| typedef std::vector< expair > | GiNaC::epvector |
| expair-vector | |
| typedef epvector::iterator | GiNaC::epp |
| expair-vector pointer | |
| typedef std::list< epp > | GiNaC::epplist |
| list of expair-vector pointers | |
| typedef std::vector< epplist > | GiNaC::epplistvector |
| vector of epplist | |
Functions | |
| epvector * | GiNaC::conjugateepvector (const epvector &) |
| Complex conjugate every element of an epvector. | |
Interface to sequences of expression pairs.
Definition in file expairseq.h.
| #define EXPAIRSEQ_USE_HASHTAB 0 |
Using hash tables can potentially enhance the asymptotic behaviour of combining n terms into one large sum (or n terms into one large product) from O(n*log(n)) to about O(n).
There are, however, several drawbacks. The constant in front of O(n) is quite large, when copying such an object one also has to copy the has table, comparison is quite expensive because there is no ordering any more, it doesn't help at all when combining two expairseqs because due to the presorted nature the behaviour would be O(n) anyways, the code is quite messy, etc, etc. The code is here as an example for following generations to tinker with.
Definition at line 46 of file expairseq.h.