# vec4 extra

Header: cglm/vec4-ext.h

There are some functions are in called in extra header. These are called extra because they are not used like other functions in vec4.h in the future some of these functions ma be moved to vec4 header.

## Table of contents (click to go):

Functions:

1. `glm_vec4_mulv()`

2. `glm_vec4_broadcast()`

3. `glm_vec4_eq()`

4. `glm_vec4_eq_eps()`

5. `glm_vec4_eq_all()`

6. `glm_vec4_eqv()`

7. `glm_vec4_eqv_eps()`

8. `glm_vec4_max()`

9. `glm_vec4_min()`

10. `glm_vec4_isnan()`

11. `glm_vec4_isinf()`

12. `glm_vec4_isvalid()`

13. `glm_vec4_sign()`

14. `glm_vec4_abs()`

15. `glm_vec4_fract()`

16. `glm_vec4_floor()`

17. `glm_vec4_sqrt()`

## Functions documentation

void glm_vec4_mulv(vec4 a, vec4 b, vec4 d)

  multiplies individual items

  Parameters:
    [in] a vec1
    [in] b vec2
    [out] d destination

void glm_vec4_broadcast(float val, vec4 d)

  fill a vector with specified value

  Parameters:
    [in] val value
    [out] dest destination

bool glm_vec4_eq(vec4 v, float val)

  check if vector is equal to value (without epsilon)

  Parameters:
    [in] v vector
    [in] val value

bool glm_vec4_eq_eps(vec4 v, float val)

  check if vector is equal to value (with epsilon)

  Parameters:
    [in] v vector
    [in] val value

bool glm_vec4_eq_all(vec4 v)

  check if vectors members are equal (without epsilon)

  Parameters:
    [in] v vector

bool glm_vec4_eqv(vec4 v1, vec4 v2)

  check if vector is equal to another (without epsilon) vector

  Parameters:
    [in] vec vector 1
    [in] vec vector 2

bool glm_vec4_eqv_eps(vec4 v1, vec4 v2)

  check if vector is equal to another (with epsilon)

  Parameters:
    [in] v1 vector1
    [in] v2 vector2

float glm_vec4_max(vec4 v)

  max value of vector

  Parameters:
    [in] v vector

float glm_vec4_min(vec4 v)

  > min value of vector

  Parameters:
    [in] v vector

bool glm_vec4_isnan(vec4 v)
  check if one of items is NaN (not a number)
  you should only use this in DEBUG mode or very critical asserts
  Parameters:
    [in] v vector

bool glm_vec4_isinf(vec4 v)
  check if one of items is INFINITY
  you should only use this in DEBUG mode or very critical asserts
  Parameters:
    [in] v vector

bool glm_vec4_isvalid(vec4 v)
  check if all items are valid number
  you should only use this in DEBUG mode or very critical asserts
  Parameters:
    [in] v vector

void glm_vec4_sign(vec4 v, vec4 dest)

  get sign of 32 bit float as +1, -1, 0

  Parameters:
    [in] v vector
    [out] dest sign vector (only keeps signs as -1, 0, -1)

void glm_vec4_abs(vec4 v, vec4 dest)

  absolute value of each vector item

  Parameters:
    [in] v vector
    [out] dest destination vector (abs(v))

void glm_vec4_fract(vec4 v, vec4 dest)

  fractional part of each vector item

  Parameters:
    [in] v vector
    [out] dest destination vector (fract(v))

void glm_vec4_floor(vec4 v, vec4 dest)

  floor of each vector item

  Parameters:
    [in] v vector
    [out] dest destination vector (floor(v))

void glm_vec4_sqrt(vec4 v, vec4 dest)

  square root of each vector item

  Parameters:
    [in] v vector
    [out] dest destination vector (sqrt(v))