Bruce Mitchener
e4419c4f18
Fix typos.
2024-02-08 15:12:30 +07:00
Recep Aslantas
6d8dd42ac2
simd: use new glmm_min/max in vec4 where possible
2024-01-11 00:14:28 +03:00
BeeverFeever
4c4a69ddfe
Should be all
2023-12-11 01:08:10 +11:00
BeeverFeever
865faad116
Fix simd versions
2023-12-10 15:49:59 +11:00
BeeverFeever
39602ef4d7
Fix vec4 functions
2023-12-05 18:49:10 +11:00
BeeverFeever
7696374f1e
Vector subtraction functions
...
Add subtraction family of functions for vectors.
2023-12-04 21:32:19 +11:00
myfreeer
009405adcd
wasm: prefer pmin/pmax
...
According to [emscripten](https://emscripten.org/docs/porting/simd.html ) and [v8](b6520eda5e/src/compiler/backend/x64/code-generator-x64.cc (L2661-L2699) ), `[f32x4|f64x2].[min|max]` compiles to much more instructions than `[f32x4|f64x2].[pmin|pmax]`.
It is defined in [spec](https://github.com/WebAssembly/spec/blob/main/proposals/simd/SIMD.md#floating-point-min-and-max ) that the difference between pmin/pmax and min/max is NaN-propagating behavior, and the equivalent to the x86 `_mm_min_ps`/`_mm_max_ps` is pmin/pmax in [v8](b6520eda5e/src/compiler/backend/x64/code-generator-x64.cc (L2740-L2747) ).
This should make functions with min/max faster on webassembly, and align with the existing behavior with x86 sse.
2023-12-02 09:54:49 +08:00
Vincent Davis Jr
5833d1bf44
vec4: add new function glm_vec4_make
...
Function takes in a float array. Array must be
at least of size 4 and converts it into
a 4D vector.
Signed-off-by: Vincent Davis Jr <vince@underview.tech >
2023-07-02 13:54:10 -05:00
Wladislav ヴラド Artsimovich
87ae96b847
Fix Singular / Plural in comments
2023-06-16 17:40:06 +09:00
Recep Aslantas
391d8670c2
simd, sse: use 0x80000000 insteaf of -0.f to fix fastmath on msvc
2023-04-21 20:14:58 +03:00
myfreeer
81b7c90271
simd128: simplify calls
2023-04-15 22:06:04 +08:00
myfreeer
3a9e4df393
simd128: handle both sse2 and simd128 enabled by Emscripten
...
https://github.com/recp/cglm/pull/286#issuecomment-1492985403
2023-04-02 12:39:20 +08:00
myfreeer
51ce4db82e
simd128: code style
2023-04-01 19:38:28 +08:00
myfreeer
73adfe08c0
simd128: inline _mm_cvtss_f32
2023-04-01 19:34:19 +08:00
myfreeer
3aca10ecda
simd128: minor lint
2023-03-29 20:41:47 +08:00
myfreeer
03c7bee863
simd128: inline some functions
2023-03-26 19:34:07 +08:00
myfreeer
71c585b159
simd128: enable in headers
2023-03-26 19:34:07 +08:00
Recep Aslantas
d13842e7de
arm: optimize vec4 div with NEON
2021-04-24 00:51:09 +03:00
Recep Aslantas
f303984aad
use unified glmm api for vec4
2021-04-23 23:34:36 +03:00
Recep Aslantas
04008d9c3f
arm: fix fma for glm_vec4_muladds
2021-04-19 00:21:04 +03:00
Recep Aslantas
f3f29bd383
vec4: optimize muladd and muladds with fma
2021-04-18 16:24:29 +03:00
Recep Aslantas
f49e8f9991
neon: fix vec4_muladds (critical)
2020-05-26 23:03:32 +03:00
Recep Aslantas
269bdb3dbd
fix arm neon build
2020-05-11 20:19:05 +03:00
Luigi Castelli
27cc9c3351
vec: some useful functions ( #103 )
...
These functions are added:
- abs(): absolute value
- fract(): fractional part
- norm_one(): L1 norm
- norm_inf(): infinity norm
- hadd(): horizontal add
- hmax(): horizontal max
2019-09-01 00:30:15 +03:00
Recep Aslantas
03fda193a5
vec: update docs for norm
2019-08-30 14:47:26 +03:00
Luigi Castelli
4639f3184a
glm_lerpc(), glm_step(), glm_smoothstep(), glm_smoothinterp() ( #98 )
...
* lerp, step, smoothstep
* glm_lerp() and friends are no longer clamped, use glm_lerpc() and friends
* mix() function as wrapper of lerp()
* no there are clamp and raw version of lerp functions
2019-08-25 22:17:36 +03:00
Luigi Castelli
43b36f1dc1
squared distance with SIMD support ( #96 )
...
squared distance for vec4
2019-08-23 10:32:54 +03:00
Recep Aslantas
f0be6eb448
Merge branch 'master' into swizzle
2019-06-06 12:58:55 +03:00
Recep Aslantas
bb8ff25752
Revert "mark readonly parameters as const"
2019-04-30 08:19:07 +03:00
Recep Aslantas
6ed275734b
mark readonly parameters as const
2019-04-28 12:15:43 +03:00
Wasin Thonkaew
461a4009ba
refactor vec4 : glm_vec4_distance for SSE/SSE2
...
According to suggestion by recp at
https://github.com/recp/cglm/issues/82#issuecomment-483051704 .
2019-04-19 02:07:57 +08:00
Wasin Thonkaew
8f2f2c5572
Fix to use armv7 compatible function for glm_vec4_distance
...
Before it used armv8 only function thus it leads to build failed for
Android with target of armv7 i.e. armeabi-v7a. This fixed that issue.
2019-04-19 01:47:50 +08:00
Recep Aslantas
6c0c5167b0
docs: fix some parameter docs
2019-03-31 18:53:31 +03:00
Recep Aslantas
11a6e4471e
fix vec4_cubic function
2019-01-28 14:26:02 +03:00
Recep Aslantas
59b9e54879
vec4: helper to fill vec4 as [S^3, S^2, S, 1]
2019-01-26 15:54:10 +03:00
Recep Aslantas
31bb303c55
simd: organise SIMD-functions
...
* optimize dot product
2019-01-24 10:17:49 +03:00
Recep Aslantas
f65f1d491b
simd: optimize vec4_distance with sse and neon
2019-01-22 09:23:51 +03:00
Recep Aslantas
f0c2a2984e
simd, neon: add missing neon support for vec4
2019-01-22 09:05:38 +03:00
Recep Aslantas
b117f3bf80
neon: add neon support for most vec4 operations
2019-01-21 23:14:04 +03:00
Recep Aslantas
2ef9c23a6c
vec: normalize cross product helper
2018-12-06 18:01:52 +03:00
Recep Aslantas
92605f845a
test: fix comparing two float values in tests
2018-12-05 16:34:22 +03:00
Recep Aslantas
6d6954b208
vec: minnadd and maxadd helpers
2018-11-29 10:50:24 +03:00
Recep Aslantas
4e08b7e335
vec: rename parameter names
2018-11-29 09:55:27 +03:00
Recep Aslantas
aee381d869
vec: deprecate glm_vec_inv and glm_vec4_inv
...
* because in the current implementation, `glm_vec3_negate` does same thing. It is duplicate.
2018-11-29 09:23:14 +03:00
Recep Aslantas
b4bf8f3537
vec: rename glm_vec_ to glm_vec3_ (continue)
...
* add missing functions to vec4
* update docs
2018-11-29 09:07:48 +03:00
Recep Aslantas
0b8c63a90e
vec: rename glm_vec_ namespace to glm_vec3_
2018-11-28 23:22:30 +03:00
Recep Aslantas
3738499927
update doc for vec4_ucopy
2018-07-14 12:12:15 +03:00
Recep Aslantas
1d527dc2f0
unalignned version for vec4_copy
2018-07-14 12:03:42 +03:00
Recep Aslantas
43c4d05d4a
new version for clamp: clamp to zero and one
2018-07-12 11:39:56 +03:00
Recep Aslantas
da5ad69863
simd: rename _mm_ extensions to glmm_
2018-05-10 14:27:53 +03:00