- Sep 27, 2016
-
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
- base class with non-virtual destructor causes undefined behaviour - missing return statements at the end of non-void functions - missing const before char* function argument - reordered initialization of class members - misleading indentation after for statement - fixed use of uninitialized variables - fixed unsequenced modification and access to variables (the C++ standard does not define the evaluation order of operands, so expressions with side-effects such as j++ cause undefined behaviour)
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
Plus the associated revamping of the SolverStarter. Also ODESolverMonitor has been removed as its functionality has been merged into the IterativeSolverMonitor.
-
Jakub Klinkovský authored
Apart from squashing begin, end, entityOrientation and entityBasis parameters into TraverserKernelData, this does not improve performance of the LinearSystemAssembler, ExplicitUpdater etc., but in tnl-mhfem it allows us to pass MeshDependentData, which is already available as a SharedPointer, directly to the grid traverser without duplicating the transfer to GPU.
-
- Sep 26, 2016
-
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
The original 'modified' flag was not shared between instances of the smart pointer, so theoretically the same data object might have been synchronized more than once or even not at all. Another problem with the detection was that e.g. access through the modifyData method does not imply modification of the object's class data. For example if the object is TNL::Vector, we need to go through modifyData to be able to modify the vector data, but synchronization is not needed since we go through another pointer. Another example is repeated binding of the same object, e.g. bindDofs in the Problem classes.
-
Jakub Klinkovský authored
This is for consistency and also to avoid compiler warnings
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
This is necessary if the pointer type is const-qualified.
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
This can handle non-const -> const constructions and assignments. Due to the automatically generated copy- and move-constructors and assignment operators, some SFINAE tricks and little code duplication are needed to make it work.
-
Jakub Klinkovský authored
The compiler itself takes care of the problem by doing the right thing in the problematic methods and not allowing to modify the const-qualified data.
-
- Sep 03, 2016
-
-
Jakub Klinkovský authored
-
- Aug 24, 2016
-
-
Tomáš Oberhuber authored
-
- Aug 23, 2016
-
-
Tomáš Oberhuber authored
-
Tomáš Oberhuber authored
-
Tomáš Oberhuber authored
-
- Aug 22, 2016
-
-
Tomáš Oberhuber authored
-
- Aug 21, 2016
-
-
Tomáš Oberhuber authored
-
Jakub Klinkovský authored
-
- Aug 20, 2016
-
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
This is technically not necessary, but hides about 5 MB of compiler warnings :-D
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-
Jakub Klinkovský authored
-