int main(void) {
 int i[10];
 i_arr(sizeof(i));

 return EXIT_SUCCESS;
}
Exemple #2
0
void BcastObject()
{
   ROOT::Mpi::TEnvironment env(gApplication->Argc(), gApplication->Argv());
   ROOT::Mpi::TIntraCommunicator world;
   MpiInitTest(world, 2, ROOT::Mpi::GreaterIqual);
   Int_t root = 0;

   if (world.Rank() == root) {
      /**********
       * Matrix *
       **********/
      TMatrixD d_mat(2, 2);
      d_mat[0][0] = 0.1;
      d_mat[0][1] = 0.2;
      d_mat[1][0] = 0.3;
      d_mat[1][1] = 0.4;

      TMatrixF f_mat(2, 2);
      f_mat[0][0] = 0.01;
      f_mat[0][1] = 0.02;
      f_mat[1][0] = 0.03;
      f_mat[1][1] = 0.04;

      TMatrixDSparse sd_mat(2, 2);
      sd_mat[0][0] = 1.00001;

      /**********
       * TSring *
       **********/
      TString t_str = "hola";
      TStringLong tl_str = "123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890\n";
      tl_str += "123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890\n";
      tl_str += "123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890\n";
      /**********
       * TArray *
       **********/
      TArrayC c_arr(4);
      c_arr[0] = 'R';
      c_arr[1] = 'O';
      c_arr[2] = 'O';
      c_arr[3] = 'T';

      TArrayD d_arr(3);
      d_arr[0] = 1.1;
      d_arr[1] = 2.2;
      d_arr[2] = 3.3;

      TArrayF f_arr(3);
      f_arr[0] = 0.1;
      f_arr[1] = 0.2;
      f_arr[2] = 0.3;

      TArrayI i_arr(3);
      i_arr[0] = 1;
      i_arr[1] = 2;
      i_arr[2] = 3;




      world.BcastSendObject(d_mat, root);
      world.BcastSendObject(f_mat, root);
      world.BcastSendObject(sd_mat, root);
      world.BcastSendObject(t_str, root);
      world.BcastSendObject(tl_str, root);
      world.BcastSendObject(c_arr, root);
      world.BcastSendObject(d_arr, root);
      world.BcastSendObject(f_arr, root);
      world.BcastSendObject(i_arr, root);

   }


   /**********
    * Matrix *
    **********/
   TMatrixD d_mat(2, 2);
   TMatrixF f_mat(2, 2);
   TMatrixDSparse sd_mat(2, 2);

   TMatrixD d_mat_required(2, 2);
   d_mat_required[0][0] = 0.1;
   d_mat_required[0][1] = 0.2;
   d_mat_required[1][0] = 0.3;
   d_mat_required[1][1] = 0.4;

   TMatrixF f_mat_required(2, 2);
   f_mat_required[0][0] = 0.01;
   f_mat_required[0][1] = 0.02;
   f_mat_required[1][0] = 0.03;
   f_mat_required[1][1] = 0.04;

   TMatrixDSparse sd_mat_required(2, 2);
   sd_mat_required[0][0] = 1.00001;

   /**********
   * TSring *
   **********/
   TString t_str;
   TStringLong tl_str;
   TStringLong tl_str_required = "123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890\n";
   tl_str_required += "123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890\n";
   tl_str_required += "123456789012345678901234567890123456789012345678901234567890234567890123456789012345678901234567890\n";

   /**********
    * TArray *
    **********/
   TArrayC c_arr(4);
   TArrayD d_arr(3);
   TArrayF f_arr(3);
   TArrayI i_arr(3);

   TArrayC c_arr_required(4);
   c_arr_required[0] = 'R';
   c_arr_required[1] = 'O';
   c_arr_required[2] = 'O';
   c_arr_required[3] = 'T';

   TArrayD d_arr_required(3);
   d_arr_required[0] = 1.1;
   d_arr_required[1] = 2.2;
   d_arr_required[2] = 3.3;

   TArrayF f_arr_required(3);
   f_arr_required[0] = 0.1;
   f_arr_required[1] = 0.2;
   f_arr_required[2] = 0.3;

   TArrayI i_arr_required(3);
   i_arr_required[0] = 1;
   i_arr_required[1] = 2;
   i_arr_required[2] = 3;



   world.BcastRecvObject(d_mat, root);
   CompareTMatrixTest(d_mat, d_mat_required,__LINE__ ,world.Rank(), "Bcast Send/Recv Object MatrixD");

   world.BcastRecvObject(f_mat, root);
   CompareTMatrixTest(f_mat, f_mat_required,__LINE__ ,world.Rank(), "Bcast Send/Recv Object MatrixF");

   world.BcastRecvObject(sd_mat, root);
   CompareTMatrixTest(sd_mat, sd_mat_required,__LINE__, world.Rank(), "Bcast Send/Recv Object MatrixDSparse");

   world.BcastRecvObject(t_str, root);
   CompareTest(t_str, "hola",__LINE__, world.Rank(), "Bcast Send/Recv Object TString");

   world.BcastRecvObject(tl_str, root);
   CompareTest(tl_str, tl_str_required,__LINE__, world.Rank(), "Bcast Send/Recv Object TStringLong");

   world.BcastRecvObject(c_arr, root);
   CompareTArrayTest(c_arr, c_arr_required,__LINE__, world.Rank(), "Bcast Send/Recv Object TArrayC");

   world.BcastRecvObject(d_arr, root);
   CompareTArrayTest(d_arr, d_arr_required,__LINE__, world.Rank(), "Bcast Send/Recv Object TArrayD");

   world.BcastRecvObject(f_arr, root);
   CompareTArrayTest(f_arr, f_arr_required,__LINE__, world.Rank(), "Bcast Send/Recv Object TArrayF");

   world.BcastRecvObject(i_arr, root);
   CompareTArrayTest(i_arr, i_arr_required,__LINE__, world.Rank(), "Bcast Send/Recv Object TArrayI");
}