arithmetic/declarations.lisp
Return declaration's backend or Common Lisp representation type, or NIL.
Return declaration's homogeneous quantity specification, or NIL.
Return declaration's heterogeneous quantity layout, or NIL.
Return the source form which established declaration.
Return the represented-value declaration published by global name, or NIL.
Describe one represented value without wrapping any runtime occurrence.
Whether declaration states homogeneous or component quantity meaning.
Require actual storage to satisfy expected represented-value meaning.
Quantity specifications and layouts agree exactly. A NIL expected
representation leaves representation choice open; otherwise actual's Common
Lisp type must be a known subtype. Return actual on success. #GZ53LD
Parse one source declaration plist into a quantity specification.
Return NIL when options contains no quantity attributes. This is the common
source seam used by arithmetic parameters, shader interfaces, and semantic
storage declarations; callers retain ownership of their source-specific error
conditions and representation-derived tensor defaults.
Define an ordinary constant which publishes its represented quantity.
The runtime value remains the unwrapped result of value. type states its
Common Lisp representation independently of quantity's semantic declaration;
value-declaration-for retrieves the latter at definition boundaries.
(declaration)Return DECLARATION's backend or Common Lisp representation type, or NIL.
PROPERTY: VALUES; -- the property a keyword, the values a list written space-separated.
(declaration)Return DECLARATION's homogeneous quantity specification, or NIL.
(declaration)Return DECLARATION's heterogeneous quantity layout, or NIL.
(declaration)Return the source form which established DECLARATION.
(name)Return the represented-value declaration published by global NAME, or NIL.
One represented value's machine form and optional semantic meaning. The representation type and quantity judgment are deliberately parallel: two declarations may both use VEC3 while denoting different quantities, and one quantity may acquire different representations in different backends. #OXBSAY
The semantic meaning of a value, separate from its machine representation.
Semantic quantities packed into disjoint positions of one representation.
((agent application-agent) &key)How the children of a list are arranged.
Logical disjunction of tests and raw truth values.
(&key representation-type quantity-specification quantity-layout source-form)(declaration)(actual expected)Require ACTUAL storage to satisfy EXPECTED represented-value meaning. Quantity specifications and layouts agree exactly. A NIL expected representation leaves representation choice open; otherwise ACTUAL's Common Lisp type must be a known subtype. Return ACTUAL on success. #GZ53LD
Logical conjunction of tests and raw truth values.
(left right)(left right)(options &key (default-tensor-order 0))Parse one source declaration plist into a quantity specification. Return NIL when OPTIONS contains no quantity attributes. This is the common source seam used by arithmetic parameters, shader interfaces, and semantic storage declarations; callers retain ownership of their source-specific error conditions and…
Construct a meaningful literal.
A canonical product of symbolic base dimensions raised to rational powers.
(name &key (dimension nil dimension-supplied-p) unit
(tensor-order 0)
(affine-p nil affine-p-supplied-p)
(character nil character-supplied-p))(name value &key type quantity documentation)Define an ordinary constant which publishes its represented quantity. The runtime value remains the unwrapped result of VALUE. TYPE states its Common Lisp representation independently of QUANTITY's semantic declaration; VALUE-DECLARATION-FOR retrieves the latter at definition boundaries.
Headings, paragraphs, figures and their IDs, mentions, marks.
((name symbol) (type (eql 'arithmetic-operator)))A Common Lisp type and a quantity specification answer different questions. The type says which values and storage the implementation sees: vec3, double-float, a specialized array, or a shader :vec3. The quantity says what the represented value means: world position, velocity, duration, or linear colour. Neither…
Intent: make a declared CLOS or structure field usable as an input or output of one checked arithmetic definition without wrapping each runtime value. The boundary should compare the stored representation and quantity declaration with the arithmetic parameter once, choose the existing Lisp realization, and then call…
Backend-neutral declarations connect semantic quantity judgments to represented values without making the representation itself semantic.