- introduce WM_COMPILE_CONTROL variable to convey control information
into the build rules.
The convention (as per spack):
- '+' to select a feature
- '~' to deselect a feature
Eg, to select the gold linker, and disable openmp
(spaces are not required):
WM_COMPILE_CONTROL="+gold ~openmp"
CONFIG: accept FOAM_EXTRA_LDFLAGS for AMD, gold, Mingw linkers
CONFIG: generalize PROJECT_LIBS (-ldl used almost universally)
- support construct from initializer_list, which can help simplify
code with constant coefficients.
- add default constructor for polynomialFunction and Istream reading
to support resizable lists of polynomialFunction.
A default constructed polynomialFunction is simply equivalent to
a constant zero.
- no special IO handling for Polynomial required,
it is the same as VectorSpace anyhow.
- use allocator class to wrap the stream pointers instead of passing
them into ISstream, OSstream and using a dynamic cast to delete
then. This is especially important if we will have a bidirectional
stream (can't delete twice!).
STYLE:
- file stream constructors with std::string (C++11)
- for rewind, explicit about in|out direction. This is not currently
important, but avoids surprises with any future bidirectional access.
- combined string streams in StringStream.H header.
Similar to <sstream> include that has both input and output string
streams.
STYLE: integrateLimits() -> integrate() for consistency with
DataEntry/polynomial. Rename old 'integrate', 'integrateMinus1'
methods to 'integral', 'integralMinus1' (ie, substantive instead of
verb for clarity).
OLD timings:
~~~~~~~~~~~~~~~~~~
evaluate: -6.82572e+31 in 10.38 s
hard-coded 0: -6.82572e+31 in 0.2 s
hard-coded 1: -6.82572e+31 in 10.37 s
hard-coded 2: -6.82572e+31 in 0.24 s
New timings:
~~~~~~~~~~~~~~~~~~
evaluate: -6.82572e+31 in 0.11 s