The trivial-jumptables Reference Manual

Table of Contents

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

The trivial-jumptables Reference Manual

This is the trivial-jumptables Reference Manual, version 1.1, generated automatically by Declt version 3.0 "Montgomery Scott" on Mon Apr 19 18:05:33 2021 GMT+0.


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

1 Introduction

Project's home: https://www.hexstreamsoft.com/libraries/trivial-jumptables/


trivial-jumptables provides efficient O(1) jump tables on supported
Common Lisp implementations and falls back to O(log(n)) on others.

Important optimizations are performed even on unsupported implementations,
notably "vectorization" which allows O(1) dispatch if all cases are constant.


This library is in the Public Domain.
See the UNLICENSE file for details.


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 trivial-jumptables

Author

Jean-Philippe Paradis <hexstream@hexstreamsoft.com>

License

Public Domain

Description

Provides efficient O(1) jump tables on supported Common Lisp implementations and falls back to O(log(n)) on others. Important optimizations are performed even on unsupported implementations, notably "vectorization" which allows O(1) dispatch if all cases are constant.

Version

1.1

Source

trivial-jumptables.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 trivial-jumptables.asd

Location

trivial-jumptables.asd

Systems

trivial-jumptables (system)


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

3.1.2 trivial-jumptables/package.lisp

Parent

trivial-jumptables (system)

Location

package.lisp

Packages

trivial-jumptables


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

3.1.3 trivial-jumptables/vectorize.lisp

Dependency

package.lisp (file)

Parent

trivial-jumptables (system)

Location

vectorize.lisp

Exported Definitions
Internal Definitions

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

3.1.4 trivial-jumptables/optimize.lisp

Dependency

vectorize.lisp (file)

Parent

trivial-jumptables (system)

Location

optimize.lisp

Exported Definitions
Internal Definitions

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

3.1.5 trivial-jumptables/expand.lisp

Dependency

optimize.lisp (file)

Parent

trivial-jumptables (system)

Location

expand.lisp

Exported Definitions
Internal Definitions

*%initial-ejumpcase-expander* (special variable)


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

4 Packages

Packages are listed by definition order.


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

4.1 trivial-jumptables

Source

package.lisp (file)

Nickname

jumpcase

Use List

common-lisp

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: *ejumpcase-expander*
Package

trivial-jumptables

Source

expand.lisp (file)

Special Variable: *environment*
Package

trivial-jumptables

Source

vectorize.lisp (file)

Special Variable: *precompute-constant-index*
Package

trivial-jumptables

Source

optimize.lisp (file)

Special Variable: *preselect-case*
Package

trivial-jumptables

Source

optimize.lisp (file)

Special Variable: *type-annotate-index-form*
Package

trivial-jumptables

Source

expand.lisp (file)

Special Variable: *vectorization-threshold*
Package

trivial-jumptables

Source

vectorize.lisp (file)

Special Variable: *vectorization-threshold-function*
Package

trivial-jumptables

Source

vectorize.lisp (file)

Special Variable: *vectorize*
Package

trivial-jumptables

Source

vectorize.lisp (file)


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

5.1.2 Macros

Macro: ejumpcase INDEX &body CASES
Package

trivial-jumptables

Source

expand.lisp (file)


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

5.1.3 Functions

Function: expand-ejumpcase-linear INDEX-FORM CASES CASE-COUNT
Package

trivial-jumptables

Source

expand.lisp (file)

Function: expand-ejumpcase-logarithmic INDEX-FORM CASES CASE-COUNT
Package

trivial-jumptables

Source

expand.lisp (file)

Function: make-standard-optimizations-wrapper EJUMPCASE-EXPANDER &key MAKE-VECTORIZING-WRAPPER
Package

trivial-jumptables

Source

optimize.lisp (file)

Function: make-standard-vectorizing-wrapper EJUMPCASE-EXPANDER &key THRESHOLD-FUNCTION
Package

trivial-jumptables

Source

vectorize.lisp (file)

Function: maybe-type-annotate-index-form INDEX-FORM CASE-COUNT
Package

trivial-jumptables

Source

expand.lisp (file)

Function: standard-vectorization-threshold CASE-COUNT
Package

trivial-jumptables

Source

vectorize.lisp (file)


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

5.1.4 Types

Type: index CASE-COUNT
Package

trivial-jumptables

Source

expand.lisp (file)


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

5.2 Internal definitions


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

5.2.1 Special variables

Special Variable: *%initial-ejumpcase-expander*
Package

trivial-jumptables

Source

expand.lisp (file)


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

5.2.2 Functions

Function: %call-threshold-function THRESHOLD-FUNCTION CASE-COUNT
Package

trivial-jumptables

Source

vectorize.lisp (file)

Function: %fill-constantp-vector CONSTANTP-VECTOR CASES THRESHOLD
Package

trivial-jumptables

Source

vectorize.lisp (file)

Function: %maybe-precompute-index INDEX-FORM
Package

trivial-jumptables

Source

optimize.lisp (file)

Function: %maybe-preselect-case-index INDEX-FORM CASE-COUNT
Package

trivial-jumptables

Source

optimize.lisp (file)

Function: %partial-vectorize EJUMPCASE-EXPANDER INDEX-FORM CASES CONSTANTP-VECTOR
Package

trivial-jumptables

Source

vectorize.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   T  
Index Entry  Section

F
File, Lisp, trivial-jumptables.asd: The trivial-jumptables․asd file
File, Lisp, trivial-jumptables/expand.lisp: The trivial-jumptables/expand․lisp file
File, Lisp, trivial-jumptables/optimize.lisp: The trivial-jumptables/optimize․lisp file
File, Lisp, trivial-jumptables/package.lisp: The trivial-jumptables/package․lisp file
File, Lisp, trivial-jumptables/vectorize.lisp: The trivial-jumptables/vectorize․lisp file

L
Lisp File, trivial-jumptables.asd: The trivial-jumptables․asd file
Lisp File, trivial-jumptables/expand.lisp: The trivial-jumptables/expand․lisp file
Lisp File, trivial-jumptables/optimize.lisp: The trivial-jumptables/optimize․lisp file
Lisp File, trivial-jumptables/package.lisp: The trivial-jumptables/package․lisp file
Lisp File, trivial-jumptables/vectorize.lisp: The trivial-jumptables/vectorize․lisp file

T
trivial-jumptables.asd: The trivial-jumptables․asd file
trivial-jumptables/expand.lisp: The trivial-jumptables/expand․lisp file
trivial-jumptables/optimize.lisp: The trivial-jumptables/optimize․lisp file
trivial-jumptables/package.lisp: The trivial-jumptables/package․lisp file
trivial-jumptables/vectorize.lisp: The trivial-jumptables/vectorize․lisp file

Jump to:   F   L   T  

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

A.2 Functions

Jump to:   %  
E   F   M   S  
Index Entry  Section

%
%call-threshold-function: Internal functions
%fill-constantp-vector: Internal functions
%maybe-precompute-index: Internal functions
%maybe-preselect-case-index: Internal functions
%partial-vectorize: Internal functions

E
ejumpcase: Exported macros
expand-ejumpcase-linear: Exported functions
expand-ejumpcase-logarithmic: Exported functions

F
Function, %call-threshold-function: Internal functions
Function, %fill-constantp-vector: Internal functions
Function, %maybe-precompute-index: Internal functions
Function, %maybe-preselect-case-index: Internal functions
Function, %partial-vectorize: Internal functions
Function, expand-ejumpcase-linear: Exported functions
Function, expand-ejumpcase-logarithmic: Exported functions
Function, make-standard-optimizations-wrapper: Exported functions
Function, make-standard-vectorizing-wrapper: Exported functions
Function, maybe-type-annotate-index-form: Exported functions
Function, standard-vectorization-threshold: Exported functions

M
Macro, ejumpcase: Exported macros
make-standard-optimizations-wrapper: Exported functions
make-standard-vectorizing-wrapper: Exported functions
maybe-type-annotate-index-form: Exported functions

S
standard-vectorization-threshold: Exported functions

Jump to:   %  
E   F   M   S  

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

A.3 Variables

Jump to:   *  
S  
Index Entry  Section

*
*%initial-ejumpcase-expander*: Internal special variables
*ejumpcase-expander*: Exported special variables
*environment*: Exported special variables
*precompute-constant-index*: Exported special variables
*preselect-case*: Exported special variables
*type-annotate-index-form*: Exported special variables
*vectorization-threshold*: Exported special variables
*vectorization-threshold-function*: Exported special variables
*vectorize*: Exported special variables

S
Special Variable, *%initial-ejumpcase-expander*: Internal special variables
Special Variable, *ejumpcase-expander*: Exported special variables
Special Variable, *environment*: Exported special variables
Special Variable, *precompute-constant-index*: Exported special variables
Special Variable, *preselect-case*: Exported special variables
Special Variable, *type-annotate-index-form*: Exported special variables
Special Variable, *vectorization-threshold*: Exported special variables
Special Variable, *vectorization-threshold-function*: Exported special variables
Special Variable, *vectorize*: Exported special variables

Jump to:   *  
S  

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

A.4 Data types

Jump to:   I   P   S   T  
Index Entry  Section

I
index: Exported types

P
Package, trivial-jumptables: The trivial-jumptables package

S
System, trivial-jumptables: The trivial-jumptables system

T
trivial-jumptables: The trivial-jumptables system
trivial-jumptables: The trivial-jumptables package
Type, index: Exported types

Jump to:   I   P   S   T