Commit Graph

756 Commits

Author SHA1 Message Date
orange 152eafb78f disable benchmark build for CI/CD 2025-09-22 02:34:52 +03:00
orange f8beaa4bab added source engine benchmark 2025-09-22 02:29:36 +03:00
orange 614e5ebb35 unreal engine fix 2025-09-22 02:12:20 +03:00
orange 36e4cef2f3 fix unity 2025-09-22 02:10:33 +03:00
orange 577afd4d4a opengl fix 2025-09-22 02:08:58 +03:00
orange aebb29d773 Merge pull request #75 from orange-cpp/bugfix/fix_look_at
Bugfix/fix look at
2025-09-20 17:12:16 +03:00
orange 3c81aea2ca unified look at for source iw_engine 2025-09-20 17:09:13 +03:00
orange 32d88f0881 improved tests 2025-09-20 17:00:49 +03:00
orange 15898e9b3d improved opengl tests stability 2025-09-20 16:36:05 +03:00
orange e37fefae23 improved test stability 2025-09-20 16:34:44 +03:00
orange f8f3f2c45d fixed test 2025-09-20 16:22:24 +03:00
orange aee78d7671 added more iterations 2025-09-20 16:08:04 +03:00
orange eb443d533c style fix 2025-09-20 16:00:30 +03:00
orange 5466638330 fixed unreal 2025-09-20 15:59:43 +03:00
orange 19350b2618 fixed unity 2025-09-20 15:54:48 +03:00
orange 53b495a413 fixed opengl 2025-09-20 15:48:59 +03:00
orange 18a1349693 reverted 2025-09-20 15:46:21 +03:00
orange 584a66b20c fix 2025-09-20 15:44:33 +03:00
orange 3e5fb1bdb5 fixed rotation matrix 2025-09-20 15:44:33 +03:00
orange 3fa85f4c4d added new mat function
more tests
2025-09-20 15:44:33 +03:00
orange d3c90253f7 fixed test 2025-09-20 15:44:33 +03:00
orange eeb4dccb12 fixed iw engine
fixed source

revert
2025-09-20 15:44:33 +03:00
orange 708c8c082b Update README.md 2025-09-18 19:39:11 +03:00
orange e9dbec778d fixed warning 2025-09-18 19:06:56 +03:00
orange 99d77d7790 fix 2025-09-18 18:42:02 +03:00
orange df5ca54b90 now its ref 2025-09-18 18:39:28 +03:00
orange 80bae265c0 improved naming 2025-09-18 18:38:07 +03:00
orange 4929c96e5b Update CREDITS.md to include Billy O'Neal
Added acknowledgment for Billy O'Neal's contributions.
2025-09-18 06:08:49 +03:00
orange f66f028317 Merge pull request #74 from BillyONeal/fmodf
Don't name std::fmodf.
2025-09-18 06:04:43 +03:00
orange dc3f2980db Removes FMA check for matrix multiplication
Removes preprocessor check for FMA instructions in matrix multiplication functions.
This simplifies the code and relies on the compiler's ability to optimize the
code based on available hardware support. The assumption is that modern
compilers will automatically utilize FMA instructions if available, and fall
back to alternative implementations if not.
2025-09-18 06:02:37 +03:00
orange 4505aee3c2 Guards AVX2 usage with a preprocessor definition
Ensures that AVX2 intrinsics are only included when the
OMATH_USE_AVX2 preprocessor definition is set. This prevents
compilation errors when AVX2 support is not available or
explicitly disabled.
2025-09-18 05:22:22 +03:00
Billy Robert O'Neal III ee8073ceb4 Don't name std::fmodf.
The C standard library function fmodf is not guaranteed to be in namespace std, and in fact is not with a default Ubuntu 24.04 installation, leading to the following compile error:

```console
Change Dir: '/vcpkg/buildtrees/vcpkg-ci-orange-math/x64-linux-dbg'

Run Build Command(s): /vcpkg/downloads/tools/ninja/1.12.1-linux/ninja -v -v -j33
[1/2] /usr/bin/c++ -DOMATH_SUPRESS_SAFETY_CHECKS -DOMATH_VERSION=\"3.5.0\" -isystem /vcpkg/installed/x64-linux/include -fPIC -g -std=gnu++23 -MD -MT CMakeFiles/main.dir/main.cpp.o -MF CMakeFiles/main.dir/main.cpp.o.d -o CMakeFiles/main.dir/main.cpp.o -c /vcpkg/scripts/test_ports/vcpkg-ci-orange-math/project/main.cpp
FAILED: CMakeFiles/main.dir/main.cpp.o
/usr/bin/c++ -DOMATH_SUPRESS_SAFETY_CHECKS -DOMATH_VERSION=\"3.5.0\" -isystem /vcpkg/installed/x64-linux/include -fPIC -g -std=gnu++23 -MD -MT CMakeFiles/main.dir/main.cpp.o -MF CMakeFiles/main.dir/main.cpp.o.d -o CMakeFiles/main.dir/main.cpp.o -c /vcpkg/scripts/test_ports/vcpkg-ci-orange-math/project/main.cpp
In file included from /vcpkg/installed/x64-linux/include/omath/omath.hpp:22,
                 from /vcpkg/scripts/test_ports/vcpkg-ci-orange-math/project/main.cpp:1:
/vcpkg/installed/x64-linux/include/omath/color.hpp: In member function ‘constexpr omath::Hsv omath::Color::to_hsv() const’:
/vcpkg/installed/x64-linux/include/omath/color.hpp:98:45: error: ‘fmodf’ is not a member of ‘std’; did you mean ‘modf’?
   98 |                 hsv_data.hue = 60.f * (std::fmodf(((green - blue) / delta), 6.f));
      |                                             ^~~~~
      |                                             modf
ninja: build stopped: subcommand failed.
```

Only the 'sufficient additional overloads' of `fmod` are guaranteed to be in `std`. Since this is clearly intended to call the (float, float) overload, explicitly cast `((green - blue) / delta)` (which is a `double`) to `float` and call the name in `std` as suggested by the diagnostic.
2025-09-17 19:15:10 -07:00
orange 800965a16c Merge pull request #73 from orange-cpp/featore/performance_tests
added performance folder
2025-09-17 20:53:11 +03:00
orange 3e560cbfa4 fix 2025-09-17 20:50:30 +03:00
orange fbebed3d16 patch 2025-09-17 20:46:00 +03:00
orange 439da31334 improved bench 2025-09-17 20:40:03 +03:00
orange f7cb5eef1f fix 2025-09-17 20:25:22 +03:00
orange f6254c6a8c patch 2025-09-17 20:22:42 +03:00
orange e0c5c1c56b added benchmark submodule 2025-09-17 20:14:33 +03:00
orange e090ac1d9a added benchmark 2025-09-17 19:56:50 +03:00
orange dc3606301d added avx mutiplication 2025-09-17 19:47:29 +03:00
orange eb0ca6627f renamed folder 2025-09-17 18:07:28 +03:00
orange e2be30f505 added performance folder 2025-09-17 17:47:55 +03:00
orange a742d99205 Merge pull request #72 from orange-cpp/feature/mat_refactor
Feature/mat refactor
2025-09-17 17:41:15 +03:00
orange 578a4e1d32 removed unused var 2025-09-17 17:38:17 +03:00
orange 13e0bb3262 added space 2025-09-17 17:33:05 +03:00
orange 619c15072c decomposed mutiplication 2025-09-17 17:30:57 +03:00
orange 242fc45ffa forgot std 2025-09-17 17:23:02 +03:00
orange 36628c0400 Merge pull request #71 from orange-cpp/feature/mat_perf_boost
Improves matrix multiplication performance
2025-09-17 17:18:12 +03:00
orange a630da39e3 Improves matrix multiplication performance
Optimizes matrix multiplication by specializing the algorithm
based on the matrix storage type (row-major or column-major).

This change significantly improves performance by leveraging
memory access patterns specific to each storage order.
2025-09-17 17:12:41 +03:00