This file is indexed.

/usr/include/linbox/util/mpicpp.h is in liblinbox-dev 1.1.6~rc0-4.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
#ifndef __MPICPP_H_
#define __MPICPP_H_

#ifndef __LINBOX_HAVE_MPI
 typedef int Communicator; 
#else
#include <iterator>

// problem of mpi(ch2) in C++
#undef SEEK_SET 
#undef SEEK_CUR 
#undef SEEK_END 
#include <mpi.h>


namespace LinBox {
/* Idea:  Only use ssend for send.
*/
class Communicator
{   public:
    // constructors and destructor

	// constructor from existing communicator 
	//`Communicator(MPI_Comm comm = MPI_COMM_NULL);
   Communicator(MPI_Comm comm);
	// MPI_initializing constructor
	// When this communicator is destroyed MPI is shut down (finalized).
	Communicator(int* ac, char*** av);

	// copy constructor
	Communicator(const Communicator& D);

	~Communicator();

    // accessors
	int size();

int rank();

	MPI_Status status(); 

	MPI_Comm mpi_communicator();

    // peer to peer communication
	template < class Ptr >
	void send( Ptr b, Ptr e, int dest, int tag);

	template < class Ptr >
	void ssend( Ptr b, Ptr e, int dest, int tag);

	template < class Ptr >
	void recv( Ptr b, Ptr e, int dest, int tag);

	template < class X >
	void send( X *b, X *e, int dest, int tag);

	template < class X >
	void recv( X *b, X *e, int dest, int tag);

	// whole object send and recv
	template < class X >
	void send( X& b, int dest /*, int tag = 0 */);

	template < class X >
	void ssend( X& b, int dest /*, int tag = 0 */);

	template < class X >
	void bsend( X& b, int dest);

	template < class X >
	void recv( X& b, int dest /*, int tag = 0*/);
/*
   template < vector < class X > >
	void send( X& b, int dest );
*/

	template < class X >
	void buffer_attach( X b);

	template < class X >
	int buffer_detach( X &b, int *size);


    // collective communication
	template < class Ptr, class Function_object >
	void reduce( Ptr bloc, Ptr eloc, Ptr bres, Function_object binop, int root);

    // member access
	MPI_Status get_stat();
	 
   protected:
	MPI_Comm _mpi_comm; // MPI's handle for the communicator
	bool _mpi_boss; // true of an MPI initializing communicator
                       // There is at most one initializing communicator.
	MPI_Status stat; // status from most recent receive

};
}// namespace LinBox

#include "mpicpp.inl"
#endif // __LINBOX_HAVE_MPI
#endif // __MPICPP_H_