mfem::infinity() and replace (almost) all usage of the std version with
the shortcut.
In SparseMatrix::MakeRef, copy the field isSorted from the original
matrix.
copying when the source object is invalid, i.e. it has nonzero size
but the data pointer is NULL.
In class DenseTensor, the copy constructor always uses deep copy.
In class DenseMatrixEigensystem, in the copy constructor, initialize
'ev' to not own its data.
In classes Vector, DenseMatrix, and DenseTensor, use std::memcpy to
copy the data arrays.
in the .cpp files that use SUNDIALS.
Updated INSTALL and CHANGELOG to reflect that both v2.7.0 and v3.0.0 of
SUNDIALS are supported.
In makefile, move the addition of the SUNDIALS and PETSc examples to the
examples run by 'make test' after the inclusion of config/config.mk.
Use the LAPACK dnrm2 algorithm to compute the l2 norm instead of the
square root of the inner product of a vector with itself. This
modification prevents overflow by ensuring that any squared term has a
nonnegative argument of 1.0 or less. However, it also disables OpenMP
parallelism (because mfem::Vector::operator* is no longer being used);
this functionality would have to be reintroduced in a subsequent
commit.
Use a scaling trick (also performed in C++'s std::hypot) to prevent
overflow of $\ell^{p}$ norm of `mfem::Vector`s in some cases (e.g.,
large values of $p$).
Copying a DenseMatrixEigensystem when using LAPACK
is done by value. The dynamic memory is incorrectly copied
which leads to a segfault on delete. Also, a segfault occurs
when copying a vector that has a nonzero size, but null data.