rand1.c 467 B

1234567891011121314151617181920212223242526272829303132
  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
  15. G_math_rand (int seed)
  16. {
  17. #if defined(HAVE_DRAND48)
  18. if (seed < 0)
  19. srand48(-seed);
  20. return (float) drand48();
  21. #else
  22. if (seed < 0)
  23. srand(-seed);
  24. return 1.0f * rand() / RAND_MAX;
  25. #endif
  26. }