Tags: Erellu/ste-Matrix
Tags
Ver 2.0.0
Ver 2.0.0
"The GPU Update"
**MAJOR RELEASE**
• Fixed cut(begin , end , orientation).
• `swap` second argument is now passed by reference.
• `inv` is now `const`.
• Added _device attribute, EXE enum and setDevice member function that allows the users to speficify on what device (CPU or GPU) the computation involving this matrix should be done.
• Added criterium argument to `max()` and `min()`, enabling the user to specify how the max and min should be found. Default (no arguments) returns `*std::max_element` and `*std::min_element` respectively.
• Added `operator-()`, enabling the use of -x (where x is a ste::Matrix)
• Added `operator=(const std::vector<T> &data)`, allowing to change the contents of the matrix providing that the argument contains as many elements as the matrix.
• Added begin() and end(), two member functions that return iterators to the matrix data begin and end respectively.
• [WIP] Added `self_transpose()`, a member function that transposes the current matrix in place. [WIP]
• [WIP] Added `transpose_in_place()`, a member function used as alias for 'self_transpose()'. [WIP]
• Added in-code documentation that was missing for some functions.
• Added `operator<<(std::ostream &outstream , const EXE &a)`, instantiation of `operator<<` for ste::EXE.
• Added `operator&&(const EXE &a , const EXE &b)`, instantiation of `operator&&` for ste::EXE.
• Added `operator||(const EXE &a , const EXE &b)`, instantiation of `operator||` for ste::EXE.
• Added `operator|(const EXE &a , const EXE &b)`, instantiation of `operator|` for ste::EXE.
• Added `operator&(const EXE &a , const EXE &b)`, instantiation of `operator&` for ste::EXE.
• Updated `print()` and `print_size()`. It is now possible to specify any std::ostream for printing the matrix or its size.
• `print()` and `print_size()` now return the std::ostream specified in argument.
• Updated `deleteAll()`. A `static_assert` now checks that `T` is dynamically allocated.
• `operator^` and `operator^=` now throw an exception if the matrix is not square.
• `const` version of `at` now returns `const T&` instead of `T`.
• `columns`, `rows` and `lines` now return `const size_t&` instead of `uint64_t`.
• `clear` now returns a reference to the matrix.
• `deleteAll` now returns a reference to the matrix.
• `invert()` is no longer `const`, and now changes the value of the matrix to the one of its inverse.
• Removed `inverse()`.
• Modified code formatting.
• Removed `virtual` qualifer from the following member functions :
```c++
transpose()
cofactor(...)
cofactormatrix()
comatrix()
hadamard(...)
max(...)
min(...)
toVector1D()
operator=(...)
operator-=(...)
operator+=(...)
operator-(...)
operator+(...)
```
• Added `virtual` qualifier to `operator!()`
• `static invert(...)` `static hadamard(...)` , `static element_wise(...)` , `static for_each(...)`, and`static transform` are no longer member functions. Call is now through `ste::for_each` and `ste::transform`.
• `for_each` and `transform` are now template functions. Casting a lambda to a std::function is no longer required.
• `hadamard` and its alisas `element_wise` are now member functions of the `ste` namespace . The ste::Matrix versions still exist
• `invert` is now a member functions of the `ste` namespace.
• Improved `replace(...)`.
• Improved `det()`.
• Improved `operator!`.
• Improved `operator*=(const Matrix&)` when GPU use is enabled.
• Improved `rowAt(...)`.
• Replaced `uint64_t` by `size_t` in the entire file for clarity.
• Other minor changes that do not affect the class usage.
• Updated README.
• Added documentation.
• Added this file.
PreviousNext