示例#1
0
 explicit PartiallySortedData(std::size_t n, std::size_t shuffles, T min = 0)
     : base_type("sorted data " + range_str(min, min+n), n)
     , m_rd()
     , m_gen(m_rd())
     , m_min(min)
     , m_max(min+n)
     , m_shuffles(shuffles)
 {
     resize_and_shuffle();
     D() << "created PartiallySortedData" << base_type::m_data;
 }
示例#2
0
文件: randomdata.hpp 项目: yekm/bench
    explicit RandomData(std::size_t n,
                        T min = std::numeric_limits<T>::lowest(),
                        T max = std::numeric_limits<T>::max())
        : base_type("uniform random " + range_str(min, max), n)
        , m_seed(utils::not_so_random_device()())
        , m_gen(m_seed)
        , m_min(min)
        , m_max(max)
    {
        base_type::m_data.resize(base_type::get_n());
        generate(m_min, m_max);

#ifdef DEBUG_RANDOM
        auto h = utils::simple_histogram<T>(base_type::m_data, 50, min, max);
        utils::draw_histogram(h);
#endif
    }
示例#3
0
//------------------------------------------------------------------------------
//!
RCP<DFNodeAttrList>
DFNoiseImageEditor::attributes() const
{
   RCP<DFNodeAttrList> atts = new DFNodeAttrList();

   RCP<Table> enums = new Table();
   enums->pushBack( "Cell" );
   enums->pushBack( "Perlin" );
   enums->pushBack( "Perlin filtered" );
   enums->pushBack( "Voronoi" );
   enums->pushBack( "Fractional Brownian motion");
   atts->add( DFNodeAttr( "ENUM", ID_TYPE, "Type" ).enums( enums.ptr() ) );

   RCP<DFNodeAttrList> list;
   RCP<Table>  xtra;

   ConstString range_str( "range" );

   // Perlin Filtered.
   list = new DFNodeAttrList();
   xtra = new Table();
   xtra->set( range_str, Vec2f(0.2f, 0.75f) );
   list->add( DFNodeAttr( "FLOAT", ID_PERFIL_WIDTH, "Width" ).extras( xtra.ptr() ) );
   atts->add( DFNodeAttr( ID_PERFIL, "", list.ptr() ) );

   // Voronoi.
   list = new DFNodeAttrList();
   xtra = new Table();
   xtra->set( range_str, Vec2f(-2.0f, 2.0f) );
   list->add( DFNodeAttr( "FLOAT", ID_JITTER, "Jitter" ).extras( xtra.ptr() ) );
   atts->add( DFNodeAttr( ID_VORONOI, "", list.ptr() ) );

   // FBM.
   list = new DFNodeAttrList();
   xtra = new Table();
   xtra->set( range_str, Vec2f(0.0f, 1.0f) );
   list->add( DFNodeAttr( "FLOAT", ID_FBM_WIDTH, "Width" ).extras( xtra.ptr() ) );
   xtra = new Table();
   xtra->set( range_str, Vec2f(1.0f, 8.0) );
   list->add( DFNodeAttr( "INT"  , ID_OCTAVE, "Octaves" ).extras( xtra.ptr() ) );
   list->add( DFNodeAttr( "FLOAT", ID_LACUNARITY, "Lacunarity" ) );
   list->add( DFNodeAttr( "FLOAT", ID_GAIN, "Gain" ) );
   atts->add( DFNodeAttr( ID_FBM, "", list.ptr() ) );

   return atts;
}