Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test_IO_utils.cpp
Go to the documentation of this file.
1 
13 #include "commonParameters.h"
14 #include "bridgeIO.h"
15 using Bridge::vout;
16 
17 #include "test_IO_utils.h"
18 
19 //====================================================================
20 bool operator==(const Field_G& f, const Field_G& g)
21 {
22  if (f.nin() != g.nin()) return false;
23 
24  if (f.nvol() != g.nvol()) return false;
25 
26  if (f.nex() != g.nex()) return false;
27 
28  if (f.size() != g.size()) return false;
29 
30  unsigned int size = f.size();
31 
32  Field *fp = (Field *)&f;
33  Field *gp = (Field *)&g;
34 
35  for (unsigned int i = 0; i < size; ++i) {
36  if (*fp->ptr(i) != *gp->ptr(i)) return false;
37  }
38 
39  return true;
40 }
41 
42 
43 //====================================================================
44 namespace Test_IO_GaugeConfig {
45  int check_conf(const Field_G *f, const Field_G *g)
46  {
48 
49  int err = 0;
50 
51  int Ndim = CommonParameters::Ndim();
52  int Nvol = CommonParameters::Nvol();
53  int Nc = CommonParameters::Nc();
54 
55  for (int idir = 0; idir < Ndim; ++idir) {
56  for (int isite = 0; isite < Nvol; ++isite) {
57  for (int i = 0; i < Nc * Nc; ++i) {
58  double v1r = f->cmp_r(i, isite, idir);
59  double v1i = f->cmp_i(i, isite, idir);
60 
61  double v2r = g->cmp_r(i, isite, idir);
62  double v2i = g->cmp_i(i, isite, idir);
63 
64  if (!((v1r == v2r) && (v1i == v2i))) ++err;
65 
66  vout.general(vl, "%6d : %4d: %2d: %8.5f %8.5f\t%8.5f %8.5f : %s\n",
67  isite, i, idir,
68  v1r, v1i, v2r, v2i,
69  ((v1r == v2r) && (v1i == v2i)) ? "ok" : "fail");
70  }
71  }
72  }
73 
74  vout.general(vl, "%s: error=%d\n", __func__, err);
75 
76  return err;
77  }
78 } // namespace Test_IO_GaugeConfig