* Headers only include <iosfwd> from now on, since that contains all the
authorRichard Kreckel <Richard.Kreckel@uni-mainz.de>
Sat, 27 Oct 2001 20:18:51 +0000 (20:18 +0000)
committerRichard Kreckel <Richard.Kreckel@uni-mainz.de>
Sat, 27 Oct 2001 20:18:51 +0000 (20:18 +0000)
  necessary forward declarations without bringing in the whole big
  <iostream> header.

41 files changed:
INSTALL
check/checks.cpp
check/checks.h
check/exams.cpp
check/exams.h
check/genex.cpp
check/times.cpp
check/times.h
doc/tutorial/ginac.texi
ginac/Makefile.am
ginac/add.h
ginac/archive.h
ginac/basic.h
ginac/clifford.cpp
ginac/color.cpp
ginac/constant.cpp
ginac/ex.h
ginac/expair.cpp [new file with mode: 0644]
ginac/expair.h
ginac/expairseq.cpp
ginac/fail.cpp
ginac/fail.h
ginac/fderivative.cpp
ginac/function.pl
ginac/idx.cpp
ginac/indexed.cpp
ginac/matrix.cpp
ginac/mul.cpp
ginac/normal.cpp
ginac/operators.h
ginac/print.cpp [new file with mode: 0644]
ginac/print.h
ginac/pseries.cpp
ginac/relational.cpp
ginac/remember.h
ginac/structure.cpp
ginac/symmetry.cpp
ginac/tensor.cpp
ginac/wildcard.cpp
ginsh/ginsh.h
tools/viewgar.cpp

diff --git a/INSTALL b/INSTALL
index 721d6a2..d79649f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -91,7 +91,7 @@ a solution.  GCC-2.95.2 and earlier don't ship with this file.  A
 working implementation has been available since GCC-2.95.3.  GCC-3.0
 and later have an even better, fully standard-conforming
 implementation, by default.  If you are stuck with GCC-2.95.2 or
-earliear and you cannot upgrade your compiler we recommend obtaining
+earlier and you cannot upgrade your compiler we recommend obtaining
 the libstdc++-v2 <sstream> header written by Magnus Fromreide.  It was
 posted to the gcc-patches mailing list on November 21 2000:
 <http://gcc.gnu.org/ml/gcc-patches/2000-11/msg01152.html>.
index 6cfeaff..101ae01 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 #include <stdexcept>
-#include <iostream>
 #include <time.h>
 
 #include "checks.h"
index a9f2ba9..a705265 100644 (file)
 #ifndef CHECKS_H
 #define CHECKS_H
 
-// For rand() and friends:
-#include <stdlib.h>
-using namespace std;
+#include <iostream>
+
 #include "config.h"
 #include "ginac.h"
+using namespace std;
 using namespace GiNaC;
 
 // prototypes for the expression generating functions in:
index 4109774..a10d8e4 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 #include <stdexcept>
-#include <iostream>
 
 #include "exams.h"
 
index 1372cc3..593dd0c 100644 (file)
@@ -23,6 +23,7 @@
 #ifndef EXAMS_H
 #define EXAMS_H
 
+#include <iostream>
 #include "ginac.h"
 using namespace std;
 using namespace GiNaC;
index f4bffb1..8b2c9f5 100644 (file)
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-// For rand() and friends:
-#include <stdlib.h>
-
+#include <cstdlib>
 #include "ginac.h"
+using namespace std;
 using namespace GiNaC;
 
 /* Create a dense univariate random polynomial in x.
index 7b6858b..ef038f3 100644 (file)
@@ -21,8 +21,6 @@
  */
 
 #include <stdexcept>
-#include <iostream>
-
 #include "times.h"
 
 int main()
index d938d0b..5fa4ea6 100644 (file)
@@ -24,7 +24,8 @@
 #define CHECKS_H
 
 #include <sys/resource.h>
-#include <stdlib.h>
+#include <cstdlib>
+#include <iostream>
 #include <sstream>
 #include <vector>
 #include "config.h"
index 63e1376..94ec39e 100644 (file)
@@ -179,6 +179,7 @@ manipulations.  Here is how to generate and print a simple (and rather
 pointless) bivariate polynomial with some large coefficients:
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace std;
 using namespace GiNaC;
@@ -213,6 +214,7 @@ Next, there is a more meaningful C++ program that calls a function which
 generates Hermite polynomials in a specified free variable.
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace std;
 using namespace GiNaC;
@@ -364,6 +366,9 @@ lambda^2-3*lambda+11
 [[1,1],[2,-1]]+2*[[1,3],[-3,2]]
 > evalm(");
 [[3,7],[-4,3]]
+> B = [ [0, 0, a], [b, 1, -b], [-1/a, 0, 0] ];
+> evalm(B^(2^12345));
+[[1,0,0],[0,1,0],[0,0,1]]
 @end example
 
 Multivariate polynomials and rational functions may be expanded,
@@ -913,6 +918,7 @@ It uses construction from C-integer, construction of fractions from two
 integers, construction from C-float and construction from a string:
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace GiNaC;
 
@@ -951,6 +957,7 @@ then on will be stored with a precision matching that number of decimal
 digits:
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace std;
 using namespace GiNaC;
@@ -1002,6 +1009,7 @@ As an example, let's construct some rational number, multiply it with
 some multiple of its denominator and test what comes out:
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace std;
 using namespace GiNaC;
@@ -1527,6 +1535,7 @@ not visible in the output.
 A simple example shall illustrate the concepts:
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace std;
 using namespace GiNaC;
@@ -3448,11 +3457,6 @@ An application is illustrated in the next example, where a multivariate
 polynomial is analyzed:
 
 @example
-#include <ginac/ginac.h>
-using namespace std;
-using namespace GiNaC;
-
-int main()
 @{
     symbol x("x"), y("y");
     ex PolyInp = 4*pow(x,3)*y + 5*x*pow(y,2) + 3*y
@@ -3662,13 +3666,9 @@ symbols afterwards. This algorithm is also available as a separate method
 @code{.to_rational()}, described below.
 
 This means that both expressions @code{t1} and @code{t2} are indeed
-simplified in this little program:
+simplified in this little code snippet:
 
 @example
-#include <ginac/ginac.h>
-using namespace GiNaC;
-
-int main()
 @{
     symbol x("x");
     ex t1 = (pow(x,2) + 2*x + 1)/(x + 1);
@@ -3753,17 +3753,16 @@ polynomial (class @code{add}) knows that its derivative is the sum of
 the derivatives of all the monomials:
 
 @example
-#include <ginac/ginac.h>
-using namespace GiNaC;
-
-int main()
 @{
     symbol x("x"), y("y"), z("z");
     ex P = pow(x, 5) + pow(x, 2) + y;
 
-    cout << P.diff(x,2) << endl;  // 20*x^3 + 2
+    cout << P.diff(x,2) << endl;
+     // -> 20*x^3 + 2
     cout << P.diff(y) << endl;    // 1
+     // -> 1
     cout << P.diff(z) << endl;    // 0
+     // -> 0
 @}
 @end example
 
@@ -5281,6 +5280,7 @@ no copying process is involved. Instead, the copying takes place as soon
 as you try to change the second.  Consider the simple sequence of code:
 
 @example
+#include <iostream>
 #include <ginac/ginac.h>
 using namespace std;
 using namespace GiNaC;
@@ -5313,11 +5313,6 @@ differentiation using the chain-rule should make clear how powerful this
 can be:
 
 @example
-#include <ginac/ginac.h>
-using namespace std;
-using namespace GiNaC;
-
-int main()
 @{
     symbol x("x"), y("y");
 
index 2f2fed0..f0896bd 100644 (file)
@@ -2,13 +2,13 @@
 
 lib_LTLIBRARIES = libginac.la
 libginac_la_SOURCES = add.cpp archive.cpp basic.cpp constant.cpp ex.cpp \
-  expairseq.cpp exprseq.cpp fail.cpp function.cpp inifcns.cpp \
+  expair.cpp expairseq.cpp exprseq.cpp fail.cpp function.cpp inifcns.cpp \
   inifcns_trans.cpp inifcns_zeta.cpp inifcns_gamma.cpp matrix.cpp mul.cpp \
   normal.cpp numeric.cpp operators.cpp power.cpp registrar.cpp relational.cpp \
   symbol.cpp pseries.cpp utils.cpp ncmul.cpp structure.cpp exprseq_suppl.cpp \
   lst.cpp lst_suppl.cpp input_parser.yy input_lexer.ll input_lexer.h \
   remember.h remember.cpp utils.h idx.cpp indexed.cpp tensor.cpp color.cpp \
-  clifford.cpp wildcard.cpp symmetry.cpp fderivative.cpp tostring.h
+  clifford.cpp wildcard.cpp print.cpp symmetry.cpp fderivative.cpp tostring.h
 libginac_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
   -release $(LT_RELEASE)
 ginacincludedir = $(includedir)/ginac
index 7400056..94d5c8e 100644 (file)
@@ -33,7 +33,6 @@ class add : public expairseq
        GINAC_DECLARE_REGISTERED_CLASS(add, expairseq)
        
        friend class mul;
-       friend class ncmul;
        friend class power;
        
        // other constructors
index 012086b..b607439 100644 (file)
@@ -25,9 +25,9 @@
 
 #include "ex.h"
 
+#include <iosfwd>
 #include <string>
 #include <vector>
-#include <iostream>
 
 namespace GiNaC {
 
index e5c3069..6320e07 100644 (file)
@@ -23,9 +23,7 @@
 #ifndef __GINAC_BASIC_H__
 #define __GINAC_BASIC_H__
 
-#include <iostream>
 #include <vector>
-
 // CINT needs <algorithm> to work properly with <vector>
 #include <algorithm>
 
index 11f84d0..b8083e8 100644 (file)
@@ -20,6 +20,9 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
+#include <stdexcept>
+
 #include "clifford.h"
 #include "ex.h"
 #include "idx.h"
@@ -34,8 +37,6 @@
 #include "archive.h"
 #include "utils.h"
 
-#include <stdexcept>
-
 namespace GiNaC {
 
 GINAC_IMPLEMENT_REGISTERED_CLASS(clifford, indexed)
index dd8ee18..2459a2d 100644 (file)
@@ -20,7 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <algorithm>
+#include <iostream>
 #include <stdexcept>
 
 #include "color.h"
index d6c0740..0cf7c77 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <string>
 #include <stdexcept>
+#include <iostream>
 
 #include "constant.h"
 #include "numeric.h"
index c76290f..0bbe129 100644 (file)
 #ifndef __GINAC_EX_H__
 #define __GINAC_EX_H__
 
+#include <iosfwd>
+#include <functional>
+
 #include "basic.h"
 #include "operators.h"
 
-#include <functional>
-
 namespace GiNaC {
 
 /** Helper class to initialize the library.  There must be one static object
diff --git a/ginac/expair.cpp b/ginac/expair.cpp
new file mode 100644 (file)
index 0000000..61d8e26
--- /dev/null
@@ -0,0 +1,37 @@
+/** @file expair.cpp
+ *
+ *  Implementation of expression pairs (building blocks of expairseq). */
+
+/*
+ *  GiNaC Copyright (C) 1999-2001 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
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <iostream>
+
+#include "expair.h"
+
+namespace GiNaC {
+
+void expair::print(std::ostream & os) const
+{
+       os << "expair:";
+       print_tree c(os);
+       rest.print(c, c.delta_indent);
+       coeff.print(c, c.delta_indent);
+}
+
+} // namespace GiNaC
index d7a76ca..3a6c01c 100644 (file)
@@ -82,13 +82,7 @@ public:
                        return coeff.compare(other.coeff);
        }
        
-       void print(std::ostream & os) const
-       {
-               os << "expair:";
-               print_tree c(os);
-               rest.print(c, c.delta_indent);
-               coeff.print(c, c.delta_indent);
-       }
+       void print(std::ostream & os) const;
        
        /** True if this is of the form (numeric,ex(1)). */
        bool is_canonical_numeric(void) const
index f035653..fee2665 100644 (file)
@@ -20,6 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <algorithm>
 #include <string>
 #include <stdexcept>
@@ -1056,7 +1057,7 @@ void expairseq::make_flat(const epvector &v)
 /** Brings this expairseq into a sorted (canonical) form. */
 void expairseq::canonicalize(void)
 {
-       sort(seq.begin(), seq.end(), expair_is_less());
+       std::sort(seq.begin(), seq.end(), expair_is_less());
 }
 
 
index bbbff1b..da00eec 100644 (file)
@@ -1,7 +1,7 @@
 /** @file fail.cpp
  *
- *  Implementation of class signaling failure of operation. Considered obsolete
- *  (all of this is replaced by exceptions). */
+ *  Implementation of class signaling failure of operation. Considered
+ *  somewhat obsolete (most of this can be replaced by exceptions). */
 
 /*
  *  GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany
@@ -21,6 +21,8 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
+
 #include "fail.h"
 #include "print.h"
 #include "archive.h"
index 3c51479..125788d 100644 (file)
@@ -1,7 +1,7 @@
 /** @file fail.h
  *
  *  Interface to class signaling failure of operation. Considered obsolete
- *  (all of this is replaced by exceptions). */
+ *  somewhat obsolete (most of this can be replaced by exceptions). */
 
 /*
  *  GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany
index cefa165..57f4ed7 100644 (file)
@@ -20,6 +20,8 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
+
 #include "fderivative.h"
 #include "print.h"
 #include "archive.h"
index ad77345..962b17e 100755 (executable)
@@ -425,6 +425,7 @@ $implementation=<<END_OF_IMPLEMENTATION;
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <string>
 #include <stdexcept>
 #include <list>
index be1d948..7475402 100644 (file)
@@ -20,8 +20,8 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <stdexcept>
-#include <algorithm>
 
 #include "idx.h"
 #include "symbol.h"
index a89fb10..bc474f3 100644 (file)
@@ -20,8 +20,8 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <stdexcept>
-#include <algorithm>
 
 #include "indexed.h"
 #include "idx.h"
index 8afa7b5..3d735fe 100644 (file)
@@ -20,6 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <algorithm>
 #include <map>
 #include <stdexcept>
@@ -776,7 +777,7 @@ ex matrix::determinant(unsigned algo) const
                                                ++acc;
                                c_zeros.push_back(uintpair(acc,c));
                        }
-                       sort(c_zeros.begin(),c_zeros.end());
+                       std::sort(c_zeros.begin(),c_zeros.end());
                        std::vector<unsigned> pre_sort;
                        for (std::vector<uintpair>::const_iterator i=c_zeros.begin(); i!=c_zeros.end(); ++i)
                                pre_sort.push_back(i->second);
index 83bebb2..065455e 100644 (file)
@@ -20,6 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <vector>
 #include <stdexcept>
 
index f123be2..4e2feb3 100644 (file)
@@ -74,10 +74,10 @@ static int heur_gcd_failed = 0;
 static struct _stat_print {
        _stat_print() {}
        ~_stat_print() {
-               cout << "gcd() called " << gcd_called << " times\n";
-               cout << "sr_gcd() called " << sr_gcd_called << " times\n";
-               cout << "heur_gcd() called " << heur_gcd_called << " times\n";
-               cout << "heur_gcd() failed " << heur_gcd_failed << " times\n";
+               std::cout << "gcd() called " << gcd_called << " times\n";
+               std::cout << "sr_gcd() called " << sr_gcd_called << " times\n";
+               std::cout << "heur_gcd() called " << heur_gcd_called << " times\n";
+               std::cout << "heur_gcd() failed " << heur_gcd_failed << " times\n";
        }
 } stat_print;
 #endif
index 22d8937..7805e88 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef __GINAC_OPERATORS_H__
 #define __GINAC_OPERATORS_H__
 
-#include <iostream>
+#include <iosfwd>
 
 namespace GiNaC {
 
diff --git a/ginac/print.cpp b/ginac/print.cpp
new file mode 100644 (file)
index 0000000..bd365cf
--- /dev/null
@@ -0,0 +1,64 @@
+/** @file print.cpp
+ *
+ *  Implementation of helper classes for expression output. */
+
+/*
+ *  GiNaC Copyright (C) 1999-2001 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
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <iostream>
+
+#include "print.h"
+
+namespace GiNaC {
+
+print_context::print_context()
+       : s(std::cout) {}
+print_context::print_context(std::ostream & os)
+       : s(os) {}
+
+print_latex::print_latex()
+       : print_context(std::cout) {}
+print_latex::print_latex(std::ostream & os)
+       : print_context(os) {}
+
+print_tree::print_tree(unsigned d)
+       : print_context(std::cout), delta_indent(d) {}
+print_tree::print_tree(std::ostream & os, unsigned d)
+       : print_context(os), delta_indent(d) {}
+
+print_csrc::print_csrc()
+       : print_context(std::cout) {}
+print_csrc::print_csrc(std::ostream & os)
+       : print_context(os) {}
+
+print_csrc_float::print_csrc_float()
+       : print_csrc(std::cout) {}
+print_csrc_float::print_csrc_float(std::ostream & os)
+       : print_csrc(os) {}
+
+print_csrc_double::print_csrc_double()
+       : print_csrc(std::cout) {}
+print_csrc_double::print_csrc_double(std::ostream & os)
+       : print_csrc(os) {}
+
+print_csrc_cl_N::print_csrc_cl_N()
+       : print_csrc(std::cout) {}
+print_csrc_cl_N::print_csrc_cl_N(std::ostream & os)
+       : print_csrc(os) {}
+
+} // namespace GiNaC
index e32238d..1d99639 100644 (file)
@@ -1,6 +1,6 @@
 /** @file print.h
  *
- *  Helper classes for expression output. */
+ *  Definition of helper classes for expression output. */
 
 /*
  *  GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany
@@ -23,7 +23,7 @@
 #ifndef __GINAC_PRINT_H__
 #define __GINAC_PRINT_H__
 
-#include <iostream>
+#include <iosfwd>
 #include <string>
 
 namespace GiNaC {
@@ -32,9 +32,11 @@ namespace GiNaC {
 class print_context
 {
 public:
-       print_context(std::ostream & os = std::cout) : s(os) {}
-       std::ostream & s; /**< stream to output to */
+       print_context();
+       print_context(std::ostream &);
 
+       std::ostream & s; /**< stream to output to */
+private:
        // dummy virtual function to make the class polymorphic
        virtual void dummy(void) {}
 };
@@ -43,49 +45,49 @@ public:
 class print_latex : public print_context
 {
 public:
-       print_latex(std::ostream & os = std::cout)
-         : print_context(os) {}
+       print_latex();
+       print_latex(std::ostream &);
 };
 
 /** Context for tree-like output for debugging. */
 class print_tree : public print_context
 {
 public:
-       print_tree(std::ostream & os = std::cout, unsigned d = 4)
-         : print_context(os), delta_indent(d) {}
-       unsigned delta_indent; /**< size of indentation step */
+       print_tree(unsigned d = 4);
+       print_tree(std::ostream &, unsigned d = 4);
+       const unsigned delta_indent; /**< size of indentation step */
 };
 
 /** Base context for C source output. */
 class print_csrc : public print_context
 {
 public:
-       print_csrc(std::ostream & os = std::cout)
-         : print_context(os) {}
+       print_csrc();
+       print_csrc(std::ostream &);
 };
 
 /** Context for C source output using float numbers. */
 class print_csrc_float : public print_csrc
 {
 public:
-       print_csrc_float(std::ostream & os = std::cout)
-         : print_csrc(os) {}
+       print_csrc_float();
+       print_csrc_float(std::ostream &);
 };
 
 /** Context for C source output using double numbers. */
 class print_csrc_double : public print_csrc
 {
 public:
-       print_csrc_double(std::ostream & os = std::cout)
-         : print_csrc(os) {}
+       print_csrc_double();
+       print_csrc_double(std::ostream &);
 };
 
 /** Context for C source output using CLN numbers. */
 class print_csrc_cl_N : public print_csrc
 {
 public:
-       print_csrc_cl_N(std::ostream & os = std::cout)
-         : print_csrc(os) {}
+       print_csrc_cl_N();
+       print_csrc_cl_N(std::ostream &);
 };
 
 /** Check if obj is a T, including base classes. */
index 5090526..8043382 100644 (file)
@@ -21,6 +21,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <stdexcept>
 
 #include "pseries.h"
index 0b80746..d0beb95 100644 (file)
@@ -20,6 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <stdexcept>
 
 #include "relational.h"
index f9f1254..2df5f8d 100644 (file)
@@ -24,6 +24,7 @@
 #ifndef __GINAC_REMEMBER_H__
 #define __GINAC_REMEMBER_H__
 
+#include <iosfwd>
 #include <vector>
 #include <list>
 
index d2edaf8..1122c21 100644 (file)
@@ -20,6 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <string>
 
 #include "structure.h"
index 1deb1cf..ef4278a 100644 (file)
@@ -20,9 +20,9 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <stdexcept>
 #include <functional>
-#include <algorithm>
 
 #include "symmetry.h"
 #include "lst.h"
index 7ab2ef9..9db3635 100644 (file)
@@ -20,6 +20,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
 #include <stdexcept>
 #include <vector>
 
index c653d83..37e23e9 100644 (file)
@@ -20,6 +20,8 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <iostream>
+
 #include "wildcard.h"
 #include "print.h"
 #include "archive.h"
index cf2a582..bfa943f 100644 (file)
@@ -27,6 +27,7 @@
 #include <string.h>
 
 #include <map>
+#include <iostream>
 #include <string>
 
 using namespace std;
index 19f27df..2a3e20a 100644 (file)
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include <stdio.h>
-#include <stdlib.h>
+#include <cstdlib>
+#include <iostream>
 #include <fstream>
 #include <stdexcept>
 
 #include "ginac.h"
 
+using namespace std;
 using namespace GiNaC;
 
 int main(int argc, char **argv)
 {
        if (argc < 2) {
-               fprintf(stderr, "Usage: %s [-d] file...\n", argv[0]);
+               cerr << "Usage: " << argv[0] << " [-d] file..." << endl;
                exit(1);
        }
        --argc; ++argv;