Christian Bauer [Mon, 31 Jul 2000 21:09:44 +0000 (21:09 +0000)]
- I'm fired. Fixed a really stupid bug in sr_gcd() which called
divide_in_z(r, foo) with "var+1" as its last parameter, while the main
variable x=*var usually appears in r. This should never have worked...
Richard Kreckel [Sat, 22 Jul 2000 04:47:04 +0000 (04:47 +0000)]
- Fixed the bug that broke xloop's po_redux.
- Interface Change: No argument 'bool branchcut' for series methods,
instead 'unsigned options'. Sorry.
: ----------------------------------------------------------------------
Richard Kreckel [Fri, 21 Jul 2000 01:12:25 +0000 (01:12 +0000)]
- Derivatives are now assembled in a slightly different manner (i.e. they
'look' different on first sight). Under certain circumstances this can
result in a dramatic speedup because it gives hashing a better chance,
especially when computing higher derivatives.
- Series expansion accepts an additional bool argument now, telling it
whether branch cuts are to be honored (as Maple does it) or not (as
Mathematica does it). It defaults to true (i.e. the Maple way).
- Many series expansions of built-in functions have been reengineered.
- The Dilogarithm (Li2) now has floating point evaluation, derivative and a
proper series expansion.
- Namespace 'std' cleanly disentangled, as demanded by ISO/EIC 14882-1998(E).
- Some helpers updated from upstream.
Richard Kreckel [Thu, 6 Jul 2000 23:34:42 +0000 (23:34 +0000)]
- Introduced derivative of Li2.
- Introduced nontrivial part of series expansion of Li2 around 0. (Read the
comments in the source to see why it's nontrivial!) Missing: the branch
point and cut.
Richard Kreckel [Thu, 15 Jun 2000 22:46:10 +0000 (22:46 +0000)]
- cint/*: Revamped the launch-scheme for ginaccint.bin. It must be done
by a binary executable and not by a script to ensure users can write
shebang-scripts.
- cint/*: Added a testsuite which hopefully passes (some lucky day).
- cint/ginaccint.bin: For this to work we needed a --silent command line
switch.
- configure.in, Makefile.am, cint/Makefile.am: account for new launchers.
- ginac/matrix.cpp, ginac/matrix.h: removed confusing ffe_get() and ffe_set()
routines since they counted the non-standard way.
- config.guess, config.sub: Updated to new versions from FSF.
- others files: Changes triggered.
Richard Kreckel [Mon, 5 Jun 2000 13:45:14 +0000 (13:45 +0000)]
- ginac/operators.cpp: added some missing debugmsg()'s, which would have
come in handy if they had been around before Cint's show-stopper bug. ;-)
- INSTALL, cint/ginaccint.bin.cpp: Updated Cint-copyright.
- ginac/*: deleted some #ifdef CINT_CONVERSION_WORKAROUND's.
Richard Kreckel [Thu, 18 May 2000 14:14:21 +0000 (14:14 +0000)]
- Bumped up version to 0.6.1, incremented binary- and interface-age.
- Added a word of warning for --with-cint and GCC-2.95.x. (The conversion
discards qualifier fiasco in Cint.)
Alexander Frink [Tue, 16 May 2000 19:57:43 +0000 (19:57 +0000)]
Support for cint versions older than 5.14.38 is discontinued.
Beginning with 5.14.38 namespaces seem to work reasonably well
so that it is no longer necessary to compile two separate libginacs.
Overloading resolution has been fixed in 5.14.37 so that the
declarations in dummies.* are no longer needed. libginac can now
be compiled without -D NO_NAMESPACE_GINAC and -D CINT_CONVERSION_WORKAROUND.
Alexander Frink [Wed, 10 May 2000 23:03:35 +0000 (23:03 +0000)]
enhanced ginaccint.bin.cpp (help, read from file, save commands)
removed necessity for dummies.h for cint >= 5.14.37
some modifications for future cint-versions which will support namespaces (hopefully)
Richard Kreckel [Thu, 20 Apr 2000 04:16:23 +0000 (04:16 +0000)]
- expairseq.cpp: moved expairseq::to_rational to...
- ...normal.cpp.
- included new method matrix::determinant_bareiss, which doesn't rely on GCDs.
- log_series now honors the branch cut.
Richard Kreckel [Thu, 20 Apr 2000 04:13:55 +0000 (04:13 +0000)]
- Timings D and E: finer time resolution
- Timings P, P', Q, Q': construct matrix with some loops instead of reading
it from a const ex[][]. time_lw_w101n.h is not needed any more.
- check_matrices.cpp: check the new fraction free determinant.
Christian Bauer [Thu, 20 Apr 2000 00:41:36 +0000 (00:41 +0000)]
- fixed a typo
- divide(0, something) now succeeds (quotient = 0)
- gcd(): variables are ordered by their maximum degree in the two polynomials,
not the minimum
- implemented eu_gcd(), euprem_gcd(), peu_gcd() and red_gcd() (for testing)
- fixed numeric::to_rational (dropped denominator)
Christian Bauer [Fri, 7 Apr 2000 20:28:13 +0000 (20:28 +0000)]
- extended the "Algorithms" chapter which has been renamed to "Methods and
Functions"
- added a section about lists (class lst) to the "Basic Concepts" chapter
Christian Bauer [Thu, 6 Apr 2000 19:58:15 +0000 (19:58 +0000)]
- added ex::to_rational() to convert general expression to rational expression
by replacing all non-rational parts with temporary symbols, e.g.:
ex a = pow(sin(x), 2) - pow(cos(x), 2);
ex b = sin(x) + cos(x);
ex d;
lst l;
divide(a.to_rational(l), b.to_rational(l), d);
cout << d.subs(l) << endl;
will print "sin(x)-cos(x)"
Christian Bauer [Wed, 5 Apr 2000 21:00:52 +0000 (21:00 +0000)]
- streamlined the code in numeric::numeric(archive_node &) and numeric::archive()
with respect to sstream vs. strstream (avoided unnecessary code duplication)
Christian Bauer [Wed, 5 Apr 2000 19:30:47 +0000 (19:30 +0000)]
- changed comment starter from # to //
- implemented #b, #o, #x and #nR prefixes for binary, octal, hexadecimal, and
base-n integers
- added iprint() command for decimal, octal, and hexadecimal output of integers
- updated man page
Christian Bauer [Fri, 31 Mar 2000 03:48:28 +0000 (03:48 +0000)]
- the ex stream >> operator is gone
- added a new ex constructor ex(string, ex) instead; use as follows:
symbol x("x"), y("y");
ex e("Pi*(4*x^2+y)^10", lst(x, y));
or, for interactive input:
symbol x("x");
string s;
cout << "Input something (may contain 'x'): ";
getline(cin, s);
try {
e = ex(s, lst(x));
cout << "You entered " << e << endl;
cout << "e.diff(x) = " << e.diff(x) << endl;
} catch (exception &c) {
cerr << c.what() << endl;
}
- symbols not specified in the list in the second argument to ex(string, ex)
but encountered in the input expression will throw an exception
Richard Kreckel [Thu, 30 Mar 2000 00:09:13 +0000 (00:09 +0000)]
- dramatic speedup for characteristic polynomials of numerical matrices.
- speedup for matrix multiplication of somewhat sparse matrices.
- gamma -> Euler (sorry 4 that, again).
- two new tests (Q and Q') from Lewis' and Wester's testsuite.
- fixed compilation desaster in timing M1 by using the new parser.
- had a glass of beer.
Christian Bauer [Wed, 29 Mar 2000 20:20:12 +0000 (20:20 +0000)]
- expressions can now be read from streams; the input expression can contain
a list of predefined symbols to be used, before reading (and overwriting)
the expression, e.g:
symbol x("x"), y("y");
e = lst(x, y);
cout << "Enter an expression containing 'x' and 'y': ";
try {
cin >> e;
} catch (exception &e) {
cerr << e.what() << endl;
}
cout << "You entered " << e << endl;
cout << "de/dx = " << e.diff(x) << endl;
cout << "de/dy = " << e.diff(y) << endl;