+++ /dev/null
-=================================================================
-====== Things to be done for the /base library ================
-=================================================================
-
-Move the exceptions in the Tensor package (tensor_base.h and tensor.h)
- back into the Tensor class, if the compiler allows to do so. Also
- rename them back (i.e. drop the initial Tensor* from the name).
-
-
-
-Think about the determinant function in the tensor package. Is it
- useful, can it be generalized?
-> There are only non-zero alternating real valued n-forms, so a determinant
-> exists only for Tensor<k,dim>, k even
-
-Put Tensor<1,dim>::array_size directly into the array type. At
- present, egcs 1.1.2 chokes on that.
-
-
-Fill in docs for the timer class. Hopefully finally find a way to
- let it measure times larger than half an hour.
-> Operating system dependence. Grrr. Guido
-
-
-Revert istrstream(p.c_str()) to istrstream(p) when possible
- (parameter_handler.cc)
-
-
-Change <iostream> to <ostream> in grid/point.h and
- grid/tria_iterator.h when this becomes possible.
-
-
-Document the JobIdentifier class members.
-
-
-Use numeric_limits to designate the default values of bounds
- parameters of Patterns::Integer and Patterns::Double. This would then
- allow to use half-open intervals as well, amoung other advantages.
/**
* ???
*/
+//TODO:[GK] document this variable
static const char* program_id();
/**
#define __deal2__parameter_handler_h
+//TODO:[WB] Use numeric_limits to designate the default values of bounds parameters
+// of Patterns::Integer and Patterns::Double. This would then allow to use half-open
+// intervals as well, among other advantages.
+
+
+
// public classes; to be declared below
class ParameterHandler;
class MultipleParameterLoop;
#include <string>
#include <base/exceptions.h>
+
// forward declaration
class LogStream;
+
/**
* List of possible output formats.
*/
};
+
/**
* Declare some regexps which
* may be used to define patterns.
be properly accessed (haven't investigated why). If anyone has a better
idea, realize it!
*/
+//TODO:[WB] move the exceptions back into the Tensor class, if the compiler allows to do so. Also rename them back (i.e. drop the initial Tensor* from the name)
DeclException1 (ExcInvalidTensorIndex,
int,
<< "Invalid tensor index " << arg1);
// tensor stuff, so we don't want the whole tensor package to be included
// everytime we use a point.
+
+//TODO:[WB] Change <iostream> to <ostream> when that becomes available
+
#include <base/exceptions.h>
#include <iostream>
#include <vector>
*/
static const unsigned int rank = 1;
-#if (__GNUC__==2) && (__GNUC_MINOR__ < 95)
- /**
- * Unnecessary variable, only used in
- * the declaration of @p{array_type}.
- * This variable should be omitted,
- * but egcs1.1.2 chokes on that so
- * we need it presently.
- */
- static const unsigned int array_size = ((dim!=0) ? (dim) : 1);
-
/**
* Declare an array type which can
* be used to initialize statically
* an object of this type.
*
- * Use the same condition for @p{dim==0}
- * as in the @p{TensorBase<1,dim>} class.
+ * Avoid warning about zero-sized
+ * array for @p{dim==0} by
+ * choosing lunatic value.
*/
- typedef double array_type[array_size];
-#else
-
- /**
- * Declare an array type which can
- * be used to initialize statically
- * an object of this type.
- *
- * Use the same condition for @p{dim==0}
- * as in the @p{TensorBase<1,dim>} class.
- */
- typedef double array_type[(dim!=0) ? dim : 1];
-#endif
+ typedef double array_type[(dim!=0) ? dim : (unsigned int)(-1)];
/**
* Constructor. Initialize all entries
/**
* Exception
*/
+//TODO:[WB] move the exceptions back into the Tensor class, if the compiler allows to do so. Also rename them back (i.e. drop the initial Tensor* from the name)
DeclException2(ExcWrongVectorSize, int, int, << "Tensor has " << arg1
<< " entries, but vector has size " << arg2);
DeclException1 (ExcDimTooSmall,
*
* @author G. Kanschat, W. Bangerth
*/
+//TODO:[?] make class work with multithreading as well. better docs.
class Timer
{
public:
//---------------------------- exceptions.cc ---------------------------
+//TODO:[WB] use [io]stringstream instead of [io]strstream if they become available
+//TODO:[WB] replace s.c_str() by s when that is possible
+
+
#include <base/exceptions.h>
#include <string>
#include <strstream>
//---------------------------- parameter_handler.cc ---------------------------
+//TODO:[WB] use [io]stringstream instead of [io]strstream if they become available
+//TODO:[WB] replace s.c_str() by s when that is possible
+
#include <base/parameter_handler.h>
#include <base/logstream.h>
#include <base/memory_consumption.h>