rand1.c 474 B

12345678910111213141516171819202122232425262728293031
  1. #include <grass/config.h>
  2. #include <stdlib.h>
  3. #include <grass/gmath.h>
  4. /*!
  5. * \fn float G_math_rand (int seed)
  6. *
  7. * \brief Random Number Generator (Uniform)
  8. *
  9. * Random number generator (Uniform Derivatives 0.0 -> 1.0)
  10. *
  11. * \param[in] seed
  12. * \return float
  13. */
  14. float G_math_rand(int seed)
  15. {
  16. #if defined(HAVE_DRAND48)
  17. if (seed < 0)
  18. srand48(-seed);
  19. return (float)drand48();
  20. #else
  21. if (seed < 0)
  22. srand(-seed);
  23. return 1.0f * rand() / RAND_MAX;
  24. #endif
  25. }