-:    0:Source:/home/MPI/testing/mpich2/mpich2/src/mpi/coll/opbor.c
        -:    0:Graph:opbor.gcno
        -:    0:Data:opbor.gcda
        -:    0:Runs:4382
        -:    0:Programs:1376
        -:    1:/* -*- Mode: C; c-basic-offset:4 ; -*- */
        -:    2:/*
        -:    3: *
        -:    4: *  (C) 2001 by Argonne National Laboratory.
        -:    5: *      See COPYRIGHT in top-level directory.
        -:    6: */
        -:    7:
        -:    8:#include "mpiimpl.h"
        -:    9:#include "oputil.h"
        -:   10:
        -:   11:/*
        -:   12: * In MPI-2.1, this operation is valid only for C integer, Fortran integer,
        -:   13: * and byte data items (5.9.2 Predefined reduce operations)
        -:   14: */
        -:   15:#ifndef MPIR_LBOR
        -:   16:#define MPIR_LBOR(a,b) ((a)|(b))
        -:   17:#endif
        -:   18:
        -:   19:#undef FUNCNAME
        -:   20:#define FUNCNAME MPIR_BOR
        -:   21:#undef FCNAME
        -:   22:#define FCNAME MPIU_QUOTE(FUNCNAME)
        -:   23:void MPIR_BOR (
        -:   24:    void *invec,
        -:   25:    void *inoutvec,
        -:   26:    int *Len,
        -:   27:    MPI_Datatype *type )
     2720:   28:{
     2720:   29:    int i, len = *Len;
        -:   30:
     2720:   31:    switch (*type) {
        -:   32:#undef MPIR_OP_TYPE_MACRO
        -:   33:#define MPIR_OP_TYPE_MACRO(mpi_type_, c_type_) MPIR_OP_TYPE_REDUCE_CASE(mpi_type_, c_type_, MPIR_LBOR)
        -:   34:        /* no semicolons by necessity */
      443:   35:        MPIR_OP_TYPE_GROUP(C_INTEGER)
    #####:   36:        MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER)
       17:   37:        MPIR_OP_TYPE_GROUP(BYTE)
        -:   38:        /* extra types that are not required to be supported by the MPI Standard */
        3:   39:        MPIR_OP_TYPE_GROUP(C_INTEGER_EXTRA)
    #####:   40:        MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA)
        -:   41:        MPIR_OP_TYPE_GROUP(BYTE_EXTRA)
        -:   42:#undef MPIR_OP_TYPE_MACRO
        -:   43:        /* --BEGIN ERROR HANDLING-- */
        -:   44:        default: {
    #####:   45:            MPIU_THREADPRIV_DECL;
    #####:   46:            MPIU_THREADPRIV_GET;
    #####:   47:            MPIU_THREADPRIV_FIELD(op_errno) = MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OP, "**opundefined","**opundefined %s", "MPI_BOR" );
        -:   48:            break;
        -:   49:        }
        -:   50:        /* --END ERROR HANDLING-- */
        -:   51:    }
     2720:   52:}
        -:   53:
        -:   54:
        -:   55:#undef FUNCNAME
        -:   56:#define FUNCNAME MPIR_BAND_check_dtype
        -:   57:#undef FCNAME
        -:   58:#define FCNAME MPIU_QUOTE(FUNCNAME)
        -:   59:int MPIR_BOR_check_dtype ( MPI_Datatype type )
     4936:   60:{
     4936:   61:    switch (type) {
        -:   62:#undef MPIR_OP_TYPE_MACRO
        -:   63:#define MPIR_OP_TYPE_MACRO(mpi_type_, c_type_) case (mpi_type_):
        -:   64:        MPIR_OP_TYPE_GROUP(C_INTEGER)
        -:   65:        MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER)
        -:   66:        MPIR_OP_TYPE_GROUP(BYTE)
        -:   67:        /* extra types that are not required to be supported by the MPI Standard */
        -:   68:        MPIR_OP_TYPE_GROUP(C_INTEGER_EXTRA)
        -:   69:        MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA)
        -:   70:        MPIR_OP_TYPE_GROUP(BYTE_EXTRA)
        -:   71:#undef MPIR_OP_TYPE_MACRO
     4920:   72:            return MPI_SUCCESS;
        -:   73:        /* --BEGIN ERROR HANDLING-- */
        -:   74:        default:
       16:   75:            return MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OP, "**opundefined","**opundefined %s", "MPI_BOR" );
        -:   76:        /* --END ERROR HANDLING-- */
        -:   77:    }
        -:   78:}
        -:   79: