|
Tensorium
|
A 2D aligned matrix for numerical derivatives. More...
#include <Derivate.hpp>
Public Types | |
| using | reg = typename Simd::reg |
| using | reg = typename Simd::reg |
Public Member Functions | |
| Derivate (size_t r, size_t c) | |
| Constructor with explicit dimensions. | |
| Derivate (const Matrix< K > &m) | |
| Construct from an existing matrix. | |
| K & | operator() (size_t i, size_t j) |
| Mutable access to an element. | |
| const K & | operator() (size_t i, size_t j) const |
| Const access to an element. | |
| size_t | size () const |
| Total number of elements in the matrix. | |
| __attribute__ ((always_inline, hot, flatten)) inline void centered_derivative(const Derivate< K > &input | |
| Compute second-order centered derivative. | |
| if (axis==1) | |
| else | if (axis==0) |
| __attribute__ ((always_inline, hot, flatten)) inline void centered_derivative_order4(const Derivate< K > &input | |
| Compute fourth-order centered derivative. | |
| if (axis==1) | |
| else | if (axis==0) |
Public Attributes | |
| size_t | rows |
| size_t | cols |
| aligned_vector< K > | data |
| size_t | block_size |
| Derivate< K > & | output |
| Derivate< K > size_t | axis |
| Derivate< K > size_t K dx | const |
| const size_t | simd_width = Simd::width |
| const K | inv_2dx = K(1) / (K(2) * dx) |
| else | |
| Derivate< K > size_t K | dx |
| constexpr size_t | W = Simd::width |
| const K | inv_12dx = K(1) / (K(12) * dx) |
| const reg | inv = Simd::set1(inv_12dx) |
| const reg | eight = Simd::set1(8.0f) |
A 2D aligned matrix for numerical derivatives.
| K | Scalar type (e.g., float, double). |
| using tensorium::Derivate< K >::reg = typename Simd::reg |
| using tensorium::Derivate< K >::reg = typename Simd::reg |
|
inline |
Constructor with explicit dimensions.
| r | Number of rows. |
| c | Number of columns. |
References block_size, cols, data, detect_optimal_block_size(), and rows.
|
inline |
Construct from an existing matrix.
| m | Input matrix. |
References block_size, cols, data, detect_optimal_block_size(), and rows.
| tensorium::Derivate< K >::__attribute__ | ( | (always_inline, hot, flatten) | ) | const & |
| tensorium::Derivate< K >::__attribute__ | ( | (always_inline, hot, flatten) | ) | const & |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| Derivate< K > size_t tensorium::Derivate< K >::axis |
| size_t tensorium::Derivate< K >::block_size |
Referenced by Derivate(), and Derivate().
| size_t tensorium::Derivate< K >::cols |
Referenced by Derivate(), Derivate(), if(), if(), operator()(), operator()(), and size().
| Derivate<K> size_t K dx tensorium::Derivate< K >::const |
| aligned_vector<K> tensorium::Derivate< K >::data |
Referenced by Derivate(), Derivate(), operator()(), and operator()().
| Derivate<K> size_t K tensorium::Derivate< K >::dx |
| const reg tensorium::Derivate< K >::eight = Simd::set1(8.0f) |
Referenced by if().
| tensorium::Derivate< K >::else |
| const reg tensorium::Derivate< K >::inv = Simd::set1(inv_12dx) |
Referenced by if().
| const K tensorium::Derivate< K >::inv_12dx = K(1) / (K(12) * dx) |
Referenced by if().
| const K tensorium::Derivate< K >::inv_2dx = K(1) / (K(2) * dx) |
| Derivate< K > & tensorium::Derivate< K >::output |
| size_t tensorium::Derivate< K >::rows |
Referenced by Derivate(), Derivate(), if(), if(), operator()(), operator()(), and size().
| const size_t tensorium::Derivate< K >::simd_width = Simd::width |
Referenced by if().
|
constexpr |
Referenced by if().