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