summaryrefslogtreecommitdiff
path: root/libguile/random.h
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/random.h')
-rw-r--r--libguile/random.h54
1 files changed, 25 insertions, 29 deletions
diff --git a/libguile/random.h b/libguile/random.h
index 109969e01..e3bb321c3 100644
--- a/libguile/random.h
+++ b/libguile/random.h
@@ -1,29 +1,28 @@
-/* classes: h_files */
-
#ifndef SCM_RANDOM_H
#define SCM_RANDOM_H
-/* Copyright (C) 1999,2000,2001, 2006, 2008, 2010 Free Software Foundation, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 3 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
+/* Copyright 1999-2001,2006,2008,2010,2018
+ Free Software Foundation, Inc.
+
+ This file is part of Guile.
+
+ Guile is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Guile is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with Guile. If not, see
+ <https://www.gnu.org/licenses/>. */
-#include "libguile/__scm.h"
+#include <libguile/error.h>
/*
@@ -46,7 +45,7 @@ typedef struct scm_t_rstate {
typedef struct scm_t_rng {
size_t rstate_size; /* size of random state */
- scm_t_uint32 (*random_bits) (scm_t_rstate *state); /* gives 32 random bits */
+ uint32_t (*random_bits) (scm_t_rstate *state); /* gives 32 random bits */
void (*init_rstate) (scm_t_rstate *state, const char *seed, int n);
scm_t_rstate *(*copy_rstate) (scm_t_rstate *state);
void (*from_datum) (scm_t_rstate *state, SCM datum);
@@ -66,8 +65,8 @@ SCM_API scm_t_rstate *scm_c_default_rstate (void);
SCM_API double scm_c_uniform01 (scm_t_rstate *);
SCM_API double scm_c_normal01 (scm_t_rstate *);
SCM_API double scm_c_exp1 (scm_t_rstate *);
-SCM_API scm_t_uint32 scm_c_random (scm_t_rstate *, scm_t_uint32 m);
-SCM_API scm_t_uint64 scm_c_random64 (scm_t_rstate *state, scm_t_uint64 m);
+SCM_API uint32_t scm_c_random (scm_t_rstate *, uint32_t m);
+SCM_API uint64_t scm_c_random64 (scm_t_rstate *state, uint64_t m);
SCM_API SCM scm_c_random_bignum (scm_t_rstate *, SCM m);
@@ -78,6 +77,9 @@ SCM_API scm_t_bits scm_tc16_rstate;
#define SCM_RSTATEP(obj) SCM_SMOB_PREDICATE (scm_tc16_rstate, obj)
#define SCM_RSTATE(obj) ((scm_t_rstate *) SCM_SMOB_DATA (obj))
+#define SCM_VALIDATE_RSTATE(pos, v) \
+ SCM_MAKE_VALIDATE_MSG (pos, v, RSTATEP, "random-generator-state")
+
SCM_API unsigned char scm_masktab[256];
SCM_API SCM scm_var_random_state;
@@ -98,9 +100,3 @@ SCM_INTERNAL void scm_init_random (void);
SCM_INTERNAL void scm_i_random_bytes_from_platform (unsigned char *buf, size_t len);
#endif /* SCM_RANDOM_H */
-
-/*
- Local Variables:
- c-file-style: "gnu"
- End:
-*/