#include "moab/Remapping/TempestOnlineMap.hpp"
#include <algorithm>
#include <utility>
#include <vector>
Go to the source code of this file.
|
| double | pairwiseSum (const std::set< double > &sorted) |
| |
| double | pairwiseKahanSum (const std::set< double > &sorted) |
| |
| void | deterministicSparseMatVecMul (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightColVector &x, typename moab::TempestOnlineMap::WeightRowVector &result) |
| |
| void | deterministicSparseMatVecMulKahan (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightColVector &x, typename moab::TempestOnlineMap::WeightRowVector &result) |
| |
| void | deterministicSparseMatVecMulClean (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightColVector &x, typename moab::TempestOnlineMap::WeightRowVector &result) |
| |
| void | deterministicSparseMatVecMulNative (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightColVector &x, typename moab::TempestOnlineMap::WeightRowVector &result) |
| |
| void | deterministicSparseMatTransposeVecMul (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightRowVector &x, typename moab::TempestOnlineMap::WeightColVector &result) |
| |
| void | deterministicSparseMatTransposeVecMulClean (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightRowVector &x, typename moab::TempestOnlineMap::WeightColVector &result) |
| |
| void | deterministicSparseMatTransposeVecMulNative (const typename moab::TempestOnlineMap::WeightMatrix &A, const typename moab::TempestOnlineMap::WeightRowVector &x, typename moab::TempestOnlineMap::WeightColVector &result) |
| |
◆ deterministicSparseMatTransposeVecMul()
| void deterministicSparseMatTransposeVecMul |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightRowVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightColVector & |
result |
|
) |
| |
|
inline |
Definition at line 152 of file ApplyWeights.cpp.
159 std::vector< std::set< double > > accumulators( A.cols() );
162 for(
int row = 0; row < A.outerSize(); ++row )
164 for(
typename moab::TempestOnlineMap::WeightMatrix::InnerIterator it( A, row ); it; ++it )
166 accumulators[it.col()].insert( it.value() * x( row ) );
171 for(
int col = 0; col < A.cols(); ++col )
References pairwiseKahanSum().
◆ deterministicSparseMatTransposeVecMulClean()
| void deterministicSparseMatTransposeVecMulClean |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightRowVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightColVector & |
result |
|
) |
| |
|
inline |
◆ deterministicSparseMatTransposeVecMulNative()
| void deterministicSparseMatTransposeVecMulNative |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightRowVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightColVector & |
result |
|
) |
| |
|
inline |
◆ deterministicSparseMatVecMul()
| void deterministicSparseMatVecMul |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightColVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightRowVector & |
result |
|
) |
| |
|
inline |
Definition at line 73 of file ApplyWeights.cpp.
77 constexpr
bool useKahanSum =
false;
78 constexpr
bool usePairwiseSum =
false;
83 for(
int row = 0; row < A.outerSize(); ++row )
85 std::set< double > accumulators;
86 for(
typename moab::TempestOnlineMap::WeightMatrix::InnerIterator it( A, row ); it; ++it )
89 accumulators.insert( it.value() * x( it.col() ) );
91 if( usePairwiseSum ) result( row ) =
pairwiseSum( accumulators );
94 if( !usePairwiseSum && !useKahanSum )
97 for(
double val : accumulators )
References pairwiseKahanSum(), pairwiseSum(), and moab::sum().
◆ deterministicSparseMatVecMulClean()
| void deterministicSparseMatVecMulClean |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightColVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightRowVector & |
result |
|
) |
| |
|
inline |
◆ deterministicSparseMatVecMulKahan()
| void deterministicSparseMatVecMulKahan |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightColVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightRowVector & |
result |
|
) |
| |
|
inline |
◆ deterministicSparseMatVecMulNative()
| void deterministicSparseMatVecMulNative |
( |
const typename moab::TempestOnlineMap::WeightMatrix & |
A, |
|
|
const typename moab::TempestOnlineMap::WeightColVector & |
x, |
|
|
typename moab::TempestOnlineMap::WeightRowVector & |
result |
|
) |
| |
|
inline |
◆ pairwiseKahanSum()
| double pairwiseKahanSum |
( |
const std::set< double > & |
sorted | ) |
|
|
inline |
◆ pairwiseSum()
| double pairwiseSum |
( |
const std::set< double > & |
sorted | ) |
|
|
inline |