generic_vectors.h 1.3 KB

12345678910111213141516171819202122232425262728
  1. #ifdef __c3dlas__generic_vectors_h__
  2. #define __c3dlas__generic_vectors_h__
  3. #define vAdd(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vAdd) default: ((void)0))(a, __VA_ARGS__)
  4. #define vSub(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vSub) default: ((void)0))(a, __VA_ARGS__)
  5. #define vMul(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vMul) default: ((void)0))(a, __VA_ARGS__)
  6. #define vScale(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vScale) default: ((void)0))(a, __VA_ARGS__)
  7. #define vDot(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vDot) default: ((void)0))(a, __VA_ARGS__)
  8. #define vCross(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vCross) default: ((void)0))(a, __VA_ARGS__)
  9. #define vScalarTriple(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vScalarTriple) default: ((void)0))(a, __VA_ARGS__)
  10. #define vLerp(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vLerp) default: ((void)0))(a, __VA_ARGS__)
  11. #define vInverse(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vInverse) default: ((void)0))(a, __VA_ARGS__)
  12. #define vNorm(a, ...) _Generic((a), C3DLAS_VECTOR_LIST(C3DLAS_GEN_HELPER, vNorm) default: ((void)0))(a, __VA_ARGS__)
  13. #endif // __c3dlas__generic_vectors_h__