GemaCoreLib
The GeMA Core library
gmMergeVectors.h
Go to the documentation of this file.
1 
10 #ifndef _GM_MERGE_VECTORS_H_
11 #define _GM_MERGE_VECTORS_H_
12 
13 #include "gmCoreConfig.h"
15 
16 #include <QVector>
17 
18 // The basic INTERNAL worker for all MergeKVectors functions
19 // See comments on the cpp file and in the API functions below
20 template <class DataT>
21 GMC_API_EXPORT void GmMergeKVectors(const QVector<DataT*>& vectors, const QVector<size_t>& sizes,
22  DataT* output);
23 
28 inline void GmUnsignedMergeKVectors(const QVector<unsigned*>& vectors, const QVector<size_t>& sizes,
29  unsigned* output)
30 {
31  GmMergeKVectors<unsigned>(vectors, sizes, output);
32 }
33 
35 template <GmSparseMatrixLayoutTypes T>
37  const QVector<size_t>& sizes, GmSparseMatrixTripletData<T>* output)
38 {
39  GmMergeKVectors<GmSparseMatrixTripletData<T>>(vectors, sizes, output);
40 }
41 
42 // Explicit instaciation of the template for the two supported layout types
43 template void GmTripletMergeKVectors<GM_CSR_SPARSE_FORMAT>(const QVector<GmSparseMatrixTripletData<GM_CSR_SPARSE_FORMAT>*>& vectors,
45 
46 template void GmTripletMergeKVectors<GM_CSC_SPARSE_FORMAT>(const QVector<GmSparseMatrixTripletData<GM_CSC_SPARSE_FORMAT>*>& vectors,
48 
49 
50 #endif
51 
GMC_API_EXPORT void GmMergeKVectors(const QVector< DataT * > &vectors, const QVector< size_t > &sizes, DataT *output)
Merges a set of "k" ordered vectors whose pointers and sizes are given by vectors and sizes,...
Definition: gmMergeVectors.cpp:151
Declaration of usefull configuration definitions for the Core library.
void GmTripletMergeKVectors(const QVector< GmSparseMatrixTripletData< T > * > &vectors, const QVector< size_t > &sizes, GmSparseMatrixTripletData< T > *output)
Overload of GmUnsignedMergeKVectors() for triplet data.
Definition: gmMergeVectors.h:36
Declaration of the GmSparseMatrixTripletData and GmSparseMatrixTripletBuffer template classes.
void GmUnsignedMergeKVectors(const QVector< unsigned * > &vectors, const QVector< size_t > &sizes, unsigned *output)
Merges a set of "k" ordered vectors whose pointers and sizes are given by vectors and sizes,...
Definition: gmMergeVectors.h:28
#define GMC_API_EXPORT
Macro for controling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_LI...
Definition: gmCoreConfig.h:35
Aux structure used when building sparse matrices with the help of a triplet list. The tripet structur...
Definition: gmSparseMatrixTripletData.h:59