Mathematical vector operations.
[]
VectorProto
defines most of the functions.
Vectors implements also:
Sequable
Sequencial
IFn
Counted
Reversible
Indexed
ILookup
equals
and toString
from Object
IPersistentVector
Associative
clojure.core.matrix.protocols
That means that vectors can be destructured, treated as sequence or called as a function. See vec2
for examples.
Mathematical vector operations. ### Types * Fixed size (custom types): * Number - 1d vector * Vec2 - 2d vector, creator [[vec2]] * Vec3 - 3d vector, creator [[vec3]] * Vec4 - 4d vector, creator [[vec4]] * ArrayVec - fixed size double array wrapper, n-dimensional, creator [[array-vec]] * Fixed size * doubles - double array itself * Variable size: * Clojure's IPersistentVector, creator `[]` * Clojure's ISeq [[VectorProto]] defines most of the functions. Vectors implements also: * `Sequable` * `Sequencial` * `IFn` * `Counted` * `Reversible` * `Indexed` * `ILookup` * `equals` and `toString` from `Object` * `IPersistentVector` * `Associative` * `clojure.core.matrix.protocols` That means that vectors can be destructured, treated as sequence or called as a function. See [[vec2]] for examples.
(acos vector)
Apply acos to vector elements.
Apply acos to vector elements.
(acosh vector)
Apply acosh to vector elements.
Apply acosh to vector elements.
(acot vector)
Apply acot to vector elements.
Apply acot to vector elements.
(acoth vector)
Apply acoth to vector elements.
Apply acoth to vector elements.
(acsc vector)
Apply acsc to vector elements.
Apply acsc to vector elements.
(aligned? v1 v2)
Are vectors aligned (have the same direction)?
Are vectors aligned (have the same direction)?
(angle-between v1 v2)
Angle between two vectors
See also relative-angle-between
.
Angle between two vectors See also [[relative-angle-between]].
(array-vec xs)
Make ArrayVec type based on provided sequence xs
.
Make ArrayVec type based on provided sequence `xs`.
(asec vector)
Apply asec to vector elements.
Apply asec to vector elements.
(asech vector)
Apply asech to vector elements.
Apply asech to vector elements.
(asin vector)
Apply asin to vector elements.
Apply asin to vector elements.
(asinh vector)
Apply asinh to vector elements.
Apply asinh to vector elements.
(atan vector)
Apply atan to vector elements.
Apply atan to vector elements.
(atanh vector)
Apply atanh to vector elements.
Apply atanh to vector elements.
(average-vectors vs)
(average-vectors init vs)
Average / centroid of vectors. Input: initial vector (optional), list of vectors
Average / centroid of vectors. Input: initial vector (optional), list of vectors
(cbrt vector)
Apply cbrt to vector elements.
Apply cbrt to vector elements.
(ceil vector)
Apply ceil to vector elements.
Apply ceil to vector elements.
(cosh vector)
Apply cosh to vector elements.
Apply cosh to vector elements.
(coth vector)
Apply coth to vector elements.
Apply coth to vector elements.
(csch vector)
Apply csch to vector elements.
Apply csch to vector elements.
(degrees vector)
Apply degrees to vector elements.
Apply degrees to vector elements.
(dist v1 v2)
Euclidean distance between vectors
Euclidean distance between vectors
(dist-abs v1 v2)
Manhattan distance between vectors
Manhattan distance between vectors
(dist-cheb v1 v2)
Chebyshev distance between 2d vectors
Chebyshev distance between 2d vectors
(dist-discrete v1 v2)
Discrete distance between 2d vectors
Discrete distance between 2d vectors
(dist-sq v1 v2)
Squared Euclidean distance between vectors
Squared Euclidean distance between vectors
(div v1)
(div v1 v)
Vector division or reciprocal.
Vector division or reciprocal.
(ediv v1 v2)
Element-wise division of two vectors.
Element-wise division of two vectors.
(expm1 vector)
Apply expm1 to vector elements.
Apply expm1 to vector elements.
(faceforward n v)
Flip normal n
to match the same direction as v
.
Flip normal `n` to match the same direction as `v`.
(floor vector)
Apply floor to vector elements.
Apply floor to vector elements.
(frac vector)
Apply frac to vector elements.
Apply frac to vector elements.
(generate-vec2 f)
(generate-vec2 f1 f2)
Generate Vec2 with fn(s)
Generate Vec2 with fn(s)
(generate-vec3 f)
(generate-vec3 f1 f2 f3)
Generate Vec3 with fn(s)
Generate Vec3 with fn(s)
(generate-vec4 f)
(generate-vec4 f1 f2 f3 f4)
Generate Vec4 with fn(s)
Generate Vec4 with fn(s)
(limit v len)
Limit length of the vector by given value
Limit length of the vector by given value
(log10 vector)
Apply log10 to vector elements.
Apply log10 to vector elements.
(log1p vector)
Apply log1p to vector elements.
Apply log1p to vector elements.
(log2 vector)
Apply log2 to vector elements.
Apply log2 to vector elements.
(make-vector dims)
(make-vector dims xs)
Returns fixed size vector for given number of dimensions.
Proper type is used.
Returns fixed size vector for given number of dimensions. Proper type is used.
(nonzero-count v)
Count non zero velues in vector
Count non zero velues in vector
(normalize v)
Normalize vector (set length = 1.0)
Normalize vector (set length = 1.0)
(radians vector)
Apply radians to vector elements.
Apply radians to vector elements.
(relative-angle-between v1 v2)
Angle between two vectors relative to each other.
See also angle-between
.
Angle between two vectors relative to each other. See also [[angle-between]].
(rint vector)
Apply rint to vector elements.
Apply rint to vector elements.
(round vector)
Apply round to vector elements.
Apply round to vector elements.
(safe-sqrt vector)
Apply safe-sqrt to vector elements.
Apply safe-sqrt to vector elements.
(sech vector)
Apply sech to vector elements.
Apply sech to vector elements.
(sfrac vector)
Apply sfrac to vector elements.
Apply sfrac to vector elements.
(sigmoid vector)
Apply sigmoid to vector elements.
Apply sigmoid to vector elements.
(signum vector)
Apply signum to vector elements.
Apply signum to vector elements.
(sinc vector)
Apply sinc to vector elements.
Apply sinc to vector elements.
(sinh vector)
Apply sinh to vector elements.
Apply sinh to vector elements.
(sqrt vector)
Apply sqrt to vector elements.
Apply sqrt to vector elements.
(tanh vector)
Apply tanh to vector elements.
Apply tanh to vector elements.
Tolerance used in [[is-near-zero?]]. Values less than this value are treated as zero.
Tolerance used in [[is-near-zero?]]. Values less than this value are treated as zero.
(trunc vector)
Apply trunc to vector elements.
Apply trunc to vector elements.
(vec4)
(vec4 v w)
(vec4 v z w)
(vec4 x y z w)
Make Vec4 vector
Make Vec4 vector
Vector operations
Vector operations
(to-vec v)
Convert to Clojure primitive vector Vec
.
Convert to Clojure primitive vector `Vec`.
(dot v1 v2)
Dot product of two vectors.
Dot product of two vectors.
(permute v idxs)
Permute vector elements with given indices.
Permute vector elements with given indices.
(add v1)
(add v1 v2)
Sum of two vectors.
Sum of two vectors.
(approx v)
(approx v d)
Round to 2 (or d
) decimal places
Round to 2 (or `d`) decimal places
(cross v1 v2)
Cross product
Cross product
(reciprocal v)
Reciprocal of elements.
Reciprocal of elements.
(sum v1)
Sum of elements
Sum of elements
(emn v1 v2)
Element-wise min from two vectors.
Element-wise min from two vectors.
(is-near-zero? v1)
Is vector almost zero? (all absolute values of elements are less than TOLERANCE
)
Is vector almost zero? (all absolute values of elements are less than `TOLERANCE`)
(heading v1)
Angle between vector and unit vector [1,0,...]
Angle between vector and unit vector `[1,0,...]`
(axis-rotate v1 angle axis)
(axis-rotate v1 angle axis pivot)
Rotate around axis, 3d only
Rotate around axis, 3d only
(magsq v1)
Length of the vector squared.
Length of the vector squared.
(to-polar v1)
To polar coordinates (2d, 3d only), first element is length, the rest angle.
To polar coordinates (2d, 3d only), first element is length, the rest angle.
(transform v1 o vx vy)
(transform v1 o vx vy vz)
Transform vector; map point to coordinate system defined by origin, vx and vy (as bases), 2d and 3d only.
Transform vector; map point to coordinate system defined by origin, vx and vy (as bases), 2d and 3d only.
(mag v1)
length of the vector.
length of the vector.
(from-polar v1)
From polar coordinates (2d, 3d only)
From polar coordinates (2d, 3d only)
(sub v1)
(sub v1 v2)
Subtraction of two vectors.
Subtraction of two vectors.
(mindim v)
Index of minimum value.
Index of minimum value.
(is-zero? v1)
Is vector zero?
Is vector zero?
(econstrain v val1 val2)
Element-wise constrain
Element-wise constrain
(base-from v)
List of perpendicular vectors (basis)
List of perpendicular vectors (basis)
(emult v1 v2)
Element-wise vector multiplication (Hadamard product).
Element-wise vector multiplication (Hadamard product).
(maxdim v)
Index of maximum value.
Index of maximum value.
(emx v1 v2)
Element-wise max from two vectors.
Element-wise max from two vectors.
(interpolate v1 v2 t)
(interpolate v1 v2 t f)
Interpolate vectors, optionally set interpolation fn
Interpolate vectors, optionally set interpolation fn
(perpendicular v1)
(perpendicular v1 v2)
Perpendicular vector (only 2d).
Perpendicular vector (only 2d).
(as-vec v)
(as-vec v xs)
Create vector from sequence as given type.
Create vector from sequence as given type.
(mn v1)
Minimum value of vector elements
Minimum value of vector elements
(abs v1)
Absolute value of vector elements
Absolute value of vector elements
(einterpolate v1 v2 v)
(einterpolate v1 v2 v f)
Interpolate vectors element-wise, optionally set interpolation fn
Interpolate vectors element-wise, optionally set interpolation fn
(mx v1)
Maximum value of vector elements
Maximum value of vector elements
(fmap v f)
Apply function to all vector values (like map but returns the same type).
Apply function to all vector values (like map but returns the same type).
(mult v1 v)
Multiply vector by number v
.
Multiply vector by number `v`.
(rotate v1 angle)
(rotate v1 anglex angley anglez)
Rotate vector
Rotate vector
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close