Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include "random.c"
  2.  
  3. /*
  4.  * random_mod_init()
  5.  *
  6.  * random module initialization function
  7.  */
  8. void random_init(TP)
  9. {
  10.     /*
  11.      * module dict for random
  12.      */
  13.     tp_obj random_mod = tp_dict(tp);
  14.  
  15.     /*
  16.      * bind functions to random module
  17.      */
  18.     tp_set(tp, random_mod, tp_string("seed"),       tp_fnc(tp, random_seed));
  19.     tp_set(tp, random_mod, tp_string("getstate"),   tp_fnc(tp, random_getstate));
  20.     tp_set(tp, random_mod, tp_string("setstate"),   tp_fnc(tp, random_setstate));
  21.     tp_set(tp, random_mod, tp_string("jumpahead"),  tp_fnc(tp, random_jumpahead));
  22.     tp_set(tp, random_mod, tp_string("random"),     tp_fnc(tp, random_random));
  23.  
  24.     /*
  25.      * bind usual distribution random variable generator
  26.      */
  27.     tp_set(tp, random_mod, tp_string("uniform"),        tp_fnc(tp, random_uniform));
  28.     tp_set(tp, random_mod, tp_string("normalvariate"),  tp_fnc(tp, random_normalvariate));
  29.     tp_set(tp, random_mod, tp_string("lognormvariate"), tp_fnc(tp, random_lognormvariate));
  30.     tp_set(tp, random_mod, tp_string("expovariate"),    tp_fnc(tp, random_expovariate));
  31.     tp_set(tp, random_mod, tp_string("vonmisesvariate"), tp_fnc(tp, random_vonmisesvariate));
  32.     tp_set(tp, random_mod, tp_string("gammavariate"),   tp_fnc(tp, random_gammavariate));
  33.     tp_set(tp, random_mod, tp_string("betavariate"),    tp_fnc(tp, random_betavariate));
  34.     tp_set(tp, random_mod, tp_string("paretovariate"),  tp_fnc(tp, random_paretovariate));
  35.     tp_set(tp, random_mod, tp_string("weibullvariate"), tp_fnc(tp, random_weibullvariate));
  36.     tp_set(tp, random_mod, tp_string("randrange"),      tp_fnc(tp, random_randrange));
  37.     tp_set(tp, random_mod, tp_string("randint"),        tp_fnc(tp, random_randint));
  38.     tp_set(tp, random_mod, tp_string("choice"),         tp_fnc(tp, random_choice));
  39.     tp_set(tp, random_mod, tp_string("shuffle"),        tp_fnc(tp, random_shuffle));
  40.  
  41.     /*
  42.      * bind special attributes to random module
  43.      */
  44.     tp_set(tp, random_mod, tp_string("__doc__"),  tp_string("Random variable generators."));
  45.     tp_set(tp, random_mod, tp_string("__name__"), tp_string("random"));
  46.     tp_set(tp, random_mod, tp_string("__file__"), tp_string(__FILE__));
  47.  
  48.     /*
  49.      * bind random module to tinypy modules[]
  50.      */
  51.     tp_set(tp, tp->modules, tp_string("random"), random_mod);
  52. }
  53.