This is the cl-opencl-utils Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 04:18:26 2024 GMT+0.
cl-opencl-utils/cl-opencl-utils.asd
cl-opencl-utils/package.lisp
cl-opencl-utils/utils.lisp
cl-opencl-utils/macro.lisp
cl-opencl-utils/clc.lisp
cl-opencl-utils/clc-utils.lisp
cl-opencl-utils/function.lisp
cl-opencl-utils/struct.lisp
cl-opencl-utils/syntax.lisp
cl-opencl-utils/headers.lisp
cl-opencl-utils/var.lisp
cl-opencl-utils/control.lisp
cl-opencl-utils/bool.lisp
cl-opencl-utils/math.lisp
cl-opencl-utils/raw-functions.lisp
cl-opencl-utils/compile.lisp
cl-opencl-utils/complex.lisp
cl-opencl-utils/math-functions.lisp
cl-opencl-utils/libcerf.lisp
cl-opencl-utils/cleanup.lisp
cl-opencl-utils/map-reduce.lisp
cl-opencl-utils/convolution.lisp
cl-opencl-utils/function-sampling.lisp
cl-opencl-utils/integration.lisp
cl-opencl-utils/spline.lisp
cl-opencl-utils/random.lisp
cl-opencl-utils/blas.lisp
cl-opencl-utils/rk4.lisp
The main system appears first, followed by any subsystem dependency.
cl-opencl-utils
OpenCL utility library built on cl-opencl
Gary Hollis
GPLv3
cl-opencl
(system).
package.lisp
(file).
utils.lisp
(file).
macro.lisp
(file).
clc.lisp
(file).
clc-utils.lisp
(file).
function.lisp
(file).
struct.lisp
(file).
syntax.lisp
(file).
headers.lisp
(file).
var.lisp
(file).
control.lisp
(file).
bool.lisp
(file).
math.lisp
(file).
raw-functions.lisp
(file).
compile.lisp
(file).
complex.lisp
(file).
math-functions.lisp
(file).
libcerf.lisp
(file).
cleanup.lisp
(file).
map-reduce.lisp
(file).
convolution.lisp
(file).
function-sampling.lisp
(file).
integration.lisp
(file).
spline.lisp
(file).
random.lisp
(file).
blas.lisp
(file).
rk4.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
cl-opencl-utils/cl-opencl-utils.asd
cl-opencl-utils/package.lisp
cl-opencl-utils/utils.lisp
cl-opencl-utils/macro.lisp
cl-opencl-utils/clc.lisp
cl-opencl-utils/clc-utils.lisp
cl-opencl-utils/function.lisp
cl-opencl-utils/struct.lisp
cl-opencl-utils/syntax.lisp
cl-opencl-utils/headers.lisp
cl-opencl-utils/var.lisp
cl-opencl-utils/control.lisp
cl-opencl-utils/bool.lisp
cl-opencl-utils/math.lisp
cl-opencl-utils/raw-functions.lisp
cl-opencl-utils/compile.lisp
cl-opencl-utils/complex.lisp
cl-opencl-utils/math-functions.lisp
cl-opencl-utils/libcerf.lisp
cl-opencl-utils/cleanup.lisp
cl-opencl-utils/map-reduce.lisp
cl-opencl-utils/convolution.lisp
cl-opencl-utils/function-sampling.lisp
cl-opencl-utils/integration.lisp
cl-opencl-utils/spline.lisp
cl-opencl-utils/random.lisp
cl-opencl-utils/blas.lisp
cl-opencl-utils/rk4.lisp
cl-opencl-utils/cl-opencl-utils.asd
cl-opencl-utils
(system).
cl-opencl-utils/utils.lisp
package.lisp
(file).
cl-opencl-utils
(system).
c-type-name
(function).
opencl-function-expr
(function).
ensure-sequence
(function).
make-opencl-handler
(macro).
cl-opencl-utils/macro.lisp
utils.lisp
(file).
cl-opencl-utils
(system).
defclcmacro
(macro).
*clc-macros*
(special variable).
expand-clc-macros
(function).
cl-opencl-utils/clc.lisp
macro.lisp
(file).
cl-opencl-utils
(system).
clc
(function).
cl-opencl-utils/clc-utils.lisp
clc.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/function.lisp
clc-utils.lisp
(file).
cl-opencl-utils
(system).
defclcfun
(macro).
defclckernel
(macro).
set-explicit-clc-functions
(function).
undefclcfun
(macro).
undefclckernel
(macro).
*clc-alt-funs*
(special variable).
*clc-funs*
(special variable).
*explicit-funs*
(special variable).
altdefinitions
(function).
altprototypes
(function).
defclcaltfun
(macro).
definition
(function).
explicit-clc-functions
(function).
list->set
(function).
prototype
(function).
required-functions
(function).
undefclcaltfun
(function).
cl-opencl-utils/struct.lisp
function.lisp
(file).
cl-opencl-utils
(system).
defclcstruct
(macro).
defclcstruct-no-cffi
(macro).
undefclcstruct
(macro).
*clc-structs*
(special variable).
required-structs
(function).
required-structs-worker
(function).
struct-definition
(function).
cl-opencl-utils/syntax.lisp
struct.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/headers.lisp
syntax.lisp
(file).
cl-opencl-utils
(system).
compile-flags
(function).
defheader
(macro).
defheader-fn
(function).
explicit-headers
(function).
required-headers
(function).
set-explicit-headers
(function).
with-defheader
(macro).
*clc-compile-flags*
(special variable).
*explicit-headers*
(special variable).
*headers*
(special variable).
compress
(function).
generate-clc->header
(function).
cl-opencl-utils/var.lisp
headers.lisp
(file).
cl-opencl-utils
(system).
defclcglobalvar
(macro).
*clc-gvars*
(special variable).
required-gvars
(function).
cl-opencl-utils/control.lisp
var.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/bool.lisp
control.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/math.lisp
bool.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/raw-functions.lisp
math.lisp
(file).
cl-opencl-utils
(system).
deffileclcfun
(macro).
defrawclcfun
(macro).
cl-opencl-utils/compile.lisp
raw-functions.lisp
(file).
cl-opencl-utils
(system).
program-source-from-forms
(macro).
program-source-from-forms-fn
(function).
program-source-from-functions
(macro).
program-source-from-functions-fn
(function).
program-source-from-kernels
(macro).
program-source-from-kernels-fn
(function).
program-source
(function).
cl-opencl-utils/complex.lisp
compile.lisp
(file).
cl-opencl-utils
(system).
cl_complex
(class).
translate-from-foreign
(method).
translate-into-foreign-memory
(method).
cl-opencl-utils/math-functions.lisp
complex.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/libcerf.lisp
math-functions.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/cleanup.lisp
libcerf.lisp
(file).
cl-opencl-utils
(system).
with-opencl-cleanup
(macro).
cl-opencl-utils/map-reduce.lisp
cleanup.lisp
(file).
cl-opencl-utils
(system).
+opencl-add-rexpr+
(special variable).
+opencl-complex-add-rexpr+
(special variable).
make-opencl-mapper
(function).
make-opencl-reducer
(function).
cl-opencl-utils/convolution.lisp
map-reduce.lisp
(file).
cl-opencl-utils
(system).
make-opencl-convolutor
(function).
cl-opencl-utils/function-sampling.lisp
convolution.lisp
(file).
cl-opencl-utils
(system).
make-opencl-function-sampler
(function).
cl-opencl-utils/integration.lisp
function-sampling.lisp
(file).
cl-opencl-utils
(system).
make-opencl-complex-integrator
(function).
make-opencl-integrator
(function).
cl-opencl-utils/spline.lisp
integration.lisp
(file).
cl-opencl-utils
(system).
make-opencl-spline-form
(function).
serialize-spline-coef-array
(function).
cl-opencl-utils/random.lisp
spline.lisp
(file).
cl-opencl-utils
(system).
cl-opencl-utils/blas.lisp
random.lisp
(file).
cl-opencl-utils
(system).
make-opencl-axpy
(function).
cl-opencl-utils/rk4.lisp
blas.lisp
(file).
cl-opencl-utils
(system).
make-opencl-rk4
(function).
Packages are listed by definition order.
cl-opencl-utils
cffi
.
cl-opencl
.
common-lisp
.
+opencl-add-rexpr+
(special variable).
+opencl-complex-add-rexpr+
(special variable).
c-type-name
(function).
cl_complex
(class).
clc
(function).
compile-flags
(function).
defclcfun
(macro).
defclcglobalvar
(macro).
defclckernel
(macro).
defclcmacro
(macro).
defclcstruct
(macro).
defclcstruct-no-cffi
(macro).
deffileclcfun
(macro).
defheader
(macro).
defheader-fn
(function).
defrawclcfun
(macro).
explicit-headers
(function).
make-opencl-axpy
(function).
make-opencl-complex-integrator
(function).
make-opencl-convolutor
(function).
make-opencl-function-sampler
(function).
make-opencl-integrator
(function).
make-opencl-mapper
(function).
make-opencl-reducer
(function).
make-opencl-rk4
(function).
make-opencl-spline-form
(function).
opencl-function-expr
(function).
program-source-from-forms
(macro).
program-source-from-forms-fn
(function).
program-source-from-functions
(macro).
program-source-from-functions-fn
(function).
program-source-from-kernels
(macro).
program-source-from-kernels-fn
(function).
required-headers
(function).
serialize-spline-coef-array
(function).
set-explicit-clc-functions
(function).
set-explicit-headers
(function).
undefclcfun
(macro).
undefclckernel
(macro).
undefclcstruct
(macro).
with-defheader
(macro).
with-opencl-cleanup
(macro).
*clc-alt-funs*
(special variable).
*clc-compile-flags*
(special variable).
*clc-funs*
(special variable).
*clc-gvars*
(special variable).
*clc-macros*
(special variable).
*clc-structs*
(special variable).
*explicit-funs*
(special variable).
*explicit-headers*
(special variable).
*headers*
(special variable).
*opsymbol->opfunction*
(special variable).
aif
(macro).
altdefinitions
(function).
altprototypes
(function).
compress
(function).
defclc
(macro).
defclcaltfun
(macro).
definition
(function).
depackage
(function).
ensure-sequence
(function).
expand-clc-macros
(function).
explicit-clc-functions
(function).
generate-clc->header
(function).
lisp->clc
(generic function).
list->set
(function).
make-opencl-handler
(macro).
mkstr
(function).
program-source
(function).
prototype
(function).
required-functions
(function).
required-gvars
(function).
required-structs
(function).
required-structs-worker
(function).
single
(function).
struct-definition
(function).
undefclcaltfun
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Defines a OpenCL C function which is loaded automatically into a program’s code.
Defines a global variable using form. form should be one of (var ...) or (vararray ...). The name of the global variable is taken from the var form.
Defines a OpenCL C kernel which is loaded automatically into a program’s code.
Defines a Lispified OpenCL C macro.
Defines both a CFFI struct and an analogous struct available to OpenCL C.
Defines struct available to OpenCL C, but no CFFI type.
Calls defrawclcfun using the contents of a source file located at body-path. body-path is evaluated, no other arguments are evaluated. Make sure that the file contains only the body with enclosing braces {}, and does not include the prototype, name, or type information. Can include these in a comment, and this is recommended for good style.
Macro version of defheader-fn
Defines a OpenCL C function from its type, name, argument list, string for body, and allows specification of explicit header, cheader and function dependencies of the function. No arguments are evaluated. Make sure that the string contains only the body with enclosing braces {}, and does not include the prototype, name, or type information. Can include these in a comment.
Macro version of program-fn where top-level-forms are not evaluated.
Returns all source code needed to create program using the functions supplied.
Returns all source code needed to create program using the kernels supplied.
Defines a C header as well as executing the defclc forms
Many functions in cl-opencl-utils return a list (object cleanup) where cleanup is called once object is no longer needed. This macro sets var to the value of object and automatically calls the cleanup function at the end of the body.
Looks up either 1. Form if form is an atom, or 2. First element of form if form is a list in the operator table *opsymbol->opfunction* and calls the function mapped there with no arguments for atoms or the remaining arguments in the form for lists. If there is no defined operator corresponding to the first element of the list, standard function call notation is assumed and the symbol is downcased as a string for the function name.
Returns all compilation flags required by code form clc
Defines a OpenCL C header or set of headers by its filename(s) fnames,
the OpenCL C objects it provides, and the flags necessary for compiling and
linking.
flags must be a string of compile & link flags for your OpenCL C compiler.
Returns list of explicit headers for that symbol
Returns (axpy cleanup) where axpy is of the form (lambda (a xbuf
ybuf &key count event-wait-list)...) which sets ybuf to the value of a*x + y where a is a scalar
x and y are OpenCL buffers treated as vectors. The return value of
axpy is an event to be waited on for the completion of the OpenCL
operation.
cleanup should be called once the axpy function is no longer needed.
with-opencl-cleanup is useful here.
count is the number of elements to use in the x and y buffers. If not
supplied, then the minimum number of elements that would fit in xbuf
or ybuf of the given type will be used.
type is the OpenCL type to use for a, xbuf, and ybuf.
Same as make-opencl-integrator, but with complex output values for expr. See make-opencl-integrator documentation for details on return values and usage. The only missing keyword parameter is type, as the (:struct cl_complex) type uses double-precision.
Returns a list (convolutor cleanup), where convolutor accepts an
input value and returns the convolution of functions A and B at that
point, and cleanup is a function to call to cleanup foreign and OpenCL
memory allocations.
expr-A and expr-B should be functions that accept a list of strings
and return an OpenCL C expression for the A or B function value
respectively. The first string will be the primary argument, and the
rest of the the strings will be parameter values.
ndomain is the number of samples to take from domain in order to
perform the numerical integration.
convolutor will be a function (lambda (x &key params-A params-B event-wait-list)...)
with sticky values for params-A and params-B so that they only need
supplying when they need to be changed. The number of parameters are
set by the nparams-A and nparams-B for A and B respectively.
Returns a list (function cleanup) where function is of the form
(lambda (out-buffer &key low high nsamples out-start event-wait-list) ...)
that will perform a function sampling operation according to the input
parameters. out-buffer must be an OpenCL memory object with write
ability, and low, high, and nsamples are parameters for function
sampling that must be set at least once. The optional parameters are
sticky, so that once set, they maintain their value until changed.
The results will be written to out-buffer starting at out-start.
out-start defaults to 0. The return value of the generated function
is an event that will need to be waited on and released at some point.
queue must be an OpenCL queue handle.
input-type should be a CFFI type designator.
If output-type is not specified, it is assumed to be input-type.
expr should be a Lisp function accepting one string and returning
OpenCL C code for an expression of a unary operation to apply to the
variable referenced in the string argument. The expression can refer
to code defined in the preamble string argument or included in one of
the headers. opencl-function-expr can be useful to generate
expressions from already-defined OpenCL C functions.
memobj is the source memory buffer.
preamble can be Lispified OpenCL C code or a string of OpenCL C code
to be placed below headers but above the reduction kernel. Useful for
defining utility functions to call in the expression.
headers can be a list of device header file names to include in the
kernel OpenCL C code.
options can be compiler options for the OpenCL kernel.
start can be an initial index offset to start reading from the buffer.
end can be a final index offset to stop reading from the buffer. Uses
subseq index convention, i.e. the element at index=end is not
included.
kernel and program will need to be released at some point once you’re done using the reducer.
Returns a list (integrator cleanup), where integrator is of the form
(lambda (xlow xhigh &key params (ndomain (expt 10 3)) event-wait-list)...)
which returns the value of the integral of a function between xlow and
xhigh, where the function is supplied as a Lispified OpenCL expression
generated by the expr function.
expr should accept a string representing the input x value and
returning Lispified OpenCL C code for the value of the function at
that x value, optionally accepting additional parameter arguments up
to nparams.
ndomain controls the number of points sampled from the domain
[xlow,xhigh] and is a sticky parameter in that once it’s set, it
maintains its value until changed.
params are a sticky argument supplying optional parameters to the
integrated function.
mode can be one of :simpson, :midpoint, :trapezoid, :left, or :right to use the corresponding sampling method.
Returns a list (mapper cleanup) where mapper is of the form
(lambda (in-buffers out-buffer &key params event-wait-list) ...)
that will perform a map operation according to the input parameters.
in-buffers and out-buffer must be a list of OpenCL memory objects and
a single object respectively. The results will be written to
out-buffer starting at 0. If only a subset of a buffer should be read
from or written to, use OpenCL sub buffers via cl-create-sub-buffer.
The return value of the generated function is an event that will need
to be waited on and released at some point.
cleanup should be called once the mapper is done being used so that
OpenCL memory can be cleaned up. The with-opencl-cleanup macro can be
useful.
queue must be an OpenCL queue handle.
input-types should be a list of CFFI type designators or a single type
designator. In the case of a single type designator, in-starts and
in-ends are assumed to be indices rather than lists of indices.
If output-type is not specified, it is assumed to be the first
input-type.
mexpr should be a Lisp function accepting one string and returning
OpenCL C code for an expression of a unary operation to apply to the
variable referenced in the string argument. The expression can refer
to code defined in the preamble string argument or included in one of
the headers.
params can be a list of parameters to supply to the mexpr form in
addition to the primary argument. They will be handed to OpenCL
through a buffer.
memobj is the source memory buffer.
preamble can be a string of OpenCL C code to be placed below headers
but above the reduction kernel. Useful for defining utility functions
to call in the expression.
headers can be a list of device header file names to include in the
kernel OpenCL C code.
options can be compiler options for the OpenCL kernel.
kernel and program will need to be released at some point once you’re done using the reducer.
Returns a list (reducer cleanup) where reducer is of the form
(lambda (buffer &key start end event-wait-list) ...)
that will perform a reduction operation according to the input
parameters. buffer must an OpenCL memory object, and start and end
are optional indices into the buffer. cleanup should be called once
the reducer is done being used so that OpenCL memory can be cleaned
up.
queue must be an OpenCL queue handle.
type should be a CFFI type designator.
rexpr should be a Lisp function accepting two strings and returning
either Lispified OpenCL C code or a string for an OpenCL C expression
of a binary operation. The expression can refer to code defined in
the preamble string argument or included in one of the headers.
memobj is the source memory buffer.
preamble can be a string of OpenCL C code to be placed below headers
but above the reduction kernel. Useful for defining utility functions
to call in the expression.
headers can be a list of device header file names to include in the
kernel OpenCL C code.
options can be compiler options for the OpenCL kernel.
start can be an initial index offset to start reading from the buffer.
end can be a final index offset to stop reading from the buffer. Uses
subseq index convention, i.e. the element at index=end is not
included.
kernel and program will need to be released at some point once you’re done using the reducer.
Returns (stepper cleanup) where stepper is of the form (lambda (buf
&key x-delta event-wait-list params x0) ...) and has the effect of stepping the differential
equation solution for y(x) forward by x-delta using the RK4 algorithm.
buf will be modified by this, as it will contain the estimated value
of y(x + x-delta).
params is an optional argument supplying values to be placed in the
last argument to the kernel, either as a list of data to transfer to
the device or a buffer ID for data already on the device. If
parameters will be supplied, set nparams to the total number of
parameters required. It is up to the user to interpret the parameters
and make use of them in the various kernels supplied as arguments.
x-delta is a sticky parameter that retains its value between calls
until changed.
x0 when set to non-NIL will manually set the x0 value before starting
another iteration of the RK4 algorithm. This is useful for reusing an
existing RK4 stepper starting at a different place on the x-axis but
for the same differential equation. Make sure to set the values of
the supplied buffer to the proper initial conditions prior to calling
the stepper function.
The x0 argument supplied to make-opencl-rk4 is automatically set to
either 0f0 or 0d0 depending on the value of type.
Each element of dy/dx-kernels should the symbol name of a kernel or a
kernel of the form
(kernel dy/dx-kernel
((var x (global (pointer type)))
(var y (global (pointer type)))
(var dy (global (pointer type)))
(var params (global (pointer type))))
...)
which has the effect of setting dy to the value of dy/dx given x and
y. x will always be a single value, but there are y-count elements
available in y.
Note that each dy/dx-kernel does not need to check (get-global-id 0)
to see if it is below y-count, as this is automatically checked before
the kernel is called.
Returns Lispified OpenCL code for a spline function called name. Can be supplied to the preamble of other utilities like make-opencl-integrator or make-opencl-function-sampler.
Returns an expression function generating the Lispified OpenCL code to call that function when supplied with a list of arguments. Useful for multiple utilities, e.g. make-opencl-reducer, make-opencl-mapper, make-opencl-convolutor.
Returns string for the entire OpenCL C program consisting of the top-level forms preceded by any required headers
Returns string source code of program containing all code needed for the supplied function names, including other functions and header includes.
Returns string source code of program containing all code needed for the supplied kernel names, including other functions and header includes.
Returns the list of required headers for a form
Creates list of coefficients from 2-D coefficient array as stored in a cl-ana polynomial-spline.
Defines explicit function dependencies. op can be :set, :add, or :reset.
Defines explicit headers for symbol. op can be :set, :add,
or :reset to either set the header list, add new headers to the list,
or clear all headers for that symbol.
Do not use keyword symbols. Symbols are treated as package-less.
cl_complex
)) ¶cffi
.
cl_complex
) pointer) ¶cffi
.
foreign-struct-type
.
translatable-foreign-type
.
Map from OpenCL C function symbol to alternative definitions
Default compilation flags for all OpenCL C programs
Map from OpenCL C function symbol or string to function code description
Map from OpenCL C function symbol to explicit function symbol dependencies.
Map from symbol to explicit list of headers required by that symbol.
Map from operation symbol to C-generating function.
Defines an operator which takes arguments as specified in
lambda-list and executes the body. Body must return the resulting
string for the generated OpenCL C code.
&body will be replaced with &rest in the lambda-list since it will be supplied to the lambda operator.
Macro that ultimately returns a list (handler cleanup) where
handler and cleanup have been generated according to the input
specifications.
* args are non-buffer arguments to the handler function.
* buffers are buffer arguments to the handler function. Each entry in
buffers should have the form (namesymbol type &key count flags init)
where the buffers are initialized with init if supplied and then set
to new values whenever new values are supplied. Note that
namesymbol is a symbol for the parameter argument, not the buffer
itself. The corresponding buffer is only updated when a non-NIL
value for the parameter is supplied.
* event-binding should be a symbol for the event list that will be
used by the handler. It will also be used by the parameter update
code executed before the supplied code body is executed, so if
out-of-order execution is a possibility then the event list will
need to be treated properly by the code body.
* init-body will be called before returning the (handler cleanup)
result list. This allows e.g. setting up kernel arguments or
further initialization prior to return.
* cleanup-body will be placed at the top of the cleanup function body to e.g. cleanup after programs and kernels created for the handler.
Parameters can be non-sequence atoms or sequences. Non-sequence atoms
will be converted into a sequence prior to writing to a buffer. No
nested sequences are supported, as there is no way to know how to
unflatten the data in general, and so there is no good reason to send
unflattened data as an OpenCL parameter.
There is a macro (buffer (param)...) defined in the handler body that allows you to acquire the parameter buffer given the parameter argument symbol as the argument to the macro. This is useful for e.g. copying buffers.
Compress list such that duplicate elements are combined into a
single pair entry which has as the car the element value and as the
cdr the count.
The singleton-pairs option controls whether single elements are still placed inside a pair. This is useful when the elements of the list you wish to compress are cons cells, as this would otherwise lead to ambiguity in the result.
Returns OpenCL C code for the definition of a function.
Finds & repeatedly expands any res-macros present in expr until none are present.
Returns explicit OpenCL C function dependencies of that symbol.
Returns map from clc to header for that clc symbol
Returns list with duplicates removed
Returns full program source code (minus headers) given top-level forms
Returns OpenCL C code for the prototype of a function definition
Returns list of required functions for code
Returns list of required global variables of code in dependence ordering.
Returns list of required structs for code in order of dependence.
Returns list of required structs for code in reverse order of dependence.
Checks to see if list is a list with exactly one element.
Returns OpenCL C code for the definition of a struct.
Generates an OpenCL string for the Lisp object.
args can be used along with side effects to ensure that the OpenCL C
string is sensible.
Jump to: | A C D E F G L M O P R S T U W |
---|
Jump to: | A C D E F G L M O P R S T U W |
---|
Jump to: | *
+
S |
---|
Jump to: | *
+
S |
---|
Jump to: | B C F H I L M P R S U V |
---|
Jump to: | B C F H I L M P R S U V |
---|