@@ -75,74 +75,68 @@ define constant <gsl-rng-type>
7575define constant $gsl-rng-types :: ffi/<gsl-rng-type**>
7676 = ffi/gsl-rng-types-setup();
7777
78- define function gsl-rng-env-setup
79- () => ()
80- ffi/gsl-rng-env-setup();
81- end ;
78+ define constant gsl-rng-env-setup
79+ = ffi/gsl-rng-env-setup;
8280
8381define class <gsl-rng> (<object> )
8482 constant slot gsl-rng-seed :: <integer> ,
8583 init-keyword: seed:,
8684 init-value: ffi/gsl-rng-default-seed();
87- slot % gsl-rng :: ffi/<gsl-rng*>;
85+ slot gsl-rng-ffi :: ffi/<gsl-rng*>;
8886end ;
8987
9088define method initialize
91- (rng :: <gsl-rng>,
92- #key type :: false-or (<gsl-rng-type>) = #f )
89+ (r :: <gsl-rng>, #key type :: false-or (<gsl-rng-type>) = #f )
9390 => ()
9491 drain-finalization-queue();
9592 next-method ();
96-
9793 let rng-type :: ffi/<gsl-rng-type*>
98- = if (~type)
99- ffi/gsl-rng-default-type()
100- else
94+ = if (type)
10195 $gsl-rng-types[type]
96+ else
97+ ffi/gsl-rng-default-type()
10298 end ;
103-
104- rng.%gsl-rng := ffi/gsl-rng-alloc(rng-type);
105-
106- finalize-when-unreachable(rng);
99+ r.gsl-rng-ffi := ffi/gsl-rng-alloc(rng-type);
100+ ffi/gsl-rng-set(r.gsl-rng-ffi, r.gsl-rng-seed);
101+ finalize-when-unreachable(r);
107102end ;
108103
109104define method finalize
110105 (r :: <gsl-rng>) => ()
111- ffi/gsl-rng-free(r.% gsl-rng)
106+ ffi/gsl-rng-free(r.gsl-rng-ffi )
112107end ;
113108
114109define function gsl-rng-name
115110 (r :: <gsl-rng>) => (_ :: <string> )
116- ffi/gsl-rng-name(r.% gsl-rng)
111+ ffi/gsl-rng-name(r.gsl-rng-ffi )
117112end ;
118113
119114define function gsl-rng-min
120115 (r :: <gsl-rng>) => (_ :: <integer> )
121- ffi/gsl-rng-min(r.% gsl-rng)
116+ ffi/gsl-rng-min(r.gsl-rng-ffi )
122117end ;
123118
124119define function gsl-rng-max
125120 (r :: <gsl-rng>) => (_ :: <integer> )
126- ffi/gsl-rng-max(r.% gsl-rng)
121+ ffi/gsl-rng-max(r.gsl-rng-ffi )
127122end ;
128123
129124define function gsl-rng-get
130125 (r :: <gsl-rng>) => (_ :: <integer> )
131- ffi/gsl-rng-get(r.% gsl-rng)
126+ ffi/gsl-rng-get(r.gsl-rng-ffi )
132127end ;
133128
134129define function gsl-rng-uniform
135130 (r :: <gsl-rng>) => (_ :: <float> )
136- ffi/gsl-rng-uniform(r.% gsl-rng)
131+ ffi/gsl-rng-uniform(r.gsl-rng-ffi )
137132end ;
138133
139134define function gsl-rng-uniform-positive
140135 (r :: <gsl-rng>) => (_ :: <float> )
141- ffi/gsl-rng-uniform-pos(r.% gsl-rng)
136+ ffi/gsl-rng-uniform-pos(r.gsl-rng-ffi )
142137end ;
143138
144139define function gsl-rng-uniform-int
145140 (r :: <gsl-rng>, n :: <integer> ) => (_ :: <integer> )
146- ffi/gsl-rng-uniform-int(r.% gsl-rng, n)
141+ ffi/gsl-rng-uniform-int(r.gsl-rng-ffi , n)
147142end ;
148-
0 commit comments