-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmath.h
More file actions
45 lines (30 loc) · 1020 Bytes
/
math.h
File metadata and controls
45 lines (30 loc) · 1020 Bytes
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
#ifndef MATH_H
#define MATH_H
#include "common.h"
extern FLOAT ePI;
typedef struct vec_t {
FLOAT x, y, z, w;
} *Vec;
typedef struct matrix_t {
struct vec_t r0, r1, r2, r3;
} *Matrix;
extern Vec make_vec();
extern void free_vec(Vec v);
extern Matrix make_matrix();
extern void free_matrix(Matrix m);
extern FLOAT qsin(FLOAT f);
extern FLOAT qcos(FLOAT f);
extern FLOAT vmod(Vec v);
extern void vneg(Vec src, Vec dst);
extern void vnorm(Vec src, Vec dst);
extern void vndc(Vec src, Vec dst);
extern FLOAT vdot(Vec v1, Vec v2);
extern void vcross(Vec v1, Vec v2, Vec dst);
extern void _256_mulmv(Matrix m, Vec v, Vec dst);
extern void _512_mulmv(Matrix m, Vec v, Vec dst);
extern void _256_mulqq(Vec q1, Vec q2, Vec qdst);
extern void _512_mulqq(Vec q1, Vec q2, Vec qdst);
void mulmv(Matrix m, Vec v, Vec dst);
void mulqq(Vec q1, Vec q2, Vec qdst);
ULONG hash(const CHAR* str);
#endif