Tannic
A C++ Tensor Library
Loading...
Searching...
No Matches
transformations.hpp File Reference
#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.