Fixed old references additive 55

Fixed documentation that referred to the old additive 55
generator.  We have been using the subtractive 100 in place
of the additive 55 generator for a while now.
This commit is contained in:
Landon Curt Noll
2021-12-07 02:24:50 -08:00
parent cc5fb9a45b
commit 5ae3ca059a
14 changed files with 29 additions and 24 deletions

View File

@@ -19,6 +19,10 @@ The following are the changes from calc version 2.14.0.11 to date:
is an valid external symbol. is an valid external symbol.
Fixed documentation that referred to the old additive 55
generator. We have been using the subtractive 100 in place
of the additive 55 generator for a while now.
The following are the changes from calc version 2.14.0.9 to 2.14.0.10: The following are the changes from calc version 2.14.0.9 to 2.14.0.10:

View File

@@ -1720,7 +1720,7 @@ define test_rand()
print '1503: state0 = srand(0)'; print '1503: state0 = srand(0)';
vrfy(state0 == init, '1504: state0 == init'); vrfy(state0 == init, '1504: state0 == init');
/* test the additive 55 shuffle generator */ /* test the subtractive 100 shuffle generator */
tmp = srand(0); tmp = srand(0);
print '1505: tmp = srand(0)'; print '1505: tmp = srand(0)';
vrfy(rand() == 0x1fe5b46fba7e069d, \ vrfy(rand() == 0x1fe5b46fba7e069d, \
@@ -4750,7 +4750,7 @@ define test_random()
print '5303: state0 = srandom(0)'; print '5303: state0 = srandom(0)';
vrfy(state0 == init, '5304: state0 == init'); vrfy(state0 == init, '5304: state0 == init');
/* test the additive 55 shuffle generator */ /* test the subtractive 100 shuffle generator */
tmp = srandom(0); tmp = srandom(0);
print '5305: tmp = srandom(0)'; print '5305: tmp = srandom(0)';
vrfy(random() == 0x7fb838a8a0a95046, \ vrfy(random() == 0x7fb838a8a0a95046, \

View File

@@ -108,7 +108,7 @@ c_argv(char *UNUSED(name), int count, VALUE **vals)
case V_FILE: /* opened file id */ case V_FILE: /* opened file id */
type = "file"; type = "file";
break; break;
case V_RAND: /* address of additive 55 random state */ case V_RAND: /* subtractive 100 random state */
type = "rand_state"; type = "rand_state";
break; break;
case V_RANDOM: /* address of Blum random state */ case V_RANDOM: /* address of Blum random state */

View File

@@ -208,7 +208,7 @@ STATIC struct infoname sys_info[] = {
(FULL)SBITS}, (FULL)SBITS},
{"SBYTES", "size of additive or shuffle entry in bytes", NULL, {"SBYTES", "size of additive or shuffle entry in bytes", NULL,
(FULL)SBYTES}, (FULL)SBYTES},
{"SCNT", "length of additive 55 table in FULLs", NULL, {"SCNT", "length of subtractive 100 table in FULLs", NULL,
(FULL)SCNT}, (FULL)SCNT},
{"SEEDXORBITS", "low bits of a55 seed devoted to xor", NULL, {"SEEDXORBITS", "low bits of a55 seed devoted to xor", NULL,
(FULL)SEEDXORBITS}, (FULL)SEEDXORBITS},

8
func.c
View File

@@ -1048,7 +1048,7 @@ f_srand(int count, VALUE **vals)
break; break;
case V_MAT: case V_MAT:
/* load additive 55 table and return previous state */ /* load subtractive 100 table and return prev state */
result.v_rand = zsrand(NULL, vals[0]->v_mat); result.v_rand = zsrand(NULL, vals[0]->v_mat);
break; break;
@@ -10203,7 +10203,7 @@ STATIC CONST struct builtin builtins[] = {
{"isqrt", 1, 1, 0, OP_NOP, qisqrt, 0, {"isqrt", 1, 1, 0, OP_NOP, qisqrt, 0,
"integer part of square root"}, "integer part of square root"},
{"isrand", 1, 1, 0, OP_ISRAND, 0, 0, {"isrand", 1, 1, 0, OP_ISRAND, 0, 0,
"whether a value is a additive 55 state"}, "whether a value is a subtractive 100 state"},
{"israndom", 1, 1, 0, OP_ISRANDOM, 0, 0, {"israndom", 1, 1, 0, OP_ISRANDOM, 0, 0,
"whether a value is a Blum state"}, "whether a value is a Blum state"},
{"isreal", 1, 1, 0, OP_ISREAL, 0, 0, {"isreal", 1, 1, 0, OP_ISREAL, 0, 0,
@@ -10367,9 +10367,9 @@ STATIC CONST struct builtin builtins[] = {
{"r2g", 1, 2, 0, OP_NOP, 0, f_r2g, {"r2g", 1, 2, 0, OP_NOP, 0, f_r2g,
"convert radians to gradians"}, "convert radians to gradians"},
{"rand", 0, 2, 0, OP_NOP, f_rand, 0, {"rand", 0, 2, 0, OP_NOP, f_rand, 0,
"additive 55 random number [0,2^64), [0,a), or [a,b)"}, "subtractive 100 random number [0,2^64), [0,a), or [a,b)"},
{"randbit", 0, 1, 0, OP_NOP, f_randbit, 0, {"randbit", 0, 1, 0, OP_NOP, f_randbit, 0,
"additive 55 random number [0,2^a)"}, "subtractive 100 random number [0,2^a)"},
{"random", 0, 2, 0, OP_NOP, f_random, 0, {"random", 0, 2, 0, OP_NOP, f_random, 0,
"Blum-Blum-Shub random number [0,2^64), [0,a), or [a,b)"}, "Blum-Blum-Shub random number [0,2^64), [0,a), or [a,b)"},
{"randombit", 0, 1, 0, OP_NOP, f_randombit, 0, {"randombit", 0, 1, 0, OP_NOP, f_randombit, 0,

View File

@@ -1,5 +1,5 @@
NAME NAME
isrand - whether a value is an additive 55 state isrand - whether a value is an subtractive 100 state
SYNOPSIS SYNOPSIS
isrand(x) isrand(x)
@@ -10,8 +10,9 @@ TYPES
return int return int
DESCRIPTION DESCRIPTION
Determine if x is an additive 55 pseudo-random number generator state. Determine if x is an subtractive 100 pseudo-random number
This function will return 1 if x is a file, 0 otherwise. generator state. This function will return 1 if x is a file,
0 otherwise.
EXAMPLE EXAMPLE
; a = srand(0) ; a = srand(0)
@@ -31,7 +32,7 @@ SEE ALSO
isobjtype, isodd, isprime, israndom, isreal, isrel, isobjtype, isodd, isprime, israndom, isreal, isrel,
issimple, issq, isstr, istype issimple, issq, isstr, istype
## Copyright (C) 1999 Landon Curt Noll ## Copyright (C) 1999,2021 Landon Curt Noll
## ##
## Calc is open software; you can redistribute it and/or modify it under ## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License ## the terms of the version 2.1 of the GNU Lesser General Public License

View File

@@ -1,4 +1,4 @@
NAME
randbit - subtractive 100 shuffle pseudo-random number generator randbit - subtractive 100 shuffle pseudo-random number generator
SYNOPSIS SYNOPSIS
@@ -23,7 +23,7 @@ DESCRIPTION
If x is omitted, it is assumed to have the value of 1. If x is omitted, it is assumed to have the value of 1.
See the rand() help page for details on the additive 55 shuffle See the rand() help page for details on the subtractive 100 shuffle
pseudo-random number generator. pseudo-random number generator.
EXAMPLE EXAMPLE
@@ -42,7 +42,7 @@ LINK LIBRARY
SEE ALSO SEE ALSO
seed, srand, randbit, isrand, random, srandom, israndom seed, srand, randbit, isrand, random, srandom, israndom
## Copyright (C) 1999,2018 Landon Curt Noll ## Copyright (C) 1999,2018,2021 Landon Curt Noll
## ##
## Calc is open software; you can redistribute it and/or modify it under ## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License ## the terms of the version 2.1 of the GNU Lesser General Public License

View File

@@ -20,7 +20,7 @@ DESCRIPTION
While the Blum-Blum-Shub generator is not painfully slow, it is not While the Blum-Blum-Shub generator is not painfully slow, it is not
a fast generator. For a faster, but lesser quality generator a fast generator. For a faster, but lesser quality generator
(non-cryptographically strong) see the additive 55 generator (non-cryptographically strong) see the subtractive 100 generator
(see the rand help page). (see the rand help page).
Other arg forms: Other arg forms:

View File

@@ -23,7 +23,7 @@ DESCRIPTION
If x is omitted, it is assumed to have the value of 1. If x is omitted, it is assumed to have the value of 1.
See the random() help page for details on the additive 55 shuffle See the random() help page for details on the subtractive 100 shuffle
pseudo-random number generator. pseudo-random number generator.
EXAMPLE EXAMPLE
@@ -41,7 +41,7 @@ LINK LIBRARY
SEE ALSO SEE ALSO
seed, srand, randbit, isrand, rand, srandom, israndom seed, srand, randbit, isrand, rand, srandom, israndom
## Copyright (C) 1999 Landon Curt Noll ## Copyright (C) 1999,2021 Landon Curt Noll
## ##
## Calc is open software; you can redistribute it and/or modify it under ## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License ## the terms of the version 2.1 of the GNU Lesser General Public License

View File

@@ -33,7 +33,7 @@ EXAMPLE
RAND state RAND state
; print srandom(seed()) ; print srandom(seed())
RAND state RANDOM state
LIMITS LIMITS
none none

View File

@@ -143,7 +143,7 @@
#define OP_ELEMINIT 102L /* assign element of matrix or object */ #define OP_ELEMINIT 102L /* assign element of matrix or object */
#define OP_ISCONFIG 103L /* whether value is a configuration state */ #define OP_ISCONFIG 103L /* whether value is a configuration state */
#define OP_ISHASH 104L /* whether value is a hash state */ #define OP_ISHASH 104L /* whether value is a hash state */
#define OP_ISRAND 105L /* whether value is additive 55 random state */ #define OP_ISRAND 105L /* whether value is subtractive 100 state */
#define OP_ISRANDOM 106L /* whether value is a Blum random state */ #define OP_ISRANDOM 106L /* whether value is a Blum random state */
#define OP_SHOW 107L /* show data about current state */ #define OP_SHOW 107L /* show data about current state */
#define OP_INITFILL 108L /* fill new matrix with copies of a value */ #define OP_INITFILL 108L /* fill new matrix with copies of a value */

View File

@@ -285,7 +285,7 @@ printtype(VALUE *vp)
s = "file id"; s = "file id";
break; break;
case V_RAND: case V_RAND:
s = "additive 55 random state"; s = "subtractive 100 random state";
break; break;
case V_RANDOM: case V_RANDOM:
s = "Blum random state"; s = "Blum random state";

View File

@@ -96,7 +96,7 @@ struct value {
ASSOC *vv_assoc; /* 8: address of association */ ASSOC *vv_assoc; /* 8: address of association */
OBJECT *vv_obj; /* 9: address of object */ OBJECT *vv_obj; /* 9: address of object */
FILEID vv_file; /* 10: id of opened file */ FILEID vv_file; /* 10: id of opened file */
RAND *vv_rand; /* 11: additive 55 random state */ RAND *vv_rand; /* 11: subtractive 100 random state */
RANDOM *vv_random; /* 12: Blum random state */ RANDOM *vv_random; /* 12: Blum random state */
CONFIG *vv_config; /* 13: configuration state */ CONFIG *vv_config; /* 13: configuration state */
HASH *vv_hash; /* 14: hash state */ HASH *vv_hash; /* 14: hash state */
@@ -156,7 +156,7 @@ struct value {
#define V_ASSOC 8 /* address of association structure */ #define V_ASSOC 8 /* address of association structure */
#define V_OBJ 9 /* address of object structure */ #define V_OBJ 9 /* address of object structure */
#define V_FILE 10 /* opened file id */ #define V_FILE 10 /* opened file id */
#define V_RAND 11 /* address of additive 55 random state */ #define V_RAND 11 /* address of subtractive 100 random state */
#define V_RANDOM 12 /* address of Blum random state */ #define V_RANDOM 12 /* address of Blum random state */
#define V_CONFIG 13 /* configuration state */ #define V_CONFIG 13 /* configuration state */
#define V_HASH 14 /* hash state */ #define V_HASH 14 /* hash state */

View File

@@ -69,7 +69,7 @@
* all magic numbers are explained * all magic numbers are explained
* *
* I distrust systems with constants (magic numbers) and tables * I distrust systems with constants (magic numbers) and tables
* that have no justification (e.g., DES). I believe that I have * that have no justification. I believe that I have
* done my best to justify all of the magic numbers used. * done my best to justify all of the magic numbers used.
* *
* full documentation * full documentation