|
| Tensor (const std::array< size_t, Rank > &shape) |
| Constructor que inicializa el tensor con una forma dada.
|
template<typename... Dims>
requires (sizeof...(Dims) == Rank) |
| Tensor (const Dims... dims) |
| Constructor variádico para inicializar la forma del tensor.
|
constexpr auto | operator== (const Tensor< T, Rank > &other) const -> bool |
auto | operator= (std::initializer_list< T > list) -> Tensor< T, Rank > & |
constexpr auto | operator() (const auto... idxs) -> T & |
| Acceso a un elemento por índices.
|
constexpr auto | operator() (const auto... idxs) const -> const T & |
auto | operator() (const std::array< size_t, Rank > &idxs) -> T & |
auto | operator() (const std::array< size_t, Rank > &idxs) const -> const T & |
auto | operator[] (const size_t idx) -> T & |
auto | operator[] (const size_t idx) const -> const T & |
auto | size () const -> size_t |
auto | shape () const noexcept -> const std::array< size_t, Rank > & |
void | reshape (const std::array< size_t, Rank > &new_shape) |
| Cambia la forma del tensor actual.
|
template<typename... Dims>
requires (sizeof...(Dims) == Rank) |
void | reshape (const Dims... dims) |
| Cambia la forma del tensor actual. @taram Dims Nuevo "Rank" del tensor. @complexity O(Rank).
|
void | fill (const T &value) noexcept |
| Llena la data de un tesor con un valor.
|
auto | row (const size_t index) const -> Tensor< T, 2 > requires(Rank==2) |
| Genera tensor con fila particular.
|
void | set_row (const size_t index, const Tensor< T, 2 > &row_tensor) |
| Cambia fila especifica de un tensor.
|
auto | slice (const size_t index) const -> Tensor< T, 2 > requires(Rank==3) |
| Genera tensor con fila particular para tensor de Rank 3.
|
void | set_slice (const size_t index, const Tensor< T, 2 > &slice) |
| Cambia el subtensor asignado.
|
auto | broadcast (const Tensor< T, Rank > &rhs, auto fn) const -> Tensor< T, Rank > |
| Realiza Broadcasting para un tensor.
|
auto | operator+ (const Tensor< T, Rank > &other) const -> Tensor< T, Rank > |
auto | operator+ (const T &scalar) const -> Tensor< T, Rank > |
auto | operator- (const Tensor< T, Rank > &other) const -> Tensor< T, Rank > |
auto | operator- (const T &scalar) const -> Tensor< T, Rank > |
auto | operator- () const -> Tensor< T, Rank > |
auto | operator* (const Tensor< T, Rank > &other) const -> Tensor< T, Rank > |
auto | operator* (const T &scalar) const -> Tensor< T, Rank > |
auto | operator/ (const Tensor< T, Rank > &other) const -> Tensor< T, Rank > |
auto | operator/ (const T &scalar) const -> Tensor< T, Rank > |
auto | begin () noexcept |
auto | begin () const noexcept |
auto | end () noexcept |
auto | end () const noexcept |
constexpr auto | transpose_2d () const -> Tensor< T, 2 > |
| Trasponer un tensor de dimension 2. @complexity O(n).
|
constexpr auto | transpose_2d () const -> Tensor< T, Rank > requires(Rank > 2) |
| Trasponer un tensor de dimension n mayor a 2. @complexity O(n).
|
constexpr auto | apply (auto fn) const -> Tensor< T, Rank > |
| Aplica una funcion a todos los elementos del tensor.
|
template<typename T, size_t Rank>
class Tensor< T, Rank >
Representa un tensor de tipo T y rango Rank.
Un tensor es una estructura de datos multidimensional que puede almacenar elementos de cualquier tipo T. Esta clase admite tensores de cualquier rango (dimensionalidad), con acceso eficiente, operaciones matemáticas, y soporte para broadcasting.
- Template Parameters
-
T | Tipo de dato almacenado (float, double, int, etc). |
Rank | Dimensionalidad del tensor. |