* Implementation of sequences of expression pairs. */
/*
- * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2011 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
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <iostream>
-#include <algorithm>
-#include <string>
-#include <stdexcept>
-#include <iterator>
-
#include "expairseq.h"
#include "lst.h"
#include "add.h"
#include "archive.h"
#include "operators.h"
#include "utils.h"
+#include "hash_seed.h"
#include "indexed.h"
+#include <algorithm>
#if EXPAIRSEQ_USE_HASHTAB
#include <cmath>
#endif // EXPAIRSEQ_USE_HASHTAB
+#include <iostream>
+#include <iterator>
+#include <stdexcept>
+#include <string>
namespace GiNaC {
return *this;
}
ex result = thisexpairseq(newepv ? *newepv : seq, x);
- if (newepv) {
- delete newepv;
- }
+ delete newepv;
return result;
}
unsigned expairseq::calchash() const
{
- const void* this_tinfo = (const void*)typeid(*this).name();
- unsigned v = golden_ratio_hash((p_int)this_tinfo);
+ unsigned v = make_hash_seed(typeid(*this));
epvector::const_iterator i = seq.begin();
const epvector::const_iterator end = seq.end();
while (i != end) {