Jeff, could you please test this and if it works we'll make a 1.3.4 release tomorrow?
Matthias
On 26 Jan 2009, at 19:40, Synge Todo wrote:
The patch attached below seems to solve the problem (at least for gcc 4.3.2 on CentOS 5.2). I've already applied it to svn.
Synge
Index: abstractspinsim.h
--- abstractspinsim.h (revision 3082) +++ abstractspinsim.h (working copy) @@ -99,8 +99,6 @@ sweeps_(static_cast<uint64_t>(parms["SWEEPS"])), h_(parms.defined("h") ? TinyVector<double,MAT::dim>(parms["h"],parms) : (parms.defined("H") ? TinyVector<double,MAT::dim>(parms["H"],parms) : TinyVector<double,MAT::dim>(0.0))),
- h_normalized(h_*(1./std::sqrt(h_.get_length2()))),
- has_magnetic_field_(h_normalized.get_length2()>1.e-10), sweeps_done_(0), thermalization_(parms.value_or_default("THERMALIZATION",sweeps_/
10)), thermalization_fraction_(0.), @@ -117,6 +115,11 @@ g_(parms.defined("g") ? alps::evaluate<double>(parms["g"],parms) : 1.), print_sweeps_(parms.value_or_default("PRINT_SWEEPS",0)) {
- // 2009-01-27: wistaria@comp-phys.org
- // moved from the inilializaton list to avoid 'internal compiler
error' in gcc 4.3.x
- h_normalized = h_*(1./std::sqrt(h_.get_length2()));
- has_magnetic_field_ = h_normalized.get_length2()>1.e-10;
- if (inhomogeneous()) boost::throw_exception(std::runtime_error("Disordered lattices
not supported by the classical Monte Carlo program.\n"));