Anzeige:
Ergebnis 1 bis 5 von 5

Thema: boost::random -> NaN

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36

    boost::random -> NaN

    Hi,
    hat jemand Erfahrung mit den Boost Libraries und speziell mit deren Random Number Generator!?
    Folgendes Stückchen produziert bei mir nämlich nur NaNs (Not a Number)!?

    Code:
    (...)
      static mt19937 rng(static_cast<unsigned> (std::time(0)));
      normal_distribution<double> norm_dist(0.0, 0.2);
    
      for (u_int i = 0; i < NUM_POINTS; i++) {
        std::cout << norm_dist(rng) << std::endl;
      }
    (...)
    Bin für jeden Hinweis dankbar!

    Thomas

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Kannst du mal was kompilierbares posten? Mit includes und in welcher Library das Zeugs ist; hab boost schon ne Weile nicht mehr benutzt (jetzt neuerdings wieder, aber nicht den Teil da... )

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36
    Code:
    #include <iostream>
    #include <boost/random.hpp>
    
    int main() {
      using namespace boost;
    
      static mt19937 rng(static_cast<unsigned> (std::time(0)));
      normal_distribution<double> norm_dist(0.0, 0.2);
    
      for (u_int i = 0; i < 10; i++) {
        std::cout << norm_dist(rng) << std::endl;
      }
    }

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Sorry für die lange Latenzzeit; sowas geht bei mir:

    Code:
    #include <iostream>
    #include <ctime>
    #include <boost/random.hpp>
    
    int main() {
      using namespace boost;
    
      mt19937 generator(std::time(0));
      normal_distribution<> dist(0,0.2);
      variate_generator<mt19937&, normal_distribution<> > gen(generator, dist);
    
      for (u_int i = 0; i < 10; i++) {
        std::cout << gen() << std::endl;
      }
    }
    Das macht dann:
    Code:
    peschmae@sid:/tmp$ ./test
    0.169281
    -0.129418
    -0.282518
    -0.323821
    0.157712
    0.274284
    0.328045
    0.191488
    -0.279004
    0.0202775
    Vermutlich hattest du ne veraltete Doku oder so? Die Samples die ich da rumliegen habe sehen alle aus wie mein Code.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.10.2004
    Beiträge
    36

    Thumbs up

    Das laeuft schon wesentlich besser Vielen Dank.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •