The cl-isaac Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-isaac Reference Manual

This is the cl-isaac Reference Manual, version 1.0.5, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:11:28 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

cl-isaac

Build Status Coverage Status Quicklisp BSD Simplified License Join the chat at https://gitter.im/thephoeron/cl-isaac

Optimized Common Lisp library of Bob Jenkins' ISAAC-32 and ISAAC-64 algorithms, fast cryptographic random number generators: Indirection, Shift, Accumulate, Add, and Count. Available in Quicklisp.

The C reference implementations are available at:

http://burtleburtle.net/bob/rand/isaacafa.html

This Common Lisp version is roughly as fast as Jenkins' optimised rand.c when compiled with SBCL.

UPDATE 04/10/2014

Version number incremented to 1.0.4; added INIT-SELF-SEED for stronger cryptographic randomization.

-- "the Phoeron" Colin J.E. Lupton

UPDATE 03/20/2014

CL-ISAAC v1.0.3, including ISAAC-64 algorithm, now available in the March 2014 Quicklisp update.

If you find any bugs, please report them at: https://github.com/thephoeron/cl-isaac/issues

-- "the Phoeron" Colin J.E. Lupton

USAGE

Make sure you have the latest Quicklisp distribution. Include CL-ISAAC as a dependency in your system definition, or evaluate (ql:quickload "cl-isaac") from the REPL.

First, you need to create an isaac context. If you have a 64-bit implementation of Lisp on an x86-64 platform, you can set :is64 t to take advantage of the ISAAC-64 algorithm. There are four functions that do this:

isaac:init-self-seed &key (count 1) (is64 nil) => <isaac context>

RECOMMENDED: First round seeds with random bits generated by init-kernel-seed, each additional round below count scrambles and modular adds the context values to more random bits from a new isaac context. A count > 3 is recommended for optimal speed vs. cryptographic strength.

isaac:init-kernel-seed &key (is64 nil) => <isaac context>

Seeds with values from /dev/arandom on BSD or /dev/urandom on Linux. Reads 1024 bytes from the device.

isaac:init-common-lisp-random-seed &key (is64 nil) => <isaac context>

Seeds with values from your Common Lisp implementation's random function. Consumes 256 32-bit values from #'random.

isaac:init-null-seed &key (is64 nil) => <isaac context>

Seeds with all 0s. Always results in the same stream. For comparing with Jenkins' reference implementations.

These are functions you can pass an isaac context to. They will modify the isaac context and return a random value:

isaac:rand32 <isaac context> => <random 32-bit value>

Uses the ISAAC-32 algorithm to generate a new random value.

isaac:rand-bits <isaac context> <N> => <random N-bit value>

Uses the ISAAC-32 algorithm to generate random values between 0 and (1- (expt 2 N)). This function always consumes one or more ISAAC-32 words. Note that the N parameter is different from the CL random function parameter.

Examples:

(isaac:rand-bits ctx 1) => [0,1]                         ; (consumes 1 ISAAC-32 word)
(isaac:rand-bits ctx 2) => [0,1,2,3]                     ; (ditto)
(isaac:rand-bits ctx 3) => [0,1,2,3,4,5,6,7]             ; (ditto)
(isaac:rand-bits ctx 32) => [0,1,...,(1- (expt 2 32))]   ; (ditto)
(isaac:rand-bits ctx 33) => [0,1,...,(1- (expt 2 33))]   ; (consumes 2 words)
(isaac:rand-bits ctx 512) => [0,1,...,(1- (expt 2 512))] ; (consumes 16 words)

Conversely, the ISAAC-64 algorithm uses 64-bit word sizes, and scales accordingly.

QUICK RECIPE

Generate a random 128-bit session ID as a 0-padded hexadecimal string:


* (ql:quickload "cl-isaac")
* (defvar my-isaac-ctx (isaac:init-kernel-seed))
* (format nil "~32,'0x" (isaac:rand-bits my-isaac-ctx 128))
    => "078585213B0EF01B1B9BECB291EF38F0"

Generate a random 512-bit token using the ISAAC-64 algorithm:


* (defvar my-isaac64-ctx (isaac:init-kernel-seed :is64 t))
* (format nil "~64,'0x" (isaac:rand-bits-64 my-isaac64-ctx 512))
    => "6F00D098A342450CD7A2C27D941625ED70E7F7F4DD0BD46D8D1597361F0AA49180728D9BA062A14E6795F579D5B04B01F92310F18921A7397C57CF09012E104F"

FAQ

Q) My Common Lisp implementation already uses the Mersenne Twister, what are the advantages of ISAAC?

A1) The Mersenne Twister is not a cryptographic PRNG. This means that it is possible for someone to predict future values based on previously observed values (just over 600 of them). As such, MT is particularly undesirable for things like web session IDs. You can still use MT for crypto, but you must use a cryptographic hash function on the MT output.

A2) cl-isaac appears to be roughly as fast as the Mersenne Twister #'random of CMUCL 19d on x86 before even considering the above-mentioned hash function overhead requirement of MT.

A3) cl-isaac is not implemented as an x86 VOP like CMUCL's Mersenne Twister, but instead in 100% standard ANSI Common Lisp (except for the kernel seed interface). This should mean comparable performance on all architectures targeted by your lisp compiler. The non-x86 MT implementation is apparently an order-of-magnitude slower.

Q) How "random" can I expect these values to be?

A) Very. From Bob Jenkins' website: "Cycles are guaranteed to be at least (expt 2 40) values long, and they are (expt 2 8295) values long on average. The results are uniformly distributed, unbiased, and unpredictable unless you know the seed. [...] Why not use RC4? RC4 is three times slower, more biased, has a shorter minimum and average cycle length, and is proprietary. No way is known to break either RC4 or ISAAC; both are immune to Gaussian elimination."

Note that there is a $1000 prize you can win from Jenkins if you find a flaw in ISAAC (but all flaws in CL-ISAAC are of course mine).

SYSTEM REQUIREMENTS

SUPPORTING THIS PROJECT

You can support this project by donating Bitcoin or Litecoin:

BTC: 13imVmHQXDpJDigtnKjUJKaPJ7vhwfLZ8i

LTC: LSPQBg3opQuWaruxtjJ6CwKVn1SyG5aiFW

CONTRIBUTING

If you find any bugs or would like to see CL-ISAAC work on your platform, please create an issue on the master GitHub repository.

To contribute to CL-ISAAC, please fork and create a pull request.

LICENSE

This library is released under a BSD-like license. Please see LICENSE file for more information.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 cl-isaac

Maintainer

"the Phoeron" Colin J.E. Lupton <sysop@thephoeron.com>

Author

Doug Hoyte <doug@hoytech.com>

License

BSD Simplified

Description

Optimized Common Lisp version of Bob Jenkins’ ISAAC-32 and ISAAC-64 algorithms, fast cryptographic random number generators.

Version

1.0.5

Source

cl-isaac.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 cl-isaac.asd

Location

cl-isaac.asd

Systems

cl-isaac (system)

Packages

cl-isaac-asd

Exported Definitions

*isaac-version* (special variable)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 cl-isaac/packages.lisp

Parent

cl-isaac (system)

Location

packages.lisp

Packages

cl-isaac


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 cl-isaac/isaac-32.lisp

Dependency

packages.lisp (file)

Parent

cl-isaac (system)

Location

isaac-32.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 cl-isaac/isaac-64.lisp

Dependency

isaac-32.lisp (file)

Parent

cl-isaac (system)

Location

isaac-64.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.5 cl-isaac/cl-isaac.lisp

Dependency

isaac-64.lisp (file)

Parent

cl-isaac (system)

Location

cl-isaac.lisp

Exported Definitions
Internal Definitions

test-self-seed-64 (function)


Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 cl-isaac-asd

Source

cl-isaac.asd

Use List
Exported Definitions

*isaac-version* (special variable)


Previous: , Up: Packages   [Contents][Index]

4.2 cl-isaac

Source

packages.lisp (file)

Nickname

isaac

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *isaac-version*

A string denoting the current version of CL-ISAAC. Used for diagnostic output.

Package

cl-isaac-asd

Source

cl-isaac.asd


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Macros

Macro: mix A B C D E F G H
Package

cl-isaac

Source

isaac-32.lisp (file)

Macro: mix64 A B C D E F G H
Package

cl-isaac

Source

isaac-64.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Functions

Function: generate-next-isaac-block CTX
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: generate-next-isaac64-block CTX
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: init-common-lisp-random-seed &key IS64

Initialize random seed from CL:RANDOM. If :is64 t, use ISAAC-64 context.

Package

cl-isaac

Source

cl-isaac.lisp (file)

Function: init-kernel-seed &key IS64

Initialize Kernel seed from /dev/arandom on BSD systems, /dev/urandom on Linux systems, or return an error. If :is64 t, use ISAAC-64 context.

Package

cl-isaac

Source

cl-isaac.lisp (file)

Function: init-null-seed &key IS64

Initialize null seed, useful for testing but not production. If :is64 t, use ISAAC-64 context.

Package

cl-isaac

Source

cl-isaac.lisp (file)

Function: init-self-seed &key COUNT IS64

Initialize cryptographically strong self-seed starting with a kernel-seed as first round, and then performing a scramble on the bits and modular addition between the resulting values and a new kernel-seed on each additional count. :count n (default: 1), a real number, instructs the self-seed to repeat n times. If :is64 t, use ISAAC-64 context.

Package

cl-isaac

Source

cl-isaac.lisp (file)

Function: jenkins-output FILENAME

Output ISAAC-32 block context to FILENAME using null seed. Output is the same as Jenkins’ randvect.txt

Package

cl-isaac

Source

cl-isaac.lisp (file)

Function: jenkins-output-64 FILENAME

Output ISAAC-64 block context to FILENAME using null seed.

Package

cl-isaac

Source

cl-isaac.lisp (file)

Function: rand-bits CTX N
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: rand-bits-64 CTX N
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: rand32 CTX
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: rand64 CTX
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: scramble CTX
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: scramble64 CTX
Package

cl-isaac

Source

isaac-64.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Structures

Structure: isaac-ctx ()
Package

cl-isaac

Source

isaac-32.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: randcnt
Type

(unsigned-byte 32)

Initform

0

Readers

isaac-ctx-randcnt (function)

Writers

(setf isaac-ctx-randcnt) (function)

Slot: randrsl
Type

(simple-array (unsigned-byte 32) (256))

Initform

(make-array 256 :element-type (quote (unsigned-byte 32)) :initial-element 0)

Readers

isaac-ctx-randrsl (function)

Writers

(setf isaac-ctx-randrsl) (function)

Slot: randmem
Type

(simple-array (unsigned-byte 32) (256))

Initform

(make-array 256 :element-type (quote (unsigned-byte 32)) :initial-element 0)

Readers

isaac-ctx-randmem (function)

Writers

(setf isaac-ctx-randmem) (function)

Slot: a
Type

(unsigned-byte 32)

Initform

0

Readers

isaac-ctx-a (function)

Writers

(setf isaac-ctx-a) (function)

Slot: b
Type

(unsigned-byte 32)

Initform

0

Readers

isaac-ctx-b (function)

Writers

(setf isaac-ctx-b) (function)

Slot: c
Type

(unsigned-byte 32)

Initform

0

Readers

isaac-ctx-c (function)

Writers

(setf isaac-ctx-c) (function)

Structure: isaac64-ctx ()
Package

cl-isaac

Source

isaac-64.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: randcnt
Type

(unsigned-byte 64)

Initform

0

Readers

isaac64-ctx-randcnt (function)

Writers

(setf isaac64-ctx-randcnt) (function)

Slot: randrsl
Type

(simple-array (unsigned-byte 64) (256))

Initform

(make-array 256 :element-type (quote (unsigned-byte 64)) :initial-element 0)

Readers

isaac64-ctx-randrsl (function)

Writers

(setf isaac64-ctx-randrsl) (function)

Slot: randmem
Type

(simple-array (unsigned-byte 64) (256))

Initform

(make-array 256 :element-type (quote (unsigned-byte 64)) :initial-element 0)

Readers

isaac64-ctx-randmem (function)

Writers

(setf isaac64-ctx-randmem) (function)

Slot: a
Type

(unsigned-byte 64)

Initform

0

Readers

isaac64-ctx-a (function)

Writers

(setf isaac64-ctx-a) (function)

Slot: b
Type

(unsigned-byte 64)

Initform

0

Readers

isaac64-ctx-b (function)

Writers

(setf isaac64-ctx-b) (function)

Slot: c
Type

(unsigned-byte 64)

Initform

0

Readers

isaac64-ctx-c (function)

Writers

(setf isaac64-ctx-c) (function)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Macros

Macro: decf-wrap64 A B
Package

cl-isaac

Source

isaac-64.lisp (file)

Macro: incf-wrap32 A B
Package

cl-isaac

Source

isaac-32.lisp (file)

Macro: incf-wrap64 A B
Package

cl-isaac

Source

isaac-64.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Functions

Function: copy-isaac-ctx INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: copy-isaac64-ctx INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac-ctx-a INSTANCE
Function: (setf isaac-ctx-a) VALUE INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac-ctx-b INSTANCE
Function: (setf isaac-ctx-b) VALUE INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac-ctx-c INSTANCE
Function: (setf isaac-ctx-c) VALUE INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac-ctx-p OBJECT
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac-ctx-randcnt INSTANCE
Function: (setf isaac-ctx-randcnt) VALUE INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac-ctx-randmem INSTANCE
Function: (setf isaac-ctx-randmem) VALUE INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac-ctx-randrsl INSTANCE
Function: (setf isaac-ctx-randrsl) VALUE INSTANCE
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: isaac64-ctx-a INSTANCE
Function: (setf isaac64-ctx-a) VALUE INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac64-ctx-b INSTANCE
Function: (setf isaac64-ctx-b) VALUE INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac64-ctx-c INSTANCE
Function: (setf isaac64-ctx-c) VALUE INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac64-ctx-p OBJECT
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac64-ctx-randcnt INSTANCE
Function: (setf isaac64-ctx-randcnt) VALUE INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac64-ctx-randmem INSTANCE
Function: (setf isaac64-ctx-randmem) VALUE INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: isaac64-ctx-randrsl INSTANCE
Function: (setf isaac64-ctx-randrsl) VALUE INSTANCE
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: make-isaac-ctx &key (RANDCNT RANDCNT) (RANDRSL RANDRSL) (RANDMEM RANDMEM) (A A) (B B) (C C)
Package

cl-isaac

Source

isaac-32.lisp (file)

Function: make-isaac64-ctx &key (RANDCNT RANDCNT) (RANDRSL RANDRSL) (RANDMEM RANDMEM) (A A) (B B) (C C)
Package

cl-isaac

Source

isaac-64.lisp (file)

Function: test-self-seed-64 FILENAME

Output ISAAC-64 block context to FILENAME using self-seed.

Package

cl-isaac

Source

cl-isaac.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L  
Index Entry  Section

C
cl-isaac.asd: The cl-isaac<dot>asd file
cl-isaac/cl-isaac.lisp: The cl-isaac/cl-isaac<dot>lisp file
cl-isaac/isaac-32.lisp: The cl-isaac/isaac-32<dot>lisp file
cl-isaac/isaac-64.lisp: The cl-isaac/isaac-64<dot>lisp file
cl-isaac/packages.lisp: The cl-isaac/packages<dot>lisp file

F
File, Lisp, cl-isaac.asd: The cl-isaac<dot>asd file
File, Lisp, cl-isaac/cl-isaac.lisp: The cl-isaac/cl-isaac<dot>lisp file
File, Lisp, cl-isaac/isaac-32.lisp: The cl-isaac/isaac-32<dot>lisp file
File, Lisp, cl-isaac/isaac-64.lisp: The cl-isaac/isaac-64<dot>lisp file
File, Lisp, cl-isaac/packages.lisp: The cl-isaac/packages<dot>lisp file

L
Lisp File, cl-isaac.asd: The cl-isaac<dot>asd file
Lisp File, cl-isaac/cl-isaac.lisp: The cl-isaac/cl-isaac<dot>lisp file
Lisp File, cl-isaac/isaac-32.lisp: The cl-isaac/isaac-32<dot>lisp file
Lisp File, cl-isaac/isaac-64.lisp: The cl-isaac/isaac-64<dot>lisp file
Lisp File, cl-isaac/packages.lisp: The cl-isaac/packages<dot>lisp file

Jump to:   C   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
C   D   F   G   I   J   M   R   S   T  
Index Entry  Section

(
(setf isaac-ctx-a): Internal functions
(setf isaac-ctx-b): Internal functions
(setf isaac-ctx-c): Internal functions
(setf isaac-ctx-randcnt): Internal functions
(setf isaac-ctx-randmem): Internal functions
(setf isaac-ctx-randrsl): Internal functions
(setf isaac64-ctx-a): Internal functions
(setf isaac64-ctx-b): Internal functions
(setf isaac64-ctx-c): Internal functions
(setf isaac64-ctx-randcnt): Internal functions
(setf isaac64-ctx-randmem): Internal functions
(setf isaac64-ctx-randrsl): Internal functions

C
copy-isaac-ctx: Internal functions
copy-isaac64-ctx: Internal functions

D
decf-wrap64: Internal macros

F
Function, (setf isaac-ctx-a): Internal functions
Function, (setf isaac-ctx-b): Internal functions
Function, (setf isaac-ctx-c): Internal functions
Function, (setf isaac-ctx-randcnt): Internal functions
Function, (setf isaac-ctx-randmem): Internal functions
Function, (setf isaac-ctx-randrsl): Internal functions
Function, (setf isaac64-ctx-a): Internal functions
Function, (setf isaac64-ctx-b): Internal functions
Function, (setf isaac64-ctx-c): Internal functions
Function, (setf isaac64-ctx-randcnt): Internal functions
Function, (setf isaac64-ctx-randmem): Internal functions
Function, (setf isaac64-ctx-randrsl): Internal functions
Function, copy-isaac-ctx: Internal functions
Function, copy-isaac64-ctx: Internal functions
Function, generate-next-isaac-block: Exported functions
Function, generate-next-isaac64-block: Exported functions
Function, init-common-lisp-random-seed: Exported functions
Function, init-kernel-seed: Exported functions
Function, init-null-seed: Exported functions
Function, init-self-seed: Exported functions
Function, isaac-ctx-a: Internal functions
Function, isaac-ctx-b: Internal functions
Function, isaac-ctx-c: Internal functions
Function, isaac-ctx-p: Internal functions
Function, isaac-ctx-randcnt: Internal functions
Function, isaac-ctx-randmem: Internal functions
Function, isaac-ctx-randrsl: Internal functions
Function, isaac64-ctx-a: Internal functions
Function, isaac64-ctx-b: Internal functions
Function, isaac64-ctx-c: Internal functions
Function, isaac64-ctx-p: Internal functions
Function, isaac64-ctx-randcnt: Internal functions
Function, isaac64-ctx-randmem: Internal functions
Function, isaac64-ctx-randrsl: Internal functions
Function, jenkins-output: Exported functions
Function, jenkins-output-64: Exported functions
Function, make-isaac-ctx: Internal functions
Function, make-isaac64-ctx: Internal functions
Function, rand-bits: Exported functions
Function, rand-bits-64: Exported functions
Function, rand32: Exported functions
Function, rand64: Exported functions
Function, scramble: Exported functions
Function, scramble64: Exported functions
Function, test-self-seed-64: Internal functions

G
generate-next-isaac-block: Exported functions
generate-next-isaac64-block: Exported functions

I
incf-wrap32: Internal macros
incf-wrap64: Internal macros
init-common-lisp-random-seed: Exported functions
init-kernel-seed: Exported functions
init-null-seed: Exported functions
init-self-seed: Exported functions
isaac-ctx-a: Internal functions
isaac-ctx-b: Internal functions
isaac-ctx-c: Internal functions
isaac-ctx-p: Internal functions
isaac-ctx-randcnt: Internal functions
isaac-ctx-randmem: Internal functions
isaac-ctx-randrsl: Internal functions
isaac64-ctx-a: Internal functions
isaac64-ctx-b: Internal functions
isaac64-ctx-c: Internal functions
isaac64-ctx-p: Internal functions
isaac64-ctx-randcnt: Internal functions
isaac64-ctx-randmem: Internal functions
isaac64-ctx-randrsl: Internal functions

J
jenkins-output: Exported functions
jenkins-output-64: Exported functions

M
Macro, decf-wrap64: Internal macros
Macro, incf-wrap32: Internal macros
Macro, incf-wrap64: Internal macros
Macro, mix: Exported macros
Macro, mix64: Exported macros
make-isaac-ctx: Internal functions
make-isaac64-ctx: Internal functions
mix: Exported macros
mix64: Exported macros

R
rand-bits: Exported functions
rand-bits-64: Exported functions
rand32: Exported functions
rand64: Exported functions

S
scramble: Exported functions
scramble64: Exported functions

T
test-self-seed-64: Internal functions

Jump to:   (  
C   D   F   G   I   J   M   R   S   T  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
A   B   C   R   S  
Index Entry  Section

*
*isaac-version*: Exported special variables

A
a: Exported structures
a: Exported structures

B
b: Exported structures
b: Exported structures

C
c: Exported structures
c: Exported structures

R
randcnt: Exported structures
randcnt: Exported structures
randmem: Exported structures
randmem: Exported structures
randrsl: Exported structures
randrsl: Exported structures

S
Slot, a: Exported structures
Slot, a: Exported structures
Slot, b: Exported structures
Slot, b: Exported structures
Slot, c: Exported structures
Slot, c: Exported structures
Slot, randcnt: Exported structures
Slot, randcnt: Exported structures
Slot, randmem: Exported structures
Slot, randmem: Exported structures
Slot, randrsl: Exported structures
Slot, randrsl: Exported structures
Special Variable, *isaac-version*: Exported special variables

Jump to:   *  
A   B   C   R   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   I   P   S  
Index Entry  Section

C
cl-isaac: The cl-isaac system
cl-isaac: The cl-isaac package
cl-isaac-asd: The cl-isaac-asd package

I
isaac-ctx: Exported structures
isaac64-ctx: Exported structures

P
Package, cl-isaac: The cl-isaac package
Package, cl-isaac-asd: The cl-isaac-asd package

S
Structure, isaac-ctx: Exported structures
Structure, isaac64-ctx: Exported structures
System, cl-isaac: The cl-isaac system

Jump to:   C   I   P   S