Files Class List
cyCore.h File Reference

Detailed Description

Core functions and macros.

Author
Cem Yuksel

Core functions and macros for math and other common operations

#include <cstdlib>
#include <cstring>
#include <cstdint>
#include <cassert>
#include <cmath>
#include <type_traits>
#include <limits>
#include <immintrin.h>

Macros

#define constexpr
 
#define restrict
 
#define CY_NODISCARD
 
#define CY_CLASS_FUNCTION_DEFAULT   {}
 
#define CY_CLASS_FUNCTION_DELETE   { static_assert(false,"Calling deleted method."); }
 
#define nodefault   default:
 

Functions

Common math function templates
template<typename T >
Max (T const &v1, T const &v2)
 
template<typename T >
Min (T const &v1, T const &v2)
 
template<typename T , typename... R>
Max (T const &v, R... rest)
 
template<typename T , typename... R>
Min (T const &v, R... rest)
 
template<typename T >
Clamp (T const &v, T const &minVal, T const &maxVal)
 
template<typename T >
Clamp (T const &v)
 
template<int N, typename T >
Pow (T const &v)
 
template<typename T >
ACosSafe (T v)
 
template<typename T >
ASinSafe (T v)
 
template<typename T >
Sqrt (T v)
 
template<typename T >
SqrtSafe (T v)
 
template<typename T >
Pi ()
 
float Deg2Rad (float degrees)
 
double Deg2Rad (double degrees)
 
float Rad2Deg (float radians)
 
double Rad2Deg (double radians)
 
template<typename T >
bool IsFinite (T v)
 
template<typename T >
void MemCopy (T *dest, T const *src, size_t count)
 
template<typename T , typename S >
void MemConvert (T *dest, S const *src, size_t count)
 
template<typename T >
void MemClear (T *dest, size_t count)
 
template<typename T >
void SwapBytes (T &v1, T &v2)
 
template<typename T >
void Swap (T &v1, T &v2)
 
template<bool ascending, typename T >
void Sort2 (T &r0, T &r1, T const &v0, T const &v1)
 
template<bool ascending, typename T >
void Sort2 (T r[2], T const v[2])
 
template<bool ascending, typename T >
void Sort3 (T &r0, T &r1, T &r2, T const &v0, T const &v1, T const &v2)
 
template<bool ascending, typename T >
void Sort3 (T r[3], T const v[3])
 
template<bool ascending, typename T >
void Sort4 (T &r0, T &r1, T &r2, T &r3, T const &v0, T const &v1, T const &v2, T const &v3)
 
template<bool ascending, typename T >
void Sort4 (T r[4], T const v[4])