|
Boost : |
From: Mario Ruetti (mruetti_at_[hidden])
Date: 2004-04-08 11:03:55
OK, for real tests, one should first generate some thousand random
numbers before calling seed()....
> To test the changes I used the post-condition which has to be fulfilled
> after seed()
> has been called, namely u.seed() == X() (same state as after default
> constructor called)
>
> //
> test's
>
//****************************************************************************
> ecuyer1988 ec, ec1;
> rngTest.register_rng<ecuyer1988>("Ecuyer 1988");
> ec.seed();
> if (ec == ec1)
> std::cout << "* additive_combine -> OK \n";
> else
> std::cout << "- additive_combine \n";
>
> taus88 taus;
> rngTest.register_rng<taus88>("Tausworthe 88");
> taus.seed();
> taus88 taus1;
> if (taus == taus1)
> std::cout << "* linear_feedback -> OK \n";
> else
> std::cout << "- linear_feedback \n";
>
> boost::hellekalek1995 helle, helle1;
> rngTest.register_rng<boost::hellekalek1995>("Hellekalek 1995");
> helle.seed();
> if (helle == helle1)
> std::cout << "* inverse_cong -> OK \n";
> else
> std::cout << "- inverse_cong \n";
>
>
> boost::ranlux64_3_01 ranlux, ranlux1;
> rngTest.register_rng<boost::ranlux64_3_01>("RanLux 64 Base");
> ranlux.seed();
> if (ranlux == ranlux1)
> std::cout << "* discard_block -> OK \n";
> else
> std::cout << "- discard_block \n";
>
>
> boost::kreutzer1986 kreutz, kreutz1;
> rngTest.register_rng<boost::kreutzer1986>("Kreutzers Generator");
> kreutz.seed();
> if (kreutz == kreutz1)
> std::cout << "* shuffle_output -> OK \n";
> else
> std::cout << "- shuffle_output
> \n";
>
//****************************************************************************
>
> output:
> * additive_combine -> OK
> * linear_feedback -> OK
> * inverse_cong -> OK
> * discard_block -> OK
> * shuffle_output -> OK
>
>
>
> Bye Mario Ruetti
>
>
>
> Index: linear_feedback_shift.hpp
> ===================================================================
> RCS file: /cvsroot/boost/boost/boost/random/linear_feedback_shift.hpp,v
> retrieving revision 1.7
> diff -r1.7 linear_feedback_shift.hpp
> 83c83
> < void seed(UIntType s0) { assert(s0 >= (1 << (w-k))); value = s0; }
> ---
> > void seed(UIntType s0 = 341) { assert(s0 >= (1 << (w-k))); value = s0;
> }
>
>
> Index: additive_combine.hpp
> ===================================================================
> RCS file: /cvsroot/boost/boost/boost/random/additive_combine.hpp,v
> retrieving revision 1.5
> diff -r1.5 additive_combine.hpp
> 62a63,68
> > void seed()
> > {
> > _mlcg1.seed();
> > _mlcg2.seed();
> > }
> >
>
>
> Index: inversive_congruential.hpp
> ===================================================================
> RCS file: /cvsroot/boost/boost/boost/random/inversive_congruential.hpp,v
> retrieving revision 1.6
> diff -r1.6 inversive_congruential.hpp
> 63c63
> < void seed(IntType y0) { value = y0; if(b == 0) assert(y0 > 0); }
> ---
> > void seed(IntType y0 = 1) { value = y0; if(b == 0) assert(y0 > 0); }
>
>
> Index: discard_block.hpp
> ===================================================================
> RCS file: /cvsroot/boost/boost/boost/random/discard_block.hpp,v
> retrieving revision 1.7
> diff -r1.7 discard_block.hpp
> 52a53
> > void seed() { _rng.seed(); _n = 0; }
>
>
> Index: shuffle_output.hpp
> ===================================================================
> RCS file: /cvsroot/boost/boost/boost/random/shuffle_output.hpp,v
> retrieving revision 1.6
> diff -r1.6 shuffle_output.hpp
> 65a66
> > void seed() { _rng.seed(); init(); }
>
> --
> NEU : GMX Internet.FreeDSL
> Ab sofort DSL-Tarif ohne Grundgebühr: http://www.gmx.net/info
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>
-- NEU : GMX Internet.FreeDSL Ab sofort DSL-Tarif ohne Grundgebühr: http://www.gmx.net/info
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk