bionic (3) MPI_Aint_add.openmpi.3.gz

Provided by: openmpi-doc_2.1.1-8_all bug

NAME

       MPI_Aint_add, MPI_Aint_diff - Portable functions for arithmetic on MPI_Aint values.

SYNTAX

C Syntax

       #include <mpi.h>
       MPI_Aint MPI_Aint_add(MPI_Aint base, MPI_Aint disp)

       MPI_Aint MPI_Aint_diff(MPI_Aint addr1, MPI_Aint addr2)

Fortran Syntax

       INCLUDE 'mpif.h'
       INTEGER(KIND=MPI_ADDRESS_KIND) MPI_AINT_ADD(BASE, DISP)
               INTEGER(KIND=MPI_ADDRESS_KIND) BASE, DISP

       INTEGER(KIND=MPI_ADDRESS_KIND) MPI_AINT_DIFF(ADDR1, ADDR2)
               INTEGER(KIND=MPI_ADDRESS_KIND) ADDR1, ADDR2

INPUT PARAMETERS

       base      Base address (integer).

       disp      Displacement (integer).

       addr1     Minuend address (integer).

       addr2     Subtrahend address (integer).

DESCRIPTION

       MPI_Aint_add  produces a new MPI_Aint value that is equivalent to the sum of the base and disp arguments,
       where base represents a base address returned by a call to MPI_Get_address and disp represents  a  signed
       integer displacement. The resulting address is valid only at the process that generated base, and it must
       correspond to a location in the same object referenced by base, as described in  MPI-3.1  §  4.1.12.  The
       addition  is  performed  in  a  manner  that results in the correct MPI_Aint representation of the output
       address, as if the process that originally produced base had called:

               MPI_Get_address ((char *) base + disp, &result);

       MPI_Aint_diff produces a new MPI_Aint value that is equivalent to the difference between addr1 and  addr2
       arguments,  where addr1 and addr2 represent addresses returned by calls to MPI_Get_address. The resulting
       address is valid only at the process that generated addr1 and addr2, and addr1 and addr2 must  correspond
       to  locations in the same object in the same process, as described in MPI-3.1 § 4.1.12. The difference is
       calculated in a manner that results in the signed difference from addr1 to addr2, as if the process  that
       originally  produced  the addresses had called (char *) addr1 - (char *) addr2 on the addresses initially
       passed to MPI_Get_address.

SEE ALSO

       MPI_Get_address