Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Namespaces | Functions
Tpetra_Details_ReadTriples.hpp File Reference

Declaration and definition of Tpetra::Details::readAndDealOutTriples, which reads a Matrix Market file or input stream on one process, and distributes the resulting sparse matrix entries to the other processes. More...

#include "TpetraCore_config.h"
#include "Tpetra_Details_PackTriples.hpp"
#include "Kokkos_ArithTraits.hpp"
#include "Teuchos_MatrixMarket_generic.hpp"
#include "Teuchos_CommHelpers.hpp"
#include <iostream>
#include <typeinfo>

Go to the source code of this file.

Classes

struct  Tpetra::Details::Impl::ReadLine< SC, GO, isComplex >
 Implementation of the readLine stand-alone function in this namespace (see below). More...
 
struct  Tpetra::Details::Impl::ReadLine< SC, GO, true >
 Complex-arithmetic partial specialization of ReadLine. More...
 
struct  Tpetra::Details::Impl::ReadLine< SC, GO, false >
 Real-arithmetic partial specialization of ReadLine. More...
 

Namespaces

 Tpetra
 Namespace Tpetra contains the class and methods constituting the Tpetra library.
 
 Tpetra::Details
 Namespace for Tpetra implementation details.
 

Functions

template<class OrdinalType , class RealType >
bool Tpetra::Details::Impl::readComplexData (std::istream &istr, OrdinalType &rowIndex, OrdinalType &colIndex, RealType &realPart, RealType &imagPart, const std::size_t lineNumber, const bool tolerant)
 Read "<rowIndex> <colIndex> <realPart> <imagPart>" from a line. More...
 
template<class SC , class GO >
int Tpetra::Details::Impl::readLine (std::function< int(const GO, const GO, const SC &)> processTriple, const std::string &line, const std::size_t lineNumber, const bool tolerant=false, std::ostream *errStrm=NULL, const bool debug=false)
 Take a line from the Matrix Market file or input stream, and process the sparse matrix entry in that line. More...
 
template<class SC , class GO >
int Tpetra::Details::Impl::readTriples (std::istream &inputStream, std::size_t &curLineNum, std::size_t &numTriplesRead, std::function< int(const GO, const GO, const SC &)> processTriple, const std::size_t maxNumTriplesToRead, const bool tolerant=false, std::ostream *errStrm=NULL, const bool debug=false)
 Read at most numTriplesToRead triples from the given Matrix Market input stream, and pass along any resulting matrix entries to the given closure. More...
 
template<class SC , class GO >
int Tpetra::Details::Impl::readAndSendOneBatchOfTriples (std::istream &inputStream, std::size_t &curLineNum, std::size_t &numEntRead,::Teuchos::ArrayRCP< int > &sizeBuf,::Teuchos::ArrayRCP< char > &msgBuf, std::vector< GO > &rowInds, std::vector< GO > &colInds, std::vector< SC > &vals, const std::size_t maxNumEntPerMsg, const int destRank, const ::Teuchos::Comm< int > &comm, const bool tolerant=false, std::ostream *errStrm=NULL, const bool debug=false)
 Read at most maxNumEntPerMsg sparse matrix entries from the input stream, and send them to the process with rank destRank. More...
 
template<class SC , class GO , class CommRequestPtr >
int Tpetra::Details::Impl::recvOneBatchOfTriples (std::vector< GO > &rowInds, std::vector< GO > &colInds, std::vector< SC > &vals, int &numEnt,::Teuchos::ArrayRCP< int > &sizeBuf,::Teuchos::ArrayRCP< char > &msgBuf, CommRequestPtr &sizeReq, const int srcRank, const ::Teuchos::Comm< int > &comm, const bool tolerant=false, std::ostream *errStrm=NULL, const bool debug=false)
 Read at most maxNumEntPerMsg sparse matrix entries from the input stream, and send them to the process with rank destRank. More...
 
template<class SC , class GO >
int Tpetra::Details::readAndDealOutTriples (std::istream &inputStream, std::size_t &curLineNum, std::size_t &totalNumEntRead, std::function< int(const GO, const GO, const SC &)> processTriple, const std::size_t maxNumEntPerMsg, const ::Teuchos::Comm< int > &comm, const bool tolerant=false, std::ostream *errStrm=NULL, const bool debug=false)
 On Process 0 in the given communicator, read sparse matrix entries (in chunks of at most maxNumEntPerMsg entries at a time) from the input stream, and "deal them out" to all other processes in the communicator. More...
 

Detailed Description

Declaration and definition of Tpetra::Details::readAndDealOutTriples, which reads a Matrix Market file or input stream on one process, and distributes the resulting sparse matrix entries to the other processes.

Warning
This is an implementation detail of Tpetra. Users must not rely on this file or its contents.

Definition in file Tpetra_Details_ReadTriples.hpp.