MPI_AINT_DIFF(3)				     Open MPI					  MPI_AINT_DIFF(3)

       MPI_Aint_add <#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
	  USE MPI
	  ! or the older form: 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

   Fortran 2008 Syntax
	  USE mpi_f08
	  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  <#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	<#
       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 section 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	<#
       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 section 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 <#mpi-get-address>.

       See also:

	  • MPI_Get_address <#mpi-get-address>

Copyright
       2003-2026, The Open MPI Community

						   Mar 05, 2026					  MPI_AINT_DIFF(3)
