- Oct 02, 2013
-
-
Martin Nolte authored
The majority of developers favor individual headers for (emulation of) C++11 features over collecting them in a single header cxx11.hh. This patch renames cxx11.hh to constexpr.hh and moves it into the subdirectory std. This is the place most developers would like these headers in (see http://users.dune-project.org/doodles/4).
-
- Oct 01, 2013
-
-
Martin Nolte authored
As decided on the developer meeting in Aachen, we support (but do not rely on) the C++11 keyword constexpr. This patch adds an m4-check for constexpr and a header (cxx11.hh) defining a macro DUNE_CONSTEXPR either as constexpr or empty (depending on the compiler support for it). It is then used in FieldVector and FieldMatrix on size, rows, and cols.
-
- Sep 27, 2013
-
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
- Sep 23, 2013
-
-
Markus Blatt authored
Previously, a variable (found) was only initialized in one branch of an if statement but used later on in any case. This patch makes sure that is initialized in both branches.
-
Markus Blatt authored
-
- Sep 19, 2013
-
-
Christoph Grüninger authored
-
- Sep 18, 2013
-
-
Markus Blatt authored
-
- Sep 10, 2013
-
-
The current algorithm for hash combining behaves very poorly when hashing multiple short streams of small integers like (0,1,1,0,x) that only differ by a single large number x. These objects appear frequently in PDELab's ordering framework, and the resulting bad hash distribution really hurts the performance of the unordered containers in PDELab. This patch switches to an algorithm that is inspired by CityHash (see the source code comment) and has proven to be much more robust in testing.
-
- Sep 02, 2013
-
-
Oliver Sander authored
Because C++11 implements this differently, and we now have an stl-compliant implementation to switch to. I would deprecate isPointer and isReference too, but I can't find a way to do it.
-
Oliver Sander authored
These are replacements for TypeTraits::isPointer, TypeTraits::isReference, TypeTraits::PointeeType. They reimplement what is available in the C++11 standard library, and are expected to supersede the TypeTraits class eventually. Note: this patch does not pull in the corresponding stl implementation.
-
Oliver Sander authored
That's easier to maintain.
-
Oliver Sander authored
-
Oliver Sander authored
-
- Aug 27, 2013
-
-
Steffen Müthing authored
If not found, our own fallback implementation will be used.
-
- Aug 26, 2013
-
-
Oliver Sander authored
A previous commit introduced a check whether the element to-be-touched is actually contained in the container. That patch caused the test to fail. The new patch fixes this.
-
Oliver Sander authored
-
- Aug 23, 2013
-
-
Oliver Sander authored
The two classes PushBackTuple and PushFrontTuple are both implemented using a long list of template specializations. This makes for a lot of code, and it also limits the maximum tuple size that can be used. Using variadic templates (FYI: available since gcc-4.3) instead allows a generic implementation in only a few lines of code, and only the compiler being the upper limit on tuple size. An implementation using variadic templates has already been given in the documentation of PushBackTuple/PushFrontTuple. This patch starts to actually use that implementation, provided that HAVE_VARIADIC_TEMPLATES is set. Otherwise the old implementation is used.
-
- Aug 22, 2013
-
-
Markus Blatt authored
-
- Aug 19, 2013
-
-
Oliver Sander authored
Because the latter uses the C++11 standard library naming.
-
Oliver Sander authored
-
Martin Nolte authored
-
Tobias Malkmus authored
-
- Aug 18, 2013
-
-
Oliver Sander authored
-
Oliver Sander authored
The C++11 standard library offers the functionality of SelectType, it is, however, called 'conditional'. This patch adds a copy of our SelectType implementation with the class names changed to match the ones used in C++11. The old SelectType implementation gets deprecated.
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
Oliver Sander authored
-
- Jul 24, 2013
-
-
Steffen Müthing authored
The default constructor of the FieldVector has intentionally avoided calling a constructor for the contained data to eliminate the potential overhead of that initialization. During implementation of a new creation mode of the BCRSMatrix, it was discovered that this behavior is problematic due to its inconsistency: If the data type contained in the FieldVector is a non-trivial type, a default-constructed FieldVector will be fully initialized. On the other hand, with a primitive data type it will be in an uninitialized state, potentially causing undefined behavior. As this behavior might be very unintuitive for users and made implementing the new, more efficient creation method for the BCRS matrix very difficult to implement, this patch changes the FieldVector default constructor to always default-construct its contents regardless of its type. While this change does introduce a possible performance regression (for primitive types, the compiler now has to zero out the memory), the overhead has been measured to be minimal. The actual implementation prefers to use the new C++11 unified initialization syntax and falls back to std::fill for older compilers. The distinction was made because newer compilers generate much more efficient code when using unified initialization, and for user-defined types, this approach avoids first calling the default constructors and then the copy assignment operator.
-
- Jul 13, 2013
-
-
Martin Nolte authored
-
- Jul 10, 2013
-
-
Christian Engwer authored
- update documentation - add paranoia check to touch()
-
Christian Engwer authored
update documentation
-