aboutsummaryrefslogtreecommitdiffstats
path: root/include/jau
Commit message (Collapse)AuthorAgeFilesLines
...
* Naming: Free (enum) types: lower case + '_t' (endian_t, lb_endian_t, ↵Sven Göthel2024-05-129-320/+329
| | | | os_type_t, abi_type_t, cpu_family_t, ..); Use (new) singleton CpuInfo caching all jau::cpu information
* float_math: Fix adeg_to_rad<T>() and rad_to_adeg<T>() .. template meta typo ↵Sven Göthel2024-05-111-6/+6
| | | | (used true SFINAE as return value, duh)
* debug: Fix fprintf_td(): Use stream arg for elapsed_md portion (not stderr); ↵Sven Göthel2024-05-111-0/+9
| | | | Add fprintf_td() variant with given elapsed_ms argument
* Fix and enhance sleep*(): Move decl to basic_types.hpp; Add bool ↵Sven Göthel2024-05-112-154/+196
| | | | ignore_irq=true and return bool for sleep-completion; Use clock_nanosleep() return value not errno (bug); Add simple milli_sleep() and sleep()
* WebAssembly (emscripten) PatchesSven Göthel2024-05-103-16/+52
|
* math: Resolve clang-tidy warnings and add PMVMat4f const getter variants.Sven Göthel2024-05-103-19/+20
|
* math Matrix4f: Fix setToRotationAxis() 0.9f -> zero, typoSven Göthel2024-05-101-1/+1
|
* math: vec[234][fi]: Add constexpt static const size_t components and ↵Sven Göthel2024-05-104-0/+24
| | | | byte_size info for convenience
* cpp_lang_util: Prefer using simple consteval/expr functions w/o ↵Sven Göthel2024-05-101-16/+54
| | | | meta-template, add is_cxxNN() for C++Version,
* base_math: Add sign() for unsigned<T>Sven Göthel2024-05-101-1/+10
|
* cpp_lang_util: Add inline constexpr const bool debug_enabled; ↵Sven Göthel2024-05-071-0/+6
| | | | test_math_mat4f_02_mul only issues 1M loops if debug_enabled
* Misc fixes occured w/ Direct-BTSven Göthel2024-05-042-4/+5
|
* Add NativeLinker (os) for RTLD supportSven Göthel2024-05-022-0/+290
|
* string_util: to_string(vector<>): don't append space after delim as it ↵Sven Göthel2024-05-021-2/+2
| | | | should be contained if desired; Use default delim `, `
* file_util: Add chdir(); Add API doc on absolute(), i.e. relpath must existSven Göthel2024-05-021-6/+10
|
* file_util: robustness: dir_item is empty w/ empty path; visit: Add depth ↵Sven Göthel2024-05-021-19/+47
| | | | | | | | | | | | argument to path_visitor and add 'dir_check_entry' traverse_{event, options} to allow visitor to skip a directory (incl. Java) path_visitor returning false on dir_check_entry only causes visitor to skip this directory, for all other events overall traversal ends. depth argument added to path_visitor allows user to act on the recusrive depth info conveniently. Added test case demos a flat directory traversal.
* Add jau::os::UserInfo, extracted POSIX code from testsudo_fileutils02 (TODO: ↵Sven Göthel2024-05-011-0/+100
| | | | Windows)
* string_util to_hexstring(pointer): Use uintptr_t for 32bit platforms (not ↵Sven Göthel2024-05-011-1/+1
| | | | uint64_t)
* dyn_linker: Use (more natural) 'void*' for libhandle_t and symhandle_t as ↵Sven Göthel2024-05-011-7/+7
| | | | used by dlopen/dlsym ..
* dyn_linker: Fix C++17 constexpr usage (std::string is constexpr >= C++20 only)Sven Göthel2024-05-011-6/+6
|
* math_error.hpp: Move to jau::math, which also fixed the (doxygen) Math Group ↵Sven Göthel2024-04-304-13/+13
| | | | (must reside under one namespace)
* Cleanup groups OSSup + MathSven Göthel2024-04-302-3/+3
|
* os_support: Reuse jau::to_string(vector<T>, ..)Sven Göthel2024-04-301-0/+2
|
* os_support: Complete is_defined_os_type(), add is_qnxnto()Sven Göthel2024-04-301-3/+10
|
* os: dyn_linker: Add DynamicLinker (singleton) handling cross-platform ↵Sven Göthel2024-04-301-0/+359
| | | | | | | | | dynamic libraries (WIP) test_os_dynlinker passes on GNU/Linux, other platforms (esp Windows) must be tested. For Windows we also would have other items to port, like jau::fs etc .. in case no POSIX functions are available.
* file_util: Add absolute() and isAbsolute(), make test_fileutils* more robust ↵Sven Göthel2024-04-302-0/+18
| | | | using test-exe-path -> test_data dir
* os_support (new): jau::os: Adding platform info: constexpr os_type + ↵Sven Göthel2024-04-301-0/+313
| | | | | | | | abi_type enum class (like endian); get_os_and_arch(), get_platform_info(); Runtime info get_rt_os_info(); constexpr os_type + abi_type enum class utilize predef cc macros like cpu_family. get_os_and_arch() is aligned with JogAmp's os_and_arch naming scheme, compatible.
* cpp_lang_util.hpp: API doc: Update predef compiler macros, gcc >= 12 has ↵Sven Göthel2024-04-301-3/+13
| | | | buildin bit_cast()
* cpuid: complete cpu_family, use constexpr get_cpu_family() using ↵Sven Göthel2024-04-301-19/+94
| | | | predef-macros and static_assert on get_arch_psize() / __LP64__
* string_util: Add split_string() , toLowerInPlace() and toLower(), rename ↵Sven Göthel2024-04-301-1/+8
| | | | trimCopy() -> trim()
* cleanup: Place static_assert() in compilation unit once (outside of ↵Sven Göthel2024-04-302-4/+10
| | | | function); to_string(): Pass value for small elements
* math: Fix and test Matrix4::mapWinToObj, unit test test_math_mat4f_10_project01Sven Göthel2024-04-291-2/+2
|
* math: vec[234][fi]: Add begin, cbegin methods and explicit const_pointer and ↵Sven Göthel2024-04-294-0/+24
| | | | pointer conversion ops, allowing to access aligned memory like Matrix4
* math: Move AABBox* from jau::math -> jau::math::geomSven Göthel2024-04-296-10/+11
|
* math: Make PMVMatrix4 a template class, typedef'ed using float to PMVMat4f ↵Sven Göthel2024-04-283-255/+246
| | | | (Similar w/ SyncMatrix4 and SyncMatrices4); Update related unit tests
* math: Matrix4: Reuse copy methods, incr-pointer instead of array-indexSven Göthel2024-04-281-85/+61
|
* math: Initial PMVMat4f port w/ SyncBuffer impl, misc constexpr fixesSven Göthel2024-04-283-4/+1434
|
* math sstack: Add MatrixStack<T>Sven Göthel2024-04-281-4/+61
|
* math: frustum: Fix public access + constexpr + drop pointer-offset-param ↵Sven Göthel2024-04-281-31/+31
| | | | (was Java'sh API)
* math: mat4f: Complete static multi Matrix ops; Misc fixesSven Göthel2024-04-281-52/+49
|
* math: vec[234][if] + recti: Refine methods, add vec*::scale(), validate net ↵Sven Göthel2024-04-285-10/+51
| | | | size (static_assert) besides alignof
* functional: Drop 'constexpr' due to malloc usage in delegate_tSven Göthel2024-04-281-6/+6
|
* math: Mat4f: Use proper Vec3 template type; Started multi Matrix opsSven Göthel2024-04-261-87/+79
|
* math: Vec[234]: Add add() + mul() w/ component argsSven Göthel2024-04-264-4/+24
|
* math: Mat4f: Refine constexpr, add translate/scale methods. TODO: Static ↵Sven Göthel2024-04-261-126/+21
| | | | multi Matrix ops
* math: Mat4f: toString() default w/ 13.9f formatting; Reuse load method for ↵Sven Göthel2024-04-261-6/+2
| | | | assignment op
* math: Mat4f/Quaternion: Use multiple of epsilon max deviation constantsSven Göthel2024-04-262-2/+10
|
* math: float_si_types: Refine types f -> f32, fix si_speedf32_t usage, use ↵Sven Göthel2024-04-261-16/+16
| | | | float consts where applicable
* Math: Frustum: Simplify setFromMat{4->}(..)Sven Göthel2024-04-251-2/+2
|
* math: Mat4f tests: Add test_math_mat4f_01 (simple); test_math_mat4f_02_perf ↵Sven Göthel2024-04-251-0/+1
| | | | | | | | | | | | | | | | | | | | (perfomance) Native C++ Mat4f multiplications beat JOGL's Matrix4f Java implementation by factor >13 (Java-17/C++ -O3), utilizing same code logic. Java: Summary loops 25000000: I4a 1080 ms total, 0.021600 us/mul, I4a / I2 141.732283%, I4a / I4b 99.447514% Summary loops 25000000: I4b 1086 ms total, 0.021720 us/mul, I4b / I2 142.519685%, I4b / I4a 100.555556% C++: Summary loops 300000000: I4a 981 ms total (981,836 us), 1.636394 ns/mul, I4a / I4b 99.785742% Summary loops 300000000: I4b 983 ms total (983,944 us), 1.639908 ns/mul, I4b / I4a 100.214718% Java: 21.600 ns/mul <- 0.021600 us/mul C++: 1.64 ns/mul Java / C++: >13