This is the petalisp Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Tue Jul 15 06:13:56 2025 GMT+0.
petalisp/petalisp.asd
petalisp.api/petalisp.api.asd
petalisp.packages/petalisp.packages.asd
petalisp.utilities/petalisp.utilities.asd
petalisp.core/petalisp.core.asd
petalisp.ir/petalisp.ir.asd
petalisp.codegen/petalisp.codegen.asd
petalisp.native-backend/petalisp.native-backend.asd
petalisp.graphviz/petalisp.graphviz.asd
petalisp.test-suite/petalisp.test-suite.asd
petalisp.api/packages.lisp
petalisp.api/with-lazy-arrays.lisp
petalisp.api/shape-syntax.lisp
petalisp.api/transform.lisp
petalisp.api/reshapers.lisp
petalisp.api/broadcast.lisp
petalisp.api/lazy-index-components.lisp
petalisp.api/lazy.lisp
petalisp.api/lazy-multiple-value.lisp
petalisp.api/lazy-overwrite.lisp
petalisp.api/lazy-stack.lisp
petalisp.api/lazy-rearrange.lisp
petalisp.api/harmonize.lisp
petalisp.api/lazy-reduce.lisp
petalisp.api/lazy-sort.lisp
petalisp.api/differentiator.lisp
petalisp.api/documentation.lisp
petalisp.packages/packages.lisp
petalisp.utilities/packages.lisp
petalisp.utilities/documentation.lisp
petalisp.utilities/cqueue.lisp
petalisp.utilities/extended-euclid.lisp
petalisp.utilities/powers-of-two.lisp
petalisp.utilities/prime-factors.lisp
petalisp.utilities/with-collectors.lisp
petalisp.utilities/number-of-cpus.lisp
petalisp.utilities/graph-coloring.lisp
petalisp.utilities/karmarkar-karp.lisp
petalisp.utilities/scheduling.lisp
petalisp.utilities/with-pinned-objects.lisp
petalisp.core/packages.lisp
petalisp.core/inspect.lisp
petalisp.core/range.lisp
petalisp.core/shape.lisp
petalisp.core/transformation.lisp
petalisp.core/transformation-constructors.lisp
petalisp.core/lazy-array.lisp
petalisp.core/lazy-reshape.lisp
petalisp.core/lazy-fuse.lisp
petalisp.core/lazy-map.lisp
petalisp.core/substitute-lazy-arrays.lisp
petalisp.core/backend.lisp
petalisp.core/reference-backend.lisp
petalisp.ir/packages.lisp
petalisp.ir/device.lisp
petalisp.ir/ir.lisp
petalisp.ir/ir-checker.lisp
petalisp.ir/ir-conversion.lisp
petalisp.ir/partitioning.lisp
petalisp.ir/coloring.lisp
petalisp.ir/documentation.lisp
petalisp.codegen/packages.lisp
petalisp.codegen/indexing.lisp
petalisp.codegen/load-foreign-code.lisp
petalisp.codegen/generic-functions.lisp
petalisp.codegen/blueprint.lisp
petalisp.codegen/bpinfo.lisp
petalisp.codegen/compile-cache.lisp
petalisp.codegen/lisp-compiler.lisp
petalisp.codegen/lisp-interpreter.lisp
petalisp.codegen/cpp-from-lisp.lisp
petalisp.codegen/cpp-compiler.lisp
petalisp.codegen/mixins.lisp
petalisp.codegen/ir-backend.lisp
petalisp.native-backend/packages.lisp
petalisp.native-backend/request.lisp
petalisp.native-backend/pin-current-thread.lisp
petalisp.native-backend/worker-pool.lisp
petalisp.native-backend/backend.lisp
petalisp.native-backend/scheduling.lisp
petalisp.native-backend/allocation.lisp
petalisp.native-backend/evaluator.lisp
petalisp.native-backend/compilation.lisp
petalisp.graphviz/packages.lisp
petalisp.graphviz/utilities.lisp
petalisp.graphviz/protocol.lisp
petalisp.graphviz/petalisp.lisp
petalisp.graphviz/data-flow-graph.lisp
petalisp.graphviz/ir.lisp
petalisp.graphviz/partitioning.lisp
petalisp.graphviz/class-diagram.lisp
petalisp.graphviz/scheduling.lisp
petalisp.graphviz/view.lisp
petalisp.test-suite/packages.lisp
petalisp.test-suite/test-suite.lisp
petalisp.test-suite/testing-backend.lisp
petalisp.test-suite/code-statistics.lisp
petalisp.test-suite/defgenerator.lisp
petalisp.test-suite/generators.lisp
petalisp.test-suite/run-petalisp-test-suite.lisp
petalisp.test-suite/petalisp.core.lisp
petalisp.test-suite/petalisp.api.lisp
petalisp.test-suite/petalisp.examples.lisp
The main system appears first, followed by any subsystem dependency.
petalisp
petalisp.api
petalisp.packages
petalisp.utilities
petalisp.core
petalisp.ir
petalisp.codegen
petalisp.native-backend
petalisp.graphviz
petalisp.test-suite
petalisp
Elegant High Performance Computing
Marco Heisig <marco.heisig@fau.de>
AGPLv3
petalisp.api
(system).
petalisp.test-suite
(system).
petalisp.api
A Convenient API for Petalisp.
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
trivia
(system).
split-sequence
(system).
trivial-macroexpand-all
(system).
petalisp.packages
(system).
petalisp.utilities
(system).
petalisp.core
(system).
petalisp.ir
(system).
petalisp.codegen
(system).
petalisp.native-backend
(system).
petalisp.graphviz
(system).
packages.lisp
(file).
with-lazy-arrays.lisp
(file).
shape-syntax.lisp
(file).
transform.lisp
(file).
reshapers.lisp
(file).
broadcast.lisp
(file).
lazy-index-components.lisp
(file).
lazy.lisp
(file).
lazy-multiple-value.lisp
(file).
lazy-overwrite.lisp
(file).
lazy-stack.lisp
(file).
lazy-rearrange.lisp
(file).
harmonize.lisp
(file).
lazy-reduce.lisp
(file).
lazy-sort.lisp
(file).
differentiator.lisp
(file).
documentation.lisp
(file).
petalisp.packages
The PETALISP and PETALISP-USER packages.
Marco Heisig <marco.heisig@fau.de>
AGPLv3
packages.lisp
(file).
petalisp.utilities
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
bordeaux-threads
(system).
queues.priority-queue
(system).
trivia
(system).
trivial-garbage
(system).
packages.lisp
(file).
documentation.lisp
(file).
cqueue.lisp
(file).
extended-euclid.lisp
(file).
powers-of-two.lisp
(file).
prime-factors.lisp
(file).
with-collectors.lisp
(file).
number-of-cpus.lisp
(file).
graph-coloring.lisp
(file).
karmarkar-karp.lisp
(file).
scheduling.lisp
(file).
with-pinned-objects.lisp
(file).
petalisp.core
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
bordeaux-threads
(system).
lparallel
(system).
trivia
(system).
petalisp.packages
(system).
petalisp.utilities
(system).
typo
(system).
packages.lisp
(file).
inspect.lisp
(file).
range.lisp
(file).
shape.lisp
(file).
transformation.lisp
(file).
transformation-constructors.lisp
(file).
lazy-array.lisp
(file).
lazy-reshape.lisp
(file).
lazy-fuse.lisp
(file).
lazy-map.lisp
(file).
substitute-lazy-arrays.lisp
(file).
backend.lisp
(file).
reference-backend.lisp
(file).
petalisp.ir
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
ucons
(system).
priority-queue
(system).
split-sequence
(system).
petalisp.utilities
(system).
petalisp.core
(system).
packages.lisp
(file).
device.lisp
(file).
ir.lisp
(file).
ir-checker.lisp
(file).
ir-conversion.lisp
(file).
partitioning.lisp
(file).
coloring.lisp
(file).
documentation.lisp
(file).
petalisp.codegen
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
cffi
(system).
ucons
(system).
petalisp.utilities
(system).
petalisp.core
(system).
petalisp.ir
(system).
trivia
(system).
trivial-macroexpand-all
(system).
packages.lisp
(file).
indexing.lisp
(file).
load-foreign-code.lisp
(file).
generic-functions.lisp
(file).
blueprint.lisp
(file).
bpinfo.lisp
(file).
compile-cache.lisp
(file).
lisp-compiler.lisp
(file).
lisp-interpreter.lisp
(file).
cpp-from-lisp.lisp
(file).
cpp-compiler.lisp
(file).
mixins.lisp
(file).
ir-backend.lisp
(file).
petalisp.native-backend
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
bordeaux-threads
(system).
cffi
(system).
lparallel
(system).
trivia
(system).
trivial-garbage
(system).
petalisp.utilities
(system).
petalisp.core
(system).
petalisp.ir
(system).
petalisp.codegen
(system).
static-vectors
(system).
typo
(system).
packages.lisp
(file).
request.lisp
(file).
pin-current-thread.lisp
(file).
worker-pool.lisp
(file).
backend.lisp
(file).
scheduling.lisp
(file).
allocation.lisp
(file).
evaluator.lisp
(file).
compilation.lisp
(file).
petalisp.graphviz
Graphviz visualization of Petalisp data structures.
Marco Heisig <marco.heisig@fau.de>
AGPLv3
alexandria
(system).
closer-mop
(system).
uiop
(system).
trivial-features
(system).
petalisp.packages
(system).
petalisp.utilities
(system).
petalisp.core
(system).
petalisp.ir
(system).
petalisp.native-backend
(system).
cl-dot
(system).
packages.lisp
(file).
utilities.lisp
(file).
protocol.lisp
(file).
petalisp.lisp
(file).
data-flow-graph.lisp
(file).
ir.lisp
(file).
partitioning.lisp
(file).
class-diagram.lisp
(file).
scheduling.lisp
(file).
view.lisp
(file).
petalisp.test-suite
A comprehensive test suite for Petalisp.
Marco Heisig <marco.heisig@fau.de>
AGPLv3
asdf
(system).
bordeaux-threads
(system).
closer-mop
(system).
petalisp.examples
(system).
petalisp.api
(system).
petalisp.native-backend
(system).
packages.lisp
(file).
test-suite.lisp
(file).
testing-backend.lisp
(file).
code-statistics.lisp
(file).
defgenerator.lisp
(file).
generators.lisp
(file).
run-petalisp-test-suite.lisp
(file).
petalisp.core.lisp
(file).
petalisp.api.lisp
(file).
petalisp.examples.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
petalisp/petalisp.asd
petalisp.api/petalisp.api.asd
petalisp.packages/petalisp.packages.asd
petalisp.utilities/petalisp.utilities.asd
petalisp.core/petalisp.core.asd
petalisp.ir/petalisp.ir.asd
petalisp.codegen/petalisp.codegen.asd
petalisp.native-backend/petalisp.native-backend.asd
petalisp.graphviz/petalisp.graphviz.asd
petalisp.test-suite/petalisp.test-suite.asd
petalisp.api/packages.lisp
petalisp.api/with-lazy-arrays.lisp
petalisp.api/shape-syntax.lisp
petalisp.api/transform.lisp
petalisp.api/reshapers.lisp
petalisp.api/broadcast.lisp
petalisp.api/lazy-index-components.lisp
petalisp.api/lazy.lisp
petalisp.api/lazy-multiple-value.lisp
petalisp.api/lazy-overwrite.lisp
petalisp.api/lazy-stack.lisp
petalisp.api/lazy-rearrange.lisp
petalisp.api/harmonize.lisp
petalisp.api/lazy-reduce.lisp
petalisp.api/lazy-sort.lisp
petalisp.api/differentiator.lisp
petalisp.api/documentation.lisp
petalisp.packages/packages.lisp
petalisp.utilities/packages.lisp
petalisp.utilities/documentation.lisp
petalisp.utilities/cqueue.lisp
petalisp.utilities/extended-euclid.lisp
petalisp.utilities/powers-of-two.lisp
petalisp.utilities/prime-factors.lisp
petalisp.utilities/with-collectors.lisp
petalisp.utilities/number-of-cpus.lisp
petalisp.utilities/graph-coloring.lisp
petalisp.utilities/karmarkar-karp.lisp
petalisp.utilities/scheduling.lisp
petalisp.utilities/with-pinned-objects.lisp
petalisp.core/packages.lisp
petalisp.core/inspect.lisp
petalisp.core/range.lisp
petalisp.core/shape.lisp
petalisp.core/transformation.lisp
petalisp.core/transformation-constructors.lisp
petalisp.core/lazy-array.lisp
petalisp.core/lazy-reshape.lisp
petalisp.core/lazy-fuse.lisp
petalisp.core/lazy-map.lisp
petalisp.core/substitute-lazy-arrays.lisp
petalisp.core/backend.lisp
petalisp.core/reference-backend.lisp
petalisp.ir/packages.lisp
petalisp.ir/device.lisp
petalisp.ir/ir.lisp
petalisp.ir/ir-checker.lisp
petalisp.ir/ir-conversion.lisp
petalisp.ir/partitioning.lisp
petalisp.ir/coloring.lisp
petalisp.ir/documentation.lisp
petalisp.codegen/packages.lisp
petalisp.codegen/indexing.lisp
petalisp.codegen/load-foreign-code.lisp
petalisp.codegen/generic-functions.lisp
petalisp.codegen/blueprint.lisp
petalisp.codegen/bpinfo.lisp
petalisp.codegen/compile-cache.lisp
petalisp.codegen/lisp-compiler.lisp
petalisp.codegen/lisp-interpreter.lisp
petalisp.codegen/cpp-from-lisp.lisp
petalisp.codegen/cpp-compiler.lisp
petalisp.codegen/mixins.lisp
petalisp.codegen/ir-backend.lisp
petalisp.native-backend/packages.lisp
petalisp.native-backend/request.lisp
petalisp.native-backend/pin-current-thread.lisp
petalisp.native-backend/worker-pool.lisp
petalisp.native-backend/backend.lisp
petalisp.native-backend/scheduling.lisp
petalisp.native-backend/allocation.lisp
petalisp.native-backend/evaluator.lisp
petalisp.native-backend/compilation.lisp
petalisp.graphviz/packages.lisp
petalisp.graphviz/utilities.lisp
petalisp.graphviz/protocol.lisp
petalisp.graphviz/petalisp.lisp
petalisp.graphviz/data-flow-graph.lisp
petalisp.graphviz/ir.lisp
petalisp.graphviz/partitioning.lisp
petalisp.graphviz/class-diagram.lisp
petalisp.graphviz/scheduling.lisp
petalisp.graphviz/view.lisp
petalisp.test-suite/packages.lisp
petalisp.test-suite/test-suite.lisp
petalisp.test-suite/testing-backend.lisp
petalisp.test-suite/code-statistics.lisp
petalisp.test-suite/defgenerator.lisp
petalisp.test-suite/generators.lisp
petalisp.test-suite/run-petalisp-test-suite.lisp
petalisp.test-suite/petalisp.core.lisp
petalisp.test-suite/petalisp.api.lisp
petalisp.test-suite/petalisp.examples.lisp
petalisp.packages/petalisp.packages.asd
petalisp.packages
(system).
petalisp.utilities/petalisp.utilities.asd
petalisp.utilities
(system).
petalisp.codegen/petalisp.codegen.asd
petalisp.codegen
(system).
petalisp.native-backend/petalisp.native-backend.asd
petalisp.native-backend
(system).
petalisp.graphviz/petalisp.graphviz.asd
petalisp.graphviz
(system).
petalisp.test-suite/petalisp.test-suite.asd
petalisp.test-suite
(system).
petalisp.api/packages.lisp
petalisp.api
(system).
*backend*
(special variable).
petalisp.api/with-lazy-arrays.lisp
packages.lisp
(file).
petalisp.api
(system).
with-lazy-arrays
(macro).
petalisp.api/shape-syntax.lisp
with-lazy-arrays.lisp
(file).
petalisp.api
(system).
print-object
(method).
~
(constant).
~
(function).
~*
(constant).
~*
(function).
listify-range-for-printing
(function).
listify-shape-for-printing
(function).
parse-shape
(function).
parse-shape-pattern
(function).
shape-syntax-delimiter
(type).
petalisp.api/transform.lisp
shape-syntax.lisp
(file).
petalisp.api
(system).
print-object
(method).
transform
(macro).
*alphabet*
(special variable).
*free-variables*
(special variable).
canonicalize-transform-input
(function).
compute-transform-input-mask
(function).
compute-transform-output-functions
(function).
expand-transform
(function).
free-variables
(function).
make-transform-transformation
(function).
parse-transform-inputs
(function).
parse-transform-output
(function).
parse-transform-outputs
(function).
register-free-variable
(function).
transformation-input-symbol
(function).
petalisp.api/reshapers.lisp
transform.lisp
(file).
petalisp.api
(system).
range-peeler
(function).
range-slicer
(function).
petalisp.api/broadcast.lisp
reshapers.lisp
(file).
petalisp.api
(system).
broadcast
(function).
broadcast-ranges
(function).
make-broadcasting-transformation
(function).
petalisp.api/lazy-index-components.lisp
broadcast.lisp
(file).
petalisp.api
(system).
lazy-index-components
(function).
petalisp.api/lazy.lisp
lazy-index-components.lisp
(file).
petalisp.api
(system).
lazy
(function).
petalisp.api/lazy-multiple-value.lisp
lazy.lisp
(file).
petalisp.api
(system).
lazy-multiple-value
(function).
petalisp.api/lazy-overwrite.lisp
lazy-multiple-value.lisp
(file).
petalisp.api
(system).
lazy-overwrite
(function).
petalisp.api/lazy-stack.lisp
lazy-overwrite.lisp
(file).
petalisp.api
(system).
lazy-stack
(function).
petalisp.api/lazy-rearrange.lisp
lazy-stack.lisp
(file).
petalisp.api
(system).
lazy-rearrange
(function).
factorize-shape
(function).
insert-axis-after
(function).
insert-axis-before
(function).
lazy-rearrange/normalized
(function).
remove-axis-after
(function).
remove-axis-before
(function).
reshape/flatten
(function).
reshape/unflatten
(function).
petalisp.api/harmonize.lisp
lazy-rearrange.lisp
(file).
petalisp.api
(system).
harmonize
(function).
harmonized-element-type
(function).
lazy-fuse-and-harmonize
(function).
lazy-overwrite-and-harmonize
(function).
petalisp.api/lazy-reduce.lisp
harmonize.lisp
(file).
petalisp.api
(system).
lazy-reduce
(function).
lazy-multireshape
(function).
lazy-reduce-aux
(function).
petalisp.api/lazy-sort.lisp
lazy-reduce.lisp
(file).
petalisp.api
(system).
lazy-sort
(function).
batcher-odd-even-shapes
(function).
lazy-keysort
(function).
lazy-valuesort
(function).
petalisp.api/differentiator.lisp
lazy-sort.lisp
(file).
petalisp.api
(system).
differentiator
(function).
move-axis-to-front
(function).
print-object
(method).
ad-record
(structure).
ad-record-alist
(reader).
(setf ad-record-alist)
(writer).
ad-record-input-gradient
(function).
ad-record-input-gradient-cache
(macro).
ad-record-input-gradient-caches
(reader).
(setf ad-record-input-gradient-caches)
(writer).
ad-record-lazy-array
(reader).
ad-record-output-gradient
(function).
ad-record-output-gradient-cache
(reader).
(setf ad-record-output-gradient-cache)
(writer).
coerce-to-ntype
(function).
input-gradient
(generic function).
make-ad-record
(function).
sum-axis
(function).
petalisp.api/documentation.lisp
differentiator.lisp
(file).
petalisp.api
(system).
petalisp.utilities/packages.lisp
petalisp.utilities
(system).
petalisp.utilities/documentation.lisp
packages.lisp
(file).
petalisp.utilities
(system).
document-compiler-macro
(macro).
document-compiler-macros
(macro).
document-function
(macro).
document-functions
(macro).
document-method-combination
(macro).
document-method-combinations
(macro).
document-setf-expander
(macro).
document-setf-expanders
(macro).
document-structure
(macro).
document-structures
(macro).
document-variable
(macro).
document-variables
(macro).
build-documentation
(function).
document-type
(macro).
document-types
(macro).
ensure-documentation
(function).
expand-documentation
(macro).
petalisp.utilities/cqueue.lisp
documentation.lisp
(file).
petalisp.utilities
(system).
cqueue
(structure).
cqueue-dequeue
(function).
cqueue-enqueue
(function).
cqueuep
(function).
make-cqueue
(function).
cqueue-h-lock
(reader).
(setf cqueue-h-lock)
(writer).
cqueue-head
(reader).
(setf cqueue-head)
(writer).
cqueue-t-lock
(reader).
(setf cqueue-t-lock)
(writer).
cqueue-tail
(reader).
(setf cqueue-tail)
(writer).
petalisp.utilities/extended-euclid.lisp
cqueue.lisp
(file).
petalisp.utilities
(system).
extended-euclid
(function).
small-fixnum
(type).
small-non-negative-fixnum
(type).
petalisp.utilities/powers-of-two.lisp
extended-euclid.lisp
(file).
petalisp.utilities
(system).
clp2-fixnum
(type).
petalisp.utilities/prime-factors.lisp
powers-of-two.lisp
(file).
petalisp.utilities
(system).
prime-factors
(function).
primep
(function).
+table-of-primes+
(constant).
make-table-of-primes
(function).
nth-prime-max-bits
(function).
nth-prime-upper-bound
(function).
petalisp.utilities/with-collectors.lisp
prime-factors.lisp
(file).
petalisp.utilities
(system).
with-collectors
(macro).
with-collector
(macro).
petalisp.utilities/number-of-cpus.lisp
with-collectors.lisp
(file).
petalisp.utilities
(system).
number-of-cpus
(function).
petalisp.utilities/graph-coloring.lisp
number-of-cpus.lisp
(file).
petalisp.utilities
(system).
cgraph-add-conflict
(function).
cgraph-coloring
(function).
cgraph-ensure-cnode
(function).
make-cgraph
(function).
+empty-colorset+
(constant).
cgraph
(structure).
cgraph-p
(function).
cgraph-table
(reader).
(setf cgraph-table)
(writer).
cnode
(structure).
cnode-color
(reader).
(setf cnode-color)
(writer).
cnode-colorset
(reader).
(setf cnode-colorset)
(writer).
cnode-degree
(reader).
(setf cnode-degree)
(writer).
cnode-neighbors
(reader).
(setf cnode-neighbors)
(writer).
cnode-object
(reader).
cnode-p
(function).
cnode-queue-node
(reader).
(setf cnode-queue-node)
(writer).
cnode-saturation
(reader).
(setf cnode-saturation)
(writer).
cnode>
(function).
color
(type).
colorset
(type).
colorset-add
(function).
colorset-contains
(function).
colorset-next-free-color
(function).
colorset-union
(function).
copy-cgraph
(function).
copy-cnode
(function).
make-cnode
(function).
petalisp.utilities/karmarkar-karp.lisp
graph-coloring.lisp
(file).
petalisp.utilities
(system).
karmarkar-karp
(function).
*k*
(special variable).
*weight*
(special variable).
combine-subsets
(function).
combine-tuples
(function).
copy-subset
(function).
copy-tuple
(function).
make-subset
(function).
make-tuple
(function).
subset
(structure).
subset-elements
(reader).
(setf subset-elements)
(writer).
subset-p
(function).
subset-weight
(reader).
(setf subset-weight)
(writer).
tuple
(structure).
tuple-from-object
(function).
tuple-p
(function).
tuple-subset
(function).
tuple-subsets
(reader).
(setf tuple-subsets)
(writer).
tuple-weight
(reader).
(setf tuple-weight)
(writer).
tuple>
(function).
petalisp.utilities/scheduling.lisp
karmarkar-karp.lisp
(file).
petalisp.utilities
(system).
graph
(structure).
graph-add-edge
(function).
graph-ensure-node
(function).
graph-object-nodes
(reader).
(setf graph-object-nodes)
(writer).
graph-parallel-depth-first-schedule
(function).
graphp
(function).
make-graph
(function).
node
(structure).
node-depth
(reader).
(setf node-depth)
(writer).
node-height
(reader).
(setf node-height)
(writer).
node-predecessor-alist
(reader).
(setf node-predecessor-alist)
(writer).
node-successor-alist
(reader).
(setf node-successor-alist)
(writer).
nodep
(function).
print-object
(method).
copy-graph
(function).
copy-node
(function).
copy-node-into
(function).
copy-pdfs-queue
(function).
graph-compute-distances
(function).
graph-compute-node-depth
(function).
graph-compute-node-height
(function).
make-node
(function).
make-pdfs-queue
(function).
node-affinity
(reader).
(setf node-affinity)
(writer).
node-counter
(reader).
(setf node-counter)
(writer).
node-eagerness
(reader).
(setf node-eagerness)
(writer).
node-more-important-p
(function).
node-object
(reader).
(setf node-object)
(writer).
node-position
(reader).
(setf node-position)
(writer).
pdfs-queue
(structure).
pdfs-queue-increase-node-eagerness
(function).
pdfs-queue-p
(function).
pdfs-queue-pop
(function).
pdfs-queue-priority-queue
(reader).
pdfs-queue-push
(function).
pdfs-queue-size
(function).
pdfs-queue-tmpnode
(reader).
(setf pdfs-queue-tmpnode)
(writer).
petalisp.utilities/with-pinned-objects.lisp
scheduling.lisp
(file).
petalisp.utilities
(system).
with-pinned-objects
(macro).
with-pinned-objects*
(macro).
call-with-pinned-objects
(function).
touch
(function).
petalisp.core/inspect.lisp
packages.lisp
(file).
petalisp.core
(system).
*active-inspect-tags*
(special variable).
*valid-inspect-tags*
(special variable).
with-inspection
(macro).
defined-by-graphviz
(function).
petalisp.core/range.lisp
inspect.lisp
(file).
petalisp.core
(system).
empty-range
(function).
empty-range
(structure).
empty-range-p
(function).
map-range
(function).
non-empty-range
(structure).
non-empty-range-p
(function).
print-object
(method).
print-object
(method).
range
(compiler macro).
range
(function).
range
(structure).
range-contains
(function).
range-difference-list
(function).
range-emptyp
(function).
range-end
(function).
range-intersection
(function).
range-intersectionp
(function).
range-last
(function).
range-size
(reader).
range-start
(reader).
range-step
(reader).
range-with-size-one-p
(function).
range=
(function).
rangep
(function).
split-range
(function).
subrangep
(function).
superimpose-ranges
(function).
%make-empty-range
(function).
empty-range-size
(function).
make-non-empty-range
(function).
make-range
(function).
range-difference-list--contiguous
(function).
range-difference-list--single
(function).
range-intersection-start-end-step
(function).
petalisp.core/shape.lisp
range.lisp
(file).
petalisp.core
(system).
array-has-shape-p
(function).
array-shape
(function).
axis
(type).
clear-shape-table
(function).
enlarge-shape
(function).
fuse-shapes
(function).
inflate-shape
(function).
make-shape
(function).
make-shape-table
(function).
map-shape
(function).
rank
(type).
remove-shape-table-entry
(function).
shape
(structure).
shape-contains
(function).
shape-designator-shape
(generic function).
shape-difference-list
(function).
shape-dimension
(function).
shape-dimensions
(function).
shape-emptyp
(function).
shape-intersection
(function).
shape-intersectionp
(function).
shape-prefix
(function).
shape-range
(function).
shape-ranges
(reader).
shape-rank
(reader).
shape-size
(reader).
shape-subseq
(function).
shape-suffix
(function).
shape-table
(structure).
shape-table-p
(function).
shape-table-value
(function).
(setf shape-table-value)
(function).
shape-with-size-one-p
(function).
shape<
(function).
shape=
(function).
shapep
(function).
shrink-shape
(function).
split-shape
(function).
subdivide-shapes
(function).
subshapep
(function).
superimpose-shapes
(function).
%make-shape
(function).
fragment-difference-list
(function).
fragment-intersections
(function).
shape-table-ht
(reader).
subdivide-fragments
(function).
subtract-fragment-lists
(function).
petalisp.core/transformation.lisp
shape.lisp
(file).
petalisp.core
(system).
compose-transformations
(compiler macro).
compose-transformations
(function).
enlarge-transformation
(generic function).
identity-transformation
(structure).
identity-transformation-p
(function).
inflate-transformation
(generic function).
invert-transformation
(generic function).
map-transformation-inputs
(generic function).
map-transformation-outputs
(generic function).
transform-axis
(generic function).
transform-index
(generic function).
transform-shape
(generic function).
transformation
(structure).
transformation-identityp
(function).
transformation-input-mask
(reader).
transformation-input-rank
(reader).
transformation-invertiblep
(function).
transformation-offsets
(reader).
transformation-output-mask
(reader).
transformation-output-rank
(reader).
transformation-scalings
(reader).
transformation-similar
(generic function).
transformation=
(generic function).
transformationp
(function).
%make-hairy-transformation
(function).
%make-identity-transformation
(function).
compose-two-transformations
(generic function).
hairy-transformation
(structure).
hairy-transformation-input-mask
(function).
hairy-transformation-input-rank
(function).
hairy-transformation-inverse
(function).
(setf hairy-transformation-inverse)
(function).
hairy-transformation-offsets
(function).
hairy-transformation-output-mask
(function).
hairy-transformation-output-rank
(function).
hairy-transformation-p
(function).
hairy-transformation-scalings
(function).
identity-transformation-input-mask
(function).
identity-transformation-input-rank
(function).
identity-transformation-inverse
(function).
(setf identity-transformation-inverse)
(function).
identity-transformation-offsets
(function).
identity-transformation-output-mask
(function).
identity-transformation-output-rank
(function).
identity-transformation-scalings
(function).
transformation-inverse
(reader).
(setf transformation-inverse)
(writer).
petalisp.core/transformation-constructors.lisp
transformation.lisp
(file).
petalisp.core
(system).
deflating-transformation
(function).
identity-transformation
(function).
make-transformation
(function).
normalizing-transformation
(function).
canonicalize-inputs
(function).
canonicalize-outputs
(function).
from-storage-transformation
(function).
make-identity-transformation
(function).
size-one-range-removing-transformation
(function).
petalisp.core/lazy-array.lisp
transformation-constructors.lisp
(file).
petalisp.core
(system).
*lazy-array-lock*
(special variable).
array-value
(function).
compatible-with-lazy-array-p
(function).
delayed-action
(structure).
delayed-action-inputs
(generic function).
delayed-action-p
(function).
delayed-array
(structure).
delayed-array-p
(function).
delayed-array-storage
(reader).
(setf delayed-array-storage)
(writer).
delayed-failure
(structure).
delayed-failure-condition
(reader).
delayed-failure-p
(function).
delayed-fuse
(structure).
delayed-fuse-inputs
(reader).
(setf delayed-fuse-inputs)
(writer).
delayed-fuse-p
(function).
delayed-map
(structure).
delayed-map-fnrecord
(reader).
(setf delayed-map-fnrecord)
(writer).
delayed-map-inputs
(reader).
(setf delayed-map-inputs)
(writer).
delayed-map-number-of-values
(function).
delayed-map-p
(function).
delayed-multiple-value-map
(structure).
delayed-multiple-value-map-fnrecord
(function).
(setf delayed-multiple-value-map-fnrecord)
(function).
delayed-multiple-value-map-inputs
(function).
(setf delayed-multiple-value-map-inputs)
(function).
delayed-multiple-value-map-p
(function).
delayed-multiple-value-map-refbits
(reader).
(setf delayed-multiple-value-map-refbits)
(writer).
delayed-multiple-value-map-values-ntype
(reader).
delayed-nop
(structure).
delayed-nop-p
(function).
delayed-nth-value
(structure).
delayed-nth-value-input
(reader).
(setf delayed-nth-value-input)
(writer).
delayed-nth-value-number
(reader).
(setf delayed-nth-value-number)
(writer).
delayed-nth-value-p
(function).
delayed-range
(structure).
delayed-range-p
(function).
delayed-reshape
(structure).
delayed-reshape-input
(reader).
(setf delayed-reshape-input)
(writer).
delayed-reshape-p
(function).
delayed-reshape-transformation
(reader).
(setf delayed-reshape-transformation)
(writer).
delayed-unknown
(structure).
delayed-unknown-p
(function).
delayed-wait
(structure).
delayed-wait-delayed-action
(reader).
(setf delayed-wait-delayed-action)
(writer).
delayed-wait-p
(function).
delayed-wait-request
(reader).
empty-lazy-array
(function).
empty-lazy-arrays
(function).
lazy-array
(function).
lazy-array
(structure).
lazy-array-delayed-action
(reader).
(setf lazy-array-delayed-action)
(writer).
lazy-array-depth
(reader).
lazy-array-dimension
(function).
lazy-array-dimensions
(function).
lazy-array-element-type
(function).
lazy-array-from-array
(function).
lazy-array-from-range
(function).
lazy-array-from-scalar
(function).
lazy-array-inputs
(function).
lazy-array-ntype
(reader).
lazy-array-p
(function).
lazy-array-range
(function).
lazy-array-ranges
(function).
lazy-array-rank
(function).
lazy-array-refcount
(reader).
(setf lazy-array-refcount)
(writer).
lazy-array-shape
(reader).
lazy-array-size
(function).
lazy-unknown-p
(function).
lazy-unknowns
(function).
make-delayed-array
(function).
make-rank-zero-array
(function).
make-unknown
(function).
print-object
(method).
shape-designator-shape
(method).
subdivide-arrays
(function).
value-array
(function).
%make-delayed-array
(function).
%make-delayed-fuse
(function).
%make-delayed-map
(function).
%make-delayed-multiple-value-map
(function).
%make-delayed-nth-value
(function).
%make-delayed-reshape
(function).
copy-delayed-array
(function).
copy-delayed-failure
(function).
copy-delayed-fuse
(function).
copy-delayed-map
(function).
copy-delayed-multiple-value-map
(function).
copy-delayed-nop
(function).
copy-delayed-nth-value
(function).
copy-delayed-range
(function).
copy-delayed-reshape
(function).
copy-delayed-unknown
(function).
copy-delayed-wait
(function).
delayed-multiple-value-map-refbits-lock
(reader).
(setf delayed-multiple-value-map-refbits-lock)
(writer).
make-delayed-failure
(function).
make-delayed-fuse
(function).
make-delayed-map
(function).
make-delayed-multiple-value-map
(function).
make-delayed-nop
(function).
make-delayed-nth-value
(function).
make-delayed-range
(function).
make-delayed-reshape
(function).
make-delayed-unknown
(function).
make-delayed-wait
(function).
make-lazy-array
(function).
maxdepth
(function).
simplify-array
(function).
trivial-lazy-array-p
(generic function).
trivial-lazy-array-value
(generic function).
trivial-object-p
(function).
trivial-object-value
(function).
petalisp.core/lazy-reshape.lisp
lazy-array.lisp
(file).
petalisp.core
(system).
lazy-ref
(function).
lazy-reshape
(function).
add-transformation-constraints
(function).
lazy-reshape-aux
(function).
lazy-reshape-using-function
(function).
lazy-reshape-using-shape
(function).
lazy-reshape-using-transformation
(function).
make-reshape-transformation
(function).
petalisp.core/lazy-fuse.lisp
lazy-reshape.lisp
(file).
petalisp.core
(system).
broadcast-for-fusion
(function).
lazy-fuse
(function).
petalisp.core/lazy-map.lisp
lazy-fuse.lisp
(file).
petalisp.core
(system).
lazy-map
(function).
petalisp.core/substitute-lazy-arrays.lisp
lazy-map.lisp
(file).
petalisp.core
(system).
copy-lazy-arrays
(function).
substitute-delayed-action
(generic function).
substitute-lazy-array
(function).
substitute-lazy-arrays
(function).
*substitutions*
(special variable).
petalisp.core/backend.lisp
substitute-lazy-arrays.lisp
(file).
petalisp.core
(system).
backend
(class).
backend-compute
(generic function).
backend-compute-asynchronously
(generic function).
backend-debug-flag
(generic reader).
(setf backend-debug-flag)
(generic writer).
backend-evaluator
(generic function).
backendp
(generic function).
callcount
(function).
completedp
(function).
compute
(function).
compute-asynchronously
(function).
compute-list-of-arrays
(function).
delete-backend
(generic function).
evaluator
(function).
request
(class).
request-completedp
(generic function).
request-wait
(generic function).
requestp
(generic function).
wait
(function).
with-temporary-backend
(macro).
*backend-compute-recursion*
(special variable).
backend-stats
(class).
completed-request
(class).
deleted-backend
(class).
petalisp.core/reference-backend.lisp
backend.lisp
(file).
petalisp.core
(system).
backend-compute
(method).
make-reference-backend
(function).
*table*
(special variable).
compute-delayed-array
(function).
delayed-action-value
(generic function).
lazy-array-value
(function).
reference-backend
(class).
petalisp.ir/device.lisp
packages.lisp
(file).
petalisp.ir
(system).
core
(class).
core-memory
(generic reader).
core-name
(generic reader).
device
(class).
device-cores
(generic reader).
device-memory
(generic reader).
device-name
(generic reader).
host-device
(function).
memory
(class).
memory-bandwidth
(generic reader).
memory-children
(generic reader).
memory-cores
(generic reader).
memory-granularity
(generic reader).
memory-latency
(generic reader).
memory-name
(generic reader).
memory-parent
(generic reader).
memory-parent-bandwidth
(generic reader).
memory-size
(generic reader).
print-object
(method).
print-object
(method).
print-object
(method).
shared-initialize
(method).
shared-initialize
(method).
*suffix-factors*
(special variable).
fallback-host-device
(function).
linux-host-device
(function).
memory-children-slot
(reader method).
(setf memory-children-slot)
(writer method).
memory-cores-slot
(reader method).
(setf memory-cores-slot)
(writer method).
parse-cache-type
(function).
parse-integer-set
(function).
parse-size
(function).
suffix-factor
(function).
petalisp.ir/ir.lisp
device.lisp
(file).
petalisp.ir
(system).
*stencil-max-radius*
(special variable).
buffer
(structure).
buffer-bits
(function).
buffer-depth
(reader).
(setf buffer-depth)
(writer).
buffer-ntype
(reader).
(setf buffer-ntype)
(writer).
buffer-number
(reader).
(setf buffer-number)
(writer).
buffer-number-of-inputs
(function).
buffer-number-of-loads
(function).
buffer-number-of-outputs
(function).
buffer-number-of-stores
(function).
buffer-program
(function).
buffer-reuse-potential
(function).
buffer-shape
(reader).
(setf buffer-shape)
(writer).
buffer-size
(function).
buffer-storage
(reader).
(setf buffer-storage)
(writer).
buffer-task
(reader).
(setf buffer-task)
(writer).
bufferp
(function).
call-instruction
(structure).
call-instruction-fnrecord
(reader).
(setf call-instruction-fnrecord)
(writer).
call-instruction-function
(function).
call-instruction-inputs
(function).
(setf call-instruction-inputs)
(function).
call-instruction-number-of-values
(reader).
(setf call-instruction-number-of-values)
(writer).
call-instruction-p
(function).
compute-stencil-center
(function).
do-buffer-inputs
(macro).
do-buffer-load-instructions
(macro).
do-buffer-outputs
(macro).
do-buffer-store-instructions
(macro).
do-instruction-inputs
(macro).
do-kernel-inputs
(macro).
do-kernel-instructions
(macro).
do-kernel-load-instructions
(macro).
do-kernel-outputs
(macro).
do-kernel-store-instructions
(macro).
do-program-buffer-groups
(macro).
do-program-buffers
(macro).
do-program-kernels
(macro).
do-program-tasks
(macro).
do-stencil-instructions
(macro).
do-task-defined-buffers
(macro).
do-task-kernels
(macro).
do-task-predecessors
(macro).
do-task-successors
(macro).
ensure-array-buffer-compatibility
(function).
ensure-array-shape-ntype-compatibility
(function).
instruction
(structure).
instruction-inputs
(reader).
(setf instruction-inputs)
(writer).
instruction-number
(reader).
(setf instruction-number)
(writer).
instruction-number-of-values
(generic function).
instruction-transformation
(reader).
(setf instruction-transformation)
(writer).
instructionp
(function).
interior-buffer-p
(function).
iref-instruction
(structure).
iref-instruction-p
(function).
iref-instruction-transformation
(function).
(setf iref-instruction-transformation)
(function).
iterating-instruction
(structure).
iterating-instruction-p
(function).
kernel
(structure).
kernel-cost
(function).
kernel-instruction-vector
(reader).
(setf kernel-instruction-vector)
(writer).
kernel-iteration-space
(reader).
(setf kernel-iteration-space)
(writer).
kernel-load-stencils
(function).
kernel-number
(reader).
(setf kernel-number)
(writer).
kernel-number-of-loads
(function).
kernel-number-of-outputs
(function).
kernel-number-of-stores
(function).
kernel-program
(function).
kernel-reuse-potential
(function).
kernel-sources
(reader).
(setf kernel-sources)
(writer).
kernel-store-stencils
(function).
kernel-targets
(reader).
(setf kernel-targets)
(writer).
kernel-task
(reader).
(setf kernel-task)
(writer).
kernelp
(function).
leaf-buffer-p
(function).
load-instruction
(structure).
load-instruction-buffer
(function).
(setf load-instruction-buffer)
(function).
load-instruction-p
(function).
load-instruction-transformation
(function).
(setf load-instruction-transformation)
(function).
load-or-store-instruction
(structure).
load-or-store-instruction-p
(function).
make-array-from-shape-and-ntype
(function).
make-buffer
(function).
make-buffer-like-array
(function).
make-kernel
(function).
make-program
(function).
make-stencil
(function).
make-task
(function).
map-buffer-inputs
(function).
map-buffer-load-instructions
(function).
map-buffer-outputs
(function).
map-buffer-store-instructions
(function).
map-buffers
(function).
map-buffers-and-kernels
(function).
map-instruction-inputs
(function).
map-kernel-inputs
(function).
map-kernel-instructions
(function).
map-kernel-load-instructions
(function).
map-kernel-outputs
(function).
map-kernel-stencils
(function).
map-kernel-store-instructions
(function).
map-kernels
(function).
map-program-buffer-groups
(function).
map-program-buffers
(function).
map-program-kernels
(function).
map-program-tasks
(function).
map-stencil-instructions
(function).
map-task-defined-buffers
(function).
map-task-kernels
(function).
map-task-predecessors
(function).
map-task-successors
(function).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
program
(structure).
program-buffer
(function).
program-final-task
(reader).
(setf program-final-task)
(writer).
program-initial-task
(reader).
(setf program-initial-task)
(writer).
program-kernel
(function).
program-leaf-alist
(reader).
(setf program-leaf-alist)
(writer).
program-number-of-buffers
(reader).
(setf program-number-of-buffers)
(writer).
program-number-of-kernels
(reader).
(setf program-number-of-kernels)
(writer).
program-number-of-tasks
(function).
program-root-buffers
(reader).
(setf program-root-buffers)
(writer).
program-task-vector
(reader).
(setf program-task-vector)
(writer).
programp
(function).
reuse-optimizing-transformation
(function).
root-buffer-p
(function).
stencil
(structure).
stencil-buffer
(function).
stencil-center
(reader).
(setf stencil-center)
(writer).
stencil-from-instruction
(function).
stencil-input-rank
(function).
stencil-instructions
(reader).
(setf stencil-instructions)
(writer).
stencil-output-mask
(function).
stencil-output-rank
(function).
stencil-scalings
(function).
stencilp
(function).
store-instruction
(structure).
store-instruction-buffer
(function).
(setf store-instruction-buffer)
(function).
store-instruction-input
(function).
store-instruction-p
(function).
store-instruction-transformation
(function).
(setf store-instruction-transformation)
(function).
task
(structure).
task-number
(reader).
(setf task-number)
(writer).
task-program
(reader).
(setf task-program)
(writer).
taskp
(function).
%make-load-instruction
(function).
%make-stencil
(function).
%make-store-instruction
(function).
buffer-readers
(reader).
(setf buffer-readers)
(writer).
buffer-writers
(reader).
(setf buffer-writers)
(writer).
call-instruction-number
(function).
(setf call-instruction-number)
(function).
copy-buffer
(function).
copy-kernel
(function).
copy-program
(function).
copy-task
(function).
count-mapped-elements
(function).
delete-kernel
(function).
differs-exactly-at
(function).
do-kernel-stencils
(macro).
instruction-buffer
(reader).
(setf instruction-buffer)
(writer).
iref-instruction-inputs
(function).
(setf iref-instruction-inputs)
(function).
iref-instruction-number
(function).
(setf iref-instruction-number)
(function).
kernel-data
(reader).
(setf kernel-data)
(writer).
kernel-highest-instruction-number
(function).
kernel-number-of-inputs
(function).
load-instruction-inputs
(function).
(setf load-instruction-inputs)
(function).
load-instruction-number
(function).
(setf load-instruction-number)
(function).
make-call-instruction
(function).
make-iref-instruction
(function).
make-load-instruction
(function).
make-store-instruction
(function).
maybe-add-to-stencil
(function).
simplify-input
(function).
store-instruction-inputs
(function).
(setf store-instruction-inputs)
(function).
store-instruction-number
(function).
(setf store-instruction-number)
(function).
task-defined-buffers
(reader).
(setf task-defined-buffers)
(writer).
task-kernels
(reader).
(setf task-kernels)
(writer).
task-predecessors
(reader).
(setf task-predecessors)
(writer).
task-successors
(reader).
(setf task-successors)
(writer).
transform-buffer
(function).
transform-instruction-input
(generic function).
transform-instruction-output
(generic function).
transform-kernel
(function).
petalisp.ir/ir-checker.lisp
ir.lisp
(file).
petalisp.ir
(system).
check-ir
(function).
*ir-checker-table*
(special variable).
*ir-checker-worklist*
(special variable).
check-ir-node
(generic function).
check-ir-node-eventually
(function).
check-program
(function).
check-reverse-link
(function).
duplicates
(function).
petalisp.ir/ir-conversion.lisp
ir-checker.lisp
(file).
petalisp.ir
(system).
ir-from-lazy-arrays
(function).
program-from-lazy-arrays
(function).
%make-dendrite
(function).
*instruction-table*
(special variable).
*instruction-tables*
(special variable).
*ir-converter*
(special variable).
*prune*
(special variable).
buffer-dendrites
(macro).
clone-reference
(generic function).
collect-prune-buffer-dendrites-alist
(function).
convert-nucleus
(generic function).
copy-dendrite
(function).
copy-ir-converter
(function).
copy-nucleus
(function).
copy-prune
(function).
copy-stem
(function).
dendrite
(structure).
dendrite-cons
(reader).
(setf dendrite-cons)
(writer).
dendrite-depth
(reader).
(setf dendrite-depth)
(writer).
dendrite-kernel
(function).
dendrite-nucleus
(function).
dendrite-p
(function).
dendrite-shape
(reader).
(setf dendrite-shape)
(writer).
dendrite-stem
(reader).
(setf dendrite-stem)
(writer).
dendrite-transformation
(reader).
(setf dendrite-transformation)
(writer).
dendrite-validp
(function).
dendrite-value-n
(function).
ensure-buffer-task
(function).
ensure-instruction-clone
(macro).
ensure-instruction-table
(function).
ensure-nucleus
(function).
ensure-tasks
(function).
event-horizon
(function).
finalize-buffer
(function).
finalize-ir
(function).
finalize-kernel
(function).
find-prune
(function).
grow-dendrite
(function).
grow-dendrite-aux
(generic function).
insert-copy-kernel
(function).
ir-converter
(structure).
ir-converter-array-table
(reader).
(setf ir-converter-array-table)
(writer).
ir-converter-buffer-dendrites-table
(reader).
(setf ir-converter-buffer-dendrites-table)
(writer).
ir-converter-cons-updates
(reader).
(setf ir-converter-cons-updates)
(writer).
ir-converter-empty-p
(function).
ir-converter-kernel-size-threshold
(reader).
ir-converter-leaf-alist
(reader).
(setf ir-converter-leaf-alist)
(writer).
ir-converter-next-nucleus
(function).
ir-converter-nucleus-table
(reader).
(setf ir-converter-nucleus-table)
(writer).
ir-converter-p
(function).
ir-converter-potentially-superfluous-buffers
(reader).
(setf ir-converter-potentially-superfluous-buffers)
(writer).
ir-converter-pqueue
(reader).
(setf ir-converter-pqueue)
(writer).
ir-converter-scalar-table
(reader).
(setf ir-converter-scalar-table)
(writer).
ir-converter-unknown-table
(reader).
(setf ir-converter-unknown-table)
(writer).
make-dendrite
(function).
make-ir-converter
(function).
make-nucleus
(function).
make-prune
(function).
make-stem
(function).
make-substitute-kernel
(function).
maybe-prune
(function).
mergeable-dendrites-p
(function).
nucleus
(structure).
nucleus-dendrites
(reader).
(setf nucleus-dendrites)
(writer).
nucleus-lazy-array
(reader).
(setf nucleus-lazy-array)
(writer).
nucleus-ntype
(function).
nucleus-p
(function).
nucleus-shape
(function).
partition-dendrites
(function).
potentially-superfluous-buffer-p
(function).
prune
(structure).
prune-bits
(reader).
prune-buffers
(reader).
prune-p
(function).
prune-superfluous-buffers
(function).
recompute-kernel-instruction-vector
(function).
recompute-program-task-vector
(function).
reference-to-delayed-unknown
(function).
select-masked-elements
(function).
stem
(structure).
stem-buffers
(reader).
(setf stem-buffers)
(writer).
stem-kernel
(reader).
(setf stem-kernel)
(writer).
stem-nucleus
(reader).
(setf stem-nucleus)
(writer).
stem-p
(function).
stem-validp
(reader).
(setf stem-validp)
(writer).
petalisp.ir/partitioning.lisp
ir-conversion.lisp
(file).
petalisp.ir
(system).
buffer-shard
(structure).
buffer-shard-bits
(function).
buffer-shard-buffer
(reader).
buffer-shard-domain
(reader).
buffer-shard-layout
(reader).
(setf buffer-shard-layout)
(writer).
buffer-shard-maxdepth
(function).
buffer-shard-p
(function).
buffer-shard-parent
(reader).
buffer-shard-path
(function).
buffer-shard-primogenitor
(function).
buffer-shard-readers
(reader).
(setf buffer-shard-readers)
(writer).
buffer-shard-shape
(reader).
buffer-shard-split
(reader).
(setf buffer-shard-split)
(writer).
buffer-shard-writers
(reader).
(setf buffer-shard-writers)
(writer).
compute-buffer-shard-vicinity
(function).
kernel-shard
(structure).
kernel-shard-iteration-space
(reader).
kernel-shard-kernel
(reader).
kernel-shard-more-important-p
(function).
kernel-shard-p
(function).
kernel-shard-sources
(reader).
(setf kernel-shard-sources)
(writer).
kernel-shard-targets
(reader).
(setf kernel-shard-targets)
(writer).
layout
(structure).
layout-allocation
(reader).
(setf layout-allocation)
(writer).
layout-ghost-layer-alist
(reader).
(setf layout-ghost-layer-alist)
(writer).
layout-ntype
(reader).
layout-offset
(reader).
layout-rank
(function).
layout-size
(reader).
layout-strides
(reader).
layoutp
(function).
partition-program
(function).
print-object
(method).
print-object
(method).
print-object
(method).
split
(structure).
split-axis
(reader).
split-left-child
(reader).
split-parent
(function).
split-position
(reader).
split-right-child
(reader).
splitp
(function).
vicinity
(structure).
vicinity-left-neighbors
(function).
vicinity-right-neighbors
(function).
vicinityp
(function).
%make-kernel-shard
(function).
*buffer-ghostspec-vector*
(special variable).
*buffer-shard-queue*
(special variable).
*buffer-shard-split-max-imbalance*
(special variable).
*buffer-shard-split-max-redundancy*
(special variable).
*buffer-shard-split-min-priority*
(special variable).
*buffer-shard-split-priority*
(special variable).
*check-shards-buffer-shards*
(special variable).
*check-shards-kernel-shards*
(special variable).
*check-shards-table*
(special variable).
*check-shards-worklist*
(special variable).
*primogenitor-buffer-shard-vector*
(special variable).
*split-queue*
(special variable).
add-child-kernel-shard
(function).
assign-layout
(function).
assign-layout-ghost-layer-alist
(function).
attempt-split
(function).
buffer-ghostspec
(function).
buffer-shard-add-reader
(function).
buffer-shard-add-writer
(function).
buffer-shard-chains
(function).
buffer-shard-guardian
(function).
buffer-shard-infants
(function).
buffer-shard-more-important-p
(function).
buffer-shard-queue-cleanup
(function).
buffer-shard-queue-emptyp
(function).
buffer-shard-queue-maybe-push
(function).
buffer-shard-queue-pop
(function).
buffer-shard-split-priority
(function).
buffer-shard-split-priority-cache
(reader).
(setf buffer-shard-split-priority-cache)
(writer).
check-shard
(generic function).
check-shard-eventually
(function).
check-shards
(function).
compute-buffer-ghostspec
(function).
compute-buffer-shard-shape
(function).
compute-program-primogenitor-buffer-shard-vector
(function).
copy-buffer-shard
(function).
copy-ghostspec
(function).
copy-kernel-shard
(function).
copy-layout
(function).
copy-split
(function).
copy-vicinity
(function).
destructure-transformoid
(function).
find-optimal-buffer-shard-split-axis
(function).
find-optimal-buffer-shard-split-position
(function).
ghostspec
(structure).
ghostspec-buffer
(reader).
ghostspec-left-padding
(function).
ghostspec-left-padding-vec
(reader).
ghostspec-pattern
(reader).
ghostspec-right-padding
(function).
ghostspec-right-padding-vec
(reader).
ghostspecp
(function).
make-buffer-shard
(function).
make-buffer-shard-queue
(function).
make-ghostspec
(function).
make-kernel-shard
(function).
make-layout
(function).
make-split
(function).
make-split-queue
(function).
make-vicinity
(function).
maxf
(macro).
primogenitor-buffer-shard
(function).
propagate-split
(function).
propagate-split/bmap
(function).
propagate-split/kmap
(function).
refine-buffer-shard
(function).
refine-kernel-shard
(function).
refine-source
(function).
refine-target
(function).
relative-position
(function).
reverse-transform-axis-and-position
(function).
shape-strides
(function).
split-more-important-p
(function).
split-queue-emptyp
(function).
split-queue-pop
(function).
split-queue-push
(function).
transform-axis-and-position
(function).
unlink-kernel-shard
(function).
vicinity-left-neighbors-vec
(reader).
vicinity-right-neighbors-vec
(reader).
petalisp.ir/coloring.lisp
partitioning.lisp
(file).
petalisp.ir
(system).
compute-program-buffer-coloring
(function).
petalisp.ir/documentation.lisp
coloring.lisp
(file).
petalisp.ir
(system).
petalisp.codegen/indexing.lisp
packages.lisp
(file).
petalisp.codegen
(system).
*index-ntype*
(special variable).
petalisp.codegen/load-foreign-code.lisp
indexing.lisp
(file).
petalisp.codegen
(system).
load-foreign-code
(function).
petalisp.codegen/generic-functions.lisp
load-foreign-code.lisp
(file).
petalisp.codegen
(system).
compile-blueprint
(generic function).
compile-kernel
(generic function).
load-function
(generic function).
source-function
(generic function).
store-function
(generic function).
target-function
(generic function).
unpack-function
(generic function).
petalisp.codegen/blueprint.lisp
generic-functions.lisp
(file).
petalisp.codegen
(system).
iteration-space-blueprint
(function).
kernel-blueprint
(function).
transformation-blueprint
(function).
*small-kernel-p*
(special variable).
buffer-stencils-alist-blueprint
(function).
fnrecord-blueprint
(function).
instruction-blueprint
(generic function).
instruction-blueprints
(function).
ranges-blueprint
(function).
stencil-instruction-offsets
(function).
stencils-blueprint
(function).
value-blueprint
(function).
petalisp.codegen/bpinfo.lisp
blueprint.lisp
(file).
petalisp.codegen
(system).
*bpinfo-indices*
(special variable).
*bpinfo-instructions*
(special variable).
*bpinfo-ranges*
(special variable).
*bpinfo-reversed-functions*
(special variable).
*bpinfo-reversed-ioffsets*
(special variable).
*bpinfo-reversed-iscalings*
(special variable).
*bpinfo-reversed-levels*
(special variable).
*bpinfo-sources*
(special variable).
*bpinfo-targets*
(special variable).
*bpnames*
(special variable).
*bpvar-counter*
(special variable).
blueprint-bpinfo
(function).
bpcall
(function).
bpcall
(structure).
bpcall-argument
(function).
bpcall-arguments
(reader).
bpcall-function
(reader).
bpcall-level
(function).
bpcall-value
(function).
bpcall-values
(function).
bpcallp
(function).
bpconstant
(structure).
bpconstant-level
(function).
bpconstant-ntype
(function).
bpconstant-value
(reader).
bpconstantp
(function).
bpeval
(function).
bpfunction
(structure).
bpfunction-instruction-number
(function).
bpfunction-level
(function).
bpfunction-name
(function).
bpfunction-ntype
(function).
bpfunctionp
(function).
bpindex*
(function).
bpindex+
(function).
bpinfo
(structure).
bpinfo-functions
(reader).
bpinfo-indices
(reader).
bpinfo-instructions
(reader).
bpinfo-ioffsets
(reader).
bpinfo-iscalings
(reader).
bpinfo-levels
(reader).
(setf bpinfo-levels)
(writer).
bpinfo-ranges
(reader).
bpinfo-rank
(function).
bpinfo-sources
(reader).
bpinfo-targets
(reader).
bpinfop
(function).
bpinstinfo
(function).
bpinstinfo
(structure).
bpinstinfo-instruction-number
(reader).
bpinstinfo-level
(function).
bpinstinfo-name
(function).
bpinstinfo-ntype
(function).
bpinstruction
(structure).
bpinstruction-level
(reader).
bpinstruction-value
(function).
bpinstruction-values
(reader).
bpinstruction-values-ntype
(function).
bpinstructionp
(function).
bpioffset
(structure).
bpioffset-instruction-number
(function).
bpioffset-level
(function).
bpioffset-name
(function).
bpioffset-ntype
(function).
bpioffsetp
(function).
bpiref
(structure).
bpiref-level
(function).
bpiref-offset
(reader).
bpiref-scaling
(reader).
bpiref-values
(function).
bpirefp
(function).
bpiscaling
(structure).
bpiscaling-instruction-number
(function).
bpiscaling-level
(function).
bpiscaling-name
(function).
bpiscaling-ntype
(function).
bpiscalingp
(function).
bpload
(structure).
bpload-index
(reader).
bpload-level
(function).
bpload-source
(reader).
bpload-values
(function).
bploadp
(function).
bpmemref
(structure).
bpmemref-base
(reader).
(setf bpmemref-base)
(writer).
bpmemref-ntype
(reader).
(setf bpmemref-ntype)
(writer).
bpmemref-rank
(reader).
(setf bpmemref-rank)
(writer).
bpmemref-start
(reader).
(setf bpmemref-start)
(writer).
bpmemref-stencil
(function).
bpmemref-stencils
(reader).
(setf bpmemref-stencils)
(writer).
bpmemref-stride
(function).
bpmemref-strides
(reader).
(setf bpmemref-strides)
(writer).
bpmemrefp
(function).
bpname
(function).
bprange
(structure).
bprange-end
(reader).
bprange-start
(reader).
bprange-step
(reader).
bprangep
(function).
bpref
(function).
bpstencil
(structure).
bpstencil-center
(reader).
(setf bpstencil-center)
(writer).
bpstencil-offsets
(reader).
bpstencil-scalings
(reader).
bpstencilp
(function).
bpstore
(structure).
bpstore-index
(reader).
bpstore-level
(function).
bpstore-target
(reader).
bpstore-value
(reader).
bpstore-values
(function).
bpstorep
(function).
bpvalue
(structure).
bpvalue-level
(reader).
bpvalue-ntype
(reader).
bpvalue=
(generic function).
bpvaluep
(function).
bpvariable
(structure).
bpvariable-level
(function).
bpvariable-name
(reader).
bpvariable-ntype
(function).
bpvariablep
(function).
compute-bpinfo-index
(function).
compute-bpinfo-indices
(function).
compute-bpinfo-ranges
(function).
compute-bpmemref
(function).
compute-bpmemrefs
(function).
compute-bprange
(function).
compute-bpstencil
(function).
copy-bpcall
(function).
copy-bpconstant
(function).
copy-bpfunction
(function).
copy-bpinfo
(function).
copy-bpinstinfo
(function).
copy-bpinstruction
(function).
copy-bpioffset
(function).
copy-bpiref
(function).
copy-bpiscaling
(function).
copy-bpload
(function).
copy-bpmemref
(function).
copy-bprange
(function).
copy-bpstencil
(function).
copy-bpstore
(function).
copy-bpvalue
(function).
copy-bpvariable
(function).
make-bpcall
(function).
make-bpconstant
(function).
make-bpfunction
(function).
make-bpinfo
(function).
make-bpinstruction
(function).
make-bpioffset
(function).
make-bpiref
(function).
make-bpiscaling
(function).
make-bpload
(function).
make-bpmemref
(function).
make-bprange
(function).
make-bpstencil
(function).
make-bpstore
(function).
make-bpvalue
(function).
make-bpvariable
(function).
next-bpvar
(function).
petalisp.codegen/compile-cache.lisp
bpinfo.lisp
(file).
petalisp.codegen
(system).
compile-cache
(structure).
compile-cache-p
(function).
compile-cache-table
(reader).
copy-compile-cache
(function).
make-compile-cache
(function).
petalisp.codegen/lisp-compiler.lisp
compile-cache.lisp
(file).
petalisp.codegen
(system).
make-kernel-lambda
(function).
unpack-array
(function).
with-debug-optimization
(macro).
with-unsafe-optimization
(macro).
with-unsafe-optimization*
(macro).
without-compiler-notes
(macro).
bind
(macro).
bpinstruction-form
(generic function).
bpvalue-form
(generic function).
flatten
(function).
lisp-compile-blueprint
(function).
lisp-translate-blueprint
(function).
make-call-form
(function).
mksym
(function).
store-instruction-offsets
(function).
store-instruction-scalings
(function).
petalisp.codegen/lisp-interpreter.lisp
lisp-compiler.lisp
(file).
petalisp.codegen
(system).
interpret-kernel
(function).
petalisp.codegen/cpp-from-lisp.lisp
lisp-interpreter.lisp
(file).
petalisp.codegen
(system).
*function-cpp-info-table*
(special variable).
blueprint-cpp-translatable-p
(function).
function-cpp-info
(function).
function-cpp-translatable-p
(function).
ntype-cpp-info
(function).
ntype-cpp-translatable-p
(function).
petalisp.codegen/cpp-compiler.lisp
cpp-from-lisp.lisp
(file).
petalisp.codegen
(system).
bpinfo-cpp-arguments
(function).
bpvalue-cffi-type
(function).
bpvalue-cpp-string
(function).
bpvalue-cpp-type
(function).
cpp-compile-blueprint
(function).
cpp-translate-argument
(function).
cpp-translate-blueprint
(function).
cpp-write-defun
(function).
cpp-write-instructions
(function).
cpp-write-loop
(function).
petalisp.codegen/mixins.lisp
cpp-compiler.lisp
(file).
petalisp.codegen
(system).
compile-blueprint
(method).
compile-blueprint
(method).
compile-blueprint
(method).
compile-blueprint
(method).
compile-blueprint
(method).
compile-blueprint
(method).
compile-cache-mixin
(class).
cpp-compiler-mixin
(class).
cuda-compiler-mixin
(class).
lisp-compiler-mixin
(class).
lisp-interpreter-mixin
(class).
lisp-plus-cpp-compiler-mixin
(class).
compile-cache
(reader method).
petalisp.codegen/ir-backend.lisp
mixins.lisp
(file).
petalisp.codegen
(system).
backend-compute
(method).
load-function
(method).
make-ir-backend
(function).
source-function
(method).
store-function
(method).
target-function
(method).
unpack-function
(method).
*chunks*
(special variable).
*nodes*
(special variable).
*worklist*
(special variable).
copy-node
(function).
ensure-node
(function).
execute-node
(function).
ir-backend
(class).
ir-backend-array
(function).
ir-backend-compile-cache
(reader method).
ir-backend-mode
(reader method).
make-node
(function).
node
(structure).
node-dependencies
(reader).
(setf node-dependencies)
(writer).
node-fn
(reader).
(setf node-fn)
(writer).
node-kernel
(reader).
(setf node-kernel)
(writer).
node-p
(function).
node-users
(reader).
(setf node-users)
(writer).
petalisp.native-backend/packages.lisp
petalisp.native-backend
(system).
petalisp.native-backend/request.lisp
packages.lisp
(file).
petalisp.native-backend
(system).
request-completedp
(method).
request-wait
(method).
requestp
(method).
%requestp
(function).
make-request
(function).
request
(structure).
request-cvar
(reader).
request-done
(reader).
(setf request-done)
(writer).
request-lock
(reader).
petalisp.native-backend/pin-current-thread.lisp
request.lisp
(file).
petalisp.native-backend
(system).
*pin-current-thread-code*
(special variable).
*pin-current-thread-library*
(special variable).
pin-current-thread
(function).
petalisp.native-backend/worker-pool.lisp
pin-current-thread.lisp
(file).
petalisp.native-backend
(system).
print-object
(method).
%make-worker
(function).
%make-worker-pool
(function).
*worker*
(special variable).
barrier
(function).
make-worker-pool
(function).
message
(function).
start-worker
(function).
worker
(structure).
worker-barrier-sense
(reader).
(setf worker-barrier-sense)
(writer).
worker-enqueue
(function).
worker-id
(reader).
worker-id
(type).
worker-loop
(function).
worker-pool
(structure).
worker-pool-active
(function).
worker-pool-barrier-countdown
(reader).
(setf worker-pool-barrier-countdown)
(writer).
worker-pool-barrier-sense
(reader).
(setf worker-pool-barrier-sense)
(writer).
worker-pool-join
(function).
worker-pool-liveness
(reader).
(setf worker-pool-liveness)
(writer).
worker-pool-p
(function).
worker-pool-size
(function).
worker-pool-worker
(function).
worker-pool-workers
(reader).
worker-queue
(reader).
(setf worker-queue)
(writer).
worker-serious-conditions
(reader).
(setf worker-serious-conditions)
(writer).
worker-thread
(reader).
(setf worker-thread)
(writer).
worker-worker-pool
(reader).
workerp
(function).
petalisp.native-backend/backend.lisp
worker-pool.lisp
(file).
petalisp.native-backend
(system).
delete-backend
(method).
initialize-instance
(method).
make-native-backend
(function).
backend
(class).
backend-worker-pool
(generic reader).
petalisp.native-backend/scheduling.lisp
backend.lisp
(file).
petalisp.native-backend
(system).
*layout-action-table*
(special variable).
action
(structure).
action-copy-invocations
(reader).
(setf action-copy-invocations)
(writer).
action-work-invocations
(reader).
(setf action-work-invocations)
(writer).
actionp
(function).
compute-schedule
(function).
copy-action
(function).
copy-invocation
(function).
ensure-actions
(function).
ensure-kernel-shard-invocation
(function).
invocation
(structure).
invocation-iteration-space
(reader).
invocation-kernel
(reader).
invocation-kfn
(reader).
invocation-sources
(reader).
(setf invocation-sources)
(writer).
invocation-targets
(reader).
(setf invocation-targets)
(writer).
invocationp
(function).
make-action
(function).
make-copy-invocation
(function).
make-invocation
(function).
make-work-invocation
(function).
merge-actions
(function).
petalisp.native-backend/allocation.lisp
scheduling.lisp
(file).
petalisp.native-backend
(system).
+argument-allocation-category+
(constant).
+constant-allocation-category+
(constant).
+result-allocation-category+
(constant).
+worker-allocation-category-offset+
(constant).
allocate-memory
(function).
allocation
(structure).
allocation-category
(reader).
(setf allocation-category)
(writer).
allocation-color
(reader).
allocation-size-in-bytes
(reader).
allocation-unboxed
(reader).
(setf allocation-unboxed)
(writer).
allocationp
(function).
array-size-in-bytes
(function).
buffer-shard-bind
(function).
buffer-size-in-bytes
(function).
bytes-from-bits
(function).
compute-allocations
(function).
copy-allocation
(function).
free-memory
(function).
layout-bind
(function).
layout-size-in-bytes
(function).
lazy-array-size-in-bytes
(function).
make-allocation
(function).
ntype-bits-per-element
(function).
ntype-unboxed-p
(function).
petalisp.native-backend/evaluator.lisp
allocation.lisp
(file).
petalisp.native-backend
(system).
backend-evaluator
(method).
%make-cenv
(function).
%make-denv
(function).
*simulator-step*
(special variable).
argument-variables
(function).
array-storage-pointer
(function).
array-storage-vector
(function).
bind-argument
(function).
bind-result
(function).
cenv
(structure).
cenv-allocations
(reader).
cenv-argument-ntypes
(reader).
cenv-argument-shapes
(reader).
cenv-backend
(reader).
cenv-constant-arrays
(reader).
cenv-constant-storage-vectors
(reader).
cenv-result-ntypes
(reader).
cenv-result-shapes
(reader).
cenv-schedule
(reader).
cenvp
(function).
check-cenv
(function).
copy-cenv
(function).
copy-denv
(function).
copy-simulated-memory
(function).
denv
(structure).
denv-cenv
(reader).
denv-pointers
(reader).
denv-request
(reader).
(setf denv-request)
(writer).
denv-result-arrays
(reader).
denv-serious-condition-lock
(reader).
(setf denv-serious-condition-lock)
(writer).
denv-serious-conditions
(reader).
(setf denv-serious-conditions)
(writer).
denvp
(function).
ensure-result
(function).
evaluate
(function).
evaluation-failure
(condition).
evaluator-template
(function).
get-result
(function).
make-cenv
(function).
make-denv
(function).
make-simulated-memory
(function).
result-variables
(function).
serious-conditions
(reader method).
simulate-cenv-evaluation
(function).
simulate-references
(function).
simulated-memory
(structure).
simulated-memory-allocation
(reader).
simulated-memory-generation
(reader).
(setf simulated-memory-generation)
(writer).
simulated-memory-mode
(reader).
(setf simulated-memory-mode)
(writer).
simulated-memory-p
(function).
simulated-memory-read-index
(function).
simulated-memory-read-shape
(function).
simulated-memory-table
(reader).
(setf simulated-memory-table)
(writer).
simulated-memory-write-index
(function).
simulated-memory-write-shape
(function).
worker-evaluate
(function).
worker-synchronize-and-invoke
(function).
petalisp.native-backend/compilation.lisp
evaluator.lisp
(file).
petalisp.native-backend
(system).
load-function
(method).
source-function
(method).
store-function
(method).
target-function
(method).
unpack-function
(method).
+n-fixnum-tag-bits+
(constant).
base-char-memref
(function).
(setf base-char-memref)
(function).
c128-memref
(function).
(setf c128-memref)
(function).
c64-memref
(function).
(setf c64-memref)
(function).
character-memref
(function).
(setf character-memref)
(function).
f32-memref
(function).
(setf f32-memref)
(function).
f64-memref
(function).
(setf f64-memref)
(function).
fixnum-memref
(function).
(setf fixnum-memref)
(function).
native-backend-unpack
(function).
s16-memref
(function).
(setf s16-memref)
(function).
s32-memref
(function).
(setf s32-memref)
(function).
s64-memref
(function).
(setf s64-memref)
(function).
s8-memref
(function).
(setf s8-memref)
(function).
u1-memref
(function).
(setf u1-memref)
(function).
u16-memref
(function).
(setf u16-memref)
(function).
u2-memref
(function).
(setf u2-memref)
(function).
u32-memref
(function).
(setf u32-memref)
(function).
u4-memref
(function).
(setf u4-memref)
(function).
u64-memref
(function).
(setf u64-memref)
(function).
u8-memref
(function).
(setf u8-memref)
(function).
petalisp.graphviz/utilities.lisp
packages.lisp
(file).
petalisp.graphviz
(system).
graphviz-attributes
(method combination).
make-html-label
(function).
make-html-table-row
(function).
plist-union
(function).
stringify
(function).
petalisp.graphviz/protocol.lisp
utilities.lisp
(file).
petalisp.graphviz
(system).
generate-graph-from-roots
(method).
graph-object-knows-of
(method).
graph-object-node
(method).
graph-object-pointed-to-by
(method).
graph-object-points-to
(method).
any-edge
(class).
any-graph
(class).
graphviz-default-graph
(generic function).
graphviz-edge-attributes
(generic function).
graphviz-graph-attributes
(generic function).
graphviz-incoming-edge-origins
(generic function).
graphviz-known-nodes
(generic function).
graphviz-node-attributes
(generic function).
graphviz-node-caption
(generic function).
graphviz-node-properties
(generic function).
graphviz-outgoing-edge-targets
(generic function).
graphviz-potential-edges
(generic function).
petalisp.graphviz/petalisp.lisp
protocol.lisp
(file).
petalisp.graphviz
(system).
graphviz-edge-attributes
(method).
graphviz-graph-attributes
(method).
graphviz-node-attributes
(method).
petalisp-edge
(class).
petalisp-graph
(class).
petalisp.graphviz/data-flow-graph.lisp
petalisp.lisp
(file).
petalisp.graphviz
(system).
data-flow-edge
(class).
data-flow-graph
(class).
graphviz-default-graph
(method).
graphviz-incoming-edge-origins
(method).
graphviz-node-attributes
(method).
graphviz-node-attributes
(method).
graphviz-node-attributes
(method).
graphviz-node-attributes
(method).
graphviz-node-attributes
(method).
graphviz-node-caption
(method).
graphviz-node-properties
(method).
graphviz-node-properties
(method).
graphviz-node-properties
(method).
graphviz-node-properties
(method).
graphviz-node-properties
(method).
graphviz-potential-edges
(method).
petalisp.graphviz/ir.lisp
data-flow-graph.lisp
(file).
petalisp.graphviz
(system).
generate-graph-from-roots
(method).
graph-object-cluster
(method).
graph-object-cluster
(method).
*task-cluster-table*
(special variable).
graphviz-default-graph
(method).
graphviz-default-graph
(method).
graphviz-incoming-edge-origins
(method).
graphviz-incoming-edge-origins
(method).
graphviz-node-attributes
(method).
graphviz-node-attributes
(method).
graphviz-node-properties
(method).
graphviz-node-properties
(method).
graphviz-outgoing-edge-targets
(method).
graphviz-outgoing-edge-targets
(method).
graphviz-potential-edges
(method).
hide-buffers
(function).
input-edge
(class).
ir-edge
(class).
ir-graph
(class).
load-edge
(class).
output-edge
(class).
simplify-input
(function).
store-edge
(class).
task-cluster
(function).
petalisp.graphviz/partitioning.lisp
ir.lisp
(file).
petalisp.graphviz
(system).
generate-graph-from-roots
(method).
graph-object-cluster
(method).
graph-object-knows-of
(method).
graph-object-node
(method).
graph-object-node
(method).
graph-object-pointed-to-by
(method).
graph-object-points-to
(method).
*kernel-cluster-table*
(special variable).
buffer-shard-label
(function).
buffer-shard-port
(function).
graphviz-default-graph
(method).
graphviz-default-graph
(method).
graphviz-edge-attributes
(method).
graphviz-edge-attributes
(method).
kernel-cluster
(function).
kernel-shard-label
(function).
layout-label
(function).
partitioning-edge
(class).
partitioning-graph
(class).
reader-edge
(class).
split-label
(function).
writer-edge
(class).
petalisp.graphviz/class-diagram.lisp
partitioning.lisp
(file).
petalisp.graphviz
(system).
graph-object-node
(method).
class-diagram
(class).
direct-subclass-edge
(class).
graphviz-edge-attributes
(method).
graphviz-graph-attributes
(method).
graphviz-incoming-edge-origins
(method).
graphviz-potential-edges
(method).
petalisp.graphviz/scheduling.lisp
class-diagram.lisp
(file).
petalisp.graphviz
(system).
graphviz-default-graph
(method).
graphviz-edge-attributes
(method).
graphviz-known-nodes
(method).
graphviz-node-properties
(method).
graphviz-outgoing-edge-targets
(method).
graphviz-potential-edges
(method).
scheduling-edge
(class).
scheduling-graph
(class).
petalisp.graphviz/view.lisp
scheduling.lisp
(file).
petalisp.graphviz
(system).
*inspect-dependencies*
(special variable).
*inspect-graph*
(special variable).
*inspect-ir*
(special variable).
*inspect-partitioning*
(special variable).
*viewer*
(special variable).
view
(function).
*petalisp-view-directory*
(special variable).
file-open-p
(function).
purge-unused-files-in-directory
(function).
petalisp.test-suite/packages.lisp
petalisp.test-suite
(system).
petalisp.test-suite/test-suite.lisp
packages.lisp
(file).
petalisp.test-suite
(system).
all-tests
(function).
check-package
(function).
define-test
(macro).
is
(macro).
signals
(macro).
*check-count*
(special variable).
*failed-random-state*
(special variable).
*pass-count*
(special variable).
*test-count*
(special variable).
*tests*
(special variable).
call-with-random-state
(function).
call-with-test-harness
(function).
enter-test
(function).
expect-condition
(function).
pass
(function).
report
(function).
symbol-defined-p
(function).
type-specifier-p
(function).
with-random-state
(macro).
with-test-harness
(macro).
petalisp.test-suite/testing-backend.lisp
test-suite.lisp
(file).
petalisp.test-suite
(system).
backend-compute
(method).
delete-backend
(method).
make-testing-backend
(function).
approximately-equal
(generic function).
call-with-testing-backend
(function).
compare-solutions
(function).
ir-backend-compiled
(reader method).
ir-backend-interpreted
(reader method).
native-backend
(reader method).
reference-backend
(reader method).
testing-backend
(class).
with-testing-backend
(macro).
petalisp.test-suite/code-statistics.lisp
testing-backend.lisp
(file).
petalisp.test-suite
(system).
class-name-p
(function).
defgeneric-name-p
(function).
defun-name-p
(function).
macro-name-p
(function).
print-package-statistics
(function).
print-platform-information
(function).
print-system-statistics
(function).
symbol-methods
(function).
system-git-revision
(function).
system-source-file-pathnames
(function).
petalisp.test-suite/defgenerator.lisp
code-statistics.lisp
(file).
petalisp.test-suite
(system).
defgenerator
(macro).
defwrapper
(macro).
parse-defwrapper-lambda-list
(function).
petalisp.test-suite/generators.lisp
defgenerator.lisp
(file).
petalisp.test-suite
(system).
define-float-generator
(macro).
generate-double-float
(function).
generate-integer
(function).
generate-lazy-array
(function).
generate-long-float
(function).
generate-matrix
(function).
generate-range
(function).
generate-shape
(function).
generate-short-float
(function).
generate-single-float
(function).
make-double-float-generator
(function).
make-integer-generator
(function).
make-lazy-array-generator
(function).
make-long-float-generator
(function).
make-matrix-generator
(function).
make-range-generator
(function).
make-shape-generator
(function).
make-short-float-generator
(function).
make-single-float-generator
(function).
ndarray
(function).
reshape-randomly
(function).
petalisp.test-suite/run-petalisp-test-suite.lisp
generators.lisp
(file).
petalisp.test-suite
(system).
run-petalisp-test-suite
(function).
run-tests
(function).
petalisp.test-suite/petalisp.core.lisp
run-petalisp-test-suite.lisp
(file).
petalisp.test-suite
(system).
array-element-test
(function).
fusion-test
(function).
indices-test
(function).
lazy-map-test
(function).
multiple-arguments
(function).
range-test
(function).
reduction-of-fusions
(function).
reduction-test
(function).
reshape-test
(function).
sum-of-pairs
(function).
petalisp.test-suite/petalisp.api.lisp
petalisp.core.lisp
(file).
petalisp.test-suite
(system).
lazy-rearrange-test
(function).
lazy-sort-test
(function).
petalisp.test-suite/petalisp.examples.lisp
petalisp.api.lisp
(file).
petalisp.test-suite
(system).
jacobi-test
(function).
linear-algebra-test
(function).
rbgs-test
(function).
v-cycle-test
(function).
Packages are listed by definition order.
petalisp.api
petalisp.test-suite
petalisp.codegen
petalisp.utilities
petalisp-user
petalisp.scheduling
petalisp-1.0
petalisp.cqueue
petalisp.core
petalisp.ir
petalisp.karmarkar-karp
petalisp.graphviz
petalisp.native-backend
petalisp.api
common-lisp
.
petalisp-1.0
.
move-axis-to-front
(function).
*alphabet*
(special variable).
*free-variables*
(special variable).
ad-record
(structure).
ad-record-alist
(reader).
(setf ad-record-alist)
(writer).
ad-record-input-gradient
(function).
ad-record-input-gradient-cache
(macro).
ad-record-input-gradient-caches
(reader).
(setf ad-record-input-gradient-caches)
(writer).
ad-record-lazy-array
(reader).
ad-record-output-gradient
(function).
ad-record-output-gradient-cache
(reader).
(setf ad-record-output-gradient-cache)
(writer).
batcher-odd-even-shapes
(function).
broadcast-ranges
(function).
canonicalize-transform-input
(function).
coerce-to-ntype
(function).
compute-transform-input-mask
(function).
compute-transform-output-functions
(function).
expand-transform
(function).
factorize-shape
(function).
free-variables
(function).
input-gradient
(generic function).
insert-axis-after
(function).
insert-axis-before
(function).
lazy-keysort
(function).
lazy-multireshape
(function).
lazy-rearrange/normalized
(function).
lazy-reduce-aux
(function).
lazy-valuesort
(function).
listify-range-for-printing
(function).
listify-shape-for-printing
(function).
make-ad-record
(function).
make-broadcasting-transformation
(function).
make-transform-transformation
(function).
parse-shape
(function).
parse-shape-pattern
(function).
parse-transform-inputs
(function).
parse-transform-output
(function).
parse-transform-outputs
(function).
range-peeler
(function).
range-slicer
(function).
register-free-variable
(function).
remove-axis-after
(function).
remove-axis-before
(function).
reshape/flatten
(function).
reshape/unflatten
(function).
shape-syntax-delimiter
(type).
sum-axis
(function).
transformation-input-symbol
(function).
petalisp.test-suite
common-lisp
.
petalisp-1.0
.
petalisp.examples.iterative-methods
.
petalisp.examples.linear-algebra
.
all-tests
(function).
check-package
(function).
define-test
(macro).
is
(macro).
make-testing-backend
(function).
run-petalisp-test-suite
(function).
run-tests
(function).
signals
(macro).
*check-count*
(special variable).
*failed-random-state*
(special variable).
*pass-count*
(special variable).
*test-count*
(special variable).
*tests*
(special variable).
approximately-equal
(generic function).
array-element-test
(function).
call-with-random-state
(function).
call-with-test-harness
(function).
call-with-testing-backend
(function).
class-name-p
(function).
compare-solutions
(function).
defgenerator
(macro).
defgeneric-name-p
(function).
define-float-generator
(macro).
defun-name-p
(function).
defwrapper
(macro).
enter-test
(function).
expect-condition
(function).
fusion-test
(function).
generate-double-float
(function).
generate-integer
(function).
generate-lazy-array
(function).
generate-long-float
(function).
generate-matrix
(function).
generate-range
(function).
generate-shape
(function).
generate-short-float
(function).
generate-single-float
(function).
indices-test
(function).
ir-backend-compiled
(generic reader).
ir-backend-interpreted
(generic reader).
jacobi-test
(function).
lazy-map-test
(function).
lazy-rearrange-test
(function).
lazy-sort-test
(function).
linear-algebra-test
(function).
macro-name-p
(function).
make-double-float-generator
(function).
make-integer-generator
(function).
make-lazy-array-generator
(function).
make-long-float-generator
(function).
make-matrix-generator
(function).
make-range-generator
(function).
make-shape-generator
(function).
make-short-float-generator
(function).
make-single-float-generator
(function).
multiple-arguments
(function).
native-backend
(generic reader).
ndarray
(function).
parse-defwrapper-lambda-list
(function).
pass
(function).
print-package-statistics
(function).
print-platform-information
(function).
print-system-statistics
(function).
range-test
(function).
rbgs-test
(function).
reduction-of-fusions
(function).
reduction-test
(function).
reference-backend
(generic reader).
report
(function).
reshape-randomly
(function).
reshape-test
(function).
sum-of-pairs
(function).
symbol-defined-p
(function).
symbol-methods
(function).
system-git-revision
(function).
system-source-file-pathnames
(function).
testing-backend
(class).
type-specifier-p
(function).
v-cycle-test
(function).
with-random-state
(macro).
with-test-harness
(macro).
with-testing-backend
(macro).
petalisp.codegen
common-lisp
.
petalisp.core
.
petalisp.ir
.
compile-blueprint
(generic function).
compile-cache-mixin
(class).
compile-kernel
(generic function).
cpp-compiler-mixin
(class).
cuda-compiler-mixin
(class).
index
(type).
index*
(compiler macro).
index*
(function).
index+
(compiler macro).
index+
(function).
iteration-space-blueprint
(function).
kernel-blueprint
(function).
lisp-compiler-mixin
(class).
lisp-interpreter-mixin
(class).
lisp-plus-cpp-compiler-mixin
(class).
load-foreign-code
(function).
load-function
(generic function).
make-kernel-lambda
(function).
source-function
(generic function).
store-function
(generic function).
target-function
(generic function).
transformation-blueprint
(function).
unpack-array
(function).
unpack-function
(generic function).
with-debug-optimization
(macro).
with-unsafe-optimization
(macro).
with-unsafe-optimization*
(macro).
without-compiler-notes
(macro).
*bpinfo-indices*
(special variable).
*bpinfo-instructions*
(special variable).
*bpinfo-ranges*
(special variable).
*bpinfo-reversed-functions*
(special variable).
*bpinfo-reversed-ioffsets*
(special variable).
*bpinfo-reversed-iscalings*
(special variable).
*bpinfo-reversed-levels*
(special variable).
*bpinfo-sources*
(special variable).
*bpinfo-targets*
(special variable).
*bpnames*
(special variable).
*bpvar-counter*
(special variable).
*chunks*
(special variable).
*function-cpp-info-table*
(special variable).
*index-ntype*
(special variable).
*nodes*
(special variable).
*small-kernel-p*
(special variable).
*worklist*
(special variable).
bind
(macro).
blueprint-bpinfo
(function).
blueprint-cpp-translatable-p
(function).
bpcall
(function).
bpcall
(structure).
bpcall-argument
(function).
bpcall-arguments
(reader).
bpcall-function
(reader).
bpcall-level
(function).
bpcall-value
(function).
bpcall-values
(function).
bpcallp
(function).
bpconstant
(structure).
bpconstant-level
(function).
bpconstant-ntype
(function).
bpconstant-value
(reader).
bpconstantp
(function).
bpeval
(function).
bpfunction
(structure).
bpfunction-instruction-number
(function).
bpfunction-level
(function).
bpfunction-name
(function).
bpfunction-ntype
(function).
bpfunctionp
(function).
bpindex*
(function).
bpindex+
(function).
bpinfo
(structure).
bpinfo-cpp-arguments
(function).
bpinfo-functions
(reader).
bpinfo-indices
(reader).
bpinfo-instructions
(reader).
bpinfo-ioffsets
(reader).
bpinfo-iscalings
(reader).
bpinfo-levels
(reader).
(setf bpinfo-levels)
(writer).
bpinfo-ranges
(reader).
bpinfo-rank
(function).
bpinfo-sources
(reader).
bpinfo-targets
(reader).
bpinfop
(function).
bpinstinfo
(function).
bpinstinfo
(structure).
bpinstinfo-instruction-number
(reader).
bpinstinfo-level
(function).
bpinstinfo-name
(function).
bpinstinfo-ntype
(function).
bpinstruction
(structure).
bpinstruction-form
(generic function).
bpinstruction-level
(reader).
bpinstruction-value
(function).
bpinstruction-values
(reader).
bpinstruction-values-ntype
(function).
bpinstructionp
(function).
bpioffset
(structure).
bpioffset-instruction-number
(function).
bpioffset-level
(function).
bpioffset-name
(function).
bpioffset-ntype
(function).
bpioffsetp
(function).
bpiref
(structure).
bpiref-level
(function).
bpiref-offset
(reader).
bpiref-scaling
(reader).
bpiref-values
(function).
bpirefp
(function).
bpiscaling
(structure).
bpiscaling-instruction-number
(function).
bpiscaling-level
(function).
bpiscaling-name
(function).
bpiscaling-ntype
(function).
bpiscalingp
(function).
bpload
(structure).
bpload-index
(reader).
bpload-level
(function).
bpload-source
(reader).
bpload-values
(function).
bploadp
(function).
bpmemref
(structure).
bpmemref-base
(reader).
(setf bpmemref-base)
(writer).
bpmemref-ntype
(reader).
(setf bpmemref-ntype)
(writer).
bpmemref-rank
(reader).
(setf bpmemref-rank)
(writer).
bpmemref-start
(reader).
(setf bpmemref-start)
(writer).
bpmemref-stencil
(function).
bpmemref-stencils
(reader).
(setf bpmemref-stencils)
(writer).
bpmemref-stride
(function).
bpmemref-strides
(reader).
(setf bpmemref-strides)
(writer).
bpmemrefp
(function).
bpname
(function).
bprange
(structure).
bprange-end
(reader).
bprange-start
(reader).
bprange-step
(reader).
bprangep
(function).
bpref
(function).
bpstencil
(structure).
bpstencil-center
(reader).
(setf bpstencil-center)
(writer).
bpstencil-offsets
(reader).
bpstencil-scalings
(reader).
bpstencilp
(function).
bpstore
(structure).
bpstore-index
(reader).
bpstore-level
(function).
bpstore-target
(reader).
bpstore-value
(reader).
bpstore-values
(function).
bpstorep
(function).
bpvalue
(structure).
bpvalue-cffi-type
(function).
bpvalue-cpp-string
(function).
bpvalue-cpp-type
(function).
bpvalue-form
(generic function).
bpvalue-level
(reader).
bpvalue-ntype
(reader).
bpvalue=
(generic function).
bpvaluep
(function).
bpvariable
(structure).
bpvariable-level
(function).
bpvariable-name
(reader).
bpvariable-ntype
(function).
bpvariablep
(function).
buffer-stencils-alist-blueprint
(function).
compile-cache
(generic reader).
compile-cache
(structure).
compile-cache-p
(function).
compile-cache-table
(reader).
compute-bpinfo-index
(function).
compute-bpinfo-indices
(function).
compute-bpinfo-ranges
(function).
compute-bpmemref
(function).
compute-bpmemrefs
(function).
compute-bprange
(function).
compute-bpstencil
(function).
copy-bpcall
(function).
copy-bpconstant
(function).
copy-bpfunction
(function).
copy-bpinfo
(function).
copy-bpinstinfo
(function).
copy-bpinstruction
(function).
copy-bpioffset
(function).
copy-bpiref
(function).
copy-bpiscaling
(function).
copy-bpload
(function).
copy-bpmemref
(function).
copy-bprange
(function).
copy-bpstencil
(function).
copy-bpstore
(function).
copy-bpvalue
(function).
copy-bpvariable
(function).
copy-compile-cache
(function).
copy-node
(function).
cpp-compile-blueprint
(function).
cpp-translate-argument
(function).
cpp-translate-blueprint
(function).
cpp-write-defun
(function).
cpp-write-instructions
(function).
cpp-write-loop
(function).
ensure-node
(function).
execute-node
(function).
flatten
(function).
fnrecord-blueprint
(function).
function-cpp-info
(function).
function-cpp-translatable-p
(function).
instruction-blueprint
(generic function).
instruction-blueprints
(function).
interpret-kernel
(function).
ir-backend
(class).
ir-backend-array
(function).
ir-backend-compile-cache
(generic reader).
ir-backend-mode
(generic reader).
lisp-compile-blueprint
(function).
lisp-translate-blueprint
(function).
make-bpcall
(function).
make-bpconstant
(function).
make-bpfunction
(function).
make-bpinfo
(function).
make-bpinstruction
(function).
make-bpioffset
(function).
make-bpiref
(function).
make-bpiscaling
(function).
make-bpload
(function).
make-bpmemref
(function).
make-bprange
(function).
make-bpstencil
(function).
make-bpstore
(function).
make-bpvalue
(function).
make-bpvariable
(function).
make-call-form
(function).
make-compile-cache
(function).
make-node
(function).
mksym
(function).
next-bpvar
(function).
node
(structure).
node-dependencies
(reader).
(setf node-dependencies)
(writer).
node-fn
(reader).
(setf node-fn)
(writer).
node-kernel
(reader).
(setf node-kernel)
(writer).
node-p
(function).
node-users
(reader).
(setf node-users)
(writer).
ntype-cpp-info
(function).
ntype-cpp-translatable-p
(function).
ranges-blueprint
(function).
stencil-instruction-offsets
(function).
stencils-blueprint
(function).
store-instruction-offsets
(function).
store-instruction-scalings
(function).
value-blueprint
(function).
petalisp.utilities
common-lisp
.
cgraph-add-conflict
(function).
cgraph-coloring
(function).
cgraph-ensure-cnode
(function).
clp2
(function).
document-compiler-macro
(macro).
document-compiler-macros
(macro).
document-function
(macro).
document-functions
(macro).
document-method-combination
(macro).
document-method-combinations
(macro).
document-setf-expander
(macro).
document-setf-expanders
(macro).
document-structure
(macro).
document-structures
(macro).
document-variable
(macro).
document-variables
(macro).
extended-euclid
(function).
flp2
(function).
karmarkar-karp
(function).
make-cgraph
(function).
number-of-cpus
(function).
prime-factors
(function).
primep
(function).
with-collectors
(macro).
with-pinned-objects
(macro).
with-pinned-objects*
(macro).
+empty-colorset+
(constant).
+table-of-primes+
(constant).
build-documentation
(function).
call-with-pinned-objects
(function).
cgraph
(structure).
cgraph-p
(function).
cgraph-table
(reader).
(setf cgraph-table)
(writer).
clp2-fixnum
(type).
cnode
(structure).
cnode-color
(reader).
(setf cnode-color)
(writer).
cnode-colorset
(reader).
(setf cnode-colorset)
(writer).
cnode-degree
(reader).
(setf cnode-degree)
(writer).
cnode-neighbors
(reader).
(setf cnode-neighbors)
(writer).
cnode-object
(reader).
cnode-p
(function).
cnode-queue-node
(reader).
(setf cnode-queue-node)
(writer).
cnode-saturation
(reader).
(setf cnode-saturation)
(writer).
cnode>
(function).
color
(type).
colorset
(type).
colorset-add
(function).
colorset-contains
(function).
colorset-next-free-color
(function).
colorset-union
(function).
copy-cgraph
(function).
copy-cnode
(function).
document-type
(macro).
document-types
(macro).
ensure-documentation
(function).
expand-documentation
(macro).
make-cnode
(function).
make-table-of-primes
(function).
nth-prime-max-bits
(function).
nth-prime-upper-bound
(function).
small-fixnum
(type).
small-non-negative-fixnum
(type).
touch
(function).
with-collector
(macro).
petalisp.scheduling
common-lisp
.
graph
(structure).
graph-add-edge
(function).
graph-ensure-node
(function).
graph-object-nodes
(reader).
(setf graph-object-nodes)
(writer).
graph-parallel-depth-first-schedule
(function).
graphp
(function).
make-graph
(function).
node
(structure).
node-depth
(reader).
(setf node-depth)
(writer).
node-height
(reader).
(setf node-height)
(writer).
node-predecessor-alist
(reader).
(setf node-predecessor-alist)
(writer).
node-successor-alist
(reader).
(setf node-successor-alist)
(writer).
nodep
(function).
copy-graph
(function).
copy-node
(function).
copy-node-into
(function).
copy-pdfs-queue
(function).
graph-compute-distances
(function).
graph-compute-node-depth
(function).
graph-compute-node-height
(function).
make-node
(function).
make-pdfs-queue
(function).
node-affinity
(reader).
(setf node-affinity)
(writer).
node-counter
(reader).
(setf node-counter)
(writer).
node-eagerness
(reader).
(setf node-eagerness)
(writer).
node-more-important-p
(function).
node-object
(reader).
(setf node-object)
(writer).
node-position
(reader).
(setf node-position)
(writer).
pdfs-queue
(structure).
pdfs-queue-increase-node-eagerness
(function).
pdfs-queue-p
(function).
pdfs-queue-pop
(function).
pdfs-queue-priority-queue
(reader).
pdfs-queue-push
(function).
pdfs-queue-size
(function).
pdfs-queue-tmpnode
(reader).
(setf pdfs-queue-tmpnode)
(writer).
petalisp-1.0
petalisp
common-lisp
.
petalisp-user
.
petalisp.api
.
petalisp.core
.
petalisp.examples.apldef
.
petalisp.examples.iterative-methods
.
petalisp.examples.linear-algebra
.
petalisp.examples.mnist
.
petalisp.examples.multigrid
.
petalisp.examples.statistics
.
petalisp.examples.wave-equation
.
petalisp.graphviz
.
petalisp.test-suite
.
*backend*
(special variable).
backend
(class).
backendp
(generic function).
broadcast
(function).
completedp
(function).
compose-transformations
(compiler macro).
compose-transformations
(function).
compute
(function).
compute-asynchronously
(function).
deflater
(function).
delete-backend
(generic function).
differentiator
(function).
evaluator
(function).
harmonize
(function).
harmonized-element-type
(function).
invert-transformation
(generic function).
lazy
(function).
lazy-array
(slot).
lazy-array
(function).
lazy-array
(structure).
lazy-array
(slot).
lazy-array-dimension
(function).
lazy-array-dimensions
(function).
lazy-array-element-type
(function).
lazy-array-p
(function).
lazy-array-range
(function).
lazy-array-ranges
(function).
lazy-array-rank
(function).
lazy-array-shape
(reader).
lazy-array-size
(function).
lazy-fuse
(function).
lazy-fuse-and-harmonize
(function).
lazy-index-components
(function).
lazy-multiple-value
(function).
lazy-overwrite
(function).
lazy-overwrite-and-harmonize
(function).
lazy-rearrange
(function).
lazy-reduce
(function).
lazy-reshape
(function).
lazy-sort
(function).
lazy-stack
(function).
make-ir-backend
(function).
make-native-backend
(function).
make-reference-backend
(function).
make-shape
(function).
make-transformation
(function).
make-unknown
(function).
map-range
(function).
map-shape
(function).
peeler
(function).
range
(compiler macro).
range
(function).
range
(structure).
range-contains
(function).
range-difference-list
(function).
range-emptyp
(function).
range-end
(function).
range-intersection
(function).
range-intersectionp
(function).
range-last
(function).
range-size
(reader).
range-start
(reader).
range-step
(reader).
range-with-size-one-p
(function).
range=
(function).
rangep
(function).
shape
(structure).
shape
(slot).
shape
(slot).
shape
(slot).
shape-contains
(function).
shape-designator-shape
(generic function).
shape-difference-list
(function).
shape-dimension
(function).
shape-dimensions
(function).
shape-emptyp
(function).
shape-intersection
(function).
shape-intersectionp
(function).
shape-range
(function).
shape-ranges
(reader).
shape-rank
(reader).
shape-size
(reader).
shape-with-size-one-p
(function).
shape<
(function).
shape=
(function).
shapep
(function).
slicer
(function).
split-range
(function).
split-shape
(function).
subdivide-shapes
(function).
subrangep
(function).
subshapep
(function).
superimpose-ranges
(function).
superimpose-shapes
(function).
transform
(macro).
transform-index
(generic function).
transform-shape
(generic function).
transformation
(structure).
transformation
(slot).
transformation
(slot).
transformation
(slot).
transformation-identityp
(function).
transformation-input-mask
(reader).
transformation-input-rank
(reader).
transformation-invertiblep
(function).
transformation-offsets
(reader).
transformation-output-mask
(reader).
transformation-output-rank
(reader).
transformation-scalings
(reader).
transformation=
(generic function).
transformationp
(function).
view
(function).
wait
(function).
with-lazy-arrays
(macro).
with-temporary-backend
(macro).
~
(constant).
~
(function).
~*
(constant).
~*
(function).
petalisp.cqueue
common-lisp
.
cqueue
(structure).
cqueue-dequeue
(function).
cqueue-enqueue
(function).
cqueuep
(function).
make-cqueue
(function).
cqueue-h-lock
(reader).
(setf cqueue-h-lock)
(writer).
cqueue-head
(reader).
(setf cqueue-head)
(writer).
cqueue-t-lock
(reader).
(setf cqueue-t-lock)
(writer).
cqueue-tail
(reader).
(setf cqueue-tail)
(writer).
petalisp.core
common-lisp
.
petalisp-1.0
.
*active-inspect-tags*
(special variable).
*inspect-dependencies*
(special variable).
*inspect-graph*
(special variable).
*inspect-ir*
(special variable).
*inspect-partitioning*
(special variable).
*lazy-array-lock*
(special variable).
*valid-inspect-tags*
(special variable).
array-has-shape-p
(function).
array-shape
(function).
array-value
(function).
axis
(type).
axis
(slot).
backend-compute
(generic function).
backend-compute-asynchronously
(generic function).
backend-debug-flag
(generic reader).
(setf backend-debug-flag)
(generic writer).
backend-evaluator
(generic function).
broadcast-for-fusion
(function).
callcount
(function).
clear-shape-table
(function).
compatible-with-lazy-array-p
(function).
compute-list-of-arrays
(function).
copy-lazy-arrays
(function).
deflating-transformation
(function).
delayed-action
(slot).
delayed-action
(structure).
delayed-action-inputs
(generic function).
delayed-action-p
(function).
delayed-array
(structure).
delayed-array-p
(function).
delayed-array-storage
(reader).
(setf delayed-array-storage)
(writer).
delayed-failure
(structure).
delayed-failure-condition
(reader).
delayed-failure-p
(function).
delayed-fuse
(structure).
delayed-fuse-inputs
(reader).
(setf delayed-fuse-inputs)
(writer).
delayed-fuse-p
(function).
delayed-map
(structure).
delayed-map-fnrecord
(reader).
(setf delayed-map-fnrecord)
(writer).
delayed-map-inputs
(reader).
(setf delayed-map-inputs)
(writer).
delayed-map-number-of-values
(function).
delayed-map-p
(function).
delayed-multiple-value-map
(structure).
delayed-multiple-value-map-fnrecord
(function).
(setf delayed-multiple-value-map-fnrecord)
(function).
delayed-multiple-value-map-inputs
(function).
(setf delayed-multiple-value-map-inputs)
(function).
delayed-multiple-value-map-p
(function).
delayed-multiple-value-map-refbits
(reader).
(setf delayed-multiple-value-map-refbits)
(writer).
delayed-multiple-value-map-values-ntype
(reader).
delayed-nop
(structure).
delayed-nop-p
(function).
delayed-nth-value
(structure).
delayed-nth-value-input
(reader).
(setf delayed-nth-value-input)
(writer).
delayed-nth-value-number
(reader).
(setf delayed-nth-value-number)
(writer).
delayed-nth-value-p
(function).
delayed-range
(structure).
delayed-range-p
(function).
delayed-reshape
(structure).
delayed-reshape-input
(reader).
(setf delayed-reshape-input)
(writer).
delayed-reshape-p
(function).
delayed-reshape-transformation
(reader).
(setf delayed-reshape-transformation)
(writer).
delayed-unknown
(structure).
delayed-unknown-p
(function).
delayed-wait
(structure).
delayed-wait-delayed-action
(reader).
(setf delayed-wait-delayed-action)
(writer).
delayed-wait-p
(function).
delayed-wait-request
(reader).
empty-lazy-array
(function).
empty-lazy-arrays
(function).
empty-range
(function).
empty-range
(structure).
empty-range-p
(function).
enlarge-shape
(function).
enlarge-transformation
(generic function).
fuse-shapes
(function).
identity-transformation
(function).
identity-transformation
(structure).
identity-transformation-p
(function).
inflate-shape
(function).
inflate-transformation
(generic function).
lazy-array-delayed-action
(reader).
(setf lazy-array-delayed-action)
(writer).
lazy-array-depth
(reader).
lazy-array-from-array
(function).
lazy-array-from-range
(function).
lazy-array-from-scalar
(function).
lazy-array-inputs
(function).
lazy-array-ntype
(reader).
lazy-array-refcount
(reader).
(setf lazy-array-refcount)
(writer).
lazy-map
(function).
lazy-ref
(function).
lazy-unknown-p
(function).
lazy-unknowns
(function).
make-delayed-array
(function).
make-rank-zero-array
(function).
make-shape-table
(function).
map-transformation-inputs
(generic function).
map-transformation-outputs
(generic function).
non-empty-range
(structure).
non-empty-range-p
(function).
normalizing-transformation
(function).
rank
(slot).
rank
(slot).
rank
(type).
remove-shape-table-entry
(function).
request
(class).
request-completedp
(generic function).
request-wait
(generic function).
requestp
(generic function).
shape-prefix
(function).
shape-subseq
(function).
shape-suffix
(function).
shape-table
(structure).
shape-table-p
(function).
shape-table-value
(function).
(setf shape-table-value)
(function).
shrink-shape
(function).
subdivide-arrays
(function).
substitute-delayed-action
(generic function).
substitute-lazy-array
(function).
substitute-lazy-arrays
(function).
transform-axis
(generic function).
transformation-similar
(generic function).
value-array
(function).
with-inspection
(macro).
%debug-flag
(slot).
%make-delayed-array
(function).
%make-delayed-fuse
(function).
%make-delayed-map
(function).
%make-delayed-multiple-value-map
(function).
%make-delayed-nth-value
(function).
%make-delayed-reshape
(function).
%make-empty-range
(function).
%make-hairy-transformation
(function).
%make-identity-transformation
(function).
%make-shape
(function).
*backend-compute-recursion*
(special variable).
*substitutions*
(special variable).
*table*
(special variable).
add-transformation-constraints
(function).
backend-stats
(class).
canonicalize-inputs
(function).
canonicalize-outputs
(function).
completed-request
(class).
compose-two-transformations
(generic function).
compute-delayed-array
(function).
copy-delayed-array
(function).
copy-delayed-failure
(function).
copy-delayed-fuse
(function).
copy-delayed-map
(function).
copy-delayed-multiple-value-map
(function).
copy-delayed-nop
(function).
copy-delayed-nth-value
(function).
copy-delayed-range
(function).
copy-delayed-reshape
(function).
copy-delayed-unknown
(function).
copy-delayed-wait
(function).
defined-by-graphviz
(function).
delayed-action-value
(generic function).
delayed-multiple-value-map-refbits-lock
(reader).
(setf delayed-multiple-value-map-refbits-lock)
(writer).
deleted-backend
(class).
depth
(slot).
empty-range-size
(function).
fragment-difference-list
(function).
fragment-intersections
(function).
from-storage-transformation
(function).
hairy-transformation
(structure).
hairy-transformation-input-mask
(function).
hairy-transformation-input-rank
(function).
hairy-transformation-inverse
(function).
(setf hairy-transformation-inverse)
(function).
hairy-transformation-offsets
(function).
hairy-transformation-output-mask
(function).
hairy-transformation-output-rank
(function).
hairy-transformation-p
(function).
hairy-transformation-scalings
(function).
identity-transformation-input-mask
(function).
identity-transformation-input-rank
(function).
identity-transformation-inverse
(function).
(setf identity-transformation-inverse)
(function).
identity-transformation-offsets
(function).
identity-transformation-output-mask
(function).
identity-transformation-output-rank
(function).
identity-transformation-scalings
(function).
input-mask
(slot).
input-rank
(slot).
inverse
(slot).
lazy-array-value
(function).
lazy-reshape-aux
(function).
lazy-reshape-using-function
(function).
lazy-reshape-using-shape
(function).
lazy-reshape-using-transformation
(function).
make-delayed-failure
(function).
make-delayed-fuse
(function).
make-delayed-map
(function).
make-delayed-multiple-value-map
(function).
make-delayed-nop
(function).
make-delayed-nth-value
(function).
make-delayed-range
(function).
make-delayed-reshape
(function).
make-delayed-unknown
(function).
make-delayed-wait
(function).
make-identity-transformation
(function).
make-lazy-array
(function).
make-non-empty-range
(function).
make-range
(function).
make-reshape-transformation
(function).
maxdepth
(function).
ntype
(slot).
offsets
(slot).
output-mask
(slot).
output-rank
(slot).
range-difference-list--contiguous
(function).
range-difference-list--single
(function).
range-intersection-start-end-step
(function).
ranges
(slot).
refcount
(slot).
reference-backend
(class).
scalings
(slot).
shape-table-ht
(reader).
simplify-array
(function).
size
(slot).
size
(slot).
size-one-range-removing-transformation
(function).
subdivide-fragments
(function).
subtract-fragment-lists
(function).
transformation-inverse
(reader).
(setf transformation-inverse)
(writer).
trivial-lazy-array-p
(generic function).
trivial-lazy-array-value
(generic function).
trivial-object-p
(function).
trivial-object-value
(function).
petalisp.ir
common-lisp
.
petalisp.core
.
*stencil-max-radius*
(special variable).
buffer
(structure).
buffer-bits
(function).
buffer-depth
(reader).
(setf buffer-depth)
(writer).
buffer-ntype
(reader).
(setf buffer-ntype)
(writer).
buffer-number
(reader).
(setf buffer-number)
(writer).
buffer-number-of-inputs
(function).
buffer-number-of-loads
(function).
buffer-number-of-outputs
(function).
buffer-number-of-stores
(function).
buffer-program
(function).
buffer-reuse-potential
(function).
buffer-shape
(reader).
(setf buffer-shape)
(writer).
buffer-shard
(structure).
buffer-shard-bits
(function).
buffer-shard-buffer
(reader).
buffer-shard-domain
(reader).
buffer-shard-layout
(reader).
(setf buffer-shard-layout)
(writer).
buffer-shard-maxdepth
(function).
buffer-shard-p
(function).
buffer-shard-parent
(reader).
buffer-shard-path
(function).
buffer-shard-primogenitor
(function).
buffer-shard-readers
(reader).
(setf buffer-shard-readers)
(writer).
buffer-shard-shape
(reader).
buffer-shard-split
(reader).
(setf buffer-shard-split)
(writer).
buffer-shard-writers
(reader).
(setf buffer-shard-writers)
(writer).
buffer-size
(function).
buffer-storage
(reader).
(setf buffer-storage)
(writer).
buffer-task
(reader).
(setf buffer-task)
(writer).
bufferp
(function).
call-instruction
(structure).
call-instruction-fnrecord
(reader).
(setf call-instruction-fnrecord)
(writer).
call-instruction-function
(function).
call-instruction-inputs
(function).
(setf call-instruction-inputs)
(function).
call-instruction-number-of-values
(reader).
(setf call-instruction-number-of-values)
(writer).
call-instruction-p
(function).
check-ir
(function).
compute-buffer-shard-vicinity
(function).
compute-program-buffer-coloring
(function).
compute-stencil-center
(function).
core
(class).
core-memory
(generic reader).
core-name
(generic reader).
device
(class).
device-cores
(generic reader).
device-memory
(generic reader).
device-name
(generic reader).
do-buffer-inputs
(macro).
do-buffer-load-instructions
(macro).
do-buffer-outputs
(macro).
do-buffer-store-instructions
(macro).
do-instruction-inputs
(macro).
do-kernel-inputs
(macro).
do-kernel-instructions
(macro).
do-kernel-load-instructions
(macro).
do-kernel-outputs
(macro).
do-kernel-store-instructions
(macro).
do-program-buffer-groups
(macro).
do-program-buffers
(macro).
do-program-kernels
(macro).
do-program-tasks
(macro).
do-stencil-instructions
(macro).
do-task-defined-buffers
(macro).
do-task-kernels
(macro).
do-task-predecessors
(macro).
do-task-successors
(macro).
ensure-array-buffer-compatibility
(function).
ensure-array-shape-ntype-compatibility
(function).
host-device
(function).
instruction
(structure).
instruction-inputs
(reader).
(setf instruction-inputs)
(writer).
instruction-number
(slot).
instruction-number
(reader).
(setf instruction-number)
(writer).
instruction-number-of-values
(generic function).
instruction-transformation
(reader).
(setf instruction-transformation)
(writer).
instructionp
(function).
interior-buffer-p
(function).
ir-from-lazy-arrays
(function).
iref-instruction
(structure).
iref-instruction-p
(function).
iref-instruction-transformation
(function).
(setf iref-instruction-transformation)
(function).
iterating-instruction
(structure).
iterating-instruction-p
(function).
kernel
(slot).
kernel
(structure).
kernel
(slot).
kernel-cost
(function).
kernel-instruction-vector
(reader).
(setf kernel-instruction-vector)
(writer).
kernel-iteration-space
(reader).
(setf kernel-iteration-space)
(writer).
kernel-load-stencils
(function).
kernel-number
(reader).
(setf kernel-number)
(writer).
kernel-number-of-loads
(function).
kernel-number-of-outputs
(function).
kernel-number-of-stores
(function).
kernel-program
(function).
kernel-reuse-potential
(function).
kernel-shard
(structure).
kernel-shard-iteration-space
(reader).
kernel-shard-kernel
(reader).
kernel-shard-more-important-p
(function).
kernel-shard-p
(function).
kernel-shard-sources
(reader).
(setf kernel-shard-sources)
(writer).
kernel-shard-targets
(reader).
(setf kernel-shard-targets)
(writer).
kernel-sources
(reader).
(setf kernel-sources)
(writer).
kernel-store-stencils
(function).
kernel-targets
(reader).
(setf kernel-targets)
(writer).
kernel-task
(reader).
(setf kernel-task)
(writer).
kernelp
(function).
layout
(structure).
layout-allocation
(reader).
(setf layout-allocation)
(writer).
layout-ghost-layer-alist
(reader).
(setf layout-ghost-layer-alist)
(writer).
layout-ntype
(reader).
layout-offset
(reader).
layout-rank
(function).
layout-size
(reader).
layout-strides
(reader).
layoutp
(function).
leaf-buffer-p
(function).
load-instruction
(structure).
load-instruction-buffer
(function).
(setf load-instruction-buffer)
(function).
load-instruction-p
(function).
load-instruction-transformation
(function).
(setf load-instruction-transformation)
(function).
load-or-store-instruction
(structure).
load-or-store-instruction-p
(function).
make-array-from-shape-and-ntype
(function).
make-buffer
(function).
make-buffer-like-array
(function).
make-kernel
(function).
make-program
(function).
make-stencil
(function).
make-task
(function).
map-buffer-inputs
(function).
map-buffer-load-instructions
(function).
map-buffer-outputs
(function).
map-buffer-store-instructions
(function).
map-buffers
(function).
map-buffers-and-kernels
(function).
map-instruction-inputs
(function).
map-kernel-inputs
(function).
map-kernel-instructions
(function).
map-kernel-load-instructions
(function).
map-kernel-outputs
(function).
map-kernel-stencils
(function).
map-kernel-store-instructions
(function).
map-kernels
(function).
map-program-buffer-groups
(function).
map-program-buffers
(function).
map-program-kernels
(function).
map-program-tasks
(function).
map-stencil-instructions
(function).
map-task-defined-buffers
(function).
map-task-kernels
(function).
map-task-predecessors
(function).
map-task-successors
(function).
memory
(class).
memory-bandwidth
(generic reader).
memory-children
(generic reader).
memory-cores
(generic reader).
memory-granularity
(generic reader).
memory-latency
(generic reader).
memory-name
(generic reader).
memory-parent
(generic reader).
memory-parent-bandwidth
(generic reader).
memory-size
(generic reader).
partition-program
(function).
program
(structure).
program-buffer
(function).
program-final-task
(reader).
(setf program-final-task)
(writer).
program-from-lazy-arrays
(function).
program-initial-task
(reader).
(setf program-initial-task)
(writer).
program-kernel
(function).
program-leaf-alist
(reader).
(setf program-leaf-alist)
(writer).
program-number-of-buffers
(reader).
(setf program-number-of-buffers)
(writer).
program-number-of-kernels
(reader).
(setf program-number-of-kernels)
(writer).
program-number-of-tasks
(function).
program-root-buffers
(reader).
(setf program-root-buffers)
(writer).
program-task-vector
(reader).
(setf program-task-vector)
(writer).
programp
(function).
reuse-optimizing-transformation
(function).
root-buffer-p
(function).
split
(structure).
split-axis
(reader).
split-left-child
(reader).
split-parent
(function).
split-position
(reader).
split-right-child
(reader).
splitp
(function).
stencil
(structure).
stencil-buffer
(function).
stencil-center
(reader).
(setf stencil-center)
(writer).
stencil-from-instruction
(function).
stencil-input-rank
(function).
stencil-instructions
(reader).
(setf stencil-instructions)
(writer).
stencil-output-mask
(function).
stencil-output-rank
(function).
stencil-scalings
(function).
stencilp
(function).
store-instruction
(structure).
store-instruction-buffer
(function).
(setf store-instruction-buffer)
(function).
store-instruction-input
(function).
store-instruction-p
(function).
store-instruction-transformation
(function).
(setf store-instruction-transformation)
(function).
task
(structure).
task-number
(reader).
(setf task-number)
(writer).
task-program
(reader).
(setf task-program)
(writer).
taskp
(function).
vicinity
(structure).
vicinity-left-neighbors
(function).
vicinity-right-neighbors
(function).
vicinityp
(function).
%make-dendrite
(function).
%make-kernel-shard
(function).
%make-load-instruction
(function).
%make-stencil
(function).
%make-store-instruction
(function).
*buffer-ghostspec-vector*
(special variable).
*buffer-shard-queue*
(special variable).
*buffer-shard-split-max-imbalance*
(special variable).
*buffer-shard-split-max-redundancy*
(special variable).
*buffer-shard-split-min-priority*
(special variable).
*buffer-shard-split-priority*
(special variable).
*check-shards-buffer-shards*
(special variable).
*check-shards-kernel-shards*
(special variable).
*check-shards-table*
(special variable).
*check-shards-worklist*
(special variable).
*instruction-table*
(special variable).
*instruction-tables*
(special variable).
*ir-checker-table*
(special variable).
*ir-checker-worklist*
(special variable).
*ir-converter*
(special variable).
*primogenitor-buffer-shard-vector*
(special variable).
*prune*
(special variable).
*split-queue*
(special variable).
*suffix-factors*
(special variable).
add-child-kernel-shard
(function).
assign-layout
(function).
assign-layout-ghost-layer-alist
(function).
attempt-split
(function).
buffer-dendrites
(macro).
buffer-ghostspec
(function).
buffer-readers
(reader).
(setf buffer-readers)
(writer).
buffer-shard-add-reader
(function).
buffer-shard-add-writer
(function).
buffer-shard-chains
(function).
buffer-shard-guardian
(function).
buffer-shard-infants
(function).
buffer-shard-more-important-p
(function).
buffer-shard-queue-cleanup
(function).
buffer-shard-queue-emptyp
(function).
buffer-shard-queue-maybe-push
(function).
buffer-shard-queue-pop
(function).
buffer-shard-split-priority
(function).
buffer-shard-split-priority-cache
(reader).
(setf buffer-shard-split-priority-cache)
(writer).
buffer-writers
(reader).
(setf buffer-writers)
(writer).
call-instruction-number
(function).
(setf call-instruction-number)
(function).
check-ir-node
(generic function).
check-ir-node-eventually
(function).
check-program
(function).
check-reverse-link
(function).
check-shard
(generic function).
check-shard-eventually
(function).
check-shards
(function).
clone-reference
(generic function).
collect-prune-buffer-dendrites-alist
(function).
compute-buffer-ghostspec
(function).
compute-buffer-shard-shape
(function).
compute-program-primogenitor-buffer-shard-vector
(function).
convert-nucleus
(generic function).
copy-buffer
(function).
copy-buffer-shard
(function).
copy-dendrite
(function).
copy-ghostspec
(function).
copy-ir-converter
(function).
copy-kernel
(function).
copy-kernel-shard
(function).
copy-layout
(function).
copy-nucleus
(function).
copy-program
(function).
copy-prune
(function).
copy-split
(function).
copy-stem
(function).
copy-task
(function).
copy-vicinity
(function).
count-mapped-elements
(function).
delete-kernel
(function).
dendrite
(structure).
dendrite-cons
(reader).
(setf dendrite-cons)
(writer).
dendrite-depth
(reader).
(setf dendrite-depth)
(writer).
dendrite-kernel
(function).
dendrite-nucleus
(function).
dendrite-p
(function).
dendrite-shape
(reader).
(setf dendrite-shape)
(writer).
dendrite-stem
(reader).
(setf dendrite-stem)
(writer).
dendrite-transformation
(reader).
(setf dendrite-transformation)
(writer).
dendrite-validp
(function).
dendrite-value-n
(function).
destructure-transformoid
(function).
differs-exactly-at
(function).
do-kernel-stencils
(macro).
duplicates
(function).
ensure-buffer-task
(function).
ensure-instruction-clone
(macro).
ensure-instruction-table
(function).
ensure-nucleus
(function).
ensure-tasks
(function).
event-horizon
(function).
fallback-host-device
(function).
finalize-buffer
(function).
finalize-ir
(function).
finalize-kernel
(function).
find-optimal-buffer-shard-split-axis
(function).
find-optimal-buffer-shard-split-position
(function).
find-prune
(function).
ghostspec
(structure).
ghostspec-buffer
(reader).
ghostspec-left-padding
(function).
ghostspec-left-padding-vec
(reader).
ghostspec-pattern
(reader).
ghostspec-right-padding
(function).
ghostspec-right-padding-vec
(reader).
ghostspecp
(function).
grow-dendrite
(function).
grow-dendrite-aux
(generic function).
insert-copy-kernel
(function).
instruction-buffer
(reader).
(setf instruction-buffer)
(writer).
ir-converter
(structure).
ir-converter-array-table
(reader).
(setf ir-converter-array-table)
(writer).
ir-converter-buffer-dendrites-table
(reader).
(setf ir-converter-buffer-dendrites-table)
(writer).
ir-converter-cons-updates
(reader).
(setf ir-converter-cons-updates)
(writer).
ir-converter-empty-p
(function).
ir-converter-kernel-size-threshold
(reader).
ir-converter-leaf-alist
(reader).
(setf ir-converter-leaf-alist)
(writer).
ir-converter-next-nucleus
(function).
ir-converter-nucleus-table
(reader).
(setf ir-converter-nucleus-table)
(writer).
ir-converter-p
(function).
ir-converter-potentially-superfluous-buffers
(reader).
(setf ir-converter-potentially-superfluous-buffers)
(writer).
ir-converter-pqueue
(reader).
(setf ir-converter-pqueue)
(writer).
ir-converter-scalar-table
(reader).
(setf ir-converter-scalar-table)
(writer).
ir-converter-unknown-table
(reader).
(setf ir-converter-unknown-table)
(writer).
iref-instruction-inputs
(function).
(setf iref-instruction-inputs)
(function).
iref-instruction-number
(function).
(setf iref-instruction-number)
(function).
kernel-data
(reader).
(setf kernel-data)
(writer).
kernel-highest-instruction-number
(function).
kernel-number-of-inputs
(function).
linux-host-device
(function).
load-instruction-inputs
(function).
(setf load-instruction-inputs)
(function).
load-instruction-number
(function).
(setf load-instruction-number)
(function).
make-buffer-shard
(function).
make-buffer-shard-queue
(function).
make-call-instruction
(function).
make-dendrite
(function).
make-ghostspec
(function).
make-ir-converter
(function).
make-iref-instruction
(function).
make-kernel-shard
(function).
make-layout
(function).
make-load-instruction
(function).
make-nucleus
(function).
make-prune
(function).
make-split
(function).
make-split-queue
(function).
make-stem
(function).
make-store-instruction
(function).
make-substitute-kernel
(function).
make-vicinity
(function).
maxf
(macro).
maybe-add-to-stencil
(function).
maybe-prune
(function).
memory-children-slot
(generic reader).
(setf memory-children-slot)
(generic writer).
memory-cores-slot
(generic reader).
(setf memory-cores-slot)
(generic writer).
mergeable-dendrites-p
(function).
nucleus
(structure).
nucleus-dendrites
(reader).
(setf nucleus-dendrites)
(writer).
nucleus-lazy-array
(reader).
(setf nucleus-lazy-array)
(writer).
nucleus-ntype
(function).
nucleus-p
(function).
nucleus-shape
(function).
parse-cache-type
(function).
parse-integer-set
(function).
parse-size
(function).
partition-dendrites
(function).
potentially-superfluous-buffer-p
(function).
primogenitor-buffer-shard
(function).
propagate-split
(function).
propagate-split/bmap
(function).
propagate-split/kmap
(function).
prune
(structure).
prune-bits
(reader).
prune-buffers
(reader).
prune-p
(function).
prune-superfluous-buffers
(function).
recompute-kernel-instruction-vector
(function).
recompute-program-task-vector
(function).
reference-to-delayed-unknown
(function).
refine-buffer-shard
(function).
refine-kernel-shard
(function).
refine-source
(function).
refine-target
(function).
relative-position
(function).
reverse-transform-axis-and-position
(function).
select-masked-elements
(function).
shape-strides
(function).
simplify-input
(function).
sources
(slot).
split-more-important-p
(function).
split-queue-emptyp
(function).
split-queue-pop
(function).
split-queue-push
(function).
stem
(structure).
stem-buffers
(reader).
(setf stem-buffers)
(writer).
stem-kernel
(reader).
(setf stem-kernel)
(writer).
stem-nucleus
(reader).
(setf stem-nucleus)
(writer).
stem-p
(function).
stem-validp
(reader).
(setf stem-validp)
(writer).
store-instruction-inputs
(function).
(setf store-instruction-inputs)
(function).
store-instruction-number
(function).
(setf store-instruction-number)
(function).
suffix-factor
(function).
targets
(slot).
task-defined-buffers
(reader).
(setf task-defined-buffers)
(writer).
task-kernels
(reader).
(setf task-kernels)
(writer).
task-predecessors
(reader).
(setf task-predecessors)
(writer).
task-successors
(reader).
(setf task-successors)
(writer).
transform-axis-and-position
(function).
transform-buffer
(function).
transform-instruction-input
(generic function).
transform-instruction-output
(generic function).
transform-kernel
(function).
unlink-kernel-shard
(function).
vicinity-left-neighbors-vec
(reader).
vicinity-right-neighbors-vec
(reader).
petalisp.karmarkar-karp
common-lisp
.
petalisp.utilities
.
*k*
(special variable).
*weight*
(special variable).
combine-subsets
(function).
combine-tuples
(function).
copy-subset
(function).
copy-tuple
(function).
make-subset
(function).
make-tuple
(function).
subset
(structure).
subset-elements
(reader).
(setf subset-elements)
(writer).
subset-p
(function).
subset-weight
(reader).
(setf subset-weight)
(writer).
tuple
(structure).
tuple-from-object
(function).
tuple-p
(function).
tuple-subset
(function).
tuple-subsets
(reader).
(setf tuple-subsets)
(writer).
tuple-weight
(reader).
(setf tuple-weight)
(writer).
tuple>
(function).
petalisp.graphviz
common-lisp
.
petalisp-1.0
.
*viewer*
(special variable).
*kernel-cluster-table*
(special variable).
*petalisp-view-directory*
(special variable).
*task-cluster-table*
(special variable).
any-edge
(class).
any-graph
(class).
buffer-shard-label
(function).
buffer-shard-port
(function).
class-diagram
(class).
data-flow-edge
(class).
data-flow-graph
(class).
direct-subclass-edge
(class).
file-open-p
(function).
graphviz-attributes
(method combination).
graphviz-default-graph
(generic function).
graphviz-edge-attributes
(generic function).
graphviz-graph-attributes
(generic function).
graphviz-incoming-edge-origins
(generic function).
graphviz-known-nodes
(generic function).
graphviz-node-attributes
(generic function).
graphviz-node-caption
(generic function).
graphviz-node-properties
(generic function).
graphviz-outgoing-edge-targets
(generic function).
graphviz-potential-edges
(generic function).
hide-buffers
(function).
input-edge
(class).
ir-edge
(class).
ir-graph
(class).
kernel-cluster
(function).
kernel-shard-label
(function).
layout-label
(function).
load-edge
(class).
make-html-label
(function).
make-html-table-row
(function).
output-edge
(class).
partitioning-edge
(class).
partitioning-graph
(class).
petalisp-edge
(class).
petalisp-graph
(class).
plist-union
(function).
purge-unused-files-in-directory
(function).
reader-edge
(class).
scheduling-edge
(class).
scheduling-graph
(class).
simplify-input
(function).
split-label
(function).
store-edge
(class).
stringify
(function).
task-cluster
(function).
writer-edge
(class).
petalisp.native-backend
common-lisp
.
petalisp.codegen
.
petalisp.core
.
petalisp.ir
.
%make-cenv
(function).
%make-denv
(function).
%make-worker
(function).
%make-worker-pool
(function).
%requestp
(function).
*layout-action-table*
(special variable).
*pin-current-thread-code*
(special variable).
*pin-current-thread-library*
(special variable).
*simulator-step*
(special variable).
*worker*
(special variable).
+argument-allocation-category+
(constant).
+constant-allocation-category+
(constant).
+n-fixnum-tag-bits+
(constant).
+result-allocation-category+
(constant).
+worker-allocation-category-offset+
(constant).
action
(structure).
action-copy-invocations
(reader).
(setf action-copy-invocations)
(writer).
action-work-invocations
(reader).
(setf action-work-invocations)
(writer).
actionp
(function).
allocate-memory
(function).
allocation
(structure).
allocation-category
(reader).
(setf allocation-category)
(writer).
allocation-color
(reader).
allocation-size-in-bytes
(reader).
allocation-unboxed
(reader).
(setf allocation-unboxed)
(writer).
allocationp
(function).
argument-variables
(function).
array-size-in-bytes
(function).
array-storage-pointer
(function).
array-storage-vector
(function).
backend
(class).
backend-worker-pool
(generic reader).
barrier
(function).
base-char-memref
(function).
(setf base-char-memref)
(function).
bind-argument
(function).
bind-result
(function).
buffer-shard-bind
(function).
buffer-size-in-bytes
(function).
bytes-from-bits
(function).
c128-memref
(function).
(setf c128-memref)
(function).
c64-memref
(function).
(setf c64-memref)
(function).
cenv
(structure).
cenv-allocations
(reader).
cenv-argument-ntypes
(reader).
cenv-argument-shapes
(reader).
cenv-backend
(reader).
cenv-constant-arrays
(reader).
cenv-constant-storage-vectors
(reader).
cenv-result-ntypes
(reader).
cenv-result-shapes
(reader).
cenv-schedule
(reader).
cenvp
(function).
character-memref
(function).
(setf character-memref)
(function).
check-cenv
(function).
compute-allocations
(function).
compute-schedule
(function).
copy-action
(function).
copy-allocation
(function).
copy-cenv
(function).
copy-denv
(function).
copy-invocation
(function).
copy-simulated-memory
(function).
denv
(structure).
denv-cenv
(reader).
denv-pointers
(reader).
denv-request
(reader).
(setf denv-request)
(writer).
denv-result-arrays
(reader).
denv-serious-condition-lock
(reader).
(setf denv-serious-condition-lock)
(writer).
denv-serious-conditions
(reader).
(setf denv-serious-conditions)
(writer).
denvp
(function).
ensure-actions
(function).
ensure-kernel-shard-invocation
(function).
ensure-result
(function).
evaluate
(function).
evaluation-failure
(condition).
evaluator-template
(function).
f32-memref
(function).
(setf f32-memref)
(function).
f64-memref
(function).
(setf f64-memref)
(function).
fixnum-memref
(function).
(setf fixnum-memref)
(function).
free-memory
(function).
get-result
(function).
invocation
(structure).
invocation-iteration-space
(reader).
invocation-kernel
(reader).
invocation-kfn
(reader).
invocation-sources
(reader).
(setf invocation-sources)
(writer).
invocation-targets
(reader).
(setf invocation-targets)
(writer).
invocationp
(function).
layout-bind
(function).
layout-size-in-bytes
(function).
lazy-array-size-in-bytes
(function).
make-action
(function).
make-allocation
(function).
make-cenv
(function).
make-copy-invocation
(function).
make-denv
(function).
make-invocation
(function).
make-request
(function).
make-simulated-memory
(function).
make-work-invocation
(function).
make-worker-pool
(function).
merge-actions
(function).
message
(function).
native-backend-unpack
(function).
ntype-bits-per-element
(function).
ntype-unboxed-p
(function).
pin-current-thread
(function).
request
(structure).
request-cvar
(reader).
request-done
(reader).
(setf request-done)
(writer).
request-lock
(reader).
result-variables
(function).
s16-memref
(function).
(setf s16-memref)
(function).
s32-memref
(function).
(setf s32-memref)
(function).
s64-memref
(function).
(setf s64-memref)
(function).
s8-memref
(function).
(setf s8-memref)
(function).
serious-conditions
(generic reader).
simulate-cenv-evaluation
(function).
simulate-references
(function).
simulated-memory
(structure).
simulated-memory-allocation
(reader).
simulated-memory-generation
(reader).
(setf simulated-memory-generation)
(writer).
simulated-memory-mode
(reader).
(setf simulated-memory-mode)
(writer).
simulated-memory-p
(function).
simulated-memory-read-index
(function).
simulated-memory-read-shape
(function).
simulated-memory-table
(reader).
(setf simulated-memory-table)
(writer).
simulated-memory-write-index
(function).
simulated-memory-write-shape
(function).
start-worker
(function).
u1-memref
(function).
(setf u1-memref)
(function).
u16-memref
(function).
(setf u16-memref)
(function).
u2-memref
(function).
(setf u2-memref)
(function).
u32-memref
(function).
(setf u32-memref)
(function).
u4-memref
(function).
(setf u4-memref)
(function).
u64-memref
(function).
(setf u64-memref)
(function).
u8-memref
(function).
(setf u8-memref)
(function).
worker
(structure).
worker-barrier-sense
(reader).
(setf worker-barrier-sense)
(writer).
worker-enqueue
(function).
worker-evaluate
(function).
worker-id
(reader).
worker-id
(type).
worker-loop
(function).
worker-pool
(structure).
worker-pool-active
(function).
worker-pool-barrier-countdown
(reader).
(setf worker-pool-barrier-countdown)
(writer).
worker-pool-barrier-sense
(reader).
(setf worker-pool-barrier-sense)
(writer).
worker-pool-join
(function).
worker-pool-liveness
(reader).
(setf worker-pool-liveness)
(writer).
worker-pool-p
(function).
worker-pool-size
(function).
worker-pool-worker
(function).
worker-pool-workers
(reader).
worker-queue
(reader).
(setf worker-queue)
(writer).
worker-serious-conditions
(reader).
(setf worker-serious-conditions)
(writer).
worker-synchronize-and-invoke
(function).
worker-thread
(reader).
(setf worker-thread)
(writer).
worker-worker-pool
(reader).
workerp
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
The symbols ~, ~* are self-evaluating. Their only purpose is to separate range designators in the functions named ~, ~*.
The symbols ~, ~* are self-evaluating. Their only purpose is to separate range designators in the functions named ~, ~*.
Define a test function and add it to *TESTS*.
Assert that TEST-FORM evaluates to true.
Assert that ‘body’ signals a condition of type ‘condition’.
Returns a transformation from the given inputs to the given outputs.
Inputs and outputs are separated by the symbol PETALISP:TO. Each input can be
either a symbol or an integer. If the input is a symbol, it is the name under
which the value of that input can be referenced in one of the outputs. If the
input is a integer, it denotes an input constraint, meaning that it is an error
to later apply that transformation to an index that differs from that
constraint in that position.
Each output is an arbitrary form that may reference up to one of the input variables. This form is then evaluated repeatedly in a context where the referenced input variable is bound to a different integer, to determine the coefficients for the linear mapping from the referenced input to the output.
Signals an error if any output form references more than one input, returns
anything other than an integer, or describes a mapping that is not linear.
Examples:
(transform i to (+ i 1))
=> (transform a to (1+ a))
(transform i to (+ (+ i 1) 5))
=> (transform a to (+ a 6))
(transform 1 2 to 3)
=> (transform 1 2 to 3)
(transform i j to j i)
=> (transform a b to b a)
Within the lexical scope of BODY, bind the specified collectors. Each
entry in COLLECTORS must be a list of two valid function names - RESULT and
GATHER. Each such pair of function names is bound to local functions, with
the following behavior:
The function named GATHER takes a single argument, stores this argument in
some unspecified way, and returns this argument.
The function named RESULT takes either zero or one object. It returns the
list of all objects that have been stored by calls to the function named
GATHER. If supplied, the optional argument is used as the tail of the list
being returned. Calling the function named RESULT more than once results
in undefined behavior.
Examples:
(with-collectors ((odds collect-odd)
(evens collect-even))
(loop for n below 8 do
(if (oddp n)
(collect-odd n)
(collect-even n)))
(values (odds) (evens)))
=> (1 3 5 7)
=> (0 2 4 6)
(with-collectors ((numbers collect-number))
(collect-number 2)
(collect-number 3)
(numbers ’(4 5 6))) ; Here, we explicitly supply a tail.
=> (2 3 4 5 6)
Execute BODY safely and with highest debug settings.
Visualize intermediate steps of the evaluation. Valid TAGS are:
:GRAPH - Show the data flow graph.
:IR - Show the intermediate representation.
:PARTITIONING - Show the partitioned intermediate representation.
:DEPENDENCIES - Show the dependency graph.
:SCHEDULING - Print scheduling statistics.
Execute the body in an environment where each of the supplied symbols is
shadowed by the lazy array equivalent of the previous value of that symbol. An
alternative notation can be used to avoid shadowing the original array: If any
array name is not a symbol but a list of a symbol and a form, the symbol is
bound to the lazy array equivalent of the result of that form. It is good
practice for each function that expects some of its arguments to be lazy
arrays to start with an invocation of this macro.
Example:
(let ((a 5) (b #(1 2 3)))
(with-lazy-arrays (a (c b))
(values a b c)))
=> #<lazy-array (eql 5) (~*)>
=> #(1 2 3)
=> #<lazy-array t (~ 3)>
Invoke BODY in an environment where all elements of the supplied sequence of objects are pinned to their current memory location.
Optimize the heck out of BODY. Use with caution!
To preserve sanity, compiler efficiency hints are disabled by default. Use WITH-UNSAFE-OPTIMIZATIONS* to see these hints.
Optimize the heck out of BODY. Use with caution!
Suppress all compiler notes arising during the compilation of BODY.
Returns the shape of the supplied array.
Returns a list of lazy arrays that all have the same shape, where each lazy array is
a broadcasting reference to the corresponding element of the supplied list of
arrays or scalars. As a second value, returns the shape of all the resulting
lazy arrays. Signals an error if there is no suitable shape to which all the
supplied arrays can be broadcast. The resulting shape is constructed according
to the following rules:
1. The rank of the resulting shape is the maximum of the rank of all the
supplied arrays.
2. Each range of any of the supplied arrays must either have a size of one, in
which case it is broadcast to the corresponding range of the resulting
shape, or it must be equal to the corresponding range of the resulting
shape.
3. The missing axes of lazy arrays that have a lower rank than the resulting
shape are broadcast as if they had a range of size one.
4. In any axis in which all supplied arrays have a range of size one, the
resulting shape has the range of the leftmost supplied array.
Examples:
(broadcast (list #(1 2 3) 5))
=> (#<lazy-array t (~ 3)> #<lazy-array (eql 5) (~ 3)>)
=> (~ 3)
(broadcast (list #2A((1 2 3)) #2A((4) (5))))
=> (#<lazy-array t (~ 2 ~ 3)> #<lazy-array t (~ 2 ~ 3)>)
=> (~ 2 ~ 3)
(apply #’compute (broadcast (list #(1 2 3) 5)))
=> #(1 2 3)
=> #(5 5 5)
(apply #’compute (broadcast (list 1 #2A((2 3) (4 5)) #(6 7))))
=> #2A((1 1) (1 1))
=> #2A((2 3) (4 5))
=> #2A((6 6) (7 7))
Returns a list of lazy arrays, one for each supplied array, that are all broadcast to have the same rank, in a way that is compatible with array fusion. As a second value, returns the shape of the resulting fusion. Doesn’t check whether the fusion would be valid.
Returns the number of bits of layout required for allocating all elements managed by the supplied buffer shard.
Returns the length of the longest chain of splits rooted in this buffer shard.
Returns a list with one boolean for each ancestor of the supplied
buffer shard, that describes how to reach that buffer shard starting from its
primogenitor. An entry of T means the path descends into the left child, and
a value of NIL means the path descends into the right child.
Returns the topmost ancestor of the supplied buffer shard.
task
.
Returns a hash table mapping from function designators to the number of
invocations of that function in the data flow graph that defines the supplied
lazy arrays.
NOTE: When computing the same lazy arrays, the actual number of invoked functions may be different from these values. They can be higher in case a backend introduces redundant calculations, or lower in case some calculations are eliminated because they don’t influence the results.
For a supplied conflict graph, returns a vector whose elements are lists of objects with no conflicts.
Round the unsigned integer N up to the next larger power of two.
Returns whether all the supplied requests of some COMPUTE-ASYNCHRONOUSLY operations have been completed.
Returns a single transformation that is equivalent to consecutive
invocations of the supplied transformations in right-to-left order.
Examples:
(compose-transformations (transform i to (/ i 2)) (transform i to (+ i 2))
(transform i to (* i 4)))
=> (transform a to (1+ (* 2 a)))
(compose-transformations (transform i j to (+ i 5) (+ j 7))
(transform i j to (* j 2) (* i 3)))
=> (transform a b to (+ (* 2 b) 5) (+ (* 3 a) 7))
Takes any number of arguments that must be lazy array designators and
returns the same number of possibly specialized regular arrays with the
corresponding computed contents. Whenever a shape of any of the supplied lazy
arrays has a step size other than one, or an offset other than zero, that array
is deflated before being computed, i.e., each axis is shifted to begin with
zero, and divided by the step size.
As a special case, whenever this function would return an array with rank zero,
it instead returns the sole element of that array. The reason for this
treatment of scalars is that Petalisp treats every object as an array, whereas
a Common Lisp array of rank zero and the object therein are distinct entities.
Of those two distinct representations, the non-array one is usually more useful
for further processing, so this is the one which is returned.
All the heavy lifting in Petalisp happens within COMPUTE. The exact details of
how it operates aren’t important for an application programmer, but it is
valuable to understand the rough steps that take place the scenes. The steps
for computing lazy arrays are as follows:
1. Convert each supplied argument to a lazy array.
2. Reshape each lazy array so that it has a step size of one and an offset of
zero.
3. Determine the dependency graph whose roots are the deflated lazy arrays,
whose interior nodes are calls to the core operators lazy map, lazy reshape,
and lazy fuse, and whose leaves are wrapped regular arrays or the index
components of some shape designator.
4. Optimize the dependency graph, discard all unused parts, and plan a schedule
that is fast and has reasonable memory requirements.
5. Execute the schedule on the available hardware. Make use of all processing
units, accelerators, and even distributed systems when possible. Gather the
results in the form of regular arrays.
6. Change the internal representation of all the originally supplied lazy
arrays so that future calculations involving them use the computed results
directly.
7. Return the results as multiple values, while replacing any array with rank
zero with the single element contained in that array.
The COMPUTE function is the workhorse of Petalisp. A lot of effort went into making it not only powerful, but also fast. The overhead of calling it instead of invoking an already compiled and optimized program is usually just a few microseconds, so this may be the only evaluation interface that you ever need.
Examples:
(compute #(1 2 3))
=> #(1 2 3)
(compute 5)
=> 5
(compute #0A42)
=> 42
(compute #(1 2 3) 5 #0A42)
=> #(1 2 3)
=> 5
=> 42
Hints that it would be worthwhile to compute the supplied arrays asynchronously. Returns a request object that can be passed to the functions WAIT and COMPLETEDP.
Returns a list of computed results - one for each element in the list
of supplied arrays.
The computed result of an array or lazy array with rank zero is the one
element contained in this array. The computed result of any other array or
lazy array is an array with the same rank and dimensions. The computed
result of any other object is that object itself.
Examples:
(petalisp.core:compute-list-of-arrays (list (lazy #’+ 2 #(3 4))))
=> (#(5 6))
(petalisp.core:compute-list-of-arrays
(list (lazy-reshape #2A((1 2) (3 4)) (transform i j to j i))))
=> (#2A((1 3) (2 4)))
(petalisp.core:compute-list-of-arrays (list 2 #0A3 #(4)))
=> (2 3 #(4))
Returns a partitioning of all non-leaf buffers in PROGRAM into a list of
lists of buffers. Each list of buffers has the same color, meaning that
they can share the same memory location without conflicts.
All root buffers conflict with each other, so each list of buffers contains at most one root buffer. By convention, if a root buffer is present in a list of buffers, it comes first.
Returns a vector of offsets that is the weighted average of all the offsets of all the supplied load or store instructions.
Removes and returns the element at the front of CQUEUE, or return NIL if the cqueue was empty. Return a second value that is a boolean indicating whether an object was taken from the cqueue or not.
Inserts OBJECT at the back of CQUEUE.
Returns a function that can be supplied as a modifier to LAZY-RESHAPE to
move each of the designated axes to have a start of zero and a step size of
one. The supplied argument must be either a non-negative integer that denotes
the number of axes to deflate, or a bit vector where an element of one
indicates that corresponding axis should be deflated.
Examples:
(lazy-reshape 5 (~ 3 33 3) (deflater 1))
=> #<lazy-array (eql 5) (~ 10)>
(lazy-reshape 5 (~ 1 8 ~ 1 8) (deflater #*01))
=> #<lazy-array (eql 5) (~ 1 8 ~ 7)>
Returns, for the supplied sequence of outputs and the supplied sequence of the corresponding gradients at each output, a function that can be applied to any lazy array that is a dependency of any of these outputs to obtain the gradient at that output. The gradient of a lazy array is another lazy array with the same shape that describes how much each value differs from its expected value.
For a given shape S and range R, this function returns a shape whose
first range is R, and whose remaining ranges are those of S.
Examples:
(petalisp.core:enlarge-shape (~*) (range 1 10))
=> (~ 1 10)
(petalisp.core:enlarge-shape (~ 1 3) (range 1 4))
=> (~ 1 4 ~ 1 3)
For a supplied list of unknowns of length N and list of lazy
arrays of length K, returns a function with K plus N arguments that returns, as
multiple values, the K array values obtained by computing the supplied arrays
after substituting the Ith unknown with the supplied argument in position K
plus I. The first K arguments of the resulting evaluator function specify
which storage to use for the results. A value of NIL indicates that the
corresponding result shall be a fresh array. A value that is an array ensures
that the result is written to that array. Signals an error if any of the K
plus N arguments of an evaluator function has a different shape or element type
than the corresponding result or unknown.
Given nonnegative integers u and v, returns the values u1 and u3 such that u*u1 + v*u2 = u3 = gcd(u,v).
Round the unsigned integer N down to the next smaller power of two.
Returns a shape that covers all the supplied shapes. Signals an error if the supplied shapes aren’t disjoint.
Add a new, weighted edge between the two supplied graph nodes.
Returns the graph node corresponding to the supplied object, and as a secondary return value, whether that node was already present in the graph.
Returns a list of vectors, where each vector describes one step of the
schedule. Each vector has length P, and elements that are either NIL or one of
the objects that have been scheduled. The schedule ensures that each node
appears later than all its predecessors, and that all entries of one vector can
be executed in parallel.
This function uses the P-DFS algorithm from Blelloch, Gibbons, and
Matias (https://doi.org/10.1145/301970.301974), with some augmentations to
improve data locality.
Lazily coerces each array in the supplied list of arrays to the common harmonized element type, and returns a list of the resulting lazy arrays.
Examples:
(apply #’compute (harmonize (list 5 6.0)))
=> 5.0
=> 6.0
(apply #’compute (harmonize (list #C(5 2) (lazy-stack (list 1.0 2.0 3.0)))))
=> #C(5.0 2.0)
=> #(#C(1.0 0.0) #C(2.0 0.0) #C(3.0 0.0))
Returns the specifier for a type to which all elements of the supplied list of
lazy array designators can be safely coerced. If the element types of all
supplied lazy arrays are number types, the resulting type is obtained by the
standard rules of numeric contagion (Common Lisp Hyperspec 12.1.4.1 and
12.1.4.4). Otherwise, the resulting type is one that encompasses the union of
the element types of all supplied lazy arrays.
Examples:
(harmonized-element-type (list 5 6.0))
=> single-float
(harmonized-element-type (list 5.0d0 #C(0 1)))
=> (complex double-float)
(harmonized-element-type (list ’foo "bar" :baz 42))
=> (not null)
Returns an identity transformation of the specified rank.
Returns whether the supplied object is an identity transformation.
Examples:
(petalisp.core:identity-transformation-p (transform i j to j i))
=> nil
(petalisp.core:identity-transformation-p (transform i j to i j)) => t
Returns a list of buffers that form the root of an IR data flow graph
that is equivalent to the data flow graph specified by the supplied
LAZY-ARRAYS.
An IR graph is consists of alternating buffers and kernels. Each kernel reads and writes from zero or more buffers and writes to zero and more buffers. The behavior or each kernel is described by a directed acyclic graph of instructions.
Partition the set of objects S in k subsets such that the sums of the
weights of the objects in each subset are nearly equal.
Returns a vector of length k whose elements are lists that partition S. As a second value, returns the difference between the sum of the weights of the smalles partition and that of the largest partition.
Returns a utree that represents all information necessary to generate a high-performance implementation of KERNEL. Identical blueprints are EQ, which makes them ideal for caching.
task
.
Returns a lazy array whose contents are the results of applying the
supplied function element-wise to the contents of the remaining argument
arrays. If the arguments don’t agree in shape, they are first broadcast
with the function BROADCAST.
Examples:
(compute (lazy #’*))
=> 1
(compute (lazy #’+ 2 3))
=> 5
(compute (lazy #’+ #(1 2) #(3 4)))
=> #(4 6)
(compute (lazy #’+ 2 #(1 2 3 4 5)))
=> #(3 4 5 6 7)
(compute (lazy #’* #(2 3) #2A((1 2) (3 4))))
=> #2A((2 4) (9 12))
Returns a lazy array that is derived from the supplied object in the
following way:
- If the supplied object is a lazy array, the result is that lazy array.
- If the supplied object is a regular array, the result is a lazy array
of the same shape, and whose indices map to the same elements.
- If the supplied object is neither a lazy array, nor a regular array, it
is treated like an array of rank zero whose sole element is that supplied
object.
By convention, all functions that expect an argument to be a lazy array
actually accept any kind of object and use the LAZY-ARRAY function to
convert that object to a lazy array. Unless user code violates this
convention, scalars, regular arrays, and lazy arrays can be used
interchangeably in any argument position.
Examples:
(lazy-array #2A((1 2 3) (4 5 6)))
=> #<lazy-array t (~ 2 ~ 3)>
(lazy-array #(1 2 3))
=> #<lazy-array t (~ 3)>
(lazy-array 5)
=> #<lazy-array (eql 5) (~*)>
(lazy-array (lazy-array 5))
=> #<lazy-array (eql 5) (~*)>
(lazy-array (make-array 64 :element-type ’bit :initial-element 1))
=> #<lazy-array bit (~ 64)>
Returns the number of elements of the supplied lazy array along a particular axis.
Returns a list that consists of the number of elements of the supplied lazy array along each of its axes.
Returns the element type of the supplied lazy array.
The element type is a conservative upper bound on the types of all the elements
in that lazy array. It is derived automatically during lazy array
construction. When computing a lazy array, the resulting regular array’s
element type is the upgraded array element type of the lazy array’s element
type.
Returns whether the supplied object is a lazy array.
Examples:
(lazy-array-p (lazy #’* 21 2))
=> t
(lazy-array-p 42)
=> nil
(lazy-array-p #2A((1 2) (3 4)))
=> nil
Returns the range of the supplied lazy array’s shape along a particular axis. If no axis is supplied, it defaults to zero.
Returns the list of all the ranges that constitute the supplied lazy array’s shape.
Returns the rank of the supplied lazy array.
The rank of a lazy array is the number of ranges that constitute its shape.
Returns the shape of the supplied lazy array.
Returns the number of elements in the supplied lazy array.
Returns a lazy array that is a combination of the values of the
supplied arrays. Signals an error if any of the supplied arrays overlap, have
a different rank, or if the union of all shapes cannot be represented as a
shape.
Examples:
(compute (lazy-fuse (lazy-reshape 1 (~ 0 2)) (lazy-reshape 2 (~ 2 4))))
=> #(1 1 2 2)
(compute (lazy-fuse (lazy-reshape 1 (~ 0 7 2)) (lazy-reshape 2 (~ 1 7 2))))
=> #(1 2 1 2 1 2 1)
(compute
(lazy-fuse (lazy-reshape 1 (~ 0 2 ~ 0 2)) (lazy-reshape 2 (~ 0 2 ~ 2 4))
(lazy-reshape 3 (~ 2 4 ~ 0 2)) (lazy-reshape 4 (~ 2 4 ~ 2 4))))
=> #2A((1 1 2 2) (1 1 2 2) (3 3 4 4) (3 3 4 4))
Returns the result of first harmonizing all the supplied arrays, and then passing them to LAZY-FUSE.
Returns a lazy array containing the index components of the designated
shape in the supplied axis. If the first argument is not a shape, the function
SHAPE-DESIGNATOR-SHAPE is used to convert it a shape. If no axis is supplied,
it defaults to zero.
Examples:
(compute (lazy-index-components (~ 9)))
=> #(0 1 2 3 4 5 6 7 8)
(compute (lazy-index-components (~ 10 30 2)))
=> #(10 12 14 16 18 20 22 24 26 28)
(compute (lazy-index-components (~ 4 ~ 4) 0))
=> #2A((0 0 0 0) (1 1 1 1) (2 2 2 2) (3 3 3 3))
(compute (lazy-index-components (~ 4 ~ 4) 1))
=> #2A((0 1 2 3) (0 1 2 3) (0 1 2 3) (0 1 2 3))
(compute (lazy-index-components #2A((1 2) (3 4)) 1))
=> #2A((0 1) (0 1))
Returns multiple lazy arrays, the number of which is indicated by the integer
that is the first supplied argument, whose contents are the results of applying
the function — the second supplied argument — element-wise to the contents
of the remaining argument arrays. If the arguments don’t agree in shape, they
are first broadcast together.
Examples:
(multiple-value-call #’compute (lazy-multiple-value 0 #’*))
(multiple-value-call #’compute (lazy-multiple-value 1 #’*))
=> 1
(multiple-value-call #’compute (lazy-multiple-value 2 #’*))
=> 1
=> nil
(multiple-value-call #’compute
(lazy-multiple-value 2 #’floor #(2 3) #2A((1 2) (3 4))))
=> #2A((2 1) (1 0))
=> #2A((0 0) (0 3))
(multiple-value-call #’compute
(lazy-multiple-value 3 #’values-list #((1 2 3) (4 5 6))))
=> #(1 4)
=> #(2 5)
=> #(3 6)
Returns a lazy array that is a combination of the values of the
supplied arrays. If any of the supplied arrays overlap at some index, the
value of the result in that index is that of the rightmost array containing
that index. Signals an error unless the supplied arrays have the same rank, or
if the union of their shapes cannot be represented as a shape.
Examples:
(compute (lazy-overwrite (lazy-reshape 1 (~ 0 4)) (lazy-reshape 2 (~ 2 4))))
=> #(1 1 2 2)
(compute
(lazy-overwrite (lazy-reshape 1 (~ 3 ~ 3)) (lazy-reshape 2 (~ 1 2 ~ 1 2))))
=> #2A((1 1 1) (1 2 1) (1 1 1))
Returns the result of first harmonizing all the supplied arrays, and then passing them to LAZY-OVERWRITE.
Returns a lazy array with the same contents as the one supplied, but whose
leading axes are replaced by a different shape. The three arguments of this
function are the lazy array to be rearranged, the number of axes to rearrange,
and the shape to use instead. Signals an error if the original and the
resulting shapes differ in size.
Examples:
(compute (lazy-rearrange (lazy-index-components (~ 1 10)) 1 (~ 3 ~ 3)))
=> #2A((1 2 3) (4 5 6) (7 8 9))
(compute (lazy-rearrange #2A((1 2) (3 4)) 2 (~ 4)))
=> #(1 2 3 4)
(compute (lazy-rearrange #2A((1 2) (3 4)) 1 (~ 2 ~ 1)))
=> #3A(((1 2)) ((3 4)))
Returns the lazy arrays that are reductions of the supplied
arrays by the supplied function. For a single supplied array that is a vector,
this function operates as follows:
1. If the vector has zero elements, return the scalar that is the result of
invoking the supplied function with zero arguments. This behavior is
analogous to Common Lisp’s REDUCE function and allows graceful handling of
many built-in functions.
2. If the vector has an even number of elements, split it into two vectors of
half the size of the original one, where the first vector contains all the
elements with an even index, and the second vector contains all the elements
with an odd index. Map the supplied function, which must accept two
arguments and return one value, over these two vectors to obtain a single
vector of results. Process the resulting vector with step 2 or step 3,
depending on whether it has an even or an odd number of elements.
3. If the vector has an odd number of elements, distinguish three cases:
a) If there is a leftover element from one of the previous steps, append it
at the end of the vector. The resulting vector has an even number of
elements. Process it with step 2.
b) Otherwise, if the vector has exactly one element, this element is the
result of the reduction. Return it.
c) Otherwise, remove the last element of the vector and store it as the
leftover element for use in step 3a. Process the remaining elements with
step 2.
In addition to this simple case of reducing a vector into a scalar, this
function supports three further generalizations:
- If the argument is an array with rank larger than one, the reduction is
carried out along the first axis only, and the remaining axes are handled by
carrying out multiple reductions in parallel. In that case, the result is
not a scalar but an array whose rank is one less than before.
- Instead of supplying a function as the first argument, one may also supply a
list of functions. In that case, the supplied arrays are first reduced with
the first of those functions, the results thereof are reduced with the second
of those functions, and so on.
- Instead of reducing a single array with a function that takes two arguments
and returns one value, one may also reduce k arrays with a function that
takes 2k arguments and returns k values. In that case, all the supplied
arrays are first broadcast to have the same shape, and these arrays are
processed exactly like in the case of reducing a single vector except that
values are selected from all k arrays simultaneously, resulting in 2k
arguments being passed to the supplied function, and returning k lazy arrays
as a result.
A final piece of advice: when reducing a vector that is possibly empty, it is
advisable to stack a neutral element at the beginning or the end of that vector
to make it non-empty.
Examples:
(compute (lazy-reduce ’+ #()))
=> 0
(compute (lazy-reduce ’+ #(1 2 3 4)))
=> 10
(compute (lazy-reduce ’+ #2A((1 2) (3 4))))
=> #(4 6)
(compute (lazy-reduce ’(+ +) #2A((1 2) (3 4))))
=> 10
(let ((a #(5 2 7 1 9 6)))
(multiple-value-bind (max index)
(lazy-reduce
(lambda (lv li rv ri)
(if (> lv rv)
(values lv li)
(values rv ri)))
a (lazy-index-components a))
(compute max index)))
=> 9
=> 4
(compute (lazy-reduce ’min (lazy-stack (list 0 #()))))
=> 0
Returns a lazy array whose contents are a selection of the supplied lazy array, which has the supplied shape, and whose mapping from its element to that of its input is the supplied transformation.
Returns the lazy array that is obtained by successively reshaping the supplied array with the supplied modifiers in left-to-right order. Modifiers can be transformations that describe a reordering of values; functions which are applied to the shape of the lazy array to obtain additional modifiers; or shape designators that describe a selection, move, or broadcasting of values.
More precisely, LAZY-RESHAPE maintains a lazy array that is initialized to the
result of applying the LAZY-ARRAY constructor to the supplied first argument,
and successively updates it by applying one modifier at a time according to the
following rules:
1. If the modifier is an invertible transformation, reorder the elements of
that array according to that transformation. If the lazy array has lower
rank than expected from the transformation, broadcast it first to that rank.
If the lazy array has higher rank than expected from the transformation,
leave these extra axes as they are and later append them to the shape of the
resulting lazy array.
2. If the modifier is a function, apply it to the shape of the lazy array to
obtain a number of new modifiers as multiple values. Process the new
modifiers as if they were supplied instead of this function modifier.
3. If the modifier is a shape designator then move, broadcast or sample each
axis of the lazy array to match that shape. If the lazy array has lower
rank than the designated shape, first broadcast it to that rank. If the
lazy array has higher rank than the designated shape, leave the remaining
axes as they are and later append them to the shape of the resulting lazy
array. For each axis, derive the mapping from the range of the lazy array to
the corresponding range of designated shape according to the following
rules:
a) If both source and target range have the same size, move the elements of
that axis so that they end up in the target range while maintaining the
original order.
b) If the source range has a size of one, broadcast its content to the
target range.
c) If the target range is a proper subset of the source range, select only
those elements that fall within the target range.
Examples:
(compute (lazy-reshape #(1 2 3 4) (~ 1 2)))
=> #(2)
(compute (lazy-reshape #(1 2 3 4) (~ 2 ~ 3)))
=> #2A((1 1 1) (2 2 2))
(compute (lazy-reshape #(1 2 3 4) (~ 4 ~ 2)))
=> #2A((1 1) (2 2) (3 3) (4 4))
(compute (lazy-reshape #2A((1 2) (3 4)) (transform i j to j i)))
=> #2A((1 3) (2 4))
(compute (lazy-reshape #(1 2 3 4) (transform i to (- i))))
=> #(4 3 2 1)
(compute (lazy-reshape #(1 2 3 4) (transform i to (- i)) (~ -2 0)))
=> #(3 2)
(compute (lazy-reshape #(1 2 3 4) (lambda (s) (~ 1 (1- (shape-size s)))))) => #(2 3)
Returns a lazy array containing the elements of the supplied array, but sorted
along the first axis according to the supplied predicate and key function. If
the key function is not supplied, it defaults to the identity function. For
any two elements, the results of invoking the key function are passed to the
predicate to determine whether the first element is strictly less than the
second one. As a second value, returns a lazy array of the same shape that
contains the keys corresponding to each of the sorted elements.
Examples:
(compute (lazy-sort #(1 3 7 5 0 6 4 9 8 2) #’<))
=> #(0 1 2 3 4 5 6 7 8 9)
(compute (lazy-sort "Sphinx of black quartz, judge my vow." #’char-lessp))
=> " ,.aabcdefghijklmnoopqrStuuvwxyz"
(multiple-value-call #’compute (lazy-sort #(-2 -1 0 1 2) #’> :key #’abs))
=> #(2 -2 1 -1 0)
=> #(2 2 1 1 0)
(compute (lazy-sort #2A((9 8 7) (6 5 4) (3 2 1)) #’<))
=> #2A((3 2 1) (6 5 4) (9 8 7))
Returns a lazy array whose contents are the supplied arrays, stacked next
to each other along a particular axis, such that the leftmost array will have
the lowest index components, and the rightmost array will have the highest
index components. Keyword arguments can be supplied to specify the axis along
which to stack, and the start and step of the resulting lazy array in that
axis.
Examples:
(compute (lazy-stack (list 1 2 #(3 4))))
=> #(1 2 3 4)
(compute (lazy-stack (list #2A((1 2) (3 4)) #2A((5 6) (7 8)))))
=> #2A((1 2) (3 4) (5 6) (7 8))
(compute (lazy-stack (list #2A((1 2) (3 4)) #2A((5 6) (7 8))) :axis 1)) => #2A((1 2 5 6) (3 4 7 8))
Returns a shape whose axes are determined by the supplied list of ranges.
Returns a transformation that is created according to the supplied keyword
arguments. Valid keyword arguments are:
- :INPUT-RANK A non-negative integer that is the rank of any permissible index
or shape supplied to this transformation. Defaults to the length of the
supplied input mask, or, if no input mask is supplied, to the value of the
output rank. Signals an error if neither input nor output rank could be
inferred.
- :OUTPUT-RANK A non-negative integer that is the rank of any possible index or
shape resulting from this transformation. Defaults to the length of the
supplied scalings, offsets, or output mask, or, if none of these are
supplied, to the value of the input rank. Signals an error if neither input
nor output rank could be inferred.
- :INPUT-MASK A sequence with one element per axis of the transformation’s
input. Each element must either be an integer, in which case only that
integer may appear in the corresponding axis of the input, or NIL, in which
case any integer may appear in the corresponding axis.
- :OUTPUT-MASK A sequence with one element per axis of the transformation’s
output. Each element must either be an integer, in which case this integer
denotes the axis of the input that is to be scaled, shifted and sent to the
current position’s output, or NIL, in which case only the corresponding
offset value is sent to the current output. This way, the output mask can
encode permutations of the input and also insertion and removal of axes. If
this keyword argument is not supplied, it defaults to a sequence of
consecutive integers from zero to right below the minimum of the input and
output ranks followed by entries of NIL if the output rank exceeds the input
rank.
- :SCALINGS A sequence with one element per axis of the transformation’s output
whose elements are rational numbers. Each integer of a transformation’s
output is computed by multiplying the input denoted by the output mask by its
corresponding entry in this sequence and adding to the corresponding offset.
If an output mask entry is NIL, the corresponding scaling is ignored and the
offset of that output axis is returned as is. If this keyword argument is
not supplied, it defaults to a sequence of ones.
- :OFFSETS A sequence with one element per axis of the transformation’s output.
Each element must be a rational number that is added to the corresponding
output value after scaling has taken place. If this keyword argument is not
supplied, it defaults to a sequence of zeros.
Signals an error if the supplied sequences and ranks are incompatible with each
other.
Examples:
(make-transformation :input-rank 2)
=> (transform a b to a b)
(make-transformation :input-rank 2 :output-rank 1)
=> (transform a b to a)
(make-transformation :input-rank 1 :output-rank 2)
=> (transform a to a 0)
(make-transformation :input-mask ’(2 nil 3))
=> (transform 2 b 3 to 2 b 3)
(make-transformation :output-mask #(1 0 nil))
=> (transform a b c to b a 0)
(make-transformation :offsets #(1 2 3) :scalings #(4 5 6))
=> (transform a b c to (1+ (* 4 a)) (+ (* 5 b) 2) (+ (* 6 c) 3))
Returns a lazy array with the supplied shape and element type and whose contents are not known and consequently cannot be computed. It is an error to compute lazy arrays that depend on an unknown lazy array. The main purpose of this function is to construct the arguments to the EVALUATOR function, and to construct abstract programs that are meant to be analyzed rather than computed.
Examples:
(make-unknown :shape (~ 5 ~ 5))
=> #<lazy-array t (~ 5 ~ 5)>
(make-unknown :element-type ’double-float)
=> #<lazy-array double-float (~*)>
Takes a function and a range and applies the function to all integers of
that range, in ascending order. Returns NIL.
Example:
(let ((l ’nil))
(map-range (lambda (i) (push i l)) (range 1 9 2))
(nreverse l))
=> (1 3 5 7)
Takes a function and a shape and applies the function to all integer
tuples of that range, in ascending order. Returns NIL.
Example:
(let ((l ’nil))
(map-shape (lambda (i) (push i l)) (~ 1 3 ~ 3 5))
(nreverse l))
=> ((1 3) (2 3) (1 4) (2 4))
Partition all buffers and kernels in the supplied program into shards.
Returns, as multiple values, a vector mapping each buffer to its corresponding
primogenitor buffer shard, a vector mapping each kernel to its corresponding
primogenitor kernel shard, and a vector mapping each buffer to its
corresponding ghostspec.
SPLIT-PRIORITY - A function that takes a buffer shard and returns an unsigned
integer that is the priority when considering whether to split that buffer
shard. Buffer shards with higher priority are split first, and buffer shards
whose priority is below a certain minimum priority are not split at all.
SPLIT-MIN-PRIORITY - An unsigned integer that is the priority a buffer shard
must exceed to be considered for splitting.
SPLIT-MAX-REDUNDANCY - A real number that is the maximum permissible ratio of ghost points to interior points for a split.
Returns a function that can be supplied as modifier to LAZY-RESHAPE to
select certain interior points of a lazy array. The nature of this function is
determined by the supplied amount specifiers, one for each axis, each of which
can either be an unsigned integer, or a list of up to three unsigned integers.
The behavior of each amount specifier is as follows:
- A single unsigned integer designates the number of elements that are to be
peeled off both at the low and high ends of the corresponding range.
- An empty list means that the corresponding range is not modified.
- An list of one unsigned integer is treated as if that integer was supplied
instead.
- If the amount specifier is a list of two unsigned integers, the first integer
denotes the number of elements that are to be peeled off at the low end of
the corresponding range, and the second integer denotes the amount that is to
be peeled off at the high end of that range.
- If the amount specifier is a list of three unsigned integers, the fist two
are interpreted as the low and the high amount as before, and the third
integer is the relative step size within the selection.
The resulting function signals an error if it is applied to a shape whose rank
is less than the number of supplied amount specifiers.
Examples:
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (peeler 1)))
=> #2A((4 5 6))
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (peeler 1 ’(2 0))))
=> #2A((6))
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (peeler 0 ’(0 0 2)))) => #2A((1 3) (4 6) (7 9))
Return the list of prime factors of INTEGER in ascending order.
Returns a new, normalized range from the supplied parameters.
This function can be invoked with one, two or three integers. If it is called
with a single argument, the result is a range starting from zero, with step
size one, up to but excluding the supplied argument. If the range constructor
is called with two arguments, the result is still a range with a step size of
one, but with the first argument as the inclusive lower bound and the second as
the exclusive upper bound. The three-argument version behaves just like the
two argument version, but with the third argument denoting the step size. The
sign of the step size gives the direction of the range: If the sign is
positive, then the exclusive upper bound must be larger than the inclusive
lower bound or the resulting range is empty. If the sign is negative, the
first argument is used as an inclusive upper bound, and the second argument is
used as an exclusive lower bound.
Examples:
(range 5)
=> #<range {0 ... 4}>
(range 5 9)
=> #<range {5 6 7 8}>
(range 5 13 2)
=> #<range {5 7 9 11}>
(range 1 7 -2)
=> #<range {}>
(range 7 1 -2)
=> #<range {3 5 7}>
Returns whether the supplied range contains a particular integer.
Examples:
(range-contains (range 1 10) 5)
=> t
(range-contains (range 1 10) -5)
=> nil
(range-contains (range 1 10 3) 4)
=> t
Returns a list of disjoint subranges of RANGE1 that describe exactly those integers appearing in RANGE1 but not in RANGE2.
Returns whether the supplied range has zero elements.
Examples:
(range-emptyp (range 0))
=> t
(range-emptyp (range 1))
=> nil
Returns an integer that is larger than any integer in the supplied
range by at most its step size. Signals an error when the supplied range is empty.
Returns the range containing exactly those elements that occur in both
supplied ranges.
Examples:
(range-intersection (range 1 10) (range 2 20))
=> #<range {2 ... 9}>
(range-intersection (range 3 14 2) (range 1 14 3))
=> #<range {7 13}>
Returns whether two supplied ranges have at least one common element.
Examples:
(range-intersectionp (range 1 10) (range 2 20))
=> t
(range-intersectionp (range 0 7 2) (range 1 8 2))
=> nil
Returns the highest integer contained in the supplied range. Signals an error when the supplied range is empty.
Returns the number of elements in the supplied range.
size
.
Returns the lowest integer contained in the supplied range. Signals an error when the supplied range is empty.
Returns the difference between any two successive integers in the supplied range. Signals an error when the supplied range is empty.
step
.
Returns whether the supplied range has a size of one.
Examples:
(range-with-size-one-p (range 5))
=> nil
(range-with-size-one-p (range 5 7 2))
=> t
(range-with-size-one-p (range 5 7 3))
=> t
Returns whether two supplied ranges describe the same set of integers.
Examples:
(range= (range 1) (range 2))
=> nil
(range= (range 2) (range 2))
=> t
(range= (range 0 8 2) (range 0 9 2))
=> nil
(range= (range 0 8 3) (range 0 9 3))
=> t
Returns whether the supplied object is a range.
Examples:
(rangep 42)
=> nil
(rangep (range 1 3 2))
=> t
Takes a vector of single-precision floating-point numbers that describes the potential for memory reuse along each axis, returns a transformation that sorts all axes by increasing reuse potential.
Returns whether the supplied shape contains the index denoted by the
supplied list of integers. Signals an error if the length of the list of
integers differs from the shape’s rank.
Examples:
(shape-contains (~ 1 9) (list 4))
=> t
(shape-contains (~ 1 2 9) (list 4))
=> nil
Computes the difference of two shapes S1 and S2. Returns a list of
disjoint subshapes of S1 that describe exactly those indices appearing in S1
but not in S2.
Examples:
(shape-difference-list (~ 1 11) (~ 2 10))
=> ((~ 1 2) (~ 10 11))
(shape-difference-list (~ 1 11) (~ 4 8))
=> ((~ 1 4) (~ 8 11))
(shape-difference-list (~ 1 11) (~ 2 9 2))
=> ((~ 1 10 2) (~ 10 11))
(shape-difference-list (~ 1 11) (~ 2 21))
=> ((~ 1 2))
(shape-difference-list (~ 1 21 2) (~ 1 21 3))
=> ((~ 3 16 6) (~ 5 18 6))
Returns the size of the shape’s range in a particular axis
Examples:
(shape-dimension (~ 2 ~ 5) 0)
=> 2
(shape-dimension (~ 2 ~ 5) 1)
=> 5
(shape-dimension (~ 10 30 2) 0)
=> 10
Returns a list of the sizes of each range of the supplied shape.
Examples:
(shape-dimensions (~*))
=> nil
(shape-dimensions (~ 0 9))
=> (9)
(shape-dimensions (~ 1 9))
=> (8)
(shape-dimensions (~ 0 2 9))
=> (1)
(shape-dimensions (~ 0 4 ~ 0 5 ~ 0 6))
=> (4 5 6)
Returns whether the supplied object is a shape with zero elements, i.e.,
has at least one range with size zero.
Examples:
(shape-emptyp (~ 1))
=> nil
(shape-emptyp (~ 0))
=> t
(shape-emptyp (~ 1 ~ 2 ~ 3 3))
=> t
Returns the shape whose ranges are the RANGE-INTERSECTION of each pair of
ranges of the two supplied shapes. Signals an error if the supplied shapes
don’t have the same rank.
Examples:
(shape-intersection (~ 1 11 ~ 3 14 2) (~ 1 6 ~ 1 14 3))
=> (~ 1 6 ~ 7 14 6)
(shape-intersection (~ 1 6) (~ 6 11))
=> (~ 0)
Returns whether two supplied shapes have at least one common index.
Examples:
(shape-intersectionp (~ 1 6) (~ 6 10))
=> nil
(shape-intersectionp (~ 1 5) (~ 6 10))
=> nil
Returns the shape that consists of the lower axes of the supplied first
argument, and whose rank is given by the second argument.
Examples:
(petalisp.core:shape-prefix (~ 1 ~ 2 ~ 3) 0)
=> (~*)
(petalisp.core:shape-prefix (~ 1 ~ 2 ~ 3) 1)
=> (~ 1)
(petalisp.core:shape-prefix (~ 1 ~ 2 ~ 3) 2)
=> (~ 1 ~ 2)
Returns the range denoted by the supplied SHAPE and AXIS. If no axis is
supplied, it defaults to zero.
Examples:
(shape-range (~ 1 ~ 2 ~ 3) 0)
=> #<range {0}>
(shape-range (~ 1 ~ 2 ~ 3) 2)
=> #<range {0 1 2}>
Returns a list of all ranges contained in the supplied shape.
Examples:
(shape-ranges (~*))
=> nil
(shape-ranges (~ 1 ~ 2 ~ 3))
=> (#<range {0}> #<range {0 1}> #<range {0 1 2}>)
(shape-ranges (~ 0 9 ~ 0 9))
=> (#<range {0 ... 8}> #<range {0 ... 8}>)
Returns the rank of the supplied shape, i.e., the number of ranges it
contains.
Examples:
(shape-rank (~*))
=> 0
(shape-rank (~ 1 ~ 2 ~ 3))
=> 3
(shape-rank (~ 0 9 ~ 0 9))
=> 2
rank
.
Returns that number of integer tuples denoted by the supplied shape.
Examples:
(shape-size (~*))
=> 1
(shape-size (~ 2 9))
=> 7
(shape-size (~ 1 9 ~ 1 8))
=> 56
size
.
Returns the shape consisting of all ranges of the supplied shape in the
axes interval between the supplied start and end. If the end argument is
not supplied, it defaults to the rank of the supplied shape.
Examples:
(petalisp.core:shape-subseq (~ 2 ~ 3 ~ 4) 0)
=> (~ 2 ~ 3 ~ 4)
(petalisp.core:shape-subseq (~ 2 ~ 3 ~ 4) 2)
=> (~ 4)
(petalisp.core:shape-subseq (~ 2 ~ 3 ~ 4) 1 2)
=> (~ 3)
Returns the shape that consists of the higher axes of the supplied first
argument, and whose rank is given by the second argument.
Examples:
(petalisp.core:shape-suffix (~ 1 ~ 2 ~ 3) 0)
=> (~*)
(petalisp.core:shape-suffix (~ 1 ~ 2 ~ 3) 1)
=> (~ 3)
(petalisp.core:shape-suffix (~ 1 ~ 2 ~ 3) 2)
=> (~ 2 ~ 3)
Returns whether the supplied shape has a size of one.
Examples:
(shape-with-size-one-p (~*))
=> t
(shape-with-size-one-p (~ 1))
=> t
(shape-with-size-one-p (~ 2))
=> nil
Returns whether SHAPE1 has fewer elements than SHAPE2, or if both shapes
have the same size, whether SHAPE1 has lower rank than SHAPE2, or if both
shapes have the same rank, whether the range of SHAPE1 is smaller than the
range of SHAPE2 in the lowest axis where both ranges differ in size.
The main use case for this function is to sort sequences of shapes to obtain a
canonical ordering.
Examples:
(shape< (~ 2) (~ 3))
=> t
(shape< (~ 3) (~ 2))
=> nil
(shape< (~ 2 ~ 4) (~ 2 ~ 2 ~ 2))
=> t
(shape< (~ 2 ~ 2 ~ 2) (~ 2 ~ 4))
=> nil
(shape< (~ 2 ~ 2 ~ 4) (~ 2 ~ 4 ~ 2))
=> t
(shape< (~ 2 ~ 4 ~ 2) (~ 2 ~ 2 ~ 4))
=> nil
Returns whether two supplied shapes have the same rank and ranges.
Examples:
(shape= (~*) (~*))
=> t
(shape= (~ 42) (~ 42))
=> t
(shape= (~ 1 42) (~ 1 42))
=> t
(shape= (~ 1 42) (~ 2 42))
=> nil
Returns whether the supplied object is a shape.
Examples:
(shapep 42)
=> nil
(shapep (~ 1 ~ 2 ~ 3 4))
=> t
This function expects a single shape with one or more ranges R1 to Rn.
It returns a shape with the ranges R2 to R1, and, as a second value, the
range R1 that has been peeled off.
Examples:
(petalisp.core:shrink-shape (~ 1 10))
=> (~*)
=> #<range {1 ... 9}>
(petalisp.core:shrink-shape (~ 1 10 ~ 0 2))
=> (~ 2)
=> #<range {1 ... 9}>
Returns a function that can be supplied as a modifier to LAZY-RESHAPE to select
a particular part of that shape. The nature of this function is determined by
the supplied slice specifiers, one for each axis, each of which is one of the
following:
- A single unsigned integer N for selecting the element with relative index N
and dropping that axis from the resulting shape.
- An empty list for keeping the corresponding range as is.
- A list of one unsigned integer N for selecting the element with relative
index N and keeping that axis in the resulting shape.
- A list of two unsigned integers B and E for selecting the elements from the
relative index B up to right below the relative index E.
- A list of three unsigned integers B, E, and S for selecting the elements
beginning at relative index B, with a relative step size of S, up to right
below the relative index E.
All indices are interpreted as relative coordinates, so in a range with a start
of five and a step size of two, a relative index of zero would map to the absolute
index five and a relative index of one would map to the absolute index seven.
Signals an error unless the integers B and E are valid relative bounding
indices for the range being worked on, i.e., B must be less than the size of
that range, and E must be larger than or equal to B and less than or equal to
the size of that range.
Examples:
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (slicer 0)))
=> #(1 2 3)
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (slicer 1 1)))
=> 5
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (slicer ’(1 2))))
=> #2A((4 5 6))
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (slicer ’(0 3 2))))
=> #2A((1 2 3) (7 8 9))
(compute (lazy-reshape #2A((1 2 3) (4 5 6) (7 8 9)) (slicer ’nil ’(0 3 2)))) => #2A((1 3) (4 6) (7 9))
Splits the supplied range R into lower and upper halves and returns
them as multiple values. In case R has an odd number of elements,
the lower half will have one more element than the upper half. The optional
POSITION argument is a real number that can be used to prescribe the point at
which to split the range.
Examples:
(split-range (range 0))
=> #<range {}>
=> #<range {}>
(split-range (range 1))
=> #<range {0}>
=> #<range {}>
(split-range (range 1 10))
=> #<range {1 ... 5}>
=> #<range {6 7 8 9}>
(split-range (range 1 10) 3)
=> #<range {1 2}>
=> #<range {3 ... 9}>
(split-range (range 1 10) 1)
=> #<range {}>
=> #<range {1 ... 9}>
(split-range (range 1 10) 10)
=> #<range {1 ... 9}>
=> #<range {}>
(split-range (range 1 9))
=> #<range {1 2 3 4}>
=> #<range {5 6 7 8}>
(split-range (range 2 9 2))
=> #<range {2 4}>
=> #<range {6 8}>
(split-range (range 2 9 2) 3)
=> #<range {2}>
=> #<range {4 6 8}>
Splits the supplied SHAPE at AXIS. The optional POSITION argument can be
supplied to describe the position at which to split. If no POSITION argument
is supplied, splits into two halves of roughly equal size. Returns the two
resulting shapes as multiple values.
Examples:
(split-shape (~ 10 ~ 10) 0)
=> (~ 5 ~ 10)
=> (~ 5 10 ~ 10)
(split-shape (~ 10 ~ 10) 1)
=> (~ 10 ~ 5)
=> (~ 10 ~ 5 10)
(split-shape (~ 10 ~ 10) 0 3)
=> (~ 3 ~ 10)
=> (~ 3 10 ~ 10)
(split-shape (~ 2 9 2 ~ 2 9 2) 0 3)
=> (~ 2 3 ~ 2 9 2)
=> (~ 4 9 2 ~ 2 9 2)
(split-shape (~ 2 9 2 ~ 2 9 2) 1 3)
=> (~ 2 9 2 ~ 2 3)
=> (~ 2 9 2 ~ 4 9 2)
Invoke SUBDIVIDE-SHAPES on the shapes of the supplied ARRAYS.
Examples:
(petalisp.core:subdivide-arrays (list))
=> nil
(petalisp.core:subdivide-arrays (list #()))
=> (((~ 0) . 1))
(petalisp.core:subdivide-arrays (list #() #()))
=> (((~ 0) . 1) ((~ 0) . 2))
(petalisp.core:subdivide-arrays (list #(1 2 3 4) #(1 2))) => (((~ 2) . 3) ((~ 2 4) . 1))
Returns a list of cons cells whose CAR is a shape and whose CDR is an
integer. Each shape is a proper subshape of one or more of the supplied shapes
and the fusion of all these shapes covers all the supplied shapes. The bits of
each CDR encode which of the supplied shapes are supersets of that particular
resulting shape.
Examples:
(subdivide-shapes (list (~ 1 10) (~ 2 20)))
=> (((~ 2 10) . 3) ((~ 1 2) . 1) ((~ 10 20) . 2))
(subdivide-shapes (list (~ 1 3 ~ 1 3) (~ 1 2 ~ 1 2)))
=> (((~ 1 2 ~ 1 2) . 3) ((~ 1 2 ~ 2 3) . 1) ((~ 2 3 ~ 1 3) . 1))
Returns whether all elements of the first supplied range are contained in the
second supplied range.
Examples:
(subrangep (range 0 10 2) (range 0 20 2))
=> t
(subrangep (range 0) (range 0))
=> t
(subrangep (range 10) (range 9))
=> nil
Returns whether all elements of the first supplied shape are also
contained in the second supplied shape. Signals an error if the supplied
shapes don’t have the same rank.
Examples:
(subshapep (~*) (~*))
=> t
(subshapep (~ 0 9) (~ 0 9))
=> t
(subshapep (~ 0 3) (~ 1 9))
=> nil
(subshapep (~ 0 3 ~ 0 3) (~ 0 9 ~ 0 9))
=> t
Returns a range that covers all the supplied ranges.
Returns the smallest possible shape that covers all the supplied shapes.
Returns whether the supplied transformation is an identity transformation.
Examples:
(transformation-identityp (transform i j to j i))
=> nil
(transformation-identityp (transform i j to i j))
=> t
Returns a vector with one element per axis of any possible input. Each element of this vector is either an integer, meaning the index component of any input index in the corresponding axis must be that integer, or NIL, meaning that the index component can be any integer.
Returns the rank that any shape that can be transformed with this transformation must have.
Returns whether the supplied transformation is an invertible transformation.
Examples:
(transformation-invertiblep (transform i j to j i))
=> t
(transformation-invertiblep (transform i j to i))
=> nil
Returns a vector with one element per axis of any possible output. Each element of this vector is a rational number that is added to the input index component indicated by the corresponding output mask entry after it is multiplied by the corresponding scaling.
Returns a vector with one element per axis of any possible output. Each element of this vector is either an integer that is the corresponding input axis that is referenced by this output axis, or NIL if and only if the scaling of that output axis is zero.
Returns the rank that shapes created by applying this transformation will have.
Returns a vector with one element per axis of any possible output. Each element of this vector is a rational number that is multiplied by the input index component indicated by the corresponding output mask entry before it is added to the corresponding offset.
Returns whether the supplied object is a transformation.
Examples:
(transformationp (transform i j to j i))
=> t
(transformationp (transform i j to i j))
=> t
(transformationp 42)
=> nil
View the supplied lazy arrays as a graph, using some external program. Each graph node corresponds to a lazy array and is shown with its shape, derived element type, and possibly other attributes. Each graph edge describes one data flow dependency between one lazy array and another.
Blocks until all the supplied requests of some COMPUTE-ASYNCHRONOUSLY operations have been completed.
Returns a shape whose ranges are derived by processing each occurrence of
one of the self-evaluating delimiter symbols ~ and ~*, and the arguments
following such a delimiter up to the next one. Each such group contributes
one or more ranges to the resulting shape. The behavior of each delimiter
is as follows:
- The ~ delimiter must be followed by one, two, or three integers that are
then supplied to the RANGE function to construct the single resulting
range.
- The ~* delimiter must be followed by any number of ranges or lists of ranges that are incorporated into the resulting shape in the order that they appear.
Examples:
(~ 8)
=> (~ 8)
(~ 1 10)
=> (~ 1 10)
(~ 0 10 2 ~ 0 10 2)
=> (~ 0 9 2 ~ 0 9 2)
(apply #’~ 1 10 ’(~ 2 6 ~ 2 6))
=> (~ 1 10 ~ 2 6 ~ 2 6)
Returns a shape whose ranges are derived by processing each occurrence of
one of the self-evaluating delimiter symbols ~ and ~* in the same manner as the
function ~.
Examples:
(~*)
=> (~*)
(~* (range 1 10) (range 2 9) ~ 42)
=> (~ 1 10 ~ 2 9 ~ 42)
(~* ~ 10)
=> (~ 10)
(~* (make-list 4 :initial-element (range 3)))
=> (~ 3 ~ 3 ~ 3 ~ 3)
Returns a list of delayed array actions, one for each element of the supplied list of lazy arrays. This function should be called only by COMPUTE, which guarantees that the supplied lazy arrays are already deflated.
testing-backend
) (data-structures list
)) ¶ir-backend
) (lazy-arrays list
)) ¶reference-backend
) (lazy-arrays list
)) ¶Returns a request object that can be used to wait until all of the supplied lazy arrays have been computed.
Returns whether the supplied backend runs in debug mode, where it trades performance for ease of debugging.
Set the backend’s debug flag to true or false.
For a supplied backend, a list of unknowns of length N, and a list of
lazy arrays of length K, returns a function with K plus N arguments that
returns, as multiple values, the K array values obtained by computing the
supplied arrays after replacing the Ith unknown with the supplied argument in
position K plus I.
The first K arguments of the resulting evaluator function specify which storage to use for the results, where a value of NIL indicates that the corresponding result is a freshly allocated array, and a value that is an array causes the result to be written to that array. The remaining N arguments specify the data that takes the place of the corresponding unknowns. Signals an error if any of the arguments of an evaluator has a different shape or element type from the corresponding result or unknown.
Returns whether the supplied object is a backend.
Returns a function that is a suitable return value for compiling a kernel that has the supplied blueprint.
cuda-compiler-mixin
) blueprint) ¶cpp-compiler-mixin
) blueprint) ¶lisp-plus-cpp-compiler-mixin
) blueprint) ¶lisp-compiler-mixin
) blueprint) ¶lisp-interpreter-mixin
) blueprint) ¶compile-cache-mixin
) blueprint) ¶Returns a function that returns zero values and that takes five arguments — the kernel, the iteration space, an opaque object representing all targets, an opaque object representing all sources, and an opaque object representing the evaluation environment.
delayed-action
)) ¶delayed-map
)) ¶delayed-nth-value
)) ¶delayed-reshape
)) ¶delayed-fuse
)) ¶Permanently disables the supplied backend and free any resources that are held by it. Once a backend has been deleted, further calls to an evaluation function on that backend will signal an error.
testing-backend
)) ¶Given a transformation mapping from (i1 ... iN) to (j1 ... jM), return a transformation mapping from (i0 i1 ... iN iN+1) to ((+(* i0 SCALE) OFFSET) j1 ... jM).
hairy-transformation
) (scaling rational
) (offset rational
)) ¶identity-transformation
) (scale rational
) (offset rational
)) ¶identity-transformation
) (scale (eql 1)
) (offset (eql 0)
)) ¶hairy-transformation
) (n integer
)) ¶identity-transformation
) (n integer
)) ¶transformation
) (n integer
)) ¶call-instruction
)) ¶iref-instruction
)) ¶load-instruction
)) ¶store-instruction
)) ¶Returns the inverse of the supplied transformation, or signals an error if the
supplied transformation is not invertible.
Examples:
(invert-transformation (transform i to (+ 2 i)))
=> (transform a to (+ a -2))
(invert-transformation (transform a b to (+ (* 2 b) 5) (+ (* 3 a) 7)))
=> (transform a b to (+ (* 1/3 b) -7/3) (+ (* 1/2 a) -5/2))
(invert-transformation (transform a 0 to a))
=> (transform a to a 0)
(handler-case (invert-transformation (transform a b to a)) (error nil :error)) => :error
hairy-transformation
)) ¶identity-transformation
)) ¶Returns the name of a function for loading an object of the supplied ntype from some base and index.
ir-backend
) (ntype ntype
)) ¶For each input of TRANSFORMATION, invoke FUNCTION with the input index
and the corresponding input constraint, or null, if there is no input
constraint for this input.
If FROM-END is false, the input indices are traversed in ascending order. Otherwise, they are traversed in descending order.
function
) (transformation hairy-transformation
) &key from-end) ¶function
) (transformation identity-transformation
) &key from-end) ¶For each output of TRANSFORMATION, invoke FUNCTION with the output
index, input index, the scaling and the offset of that output.
An input index of NIL and a scaling of zero is used, if (and only if) the
output is constant.
If FROM-END is false, the output indices are traversed in ascending order. Otherwise, they are traversed in descending order.
function
) (transformation hairy-transformation
) &key from-end) ¶function
) (transformation identity-transformation
) &key from-end) ¶Returns whether all lazy arrays that are part of the supplied request have already been computed.
completed-request
)) ¶Blocks until all lazy arrays that are part of the supplied request have been computed.
completed-request
)) ¶Returns whether the supplied object is a request.
Returns the shape of the supplied shape designator. If the designator is already a shape, the result is that shape. If the designator is a regular array or lazy array, the result is the shape of that array. If the designator is any other object, the result is a shape with rank zero.
lazy-array
)) ¶array
)) ¶Returns the name of a function that will be invoked with the
.sources. kernel parameter and an index, and that returns the source with that
index.
As a second value, returns the values type specifier that describes the results of invoking that function.
ir-backend
)) ¶Returns the name of a function for storing an object of the supplied ntype at some base and index.
ir-backend
) (ntype ntype
)) ¶delayed-action
)) ¶delayed-fuse
)) ¶delayed-reshape
)) ¶delayed-nth-value
)) ¶delayed-multiple-value-map
)) ¶delayed-map
)) ¶Returns the name of a function that will be invoked with the values of the
.targets. kernel parameter and an index, and that returns the target with that
index.
As a second value, returns the values type specifier that describes the results of invoking that function.
ir-backend
)) ¶integer
) (hairy-transformation hairy-transformation
)) ¶integer
) (transformation identity-transformation
)) ¶integer
) (transformation transformation
)) ¶Returns the index that results from applying the supplied transformation to
the supplied index.
Examples:
(transform-index ’(10) (transform i to (+ i 2)))
=> (12)
(transform-index ’(1 2 3) (transform i j k to j (* 3 i) (1+ k)))
=> (2 3 4)
vector
) (transformation hairy-transformation
)) ¶list
) (transformation hairy-transformation
)) ¶sequence
) (transformation identity-transformation
)) ¶sequence
) (transformation hairy-transformation
)) ¶sequence
) (transformation transformation
)) ¶Returns the shape that describes the set of all results of applying the
supplied transformation to each index of the supplied shape.
Examples:
(transform-shape (~ 2 ~ 3) (transform i j to j i))
=> (~ 3 ~ 2)
(transform-shape (~ 10) (transform i to (1+ (* 2 i))))
=> (~ 1 20 2)
shape
) (transformation hairy-transformation
)) ¶shape
) (operator identity-transformation
)) ¶shape
) (transformation hairy-transformation
)) ¶shape
) (transformation transformation
)) ¶Returns whether two supplied transformations are similar. Two
transformations are similar if they have the same permutation, the same
inputs constraints, the same scalings, and offsets whose entries differ in
at most DELTA.
Examples:
(petalisp.core:transformation-similar (transform a to a)
(transform a to (1+ a)) 0)
=> nil
(petalisp.core:transformation-similar (transform a to a)
(transform a to (1+ a)) 1)
=> t
(petalisp.core:transformation-similar (transform i j to (+ j 2) i)
(transform i j to (- j 1) i) 2)
=> nil
(petalisp.core:transformation-similar (transform i j to (+ j 2) i) (transform i j to (- j 1) i) 3) => t
transformation
) (t2 transformation
) (delta integer
)) ¶Returns whether two supplied transformations describe the same mapping.
Examples:
(transformation= (transform i to (* 2 (1+ i))) (transform i to (+ 2 (* 2 i))))
=> t
(transformation= (transform i j to i j) (transform i j to j i))
=> nil
hairy-transformation
) (t2 hairy-transformation
)) ¶identity-transformation
) (t2 identity-transformation
)) ¶transformation
) (t2 transformation
)) ¶Returns the name of a function for unpacking a storage object and environment
into a base, an offset, and as many strides as the supplied RANK.
As a second value, returns the values type specifier that describes the results of invoking that function.
ir-backend
) (ntype ntype
) (rank integer
)) ¶partitioning-graph
) roots &optional attributes) ¶cl-dot
.
any-graph
) objects &optional attributes) ¶cl-dot
.
ir-graph
) roots &optional attributes) ¶cl-dot
.
partitioning-graph
) (kernel-shard kernel-shard
)) ¶cl-dot
.
partitioning-graph
) (node kernel-shard
)) ¶cl-dot
.
partitioning-graph
) (node kernel-shard
)) ¶cl-dot
.
partitioning-graph
) (node buffer-shard
)) ¶cl-dot
.
class-diagram
) (class class
)) ¶cl-dot
.
partitioning-graph
) (buffer-shard buffer-shard
)) ¶cl-dot
.
partitioning-graph
) (buffer-shard buffer-shard
)) ¶cl-dot
.
lazy-array
) stream) ¶transformation
) stream) ¶empty-range
) stream) ¶non-empty-range
) stream) ¶kernel-shard
) stream) ¶store-instruction
) stream) ¶buffer-shard
) stream) ¶iref-instruction
) stream) ¶load-instruction
) stream) ¶call-instruction
) stream) ¶A buffer is a mapping from indices of a particular shape to memory locations of
a particular type. It has the following slots:
- A shape that describes the size and virtual layout of the buffer.
- A conservative approximation of the type of each element of the buffer,
represented as an ntype of the type inference library Typo.
- The depth of the lazy array corresponding to the buffer.
- The writers of the buffer, encoded as an association list where the key of
each entry is a kernel and the value is the list of all the store
instructions in that kernel that write to the buffer.
- The readers of the buffer, encoded as an association where the key of each
entry is a kernel and the value is a list of all the load instructions in
that kernel that load from the buffer.
- The task that contains all kernels that write into this buffer.
- The storage of the buffer, which is an opaque, backend-specific object.
- A number that is unique among all buffers in the program and less than the total number of buffers in the program.
structure-object
.
petalisp-1.0:shape
typo:ntype
(and unsigned-byte fixnum)
list
(quote nil)
list
(quote nil)
(or null petalisp.ir:task)
common-lisp
.
(and unsigned-byte fixnum)
0
A buffer shard describes one portion of a buffer and how it relates to neighboring
parts of that buffer. It also tracks the kernel shards reading from it and
writing to it, and it may contain a split that describes how it is subdivided
into smaller buffer shards. Each buffer shard has the following slots:
- The buffer being partitioned by this buffer shard.
- The domain, which is the part of the buffer’s shape that is exclusively
managed by this buffer shard and its children.
- The shape, which is the union of the buffer shard’s domain and any auxiliary
ghost layers.
- The parent, which is either the buffer shard that was split to create this
one, or NIL if this buffer shard has no parent. We call any buffer shard
whose parent is NIL a primogenitor, and its domain is equal to the shape of
its buffer.
- The writers, which is a list of kernel shards that write to this buffer
shard.
- The readers, which is a list of kernel shards that read from this buffer
shard.
- The split priority cache, which is used to cache the user-supplied cost
function for the buffer shard once it is computed for the first time.
- The split operation if this buffer shard has been split into two child buffer
shards, or NIL if it hasn’t been split so far.
- The layout assigned to the buffer shard, or NIL if no layout has been assigned so far.
structure-object
.
petalisp.ir:buffer
This slot is read-only.
(or null petalisp.ir:buffer-shard)
This slot is read-only.
petalisp-1.0:shape
This slot is read-only.
petalisp-1.0:shape
This slot is read-only.
list
(quote nil)
list
(quote nil)
(or null unsigned-byte)
(or null structure-object)
(or null petalisp.ir:layout)
A call instruction represents the application of a function to some arguments. It consists of an fnrecord from the type inference library Typo, an integer that specifies the number of values produced by the call instruction, and a list of inputs. The values of a call instruction are obtained by applying the fnrecord’s function to the values of each of the call instruction’s inputs. If the function application produces fewer values than specified, the missing values are set to NIL.
structure-object
.
bt2:lock
(bt2:make-lock :name "h-lock")
bt2:lock
(bt2:make-lock :name "t-lock")
cons
cons
structure-object
.
A delayed array describes the process of assigning each index the value of some existing Common Lisp array at that index. It has one slot that is the existing array being referenced.
array
(alexandria:required-argument :storage)
A delayed failure describes a lazy array that was involved in an asynchronous evaluation that signaled an error. It has one slot that is the condition that should be resignaled whenever this delayed action is part of a synchronous evaluation.
common-lisp
.
condition
(alexandria:required-argument :condition)
This slot is read-only.
A delayed fuse describes the process of assigning each index the corresponding value from
the one input lazy array whose shape contains that index. It has a single slot
that is the list of lazy arrays being fused.
list
(alexandria:required-argument :inputs)
A delayed map describes the element-wise application of a function to some number of lazy arrays. A delayed map has two slots: The first slot is the fnrecord of the function being mapped, i.e., the entry of that function in the database of the type inference library Typo. The second slot is a list of lazy arrays that the function is being mapped over. All lazy arrays that appear as an input to a delayed map must have the same shape.
A delayed multiple value map describes the element-wise application of a
multiple-valued function to some number of lazy arrays of the same shape. It
has the same first two slots as a delayed map, a third slot that is Typo’s
description of the type of the multiple values it returns, and a fourth slot
that is a mutable bit vector that tracks which of the multiple values have been
referenced so far. The bit vector is later used to eliminate unused values
altogether.
Because of the nature of its return values, a lazy array whose delayed action is a delayed multiple value map must appear only as the input of a delayed nth value action and never be visible to the user.
typo:values-ntype
(alexandria:required-argument :values-ntype)
This slot is read-only.
unsigned-byte
0
bt2:lock
(bt2:make-lock :name "refbits lock")
A delayed nop is the delayed action of any lazy array with zero elements. It cannot be computed.
A delayed nth value describes the process of referencing the nth value of some lazy array whose delayed action is a delayed multiple value map. Its first slot is the position of the value being referenced, and its second slot is a lazy array defined by a delayed multiple value map.
A delayed range describes the process of assigning each index the sole integer contained in that index. This delayed action must appear only in the definition of lazy arrays of rank one.
A delayed reshape describes the process of assigning each index the value of the specified input lazy array at the position that is obtained by applying the specified transformation to that index. It has one slot that stores the transformation and one slot that stores that lazy array being referenced.
petalisp-1.0:transformation
(alexandria:required-argument :transformation)
petalisp-1.0:lazy-array
(alexandria:required-argument :input)
A delayed unknown is used as the delayed action of any lazy array created by the function MAKE-UNKNOWN. It cannot be computed.
An empty range is a range with zero elements.
structure-object
.
hash-table
(make-hash-table)
An identity transformation of rank N maps every list of length N to itself. An identity transformation is its own inverse.
An instruction describes part of the semantics of the kernel that contains it.
This abstract base class outlines behavior that is shared among all
instructions. It prescribes two slots:
- The instruction number, which is an integer that is unique among all
instructions of the containing kernel. Instruction numbers are handed out in
depth-first order of instruction dependencies, such that the roots (store
instructions) have the highest numbers and the leaf nodes (load and iref
instructions) have the lowest numbers.
- A list of inputs, whose elements are cons cells whose CDR is another instruction in the same kernel and whose CAR is an integer denoting which of the multiple values returned by the instruction in the CDR is being referenced. An instruction with zero inputs is called a leaf instruction.
An iref instruction represents an access to elements of the iteration space itself. It contains a transformation that maps each index of the iteration space to an index of rank one. Its value is the single index component of that rank one index. An iref instruction has zero inputs.
The class of all instructions whose behavior directly depends on the current position in the surrounding iteration space.
petalisp-1.0:transformation
A kernel represents a computation that executes some instructions once for
each element in its iteration space. It has the following slots:
- The iteration space, encoded as a shape.
- The instruction vector that contains the instructions of that kernel sorted
by their instruction numbers.
- The sources of that kernel, encoded as an association list where the key of
each entry is a buffer and where the value is a list of stencils of load
instructions reading from that buffer.
- The targets of that kernel, encoded as an association list where the key of
each entry is a buffer and where the value is a list of stencils of store
instructions writing into that buffer.
- The task that contains this kernel.
- A number that is unique among all kernels in the program and less than the total number of kernels in the program.
structure-object
.
check-ir-node
.
clone-reference
.
clone-reference
.
clone-reference
.
compile-kernel
.
graph-object-cluster
.
graphviz-default-graph
.
graphviz-incoming-edge-origins
.
graphviz-node-attributes
.
graphviz-node-properties
.
graphviz-outgoing-edge-targets
.
instruction-blueprint
.
instruction-blueprint
.
instruction-blueprint
.
instruction-blueprint
.
print-object
.
petalisp-1.0:shape
list
(quote nil)
list
(quote nil)
simple-vector
#()
(or null petalisp.ir:task)
common-lisp
.
(and unsigned-byte fixnum)
0
A kernel shard describes one portion of a kernel to be executed and the buffer shards it reads from and writes to. A kernel shard has the following slots:
- The kernel being partitioned by this kernel shard.
- The iteration space, which is a shape that describes the subset of the kernel
iteration space that is uniquely assigned to this kernel shard.
- The targets of the kernel shard, which is a list of buffer shards, one per
target buffer of the kernel being partitioned.
- The sources of the kernel shard, which is a list of buffer shards, one per source buffer of the kernel being partitioned.
structure-object
.
petalisp.ir:kernel
This slot is read-only.
petalisp-1.0:shape
This slot is read-only.
list
(quote nil)
list
(quote nil)
A layout describes how the indices of a shape relate to a particular region of
memory with linear addressing. After the partitioning, each buffer shard that
is referenced at least once is assigned a layout. If a buffer shard has a
layout, its children must have the same layout. A layout has the following
slots:
- The strides, which is a vector of unsigned integers that describes the
mapping from indices that are tuples of integers to a single integer that is
the address of an element of this layout. Its Ith entry denotes the address
increment when bumping the Ith component of an index by one.
- The offset, which is an integer that is the linear address corresponding to
the index tuple of all zeros.
- The ntype of the elements of the layout.
- The size, i.e., the number of elements contained in the layout.
- The ghost layer alist, which is an association list whose keys are shapes and whose values are layouts. Its entries describe from where the ghost layers of this layout can be loaded.
structure-object
.
fixnum
0
This slot is read-only.
(simple-array unsigned-byte (*))
This slot is read-only.
typo:ntype
This slot is read-only.
unsigned-byte
This slot is read-only.
list
A lazy array encapsulates some information that can be used to compute actual Common Lisp arrays.
structure-object
.
convert-nucleus
.
convert-nucleus
.
convert-nucleus
.
graphviz-default-graph
.
graphviz-incoming-edge-origins
.
graphviz-node-attributes
.
graphviz-node-caption
.
graphviz-node-properties
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
grow-dendrite-aux
.
input-gradient
.
input-gradient
.
input-gradient
.
print-object
.
shape-designator-shape
.
trivial-lazy-array-p
.
trivial-lazy-array-p
.
trivial-lazy-array-p
.
trivial-lazy-array-value
.
trivial-lazy-array-value
.
petalisp-1.0:shape
(alexandria:required-argument :shape)
This slot is read-only.
typo:ntype
(alexandria:required-argument :ntype)
This slot is read-only.
(and unsigned-byte fixnum)
0
This slot is read-only.
(and unsigned-byte fixnum)
0
petalisp.core:delayed-action
(alexandria:required-argument :delayed-action)
A load instruction represents a read from main memory. It consists of a buffer that is being read from and a transformation that maps each index of the iteration space to a position in that buffer. A load instruction has zero inputs and produces a single output that is the value that has been loaded.
petalisp.ir:buffer
structure-object
.
list
(quote nil)
list
(quote nil)
unsigned-byte
0
unsigned-byte
0
unsigned-byte
0
(or unsigned-byte null)
unsigned-byte
0
common-lisp
.
A non-empty range denotes a set of integers, starting from a lower bound START, by a fixed stride STEP, to an exclusive upper bound END.
A program is the largest organizational unit in Petalisp’s IR and fully
describes the semantics of a particular graph of lazy arrays. It has the
following slots:
- The initial task, which is the unique task in the program with zero
predecessors.
- The final task, which is the unique task in the program with zero successors.
- An association list where each entry has a key that is a leaf buffer and a
value that is the corresponding lazy array.
- A list of all root buffers of the program in the order that they were
submitted for evaluation.
- A simple vector that contains all the tasks in the program sorted by their
task number.
- The number of buffers in the program.
- The number of kernels in the program.
structure-object
.
list
(quote nil)
list
(quote nil)
simple-vector
#()
(and unsigned-byte fixnum)
0
(and unsigned-byte fixnum)
0
A range denotes a possibly empty set of integers.
structure-object
.
(integer 0 *)
This slot is read-only.
A shape is the cartesian product of zero or more ranges. Shapes can be constructed by calling ~ or MAKE-SHAPE. The elements of a shape are lists of integers. The rank of a shape is the length of these lists. For example, the shape (~ 0 1 ~ 1 3 ~ 3 8 4) has rank three and consists of the integer tuples (0 1 3), (0 1 7), (0 2 3), (0 2 7).
structure-object
.
list
This slot is read-only.
petalisp.core:rank
This slot is read-only.
unsigned-byte
This slot is read-only.
structure-object
.
hash-table
(make-hash-table :test (function equalp))
This slot is read-only.
A split describes how an axis of an existing buffer shard is split into two
smaller child buffer shards. Each split has the following slots:
- The axis at which the buffer-shard is split.
- The position of the smallest element of the right child’s range in the axis
being split.
- The buffer shard that is the left child of the split.
- The buffer shard that is the right child of the split.
structure-object
.
petalisp.core:axis
This slot is read-only.
common-lisp
.
integer
This slot is read-only.
petalisp.ir:buffer-shard
This slot is read-only.
petalisp.ir:buffer-shard
This slot is read-only.
A stencil is a set of either load or store instructions that all have the same
buffer, kernel, output mask, and scalings, and whose offsets are off by at most
*STENCIL-MAX-RADIUS* from the center of the stencil (measured in steps of the
corresponding range of the buffer being loaded from). The center of a stencil
is a vector containing the averages of the offsets of its instructions rounded
to the nearest integer.
Stencils are crucial for reasoning about memory locality. During buffer partitioning, memory that is accessed by exactly one stencil per kernel can be split by introducing ghost layers. The maximum distance of any offset from the stencil’s center determines the number of ghost layers that have to be introduced.
A store instruction represents a write to memory. It consists of a buffer that is being written to, a transformation that maps each index in the iteration space to a location in that buffer, and a single input that is the value to be written. A store instruction returns zero values.
A task is a collection of kernels that fully define a set of buffers.
The rules for task membership are:
1. All kernels writing to a buffer B with task T have task T.
2. All buffers written to by a kernel K with task T have task T.
3. A buffer that is used by a kernel in T and that depends on a buffer in T is also in T.
structure-object
.
petalisp.ir:program
(quote nil)
list
(quote nil)
list
(quote nil)
list
(quote nil)
list
(quote nil)
common-lisp
.
(and unsigned-byte fixnum)
0
A transformation with input rank N and output rank M is a mapping from lists of length N to lists of rank M.
structure-object
.
clone-reference
.
clone-reference
.
clone-reference
.
compose-two-transformations
.
compose-two-transformations
.
compose-two-transformations
.
inflate-transformation
.
print-object
.
transform-axis
.
transform-index
.
transform-instruction-input
.
transform-instruction-input
.
transform-instruction-output
.
transform-instruction-output
.
transform-shape
.
transformation-similar
.
transformation=
.
petalisp.core:rank
This slot is read-only.
petalisp.core:rank
This slot is read-only.
simple-vector
This slot is read-only.
simple-vector
This slot is read-only.
simple-vector
This slot is read-only.
simple-vector
This slot is read-only.
(or boolean petalisp-1.0:transformation)
boolean
:debug
petalisp.codegen::compile-cache
(petalisp.codegen::make-compile-cache)
This slot is read-only.
string
(alexandria:required-argument :name)
:name
This slot is read-only.
petalisp.ir:memory
(alexandria:required-argument :memory)
:memory
This slot is read-only.
string
(alexandria:required-argument :name)
:name
This slot is read-only.
petalisp.ir:memory
(alexandria:required-argument :memory)
:memory
This slot is read-only.
(vector petalisp.ir:core)
:cores
This slot is read-only.
string
(alexandria:required-argument :name)
:name
This slot is read-only.
(or null petalisp.ir:memory)
:parent
This slot is read-only.
list
(quote nil)
:children
list
(quote nil)
:cores
unsigned-byte
(alexandria:required-argument :size)
:size
This slot is read-only.
unsigned-byte
(alexandria:required-argument :granularity)
:granularity
This slot is read-only.
unsigned-byte
(alexandria:required-argument :latency)
:latency
This slot is read-only.
unsigned-byte
(alexandria:required-argument :bandwidth)
:bandwidth
This slot is read-only.
(or null unsigned-byte)
:parent-bandwidth
This slot is read-only.
Whether a kernel is so small that there is no need including every detail in its blueprint.
Attempt to split buffer shard at the supplied axis and position. If the split could be introduced successfully, or if an equivalent split already existed, return that split. Otherwise, return NIL.
Returns whether the supplied blueprint can be translated to C++. This is the case when each array element type has a C++ equivalent, and when all function calls therein have a C++ equivalent.
base
.
rank
.
A list of all chains of buffer shards writing to buffer shard and its children. Useful for debugging.
Returns the buffer shard’s oldest ancestor that has the same layout as this
one. A buffer shard can be its own guardian.
Signals an error if the layout of the supplied buffer is NIL.
An infant is a buffer-shard without a split. This function returns the list of infants whose line of ancestry contains the supplied buffer shard.
Raise an error if any shards are malformed. Useful for debugging.
Returns a vector of vectors of allocations, and ensures that each layout being referenced by the supplied schedule has its allocation slot set to one of these allocations. Returns a second value that is a vector of all constant arrays that were referenced in the schedule.
Extend the domain of a buffer shard with suitable ghost layers.
Returns a vector whose Nth entry is the primogenitor buffer shard corresponding to the buffer with number N.
head
.
tail
.
cons
.
stem
.
Returns the axis where buffer shard can be split while introducing the minimum number of ghost points, or NIL, if the buffer-shard cannot be split further. If there are multiple axes with the same number of ghost points, pick the lowest axis.
Returns the position where buffer should be split such that both halves have similar size, but also such that recursive splitting results in shards that all have approximately the same split priority. The result of this function is a split position that is at most 1/6 away from the middle of the of the buffer shard’s range in the supplied axis.
Returns the C++ type, function name, and kind (:infix or :prefix) of the supplied Lisp function name. Signals an error if no equivalent C++ function exists.
data
.
An auxiliary function for LAZY-RESHAPE that processes a single modifier.
Returns a transformation that maps every element of TARGET-SHAPE to an element of SOURCE-SHAPE. In case TARGET-SHAPE has a higher rank than SOURCE-SHAPE, insert additional axes at POSITION.
Generate an integer between MIN (inclusive) and MAX (exclusive).
Returns a new kernel shard from the supplied keyword arguments. Ensure that this kernel shard appears in the list of writers of all of its target buffer shards, and in the list of readers of all its source buffer shards.
Returns a transformation that maps every element of the supplied target shape to an element of the supplied source shape. Signals an error if the supplied shapes don’t have the same rank.
Ensure that the current thread will only run on the specified CPU. Returns whether the pinning was successful.
Map the supplied function over all split-worthy buffer shards neighboring the supplied kernel shard. At the same time, change the coordinate system from the supplied axis and position from to that of each buffer shard being mapped over and pass the resulting axis and position as additional arguments to the supplied function.
Map the supplied function over all kernel shards neighboring the supplied buffer shard. At the same time, change the coordinate system from the supplied axis and position from to that of each kernel shard being mapped over and pass the resulting axis and position as additional arguments to the supplied function.
Delete all files in the supplied directory that are not currently open.
Replace any of the kernel shard’s sources or targets that have one or more splits with the most specific buffer shard in that tree of splits that still provides all the data referenced by the kernel shard. Update the writers and readers slot of all affected buffers accordingly.
Returns either :LEFT, :RIGHT, or :BOTH, depending how the iteration space relates to the supplied transformoid.
done
.
Returns an array with the same shape and elements as ARRAY, but that is guaranteed to be simple.
mode
.
Takes a list of fragments whose shapes are disjoint, and one new
fragment, and returns a list of disjoint fragments that partition the old
fragments and the new fragment. The resulting list consists of three parts:
1. One fragment for each old fragment that has an intersection with the new
fragment. Its shape is that intersection, and its mask is the LOGIOR of the
mask of the old fragment and the mask of the new fragment.
2. All elements of the fragment difference list of any old fragment and the new
fragment. Their masks are the same as those of the old fragment they were
derived from.
3. Fragments that, together, cover every part of the new fragment that is not already covered by the intersections from the first step. Each one has the same mask as the new fragment.
Returns whether the supplied OBJECT is an array, a lazy array that can be cheaply converted to an array, or a scalar.
Returns the value of an OBJECT that is trivial in the sense of TRIVIAL-OBJECT-P.
Ensure that no buffer shards reference this kernel shard.
double-float
) (b double-float
)) ¶single-float
) (b single-float
)) ¶array
) (array-2 array
)) ¶delayed-array
) (b delayed-array
)) ¶bpconstant
)) ¶bpvariable
)) ¶bpvariable
) (v2 bpvariable
)) ¶bpconstant
) (v2 bpconstant
)) ¶store-instruction
)) ¶instruction
)) ¶kernel-shard
)) ¶buffer-shard
)) ¶(eql 0)
) (load-instruction load-instruction
) (kernel kernel
) (transformation transformation
)) ¶(eql 0)
) (iref-instruction iref-instruction
) (kernel kernel
) (transformation transformation
)) ¶integer
) (call-instruction call-instruction
) (kernel kernel
) (transformation transformation
)) ¶compile-cache-mixin
)) ¶automatically generated reader method
hairy-transformation
) (f hairy-transformation
)) ¶transformation
) (f identity-transformation
)) ¶identity-transformation
) (f transformation
)) ¶transformation
) (f transformation
)) ¶nucleus
) (lazy-array lazy-array
) (delayed-multiple-value-map delayed-multiple-value-map
)) ¶nucleus
) (lazy-array lazy-array
) (delayed-action delayed-action
)) ¶nucleus
) (lazy-array lazy-array
) (delayed-action delayed-action
)) ¶delayed-failure
) index) ¶delayed-unknown
) index) ¶delayed-nop
) index) ¶delayed-array
) index) ¶delayed-range
) index) ¶delayed-fuse
) index) ¶delayed-reshape
) index) ¶delayed-nth-value
) index) ¶delayed-multiple-value-map
) index) ¶delayed-map
) index) ¶buffer-shard
)) ¶kernel-shard
)) ¶lazy-array
)) ¶cons
)) ¶scheduling-graph
) (edge scheduling-edge
) (from node
) (to node
) (n integer
)) ¶class-diagram
) (edge direct-subclass-edge
) (from class
) (to class
) edge-number) ¶partitioning-graph
) (edge writer-edge
) (from kernel-shard
) (to buffer-shard
) n) ¶partitioning-graph
) (edge reader-edge
) (to buffer-shard
) (from kernel-shard
) n) ¶petalisp-graph
) (edge petalisp-edge
) form to edge-number) ¶class-diagram
)) ¶petalisp-graph
)) ¶class-diagram
) (edge direct-subclass-edge
) (class class
)) ¶ir-graph
) (edge input-edge
) (buffer buffer
)) ¶data-flow-graph
) (edge data-flow-edge
) (lazy-array lazy-array
)) ¶append
.
:most-specific-first
scheduling-graph
) (node node
)) ¶data-flow-graph
) (node delayed-reshape
)) ¶data-flow-graph
) (node delayed-fuse
)) ¶data-flow-graph
) (node delayed-map
)) ¶data-flow-graph
) (node delayed-array
)) ¶data-flow-graph
) (node lazy-array
)) ¶petalisp-graph
) node) ¶data-flow-graph
) (node lazy-array
)) ¶append
.
:most-specific-first
scheduling-graph
) (node node
)) ¶data-flow-graph
) (node delayed-reshape
)) ¶data-flow-graph
) (node delayed-map
)) ¶data-flow-graph
) (delayed-array delayed-array
)) ¶data-flow-graph
) (delayed-nth-value delayed-nth-value
)) ¶data-flow-graph
) (node lazy-array
)) ¶scheduling-graph
) (edge scheduling-edge
) (node node
)) ¶ir-graph
) (edge store-edge
) (kernel kernel
)) ¶ir-graph
) (edge output-edge
) (buffer buffer
)) ¶append
.
:most-specific-first
scheduling-graph
) node) ¶class-diagram
) (class class
)) ¶data-flow-graph
) node) ¶dendrite
) (lazy-array lazy-array
) (delayed-failure delayed-failure
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-wait delayed-wait
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-unknown delayed-unknown
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-range delayed-range
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-array delayed-array
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-nth-value delayed-nth-value
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-map delayed-map
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-reshape delayed-reshape
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-fuse delayed-fuse
)) ¶dendrite
) (lazy-array lazy-array
) (delayed-action delayed-action
)) ¶lazy-array
) (delayed-reshape delayed-reshape
) (output-gradient lazy-array
) (index (eql 0)
)) ¶lazy-array
) (delayed-fuse delayed-fuse
) (output-gradient lazy-array
) index) ¶lazy-array
) (delayed-map delayed-map
) (output-gradient lazy-array
) index) ¶iref-instruction
) (kernel kernel
)) ¶store-instruction
) (kernel kernel
)) ¶load-instruction
) (kernel kernel
)) ¶call-instruction
) (kernel kernel
)) ¶ir-backend
)) ¶automatically generated reader method
testing-backend
)) ¶automatically generated reader method
testing-backend
)) ¶automatically generated reader method
ir-backend
)) ¶automatically generated reader method
testing-backend
)) ¶automatically generated reader method
testing-backend
)) ¶automatically generated reader method
evaluation-failure
)) ¶instruction
) (transformation transformation
)) ¶iterating-instruction
) (transformation transformation
)) ¶instruction
) (transformation transformation
)) ¶iterating-instruction
) (transformation transformation
)) ¶Returns whether the supplied LAZY-ARRAYS and its DELAYED-ACTION have a corresponding deflated array that can be obtained cheaply.
lazy-array
) (delayed-action delayed-action
)) ¶lazy-array
) (delayed-array delayed-array
)) ¶lazy-array
) (delayed-reshape delayed-reshape
)) ¶Obtain the array corresponding to the supplied LAZY-ARRAY, which must be trivial in the sense of TRIVIAL-LAZY-ARRAY-P.
lazy-array
) (delayed-array delayed-array
)) ¶lazy-array
) (delayed-reshape delayed-reshape
)) ¶error
.
(quote (alexandria:required-argument :serious-conditions))
:serious-conditions
This slot is read-only.
An action consists of two lists of invocations that are processed by a worker:
1. A list of copy invocations that transfer data from the ghost layers of
adjacent workers.
2. A list of work invocations that initialize the interior of their targets.
structure-object
.
petalisp-1.0:lazy-array
This slot is read-only.
list
(or null petalisp-1.0:lazy-array)
vector
structure-object
.
unsigned-byte
This slot is read-only.
unsigned-byte
boolean
unsigned-byte
This slot is read-only.
common-lisp
.
(or petalisp.codegen::bpfunction petalisp.codegen::bpconstant)
This slot is read-only.
(simple-array petalisp.codegen::bpvalue (*))
#()
This slot is read-only.
This slot is read-only.
structure-object
.
(simple-array petalisp.codegen::bprange (*))
This slot is read-only.
(simple-array petalisp.codegen::bpvalue (*))
This slot is read-only.
(simple-array petalisp.codegen::bpmemref (*))
This slot is read-only.
(simple-array petalisp.codegen::bpmemref (*))
This slot is read-only.
list
This slot is read-only.
list
This slot is read-only.
list
This slot is read-only.
(simple-array petalisp.codegen::bpinstruction (*))
This slot is read-only.
(simple-array list (*))
unsigned-byte
This slot is read-only.
structure-object
.
typo:ntype
petalisp.core:rank
petalisp.codegen::bpvariable
petalisp.codegen::bpvariable
(simple-array petalisp.codegen::bpvalue (*))
(simple-array petalisp.codegen::bpstencil (*))
structure-object
.
petalisp.codegen::bpvariable
This slot is read-only.
petalisp.codegen::bpvariable
This slot is read-only.
common-lisp
.
petalisp.codegen::bpvalue
This slot is read-only.
structure-object
.
petalisp.codegen::bpvalue
(simple-array petalisp.codegen::bpvariable (*))
This slot is read-only.
(simple-array petalisp.codegen::bpvalue (*))
This slot is read-only.
petalisp.codegen::bpmemref
This slot is read-only.
petalisp.codegen::bpvalue
This slot is read-only.
petalisp.codegen::bpvalue
This slot is read-only.
typo:variable-name
This slot is read-only.
structure-object
.
petalisp.native-backend::backend
This slot is read-only.
list
This slot is read-only.
(simple-array petalisp-1.0:shape (*))
This slot is read-only.
(simple-array typo:ntype (*))
This slot is read-only.
(simple-array petalisp-1.0:shape (*))
This slot is read-only.
(simple-array typo:ntype (*))
This slot is read-only.
(simple-array array (*))
This slot is read-only.
(simple-array vector (*))
This slot is read-only.
(simple-array simple-vector (*))
This slot is read-only.
structure-object
.
(make-hash-table)
structure-object
.
list
(quote nil)
(alexandria:required-argument :object)
This slot is read-only.
(or petalisp.utilities::color null)
petalisp.utilities::colorset
petalisp.utilities::+empty-colorset+
(and unsigned-byte fixnum)
0
(and unsigned-byte fixnum)
0
structure-object
.
hash-table
(make-hash-table :test (function eql) :synchronized t)
This slot is read-only.
A dendrite describes a set of indices and their mapping to the
iteration space of the dendrite’s stem. The dendrite holds a reference to an
input of a not-yet-fully-initialized instruction and its job is to suitably
initialize this instruction input. It has the following slots:
- A reference to the stem from which the dendrite originates.
- A shape that describes the indices being referenced.
- A transformation from the dendrite’s shape to the iteration space of the
dendrite’s stem’s kernel.
- The depth of the nucleus that was most recently visited by the dendrite.
- The cons cell whose CDR should be set to the next instruction being emitted, and whose CAR is an integer denoting which of the multiple values of that instruction is being referenced.
structure-object
.
petalisp.ir::stem
petalisp-1.0:shape
petalisp-1.0:transformation
unsigned-byte
common-lisp
.
cons
structure-object
.
petalisp.native-backend::cenv
(alexandria:required-argument :cenv)
This slot is read-only.
(simple-array array (*))
(alexandria:required-argument :result-arrays)
This slot is read-only.
(simple-array simple-vector (*))
This slot is read-only.
list
bt2:lock
(bt2:make-lock :name "denv serious condition lock")
petalisp.native-backend::request
structure-object
.
petalisp.ir:buffer
This slot is read-only.
simple-vector
This slot is read-only.
simple-vector
This slot is read-only.
(simple-array bit)
This slot is read-only.
An invocation represents one run of a kernel on a particular iteration space for some given source and target layouts.
structure-object
.
function
This slot is read-only.
petalisp.ir:kernel
This slot is read-only.
petalisp-1.0:shape
This slot is read-only.
(simple-array petalisp.ir:layout (*))
(simple-array petalisp.ir:layout (*))
The ir-converter is a structure that tracks all the global state of one IR
conversion process. Each of its slots used to be just a special variable that
was bound when entering the IR conversion, but that turned out to be unwieldy.
Now there is just a single special variable that holds an instance of this
structure. The individual slots of an IR converter are as follows:
- A priority queue of nuclei, sorted by the depth of the corresponding lazy
arrays.
- A hash table, mapping from lazy arrays to their nuclei.
- A hash table, mapping from Common Lisp arrays to buffers.
- A hash table, mapping from Common Lisp scalars to buffers of rank zero
containing those scalars.
- A hash table, mapping from unknowns to buffers.
- An association list whose entries are conses of leaf buffers and their
corresponding lazy arrays.
- A list of lists of conses that need to be updated by writing the value of the
cdr of the first cons to the cdr of each remaining cons.
- The maximum size we allow a kernel to grow during buffer pruning.
- An list of potentially superfluous buffers, i.e., buffer where all dendrites
are disjoint and cover the entire buffer. Nucleus conversion also makes sure
that the data slot of each potentially superfluous buffer contains the list
of dendrites reaching it.
- A hash table, mapping from potentially superfluous buffers to dendrites.
structure-object
.
(priority-queue:make-pqueue (function >))
hash-table
(make-hash-table :test (function eq))
hash-table
(make-hash-table :test (function eq))
hash-table
(make-hash-table :test (function eql))
hash-table
(make-hash-table :test (function eq))
list
(quote nil)
list
(quote nil)
unsigned-byte
This slot is read-only.
list
(quote nil)
hash-table
(make-hash-table :test (function eq))
structure-object
.
petalisp.ir:kernel
list
(quote nil)
list
(quote nil)
(or function null)
A nucleus describes a lazy array that is either the root of a data flow graph
or a lazy array that has been reached by more than one dendrite in the
conversion process. Each nucleus has the following slots:
- The lazy array at which the nucleation occurs. When talking about the shape,
depth and type of a nucleus, we refer to the shape, depth and type of the
lazy array of that nucleus.
- A list of the dendrites that have reached this nucleus. This list is empty when the nucleus is at a root of the data flow graph, otherwise it contains two or more dendrites.
structure-object
.
queues:priority-queue
(queues:make-queue :priority-queue :compare (function petalisp.scheduling::node-more-important-p))
This slot is read-only.
petalisp.scheduling:node
(petalisp.scheduling::make-node)
structure-object
.
petalisp.native-backend::allocation
This slot is read-only.
hash-table
(make-hash-table :test (function equal))
unsigned-byte
0
(member :r :w)
:w
A stem describes the process of assembling one kernel. Stems and their kernels
are always created at the same time, but only the iteration space and the store
instructions of the stem’s kernel are defined right away. All other
instructions of the kernel are produced later by growing dendrites from the
stem. A stem has the following slots:
- A reference to the nucleus from which the stem emanates.
- A reference to the not-yet-fully-initialized kernel that is grown from the
stem. When talking about the iteration space of a stem, we refer to the
iteration space of this kernel.
- A list of buffers that are written to by the stem’s kernel. If the stem’s nucleus occurs at a lazy array with a delayed multiple-value map action, this list has as many buffers as there are multiple values being returned. Otherwise, this list has a single buffer that will later hold the values of the lazy array corresponding to the stem’s nucleus. An element of this list can be NIL instead of a buffer if that particular value is never referenced.
- A flag that indicates whether the stem is valid. It is true initially, but is set to false in case the stem is split into multiple stems with smaller iteration spaces. When the conversion algorithm encounters a stem that is no longer valid, it discards the corresponding kernel and all dendrites rooted therein.
structure-object
.
petalisp.native-backend::worker-pool
This slot is read-only.
petalisp.native-backend::worker-id
This slot is read-only.
(or bt2:thread null)
(lparallel.queue:make-queue)
(member :a :b)
:b
list
(quote nil)
structure-object
.
simple-vector
This slot is read-only.
(bt2:make-atomic-integer :value 1)
(member :a :b)
:a
generate-graph-from-roots
.
graph-object-knows-of
.
graph-object-node
.
graph-object-pointed-to-by
.
graph-object-points-to
.
graphviz-edge-attributes
.
graphviz-graph-attributes
.
graphviz-incoming-edge-origins
.
graphviz-known-nodes
.
graphviz-node-attributes
.
graphviz-node-caption
.
graphviz-node-properties
.
graphviz-outgoing-edge-targets
.
graphviz-potential-edges
.
petalisp.native-backend::worker-pool
(alexandria:required-argument :worker-pool)
:worker-pool
This slot is read-only.
graphviz-incoming-edge-origins
.
graphviz-node-attributes
.
graphviz-node-attributes
.
graphviz-node-attributes
.
graphviz-node-attributes
.
graphviz-node-attributes
.
graphviz-node-caption
.
graphviz-node-properties
.
graphviz-node-properties
.
graphviz-node-properties
.
graphviz-node-properties
.
graphviz-node-properties
.
graphviz-potential-edges
.
generate-graph-from-roots
.
graph-object-cluster
.
graph-object-cluster
.
graphviz-incoming-edge-origins
.
graphviz-incoming-edge-origins
.
graphviz-node-attributes
.
graphviz-node-attributes
.
graphviz-node-properties
.
graphviz-node-properties
.
graphviz-outgoing-edge-targets
.
graphviz-outgoing-edge-targets
.
graphviz-potential-edges
.
(petalisp-1.0:make-reference-backend)
This slot is read-only.
(petalisp-1.0:make-ir-backend :mode :interpreted)
This slot is read-only.
(petalisp-1.0:make-ir-backend :mode :compiled)
This slot is read-only.
(petalisp-1.0:make-native-backend :debug t)
This slot is read-only.
Jump to: | %
(
~
A B C D E F G H I J K L M N P R S T U V W |
---|
Jump to: | %
(
~
A B C D E F G H I J K L M N P R S T U V W |
---|
Jump to: | %
*
+
~
A B C D E F G H I K L M N O P Q R S T U V W |
---|
Jump to: | %
*
+
~
A B C D E F G H I K L M N O P Q R S T U V W |
---|
Jump to: | A B C D E F G H I K L M N O P R S T U V W |
---|
Jump to: | A B C D E F G H I K L M N O P R S T U V W |
---|