raw
mpi_second_cut          1 #include "mpi.h"
mpi_second_cut 2 #include <stdlib.h>
mpi_second_cut 3
mpi_second_cut 4 void err(char *msg)
mpi_second_cut 5 {
mpi_second_cut 6 fprintf(stderr, "%s\n", msg);
mpi_second_cut 7 exit(1);
mpi_second_cut 8 }
mpi_second_cut 9
mpi_second_cut 10 void terpri(FILE *fp)
mpi_second_cut 11 {
mpi_second_cut 12 fprintf(fp, "\n");
mpi_second_cut 13 }
mpi_second_cut 14
mpi_second_cut 15 int main(int ac, char **av)
mpi_second_cut 16 {
mpi_second_cut 17 MPI a, b, y;
mpi_second_cut 18 int r;
mpi_second_cut 19
mpi_second_cut 20 r = secmem_init(1000);
mpi_second_cut 21 if (r==0) err("secmem init");
mpi_second_cut 22
mpi_second_cut 23 a = mpi_alloc_secure(0);
mpi_second_cut 24 b = mpi_alloc_secure(0);
mpi_second_cut 25 y = mpi_alloc_secure(0);
mpi_second_cut 26 mpi_fromstr(a, "0x1B0B206C488601");
mpi_second_cut 27 mpi_fromstr(b, "0x20E92FE28E1929");
mpi_second_cut 28 mpi_mul(y, a, b);
mpi_second_cut 29 mpi_free(a);
mpi_second_cut 30 mpi_free(b);
mpi_second_cut 31
mpi_second_cut 32 mpi_print(stdout, y, 1);
mpi_second_cut 33 mpi_free(y);
mpi_second_cut 34
mpi_second_cut 35 terpri(stdout);
mpi_second_cut 36 secmem_term();
mpi_second_cut 37
mpi_second_cut 38 return 0;
mpi_second_cut 39 }