Vector Type
A vector is a data type that contains between one and four scalar components. Every component of a vector must be of the same type.
Type Declaration
You can declare vector variables by using the scalar type name of the vector's contents with the number of components it contains:
TypeComponents Name
Where Type
is the scalar type of each of the components, Components
is an integer between 1 and 4 inclusive indicating the number of components and Name
is an ASCII string that uniquely identifies the variable name.
Examples:
int iScalar; // integer scalar
int1 iVector = 1; // vector containing one integer
float3 fVector = { 0.2f, 0.3f, 0.4f }; // vector containing three floats
Template-style Declaration
An alternate declaration syntax uses the vector
keyword and template arguments to indicate scalar type and number of components:
vector <Type=float, Components=4> Name
Where again Type
is the scalar type of each of the components, Components
is an integer between 1 and 4 inclusive indicating the number of components, but they are specified within template-style angle brackets. Name
is an ASCII string that uniquely identifies the variable name,
Note that the template parameter defaults allow specifying 4-component vectors of a given type by leaving off the last parameter or 4-component float vectors by leaving off both.
Here are some examples:
vector <int, 1> iVector = 1;
vector <double, 4> dVector = { 0.2f, 0.3f, 0.4f, 0.5f };
vector <float16_t> hVector = { 0.1f, 0.2f, 0.3f, 0.4f }; // Defaults to 4-component float16 vector
vector fVector = { -0.4f, -0.3f, -0.2f, -0.1f }; // Defaults to 4-component float vector