summaryrefslogtreecommitdiff
path: root/libs/pwyazh/numeric.h
blob: b1170842ec66995a577ef966fb7aa86e8eacafd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#ifndef NUMERIC_H
#define NUMERIC_H

/* NOTE(pryazha): Numeric functions */

#include <math.h>

F32
f32_abs(F32 value)
{
    union {
        F32 f;
        U32 u;
    } result;
    result.f = value;
    result.u &= 0x7fffffff;
    return(result.f);
}

F64
f64_abs(F64 value)
{
    union {
        F64 f;
        U64 u;
    } result;
    result.f = value;
    result.u &= 0x7fffffffffffffff;
    return(result.f);
}

F32
f32_sqrt(F32 value)
{
    F32 result = sqrtf(value);
    return(result);
}

F32
f32_sin(F32 value)
{
    F32 result = sinf(value);
    return(result);
}

F32
f32_cos(F32 value)
{
    F32 result = cosf(value);
    return(result);
}

F32
f32_acos(F32 value)
{
    F32 result = acosf(value);
    return(result);
}

F32
f32_tan(F32 value)
{
    F32 result = tanf(value);
    return(result);
}

F32
f32_atan(F32 value)
{
    F32 result = atanf(value);
    return(result);
}

#endif /* NUMERIC_H */