This reverts PR #914 which introduced a hacky way to replace
all std namespace maths function calls with sycl namespace ones.
Presumably the original intention was to use GLM functions in SYCL
device code (e.g. on GPUs) and force it to use the maths implementations
optimised for the target device. However, this has been very limited
in scope since the start because GLM relies heavily on function pointers
which are illegal to use inside SYCL device code.
The hacky solution shadowing std namespace with glm::std is problematic
in many ways. One was that it required re-introducing all std symbols used
across GLM codebase back to glm::std. The list of these symbols is difficult
to maintain over time without extensive CI testing and unsurprisingly it got
broken. Any code just including (some of) GLM headers now no longer compiles
with SYCL compilers even if GLM is only used on the host side (CPU code).
Remove this hack to allow SYCL programs using GLM on the host side to compile.
The original hack was tested against the ComputeCpp compiler which is now
phased out in favour of Intel's DPC++. Remove also the mention of ComputeCpp
from README. The statement about "any C++11 compiler" still covers the host
code compilation with DPC++.
It is used as default configuration for Visual Studio 64 bits compilation (needs Language Extension).
code changes:
- add new qualifiers:
unaligned_simd_highp
unaligned_simd_mediump
unaligned_simd_lowp
- add use_simd and replace is_aligned
(code for ARM NEON is added but not tested)
Fixes for compiler errors when building the tests using Clang 15,
including:
* Use explicit cast to silence Wimplicit-int-float-conversion
warning for conversion of spin count in implementation of
glm::slerp.
* Use GLM_FORCE_MESSAGES instead of removed GLM_MESSAGES for
messages in glm/gtx/hash.hpp, avoiding Wundef warning.
* Encode en dash in URL for Gram-Schmit Process wikipedia page and
replace similar en dashes in comments with regular dashes, to
avoid Winvalid-utf8 warnings in glm/gtx/matrix_factorisation.inl.
* Replace degree sign symbol with text "degrees" to avoid
Winvalid-utf8 warnings in test/gtc/gtc_quaternion.cpp.
* When using Clang, build tests with -Wno-float-equal to silence
Wfloat-equal warning in implementation of glm::vec<L,T,Q>::equal.
* For performance tests in test/gtx/gtx_fast_trigonometry.cpp, add
statement explicitly casting result to void, to silence
Wunused-but-set-variable warnings.
* Add newline at end of test/gtx/gtx_hash.cpp to silence
Wnewline-eof warning.
* Rename namespace _1aga to agarose in test/gtx/gtx_pca.cpp to
avoid Wreserved-identifier warning.
Depending on the developer environment, the output of round for o.5 or -0.5 may be different (according to the GLSL spec). So the test was too restrictive.
The previous patch made the incorrect assumption matrices were row-major
instead of column-major (got the two mixed up in my head).
This fixes this problem.
Also, this extends the test files to cover all matrix sizes (not types,
that would be redundant).