I am trying to check a vector observable for convergence by testing its evaluator like: myvectorobseval.converged_errors()==alps::CONVERGED
This code works fine for scalar observable evaluators, but for vector observable evaluators I get the following error: error: no match for 'operator==' in 'alps::SimpleObservableEvaluator<T>::converged_errors() const [with T = std::valarray<double>]() == NOT_CONVERGED'
Somehow "==" seems to be undefined for obs_value_traits< std::valarray<double> >::convergence_type, so I would be grateful for any advice how to work around this rather strange behaviour.
Thank you very much in advance, Johannes
For a vector observable this returns a vector and you need to test each entry individually. SOme might be converged, others not yet
Matthias
On Jun 14, 2008, at 7:06 PM, Johannes Wilms wrote:
I am trying to check a vector observable for convergence by testing its evaluator like: myvectorobseval.converged_errors()==alps::CONVERGED
This code works fine for scalar observable evaluators, but for vector observable evaluators I get the following error: error: no match for 'operator==' in 'alps::SimpleObservableEvaluator<T>::converged_errors() const [with T = std::valarray<double>]() == NOT_CONVERGED'
Somehow "==" seems to be undefined for obs_value_traits< std::valarray<double> >::convergence_type, so I would be grateful for any advice how to work around this rather strange behaviour.
Thank you very much in advance, Johannes
comp-phys-alps-users@lists.phys.ethz.ch