Vecmat 0.2.3
C math and linear algebra library for 2D/3D graphics, physics, and science.
Loading...
Searching...
No Matches
vector4i.c File Reference
#include <vecmat.h>

Go to the source code of this file.

Functions

vector4i vec4i_zero (void)
 Returns a zero-initialized vector4i.
vector4i vec4i_one (void)
 Returns a vector4i with all components set to 1.
vector4i vec4i_x_axis (const vm_int_t x)
 Returns a vector4i along the x-axis.
vector4i vec4i_y_axis (const vm_int_t y)
 Returns a vector4i along the y-axis.
vector4i vec4i_z_axis (const vm_int_t z)
 Returns a vector4i along the z-axis.
vector4i vec4i_w_axis (const vm_int_t w)
 Returns a vector4i along the w-axis.
vector4i vec4i_x_scale (const vm_int_t x)
 Returns a vector4i for scaling along the x-axis.
vector4i vec4i_y_scale (const vm_int_t y)
 Returns a vector4i for scaling along the y-axis.
vector4i vec4i_z_scale (const vm_int_t z)
 Returns a vector4i for scaling along the z-axis.
vector4i vec4i_w_scale (const vm_int_t w)
 Returns a vector4i for scaling along the w-axis.
vector4i vec4i_add (const vector4i a, const vector4i b)
 Component-wise addition of two vectors.
vector4i vec4i_sub (const vector4i a, const vector4i b)
 Component-wise subtraction of two vectors.
vector4i vec4i_mul_scalar (const vector4i v, const vm_int_t s)
 Component-wise multiplication of vector by scalar.
vector4i vec4i_div_scalar (const vector4i v, const vm_int_t s)
 Component-wise division of vector by scalar.
vector4i vec4i_mul (const vector4i a, const vector4i b)
 Component-wise multiplication of two vectors.
vector4i vec4i_neg (const vector4i v)
 Negation of a vector.
vector4i vec4i_abs (const vector4i v)
 Computes the absolute value per component of a vector4i.
vector4i vec4i_normalize (const vector4i v)
 Normalizes a vector4i to unit length.
vector4i vec4i_min (const vector4i a, const vector4i b)
 Computes the component-wise minimum of two vector4i.
vector4i vec4i_max (const vector4i a, const vector4i b)
 Computes the component-wise maximum of two vector4i.
vector4i vec4i_sign (const vector4i v)
 Computes the sign per component of a vector4i (-1, 0, or 1).
vector4i vec4i_lerp (const vector4i a, const vector4i b, const vm_float_t t)
 Linearly interpolates between two vector4i.
vector4i vec4i_clamp (const vector4i v, const vector4i min, const vector4i max)
 Clamps each component of the input vector to the range defined by the minimum and maximum vectors.
vm_int_t vec4i_dot (const vector4i a, const vector4i b)
 Computes the dot product of two vector4i.
vm_float_t vec4i_length (const vector4i v)
 Computes the length (magnitude) of a vector4i.
vm_float_t vec4i_distance (const vector4i a, const vector4i b)
 Computes the Euclidean distance between two vector4i.
vector3i vec4i_to_vec3i (const vector4i v)
 Converts a vector4i to a vector3i (discards the w component).
vector4i vec4i_div (const vector4i a, const vector4i b)
 Divides two vectors component-wise.
vector4i vec4i_add_scalar (const vector4i v, const vm_int_t s)
 Adds a scalar to each component.
vector4i vec4i_sub_scalar (const vector4i v, const vm_int_t s)
 Subtracts a scalar from each component.
vector4i vec4i_mod (const vector4i a, const vector4i b)
 Component-wise floor modulo of a by b.
vector4i vec4i_div_floor (const vector4i a, const vector4i b)
 Component-wise floored division of a by b.
vector4i vec4i_wrap (const vector4i v, const vector4i period)
 Wraps each component of v into [0, period).
vector4i vec4i_splat (const vm_int_t s)
 Returns a vector with every component set to s.
vm_int_t vec4i_length_squared (const vector4i v)
 Returns the squared Euclidean length.
vm_int_t vec4i_distance_squared (const vector4i a, const vector4i b)
 Returns the squared Euclidean distance between a and b.
vm_int_t vec4i_length_manhattan (const vector4i v)
 Returns the Manhattan (L1) length.
vm_int_t vec4i_length_chebyshev (const vector4i v)
 Returns the Chebyshev (L-inf) length.
vm_int_t vec4i_min_component (const vector4i v)
 Returns the smallest component.
vm_int_t vec4i_max_component (const vector4i v)
 Returns the largest component.
vm_int_t vec4i_sum (const vector4i v)
 Returns the sum of all components.
bool vec4i_is_zero (const vector4i v)
 Returns true if every component is zero.

Function Documentation

◆ vec4i_abs()

vector4i vec4i_abs ( const vector4i v)

Computes the absolute value per component of a vector4i.

See vec4i_abs_ptr for the out-parameter version.

Parameters
vThe vector.
Returns
The absolute vector4i.

Definition at line 217 of file vector4i.c.

References vec4i_abs_ptr().

◆ vec4i_add()

vector4i vec4i_add ( const vector4i a,
const vector4i b )

Component-wise addition of two vectors.

See vec4i_add_ptr for the out-parameter version.

Parameters
aFirst vector.
bSecond vector.
Returns
Result vector.

Definition at line 123 of file vector4i.c.

References vec4i_add_ptr().

◆ vec4i_add_scalar()

vector4i vec4i_add_scalar ( const vector4i v,
const vm_int_t s )

Adds a scalar to each component.

See vec4i_add_scalar_ptr instead.

Parameters
vInput vector.
sScalar value.
Returns
The resulting vector4i.

Definition at line 395 of file vector4i.c.

References vec4i_add_scalar_ptr().

◆ vec4i_clamp()

vector4i vec4i_clamp ( const vector4i v,
const vector4i min,
const vector4i max )

Clamps each component of the input vector to the range defined by the minimum and maximum vectors.

See vec4i_clamp_ptr for the out-parameter version.

Parameters
vThe input vector.
minThe minimum value for each component.
maxThe maximum value for each component.
Returns
A new vector4i with each component clamped to [min, max].

Definition at line 314 of file vector4i.c.

References vec4i_clamp_ptr().

◆ vec4i_distance()

vm_float_t vec4i_distance ( const vector4i a,
const vector4i b )

Computes the Euclidean distance between two vector4i.

Parameters
aFirst vector.
bSecond vector.
Returns
The distance between a and b.

Definition at line 351 of file vector4i.c.

References vec4i_length(), and vec4i_sub().

◆ vec4i_distance_squared()

vm_int_t vec4i_distance_squared ( const vector4i a,
const vector4i b )

Returns the squared Euclidean distance between a and b.

Parameters
aFirst input vector.
bSecond input vector.
Returns
The resulting scalar.

Definition at line 497 of file vector4i.c.

References vec4i_length_squared(), and vec4i_sub().

◆ vec4i_div()

vector4i vec4i_div ( const vector4i a,
const vector4i b )

Divides two vectors component-wise.

See vec4i_div_ptr instead.

Parameters
aFirst input vector.
bSecond input vector.
Returns
The resulting vector4i.

Definition at line 379 of file vector4i.c.

References vec4i_div_ptr().

◆ vec4i_div_floor()

vector4i vec4i_div_floor ( const vector4i a,
const vector4i b )

Component-wise floored division of a by b.

See vec4i_div_floor_ptr instead.

Parameters
aFirst input vector.
bSecond input vector.
Returns
The resulting vector4i.

Definition at line 443 of file vector4i.c.

References vec4i_div_floor_ptr().

◆ vec4i_div_scalar()

vector4i vec4i_div_scalar ( const vector4i v,
const vm_int_t s )

Component-wise division of vector by scalar.

See vec4i_div_scalar_ptr for the out-parameter version.

Parameters
vThe vector.
sThe scalar (non-zero).
Returns
Result vector.

Definition at line 171 of file vector4i.c.

References vec4i_div_scalar_ptr().

◆ vec4i_dot()

vm_int_t vec4i_dot ( const vector4i a,
const vector4i b )

Computes the dot product of two vector4i.

Parameters
aFirst vector.
bSecond vector.
Returns
The dot product.

Definition at line 328 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

Referenced by vec4i_length(), and vec4i_length_squared().

◆ vec4i_is_zero()

bool vec4i_is_zero ( const vector4i v)

Returns true if every component is zero.

Parameters
vInput vector.
Returns
True if every component is zero.

Definition at line 582 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

◆ vec4i_length()

vm_float_t vec4i_length ( const vector4i v)

Computes the length (magnitude) of a vector4i.

Parameters
vThe vector.
Returns
The Euclidean length of v.

Definition at line 339 of file vector4i.c.

References vec4i_dot(), and VECMAT_SQRT.

Referenced by vec4i_distance(), and vec4i_normalize_ptr().

◆ vec4i_length_chebyshev()

vm_int_t vec4i_length_chebyshev ( const vector4i v)

Returns the Chebyshev (L-inf) length.

Parameters
vInput vector.
Returns
The resulting scalar.

Definition at line 523 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

◆ vec4i_length_manhattan()

vm_int_t vec4i_length_manhattan ( const vector4i v)

Returns the Manhattan (L1) length.

Parameters
vInput vector.
Returns
The resulting scalar.

Definition at line 508 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

◆ vec4i_length_squared()

vm_int_t vec4i_length_squared ( const vector4i v)

Returns the squared Euclidean length.

Parameters
vInput vector.
Returns
The resulting scalar.

Definition at line 485 of file vector4i.c.

References vec4i_dot().

Referenced by vec4i_distance_squared().

◆ vec4i_lerp()

vector4i vec4i_lerp ( const vector4i a,
const vector4i b,
const vm_float_t t )

Linearly interpolates between two vector4i.

See vec4i_lerp_ptr for the out-parameter version.

Parameters
aStart vector.
bEnd vector.
tInterpolation factor [0, 1].
Returns
The interpolated vector (a * (1 - t) + b * t).

Definition at line 296 of file vector4i.c.

References vec4i_lerp_ptr().

◆ vec4i_max()

vector4i vec4i_max ( const vector4i a,
const vector4i b )

Computes the component-wise maximum of two vector4i.

See vec4i_max_ptr for the out-parameter version.

Parameters
aFirst vector.
bSecond vector.
Returns
Per-component max(a, b).

Definition at line 264 of file vector4i.c.

References vec4i_max_ptr().

◆ vec4i_max_component()

vm_int_t vec4i_max_component ( const vector4i v)

Returns the largest component.

Parameters
vInput vector.
Returns
The resulting scalar.

Definition at line 556 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

◆ vec4i_min()

vector4i vec4i_min ( const vector4i a,
const vector4i b )

Computes the component-wise minimum of two vector4i.

See vec4i_min_ptr for the out-parameter version.

Parameters
aFirst vector.
bSecond vector.
Returns
Per-component min(a, b).

Definition at line 248 of file vector4i.c.

References vec4i_min_ptr().

◆ vec4i_min_component()

vm_int_t vec4i_min_component ( const vector4i v)

Returns the smallest component.

Parameters
vInput vector.
Returns
The resulting scalar.

Definition at line 541 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

◆ vec4i_mod()

vector4i vec4i_mod ( const vector4i a,
const vector4i b )

Component-wise floor modulo of a by b.

See vec4i_mod_ptr instead.

Parameters
aFirst input vector.
bSecond input vector.
Returns
The resulting vector4i.

Definition at line 427 of file vector4i.c.

References vec4i_mod_ptr().

◆ vec4i_mul()

vector4i vec4i_mul ( const vector4i a,
const vector4i b )

Component-wise multiplication of two vectors.

See vec4i_mul_ptr for the out-parameter version.

Parameters
aFirst vector.
bSecond vector.
Returns
Result vector.

Definition at line 187 of file vector4i.c.

References vec4i_mul_ptr().

◆ vec4i_mul_scalar()

vector4i vec4i_mul_scalar ( const vector4i v,
const vm_int_t s )

Component-wise multiplication of vector by scalar.

See vec4i_mul_scalar_ptr for the out-parameter version.

Parameters
vThe vector.
sThe scalar.
Returns
Result vector.

Definition at line 155 of file vector4i.c.

References vec4i_mul_scalar_ptr().

◆ vec4i_neg()

vector4i vec4i_neg ( const vector4i v)

Negation of a vector.

See vec4i_neg_ptr for the out-parameter version.

Parameters
vThe vector.
Returns
The negated vector.

Definition at line 202 of file vector4i.c.

References vec4i_neg_ptr().

◆ vec4i_normalize()

vector4i vec4i_normalize ( const vector4i v)

Normalizes a vector4i to unit length.

See vec4i_normalize_ptr for the out-parameter version.

Parameters
vThe vector (non-zero).
Returns
The normalized vector.

Definition at line 232 of file vector4i.c.

References vec4i_normalize_ptr().

◆ vec4i_one()

vector4i vec4i_one ( void )

Returns a vector4i with all components set to 1.

Returns
A vector4i with all components set to 1.

Definition at line 22 of file vector4i.c.

◆ vec4i_sign()

vector4i vec4i_sign ( const vector4i v)

Computes the sign per component of a vector4i (-1, 0, or 1).

See vec4i_sign_ptr for the out-parameter version.

Parameters
vThe vector.
Returns
The sign vector.

Definition at line 279 of file vector4i.c.

References vec4i_sign_ptr().

◆ vec4i_splat()

vector4i vec4i_splat ( const vm_int_t s)

Returns a vector with every component set to s.

See vec4i_splat_ptr instead.

Parameters
sScalar value.
Returns
The resulting vector4i.

Definition at line 474 of file vector4i.c.

◆ vec4i_sub()

vector4i vec4i_sub ( const vector4i a,
const vector4i b )

Component-wise subtraction of two vectors.

See vec4i_sub_ptr for the out-parameter version.

Parameters
aFirst vector.
bSecond vector.
Returns
Result vector.

Definition at line 139 of file vector4i.c.

References vec4i_sub_ptr().

Referenced by vec4i_distance(), and vec4i_distance_squared().

◆ vec4i_sub_scalar()

vector4i vec4i_sub_scalar ( const vector4i v,
const vm_int_t s )

Subtracts a scalar from each component.

See vec4i_sub_scalar_ptr instead.

Parameters
vInput vector.
sScalar value.
Returns
The resulting vector4i.

Definition at line 411 of file vector4i.c.

References vec4i_sub_scalar_ptr().

◆ vec4i_sum()

vm_int_t vec4i_sum ( const vector4i v)

Returns the sum of all components.

Parameters
vInput vector.
Returns
The resulting scalar.

Definition at line 571 of file vector4i.c.

References vector4i::w, vector4i::x, vector4i::y, and vector4i::z.

◆ vec4i_to_vec3i()

vector3i vec4i_to_vec3i ( const vector4i v)

Converts a vector4i to a vector3i (discards the w component).

Parameters
vThe source vector4i.
Returns
A vector3i {v.x, v.y, v.z}.

Definition at line 363 of file vector4i.c.

References vec4i_to_vec3i_ptr().

◆ vec4i_w_axis()

vector4i vec4i_w_axis ( const vm_int_t w)

Returns a vector4i along the w-axis.

Parameters
wThe w component value.
Returns
A vector4i with (0, 0, 0, w).

Definition at line 65 of file vector4i.c.

◆ vec4i_w_scale()

vector4i vec4i_w_scale ( const vm_int_t w)

Returns a vector4i for scaling along the w-axis.

Parameters
wThe w scale factor.
Returns
A vector4i with (1, 1, 1, w).

Definition at line 109 of file vector4i.c.

◆ vec4i_wrap()

vector4i vec4i_wrap ( const vector4i v,
const vector4i period )

Wraps each component of v into [0, period).

See vec4i_wrap_ptr instead.

Parameters
vInput vector.
periodWrap period per component.
Returns
The resulting vector4i.

Definition at line 459 of file vector4i.c.

References vec4i_wrap_ptr().

◆ vec4i_x_axis()

vector4i vec4i_x_axis ( const vm_int_t x)

Returns a vector4i along the x-axis.

Parameters
xThe x component value.
Returns
A vector4i with (x, 0, 0, 0).

Definition at line 33 of file vector4i.c.

◆ vec4i_x_scale()

vector4i vec4i_x_scale ( const vm_int_t x)

Returns a vector4i for scaling along the x-axis.

Parameters
xThe x scale factor.
Returns
A vector4i with (x, 1, 1, 1).

Definition at line 76 of file vector4i.c.

◆ vec4i_y_axis()

vector4i vec4i_y_axis ( const vm_int_t y)

Returns a vector4i along the y-axis.

Parameters
yThe y component value.
Returns
A vector4i with (0, y, 0, 0).

Definition at line 44 of file vector4i.c.

◆ vec4i_y_scale()

vector4i vec4i_y_scale ( const vm_int_t y)

Returns a vector4i for scaling along the y-axis.

Parameters
yThe y scale factor.
Returns
A vector4i with (1, y, 1, 1).

Definition at line 87 of file vector4i.c.

◆ vec4i_z_axis()

vector4i vec4i_z_axis ( const vm_int_t z)

Returns a vector4i along the z-axis.

Parameters
zThe z component value.
Returns
A vector4i with (0, 0, z, 0).

Definition at line 55 of file vector4i.c.

◆ vec4i_z_scale()

vector4i vec4i_z_scale ( const vm_int_t z)

Returns a vector4i for scaling along the z-axis.

Parameters
zThe z scale factor.
Returns
A vector4i with (1, 1, z, 1).

Definition at line 98 of file vector4i.c.

◆ vec4i_zero()

vector4i vec4i_zero ( void )

Returns a zero-initialized vector4i.

Returns
A vector4i with all components set to 0.

Definition at line 12 of file vector4i.c.