Cyclops Tensor Framework
parallel arithmetic on multidimensional arrays
semiring.h File Reference
#include "functions.h"
#include "../sparse_formats/csr.h"
#include <iostream>
#include "ring.h"
Include dependency graph for semiring.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  CTF::Semiring< dtype, is_ord >
 Semiring is a Monoid with an addition multiplicaton function addition must have an identity and be associative, does not need to be commutative multiplications must have an identity as well as be distributive and associative special case (parent) of a Ring (which also has an additive inverse) More...
 

Namespaces

 CTF_int
 
 CTF
 

Functions

template<typename dtype >
dtype CTF_int::default_mul (dtype a, dtype b)
 
template<typename dtype >
void CTF_int::default_axpy (int n, dtype alpha, dtype const *X, int incX, dtype *Y, int incY)
 
template<>
void CTF_int::default_axpy< float > (int n, float alpha, float const *X, int incX, float *Y, int incY)
 
template<>
void CTF_int::default_axpy< double > (int n, double alpha, double const *X, int incX, double *Y, int incY)
 
template<>
void CTF_int::default_axpy< std::complex< float > > (int n, std::complex< float > alpha, std::complex< float > const *X, int incX, std::complex< float > *Y, int incY)
 
template<>
void CTF_int::default_axpy< std::complex< double > > (int n, std::complex< double > alpha, std::complex< double > const *X, int incX, std::complex< double > *Y, int incY)
 
template<typename dtype >
void CTF_int::default_scal (int n, dtype alpha, dtype *X, int incX)
 
template<>
void CTF_int::default_scal< float > (int n, float alpha, float *X, int incX)
 
template<>
void CTF_int::default_scal< double > (int n, double alpha, double *X, int incX)
 
template<>
void CTF_int::default_scal< std::complex< float > > (int n, std::complex< float > alpha, std::complex< float > *X, int incX)
 
template<>
void CTF_int::default_scal< std::complex< double > > (int n, std::complex< double > alpha, std::complex< double > *X, int incX)
 
template<typename dtype >
void CTF_int::default_gemm (char tA, char tB, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C)
 
template<typename dtype >
dtype ** CTF_int::get_grp_ptrs (int64_t grp_sz, int64_t ngrp, dtype const *data)
 
template<typename dtype >
void CTF_int::gemm_batch (char taA, char taB, int l, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C)
 
template<typename dtype >
void CTF_int::gemm (char tA, char tB, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C)
 
template<>
void CTF_int::default_gemm< float > (char tA, char tB, int m, int n, int k, float alpha, float const *A, float const *B, float beta, float *C)
 
template<>
void CTF_int::default_gemm< double > (char tA, char tB, int m, int n, int k, double alpha, double const *A, double const *B, double beta, double *C)
 
template<>
void CTF_int::default_gemm< std::complex< float > > (char tA, char tB, int m, int n, int k, std::complex< float > alpha, std::complex< float > const *A, std::complex< float > const *B, std::complex< float > beta, std::complex< float > *C)
 
template<>
void CTF_int::default_gemm< std::complex< double > > (char tA, char tB, int m, int n, int k, std::complex< double > alpha, std::complex< double > const *A, std::complex< double > const *B, std::complex< double > beta, std::complex< double > *C)
 
template<typename dtype >
void CTF_int::default_gemm_batch (char taA, char taB, int l, int m, int n, int k, dtype alpha, dtype const *A, dtype const *B, dtype beta, dtype *C)
 
template<>
void CTF_int::default_gemm_batch< float > (char taA, char taB, int l, int m, int n, int k, float alpha, float const *A, float const *B, float beta, float *C)
 
template<>
void CTF_int::default_gemm_batch< double > (char taA, char taB, int l, int m, int n, int k, double alpha, double const *A, double const *B, double beta, double *C)
 
template<>
void CTF_int::default_gemm_batch< std::complex< float > > (char taA, char taB, int l, int m, int n, int k, std::complex< float > alpha, std::complex< float > const *A, std::complex< float > const *B, std::complex< float > beta, std::complex< float > *C)
 
template<>
void CTF_int::default_gemm_batch< std::complex< double > > (char taA, char taB, int l, int m, int n, int k, std::complex< double > alpha, std::complex< double > const *A, std::complex< double > const *B, std::complex< double > beta, std::complex< double > *C)
 
template<typename dtype >
void CTF_int::default_coomm (int m, int n, int k, dtype alpha, dtype const *A, int const *rows_A, int const *cols_A, int nnz_A, dtype const *B, dtype beta, dtype *C)
 
template<>
void CTF_int::default_coomm< float > (int m, int n, int k, float alpha, float const *A, int const *rows_A, int const *cols_A, int nnz_A, float const *B, float beta, float *C)
 
template<>
void CTF_int::default_coomm< double > (int m, int n, int k, double alpha, double const *A, int const *rows_A, int const *cols_A, int nnz_A, double const *B, double beta, double *C)
 
template<>
void CTF_int::default_coomm< std::complex< float > > (int m, int n, int k, std::complex< float > alpha, std::complex< float > const *A, int const *rows_A, int const *cols_A, int nnz_A, std::complex< float > const *B, std::complex< float > beta, std::complex< float > *C)
 
template<>
void CTF_int::default_coomm< std::complex< double > > (int m, int n, int k, std::complex< double > alpha, std::complex< double > const *A, int const *rows_A, int const *cols_A, int nnz_A, std::complex< double > const *B, std::complex< double > beta, std::complex< double > *C)