Belle II Software  release-06-02-00
random_if.cc
1 #include <TRandom.h>
2 #include <stdio.h>
3 
4 double SFMTgenrand_real3()
5 {
6  return gRandom->Rndm();
7 }
8 extern "C" {
9  void kkmc_rand_init_(unsigned long* seed)
10  {
11  float dum;
12  printf("kkmc: kkmc_rand_init seed= %lu\n", *seed);
13  // init_SFMTgen_rand(*seed);
14  dum = (float)SFMTgenrand_real3();
15  printf("kkmc: kkmc_rand_init test random number= %f\n", dum);
16  dum = (float)SFMTgenrand_real3();
17  printf("kkmc: kkmc_rand_init test random number= %f\n", dum);
18  }
19 
20  void kkmc_rand_real_(float* rnd)
21  {
22  do {
23  *rnd = (float)SFMTgenrand_real3();
24  } while (*rnd == 0.0);
25  }
26 
27  void kkmc_rand_double_(double* rnd)
28  {
29  do {
30  *rnd = SFMTgenrand_real3();
31  } while (*rnd == 0.0);
32  }
33 
34  void kkmc_ranmar_(float* rvec, int* lenv)
35  {
36  int i;
37  /* printf("kkmc_ranmar; %d\n",*lenv); */
38  for (i = 0; i < *lenv; i++) {
39  do {
40  rvec[i] = (float)SFMTgenrand_real3();
41  } while (rvec[i] == 0.0);
42  /* printf("kkmc_ranmar; %f\n",rvec[i]); */
43  }
44  }
45 
46  void kkmc_ranlux_(float* rvec, int* lenv)
47  {
48  /* printf("kkmc_ranlux; %d\n",*lenv); */
49  kkmc_ranmar_(rvec, lenv);
50  /* printf("kkmc_ranlux; %f\n",rvec[i]); */
51  }
52 
53 }