acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_.h
1#pragma once
2
4//inline constexpr bool __lt(const ::i64 & a, const ::i64 & b) { return a < b; }
5//inline constexpr bool __lt(const ::i32 & a, const ::i64 & b) { return a < b; }
6//inline constexpr bool __lt(const ::i64 & a, const ::i32 & b) { return a < b; }
7//
9//inline constexpr bool __lt(const ::u32 & a, const ::i32 & b) { return b < 0 ? false : a < static_cast < ::u32 > (b); }
10//inline constexpr bool __lt(const size_t & a, const ::i64 & b) { return b < 0 ? false : a < static_cast < ::u64 > (b); }
11//
13//inline constexpr bool __lt(const ::i32 & a, const ::u32 & b) { return a < 0 ? true : static_cast <::u32> (a) < b; }
14//inline constexpr bool __lt(const ::i64 & a, const size_t & b) { return a < 0 ? true : static_cast <::u64> (a) < b; }
15//
16//
18//inline constexpr bool __le(const ::u32 & a, const ::i32 & b) { return b < 0 ? false : a <= static_cast <::u32> (b); }
19//inline constexpr bool __le(const size_t & a, const ::i64 & b) { return b < 0 ? false : a <= static_cast <::u64> (b); }
20//
22//inline constexpr bool __le(const ::i32 & a, const ::u32 & b) { return a < 0 ? false : static_cast <::u32> (a) <= b; }
23//inline constexpr bool __le(const ::i64 & a, const size_t & b) { return a < 0 ? false : static_cast <::u64> (a) <= b; }
24//
25//
26//template < typename A, typename B >
27//inline constexpr auto __gt(const A & a, const B & b) { return __lt(b, a); }
28//
29//template < typename A, typename B >
30//inline constexpr auto __ge(const A & a, const B & b) { return __le(b, a); }
31//
32//
34//constexpr ::i32 minimum(const ::u32 & a, const ::i32 & b) { return __lt(a, b) ? (::i32) a : b; }
35//constexpr ::i64 minimum(const size_t & a, const ::i64 & b) { return __lt(a, b) ? (::i64) a : b; }
36//
38//constexpr ::i32 minimum(const ::i32 & a, const ::u32 & b) { return __lt(a, b) ? a : (::i32) b; }
39//constexpr ::i64 minimum(const ::i64 & a, const size_t & b) { return __lt(a, b) ? a : (::i64) b; }
40//
41//
43//constexpr ::u32 maximum(const ::u32 & a, const ::i32 & b) { return __lt(b, a) ? a : (::u32) b; }
44//constexpr size_t maximum(const size_t & a, const ::i64 & b) { return __lt(b, a) ? a : (size_t) b; }
45//
47//constexpr ::u32 maximum(const ::i32 & a, const ::u32 & b) { return __lt(b, a) ? (::u32) a : b; }
48//constexpr size_t maximum(const ::i64 & a, const size_t & b) { return __lt(b, a) ? (size_t) a : b; }
49//
50//
51//#include "count.h"
52//
53//
54//#include "index.h"
55
56
57//CLASS_DECL_APEX ::i64 ceil_div(::i64 num, ::i64 den);
58//
59//
60//CLASS_DECL_APEX ::f64 tri(::f64 angle);
61//
62//
63//#ifdef __cplusplus
64//
65//
66//#include "natural.h"
67//
68//
69//#endif
70//
71//
72//
73//CLASS_DECL_APEX ::i32 ccvt_dup(char_pointer buf,::i32 nchar, ::f64 arg, ::i32 ndigits,::i32 *decpt,::i32 *sign,::i32 eflag);
74//CLASS_DECL_APEX ::i32 ecvt_dup(char_pointer buf,::i32 nchar, ::f64 arg, ::i32 ndigits,::i32 *decpt,::i32 *sign);
75//CLASS_DECL_APEX ::i32 fcvt_dup(char_pointer buf,::i32 nchar, ::f64 arg, ::i32 ndigits,::i32 *decpt,::i32 *sign);
76//CLASS_DECL_APEX ::i32 gcvt_dup(char_pointer buf,::i32 nchar, ::f64 arg, ::i32 ndigits);
77//CLASS_DECL_APEX ::i32 max_cvt_dup(char_pointer buf,::i32 nchar,::f64 arg,::i32 ndigits,::i32 *decpt,::i32 *sign, ::i32 * pi);
78//#define MATH_PI 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844
79//#define MATH_HALF_PI 1.570796326794896619231321691639751442098584699687552910487472296153908203143104499314017412671058533991074043256641153323546922
80//#define DEGREE_RADIAN 0.01745329251994329576923690768488612713442871888541725456097191440171009114603449443682241569634509482212304492507379059248385468
81//#define RADIAN_DEGREE 57.29577951308232087679815481410517033240547246656432154916024386120284714832155263244096899585111094418622338163286489328144827
82//
83//#include <math.h>
84//
85//
86//namespace degree
87//{
88//
89// inline CLASS_DECL_APEX ::f64 to_radian(::f64 dAngleDegrees)
90// {
91//
92// return dAngleDegrees * DEGREE_RADIAN;
93//
94// }
95//
96// inline CLASS_DECL_APEX ::f64 sin(::f64 dAngleDegrees)
97// {
98//
99// return ::sin(to_radian(dAngleDegrees));
100//
101// }
102//
103// inline CLASS_DECL_APEX ::f64 cos(::f64 dAngleDegrees)
104// {
105//
106// return ::cos(to_radian(dAngleDegrees));
107//
108// }
109//
110// inline CLASS_DECL_APEX ::f64 tan(::f64 dAngleDegrees)
111// {
112//
113// return ::tan(to_radian(dAngleDegrees));
114//
115// }
116//
117//} // namespace degree
118
119
120