|
FflasFfpack
|
#include "fflas-ffpack/fflas-ffpack-config.h"#include "fflas-ffpack/config.h"#include "fflas-ffpack/config-blas.h"#include "fflas-ffpack/paladin/parallel.h"#include <recint/recint.h>#include <givaro/udl.h>#include "fflas-ffpack/fflas/fflas.h"#include "fflas-ffpack/field/field-traits.h"#include "fflas-ffpack/fflas/fflas_bounds.inl"#include "fflas-ffpack/utils/fflas_memory.h"#include <type_traits>#include <vector>#include <iostream>#include "fflas-ffpack/fflas/fflas_sparse/sparse_matrix_traits.h"#include "fflas-ffpack/fflas/fflas_sparse/utils.h"#include "fflas-ffpack/fflas/fflas_sparse/csr.h"#include "fflas-ffpack/fflas/fflas_sparse/coo.h"#include "fflas-ffpack/fflas/fflas_sparse/ell.h"#include "fflas-ffpack/fflas/fflas_sparse/csr_hyb.h"#include "fflas-ffpack/fflas/fflas_sparse/ell_simd.h"#include "fflas-ffpack/fflas/fflas_sparse/hyb_zo.h"#include "fflas-ffpack/fflas/fflas_sparse.inl"#include "fflas-ffpack/fflas/fflas_sparse/read_sparse.h"Data Structures | |
| struct | Sparse< Field, SparseMatrix_t, IdxT, PtrT > |
| struct | HelperFlag |
| struct | CsrMat< Field > |
| struct | CooMat< Field > |
| struct | EllMat< Field > |
| struct | SpMat< Field, flag > |
Namespaces | |
| MKL_CONFIG | |
| FFLAS | |
| FFLAS::sparse_details | |
Macros | |
| #define | index_t uint32_t |
| #define | ROUND_DOWN(x, s) ((x) & ~((s)-1)) |
| #define | __FFLASFFPACK_CACHE_LINE_SIZE 64 |
| #define | assume_aligned(pout, pin, v) decltype(pin) pout = pin; |
| #define | DENSE_THRESHOLD 0.5 |
Enumerations | |
| enum | SparseMatrix_t { CSR, CSR_ZO, CSC, CSC_ZO, COO, COO_ZO, ELL, ELL_ZO, SELL, SELL_ZO, ELL_simd, ELL_simd_ZO, CSR_HYB, HYB_ZO } |
Functions | |
| template<class Field > | |
| void | init_y (const Field &F, const size_t m, const typename Field::Element b, typename Field::Element_ptr y) |
| template<class Field > | |
| void | init_y (const Field &F, const size_t m, const size_t n, const typename Field::Element b, typename Field::Element_ptr y, const int ldy) |
| template<class Field , class SM , class FC , class MZO > | |
| std::enable_if< !(std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineFloatTag > ::value||std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineIntTag > ::value)>::type | fspmv_dispatch (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FC fc, MZO mzo) |
| template<class Field , class SM , class FC , class MZO > | |
| std::enable_if< std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineFloatTag > ::value||std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineIntTag > ::value >::type | fspmv_dispatch (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FC fc, MZO mzo) |
| template<class Field , class SM > | |
| void | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::GenericTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if <!isSparseMatrixSimdFormat < Field, SM >::value >::type | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if < isSparseMatrixSimdFormat < Field, SM >::value >::type | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if <!isSparseMatrixSimdFormat < Field, SM >::value >::type | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if < isSparseMatrixSimdFormat < Field, SM >::value >::type | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| void | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::GenericTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if <!isSparseMatrixSimdFormat < Field, SM >::value >::type | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if < isSparseMatrixSimdFormat < Field, SM >::value >::type | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| void | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag, std::true_type) |
| template<class Field , class SM , class FCat , class MZO > | |
| std::enable_if< !(std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineFloatTag > ::value||std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineIntTag > ::value)>::type | fspmm_dispatch (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FCat, MZO) |
| template<class Field , class SM , class FCat , class MZO > | |
| std::enable_if< std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineFloatTag > ::value||std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineIntTag > ::value >::type | fspmm_dispatch (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FCat, MZO) |
| template<class Field , class SM > | |
| void | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::GenericTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if< support_simd < typename Field::Element > ::value >::type | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if<!support_simd < typename Field::Element > ::value >::type | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if< support_simd < typename Field::Element > ::value >::type | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::ModularTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if<!support_simd < typename Field::Element > ::value >::type | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::ModularTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| void | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::GenericTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if< support_simd < typename Field::Element > ::value >::type | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if<!support_simd < typename Field::Element > ::value >::type | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| void | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::ModularTag, ZOSparseMatrix) |
| template<class Field , class SM , class FCat , class MZO > | |
| std::enable_if< !(std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineFloatTag > ::value||std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineIntTag > ::value)>::type | pfspmm_dispatch (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FCat, MZO) |
| template<class Field , class SM , class FCat , class MZO > | |
| std::enable_if< std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineFloatTag > ::value||std::is_same < typename ElementTraits < typename Field::Element > ::value, ElementCategories::MachineIntTag > ::value >::type | pfspmm_dispatch (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FCat, MZO) |
| template<class Field , class SM > | |
| void | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::GenericTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if< support_simd < typename Field::Element > ::value >::type | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if<!support_simd < typename Field::Element > ::value >::type | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if< support_simd < typename Field::Element > ::value >::type | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::ModularTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if<!support_simd < typename Field::Element > ::value >::type | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::ModularTag, NotZOSparseMatrix) |
| template<class Field , class SM > | |
| void | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::GenericTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if< support_simd < typename Field::Element > ::value >::type | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| std::enable_if<!support_simd < typename Field::Element > ::value >::type | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::UnparametricTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| void | pfspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, typename Field::Element_ptr y, int ldy, FieldCategories::ModularTag, ZOSparseMatrix) |
| template<class Field , class SM > | |
| void | pfspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::GenericTag, std::false_type) |
| template<class Field , class SM > | |
| void | pfspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag, std::false_type) |
| template<class Field , class SM > | |
| void | pfspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag, std::false_type) |
| template<class Field , class SM > | |
| void | pfspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::GenericTag, std::true_type) |
| template<class Field , class SM > | |
| void | pfspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag, std::true_type) |
| template<class Field , class SM > | |
| void | pfspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag, std::true_type) |
| template<class Field , class SM > | |
| void | fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, const typename Field::Element &beta, typename Field::Element_ptr y) |
| template<class Field , class SM > | |
| void | fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, const typename Field::Element &beta, typename Field::Element_ptr y, int ldy) |
| #define index_t uint32_t |
| #define ROUND_DOWN | ( | x, | |
| s | |||
| ) | ((x) & ~((s)-1)) |
| #define __FFLASFFPACK_CACHE_LINE_SIZE 64 |
| #define assume_aligned | ( | pout, | |
| pin, | |||
| v | |||
| ) | decltype(pin) pout = pin; |
| #define DENSE_THRESHOLD 0.5 |
1.8.8