Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the abstract-arrays Reference Manual, version 0.1.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 03:08:53 2022 GMT+0.
Next: Systems, Previous: The abstract-arrays Reference Manual, Up: The abstract-arrays Reference Manual [Contents][Index]
This system/library provides an abstract-array
package with:
Beta
a metaclass abstract-array-class
a class abstract-array
with slots
slot readers:
array operators:
predicate:
compile time facilities:
Alpha: Will potentially be removed
The slot-readers and array-operators are implemented using polymorphic-functions to allow for [more-or-less] portable inlining and installation of compiler-macros wherever appropriate. An attempt has also been made to optimize slot accesses using ordered-class discovered at mfiano/zed.
The compile time facilities allows one to define array specialization types using deftype
that specialize on element-type and rank - without a corresponding explosion in the number of predicates. The specialization is done using a systematic arrangement of predicates that check for element-type or rank. These should also obey subtypep
due to their arrangement.
The system also wraps around the CL symbols with the same names. Thus, for example, abstract-arrays:array-dimensions
when compiled with appropriate type declarations is as efficient as cl:array-dimensions
.
Follow the instructions at https://github.com/digikar99/adhoc-polymorphic-functions/#getting-it-from-ultralisp
abstract-array-class
to create the metaclass my-array-class
for your own array.abstract-array
class with metaclass as my-array-metaclass
to create the class* my-array
. This abstract-array
class may have additional slots as per its requirements. It is recommended that users use define-array-class
macro for this purpose as this also defines the order of slots appropriately.aref
, (setf aref)
, row-major-aref
and (setf row-major-aref)
.The system of metaclass and class was chosen as it aids in customizing the behavior of my-array
. For an extensive example, see dense-arrays/src/protocol.lisp.
Next: Files, Previous: Introduction, Up: The abstract-arrays Reference Manual [Contents][Index]
The main system appears first, followed by any subsystem dependency.
Julia’s AbstractArray like abstraction for Common Lisp.
MIT
0.1.1
Next: Packages, Previous: Systems, Up: The abstract-arrays Reference Manual [Contents][Index]
Files are sorted by type and then listed depth-first from the systems components trees.
Next: abstract-arrays/pre-package.lisp, Previous: Lisp, Up: Lisp [Contents][Index]
abstract-arrays (system).
Next: abstract-arrays/package.lisp, Previous: abstract-arrays/abstract-arrays.asd, Up: Lisp [Contents][Index]
abstract-arrays (system).
export-symbols (function).
Next: abstract-arrays/abstract-array-ordered-class.lisp, Previous: abstract-arrays/pre-package.lisp, Up: Lisp [Contents][Index]
pre-package.lisp (file).
abstract-arrays (system).
Next: abstract-arrays/abstract-array.lisp, Previous: abstract-arrays/package.lisp, Up: Lisp [Contents][Index]
package.lisp (file).
abstract-arrays (system).
Next: abstract-arrays/remaining-protocol.lisp, Previous: abstract-arrays/abstract-array-ordered-class.lisp, Up: Lisp [Contents][Index]
abstract-arrays (system).
Next: abstract-arrays/specializations-cl.lisp, Previous: abstract-arrays/abstract-array.lisp, Up: Lisp [Contents][Index]
abstract-array.lisp (file).
abstract-arrays (system).
Next: abstract-arrays/specializations-excl.lisp, Previous: abstract-arrays/remaining-protocol.lisp, Up: Lisp [Contents][Index]
(:not :extensible-compound-types)
remaining-protocol.lisp (file).
abstract-arrays (system).
Previous: abstract-arrays/specializations-cl.lisp, Up: Lisp [Contents][Index]
:extensible-compound-types
abstract-arrays (system).
Next: Definitions, Previous: Files, Up: The abstract-arrays Reference Manual [Contents][Index]
Packages are listed by definition order.
Next: abstract-arrays/defpackage, Previous: Packages, Up: Packages [Contents][Index]
common-lisp.
Previous: abstract-arrays, Up: Packages [Contents][Index]
common-lisp.
export-symbols (function).
Next: Indexes, Previous: Packages, Up: The abstract-arrays Reference Manual [Contents][Index]
Definitions are sorted by export status, category, package, and then by lexicographic order.
Next: Internals, Previous: Definitions, Up: Definitions [Contents][Index]
Next: Compiler macros, Previous: Public Interface, Up: Public Interface [Contents][Index]
Defines NAME as a CLASS with DIRECT-SUPERCLASS ABSTRACT-ARRAY and metaclass as ABSTRACT-ARRAY-CLASS. Also defines the appropriate order using DIRECT-SLOTS.
Defines a (TYPE &OPTIONAL ELEMENT-TYPE RANK) type for each RANK and ELEMENT-TYPE using SATISFIES type. For an example, see DENSE-ARRAYS:ARRAY
Defines PREDICATES corresponding to each ELEMENT-TYPE and RANK (not their pairs). The predicates of the two kinds will be independent of each other.
Next: Ordinary functions, Previous: Macros, Up: Public Interface [Contents][Index]
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
pf-compiler-macro.
Next: Standalone methods, Previous: Compiler macros, Up: Public Interface [Contents][Index]
Access the DIMENSIONS list of the ABSTRACT-ARRAY. Destructively modifying this list would result in a change in the DIMENSIONS of the array; hence use this only for read-only access to the DIMENSIONS.
Similar to SANDALPHON.COMPILER-MACRO:ARRAY-TYPE-DIMENSIONS; returns the actual DIMENSIONS
corresponding to ARRAY-DIMENSIONS in ENV.
ARRAY-TYPE is expected to be a subtype of ABSTRACT-ARRAY.
See also: DEFINE-ARRAY-SPECIALIZATIONS and DEFINE-ARRAY-SPECIALIZATION-TYPE
Similar to SANDALPHON.COMPILER-MACRO:ARRAY-TYPE-ELEMENT-TYPE; returns the
actual ELEMENT-TYPE corresponding to ARRAY-RANK in ENV.
ARRAY-TYPE is expected to be a subtype of ABSTRACT-ARRAY.
See also: DEFINE-ARRAY-SPECIALIZATIONS and DEFINE-ARRAY-SPECIALIZATION-TYPE
Similar to SANDALPHON.COMPILER-MACRO:ARRAY-TYPE-RANK; returns the actual RANK
corresponding to ARRAY-RANK in ENV.
ARRAY-TYPE is expected to be a subtype of ABSTRACT-ARRAY.
See also: DEFINE-ARRAY-SPECIALIZATIONS and DEFINE-ARRAY-SPECIALIZATION-TYPE
Next: Classes, Previous: Ordinary functions, Up: Public Interface [Contents][Index]
sb-mop.
sb-mop.
Previous: Standalone methods, Up: Public Interface [Contents][Index]
(error "storage must be supplied during abstract-array initialization")
:storage
list
(error "dimensions must be supplied during abstract-array initialization")
:dimensions
(error "element-type must be supplied during abstract-array initialization")
:element-type
(integer 0 129)
(error "rank must be supplied during abstract-array initialization")
:rank
(integer 0 4611686018427387901)
(error "total-size must be supplied during abstract-array initialization")
:total-size
standard-class.
Previous: Public Interface, Up: Definitions [Contents][Index]
Next: Special variables, Previous: Internals, Up: Internals [Contents][Index]
Next: Ordinary functions, Previous: Special variables, Up: Internals [Contents][Index]
Like DEFINE-ORDERED-CLASS but slots can also have a ‘:required t‘ as an option. This is substituted with a error-ing :initform.
Next: Generic functions, Previous: Macros, Up: Internals [Contents][Index]
Previous: Ordinary functions, Up: Internals [Contents][Index]
automatically generated reader method
Previous: Definitions, Up: The abstract-arrays Reference Manual [Contents][Index]
Jump to: | (
A C D E F G M O P R S V |
---|
Jump to: | (
A C D E F G M O P R S V |
---|
Next: Data types, Previous: Functions, Up: Indexes [Contents][Index]
Jump to: | *
+
C D E O R S T |
---|
Jump to: | *
+
C D E O R S T |
---|
Jump to: | A C F P R S |
---|
Jump to: | A C F P R S |
---|