Mercurial > hg > octave-nkf
annotate liboctave/numeric/randmtzig.h @ 19898:4197fc428c7d
maint: Update copyright notices for 2015.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 11 Feb 2015 14:19:08 -0500 |
parents | d63878346099 |
children |
rev | line source |
---|---|
7019 | 1 /* |
2 | |
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
3 Copyright (C) 2006-2015 John W. Eaton |
7019 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
9 Free Software Foundation; either version 3 of the License, or (at your | |
10 option) any later version. | |
11 | |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with Octave; see the file COPYING. If not, see | |
19 <http://www.gnu.org/licenses/>. | |
20 | |
21 */ | |
22 | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
23 /* |
5742 | 24 A C-program for MT19937, with initialization improved 2002/2/10. |
25 Coded by Takuji Nishimura and Makoto Matsumoto. | |
26 This is a faster version by taking Shawn Cokus's optimization, | |
27 Matthe Bellew's simplification, Isaku Wada's real version. | |
28 David Bateman added normal and exponential distributions following | |
29 Marsaglia and Tang's Ziggurat algorithm. | |
30 | |
31 Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, | |
32 Copyright (C) 2004, David Bateman | |
33 All rights reserved. | |
34 | |
35 Redistribution and use in source and binary forms, with or without | |
36 modification, are permitted provided that the following conditions | |
37 are met: | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
38 |
5742 | 39 1. Redistributions of source code must retain the above copyright |
40 notice, this list of conditions and the following disclaimer. | |
41 | |
42 2. Redistributions in binary form must reproduce the above copyright | |
43 notice, this list of conditions and the following disclaimer in the | |
44 documentation and/or other materials provided with the distribution. | |
45 | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
46 3. The names of its contributors may not be used to endorse or promote |
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
47 products derived from this software without specific prior written |
5742 | 48 permission. |
49 | |
50 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
51 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
52 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
53 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER |
5742 | 54 OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
55 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
56 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
57 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
58 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
59 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
60 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
61 | |
62 */ | |
63 | |
64 #ifndef _RANDMTZIG_H | |
65 #define _RANDMTZIG_H | |
66 | |
67 #define MT_N 624 | |
68 | |
69 #ifdef __cplusplus | |
70 extern "C" { | |
71 #endif | |
72 | |
73 /* === Mersenne Twister === */ | |
13039
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
74 extern OCTAVE_API void oct_init_by_int (uint32_t s); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
75 extern OCTAVE_API void oct_init_by_array (uint32_t init_key[], int key_length); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
76 extern OCTAVE_API void oct_init_by_entropy (void); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
77 extern OCTAVE_API void oct_set_state (uint32_t save[]); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
78 extern OCTAVE_API void oct_get_state (uint32_t save[]); |
5742 | 79 |
80 /* === Array generators === */ | |
13039
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
81 extern OCTAVE_API double oct_randu (void); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
82 extern OCTAVE_API double oct_randn (void); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
83 extern OCTAVE_API double oct_rande (void); |
5742 | 84 |
14655
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
85 extern OCTAVE_API float oct_float_randu (void); |
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
86 extern OCTAVE_API float oct_float_randn (void); |
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
87 extern OCTAVE_API float oct_float_rande (void); |
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
88 |
5742 | 89 /* === Array generators === */ |
13039
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
90 extern OCTAVE_API void oct_fill_randu (octave_idx_type n, double *p); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
91 extern OCTAVE_API void oct_fill_randn (octave_idx_type n, double *p); |
70d32160c90b
Make more symbols for export.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11586
diff
changeset
|
92 extern OCTAVE_API void oct_fill_rande (octave_idx_type n, double *p); |
5742 | 93 |
14655
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
94 extern OCTAVE_API void oct_fill_float_randu (octave_idx_type n, float *p); |
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
95 extern OCTAVE_API void oct_fill_float_randn (octave_idx_type n, float *p); |
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
96 extern OCTAVE_API void oct_fill_float_rande (octave_idx_type n, float *p); |
43db83eff9db
Implement single precision rand, randn, rande, randg and randp generators (bug #34351, #36293)
David Bateman <dbateman@free.fr>
parents:
14138
diff
changeset
|
97 |
5742 | 98 #ifdef __cplusplus |
99 } | |
100 #endif | |
101 #endif |