src/math.h

Sat, 14 Dec 2019 22:36:06 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 14 Dec 2019 22:36:06 +0200
changeset 19
ed9685f44ab3
parent 18
918b6c0f8b5b
permissions
-rw-r--r--

added missing files

18
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1 #pragma once
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
2 #include <cmath>
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
3
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
4 namespace math
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
5 {
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
6 using std::abs;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
7 using std::sqrt;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
8 using std::sin;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
9 using std::cos;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
10 using std::tan;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
11 using std::atan;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
12 using std::atan2;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
13 using std::acos;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
14 using std::asin;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
15 using std::exp;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
16 using std::log;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
17 using std::log10;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
18 using std::hypot;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
19 using std::min;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
20 using std::max;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
21 using std::floor;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
22 using std::ceil;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
23 using std::trunc;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
24 using std::round;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
25 template<typename T, typename... Rest>
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
26 auto hypot(T&& x, Rest&&... rest)
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
27 {
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
28 return math::hypot(x, math::hypot(rest...));
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
29 }
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
30 template<typename T, typename... Rest>
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
31 auto max(T&& x, Rest&&... rest)
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
32 {
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
33 return math::max(x, math::max(rest...));
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
34 }
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
35 template<typename T, typename... Rest>
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
36 auto min(T&& x, Rest&&... rest)
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
37 {
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
38 return math::min(x, math::min(rest...));
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
39 }
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
40 constexpr double infinity = std::numeric_limits<double>::infinity();
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
41 constexpr double pi = M_PIl;
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
42 }

mercurial