Tannic
A C++ Tensor Library
Loading...
Searching...
No Matches
tannic::expression::Squeeze< Source > Class Template Reference

Expression template for removing singleton dimensions from a tensor. More...

#include <views.hpp>

Public Member Functions

constexpr Squeeze (typename Trait< Source >::Reference source)
 Construct a squeezed view of the source tensor.
 
constexpr type dtype () const
 
constexpr Shape const & shape () const
 
constexpr Strides const & strides () const
 
std::ptrdiff_t offset () const
 
Tensor forward () const
 

Detailed Description

template<Expression Source>
class tannic::expression::Squeeze< Source >

Expression template for removing singleton dimensions from a tensor.

Template Parameters
SourceThe expression or tensor type being squeezed.

The Squeeze view removes dimensions of size 1 from the shape of a tensor. This changes only the tensor metadata (shape and strides), not the underlying storage.

Example:

Tensor X(float32, {1, 3, 1});
auto Y = squeeze(X); // shape becomes (3)
A multidimensional, strided tensor data structure.
Definition: tensor.hpp:105
constexpr auto squeeze(Source &&source)
Removes all singleton dimensions from a tensor (squeeze).
Definition: views.hpp:937

Constructor & Destructor Documentation

◆ Squeeze()

template<Expression Source>
constexpr tannic::expression::Squeeze< Source >::Squeeze ( typename Trait< Source >::Reference  source)
inlineconstexpr

Construct a squeezed view of the source tensor.

Parameters
sourceReference to the source expression or tensor.

This constructor removes all dimensions of size 1 from the source shape. Strides corresponding to those singleton dimensions are also removed.

Member Function Documentation

◆ dtype()

template<Expression Source>
constexpr type tannic::expression::Squeeze< Source >::dtype ( ) const
inlineconstexpr
Returns
The runtime data type of the tensor elements.

This is forwarded directly from the source expression. Squeezing does not alter the tensor’s dtype.

◆ forward()

template<Expression Source>
Tensor tannic::expression::Squeeze< Source >::forward

◆ offset()

template<Expression Source>
std::ptrdiff_t tannic::expression::Squeeze< Source >::offset ( ) const
inline
Returns
The byte offset of the squeezed tensor from the start of storage.

This is forwarded from the source tensor since squeezing does not change the starting position of the data.

◆ shape()

template<Expression Source>
constexpr Shape const & tannic::expression::Squeeze< Source >::shape ( ) const
inlineconstexpr
Returns
The shape of the squeezed tensor.

Calculation:

  • Copies the source shape.
  • Removes all dimensions of size 1.

Example:

  • Source shape: (1, 3, 1) → Squeezed shape: (3)

◆ strides()

template<Expression Source>
constexpr Strides const & tannic::expression::Squeeze< Source >::strides ( ) const
inlineconstexpr
Returns
The strides of the squeezed tensor.

Calculation:

  • Copies the source strides.
  • Removes strides corresponding to dimensions of size 1.

Example:

  • Source strides: (3, 1, 1) with shape (1, 3, 1)
  • Result after squeeze: (1) with shape (3)

The documentation for this class was generated from the following files: