* after which e should be just a1^2. */
/*
- * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2004 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
unsigned result = 0;
// create a vector of size symbols named "a0", "a1", ...
vector<symbol> a;
+ ex e;
for (unsigned i=0; i<size; ++i) {
- char buf[4];
- ostrstream(buf,sizeof(buf)) << i << ends;
- a.push_back(symbol(string("a")+buf));
+ ostringstream buf;
+ buf << "a" << i << ends;
+ a.push_back(symbol(buf.str()));
+ e += a[i];
}
- ex e, aux;
-
- for (unsigned i=0; i<size; ++i)
- e = e + a[i];
+ ex aux;
// prepare aux so it will swallow anything but a1^2:
aux = -e + a[0] + a[1];
- e = pow(e,2).expand().subs(a[0]==aux).expand();
+ e = pow(e,2).expand().subs(a[0]==aux, subs_options::no_pattern).expand();
if (e != pow(a[1],2)) {
clog << "Denny Fliegner's quick consistency check erroneously returned "
- << e << "." << endl;
+ << e << "." << endl;
++result;
}
return result;
}
-unsigned time_dennyfliegner(void)
+unsigned time_dennyfliegner()
{
unsigned result = 0;
vector<double> times;
timer breitling;
- sizes.push_back(25);
sizes.push_back(50);
sizes.push_back(100);
sizes.push_back(200);
+ sizes.push_back(400);
for (vector<unsigned>::iterator i=sizes.begin(); i!=sizes.end(); ++i) {
breitling.start();