text: /* 
   * @HEADER
   *
   * ***********************************************************************
   *
   *  Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
   *                  Copyright 2012 Sandia Corporation
   *
   * Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
   * the U.S. Government retains certain rights in this software.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
   * met:
   *
   * 1. Redistributions of source code must retain the above copyright
   * notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in the
   * documentation and/or other materials provided with the distribution.
   *
   * 3. Neither the name of the Corporation nor the names of the
   * contributors may be used to endorse or promote products derived from
   * this software without specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
   * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   *
   * Questions? Contact Karen Devine	kddevin@sandia.gov
   *                    Erik Boman	egboman@sandia.gov
   *
   * ***********************************************************************
   *
   * @HEADER
   */
  
  
  #include <stdio.h>
  #include <stdlib.h>
  
  #include "zoltan_dd_const.h"
  
  
  #ifdef __cplusplus
  /* if C++, define the rest of this header file as extern C */
  extern "C" {
  #endif
  
  
  /*  NOTE: See file, README, for associated documentation. (RTH) */
  
  
  static unsigned int dd_hash_user (
    ZOLTAN_ID_PTR gid, int gid_length, 
    unsigned int nproc,
    void *data,
    ZOLTAN_HASH_FN *fn)
  {
    return (*fn)(gid, gid_length, nproc);
  }
  
  /*************  Zoltan_DD_Set_Hash_Fn()  ***********************/
  
  
  int Zoltan_DD_Set_Hash_Fn (
   Zoltan_DD_Directory *dd,              /* directory state information */
   ZOLTAN_HASH_FN *hash)
  {
     char *yo = "Zoltan_DD_Set_Hash_Fn";
  
     /* input sanity checking */
     if (dd == NULL || hash == NULL)  {
        ZOLTAN_PRINT_ERROR (0, yo, "Invalid input argument");
        return ZOLTAN_FATAL ;
     }
  
     dd->hash = (DD_Hash_fn*)dd_hash_user;
     dd->hashdata = NULL;
     dd->hashfn = hash;
     dd->cleanup = (DD_Cleanup_fn*) NULL; 
  
     if (dd->debug_level > 0)
        ZOLTAN_PRINT_INFO (dd->my_proc, yo, "Successful");
  
     return ZOLTAN_OK;
  }
  
  
  #ifdef __cplusplus
  } /* closing bracket for extern "C" */
  #endif
  