libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
msm_performance.cpp File Reference
#include "stdafx.h"
#include <boost/test/included/unit_test.hpp>
#include <boost/mpl/size.hpp>
#include "core/msm.hpp"
#include "core/ave_deviation_meter.hpp"
#include "core/stats_output.hpp"
#include <chrono>
#include <random>
Include dependency graph for msm_performance.cpp:

Go to the source code of this file.

Classes

struct  data< LT >
 
struct  assign_event
 
struct  assign_event1
 
struct  assign_event2
 
struct  assign_event3
 
struct  assign_event4
 
struct  assign_event5
 
struct  assign_event6
 
struct  assign_event7
 
struct  assign_event8
 
struct  assign_event9
 
struct  unroll
 
struct  unroll::state_machine_t
 
struct  jump_table
 
struct  jump_table::state_machine_t
 
struct  computed_goto
 
struct  computed_goto::state_machine_t
 
struct  hash
 
struct  hash::state_machine_t
 

Macros

#define BOOST_TEST_MODULE   libjmmcg_tests
 

Typedefs

using timed_results_t = ave_deviation_meter< unsigned long long >
 
using state_machines_t = boost::mpl::list< unroll::machine, jump_table::machine >
 

Enumerations

enum class  states {
  start , assign , assign1 , assign2 ,
  assign3 , assign4 , assign5 , assign6 ,
  assign7 , assign8 , assign9 , end ,
  unknown , start , middle , middle1 ,
  end , unknown , start , assign ,
  assign1 , assign2 , assign3 , assign4 ,
  assign5 , assign6 , assign7 , assign8 ,
  assign9 , end , unknown , start ,
  middle , middle1 , end , unknown
}
 
enum class  states {
  start , assign , assign1 , assign2 ,
  assign3 , assign4 , assign5 , assign6 ,
  assign7 , assign8 , assign9 , end ,
  unknown , start , middle , middle1 ,
  end , unknown , start , assign ,
  assign1 , assign2 , assign3 , assign4 ,
  assign5 , assign6 , assign7 , assign8 ,
  assign9 , end , unknown , start ,
  middle , middle1 , end , unknown
}
 

Functions

std::mt19937_64 gen (42)
 
std::ostream & operator<< (std::ostream &os, states const s) noexcept(false)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (state_changes, state_machine_t, state_machines_t)
 

Variables

std::uniform_int_distribution< unsigned > distribution
 
auto generator =std::bind(distribution, gen)
 

Macro Definition Documentation

◆ BOOST_TEST_MODULE

#define BOOST_TEST_MODULE   libjmmcg_tests

Definition at line 21 of file msm_performance.cpp.

Typedef Documentation

◆ state_machines_t

Definition at line 259 of file msm_performance.cpp.

◆ timed_results_t

using timed_results_t = ave_deviation_meter<unsigned long long>

Definition at line 35 of file msm_performance.cpp.

Enumeration Type Documentation

◆ states [1/2]

enum class states
strong
Enumerator
start 
assign 
assign1 
assign2 
assign3 
assign4 
assign5 
assign6 
assign7 
assign8 
assign9 
end 
unknown 
start 
middle 
middle1 
end 
unknown 
start 
assign 
assign1 
assign2 
assign3 
assign4 
assign5 
assign6 
assign7 
assign8 
assign9 
end 
unknown 
start 
middle 
middle1 
end 
unknown 

Definition at line 44 of file msm_performance.cpp.

◆ states [2/2]

enum class states
strong
Enumerator
start 
assign 
assign1 
assign2 
assign3 
assign4 
assign5 
assign6 
assign7 
assign8 
assign9 
end 
unknown 
start 
middle 
middle1 
end 
unknown 
start 
assign 
assign1 
assign2 
assign3 
assign4 
assign5 
assign6 
assign7 
assign8 
assign9 
end 
unknown 
start 
middle 
middle1 
end 
unknown 

Definition at line 44 of file msm_performance.cpp.

Function Documentation

◆ BOOST_AUTO_TEST_CASE_TEMPLATE()

BOOST_AUTO_TEST_CASE_TEMPLATE ( state_changes  ,
state_machine_t  ,
state_machines_t   
)

\xrefitem test 21. \xrefitem test 171.

Definition at line 275 of file msm_performance.cpp.

◆ gen()

std::mt19937_64 gen ( 42  )

Try to ensure that the events are sufficiently complex to baffle the optimizer.

◆ operator<<()

std::ostream & operator<< ( std::ostream &  os,
states const  s 
)
noexcept

Definition at line 60 of file msm_performance.cpp.

Variable Documentation

◆ distribution

std::uniform_int_distribution< unsigned > distribution

Definition at line 41 of file msm_performance.cpp.

◆ generator

auto generator =std::bind(distribution, gen)

Definition at line 42 of file msm_performance.cpp.