Action_Thermostats
        Adding_Graph_to_ChangeBondActions
        Adding_MD_integration_tests
        Adding_StructOpt_integration_tests
        AutomationFragmentation_failures
        Candidate_v1.6.1
        Candidate_v1.7.0
        ChemicalSpaceEvaluator
        Enhanced_StructuralOptimization
        Enhanced_StructuralOptimization_continued
        Exclude_Hydrogens_annealWithBondGraph
        Fix_Verbose_Codepatterns
        ForceAnnealing_with_BondGraph
        ForceAnnealing_with_BondGraph_continued
        ForceAnnealing_with_BondGraph_continued_betteresults
        ForceAnnealing_with_BondGraph_contraction-expansion
        Gui_displays_atomic_force_velocity
        JobMarket_RobustOnKillsSegFaults
        JobMarket_StableWorkerPool
        PythonUI_with_named_parameters
        Recreated_GuiChecks
        StoppableMakroAction
        TremoloParser_IncreasedPrecision
        stable
      
      
        
          | Last change
 on this file since 92d0e6 was             47cee7, checked in by Frederik Heber <heber@…>, 12 years ago | 
        
          | 
Writing out energy file with value and contribution per index set
 placed in printReceivedShortResultsPerIndex().
added writeIndexedTable which writes per indexset not per level.
HeaderPrinter is not initialized with some string anymore.
ValuePrinter does not write the level anymore.
these are now done in write(Indexed)Table.
TESTFIX: Added BondFragment_IndexedEnergy.dat diff to regression tests.
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            1.3 KB | 
      
      
| Line |  | 
|---|
| 1 | /* | 
|---|
| 2 | * ValuePrinter.hpp | 
|---|
| 3 | * | 
|---|
| 4 | *  Created on: Aug 3, 2012 | 
|---|
| 5 | *      Author: heber | 
|---|
| 6 | */ | 
|---|
| 7 |  | 
|---|
| 8 | #ifndef VALUEPRINTER_HPP_ | 
|---|
| 9 | #define VALUEPRINTER_HPP_ | 
|---|
| 10 |  | 
|---|
| 11 |  | 
|---|
| 12 | // include config.h | 
|---|
| 13 | #ifdef HAVE_CONFIG_H | 
|---|
| 14 | #include <config.h> | 
|---|
| 15 | #endif | 
|---|
| 16 |  | 
|---|
| 17 | #include <boost/fusion/container/map.hpp> | 
|---|
| 18 | #include <iomanip> | 
|---|
| 19 | #include <sstream> | 
|---|
| 20 | #include <string> | 
|---|
| 21 |  | 
|---|
| 22 | #include "CodePatterns/toString.hpp" | 
|---|
| 23 |  | 
|---|
| 24 | /** ValuePrinter prints the value for one row in a table of values each associated to a | 
|---|
| 25 | * specific boost::fusion-style key \a MapKey. | 
|---|
| 26 | * | 
|---|
| 27 | * This is made such that we may use boost::mpl::for_each to quickly create | 
|---|
| 28 | * the value line if specialized printName()s and a boost::fusion::vector | 
|---|
| 29 | * containing all these keys is present | 
|---|
| 30 | */ | 
|---|
| 31 | template <typename MapType, int numprecision=5> | 
|---|
| 32 | struct ValuePrinter { | 
|---|
| 33 | ValuePrinter(const MapType &_instance) : | 
|---|
| 34 | instance(_instance), | 
|---|
| 35 | value("") | 
|---|
| 36 | {} | 
|---|
| 37 |  | 
|---|
| 38 | template <typename MapKey> | 
|---|
| 39 | void operator()(MapKey &) { | 
|---|
| 40 | //typedef typename boost::fusion::result_of::value_at_key<MapType, MapKey>::type MapValue; | 
|---|
| 41 | std::stringstream valuestream; | 
|---|
| 42 | valuestream << std::setprecision(numprecision) << boost::fusion::at_key<MapKey>(instance); | 
|---|
| 43 | value += std::string("\t") + valuestream.str(); | 
|---|
| 44 | } | 
|---|
| 45 |  | 
|---|
| 46 | const std::string &get() const { | 
|---|
| 47 | return value; | 
|---|
| 48 | } | 
|---|
| 49 |  | 
|---|
| 50 | private: | 
|---|
| 51 | const MapType &instance; | 
|---|
| 52 | std::string value; | 
|---|
| 53 | }; | 
|---|
| 54 |  | 
|---|
| 55 |  | 
|---|
| 56 | #endif /* VALUEPRINTER_HPP_ */ | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.