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