Tannic
A C++ Tensor Library
Loading...
Searching...
No Matches
transformations.hpp File Reference

Defines tensor transformation operations. More...

#include <tuple>
#include <array>
#include <vector>
#include <cassert>
#include "concepts.hpp"
#include "types.hpp"
#include "traits.hpp"
#include "shape.hpp"
#include "tensor.hpp"
#include "exceptions.hpp"
Include dependency graph for transformations.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tannic::transformation::Transformation< Operation, Operands >
 Expression template for tensor transformations. More...
 
struct  tannic::transformation::Composition
 Transformation composition (Known as Matrix Multiplication) operation. More...
 
struct  tannic::transformation::Outer
 Represents the outer product operation between two vectors. More...
 
struct  tannic::transformation::Repetition
 Repetition operation along a specified axis. More...
 
struct  tannic::transformation::Concatenation
 Concatenation operation along a specified axis. More...
 
struct  tannic::transformation::Repack
 Repack operation (makes a tensor contiguous in memory) More...
 

Namespaces

namespace  tannic
 
namespace  tannic::transformation
 

Functions

template<Expression Outer, Expression Inner>
constexpr auto tannic::transformation::composition (Outer &&outer, Inner &&inner, double scale)
 Creates a composition (matrix multiplication) expression.
 
template<Expression First, Expression Second>
constexpr auto tannic::transformation::outer (First &&first, Second &&second)
 Creates an outer product expression.
 
template<Expression Source>
constexpr auto tannic::transformation::repeat (Source &&source, int repeats, int axis=0)
 Creates a repetition transformation.
 
template<Expression First, Expression Second>
constexpr auto tannic::transformation::concatenate (First &&first, Second &&second, int axis=0)
 Helper function to create a concatenation transformation.
 
template<Expression Source>
constexpr auto tannic::transformation::repack (Source &&source)
 Creates a repack transformation.
 
template<Expression Source, Integral ... Indexes>
constexpr auto tannic::transformation::reshape (Source &&source, Indexes ... indexes)
 Creates a view but always repacks the tensor into a contiguous layout.
 
template<Expression Multiplicand, Expression Multiplier>
constexpr auto tannic::matmul (Multiplicand &&multiplicand, Multiplier &&multiplier, double scale=1.0)
 Matrix multiplication convenience function.
 

Detailed Description

Defines tensor transformation operations.

Author
Eric Hermosis
Date
2025

This header provides tensor transformation operations implemented as expression templates.

Part of the Tannic Tensor Library.