This is the veq Reference Manual, version 4.5.5, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Aug 15 04:28:37 2024 GMT+0.
veq/veq.asd
veq/packages.lisp
veq/init.lisp
veq/config.lisp
veq/generic-utils.lisp
veq/types.lisp
veq/utils.lisp
veq/docs.lisp
veq/vset.lisp
veq/lets.lisp
veq/macros-helpers.lisp
veq/veq-ops.lisp
veq/ops-1.lisp
veq/ops-2.lisp
veq/ops-3.lisp
veq/ops-4.lisp
veq/macrolets.lisp
veq/ops-vv-helpers.lisp
veq/ops-vv.lisp
veq/array-utils.lisp
veq/array-rows.lisp
veq/select-dim.lisp
veq/fxlspace.lisp
veq/mat.lisp
veq/mat-inv.lisp
veq/mat-cam.lisp
veq/array-extra.lisp
veq/checks.lisp
veq/shapes.lisp
veq/easing.lisp
The main system appears first, followed by any subsystem dependency.
veq
reasonably fast operations for 1-4d vectors, matrices, and arrays of vectors.
MIT
4.5.5
sb-cltl2
(system).
packages.lisp
(file).
init.lisp
(file).
config.lisp
(file).
generic-utils.lisp
(file).
types.lisp
(file).
utils.lisp
(file).
docs.lisp
(file).
vset.lisp
(file).
lets.lisp
(file).
macros-helpers.lisp
(file).
veq-ops.lisp
(file).
ops-1.lisp
(file).
ops-2.lisp
(file).
ops-3.lisp
(file).
ops-4.lisp
(file).
macrolets.lisp
(file).
ops-vv-helpers.lisp
(file).
ops-vv.lisp
(file).
array-utils.lisp
(file).
array-rows.lisp
(file).
select-dim.lisp
(file).
fxlspace.lisp
(file).
mat.lisp
(file).
mat-inv.lisp
(file).
mat-cam.lisp
(file).
array-extra.lisp
(file).
checks.lisp
(file).
shapes.lisp
(file).
easing.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
veq/veq.asd
veq/packages.lisp
veq/init.lisp
veq/config.lisp
veq/generic-utils.lisp
veq/types.lisp
veq/utils.lisp
veq/docs.lisp
veq/vset.lisp
veq/lets.lisp
veq/macros-helpers.lisp
veq/veq-ops.lisp
veq/ops-1.lisp
veq/ops-2.lisp
veq/ops-3.lisp
veq/ops-4.lisp
veq/macrolets.lisp
veq/ops-vv-helpers.lisp
veq/ops-vv.lisp
veq/array-utils.lisp
veq/array-rows.lisp
veq/select-dim.lisp
veq/fxlspace.lisp
veq/mat.lisp
veq/mat-inv.lisp
veq/mat-cam.lisp
veq/array-extra.lisp
veq/checks.lisp
veq/shapes.lisp
veq/easing.lisp
veq/init.lisp
packages.lisp
(file).
veq
(system).
init-config
(macro).
vgetenv
(function).
veq/config.lisp
veq/generic-utils.lisp
config.lisp
(file).
veq
(system).
-gensyms
(function).
abbrev
(macro).
aif
(macro).
at-most
(function).
awf
(macro).
awg
(macro).
dotted-listp
(function).
dupes
(function).
edge-fx
(function).
edge-str
(function).
flatten
(function).
fx-split-str
(function).
group
(function).
last*
(function).
lpos
(function).
lst>n
(function).
mapqt
(function).
match-substr
(function).
mkstr
(function).
nilpad
(function).
nth*
(function).
psymb
(function).
push*
(macro).
reread
(function).
split-string
(function).
split-substr
(function).
strcat
(function).
strip-symbols
(function).
symb
(function).
undup
(function).
with-gensyms
(macro).
with-struct
(macro).
veq/types.lisp
generic-utils.lisp
(file).
veq
(system).
arrtype
(function).
df
(function).
df
(type).
df*
(macro).
dfl
(function).
dvec
(type).
ff
(function).
ff
(type).
ff*
(macro).
ffl
(function).
fvec
(type).
in
(function).
in
(type).
in*
(macro).
ivec
(type).
kv
(function).
kv
(type).
kv*
(macro).
kvec
(type).
ll
(function).
ll
(type).
ll*
(macro).
lvec
(type).
pn
(function).
pn
(type).
pn*
(macro).
pos-df
(type).
pos-ff
(type).
pvec
(type).
svec
(type).
sy
(function).
sy
(type).
sy*
(macro).
type-default
(function).
type-from-short
(function).
unpack-vvsym
(function).
vvsym
(function).
veq/utils.lisp
types.lisp
(file).
veq
(system).
define-constants
(macro).
veq/docs.lisp
utils.lisp
(file).
veq
(system).
context?
(macro).
ext-symbols?
(macro).
*docstring-map*
(special variable).
-md-sanitize
(function).
desc
(function).
docstrings
(function).
map-docstring
(function).
pckgs
(macro).
select-docs
(function).
veq/vset.lisp
utils.lisp
(file).
veq
(system).
make-$defsetf
(macro).
veq/lets.lisp
veq-ops.lisp
(file).
veq
(system).
-vlet
(function).
-vlet*
(function).
-vmvb
(function).
-vmvb*
(function).
define-creators
(macro).
define-rep
(macro).
define-td
(macro).
define-td~
(macro).
define-val
(macro).
define-vlet
(macro).
define-xlet-macro
(macro).
dim?
(function).
xlet-proc
(function).
veq/macros-helpers.lisp
utils.lisp
(file).
veq
(system).
replace-varg
(function).
filter-macrolets
(function).
find-all-relevant-symbols
(function).
veq/veq-ops.lisp
macros-helpers.lisp
(file).
veq
(system).
*errmsg*
(special variable).
*symbols-map*
(special variable).
-expand-!symb
(function).
-expand-and-flatten-!symbols
(function).
-placeholders
(function).
body-len
(function).
map-symbol
(function).
op
(macro).
ops
(macro).
optype
(function).
veq/ops-1.lisp
veq-ops.lisp
(file).
veq
(system).
-d^
(function).
-dclamp
(function).
-dclamp*
(function).
-dcos-sin
(function).
-ddeg->rad
(function).
-dexp
(function).
-dfrom
(function).
-di-
(function).
-di/
(function).
-did
(function).
-discale
(function).
-dlen
(function).
-dlen2
(function).
-dlerp
(function).
-dmid
(function).
-dmod
(function).
-dscale
(function).
-dsin-cos
(function).
-dsqrt
(function).
-dsquare
(function).
-f^
(function).
-fclamp
(function).
-fclamp*
(function).
-fcos-sin
(function).
-fdeg->rad
(function).
-fexp
(function).
-ffrom
(function).
-fi-
(function).
-fi/
(function).
-fid
(function).
-fiscale
(function).
-flen
(function).
-flen2
(function).
-flerp
(function).
-fmid
(function).
-fmod
(function).
-fscale
(function).
-fsin-cos
(function).
-fsqrt
(function).
-fsquare
(function).
veq/ops-2.lisp
veq-ops.lisp
(file).
veq
(system).
-d2^
(function).
-d2angle
(function).
-d2cross
(function).
-d2dot
(function).
-d2dst
(function).
-d2dst2
(function).
-d2exp
(function).
-d2flip
(function).
-d2from
(function).
-d2i-
(function).
-d2i/
(function).
-d2id
(function).
-d2iscale
(function).
-d2len
(function).
-d2len2
(function).
-d2lerp
(function).
-d2max
(function).
-d2mid
(function).
-d2min
(function).
-d2mod
(function).
-d2norm
(function).
-d2on-circ
(function).
-d2on-circ*
(function).
-d2perp
(function).
-d2perp*
(function).
-d2rot
(function).
-d2rots
(function).
-d2scale
(function).
-d2sqrt
(function).
-d2square
(function).
-f2^
(function).
-f2angle
(function).
-f2cross
(function).
-f2dot
(function).
-f2dst
(function).
-f2dst2
(function).
-f2exp
(function).
-f2flip
(function).
-f2from
(function).
-f2i-
(function).
-f2i/
(function).
-f2id
(function).
-f2iscale
(function).
-f2len
(function).
-f2len2
(function).
-f2lerp
(function).
-f2max
(function).
-f2mid
(function).
-f2min
(function).
-f2mod
(function).
-f2norm
(function).
-f2on-circ
(function).
-f2on-circ*
(function).
-f2perp
(function).
-f2perp*
(function).
-f2rot
(function).
-f2rots
(function).
-f2scale
(function).
-f2sqrt
(function).
-f2square
(function).
veq/ops-3.lisp
veq-ops.lisp
(file).
veq
(system).
-d3^
(function).
-d3cross
(function).
-d3dot
(function).
-d3dst
(function).
-d3dst2
(function).
-d3exp
(function).
-d3from
(function).
-d3i-
(function).
-d3i/
(function).
-d3id
(function).
-d3iscale
(function).
-d3len
(function).
-d3len2
(function).
-d3lerp
(function).
-d3max
(function).
-d3mid
(function).
-d3min
(function).
-d3mod
(function).
-d3norm
(function).
-d3rot
(function).
-d3rots
(function).
-d3scale
(function).
-d3sqrt
(function).
-d3square
(function).
-f3^
(function).
-f3cross
(function).
-f3dot
(function).
-f3dst
(function).
-f3dst2
(function).
-f3exp
(function).
-f3from
(function).
-f3i-
(function).
-f3i/
(function).
-f3id
(function).
-f3iscale
(function).
-f3len
(function).
-f3len2
(function).
-f3lerp
(function).
-f3max
(function).
-f3mid
(function).
-f3min
(function).
-f3mod
(function).
-f3norm
(function).
-f3rot
(function).
-f3rots
(function).
-f3scale
(function).
-f3sqrt
(function).
-f3square
(function).
veq/ops-4.lisp
veq-ops.lisp
(file).
veq
(system).
-d4^
(function).
-d4dot
(function).
-d4dst
(function).
-d4dst2
(function).
-d4exp
(function).
-d4from
(function).
-d4i-
(function).
-d4i/
(function).
-d4id
(function).
-d4iscale
(function).
-d4len
(function).
-d4len2
(function).
-d4lerp
(function).
-d4max
(function).
-d4mid
(function).
-d4min
(function).
-d4mod
(function).
-d4norm
(function).
-d4scale
(function).
-d4sqrt
(function).
-d4square
(function).
-f4^
(function).
-f4dot
(function).
-f4dst
(function).
-f4dst2
(function).
-f4exp
(function).
-f4from
(function).
-f4i-
(function).
-f4i/
(function).
-f4id
(function).
-f4iscale
(function).
-f4len
(function).
-f4len2
(function).
-f4lerp
(function).
-f4max
(function).
-f4mid
(function).
-f4min
(function).
-f4mod
(function).
-f4norm
(function).
-f4scale
(function).
-f4sqrt
(function).
-f4square
(function).
veq/macrolets.lisp
macros-helpers.lisp
(file).
veq-ops.lisp
(file).
ops-1.lisp
(file).
ops-2.lisp
(file).
ops-3.lisp
(file).
ops-4.lisp
(file).
veq
(system).
define-def*
(macro).
define-fvdef
(macro).
define-fvdef*
(macro).
define-fvprogn
(macro).
define-vdef
(macro).
define-vdef*
(macro).
define-vprogn
(macro).
get-docs
(function).
make-wrap-docs
(function).
veq/ops-vv-helpers.lisp
macrolets.lisp
(file).
veq
(system).
$row
(function).
*vv-!@*
(special variable).
*vv-%@*
(special variable).
*vv-.@*
(special variable).
*vv-?@*
(special variable).
*vv-_@*
(special variable).
*vv-arr*
(special variable).
*vv-bang*
(special variable).
*vv-dot*
(special variable).
*vv-f@*
(special variable).
*vv-m@*
(special variable).
*vv-r@*
(special variable).
*vv-special*
(special variable).
*vv-x@*
(special variable).
?@-index-type
(function).
?@-loop-type
(function).
car-match-modifier
(function).
fx-strip
(function).
gk
(function).
gk+
(function).
gk0
(function).
lconf
(function).
niloutconf
(function).
nvrs
(function).
rconf
(function).
tailconf
(function).
vec-select-itr
(function).
vvconf
(function).
vverr
(function).
veq/ops-vv.lisp
ops-vv-helpers.lisp
(file).
veq
(system).
vv
(macro).
define-vv-macro
(macro).
fx@conf
(function).
proc!@$fx
(function).
proc!@$fx$
(function).
proc!@$fx.
(function).
proc!@.fx
(function).
proc!@fx
(function).
proc!@fx.
(function).
proc%@$fx
(function).
proc%@fx
(function).
proc.@$fx
(function).
proc.@fx
(function).
proc_@$fx
(function).
proc_@$fx.
(function).
proc_@fx
(function).
procf@fx
(function).
procm@fx
(function).
procr@$fx
(function).
procx@$fx
(function).
vv-proc
(function).
vverr-len
(macro).
veq/array-utils.lisp
utils.lisp
(file).
veq
(system).
$make
(macro).
$num
(function).
2$num
(function).
3$num
(function).
4$num
(function).
d$
(macro).
d$_
(function).
d$copy
(function).
d$make
(macro).
d$num
(function).
d$one
(function).
d$val
(function).
d$zero
(function).
d$~
(macro).
d2$
(macro).
d2$num
(function).
d2$one
(function).
d2$val
(function).
d2$zero
(function).
d3$
(macro).
d3$num
(function).
d3$one
(function).
d3$val
(function).
d3$zero
(function).
d4$
(macro).
d4$num
(function).
d4$one
(function).
d4$val
(function).
d4$zero
(function).
d_
(macro).
f$
(macro).
f$_
(function).
f$copy
(function).
f$make
(macro).
f$num
(function).
f$one
(function).
f$val
(function).
f$zero
(function).
f$~
(macro).
f2$
(macro).
f2$num
(function).
f2$one
(function).
f2$val
(function).
f2$zero
(function).
f3$
(macro).
f3$num
(function).
f3$one
(function).
f3$val
(function).
f3$zero
(function).
f4$
(macro).
f4$num
(function).
f4$one
(function).
f4$val
(function).
f4$zero
(function).
f_
(macro).
i$
(macro).
i$_
(function).
i$copy
(function).
i$make
(macro).
i$num
(function).
i$one
(function).
i$val
(function).
i$zero
(function).
i$~
(macro).
i2$
(macro).
i2$num
(function).
i2$one
(function).
i2$val
(function).
i2$zero
(function).
i3$
(macro).
i3$num
(function).
i3$one
(function).
i3$val
(function).
i3$zero
(function).
i4$
(macro).
i4$num
(function).
i4$one
(function).
i4$val
(function).
i4$zero
(function).
i_
(macro).
new-stride
(macro).
p$
(macro).
p$_
(function).
p$copy
(function).
p$make
(macro).
p$num
(function).
p$one
(function).
p$val
(function).
p$zero
(function).
p$~
(macro).
p2$
(macro).
p2$num
(function).
p2$one
(function).
p2$val
(function).
p2$zero
(function).
p3$
(macro).
p3$num
(function).
p3$one
(function).
p3$val
(function).
p3$zero
(function).
p4$
(macro).
p4$num
(function).
p4$one
(function).
p4$val
(function).
p4$zero
(function).
p_
(macro).
-$
(macro).
define-$
(macro).
define-arr-num
(macro).
define-arr-util
(macro).
define-constr
(macro).
veq/array-rows.lisp
utils.lisp
(file).
veq
(system).
-struct-fields
(function).
make-last
(macro).
struct-fields
(macro).
veq/select-dim.lisp
utils.lisp
(file).
veq
(system).
define-vsel
(macro).
veq/fxlspace.lisp
macrolets.lisp
(file).
veq
(system).
%d$lspace
(function).
%d2$lspace
(function).
%d3$lspace
(function).
%d4$lspace
(function).
%f$lspace
(function).
%f2$lspace
(function).
%f3$lspace
(function).
%f4$lspace
(function).
-fxlspace
(function).
-lspace
(macro).
-wrapnum
(function).
map-fxlspace
(macro).
veq/mat.lisp
macrolets.lisp
(file).
veq
(system).
d2meye
(function).
d2mm
(macro).
d2mmt
(macro).
d2mrot
(macro).
d2mrot*
(macro).
d2mscale
(macro).
d2mt!
(macro).
d2mtm
(macro).
d2mtmt
(macro).
d2mtrans
(macro).
d2mtv
(macro).
d2mv
(macro).
d3meye
(function).
d3mm
(macro).
d3mmt
(macro).
d3mrot
(macro).
d3mrot*
(macro).
d3mscale
(macro).
d3mt!
(macro).
d3mtm
(macro).
d3mtmt
(macro).
d3mtrans
(macro).
d3mtv
(macro).
d3mv
(macro).
d4meye
(function).
d4mm
(macro).
d4mmt
(macro).
d4mt!
(macro).
d4mtm
(macro).
d4mtmt
(macro).
d4mtv
(macro).
d4mv
(macro).
f2meye
(function).
f2mm
(macro).
f2mmt
(macro).
f2mrot
(macro).
f2mrot*
(macro).
f2mscale
(macro).
f2mt!
(macro).
f2mtm
(macro).
f2mtmt
(macro).
f2mtrans
(macro).
f2mtv
(macro).
f2mv
(macro).
f3meye
(function).
f3mm
(macro).
f3mmt
(macro).
f3mrot
(macro).
f3mrot*
(macro).
f3mscale
(macro).
f3mt!
(macro).
f3mtm
(macro).
f3mtmt
(macro).
f3mtrans
(macro).
f3mtv
(macro).
f3mv
(macro).
f4meye
(function).
f4mm
(macro).
f4mmt
(macro).
f4mt!
(macro).
f4mtm
(macro).
f4mtmt
(macro).
f4mtv
(macro).
f4mv
(macro).
%d2mrot
(function).
%d2mrot*
(function).
%d2mscale
(function).
%d2mtrans
(function).
%d3mrot
(function).
%d3mrot*
(function).
%d3mscale
(function).
%d3mtrans
(function).
%f2mrot
(function).
%f2mrot*
(function).
%f2mscale
(function).
%f2mtrans
(function).
%f3mrot
(function).
%f3mrot*
(function).
%f3mscale
(function).
%f3mtrans
(function).
make-2mrot
(macro).
make-3mrot
(macro).
make-mat-all-mm
(macro).
make-mat-eye
(macro).
make-mat-mm
(macro).
make-mat-mv
(macro).
make-mat-scale
(macro).
make-mat-trans
(macro).
make-mat-transp
(macro).
veq/mat-inv.lisp
macrolets.lisp
(file).
veq
(system).
make-2minv
(macro).
make-3minv
(macro).
make-4minv
(macro).
veq/mat-cam.lisp
macrolets.lisp
(file).
veq
(system).
fmake-ortho-proj-matrix
(macro).
fmake-proj-matrix
(macro).
fmake-view-matrix
(macro).
%fmake-ortho-proj-matrix
(function).
%fmake-proj-matrix
(function).
%fmake-view-matrix
(function).
veq/array-extra.lisp
macrolets.lisp
(file).
veq
(system).
-xmima
(macro).
veq/checks.lisp
array-extra.lisp
(file).
veq
(system).
f2in-bbox
(macro).
f2in-concave
(macro).
f2in-triangle
(macro).
f2lsegx
(macro).
f2segdst
(macro).
f2segx
(macro).
f3planex
(macro).
%f2in-bbox
(function).
%f2in-concave
(function).
%f2in-triangle
(function).
%f2lsegx
(function).
%f2segdst
(function).
%f2segx
(function).
%f3planex
(function).
-sorted-point-pairs
(function).
-sweep-line
(function).
array-fvec
(type).
veq/shapes.lisp
array-extra.lisp
(file).
veq
(system).
d$line
(macro).
d$point
(macro).
d2$line
(macro).
d2$point
(macro).
d3$line
(macro).
d3$point
(macro).
d4$line
(macro).
d4$point
(macro).
f$line
(macro).
f$point
(macro).
f2$center
(function).
f2$circ
(function).
f2$line
(macro).
f2$point
(macro).
f2$polygon
(function).
f2$rect
(macro).
f2$square*
(function).
f3$line
(macro).
f3$point
(macro).
f4$line
(macro).
f4$point
(macro).
i$line
(macro).
i$point
(macro).
i2$line
(macro).
i2$point
(macro).
i3$line
(macro).
i3$point
(macro).
i4$line
(macro).
i4$point
(macro).
p$line
(macro).
p$point
(macro).
p2$line
(macro).
p2$point
(macro).
p3$line
(macro).
p3$point
(macro).
p4$line
(macro).
p4$point
(macro).
%d$line
(function).
%d$point
(function).
%d2$line
(function).
%d2$point
(function).
%d3$line
(function).
%d3$point
(function).
%d4$line
(function).
%d4$point
(function).
%f$line
(function).
%f$point
(function).
%f2$line
(function).
%f2$point
(function).
%f2$rect
(function).
%f3$line
(function).
%f3$point
(function).
%f4$line
(function).
%f4$point
(function).
%i$line
(function).
%i$point
(function).
%i2$line
(function).
%i2$point
(function).
%i3$line
(function).
%i3$point
(function).
%i4$line
(function).
%i4$point
(function).
%p$line
(function).
%p$point
(function).
%p2$line
(function).
%p2$point
(function).
%p3$line
(function).
%p3$point
(function).
%p4$line
(function).
%p4$point
(function).
define-arr-shape
(macro).
veq/easing.lisp
macrolets.lisp
(file).
veq
(system).
dease-in-back
(function).
dease-in-circ
(function).
dease-in-cubic
(function).
dease-in-elastic
(function).
dease-in-exp
(function).
dease-in-linear
(function).
dease-in-out-back
(function).
dease-in-out-circ
(function).
dease-in-out-cubic
(function).
dease-in-out-elastic
(function).
dease-in-out-exp
(function).
dease-in-out-linear
(function).
dease-in-out-quart
(function).
dease-in-out-quint
(function).
dease-in-out-sin
(function).
dease-in-quart
(function).
dease-in-quint
(function).
dease-in-sin
(function).
dease-out-back
(function).
dease-out-circ
(function).
dease-out-cubic
(function).
dease-out-elastic
(function).
dease-out-exp
(function).
dease-out-linear
(function).
dease-out-quart
(function).
dease-out-quint
(function).
dease-out-sin
(function).
fease-in-back
(function).
fease-in-circ
(function).
fease-in-cubic
(function).
fease-in-elastic
(function).
fease-in-exp
(function).
fease-in-linear
(function).
fease-in-out-back
(function).
fease-in-out-circ
(function).
fease-in-out-cubic
(function).
fease-in-out-elastic
(function).
fease-in-out-exp
(function).
fease-in-out-linear
(function).
fease-in-out-quart
(function).
fease-in-out-quint
(function).
fease-in-out-sin
(function).
fease-in-quart
(function).
fease-in-quint
(function).
fease-in-sin
(function).
fease-out-back
(function).
fease-out-circ
(function).
fease-out-cubic
(function).
fease-out-elastic
(function).
fease-out-exp
(function).
fease-out-linear
(function).
fease-out-quart
(function).
fease-out-quint
(function).
fease-out-sin
(function).
easing-op
(macro).
Packages are listed by definition order.
veq
common-lisp
.
(setf $)
(setf expander).
$make
(macro).
$num
(function).
$nvset
(macro).
$print
(function).
$to-list
(function).
*eps*
(special variable).
(setf 2$)
(setf expander).
2$num
(function).
2$print
(function).
2$to-list
(function).
(setf 3$)
(setf expander).
3$num
(function).
3$print
(function).
3$to-list
(function).
(setf 4$)
(setf expander).
4$num
(function).
4$print
(function).
4$to-list
(function).
arrtype
(function).
context?
(macro).
d$
(macro).
d$_
(function).
d$copy
(function).
d$last
(function).
d$line
(macro).
d$lspace
(macro).
d$make
(macro).
d$mima
(function).
d$num
(function).
d$one
(function).
d$point
(macro).
d$val
(function).
d$zero
(function).
d$~
(macro).
d2$
(macro).
d2$last
(function).
d2$line
(macro).
d2$lspace
(macro).
d2$mima
(function).
d2$num
(function).
d2$one
(function).
d2$point
(macro).
d2$val
(function).
d2$zero
(function).
d2meye
(function).
d2minv
(function).
d2mm
(macro).
d2mmt
(macro).
d2mrot
(macro).
d2mrot*
(macro).
d2mscale
(macro).
d2mt!
(macro).
d2mtm
(macro).
d2mtmt
(macro).
d2mtrans
(macro).
d2mtv
(macro).
d2mv
(macro).
d3$
(macro).
d3$last
(function).
d3$line
(macro).
d3$lspace
(macro).
d3$mima
(function).
d3$num
(function).
d3$one
(function).
d3$point
(macro).
d3$val
(function).
d3$zero
(function).
d3meye
(function).
d3minv
(function).
d3mm
(macro).
d3mmt
(macro).
d3mrot
(macro).
d3mrot*
(macro).
d3mscale
(macro).
d3mt!
(macro).
d3mtm
(macro).
d3mtmt
(macro).
d3mtrans
(macro).
d3mtv
(macro).
d3mv
(macro).
d4$
(macro).
d4$last
(function).
d4$line
(macro).
d4$lspace
(macro).
d4$num
(function).
d4$one
(function).
d4$point
(macro).
d4$val
(function).
d4$zero
(function).
d4meye
(function).
d4minv
(function).
d4mm
(macro).
d4mmt
(macro).
d4mt!
(macro).
d4mtm
(macro).
d4mtmt
(macro).
d4mtv
(macro).
d4mv
(macro).
d?
(function).
d_
(macro).
dease-in-back
(function).
dease-in-circ
(function).
dease-in-cubic
(function).
dease-in-elastic
(function).
dease-in-exp
(function).
dease-in-linear
(function).
dease-in-out-back
(function).
dease-in-out-circ
(function).
dease-in-out-cubic
(function).
dease-in-out-elastic
(function).
dease-in-out-exp
(function).
dease-in-out-linear
(function).
dease-in-out-quart
(function).
dease-in-out-quint
(function).
dease-in-out-sin
(function).
dease-in-quart
(function).
dease-in-quint
(function).
dease-in-sin
(function).
dease-out-back
(function).
dease-out-circ
(function).
dease-out-cubic
(function).
dease-out-elastic
(function).
dease-out-exp
(function).
dease-out-linear
(function).
dease-out-quart
(function).
dease-out-quint
(function).
dease-out-sin
(function).
def*
(macro).
df
(function).
df
(type).
df*
(macro).
dfl
(function).
dpi
(constant).
dpi25
(constant).
dpi5
(constant).
dpii
(constant).
dsb
(macro).
dsel
(macro).
dvec
(type).
ext-symbols?
(macro).
f$
(macro).
f$_
(function).
f$copy
(function).
f$last
(function).
f$line
(macro).
f$lspace
(macro).
f$make
(macro).
f$mima
(function).
f$num
(function).
f$one
(function).
f$point
(macro).
f$val
(function).
f$zero
(function).
f$~
(macro).
f2$
(macro).
f2$center
(function).
f2$circ
(function).
f2$last
(function).
f2$line
(macro).
f2$lspace
(macro).
f2$mima
(function).
f2$num
(function).
f2$one
(function).
f2$point
(macro).
f2$polygon
(function).
f2$rect
(macro).
f2$square*
(function).
f2$val
(function).
f2$zero
(function).
f2in-bbox
(macro).
f2in-concave
(macro).
f2in-triangle
(macro).
f2lsegx
(macro).
f2meye
(function).
f2minv
(function).
f2mm
(macro).
f2mmt
(macro).
f2mrot
(macro).
f2mrot*
(macro).
f2mscale
(macro).
f2mt!
(macro).
f2mtm
(macro).
f2mtmt
(macro).
f2mtrans
(macro).
f2mtv
(macro).
f2mv
(macro).
f2segdst
(macro).
f2segx
(macro).
f3$
(macro).
f3$last
(function).
f3$line
(macro).
f3$lspace
(macro).
f3$mima
(function).
f3$num
(function).
f3$one
(function).
f3$point
(macro).
f3$val
(function).
f3$zero
(function).
f3meye
(function).
f3minv
(function).
f3mm
(macro).
f3mmt
(macro).
f3mrot
(macro).
f3mrot*
(macro).
f3mscale
(macro).
f3mt!
(macro).
f3mtm
(macro).
f3mtmt
(macro).
f3mtrans
(macro).
f3mtv
(macro).
f3mv
(macro).
f3planex
(macro).
f4$
(macro).
f4$last
(function).
f4$line
(macro).
f4$lspace
(macro).
f4$num
(function).
f4$one
(function).
f4$point
(macro).
f4$val
(function).
f4$zero
(function).
f4meye
(function).
f4minv
(function).
f4mm
(macro).
f4mmt
(macro).
f4mt!
(macro).
f4mtm
(macro).
f4mtmt
(macro).
f4mtv
(macro).
f4mv
(macro).
f_
(macro).
fease-in-back
(function).
fease-in-circ
(function).
fease-in-cubic
(function).
fease-in-elastic
(function).
fease-in-exp
(function).
fease-in-linear
(function).
fease-in-out-back
(function).
fease-in-out-circ
(function).
fease-in-out-cubic
(function).
fease-in-out-elastic
(function).
fease-in-out-exp
(function).
fease-in-out-linear
(function).
fease-in-out-quart
(function).
fease-in-out-quint
(function).
fease-in-out-sin
(function).
fease-in-quart
(function).
fease-in-quint
(function).
fease-in-sin
(function).
fease-out-back
(function).
fease-out-circ
(function).
fease-out-cubic
(function).
fease-out-elastic
(function).
fease-out-exp
(function).
fease-out-linear
(function).
fease-out-quart
(function).
fease-out-quint
(function).
fease-out-sin
(function).
ff
(function).
ff
(type).
ff*
(macro).
ffl
(function).
fmake-ortho-proj-matrix
(macro).
fmake-proj-matrix
(macro).
fmake-view-matrix
(macro).
fpi
(constant).
fpi25
(constant).
fpi5
(constant).
fpii
(constant).
from-lst
(macro).
fsel
(macro).
fvdef
(macro).
fvdef*
(macro).
fvec
(type).
fvprogn
(macro).
i$
(macro).
i$_
(function).
i$copy
(function).
i$line
(macro).
i$make
(macro).
i$num
(function).
i$one
(function).
i$point
(macro).
i$val
(function).
i$zero
(function).
i$~
(macro).
i2$
(macro).
i2$line
(macro).
i2$num
(function).
i2$one
(function).
i2$point
(macro).
i2$val
(function).
i2$zero
(function).
i3$
(macro).
i3$line
(macro).
i3$num
(function).
i3$one
(function).
i3$point
(macro).
i3$val
(function).
i3$zero
(function).
i4$
(macro).
i4$line
(macro).
i4$num
(function).
i4$one
(function).
i4$point
(macro).
i4$val
(function).
i4$zero
(function).
i?
(function).
i_
(macro).
in
(function).
in
(type).
in*
(macro).
isel
(macro).
ivec
(type).
kv
(function).
kv
(type).
kv*
(macro).
kvec
(type).
ll
(function).
ll
(type).
ll*
(macro).
lst
(macro).
lvec
(type).
mac
(macro).
mac*
(macro).
mvb
(macro).
mvc
(macro).
mvcgrp
(macro).
mvcmap
(macro).
new-stride
(macro).
p$
(macro).
p$_
(function).
p$copy
(function).
p$line
(macro).
p$make
(macro).
p$num
(function).
p$one
(function).
p$point
(macro).
p$val
(function).
p$zero
(function).
p$~
(macro).
p2$
(macro).
p2$line
(macro).
p2$num
(function).
p2$one
(function).
p2$point
(macro).
p2$val
(function).
p2$zero
(function).
p3$
(macro).
p3$line
(macro).
p3$num
(function).
p3$one
(function).
p3$point
(macro).
p3$val
(function).
p3$zero
(function).
p4$
(macro).
p4$line
(macro).
p4$num
(function).
p4$one
(function).
p4$point
(macro).
p4$val
(function).
p4$zero
(function).
p_
(macro).
pn
(function).
pn
(type).
pn*
(macro).
pos-df
(type).
pos-ff
(type).
psel
(macro).
pvec
(type).
replace-varg
(function).
svec
(type).
sy
(function).
sy
(type).
sy*
(macro).
type-default
(function).
type-from-short
(function).
unpack-vvsym
(function).
v?
(function).
vchain
(macro).
vdef
(macro).
vdef*
(macro).
vlabels
(macro).
vnrep
(macro).
vnval
(macro).
vp
(macro).
vpr
(macro).
vprogn
(macro).
vsel
(macro).
vv
(macro).
vvsym
(function).
xlet
(macro).
~
(macro).
$row
(function).
%d$line
(function).
%d$lspace
(function).
%d$point
(function).
%d2$line
(function).
%d2$lspace
(function).
%d2$point
(function).
%d2mrot
(function).
%d2mrot*
(function).
%d2mscale
(function).
%d2mtrans
(function).
%d3$line
(function).
%d3$lspace
(function).
%d3$point
(function).
%d3mrot
(function).
%d3mrot*
(function).
%d3mscale
(function).
%d3mtrans
(function).
%d4$line
(function).
%d4$lspace
(function).
%d4$point
(function).
%f$line
(function).
%f$lspace
(function).
%f$point
(function).
%f2$line
(function).
%f2$lspace
(function).
%f2$point
(function).
%f2$rect
(function).
%f2in-bbox
(function).
%f2in-concave
(function).
%f2in-triangle
(function).
%f2lsegx
(function).
%f2mrot
(function).
%f2mrot*
(function).
%f2mscale
(function).
%f2mtrans
(function).
%f2segdst
(function).
%f2segx
(function).
%f3$line
(function).
%f3$lspace
(function).
%f3$point
(function).
%f3mrot
(function).
%f3mrot*
(function).
%f3mscale
(function).
%f3mtrans
(function).
%f3planex
(function).
%f4$line
(function).
%f4$lspace
(function).
%f4$point
(function).
%fmake-ortho-proj-matrix
(function).
%fmake-proj-matrix
(function).
%fmake-view-matrix
(function).
%i$line
(function).
%i$point
(function).
%i2$line
(function).
%i2$point
(function).
%i3$line
(function).
%i3$point
(function).
%i4$line
(function).
%i4$point
(function).
%p$line
(function).
%p$point
(function).
%p2$line
(function).
%p2$point
(function).
%p3$line
(function).
%p3$point
(function).
%p4$line
(function).
%p4$point
(function).
*dev*
(special variable).
*docstring-map*
(special variable).
*errmsg*
(special variable).
*opt*
(special variable).
*symbols-map*
(special variable).
*vv-!@*
(special variable).
*vv-%@*
(special variable).
*vv-.@*
(special variable).
*vv-?@*
(special variable).
*vv-_@*
(special variable).
*vv-arr*
(special variable).
*vv-bang*
(special variable).
*vv-dot*
(special variable).
*vv-f@*
(special variable).
*vv-m@*
(special variable).
*vv-r@*
(special variable).
*vv-special*
(special variable).
*vv-x@*
(special variable).
-$
(macro).
-d2^
(function).
-d2angle
(function).
-d2cross
(function).
-d2dot
(function).
-d2dst
(function).
-d2dst2
(function).
-d2exp
(function).
-d2flip
(function).
-d2from
(function).
-d2i-
(function).
-d2i/
(function).
-d2id
(function).
-d2iscale
(function).
-d2len
(function).
-d2len2
(function).
-d2lerp
(function).
-d2max
(function).
-d2mid
(function).
-d2min
(function).
-d2mod
(function).
-d2norm
(function).
-d2on-circ
(function).
-d2on-circ*
(function).
-d2perp
(function).
-d2perp*
(function).
-d2rot
(function).
-d2rots
(function).
-d2scale
(function).
-d2sqrt
(function).
-d2square
(function).
-d3^
(function).
-d3cross
(function).
-d3dot
(function).
-d3dst
(function).
-d3dst2
(function).
-d3exp
(function).
-d3from
(function).
-d3i-
(function).
-d3i/
(function).
-d3id
(function).
-d3iscale
(function).
-d3len
(function).
-d3len2
(function).
-d3lerp
(function).
-d3max
(function).
-d3mid
(function).
-d3min
(function).
-d3mod
(function).
-d3norm
(function).
-d3rot
(function).
-d3rots
(function).
-d3scale
(function).
-d3sqrt
(function).
-d3square
(function).
-d4^
(function).
-d4dot
(function).
-d4dst
(function).
-d4dst2
(function).
-d4exp
(function).
-d4from
(function).
-d4i-
(function).
-d4i/
(function).
-d4id
(function).
-d4iscale
(function).
-d4len
(function).
-d4len2
(function).
-d4lerp
(function).
-d4max
(function).
-d4mid
(function).
-d4min
(function).
-d4mod
(function).
-d4norm
(function).
-d4scale
(function).
-d4sqrt
(function).
-d4square
(function).
-d^
(function).
-dclamp
(function).
-dclamp*
(function).
-dcos-sin
(function).
-ddeg->rad
(function).
-dexp
(function).
-dfrom
(function).
-di-
(function).
-di/
(function).
-did
(function).
-discale
(function).
-dlen
(function).
-dlen2
(function).
-dlerp
(function).
-dmid
(function).
-dmod
(function).
-dscale
(function).
-dsin-cos
(function).
-dsqrt
(function).
-dsquare
(function).
-expand-!symb
(function).
-expand-and-flatten-!symbols
(function).
-f2^
(function).
-f2angle
(function).
-f2cross
(function).
-f2dot
(function).
-f2dst
(function).
-f2dst2
(function).
-f2exp
(function).
-f2flip
(function).
-f2from
(function).
-f2i-
(function).
-f2i/
(function).
-f2id
(function).
-f2iscale
(function).
-f2len
(function).
-f2len2
(function).
-f2lerp
(function).
-f2max
(function).
-f2mid
(function).
-f2min
(function).
-f2mod
(function).
-f2norm
(function).
-f2on-circ
(function).
-f2on-circ*
(function).
-f2perp
(function).
-f2perp*
(function).
-f2rot
(function).
-f2rots
(function).
-f2scale
(function).
-f2sqrt
(function).
-f2square
(function).
-f3^
(function).
-f3cross
(function).
-f3dot
(function).
-f3dst
(function).
-f3dst2
(function).
-f3exp
(function).
-f3from
(function).
-f3i-
(function).
-f3i/
(function).
-f3id
(function).
-f3iscale
(function).
-f3len
(function).
-f3len2
(function).
-f3lerp
(function).
-f3max
(function).
-f3mid
(function).
-f3min
(function).
-f3mod
(function).
-f3norm
(function).
-f3rot
(function).
-f3rots
(function).
-f3scale
(function).
-f3sqrt
(function).
-f3square
(function).
-f4^
(function).
-f4dot
(function).
-f4dst
(function).
-f4dst2
(function).
-f4exp
(function).
-f4from
(function).
-f4i-
(function).
-f4i/
(function).
-f4id
(function).
-f4iscale
(function).
-f4len
(function).
-f4len2
(function).
-f4lerp
(function).
-f4max
(function).
-f4mid
(function).
-f4min
(function).
-f4mod
(function).
-f4norm
(function).
-f4scale
(function).
-f4sqrt
(function).
-f4square
(function).
-f^
(function).
-fclamp
(function).
-fclamp*
(function).
-fcos-sin
(function).
-fdeg->rad
(function).
-fexp
(function).
-ffrom
(function).
-fi-
(function).
-fi/
(function).
-fid
(function).
-fiscale
(function).
-flen
(function).
-flen2
(function).
-flerp
(function).
-fmid
(function).
-fmod
(function).
-fscale
(function).
-fsin-cos
(function).
-fsqrt
(function).
-fsquare
(function).
-fxlspace
(function).
-gensyms
(function).
-lspace
(macro).
-md-sanitize
(function).
-placeholders
(function).
-sorted-point-pairs
(function).
-struct-fields
(function).
-sweep-line
(function).
-vlet
(function).
-vlet*
(function).
-vmvb
(function).
-vmvb*
(function).
-wrapnum
(function).
-xmima
(macro).
?@-index-type
(function).
?@-loop-type
(function).
abbrev
(macro).
aif
(macro).
array-fvec
(type).
at-most
(function).
awf
(macro).
awg
(macro).
body-len
(function).
car-match-modifier
(function).
define-$
(macro).
define-arr-num
(macro).
define-arr-shape
(macro).
define-arr-util
(macro).
define-constants
(macro).
define-constr
(macro).
define-creators
(macro).
define-def*
(macro).
define-fvdef
(macro).
define-fvdef*
(macro).
define-fvprogn
(macro).
define-rep
(macro).
define-td
(macro).
define-td~
(macro).
define-val
(macro).
define-vdef
(macro).
define-vdef*
(macro).
define-vlet
(macro).
define-vprogn
(macro).
define-vsel
(macro).
define-vv-macro
(macro).
define-xlet-macro
(macro).
desc
(function).
dim?
(function).
docstrings
(function).
dotted-listp
(function).
dupes
(function).
easing-op
(macro).
edge-fx
(function).
edge-str
(function).
filter-macrolets
(function).
find-all-relevant-symbols
(function).
flatten
(function).
fx-split-str
(function).
fx-strip
(function).
fx@conf
(function).
get-docs
(function).
gk
(function).
gk+
(function).
gk0
(function).
group
(function).
init-config
(macro).
last*
(function).
lconf
(function).
lpos
(function).
lst>n
(function).
make-$defsetf
(macro).
make-2minv
(macro).
make-2mrot
(macro).
make-3minv
(macro).
make-3mrot
(macro).
make-4minv
(macro).
make-last
(macro).
make-mat-all-mm
(macro).
make-mat-eye
(macro).
make-mat-mm
(macro).
make-mat-mv
(macro).
make-mat-scale
(macro).
make-mat-trans
(macro).
make-mat-transp
(macro).
make-wrap-docs
(function).
map-docstring
(function).
map-fxlspace
(macro).
map-symbol
(function).
mapqt
(function).
match-substr
(function).
mkstr
(function).
niloutconf
(function).
nilpad
(function).
nth*
(function).
nvrs
(function).
op
(macro).
ops
(macro).
optype
(function).
pckgs
(macro).
proc!@$fx
(function).
proc!@$fx$
(function).
proc!@$fx.
(function).
proc!@.fx
(function).
proc!@fx
(function).
proc!@fx.
(function).
proc%@$fx
(function).
proc%@fx
(function).
proc.@$fx
(function).
proc.@fx
(function).
proc_@$fx
(function).
proc_@$fx.
(function).
proc_@fx
(function).
procf@fx
(function).
procm@fx
(function).
procr@$fx
(function).
procx@$fx
(function).
psymb
(function).
push*
(macro).
rconf
(function).
reread
(function).
select-docs
(function).
split-string
(function).
split-substr
(function).
strcat
(function).
strip-symbols
(function).
struct-fields
(macro).
symb
(function).
tailconf
(function).
undup
(function).
vec-select-itr
(function).
vgetenv
(function).
vv-proc
(function).
vvconf
(function).
vverr
(function).
vverr-len
(macro).
with-gensyms
(macro).
with-struct
(macro).
xlet-proc
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
create vector array with size (n dim), and initial value v.
veq
.
set n indices in a, from a[i] with n values from body.
list all macrolet symbols (ie. ops available inside vprog, fvprogn, vdef, fvdef defined contexts/functions) and corresponding macro body in veq context.
returns indices [default: 0] from 1d vector array (DVEC) as values.
ex: (D$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %D$LINE
ARGS: ((VA 2 X))
DOCSTRING: init DVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %D$LSPACE
ARGS: (N (VARG 1 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
create DVEC vector array with size n * dim, and initial value v.
veq
.
WRAPS: %D$POINT
ARGS: ((VA 1 X))
DOCSTRING: init DVEC array with 1 elements.
defined via veq:FVDEF*
veq
.
create DVEC vector array from n values in body.
veq
.
returns indices [default: 0] from 2d vector array (DVEC) as values.
ex: (D2$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %D2$LINE
ARGS: ((VA 4 X))
DOCSTRING: init DVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %D2$LSPACE
ARGS: (N (VARG 2 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %D2$POINT
ARGS: ((VA 2 X))
DOCSTRING: init DVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
multiply mat * (transpose mat) of type: DVEC
WRAPS: %D2MROT
ARGS: (A)
DOCSTRING: make 2d rotation matrix for rotating a rads
defined via veq:DEF*
WRAPS: %D2MROT*
ARGS: (A)
DOCSTRING: make 2d rotation matrix for rotating a rads
defined via veq:DEF*
WRAPS: %D2MSCALE
ARGS: ((VARG 2 X))
DOCSTRING: make 2d matrix for scaling by x
defined via veq:FVDEF*
multiply (transpose mat) * mat of type: DVEC
multiply (transpose mat) * (transpose mat) of type: DVEC
WRAPS: %D2MTRANS
ARGS: ((VARG 2 X))
DOCSTRING: make 2d transpose matrix for moving by x
defined via veq:FVDEF*
transpose(mat) * v. for 2d matrix and vector.
returns indices [default: 0] from 3d vector array (DVEC) as values.
ex: (D3$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %D3$LINE
ARGS: ((VA 6 X))
DOCSTRING: init DVEC array with 6 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %D3$LSPACE
ARGS: (N (VARG 3 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %D3$POINT
ARGS: ((VA 3 X))
DOCSTRING: init DVEC array with 3 elements.
defined via veq:FVDEF*
veq
.
multiply mat * (transpose mat) of type: DVEC
WRAPS: %D3MROT
ARGS: (A X Y Z)
DOCSTRING: make 3d rotation matrix for rotating a rad around unit vector (x y z)
defined via veq:DEF*
WRAPS: %D3MROT*
ARGS: (A X Y Z)
DOCSTRING: make 3d rotation matrix for rotating a rad around unit vector (x y z)
defined via veq:DEF*
WRAPS: %D3MSCALE
ARGS: ((VARG 3 X))
DOCSTRING: make 3d matrix for scaling by x
defined via veq:FVDEF*
multiply (transpose mat) * mat of type: DVEC
multiply (transpose mat) * (transpose mat) of type: DVEC
WRAPS: %D3MTRANS
ARGS: ((VARG 3 X))
DOCSTRING: make 3d transpose matrix for moving by x
defined via veq:FVDEF*
transpose(mat) * v. for 3d matrix and vector.
returns indices [default: 0] from 4d vector array (DVEC) as values.
ex: (D4$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %D4$LINE
ARGS: ((VA 8 X))
DOCSTRING: init DVEC array with 8 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %D4$LSPACE
ARGS: (N (VARG 4 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %D4$POINT
ARGS: ((VA 4 X))
DOCSTRING: init DVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
multiply mat * (transpose mat) of type: DVEC
multiply (transpose mat) * mat of type: DVEC
multiply (transpose mat) * (transpose mat) of type: DVEC
transpose(mat) * v. for 4d matrix and vector.
defines a function named: %mname
and a wrapper macro named: mname
the wrapper macro ensures every call to this function is done as (mvc #’%mname ...).
veq
.
return values from body in order of dims.
use indices or :x :y :z :w
ex: (DSEL (:w :zx 0) (values a b c d)) returns: (values d c a a).
veq
.
list all external symbols in veq. use :verbose to inlcude docstring. use :pretty to print verbose output to stdout in a readable form.
returns indices [default: 0] from 1d vector array (FVEC) as values.
ex: (F$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %F$LINE
ARGS: ((VA 2 X))
DOCSTRING: init FVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %F$LSPACE
ARGS: (N (VARG 1 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
create FVEC vector array with size n * dim, and initial value v.
veq
.
WRAPS: %F$POINT
ARGS: ((VA 1 X))
DOCSTRING: init FVEC array with 1 elements.
defined via veq:FVDEF*
veq
.
create FVEC vector array from n values in body.
veq
.
returns indices [default: 0] from 2d vector array (FVEC) as values.
ex: (F2$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %F2$LINE
ARGS: ((VA 4 X))
DOCSTRING: init FVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %F2$LSPACE
ARGS: (N (VARG 2 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %F2$POINT
ARGS: ((VA 2 X))
DOCSTRING: init FVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %F2$RECT ARGS: (W H) DOCSTRING: [none] defined via veq:FVDEF*
veq
.
WRAPS: %F2IN-BBOX
ARGS: ((VARG 2 TOP-LEFT BOTTOM-RIGHT PT))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %F2IN-CONCAVE ARGS: (SHAPE (VARG 2 PT)) DOCSTRING: [none] defined via veq:FVDEF*
veq
.
WRAPS: %F2IN-TRIANGLE ARGS: ((VARG 2 A B C P)) DOCSTRING: [none] defined via veq:FVDEF*
veq
.
WRAPS: %F2LSEGX
ARGS: (LINES*)
DOCSTRING: lines = #( #(ax ay bx by) ... )
not entirely slow line-line intersection for all lines. this is faster than
comparing all lines when lines are short relative to the area that the lines
cover. it can be improved further by using binary search tree to store
current state.
defined via veq:FVDEF*
veq
.
multiply mat * (transpose mat) of type: FVEC
WRAPS: %F2MROT
ARGS: (A)
DOCSTRING: make 2d rotation matrix for rotating a rads
defined via veq:DEF*
WRAPS: %F2MROT*
ARGS: (A)
DOCSTRING: make 2d rotation matrix for rotating a rads
defined via veq:DEF*
WRAPS: %F2MSCALE
ARGS: ((VARG 2 X))
DOCSTRING: make 2d matrix for scaling by x
defined via veq:FVDEF*
multiply (transpose mat) * mat of type: FVEC
multiply (transpose mat) * (transpose mat) of type: FVEC
WRAPS: %F2MTRANS
ARGS: ((VARG 2 X))
DOCSTRING: make 2d transpose matrix for moving by x
defined via veq:FVDEF*
transpose(mat) * v. for 2d matrix and vector.
WRAPS: %F2SEGDST
ARGS: ((VARG 2 VA VB V))
DOCSTRING: find distance between line, (va vb), and v.
returns (values distance s) where is is the interpolation value that will
yield the closest point on line.
defined via veq:FVDEF*
veq
.
WRAPS: %F2SEGX
ARGS: ((VARG 2 A1 A2 B1 B2))
DOCSTRING: find intersection between lines (a1 a2), (b1 b2).
returns isect? p q where p and q is the distance along each line to the
intersection point
defined via veq:FVDEF*
veq
.
returns indices [default: 0] from 3d vector array (FVEC) as values.
ex: (F3$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %F3$LINE
ARGS: ((VA 6 X))
DOCSTRING: init FVEC array with 6 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %F3$LSPACE
ARGS: (N (VARG 3 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %F3$POINT
ARGS: ((VA 3 X))
DOCSTRING: init FVEC array with 3 elements.
defined via veq:FVDEF*
veq
.
multiply mat * (transpose mat) of type: FVEC
WRAPS: %F3MROT
ARGS: (A X Y Z)
DOCSTRING: make 3d rotation matrix for rotating a rad around unit vector (x y z)
defined via veq:DEF*
WRAPS: %F3MROT*
ARGS: (A X Y Z)
DOCSTRING: make 3d rotation matrix for rotating a rad around unit vector (x y z)
defined via veq:DEF*
WRAPS: %F3MSCALE
ARGS: ((VARG 3 X))
DOCSTRING: make 3d matrix for scaling by x
defined via veq:FVDEF*
multiply (transpose mat) * mat of type: FVEC
multiply (transpose mat) * (transpose mat) of type: FVEC
WRAPS: %F3MTRANS
ARGS: ((VARG 3 X))
DOCSTRING: make 3d transpose matrix for moving by x
defined via veq:FVDEF*
transpose(mat) * v. for 3d matrix and vector.
WRAPS: %F3PLANEX
ARGS: ((VARG 3 N P A B))
DOCSTRING: intersection of plane (n:normal, p:point) and line (a b)
defined via veq:FVDEF*
veq
.
returns indices [default: 0] from 4d vector array (FVEC) as values.
ex: (F4$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %F4$LINE
ARGS: ((VA 8 X))
DOCSTRING: init FVEC array with 8 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %F4$LSPACE
ARGS: (N (VARG 4 A B) &KEY (END T))
DOCSTRING: [none]
defined via veq:FVDEF*
veq
.
WRAPS: %F4$POINT
ARGS: ((VA 4 X))
DOCSTRING: init FVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
multiply mat * (transpose mat) of type: FVEC
multiply (transpose mat) * mat of type: FVEC
multiply (transpose mat) * (transpose mat) of type: FVEC
transpose(mat) * v. for 4d matrix and vector.
WRAPS: %FMAKE-ORTHO-PROJ-MATRIX
ARGS: (&OPTIONAL (W 1.0) (H W) (N 0.1) (F 100.0))
DOCSTRING: make orthogonal projection matrix
defined via veq:FVDEF*
veq
.
WRAPS: %FMAKE-PROJ-MATRIX
ARGS: (&OPTIONAL (W 1.0) (H W) (N 0.1) (F 100.0))
DOCSTRING: make projection matrix for width, height, near, far
defined via veq:FVDEF*
veq
.
WRAPS: %FMAKE-VIEW-MATRIX
ARGS: ((VA 3 CAM TARGET UP))
DOCSTRING: make view matrix for cam (w/up) looking at target
defined via veq:FVDEF*
veq
.
return values from body in order of dims.
use indices or :x :y :z :w
ex: (FSEL (:w :zx 0) (values a b c d)) returns: (values d c a a).
veq
.
define function with veq context enabled. see fvprogn.
veq
.
defines a function named: %mname
and a wrapper macro named: mname
veq context is enabled. uses fvprogn.
the wrapper macro ensures every call to this function is done as (mvc #’%mname ...).
veq
.
enable veq context inside this progn.
handles propagation and resolution of uses of (varg d var) and (vref var i).
also handles vv macro compiler triggers. see vv macro.
works the same way as vprogn. but removes all macrolets that are not directly referenced by a symbol in body. this is faster, but may fail in some cases where body is complex. in the event of errors try vprogn instead.
veq
.
returns indices [default: 0] from 1d vector array (IVEC) as values.
ex: (I$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %I$LINE
ARGS: ((VA 2 X))
DOCSTRING: init IVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
create IVEC vector array with size n * dim, and initial value v.
veq
.
WRAPS: %I$POINT
ARGS: ((VA 1 X))
DOCSTRING: init IVEC array with 1 elements.
defined via veq:FVDEF*
veq
.
create IVEC vector array from n values in body.
veq
.
returns indices [default: 0] from 2d vector array (IVEC) as values.
ex: (I2$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %I2$LINE
ARGS: ((VA 4 X))
DOCSTRING: init IVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %I2$POINT
ARGS: ((VA 2 X))
DOCSTRING: init IVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
returns indices [default: 0] from 3d vector array (IVEC) as values.
ex: (I3$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %I3$LINE
ARGS: ((VA 6 X))
DOCSTRING: init IVEC array with 6 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %I3$POINT
ARGS: ((VA 3 X))
DOCSTRING: init IVEC array with 3 elements.
defined via veq:FVDEF*
veq
.
returns indices [default: 0] from 4d vector array (IVEC) as values.
ex: (I4$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %I4$LINE
ARGS: ((VA 8 X))
DOCSTRING: init IVEC array with 8 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %I4$POINT
ARGS: ((VA 4 X))
DOCSTRING: init IVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
return values from body in order of dims.
use indices or :x :y :z :w
ex: (ISEL (:w :zx 0) (values a b c d)) returns: (values d c a a).
veq
.
get all (values ... ) in body as a list.
almost like multiple-value-list, except it handles multiple arguments.
veq
.
call fx on body in groups of dim.
ex: (labels ((fx ((:va 3 x)) (fsel (:xy) x)))
(vpr (mvcgrp (3 #’fx) (values 1f0 2f0 3f0 4f0 5f0 6f0))))
returns: (values 1f0 2f0 4f0 5f0)
ex: (labels ((fx ((:va 3 x)) (fsel (:xz) x)))
(vpr (mvcgrp (3 #’fx) (values 1f0 2f0 3f0 4f0 5f0 6f0))))
returns: (values 1f0 3f0 4f0 6f0)
veq
.
returns (values (fx i) (fx j) ...) for dim values from body.
veq
.
shift arr from stride to stride.
veq
.
returns indices [default: 0] from 1d vector array (PVEC) as values.
ex: (P$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %P$LINE
ARGS: ((VA 2 X))
DOCSTRING: init PVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
create PVEC vector array with size n * dim, and initial value v.
veq
.
WRAPS: %P$POINT
ARGS: ((VA 1 X))
DOCSTRING: init PVEC array with 1 elements.
defined via veq:FVDEF*
veq
.
create PVEC vector array from n values in body.
veq
.
returns indices [default: 0] from 2d vector array (PVEC) as values.
ex: (P2$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %P2$LINE
ARGS: ((VA 4 X))
DOCSTRING: init PVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %P2$POINT
ARGS: ((VA 2 X))
DOCSTRING: init PVEC array with 2 elements.
defined via veq:FVDEF*
veq
.
returns indices [default: 0] from 3d vector array (PVEC) as values.
ex: (P3$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %P3$LINE
ARGS: ((VA 6 X))
DOCSTRING: init PVEC array with 6 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %P3$POINT
ARGS: ((VA 3 X))
DOCSTRING: init PVEC array with 3 elements.
defined via veq:FVDEF*
veq
.
returns indices [default: 0] from 4d vector array (PVEC) as values.
ex: (P4$ a i j ...) returns (values a[i] .. a[j] .. ...).
note that the number of values depends on the dimension.
veq
.
WRAPS: %P4$LINE
ARGS: ((VA 8 X))
DOCSTRING: init PVEC array with 8 elements.
defined via veq:FVDEF*
veq
.
WRAPS: %P4$POINT
ARGS: ((VA 4 X))
DOCSTRING: init PVEC array with 4 elements.
defined via veq:FVDEF*
veq
.
return values from body in order of dims.
use indices or :x :y :z :w
ex: (PSEL (:w :zx 0) (values a b c d)) returns: (values d c a a).
veq
.
chain functions, on all values.
eg: (vchain #’a #’b (values 1 2))
corresponds to: (~ #’a (~ #b (values 1 2)))
veq
.
define function with veq context enabled. see vprogn.
veq
.
defines a function named: %mname
and a wrapper macro named: mname
veq context is enabled. uses vprogn.
the wrapper macro ensures every call to this function is done as (mvc #’%mname ...).
veq
.
wraps labels so that it can be used with implicit mvc. that is, all labels
are defined as if with def*.
use %labelname to call the function directly.
returns (values v ...), where v is (progn ,@rest) evaluated once.
veq
.
print input code with resulting values, return values.
veq
.
enable veq context inside this progn.
handles propagation and resolution of uses of (varg d var) and (vref var i).
also handles vv macro compiler triggers. see vv macro.
fvprogn is faster, but has some limitations.
veq
.
return values from body in order of dims.
use indices or :x :y :z :w
ex: (VSEL (df :w :zx 0) (values a b c d)) returns: (values d c a a).
veq
.
the vv macro implements a DSL for manipulating packs of values and/or row
vectors. it is called as a part of vprogn, fvprogn, vdef and fvdef. but can
also be used explicitly via the (vv ...) macro or (veq::vv-proc ...) function.
you can read about the motivation behind vv at:
https://inconvergent.net/2023/a-vector-dsl/
the DSL uses triggers to broadcast a function (symbol name) or code across
packs of 1-9 values and/or rows of 1-9 item vectors.
; lets start with a simple example
(i2!@+ 1 2 3 4) ; -> (values (+ 1 3) (+ 2 4))
; where:
; - i is the type (fixnum)
; - 2 is the dimension / size of the value packs
; - !@ is the trigger for this particular mode; and
; - + is the function name
; i2!@+ requires 4 values, but it is agnostic to the grouping of the values in
; the input
(i2!@+ (values 1 2) 3 4) ; -> (values (+ 1 3) (+ 2 4))
(i2!@+ 1 (values 1 2 3 4)) ; -> (values (+ 1 3) (+ 2 4))
(i2!@+ 1 (values 2 3) (+ 7 8)) ; -> (values (+ 1 3) (+ 2 (+ 7 8)))
; here are other possible configurations for !@
; same behaviouir as above
(2!@* 1 2 3 4) ; -> (values (* 1 3) (* 2 4))
; project last value
(2!@*. 1 2 3) ; -> (values (* 1 3) (* 2 3))
; project first value
(2!@.* 1 2 3) ; -> (values (* 1 2) (* 1 3))
; project two values on r side
(2!@*.. 1 2 3 4) ; -> (values (* 1 3 4) (* 2 3 4))
; several modes also support arrays ($)
; array on l side
(2!@$* #(1 2 3 4) 5 6) ; -> #((* 1 5) (* 2 6)
; (* 3 5) (* 4 6))
(2!@$*. #(1 2 3 4) 5) ; -> #((* 1 5) (* 2 5)
; (* 3 5) (* 4 5))
; array on both sides
(2!@$+$! #(1 2 3 4) #(10 20 30 40)) ; -> #(11 22 33 44)
; array on r side only is currently not supported
; expressions can be nested, so a 2d dot product might look like this
(2_@+ (2!@* (values 1 2)
(values 3 4))) ; -> (+ (* 1 3) (* 2 4))
; here we introduce another mode (_@) that will call the function on the input
; values. a simpler example
(2_@+ (values 2 3)) ; -> 5
; so, if you have two arrays, you can do row-wise dot products in a similar way
(21_@$+ (2!@$*$ #(2 2 3 4)
#(4 3 2 1))) ; -> #(14 10)
; notice that 21_@$+ has two dimension digits. the second digit is the expected
; output dimension. as such this command will reduce the number of columns from
; 2 to 1. by default the output dim is the same as the input dim. output
; dimension is supported on all array ($) modes.
; here are some slightly more involved examples using the _@ mode
(labels ((swap (x y) (values y x))
(do-thing (x y z) (values (+ y z) (+ x z))))
; swap columns on each row
(2_@$swap #(2 1 4 3)) ; -> #(1 2 3 4)
; swap columns on each row
(2_@$swap (?@ #(2 1 4 3))) ; -> #(1 2 3 4)
; swap columns in place (!) on all rows except 0
(2_@$swap! (?@ #(2 1 4 3 6 5) 1)) ; -> #(2 1 3 4 5 6)
; project 5 and call do-thing on each row
(2_@$do-thing. #(1 2 3 4) 5)) ; -> #((+ 2 5) (+ 1 5)
; (+ 4 5) (+ 3 5))
; as opposed to calling a function on rows or values, you can use .@ to call a function
on all elements
(2.@abs -1 -2) ; -> (values (abs -1) (abs -2))
; or with arrays
(2.@$abs #(-1 -2 -3 -4)) ; -> #((abs -1) (abs -2)
; (abs -3) (abs -4))
; slicing will still work as in the previous examples
(2.@$abs! (?@ #(-1 -2 -3 -4) 1)) ; -> #(-1 -2 (abs -3) (abs -4))
(m@list 1 (values 2 3) 4) ; -> ’(1 2 3 4)
; prints array in two rows with row number:
(2x@$fx #(1 2 3 4) ((i x y) (print (list i :xy x y)))) ; -> nil
; > (0 :xy 1 2)
; > (1 :xy 3 4)
; fcos-sin returns points on a circle at 10 angles,
; then scales the circle by 8f0
; f12 means that fcos-sin takes 1 value and returns 2 values (per row)
(f2!@$*. (veq::f12_@$fcos-sin ; must use :: if outside veq
(veq:f$lspace 10 0f0 veq:fpii))
8f0) ; -> #(8.0 0.0 ...)
; sum all rows:
(2r@$+ #(0 1 2 3 4 5 6 7 8 9)) ; -> (values (+ 0 2 4 6 8) (+ 1 3 5 7 9))
; sum all rows from row 2:
(2r@$+ (?@ #(0 1 2 3 4 5 6 7 8 9) 2)) ; -> (values (+ 4 6 8) (+ 5 7 9))
; sum rows 0 1 3 from vector with indices:
(2r@$+ (v?@ #(0 1 2 3 4 5 6 7 8 9) #(0 1 3))) ; -> (values (+ 0 2 6) (+ 1 3 7))
; or, using an index list:
(2r@$+ (l?@ #(0 1 2 3 4 5 6 7 8 9) ’(0 1 3))) ; -> (values (+ 0 2 6) (+ 1 3 7))
MODES
the current modes and corresponding triggers are as follows:
– d!@: call fx on pairs of values and/or rows of values from arrays
- d!@fx: d values, d values
- d!@fx.: d values, [number of dots] values
- d!@$fx: d array, d values
- d!@$fx$: d array, d array
- d!@$fx.: d array, [number of dots] values
– _@: call fx on n values, or rows of values from array
- d_@fx: d values
- d_@$fx: d array
- d_@$fx.: d array, [number of dots] values
– d.@: call fx on individual elements from values, rows of values from array
- d.@fx: d values
- d.@$fx: d array
the following modes have more specific behaviour:
- d%@$fx: map fx across rows of values from array. see below.
- dr@$fx: reduce rows with fx vertically. see below.
- m@fx: translates to (mvc #’fx ...)
- ?@ is a modifier used to alter the behaviour of a specific mode.
MODE MODIFIERS: ARRAY SLICING/INDEXING
modes that involve arrays ($) support slicing rows by wrapping the array in
(?@ arr from [to])
for ivec, pvec, list or vector indices, append i, p, l or v respective to the
modifier. here are some examples of behaviour. the types are described below.
(labels ((take2 ((:va 2 x)) (values x)))
; slice from index
(2_@$take2 (?@ #(1 2 3 4 5 6 7 8) 2)) ; -> #(5 6 7 8)
; slice to from index
(2_@$take2 (?@ #(1 2 3 4 5 6 7 8) 2 3)) ; -> #(5 6)
; vector index
(2_@$take2 (v?@ #(1 2 3 4 5 6 7 8) #(0 3))) ; -> #(1 2 7 8)
; list index
(2_@$take2 (l?@ #(1 2 3 4 5 6 7 8) ’(0 3))) ; -> #(1 2 7 8)
; individual modifiers can be used for l or r side
(2!@$+$ (?@ #(1 2 3 4) 1) (?@ #(10 20 30 40) 0 1)) ; -> #(13 24)
; if the operation is in-place (!) the l array will
; be changed, by the l index
(2!@$+$! (?@ #(1 2 3 4) 1) (?@ #(10 20 30 40) 0 1))) ; -> #(1 2 13 24)
TYPES
all vv vv expressions (except m@ where it does not make sense) can be explicity
typed. the supported types, wtih corresponding array type are as follows
- f: veq:ff, single-float; veq:fvec
- d: veq:df, double-float; veq:dvec
- i: veq:in, fixnum, veq:ivec
- p: veq:pn, (unsigned-byte 31); veq:pvec
- s: veq:sy, symbol; veq:svec
- k: veq:kv, keyword; veq:kvec
- l: veq:ll, list; veq:lvec
- none; vector
fvec, ivec, etc are simple-arrays with the coresponding type. ie. veq:fvec
means (simple-array veq:ff). when type is omitted, the code will be more
forgiving, but less efficeint. in which case the corresponding array type is
’vector.
INSPECT CODE
the code that is actually generated is usually a little more involved than what
these examples imply. in order to see the expanded code, the easiset is to wrap
the code in veq:mac, which displays the code after it has been expanded:
(veq:fvprogn (veq:mac (2!@$*. #(1 2 3 4) 5)))
alternatively, use:
(print (veq::vv-proc ’(2!@$*. #(1 2 3 4) 5)))
veq
.
xlet is a macro to bind typed values, and other variables:
(veq:xlet ((f2!a (f2 1f0 2f0)) ; 2d veq:ff/float
(d!b 1d0) ; 1d veq:df/double
(h :a)
(i4!c (values 1 2 3 4))) ; 4d veq:in/integer
(declare (keyword h))
(do-something a b c h))
names without ! will be treated (mostly) as in a regular let.
declare can be used to declare types.
NOTE: xlet behaves more like CL let* in that bindings are available
immediately.
get: ($ a i) yields (values ...) set: (setf ($ a i) (values ...))
get: (2$ a i) yields (values ...) set: (setf (2$ a i) (values ...))
get: (3$ a i) yields (values ...) set: (setf (3$ a i) (values ...))
get: (4$ a i) yields (values ...) set: (setf (4$ a i) (values ...))
pretty print n, or all, rows from vector array of dim.
start at row (start 0).
negative start counts backwards from the last row
use s to overrid output stream.
veq
.
return array as a list of lists of length dim.
veq
.
select array type from type hint. eg: :ff :df ’f ’i
veq
.
create DVEC vector array from body. where body is a list of lists.
ex: (D$_ (loop repeat 2 collect ‘(1f0 2f0)))
ex: (D$_ ’((1f0 2f0) (1f0 2f0))).
veq
.
find min and max for all dimensions of 1 array. ex: (D$MIMA &key n) returns (values xmin xmax ...). use n to limit to first n rows.
veq
.
find min and max for all dimensions of 2 array. ex: (D2$MIMA &key n) returns (values xmin xmax ...). use n to limit to first n rows.
veq
.
find min and max for all dimensions of 3 array. ex: (D3$MIMA &key n) returns (values xmin xmax ...). use n to limit to first n rows.
veq
.
ease in:
arg: (X &OPTIONAL (S 1.70158))
body: (* X X (- (* (+ 1.0d0 S) X) S))
veq
.
ease in:
arg: (X)
body: (- (- (SQRT (- 1.0d0 (* X X))) 1.0d0))
veq
.
ease in:
arg: (X &OPTIONAL (P 0.3) (S NIL))
body: (LET ((S (OR S (* (ASIN 1.0d0) (/ P DPII)))))
(-
(* (EXPT 2.0d0 (* 10.0d0 (- X 1)))
(SIN (/ (* (- (- X 1.0d0) S) DPII) P)))))
veq
.
ease in:
arg: (X)
body: (EXPT 2.0d0 (* 10.0d0 (- X 1)))
veq
.
ease in-out:
arg: (X &OPTIONAL (S 1.70158))
body: (* X X (- (* (+ 1.0d0 S) X) S))
veq
.
ease in-out:
arg: (X)
body: (- (- (SQRT (- 1.0d0 (* X X))) 1.0d0))
veq
.
ease in-out:
arg: (X &OPTIONAL (P 0.3) (S NIL))
body: (LET ((S (OR S (* (ASIN 1.0d0) (/ P DPII)))))
(-
(* (EXPT 2.0d0 (* 10.0d0 (- X 1)))
(SIN (/ (* (- (- X 1.0d0) S) DPII) P)))))
veq
.
ease in-out:
arg: (X)
body: (EXPT 2.0d0 (* 10.0d0 (- X 1)))
veq
.
ease in-out:
arg: (X)
body: (- 1.0d0 (COS (* X DPI5)))
veq
.
ease out:
arg: (X &OPTIONAL (S 1.70158))
body: (* X X (- (* (+ 1.0d0 S) X) S))
veq
.
ease out:
arg: (X)
body: (- (- (SQRT (- 1.0d0 (* X X))) 1.0d0))
veq
.
ease out:
arg: (X &OPTIONAL (P 0.3) (S NIL))
body: (LET ((S (OR S (* (ASIN 1.0d0) (/ P DPII)))))
(-
(* (EXPT 2.0d0 (* 10.0d0 (- X 1)))
(SIN (/ (* (- (- X 1.0d0) S) DPII) P)))))
veq
.
ease out:
arg: (X)
body: (EXPT 2.0d0 (* 10.0d0 (- X 1)))
veq
.
ease out:
arg: (X)
body: (- 1.0d0 (COS (* X DPI5)))
veq
.
create FVEC vector array from body. where body is a list of lists.
ex: (F$_ (loop repeat 2 collect ‘(1f0 2f0)))
ex: (F$_ ’((1f0 2f0) (1f0 2f0))).
veq
.
find min and max for all dimensions of 1 array. ex: (F$MIMA &key n) returns (values xmin xmax ...). use n to limit to first n rows.
veq
.
center 2d array according to n points in array. n is optional.
veq
.
return circle of size rad. (rs 0.5) is vertex density.
veq
.
find min and max for all dimensions of 2 array. ex: (F2$MIMA &key n) returns (values xmin xmax ...). use n to limit to first n rows.
veq
.
return n-polygon of size rad. rotate by (rot 0)
veq
.
find min and max for all dimensions of 3 array. ex: (F3$MIMA &key n) returns (values xmin xmax ...). use n to limit to first n rows.
veq
.
ease in:
arg: (X &OPTIONAL (S 1.70158))
body: (* X X (- (* (+ 1.0 S) X) S))
veq
.
ease in:
arg: (X)
body: (- (- (SQRT (- 1.0 (* X X))) 1.0))
veq
.
ease in:
arg: (X &OPTIONAL (P 0.3) (S NIL))
body: (LET ((S (OR S (* (ASIN 1.0) (/ P FPII)))))
(-
(* (EXPT 2.0 (* 10.0 (- X 1.0)))
(SIN (/ (* (- (- X 1.0) S) FPII) P)))))
veq
.
ease in:
arg: (X)
body: (EXPT 2.0 (* 10.0 (- X 1.0)))
veq
.
ease in-out:
arg: (X &OPTIONAL (S 1.70158))
body: (* X X (- (* (+ 1.0 S) X) S))
veq
.
ease in-out:
arg: (X)
body: (- (- (SQRT (- 1.0 (* X X))) 1.0))
veq
.
ease in-out:
arg: (X &OPTIONAL (P 0.3) (S NIL))
body: (LET ((S (OR S (* (ASIN 1.0) (/ P FPII)))))
(-
(* (EXPT 2.0 (* 10.0 (- X 1.0)))
(SIN (/ (* (- (- X 1.0) S) FPII) P)))))
veq
.
ease in-out:
arg: (X)
body: (EXPT 2.0 (* 10.0 (- X 1.0)))
veq
.
ease in-out:
arg: (X)
body: (- 1.0 (COS (* X FPI5)))
veq
.
ease out:
arg: (X &OPTIONAL (S 1.70158))
body: (* X X (- (* (+ 1.0 S) X) S))
veq
.
ease out:
arg: (X)
body: (- (- (SQRT (- 1.0 (* X X))) 1.0))
veq
.
ease out:
arg: (X &OPTIONAL (P 0.3) (S NIL))
body: (LET ((S (OR S (* (ASIN 1.0) (/ P FPII)))))
(-
(* (EXPT 2.0 (* 10.0 (- X 1.0)))
(SIN (/ (* (- (- X 1.0) S) FPII) P)))))
veq
.
ease out:
arg: (X)
body: (EXPT 2.0 (* 10.0 (- X 1.0)))
veq
.
create IVEC vector array from body. where body is a list of lists.
ex: (I$_ (loop repeat 2 collect ‘(1f0 2f0)))
ex: (I$_ ’((1f0 2f0) (1f0 2f0))).
veq
.
create PVEC vector array from body. where body is a list of lists.
ex: (P$_ (loop repeat 2 collect ‘(1f0 2f0)))
ex: (P$_ ’((1f0 2f0) (1f0 2f0))).
veq
.
replace instances of varg/:varg/:va and vref/:vref/:vr with
appropriate symbols for the dimension.
local maps vref/varg maps are propagated forwards in the list so a given
arg/ref should be available under its scope. it seems to work for all cases
i have tested. but i’m mot sure if this propagation will eventually break
somewhere.
ex:
(print (veq:replace-varg ’(mvb ((:va 2 x)) (values 1 2)
(list (:vr x 1 0)))))
; will print something like:
; (MVB (#:X/X-158 #:X/Y-159) (VALUES 1 2)
; (LIST #:X/Y-159 #:X/X-158))
veq
.
default value for array with elements of type (hint) ty. eg: 0 0f0 0d0 nil :val
veq
.
split names of type f34!var into (values :f var 3 4)
veq
.
build a symbol with correct name convention. eg: (vvsym ff 2 :lerp) yields f2lerp.
veq
.
build an op. see ops-1.lisp, ops-2.lisp, ...
veq
.
init DVEC array with 4 elements.
veq
.
make 2d transpose matrix for moving by x
init DVEC array with 6 elements.
veq
.
init DVEC array with 3 elements.
veq
.
make 3d rotation matrix for rotating a rad around unit vector (x y z)
make 3d rotation matrix for rotating a rad around unit vector (x y z)
make 3d matrix for scaling by x
make 3d transpose matrix for moving by x
init DVEC array with 8 elements.
veq
.
veq
.
init DVEC array with 4 elements.
veq
.
init FVEC array with 4 elements.
veq
.
veq
.
veq
.
lines = #( #(ax ay bx by) ... )
not entirely slow line-line intersection for all lines. this is faster than comparing all lines when lines are short relative to the area that the lines cover. it can be improved further by using binary search tree to store current state.
veq
.
make 2d transpose matrix for moving by x
find distance between line, (va vb), and v.
returns (values distance s) where is is the interpolation value that will
yield the closest point on line.
veq
.
find intersection between lines (a1 a2), (b1 b2).
returns isect? p q where p and q is the distance along each line to the
intersection point
veq
.
init FVEC array with 6 elements.
veq
.
make 3d rotation matrix for rotating a rad around unit vector (x y z)
make 3d rotation matrix for rotating a rad around unit vector (x y z)
make 3d matrix for scaling by x
make 3d transpose matrix for moving by x
intersection of plane (n:normal, p:point) and line (a b)
veq
.
init FVEC array with 8 elements.
veq
.
veq
.
init FVEC array with 4 elements.
veq
.
make orthogonal projection matrix
veq
.
make projection matrix for width, height, near, far
veq
.
make view matrix for cam (w/up) looking at target
veq
.
init IVEC array with 4 elements.
veq
.
init IVEC array with 6 elements.
veq
.
init IVEC array with 3 elements.
veq
.
init IVEC array with 8 elements.
veq
.
init IVEC array with 4 elements.
veq
.
init PVEC array with 4 elements.
veq
.
init PVEC array with 6 elements.
veq
.
init PVEC array with 3 elements.
veq
.
init PVEC array with 8 elements.
veq
.
init PVEC array with 4 elements.
veq
.
t if symbol starts with Fd! where d is a positive integer
veq
.
perform sweep line search for intersections along x
veq
.
returns (mvb ((:va dim arg)) expr body)
returns (values prefix-ind prefix opt/d b). eg: 1 x (0) arr
veq
.
count number of times fx is t across sym chars from the left (or right) returns (values c sym*), where sym* is sym with the padding characters removed
veq
.
count number of padding characters ch in s from the left (or right) returns (values c sym*), where sym* is s with the padding characters removed
veq
.
remove macrolet tuples that are not present in body. this speeds up compilation time considerably, and makes it easier to read output code.
note: it can cause errors in in cases with nested macros.
veq
.
register docs info associated with symbol (car rest). internal.
returns index where substring matches s from left to right. otherwise nil.
veq
.
Jump to: | $
%
(
-
2
3
4
?
~
A B C D E F G I K L M N O P R S T U V W X |
---|
Jump to: | $
%
(
-
2
3
4
?
~
A B C D E F G I K L M N O P R S T U V W X |
---|
Jump to: | *
C D F S |
---|
Jump to: | *
C D F S |
---|
Jump to: | A C D E F G I K L M O P S T U V |
---|
Jump to: | A C D E F G I K L M O P S T U V |
---|