Program Listing for File ParallelNumeric.h
↰ Return to documentation for file (ADS/parallel/ParallelNumeric.h)
/*--------------------------------------------------------------------------*/
/*------------------------- File ParallelNumeric.h -------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_ParallelNumeric
#define __ADS_ParallelNumeric
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include "ADS/numeric/CsrMatrix.h"
#include "ADS/numeric/DenseMatrix.h"
#include "ADS/numeric/SellMatrix.h"
#include "ADS/parallel/Executor.h"
#include <algorithm>
#include <cstddef>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
template< Executor E >
void multiply( E & ex , const CsrMatrix & A , const double * x , double * y );
template< Executor E >
[[nodiscard]] std::vector< double > multiply( E & ex , const CsrMatrix & A ,
const std::vector< double > & x );
template< Executor E , std::size_t C >
void multiply( E & ex , const SellMatrix< C > & A , const double * x ,
double * y );
template< Executor E , std::size_t C >
[[nodiscard]] std::vector< double > multiply( E & ex ,
const SellMatrix< C > & A ,
const std::vector< double > & x );
template< Executor E , class T >
void gemm( E & ex , std::size_t m , std::size_t n , std::size_t k , T alpha ,
const T * A , std::size_t lda , const T * B , std::size_t ldb ,
T beta , T * C , std::size_t ldc );
template< Executor E , class T >
[[nodiscard]] DenseMatrix< T > multiply( E & ex , const DenseMatrix< T > & A ,
const DenseMatrix< T > & B );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/parallel/impl/ParallelNumeric.tpp"
/*--------------------------------------------------------------------------*/
#endif /* ParallelNumeric.h included */
/*--------------------------------------------------------------------------*/
/*----------------------- End File ParallelNumeric.h -----------------------*/
/*--------------------------------------------------------------------------*/