This project is archived. Its data is read-only.
Code revision
TODO list for the code revison: * renaming _impl.h files to .hpp * change boolean return type to exception throwing - [x] fix exception catching by-reference: #29 - [x] use `ASSERT_NO_THROW( map.save( "multimap-test.tnl" ) );` instead of `ASSERT_TRUE( map.save( "multimap-test.tnl" ) );` etc. in tests (see https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#exception-assertions) * change boolean flag style parameters into enum class * use operators << and >> insteal of File.read and File.write where it makes sense * [x] add exception `NotImplementedError` and use it instead of codes like this: ```cpp std::cerr << "Type conversion during saving is not implemented for MIC." << std::endl; abort(); ``` Or this: ```cpp TNL_ASSERT( false, std::cerr << "TODO: implement" ); ``` * [x] Documentation: indicate which functions/methods throw which exceptions * Remove useless types from the public interface of classes: - [x] `ThisType` - useless for the outside of the class, and the implementation of methods can simply use the class name * [x] switch to C++14 ---- - [x] String - [x] Timer - [x] Object - [x] change bool save and load to void - [x] File - [x] Update examples, add data conversion. - [x] use TransferBufferSize from Devices::Cuda - [x] Remove `File::Mode` enum, use [std::ios_base::openmode](https://en.cppreference.com/w/cpp/io/ios_base/openmode) directly - [x] Remove specific exceptions (`ArrayWrongSize`, `MeshFunctionDataMismatch`, `NotTNLFile`, `ObjectTypeDetectionFailure`, `ObjectTypeMismatch`) - all `save`/`load` methods should throw only `FileSerializationError`/`FileDeserializationError` - [x] FileName - [x] Array - [x] Add method for setting array elements using lambda function - [x] Copy constructor have to make deep copy - DOES NOT WORK with MultiMap yet - [x] Add copy constructors from `std::list`, `std::vector` and `std::initializer_list` - [x] Replace bind methods with ArrayView - after refactoring MeshFunction - [x] Avoid binding in `Array( const Array&, const Index begin, const Index size );` - [x] Remove `boundLoad` (used only in `Array` and derived objects, loading via `ArrayView` can be used instead: `array.getView().load( file );`) - [x] Use `operator<<` and `operator>>` instead of `save` and `load` methods - [x] Delete `operator bool ()` - [x] ArrayView - [x] what about `__cuda_callable__` ArrayView assignment? - [x] Use `operator<<` and `operator>>` instead of `save` and `load` methods - [x] StaticVector - [x] Replace all for loops with static loops, i.e. templated for - [x] u * v should not be dot product but element-wisi multiplication - [x] use (u,v) for dot product - [x] Vector - [x] `Vector` should have the same serialization type as `Array` so that arrays can be loaded into vectors and vice versa - [x] Delete methods for vector operations which are used in linear solvers - the replacement in the solvers must be tested carefuly - [x] Implement DistributedVectorExpressions and DistributedVectorViewExpressions - [x] On some places the method getView() is used because DistributedVectorExpressions are not implemented yet (mainly linear solvers and BLAS benchmark) - all occurences can be deleted later - [x] Add constructor from expression template - [x] Remove MultiVector and MultiArray - after refactoring Cameo - summer 2019 - [x] Parallel reduction - [x] Use auto in lambdas to avoid volatileReduction - it does not work with CUDA 10.0 - [x] Rewrite multi-reduction with lambdas - [x] ConfigDescription - [x] ParameterContainer - allow any types (currently only `int`, `double`, `bool`, `String`) - allow easy instantiation without the command-line parser (e.g. to pass a dict from python) - exceptions when accessing unknown parameters - [x] Logger - moved to https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/issues/98 - [x] Pointers - moved to https://mmg-gitlab.fjfi.cvut.cz/gitlab/tnl/tnl-dev/-/issues/97 - [x] Matrices - [x] fix getSerializationType the same way as in Array - [x] rename the method setCompressedRowLengths to setRowCapacities - [x] implement sparse matrices using Segments - [x] implement CSR matrix and Ellpack matrix using the Segments, use existing unit tests for debugging - [ ] implement set/addRow using VectorView and lambda functions - [x] implement "Lambda matrix" - the element values are given by a lambda function - [x] implement constructor from initializer list to DenseMatrix - [x] implement method for setting elements from initializer list to sparse matrix - [x] implement constructor and method for setting elements from std::map similar to initializer list to sparse matrix - [ ] update dense matrix multiplication with the new dense matrix implementation - [ ] update dense matrix transposition with the new dense matrix implementation - [x] move methods for matrux coloring outside the matrices - [ ] finish DenseMatrixView::getRowVectorProduct - [x] implement opertor == for matrices - [x] Add constructor of matrix views from vector views - [x] Allocators - moved to !33
issue