1 #ifndef MPFRX_MPI_H 2 #define MPFRX_MPI_H 3 4 /* mpfrx-mpi.h -- headers for mpfrx-mpi.h 5 * 6 * Copyright (C) 2012, 2013 INRIA 7 * 8 * This file is part of CMH. 9 * 10 * CMH is free software; you can redistribute it and/or modify it under 11 * the terms of the GNU General Public License as published by the 12 * Free Software Foundation; either version 3 of the License, or (at your 13 * option) any later version. 14 * 15 * CMH is distributed in the hope that it will be useful, but WITHOUT ANY 16 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 17 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for 18 * more details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with this program. If not, see http://www.gnu.org/licenses/ . 22 */ 23 24 #include <mpfrcx.h> 25 #include "assert.h" 26 #include "cm2.h" 27 /* for the definition of struct cm_data */ 28 #include "io.h" 29 /* for checkpointing of the product trees */ 30 31 #define MPI_MPFRX_READY 201 32 #define MPI_MPFRX_JOB_MPFRX_MUL 202 33 #define MPI_MPFRX_JOB_MPFRX_KARA 203 34 #define MPI_MPFRX_JOB_MPFRX_TC 204 35 #define MPI_MPFRX_RESULT 205 36 #define MPI_MPFRX_DATA 206 37 #define MPI_MPFRX_WAIT 207 38 #define MPI_MPFRX_FINISH 208 39 40 typedef struct { 41 int no; 42 int levels; 43 int **node; 44 int *width; 45 } 46 __tree_struct; 47 48 typedef __tree_struct tree_t [1]; 49 typedef __tree_struct *tree_ptr; 50 51 #if defined (__cplusplus) 52 extern "C" { 53 #endif 54 55 extern void mpfrx_tree_print (mpfrx_tree_ptr t); 56 57 extern void mpi_mpfrx_server_init (); 58 extern void mpi_mpfrx_server_finalise (); 59 extern void mpi_mpfrx_client_init (); 60 extern void mpi_mpfrx_client (); 61 62 extern void mpi_mpfrx_server_product_and_hecke (mpfrx_t *rop, mpfrx_t **vals, 63 int no_pols, int no_factors, int level, 64 const struct cm_data * K, const int orbit, const int iter); 65 66 #if defined (__cplusplus) 67 } 68 #endif 69 70 #endif 71