ARB
MP_probe_tabs.cxx
Go to the documentation of this file.
1 // ============================================================= //
2 // //
3 // File : MP_probe_tabs.cxx //
4 // Purpose : //
5 // //
6 // Institute of Microbiology (Technical University Munich) //
7 // http://www.arb-home.de/ //
8 // //
9 // ============================================================= //
10 
11 #include "MP_probe.hxx"
12 #include "MultiProbe.hxx"
13 
14 #include <cmath>
15 
16 // **************************************************************
18  int i;
19 
20 
21  printf("**********************\n");
22  printf("GRUPPENTABELLE:\n");
23  for (i=0; i< length_of_group_tabs; i++)
24  printf("%d %d \n", i, group_tab[i]);
25 
26  printf("NON_GRUPPENTABELLE:\n");
27  for (i=0; i< length_of_group_tabs; i++)
28  printf("%d %d\n", i, non_group_tab[i]);
29 
30  printf("**********************\n");
31 
32 }
33 
35  int i;
36  int *new_group_field = new int[length_of_group_tabs];
37  int *new_non_group_field = new int[length_of_group_tabs];
38 
39  for (i=0; i< length_of_group_tabs; i++) // LOOP_VECTORIZED[!<5.0]
40  new_group_field[i] = group_tab[i];
41 
42 
43  for (i=0; i< length_of_group_tabs; i++) // LOOP_VECTORIZED[!<5.0]
44  new_non_group_field[i] = non_group_tab[i];
45 
46  return new probe_tabs(new_group_field, new_non_group_field, length_of_group_tabs);
47 }
48 
49 
50 probe_tabs::probe_tabs(int *new_group_field, int *new_non_group_field, int len_group) {
51  int length;
52  memset((void*)this, 0, sizeof(probe_tabs)); // @@@ potentially dangerous (overwrites vtable pointer!)
53 
54  if (new_group_field) { // Duplicate !!!
55  group_tab = new_group_field;
56  non_group_tab = new_non_group_field;
57  length_of_group_tabs = len_group;
58  }
59  else {
60  length = (int)(pow(3.0, (double)mp_gl_awars.no_of_probes));
61  group_tab = new int[length];
62  memset(group_tab, 0, sizeof(int)*length);
63  non_group_tab = new int[length];
64  memset(non_group_tab, 0, sizeof(int)*length);
65  length_of_group_tabs = length;
66  }
67 }
68 
70  delete [] group_tab;
71  delete [] non_group_tab;
72 }
probe_tabs(int *new_group_field=NULp, int *new_non_group_field=NULp, int len_group=0)
probe_tabs * duplicate()
long no_of_probes
Definition: MultiProbe.hxx:96
awar_vars mp_gl_awars
Definition: MP_main.cxx:23
size_t length