SILENT KILLERPanel

Current Path: > > opt > alt > ruby33 > include > ruby > internal > intern


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt/ruby33/include/ruby/internal/intern

NameTypeSizeLast ModifiedActions
select Directory - -
array.h File 25755 bytes April 24 2025 07:57:42.
bignum.h File 30764 bytes April 24 2025 07:57:42.
class.h File 16051 bytes April 24 2025 07:57:42.
compar.h File 2573 bytes April 24 2025 07:57:42.
complex.h File 8406 bytes April 24 2025 07:57:42.
cont.h File 11701 bytes April 24 2025 07:57:42.
dir.h File 1942 bytes April 24 2025 07:57:42.
enum.h File 2891 bytes April 24 2025 07:57:42.
enumerator.h File 12422 bytes April 24 2025 07:57:42.
error.h File 9821 bytes April 24 2025 07:57:42.
eval.h File 8696 bytes April 24 2025 07:57:42.
file.h File 9598 bytes April 24 2025 07:57:42.
hash.h File 11896 bytes April 24 2025 07:57:42.
io.h File 26868 bytes April 24 2025 07:57:42.
load.h File 10670 bytes April 24 2025 07:57:42.
marshal.h File 5578 bytes April 24 2025 07:57:42.
numeric.h File 7672 bytes April 24 2025 07:57:42.
object.h File 19585 bytes April 24 2025 07:57:42.
parse.h File 6326 bytes April 24 2025 07:57:42.
proc.h File 13860 bytes April 24 2025 07:57:42.
process.h File 11569 bytes April 24 2025 07:57:42.
random.h File 4400 bytes April 24 2025 07:57:42.
range.h File 4071 bytes April 24 2025 07:57:42.
rational.h File 6491 bytes April 24 2025 07:57:42.
re.h File 8728 bytes April 24 2025 07:57:42.
ruby.h File 2848 bytes April 24 2025 07:57:42.
select.h File 3946 bytes April 24 2025 07:57:42.
signal.h File 6547 bytes April 24 2025 07:57:42.
sprintf.h File 6468 bytes April 24 2025 07:57:42.
string.h File 68985 bytes April 24 2025 07:57:42.
struct.h File 8946 bytes April 24 2025 07:57:42.
thread.h File 18460 bytes April 24 2025 07:57:42.
time.h File 6486 bytes April 24 2025 07:57:42.
variable.h File 21308 bytes April 24 2025 07:57:42.
vm.h File 16872 bytes April 24 2025 07:57:42.

Reading File: //opt/alt/ruby33/include/ruby/internal/intern/random.h

#ifndef RBIMPL_INTERN_RANDOM_H                       /*-*-C++-*-vi:se ft=cpp:*/
#define RBIMPL_INTERN_RANDOM_H
/**
 * @file
 * @author     Ruby developers <ruby-core@ruby-lang.org>
 * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.
 *             Permission  is hereby  granted,  to  either redistribute  and/or
 *             modify this file, provided that  the conditions mentioned in the
 *             file COPYING are met.  Consult the file for details.
 * @warning    Symbols   prefixed  with   either  `RBIMPL`   or  `rbimpl`   are
 *             implementation details.   Don't take  them as canon.  They could
 *             rapidly appear then vanish.  The name (path) of this header file
 *             is also an  implementation detail.  Do not expect  it to persist
 *             at the place it is now.  Developers are free to move it anywhere
 *             anytime at will.
 * @note       To  ruby-core:  remember  that   this  header  can  be  possibly
 *             recursively included  from extension  libraries written  in C++.
 *             Do not  expect for  instance `__VA_ARGS__` is  always available.
 *             We assume C99  for ruby itself but we don't  assume languages of
 *             extension libraries.  They could be written in C++98.
 * @brief      MT19937 backended pseudo random number generator.
 * @see        Matsumoto,  M.,   Nishimura,  T.,  "Mersenne  Twister:   A  623-
 *             dimensionally   equidistributed   uniform  pseudorandom   number
 *             generator", ACM  Trans. on  Modeling and Computer  Simulation, 8
 *             (1): pp 3-30, 1998.  https://doi.org/10.1145/272991.272995
 */
#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"

RBIMPL_SYMBOL_EXPORT_BEGIN()

/* random.c */

/**
 * Generates a 32 bit random number.
 *
 * @return  A random number.
 * @note    Now  that  we  have  ractors,  the  RNG  behind  this  function  is
 *          per-ractor.
 */
unsigned int rb_genrand_int32(void);

/**
 * Generates a `double` random number.
 *
 * @return  A random number.
 * @note    This function shares the RNG with rb_genrand_int32().
 */
double rb_genrand_real(void);

/**
 * Resets the RNG behind rb_genrand_int32()/rb_genrand_real().
 *
 * @post  The (now per-ractor) default RNG's internal state is cleared.
 */
void rb_reset_random_seed(void);

/**
 * Generates a String of random bytes.
 *
 * @param[in,out]  rnd  An instance of ::rb_cRandom.
 * @param[in]      n    Requested number of bytes.
 * @return         An instance of ::rb_cString, of binary, of `n` bytes length,
 *                 whose contents are random bits.
 *
 * @internal
 *
 * @shyouhei doesn't know if this is an  Easter egg or an official feature, but
 * this function can  take a wider range of objects,  such as `Socket::Ifaddr`.
 * The arguments are just silently ignored and the default RNG is used instead,
 * if they are non-RNG.
 */
VALUE rb_random_bytes(VALUE rnd, long n);

/**
 * Identical to rb_genrand_int32(), except it generates using the passed RNG.
 *
 * @param[in,out]  rnd  An instance of ::rb_cRandom.
 * @return         A random number.
 */
unsigned int rb_random_int32(VALUE rnd);

/**
 * Identical to rb_genrand_real(), except it generates using the passed RNG.
 *
 * @param[in,out]  rnd  An instance of ::rb_cRandom.
 * @return         A random number.
 */
double rb_random_real(VALUE rnd);

/**
 * Identical  to  rb_genrand_ulong_limited(),  except it  generates  using  the
 * passed RNG.
 *
 * @param[in,out]  rnd    An instance of ::rb_cRandom.
 * @param[in]      limit  Max possible return value.
 * @return         A random number, distributed in `[0, limit]` interval.
 * @note           Note it can return `limit`.
 * @note           Whether  the  return  value  distributes  uniformly  in  the
 *                 interval or not depends on  how the argument RNG behaves; at
 *                 least in case of MT19937 it does.
 */
unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit);

/**
 * Generates a random number whose upper limit is `i`.
 *
 * @param[in]  i  Max possible return value.
 * @return     A random number, uniformly distributed in `[0, limit]` interval.
 * @note       Note it can return `i`.
 */
unsigned long rb_genrand_ulong_limited(unsigned long i);

RBIMPL_SYMBOL_EXPORT_END()

#endif /* RBIMPL_INTERN_RANDOM_H */

SILENT KILLER Tool