9#ifndef XCMATH_DECLARATION_HPP
10#define XCMATH_DECLARATION_HPP
22template <
size_t... _idx>
28template <
size_t _From,
size_t _To,
size_t _Step = 1>
30 if constexpr (_From <= _To)
31 return [&]<
size_t... _Pack>(
this auto&& self) {
32 if constexpr (_Step *
sizeof...(_Pack) < _To - _From + 1)
34 operator()<_Pack..., _From + _Step *
sizeof...(_Pack)>();
36 return Slice<_Pack...>();
39 return [&]<
size_t... _Pack>(
this auto&& self) {
40 if constexpr (_Step *
sizeof...(_Pack) < _From - _To + 1)
42 operator()<_Pack..., _From - _Step *
sizeof...(_Pack)>();
44 return Slice<_Pack...>();
47template <
size_t _Start,
size_t _Len,
size_t _Step = 1>
50template <
size_t _Len,
size_t _Step = 1>
52template <
size_t _End,
size_t _Len,
size_t _Step = 1>
62template <
typename _Tp,
size_t _length>
63 requires(_length > 0 && std::is_default_constructible_v<_Tp>)
73template <
typename _Tp,
size_t _rows,
size_t _cols>
99template <
class _Tp1,
class... _Tp>
100vec(
const _Tp1&,
const _Tp...) ->
vec<_Tp1,
sizeof...(_Tp) + 1>;
132template <
size_t _len>
140template <
size_t _len>
148template <
size_t _len>
156template <
size_t _len>
164template <
size_t _len>
172template <
size_t _len>
180template <
size_t _len>
188template <
size_t _len>
196template <
size_t _len>
485constexpr long double PI =
486 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679;
Complex number class template
Quaternion class template
Compiler-specific type information handling for MSVC
constexpr long double PI
Pi constant
constexpr auto slice_from_end
mat3x3< unsigned long > mat3x3ul
mat2x2< unsigned long > mat2x2ul
constexpr auto slice_from_to
mat4x4< unsigned long > mat4x4ul
constexpr auto slice_start_len
Compile-time index sequence for vector slicing operations
static constexpr size_t length
Number of elements in slice