cosapp.core.numerics.sobol_seq¶
Python library for generating Sobols
- Licensing:
This package is heavily based on http://people.sc.fsu.edu/~jburkardt/py_src/sobol/sobol.html, a Python library for generating Sobols by John Burkardt and Corrado Chisari who made their code available under the MIT license. Any additions and/or changes to their code are also made available under the MIT license.
Source: https://github.com/naught101/sobol_seq
MIT License
Copyright (c) 2016
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- Authors:
Original FORTRAN77 version of i4_sobol by Bennett Fox. MATLAB version by John Burkardt. PYTHON version by Corrado Chisari
Original Python version of is_prime by Corrado Chisari
Original MATLAB versions of other functions by John Burkardt. PYTHON versions by Corrado Chisari
Original code is available from http://people.sc.fsu.edu/~jburkardt/py_src/sobol/sobol.html
Functions
|
i4_bit_hi1 returns the position of the high 1 bit base 2 in an integer. |
|
I4_BIT_LO0 returns the position of the low 0 bit base 2 in an integer. |
|
i4_sobol generates a new quasirandom Sobol vector with each call. |
|
i4_sobol_generate generates a Sobol dataset. |
|
Generates multivariate standard normal quasi-random variables. |
|
i4_uniform returns a scaled pseudorandom I4. |
|
is_prime returns True if N is a prime number, False otherwise |
|
PRIME_GE returns the smallest prime greater than or equal to N. |
-
cosapp.core.numerics.sobol_seq.i4_bit_hi1(n)[source]¶ i4_bit_hi1 returns the position of the high 1 bit base 2 in an integer.
Examples
N
Binary
BIT
0
0
0
1
1
1
2
10
2
3
11
2
4
100
3
5
101
3
6
110
3
7
111
3
8
1000
4
9
1001
4
10
1010
4
11
1011
4
12
1100
4
13
1101
4
14
1110
4
15
1111
4
16
10000
5
17
10001
5
1023
1111111111
10
1024
10000000000
11
1025
10000000001
11
- Parameters
Input –
N (integer) –
integer to be measured. (the) –
should be nonnegative. If N is nonpositive (N) –
value will always be 0. (the) –
- Returns
- Return type
Output, integer BIT, the number of bits base 2.
-
cosapp.core.numerics.sobol_seq.i4_bit_lo0(n)[source]¶ I4_BIT_LO0 returns the position of the low 0 bit base 2 in an integer.
Examples
N
Binary
BIT
0
0
1
1
1
2
2
10
1
3
11
3
4
100
1
5
101
2
6
110
1
7
111
4
8
1000
1
9
1001
2
10
1010
1
11
1011
3
12
1100
1
13
1101
2
14
1110
1
15
1111
5
16
10000
1
17
10001
2
1023
1111111111
1
1024
0000000000
1
1025
0000000001
1
- Parameters
Input –
N (integer) –
integer to be measured. (the) –
should be nonnegative. (N) –
- Returns
- Return type
Output, integer BIT, the position of the low 1 bit.
-
cosapp.core.numerics.sobol_seq.i4_sobol(dim_num, seed)[source]¶ i4_sobol generates a new quasirandom Sobol vector with each call.
- Discussion:
The routine adapts the ideas of Antonov and Saleev.
- Reference:
Antonov, Saleev, USSR Computational Mathematics and Mathematical Physics, Volume 19, 1980, pages 252 - 256.
Paul Bratley, Bennett Fox, Algorithm 659: Implementing Sobol’s Quasirandom Sequence Generator, ACM Transactions on Mathematical Software, Volume 14, Number 1, pages 88-100, 1988.
Bennett Fox, Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators, ACM Transactions on Mathematical Software, Volume 12, Number 4, pages 362-376, 1986.
Ilya Sobol, USSR Computational Mathematics and Mathematical Physics, Volume 16, pages 236-242, 1977.
Ilya Sobol, Levitan, The Production of Points Uniformly Distributed in a Multidimensional Cube (in Russian), Preprint IPM Akad. Nauk SSSR, Number 40, Moscow 1976.
- Parameters
Input –
DIM_NUM (integer) –
number of spatial dimensions. (the) –
must satisfy 1 <= DIM_NUM <= 40. (DIM_NUM) –
Input/output –
SEED (integer) –
"seed" for the sequence. (the) –
is essentially the index in the sequence of the quasirandom (This) –
to be generated. On output (value) –
has been set to the (SEED) –
next value (appropriate) –
simply SEED+1. (usually) –
SEED is less than 0 on input (If) –
is treated as though it were 0. (it) –
input value of 0 requests the first (0-th) element of the sequence. (An) –
- Returns
- Return type
Output, real QUASI(DIM_NUM), the next quasirandom vector.
-
cosapp.core.numerics.sobol_seq.i4_sobol_generate(dim_num, n, skip=1)[source]¶ i4_sobol_generate generates a Sobol dataset.
- Parameters
Input –
dim_num (integer) –
spatial dimension. (the) –
Input –
N (integer) –
number of points to generate. (the) –
Input –
SKIP (integer) –
number of initial points to skip. (the) –
- Returns
- Return type
Output, real R(M,N), the points.
-
cosapp.core.numerics.sobol_seq.i4_uniform(a, b, seed)[source]¶ i4_uniform returns a scaled pseudorandom I4.
- Discussion:
The pseudorandom number will be scaled to be uniformly distributed between A and B.
- Reference:
Paul Bratley, Bennett Fox, Linus Schrage, A Guide to Simulation, Springer Verlag, pages 201-202, 1983.
Pierre L’Ecuyer, Random Number Generation, in Handbook of Simulation, edited by Jerry Banks, Wiley Interscience, page 95, 1998.
Bennett Fox, Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators, ACM Transactions on Mathematical Software, Volume 12, Number 4, pages 362-376, 1986.
Peter Lewis, Allen Goodman, James Miller A Pseudo-Random Number Generator for the System/360, IBM Systems Journal, Volume 8, pages 136-143, 1969.
- Parameters
Input –
A (integer) –
B –
minimum and maximum acceptable values. (the) –
Input –
SEED (integer) –
seed for the random number generator. (a) –
- Returns
Output, integer C, the randomly chosen integer.
Output, integer SEED, the updated seed.
-
cosapp.core.numerics.sobol_seq.is_prime(n)[source]¶ is_prime returns True if N is a prime number, False otherwise
- Parameters
Input –
N (integer) –
number to be checked. (the) –
- Returns
- Return type
Output, boolean value, True or False
-
cosapp.core.numerics.sobol_seq.prime_ge(n)[source]¶ PRIME_GE returns the smallest prime greater than or equal to N.
Examples
N
PRIME_GE
-10
2
1
2
2
2
3
3
4
5
5
5
6
7
7
7
8
11
9
11
10
11
- Parameters
Input –
N (integer) –
number to be bounded. (the) –
- Returns
Output, integer P, the smallest prime number that is greater
than or equal to N.