des.math.linear.vector

Provides work with vector and some aliases and functions.

Members

Aliases

Vector2
alias Vector2(T) = Vector!(2, T, AS2D)
Vector3
alias Vector3(T) = Vector!(3, T, AS3D)
Vector4
alias Vector4(T) = Vector!(4, T, AS4D)
bvec2
alias bvec2 = Vector2!byte
bvec3
alias bvec3 = Vector3!byte
bvec4
alias bvec4 = Vector4!byte
bvecD
alias bvecD = Vector!(0, byte)
col3
alias col3 = Vector!(3, float, "r g b")
col4
alias col4 = Vector!(4, float, "r g b a")
dvec2
alias dvec2 = Vector2!double
dvec3
alias dvec3 = Vector3!double
dvec4
alias dvec4 = Vector4!double
dvecD
alias dvecD = Vector!(0, double)
ivec2
alias ivec2 = Vector2!int
ivec3
alias ivec3 = Vector3!int
ivec4
alias ivec4 = Vector4!int
ivecD
alias ivecD = Vector!(0, int)
lvec2
alias lvec2 = Vector2!long
lvec3
alias lvec3 = Vector3!long
lvec4
alias lvec4 = Vector4!long
lvecD
alias lvecD = Vector!(0, long)
rvec2
alias rvec2 = Vector2!real
rvec3
alias rvec3 = Vector3!real
rvec4
alias rvec4 = Vector4!real
rvecD
alias rvecD = Vector!(0, real)
svecD
alias svecD = Vector!(0, short)
ubcol3
alias ubcol3 = Vector!(3, ubyte, "r g b")
ubcol4
alias ubcol4 = Vector!(4, ubyte, "r g b a")
ubvec2
alias ubvec2 = Vector2!ubyte
ubvec3
alias ubvec3 = Vector3!ubyte
ubvec4
alias ubvec4 = Vector4!ubyte
ubvecD
alias ubvecD = Vector!(0, ubyte)
uivec2
alias uivec2 = Vector2!uint
uivec3
alias uivec3 = Vector3!uint
uivec4
alias uivec4 = Vector4!uint
uivecD
alias uivecD = Vector!(0, uint)
ulvec2
alias ulvec2 = Vector2!ulong
ulvec3
alias ulvec3 = Vector3!ulong
ulvec4
alias ulvec4 = Vector4!ulong
ulvecD
alias ulvecD = Vector!(0, ulong)
usvecD
alias usvecD = Vector!(0, ushort)
vec2
alias vec2 = Vector2!float
vec3
alias vec3 = Vector3!float
vec4
alias vec4 = Vector4!float
vecD
alias vecD = Vector!(0, float)

Functions

cross
auto cross(Vector!(N, T, S1) a, Vector!(K, E, S2) b)

cross multiplication for compaitable vectors.

dot
auto dot(Vector!(N, T, S1) a, Vector!(K, E, S2) b)

dot multiplication for compaitable vectors.

hasCompMltAndSum
bool hasCompMltAndSum()
Undocumented in source. Be warned that the author may not have intended to support it.
isValidOp
bool isValidOp()

validate operation between types T and E code: mixin( return is( typeof( T.init ~ op ~ E.init ) : K ); );

Manifest constants

VVASES
enum VVASES;

vector value access string element separator = " "

VVASVS
enum VVASVS;

vector value access string variant separator = "|"

Structs

Vector
struct Vector(size_t N, T, alias string AS = "")

Templates

isCompatibleVector
template isCompatibleVector(size_t N, T, E)

сhecks type E is vector and E.dims == N and E.datatype can casted to T

isDynamicVector
template isDynamicVector(E)

checks type is dynamic vector

isStaticVector
template isStaticVector(E)

checks type is static vector

isVector
template isVector(E)

checks type is vector

Meta