#include <SpDCCols.h>


Classes | |
| class | SpColIter |
| Iterate over (sparse) columns of the sparse matrix. More... | |
Public Types | |
| typedef IT | LocalIT |
| typedef NT | LocalNT |
| typedef IT | LocalIT |
| typedef NT | LocalNT |
| typedef IT | LocalIT |
| typedef NT | LocalNT |
Static Public Attributes | |
| static const IT | esscount = static_cast<IT>(4) |
Definition at line 51 of file SpDCCols.h.
Definition at line 54 of file SpDCCols.h.
Definition at line 54 of file SpDCCols.h.
Definition at line 54 of file SpDCCols.h.
Definition at line 55 of file SpDCCols.h.
Definition at line 55 of file SpDCCols.h.
Definition at line 55 of file SpDCCols.h.
Definition at line 55 of file SpDCCols.cpp.
| combblas::SpDCCols< IT, NT >::SpDCCols | ( | IT | nRow, |
| IT | nCol, | ||
| IT | nTuples, | ||
| const std::tuple< IT, IT, NT > * | tuples, | ||
| bool | transpose | ||
| ) |
Multithreaded Constructor for converting tuples matrix -> SpDCCols
| [in] | rhs | if transpose=true, then tuples is assumed to be a row sorted list of tuple objects else tuples is assumed to be a column sorted list of tuple objects |
Definition at line 198 of file SpDCCols.cpp.
Definition at line 88 of file SpDCCols.cpp.
Definition at line 65 of file SpDCCols.cpp.
| combblas::SpDCCols< IT, NT >::SpDCCols | ( | IT | nRow, |
| IT | nCol, | ||
| IT | nnz1, | ||
| const std::tuple< IT, IT, NT > * | rhs, | ||
| bool | transpose | ||
| ) |
| combblas::SpDCCols< IT, NT >::SpDCCols | ( | IT | nRow, |
| IT | nCol, | ||
| IT | nnz1, | ||
| const std::tuple< IT, IT, NT > * | rhs, | ||
| bool | transpose | ||
| ) |
|
inline |
Definition at line 249 of file SpDCCols.h.
|
inline |
Definition at line 249 of file SpDCCols.h.
|
inline |
Definition at line 249 of file SpDCCols.h.
Definition at line 197 of file SpDCCols.h.
Definition at line 197 of file SpDCCols.h.
Definition at line 197 of file SpDCCols.h.
Definition at line 204 of file SpDCCols.h.
Definition at line 204 of file SpDCCols.h.
Definition at line 204 of file SpDCCols.h.
|
inline |
| ccol | Return the beginning iterator for the nonzeros of the current column |
Definition at line 228 of file SpDCCols.h.
|
inline |
| ccol | Return the beginning iterator for the nonzeros of the current column |
Definition at line 228 of file SpDCCols.h.
|
inline |
| ccol | Return the beginning iterator for the nonzeros of the current column |
Definition at line 228 of file SpDCCols.h.
|
inline |
| i | multithreaded version |
Definition at line 238 of file SpDCCols.h.
|
inline |
| i | multithreaded version |
Definition at line 238 of file SpDCCols.h.
|
inline |
| i | multithreaded version |
Definition at line 238 of file SpDCCols.h.
Concatenates (merges) multiple matrices (cut along the columns) into 1 piece ColSplit() method should have been executed on the object beforehand
Definition at line 1145 of file SpDCCols.cpp.
Concatenates (merges) multiple matrices (cut along the columns) into 1 piece ColSplit() method should have been executed on the object beforehand
Definition at line 1096 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | int | parts, |
| std::vector< SpDCCols< IT, NT > * > & | matrices | ||
| ) |
Splits the matrix into "parts", simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Definition at line 978 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | int | parts, |
| std::vector< SpDCCols< IT, NT > * > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | int | parts, |
| std::vector< SpDCCols< IT, NT > * > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | int | parts, |
| std::vector< SpDCCols< IT, NT > > & | matrices | ||
| ) |
Splits the matrix into "parts", simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Definition at line 936 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | int | parts, |
| std::vector< SpDCCols< IT, NT > > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | int | parts, |
| std::vector< SpDCCols< IT, NT > > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | std::vector< IT > & | cutSizes, |
| std::vector< SpDCCols< IT, NT > * > & | matrices | ||
| ) |
[Overloaded function. To be used in case of vector of SpDCCols pointer.] Splits the matrix into "parts", simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Definition at line 1059 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | std::vector< IT > & | cutSizes, |
| std::vector< SpDCCols< IT, NT > * > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | std::vector< IT > & | cutSizes, |
| std::vector< SpDCCols< IT, NT > * > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | std::vector< IT > & | cutSizes, |
| std::vector< SpDCCols< IT, NT > > & | matrices | ||
| ) |
Splits the matrix into "parts", simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Definition at line 1020 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | std::vector< IT > & | cutSizes, |
| std::vector< SpDCCols< IT, NT > > & | matrices | ||
| ) |
| void combblas::SpDCCols< IT, NT >::ColSplit | ( | std::vector< IT > & | cutSizes, |
| std::vector< SpDCCols< IT, NT > > & | matrices | ||
| ) |
Definition at line 734 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::CreateImpl | ( | IT * | _cp, |
| IT * | _jc, | ||
| IT * | _ir, | ||
| NT * | _numx, | ||
| IT | _nz, | ||
| IT | _nzc, | ||
| IT | _m, | ||
| IT | _n | ||
| ) |
Definition at line 721 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::CreateImpl | ( | IT * | _cp, |
| IT * | _jc, | ||
| IT * | _ir, | ||
| NT * | _numx, | ||
| IT | _nz, | ||
| IT | _nzc, | ||
| IT | _m, | ||
| IT | _n | ||
| ) |
| void combblas::SpDCCols< IT, NT >::CreateImpl | ( | IT * | _cp, |
| IT * | _jc, | ||
| IT * | _ir, | ||
| NT * | _numx, | ||
| IT | _nz, | ||
| IT | _nzc, | ||
| IT | _m, | ||
| IT | _n | ||
| ) |
| void combblas::SpDCCols< IT, NT >::CreateImpl | ( | IT | size, |
| IT | nRow, | ||
| IT | nCol, | ||
| std::tuple< IT, IT, NT > * | mytuples | ||
| ) |
Definition at line 748 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::CreateImpl | ( | IT | size, |
| IT | nRow, | ||
| IT | nCol, | ||
| std::tuple< IT, IT, NT > * | mytuples | ||
| ) |
| void combblas::SpDCCols< IT, NT >::CreateImpl | ( | IT | size, |
| IT | nRow, | ||
| IT | nCol, | ||
| std::tuple< IT, IT, NT > * | mytuples | ||
| ) |
Definition at line 212 of file SpDCCols.h.
Definition at line 212 of file SpDCCols.h.
Definition at line 212 of file SpDCCols.h.
Definition at line 220 of file SpDCCols.h.
Definition at line 220 of file SpDCCols.h.
Definition at line 220 of file SpDCCols.h.
|
inline |
| ccol | Return the ending iterator for the nonzeros of the current column |
Definition at line 233 of file SpDCCols.h.
|
inline |
| ccol | Return the ending iterator for the nonzeros of the current column |
Definition at line 233 of file SpDCCols.h.
|
inline |
| ccol | Return the ending iterator for the nonzeros of the current column |
Definition at line 233 of file SpDCCols.h.
|
inline |
| i | multithreaded version |
Definition at line 243 of file SpDCCols.h.
|
inline |
| i | multithreaded version |
Definition at line 243 of file SpDCCols.h.
|
inline |
| i | multithreaded version |
Definition at line 243 of file SpDCCols.h.
Definition at line 662 of file SpDCCols.cpp.
@Pre {scaler should NOT contain any zero entries}
Definition at line 702 of file SpDCCols.cpp.
| std::ifstream & combblas::SpDCCols< IT, NT >::get | ( | std::ifstream & | infile | ) |
Definition at line 1400 of file SpDCCols.cpp.
| std::ifstream & combblas::SpDCCols< IT, NT >::get | ( | std::ifstream & | infile | ) |
| std::ifstream & combblas::SpDCCols< IT, NT >::get | ( | std::ifstream & | infile | ) |
Definition at line 826 of file SpDCCols.cpp.
Definition at line 329 of file SpDCCols.h.
Definition at line 329 of file SpDCCols.h.
Definition at line 329 of file SpDCCols.h.
Definition at line 334 of file SpDCCols.h.
Definition at line 334 of file SpDCCols.h.
Definition at line 334 of file SpDCCols.h.
| std::vector< IT > combblas::SpDCCols< IT, NT >::GetEssentials | ( | ) | const |
Definition at line 787 of file SpDCCols.cpp.
| std::vector< IT > combblas::SpDCCols< IT, NT >::GetEssentials | ( | ) | const |
| std::vector< IT > combblas::SpDCCols< IT, NT >::GetEssentials | ( | ) | const |
Definition at line 339 of file SpDCCols.h.
Definition at line 339 of file SpDCCols.h.
Definition at line 339 of file SpDCCols.h.
Definition at line 340 of file SpDCCols.h.
Definition at line 340 of file SpDCCols.h.
Definition at line 340 of file SpDCCols.h.
Definition at line 307 of file SpDCCols.h.
Definition at line 307 of file SpDCCols.h.
Definition at line 307 of file SpDCCols.h.
Definition at line 308 of file SpDCCols.h.
Definition at line 308 of file SpDCCols.h.
Definition at line 308 of file SpDCCols.h.
Definition at line 306 of file SpDCCols.h.
Definition at line 306 of file SpDCCols.h.
Definition at line 306 of file SpDCCols.h.
Definition at line 310 of file SpDCCols.h.
Definition at line 310 of file SpDCCols.h.
Definition at line 310 of file SpDCCols.h.
Definition at line 309 of file SpDCCols.h.
Definition at line 309 of file SpDCCols.h.
Definition at line 309 of file SpDCCols.h.
Definition at line 305 of file SpDCCols.h.
Definition at line 305 of file SpDCCols.h.
Definition at line 305 of file SpDCCols.h.
Merges two matrices (cut along the columns) into 1 piece Split method should have been executed on the object beforehand
Definition at line 1195 of file SpDCCols.cpp.
NNT: New numeric type.
Definition at line 799 of file SpDCCols.cpp.
NNT: New numeric type, NIT: New index type.
Definition at line 813 of file SpDCCols.cpp.
NNT: New numeric type, NIT: New index type.
NNT: New numeric type, NIT: New index type.
| SpDCCols< IT, NT > combblas::SpDCCols< IT, NT >::operator() | ( | const std::vector< IT > & | ri, |
| const std::vector< IT > & | ci | ||
| ) | const |
The almighty indexing polyalgorithm Calls different subroutines depending the sparseness of ri/ci
Definition at line 1355 of file SpDCCols.cpp.
| SpDCCols< IT, NT > combblas::SpDCCols< IT, NT >::operator() | ( | const std::vector< IT > & | ri, |
| const std::vector< IT > & | ci | ||
| ) | const |
| SpDCCols< IT, NT > combblas::SpDCCols< IT, NT >::operator() | ( | const std::vector< IT > & | ri, |
| const std::vector< IT > & | ci | ||
| ) | const |
Definition at line 1320 of file SpDCCols.cpp.
Definition at line 394 of file SpDCCols.cpp.
The assignment operator operates on an existing object The assignment operator is the only operator that is not inherited. But there is no need to call base's assigment operator as it has no data members
Definition at line 365 of file SpDCCols.cpp.
Definition at line 74 of file SpDCCols.h.
Definition at line 74 of file SpDCCols.h.
Definition at line 74 of file SpDCCols.h.
| int combblas::SpDCCols< IT, NT >::PlusEq_AnXBn | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
C += A*B (Using ColByCol Algorithm) This version is currently limited to multiplication of matrices with the same precision (e.g. it can't multiply double-precision matrices with booleans) The multiplication is on the specified semiring (passed as parameter)
Definition at line 1276 of file SpDCCols.cpp.
| int combblas::SpDCCols< IT, NT >::PlusEq_AnXBn | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AnXBn | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AnXBt | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
C += A*B' (Using OuterProduct Algorithm) This version is currently limited to multiplication of matrices with the same precision (e.g. it can't multiply double-precision matrices with booleans) The multiplication is on the specified semiring (passed as parameter)
Definition at line 1232 of file SpDCCols.cpp.
| int combblas::SpDCCols< IT, NT >::PlusEq_AnXBt | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AnXBt | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AtXBn | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
Definition at line 1304 of file SpDCCols.cpp.
| int combblas::SpDCCols< IT, NT >::PlusEq_AtXBn | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AtXBn | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AtXBt | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
Definition at line 1312 of file SpDCCols.cpp.
| int combblas::SpDCCols< IT, NT >::PlusEq_AtXBt | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
| int combblas::SpDCCols< IT, NT >::PlusEq_AtXBt | ( | const SpDCCols< IT, NT > & | A, |
| const SpDCCols< IT, NT > & | B | ||
| ) |
Definition at line 1440 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::PrintInfo | ( | std::ofstream & | out | ) | const |
Definition at line 1416 of file SpDCCols.cpp.
| void combblas::SpDCCols< IT, NT >::PrintInfo | ( | std::ofstream & | out | ) | const |
| void combblas::SpDCCols< IT, NT >::PrintInfo | ( | std::ofstream & | out | ) | const |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::Prune | ( | _UnaryOperation | __unary_op, |
| bool | inPlace | ||
| ) |
Definition at line 478 of file SpDCCols.cpp.
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::Prune | ( | _UnaryOperation | __unary_op, |
| bool | inPlace | ||
| ) |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::Prune | ( | _UnaryOperation | __unary_op, |
| bool | inPlace | ||
| ) |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneColumn | ( | IT * | pinds, |
| NT * | pvals, | ||
| _BinaryOperation | __binary_op, | ||
| bool | inPlace | ||
| ) |
Definition at line 584 of file SpDCCols.cpp.
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneColumn | ( | IT * | pinds, |
| NT * | pvals, | ||
| _BinaryOperation | __binary_op, | ||
| bool | inPlace | ||
| ) |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneColumn | ( | IT * | pinds, |
| NT * | pvals, | ||
| _BinaryOperation | __binary_op, | ||
| bool | inPlace | ||
| ) |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneColumn | ( | NT * | pvals, |
| _BinaryOperation | __binary_op, | ||
| bool | inPlace | ||
| ) |
Definition at line 527 of file SpDCCols.cpp.
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneColumn | ( | NT * | pvals, |
| _BinaryOperation | __binary_op, | ||
| bool | inPlace | ||
| ) |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneColumn | ( | NT * | pvals, |
| _BinaryOperation | __binary_op, | ||
| bool | inPlace | ||
| ) |
Definition at line 573 of file SpDCCols.cpp.
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneI | ( | _UnaryOperation | __unary_op, |
| bool | inPlace, | ||
| GlobalIT | rowOffset, | ||
| GlobalIT | colOffset | ||
| ) |
Definition at line 431 of file SpDCCols.cpp.
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneI | ( | _UnaryOperation | __unary_op, |
| bool | inPlace, | ||
| GlobalIT | rowOffset, | ||
| GlobalIT | colOffset | ||
| ) |
| SpDCCols< IT, NT > * combblas::SpDCCols< IT, NT >::PruneI | ( | _UnaryOperation | __unary_op, |
| bool | inPlace, | ||
| GlobalIT | rowOffset, | ||
| GlobalIT | colOffset | ||
| ) |
| std::ofstream & combblas::SpDCCols< IT, NT >::put | ( | std::ofstream & | outfile | ) | const |
Definition at line 1386 of file SpDCCols.cpp.
| std::ofstream & combblas::SpDCCols< IT, NT >::put | ( | std::ofstream & | outfile | ) | const |
| std::ofstream & combblas::SpDCCols< IT, NT >::put | ( | std::ofstream & | outfile | ) | const |
Definition at line 281 of file SpDCCols.h.
Definition at line 281 of file SpDCCols.h.
Definition at line 281 of file SpDCCols.h.
Definition at line 631 of file SpDCCols.cpp.
Splits the matrix into two parts, simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Splits the matrix into two parts, simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Splits the matrix into two parts, simply by cutting along the columns Simple algorithm that doesn't intend to split perfectly, but it should do a pretty good job Practically destructs the calling object also (frees most of its memory)
Definition at line 906 of file SpDCCols.cpp.
Mutator version, replaces the calling object.
O(nnz log(nnz)) time Transpose function
Definition at line 854 of file SpDCCols.cpp.
Mutator version, replaces the calling object.
Mutator version, replaces the calling object.
Const version, doesn't touch the existing object.
O(nnz log(nnz)) time Transpose function
Definition at line 877 of file SpDCCols.cpp.
Const version, doesn't touch the existing object.
Const version, doesn't touch the existing object.
O(nnz log(nnz)) time Transpose function
Definition at line 891 of file SpDCCols.cpp.
|
inline |
Definition at line 267 of file SpDCCols.h.
|
inline |
Definition at line 267 of file SpDCCols.h.
|
inline |
Definition at line 267 of file SpDCCols.h.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
Definition at line 369 of file SpDCCols.h.
Definition at line 372 of file SpDCCols.h.
Definition at line 372 of file SpDCCols.h.
Definition at line 372 of file SpDCCols.h.
|
friend |
SpTuples(A*B) (Using ColByCol Algorithm) Returns the tuples for efficient merging later Support mixed precision multiplication The multiplication is on the specified semiring (passed as parameter)
|
friend |
SpTuples(A*B) (Using ColByCol Algorithm) Returns the tuples for efficient merging later Support mixed precision multiplication The multiplication is on the specified semiring (passed as parameter)
|
friend |
SpTuples(A*B) (Using ColByCol Algorithm) Returns the tuples for efficient merging later Support mixed precision multiplication The multiplication is on the specified semiring (passed as parameter)
Definition at line 358 of file SpDCCols.h.
Definition at line 359 of file SpDCCols.h.
|
static |
Definition at line 303 of file SpDCCols.h.