/[gcl]/gcl/o/num_rand.c
ViewVC logotype

Diff of /gcl/o/num_rand.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by wfs, Mon Dec 6 22:44:12 1999 UTC revision 1.2 by camm, Sat Jul 20 07:10:55 2002 UTC
# Line 23  Foundation, 675 Mass Ave, Cambridge, MA Line 23  Foundation, 675 Mass Ave, Cambridge, MA
23          Random numbers          Random numbers
24  */  */
25    
26    #include <time.h>
27    
28  #include "include.h"  #include "include.h"
29  #include "num_include.h"  #include "num_include.h"
30    
# Line 31  Foundation, 675 Mass Ave, Cambridge, MA Line 33  Foundation, 675 Mass Ave, Cambridge, MA
33  #endif  #endif
34    
35  object  object
36  rando(x, rs)  rando(object x, object rs)
 object x, rs;  
37  {  {
38          enum type tx;          enum type tx;
39          object z;          object z;
# Line 57  object x, rs; Line 58  object x, rs;
58                  z = alloc_object(t_longfloat);                  z = alloc_object(t_longfloat);
59                  lf(z) = d;                  lf(z) = d;
60                  return(z);                  return(z);
61          } else          } else {
62                  FEerror("~S is not an integer nor a floating-point number.",                  FEerror("~S is not an integer nor a floating-point number.",
63                          1, x);                          1, x);
64                    return(Cnil);
65            }
66  }  }
67    
68  object  object
69  make_random_state(rs)  make_random_state(object rs)
 object rs;  
70  {  {
71          object z;          object z;
72  #ifdef AOSVS  #ifdef AOSVS
# Line 87  object rs; Line 89  object rs;
89    
90  #endif  #endif
91                  return(z);                  return(z);
92          } else if (type_of(rs) != t_random)          } else if (type_of(rs) != t_random) {
93                  FEwrong_type_argument(sLrandom_state, rs);                  FEwrong_type_argument(sLrandom_state, rs);
94          else {                  return(Cnil);
95            } else {
96                  z =alloc_object(t_random);                  z =alloc_object(t_random);
97                  z->rnd.rnd_value = rs->rnd.rnd_value;                  z->rnd.rnd_value = rs->rnd.rnd_value;
98                  return(z);                  return(z);
99          }          }
100  }  }
101    
102  advance_random_state(rs)  void
103  object rs;  advance_random_state(object rs)
104  {  {
105          rs->rnd.rnd_value          rs->rnd.rnd_value
106          = rs->rnd.rnd_value          = rs->rnd.rnd_value
# Line 107  object rs; Line 110  object rs;
110  }  }
111    
112    
113  Lrandom()  void
114    Lrandom(void)
115  {  {
116          int j;          int j;
117          object x;          object x;
         object rs;  
118                    
119          j = vs_top - vs_base;          j = vs_top - vs_base;
120          if (j == 1)          if (j == 1)
# Line 124  Lrandom() Line 127  Lrandom()
127          vs_push(x);          vs_push(x);
128  }  }
129    
130  Lmake_random_state()  void
131    Lmake_random_state(void)
132  {  {
133          int j;          int j;
134          object x;          object x;
# Line 138  Lmake_random_state() Line 142  Lmake_random_state()
142          vs_push(x);          vs_push(x);
143  }  }
144    
145  Lrandom_state_p()  void
146    Lrandom_state_p(void)
147  {  {
148          check_arg(1);          check_arg(1);
149          if (type_of(vs_pop) == t_random)          if (type_of(vs_pop) == t_random)
# Line 147  Lrandom_state_p() Line 152  Lrandom_state_p()
152                  vs_push(Cnil);                  vs_push(Cnil);
153  }  }
154    
155  init_num_rand()  void
156    init_num_rand(void)
157  {  {
158          Vrandom_state = make_special("*RANDOM-STATE*",          Vrandom_state = make_special("*RANDOM-STATE*",
159                                       make_random_state(Ct));                                       make_random_state(Ct));

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26