Liking cljdoc? Tell your friends :D

fastmath.vector

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.

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.
raw docstring

acosclj

(acos vector)

Apply acos to vector elements.

Apply acos to vector elements.
sourceraw docstring

acoshclj

(acosh vector)

Apply acosh to vector elements.

Apply acosh to vector elements.
sourceraw docstring

acotclj

(acot vector)

Apply acot to vector elements.

Apply acot to vector elements.
sourceraw docstring

acothclj

(acoth vector)

Apply acoth to vector elements.

Apply acoth to vector elements.
sourceraw docstring

acscclj

(acsc vector)

Apply acsc to vector elements.

Apply acsc to vector elements.
sourceraw docstring

aligned?clj

(aligned? v1 v2)

Are vectors aligned (have the same direction)?

Are vectors aligned (have the same direction)?
sourceraw docstring

angle-betweenclj

(angle-between v1 v2)

Angle between two vectors

See also relative-angle-between.

Angle between two vectors

See also [[relative-angle-between]].
sourceraw docstring

applyfcljdeprecated

Same as [[fmap]]. Deprecated.

Same as [[fmap]]. Deprecated.
sourceraw docstring

array->vec2clj

(array->vec2 a)

Doubles array to Vec2

Doubles array to Vec2
sourceraw docstring

array->vec3clj

(array->vec3 a)

Doubles array to Vec3

Doubles array to Vec3
sourceraw docstring

array->vec4clj

(array->vec4 a)

Doubles array to Vec4

Doubles array to Vec4
sourceraw docstring

array-vecclj

(array-vec xs)

Make ArrayVec type based on provided sequence xs.

Make ArrayVec type based on provided sequence `xs`.
sourceraw docstring

asecclj

(asec vector)

Apply asec to vector elements.

Apply asec to vector elements.
sourceraw docstring

asechclj

(asech vector)

Apply asech to vector elements.

Apply asech to vector elements.
sourceraw docstring

asinclj

(asin vector)

Apply asin to vector elements.

Apply asin to vector elements.
sourceraw docstring

asinhclj

(asinh vector)

Apply asinh to vector elements.

Apply asinh to vector elements.
sourceraw docstring

atanclj

(atan vector)

Apply atan to vector elements.

Apply atan to vector elements.
sourceraw docstring

atanhclj

(atanh vector)

Apply atanh to vector elements.

Apply atanh to vector elements.
sourceraw docstring

average-vectorsclj

(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
sourceraw docstring

cbrtclj

(cbrt vector)

Apply cbrt to vector elements.

Apply cbrt to vector elements.
sourceraw docstring

ceilclj

(ceil vector)

Apply ceil to vector elements.

Apply ceil to vector elements.
sourceraw docstring

clampclj

(clamp v)
(clamp v mn mx)

Clamp elements.

Clamp elements.
sourceraw docstring

cosclj

(cos vector)

Apply cos to vector elements.

Apply cos to vector elements.
sourceraw docstring

coshclj

(cosh vector)

Apply cosh to vector elements.

Apply cosh to vector elements.
sourceraw docstring

cotclj

(cot vector)

Apply cot to vector elements.

Apply cot to vector elements.
sourceraw docstring

cothclj

(coth vector)

Apply coth to vector elements.

Apply coth to vector elements.
sourceraw docstring

cscclj

(csc vector)

Apply csc to vector elements.

Apply csc to vector elements.
sourceraw docstring

cschclj

(csch vector)

Apply csch to vector elements.

Apply csch to vector elements.
sourceraw docstring

degreesclj

(degrees vector)

Apply degrees to vector elements.

Apply degrees to vector elements.
sourceraw docstring

distclj

(dist v1 v2)

Euclidean distance between vectors

Euclidean distance between vectors
sourceraw docstring

dist-absclj

(dist-abs v1 v2)

Manhattan distance between vectors

Manhattan distance between vectors
sourceraw docstring

dist-canberraclj

(dist-canberra v1 v2)

Canberra distance

Canberra distance
sourceraw docstring

dist-chebclj

(dist-cheb v1 v2)

Chebyshev distance between 2d vectors

Chebyshev distance between 2d vectors
sourceraw docstring

dist-cosclj

(dist-cos v1 v2)

Cosine distance

Cosine distance
sourceraw docstring

dist-discreteclj

(dist-discrete v1 v2)

Discrete distance between 2d vectors

Discrete distance between 2d vectors
sourceraw docstring

dist-emdclj

(dist-emd v1 v2)

Earth Mover's Distance

Earth Mover's Distance
sourceraw docstring

dist-sqclj

(dist-sq v1 v2)

Squared Euclidean distance between vectors

Squared Euclidean distance between vectors
sourceraw docstring

distancesclj

source

divclj

(div v1)
(div v1 v)

Vector division or reciprocal.

Vector division or reciprocal.
sourceraw docstring

edivclj

(ediv v1 v2)

Element-wise division of two vectors.

Element-wise division of two vectors.
sourceraw docstring

expclj

(exp vector)

Apply exp to vector elements.

Apply exp to vector elements.
sourceraw docstring

expm1clj

(expm1 vector)

Apply expm1 to vector elements.

Apply expm1 to vector elements.
sourceraw docstring

faceforwardclj

(faceforward n v)

Flip normal n to match the same direction as v.

Flip normal `n` to match the same direction as `v`.
sourceraw docstring

floorclj

(floor vector)

Apply floor to vector elements.

Apply floor to vector elements.
sourceraw docstring

fracclj

(frac vector)

Apply frac to vector elements.

Apply frac to vector elements.
sourceraw docstring

generate-vec2clj

(generate-vec2 f)
(generate-vec2 f1 f2)

Generate Vec2 with fn(s)

Generate Vec2 with fn(s)
sourceraw docstring

generate-vec3clj

(generate-vec3 f)
(generate-vec3 f1 f2 f3)

Generate Vec3 with fn(s)

Generate Vec3 with fn(s)
sourceraw docstring

generate-vec4clj

(generate-vec4 f)
(generate-vec4 f1 f2 f3 f4)

Generate Vec4 with fn(s)

Generate Vec4 with fn(s)
sourceraw docstring

limitclj

(limit v len)

Limit length of the vector by given value

Limit length of the vector by given value
sourceraw docstring

lnclj

(ln vector)

Apply ln to vector elements.

Apply ln to vector elements.
sourceraw docstring

logclj

(log vector)

Apply log to vector elements.

Apply log to vector elements.
sourceraw docstring

log10clj

(log10 vector)

Apply log10 to vector elements.

Apply log10 to vector elements.
sourceraw docstring

log1pclj

(log1p vector)

Apply log1p to vector elements.

Apply log1p to vector elements.
sourceraw docstring

log2clj

(log2 vector)

Apply log2 to vector elements.

Apply log2 to vector elements.
sourceraw docstring

make-vectorclj

(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.
sourceraw docstring

nonzero-countclj

(nonzero-count v)

Count non zero velues in vector

Count non zero velues in vector
sourceraw docstring

normalizeclj

(normalize v)

Normalize vector (set length = 1.0)

Normalize vector (set length = 1.0)
sourceraw docstring

radiansclj

(radians vector)

Apply radians to vector elements.

Apply radians to vector elements.
sourceraw docstring

relative-angle-betweenclj

(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]].
sourceraw docstring

rintclj

(rint vector)

Apply rint to vector elements.

Apply rint to vector elements.
sourceraw docstring

roundclj

(round vector)

Apply round to vector elements.

Apply round to vector elements.
sourceraw docstring

safe-sqrtclj

(safe-sqrt vector)

Apply safe-sqrt to vector elements.

Apply safe-sqrt to vector elements.
sourceraw docstring

secclj

(sec vector)

Apply sec to vector elements.

Apply sec to vector elements.
sourceraw docstring

sechclj

(sech vector)

Apply sech to vector elements.

Apply sech to vector elements.
sourceraw docstring

set-magclj

(set-mag v len)

Set length of the vector

Set length of the vector
sourceraw docstring

sfracclj

(sfrac vector)

Apply sfrac to vector elements.

Apply sfrac to vector elements.
sourceraw docstring

sgnclj

(sgn vector)

Apply sgn to vector elements.

Apply sgn to vector elements.
sourceraw docstring

sigmoidclj

(sigmoid vector)

Apply sigmoid to vector elements.

Apply sigmoid to vector elements.
sourceraw docstring

signumclj

(signum vector)

Apply signum to vector elements.

Apply signum to vector elements.
sourceraw docstring

sinclj

(sin vector)

Apply sin to vector elements.

Apply sin to vector elements.
sourceraw docstring

sincclj

(sinc vector)

Apply sinc to vector elements.

Apply sinc to vector elements.
sourceraw docstring

sinhclj

(sinh vector)

Apply sinh to vector elements.

Apply sinh to vector elements.
sourceraw docstring

sqclj

(sq vector)

Apply sq to vector elements.

Apply sq to vector elements.
sourceraw docstring

sqrtclj

(sqrt vector)

Apply sqrt to vector elements.

Apply sqrt to vector elements.
sourceraw docstring

tanclj

(tan vector)

Apply tan to vector elements.

Apply tan to vector elements.
sourceraw docstring

tanhclj

(tanh vector)

Apply tanh to vector elements.

Apply tanh to vector elements.
sourceraw docstring

TOLERANCEclj

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.
sourceraw docstring

truncclj

(trunc vector)

Apply trunc to vector elements.

Apply trunc to vector elements.
sourceraw docstring

vec2clj

(vec2)
(vec2 x y)

Make 2d vector.

Make 2d vector.
sourceraw docstring

vec3clj

(vec3)
(vec3 v z)
(vec3 x y z)

Make Vec2 vector

Make Vec2 vector
sourceraw docstring

vec4clj

(vec4)
(vec4 v w)
(vec4 v z w)
(vec4 x y z w)

Make Vec4 vector

Make Vec4 vector
sourceraw docstring

VectorProtocljprotocol

Vector operations

Vector operations

to-vecclj

(to-vec v)

Convert to Clojure primitive vector Vec.

Convert to Clojure primitive vector `Vec`.

dotclj

(dot v1 v2)

Dot product of two vectors.

Dot product of two vectors.

permuteclj

(permute v idxs)

Permute vector elements with given indices.

Permute vector elements with given indices.

addclj

(add v1)
(add v1 v2)

Sum of two vectors.

Sum of two vectors.

approxclj

(approx v)
(approx v d)

Round to 2 (or d) decimal places

Round to 2 (or `d`) decimal places

crossclj

(cross v1 v2)

Cross product

Cross product

reciprocalclj

(reciprocal v)

Reciprocal of elements.

Reciprocal of elements.

sumclj

(sum v1)

Sum of elements

Sum of elements

emnclj

(emn v1 v2)

Element-wise min from two vectors.

Element-wise min from two vectors.

is-near-zero?clj

(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`)

headingclj

(heading v1)

Angle between vector and unit vector [1,0,...]

Angle between vector and unit vector `[1,0,...]`

axis-rotateclj

(axis-rotate v1 angle axis)
(axis-rotate v1 angle axis pivot)

Rotate around axis, 3d only

Rotate around axis, 3d only

magsqclj

(magsq v1)

Length of the vector squared.

Length of the vector squared.

to-polarclj

(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.

transformclj

(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.

magclj

(mag v1)

length of the vector.

length of the vector.

from-polarclj

(from-polar v1)

From polar coordinates (2d, 3d only)

From polar coordinates (2d, 3d only)

subclj

(sub v1)
(sub v1 v2)

Subtraction of two vectors.

Subtraction of two vectors.

mindimclj

(mindim v)

Index of minimum value.

Index of minimum value.

is-zero?clj

(is-zero? v1)

Is vector zero?

Is vector zero?

econstrainclj

(econstrain v val1 val2)

Element-wise constrain

Element-wise constrain

base-fromclj

(base-from v)

List of perpendicular vectors (basis)

List of perpendicular vectors (basis)

emultclj

(emult v1 v2)

Element-wise vector multiplication (Hadamard product).

Element-wise vector multiplication (Hadamard product).

maxdimclj

(maxdim v)

Index of maximum value.

Index of maximum value.

emxclj

(emx v1 v2)

Element-wise max from two vectors.

Element-wise max from two vectors.

interpolateclj

(interpolate v1 v2 t)
(interpolate v1 v2 t f)

Interpolate vectors, optionally set interpolation fn

Interpolate vectors, optionally set interpolation fn

perpendicularclj

(perpendicular v1)
(perpendicular v1 v2)

Perpendicular vector (only 2d).

Perpendicular vector (only 2d).

as-vecclj

(as-vec v)
(as-vec v xs)

Create vector from sequence as given type.

Create vector from sequence as given type.

mnclj

(mn v1)

Minimum value of vector elements

Minimum value of vector elements

absclj

(abs v1)

Absolute value of vector elements

Absolute value of vector elements

einterpolateclj

(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

mxclj

(mx v1)

Maximum value of vector elements

Maximum value of vector elements

fmapclj

(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).

multclj

(mult v1 v)

Multiply vector by number v.

Multiply vector by number `v`.

rotateclj

(rotate v1 angle)
(rotate v1 anglex angley anglez)

Rotate vector

Rotate vector
sourceraw docstring

zero-countclj

(zero-count v)

Count zeros in vector

Count zeros in vector
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close