17 Commits

Author SHA1 Message Date
52d9f2c859 Add checked mul arithmetic 2025-12-23 14:11:05 +01:00
4111f54159 Add checked arithmetic 2025-12-23 14:11:05 +01:00
111023b7b1 Add guf_tok test 2025-12-23 14:11:05 +01:00
e923775769 Fix guf_str bugs and add tests 2025-12-23 14:11:05 +01:00
e1bc585f68 Use SIZE_MAX instead of SIZE_T_MAX 2025-12-23 14:11:05 +01:00
25cf7f17b7 Fix dict asserts 2025-12-23 14:11:05 +01:00
c8ffde8c19 Fix warnings in release 2025-12-23 14:11:05 +01:00
18f4496204 Fix GUF_DICT_64_BIT_IDX and guf_dict_max_capacity() 2025-12-23 14:11:05 +01:00
5d8fa1cc62 Fix allocation overflow for guf_dbuf and guf_dict
(Implement GUF_ALLOC_MAX_BYTES and GUF_ALLOC_MAX_CAPACITY).
2025-12-23 14:11:05 +01:00
81ab99ff15 Implement guf_str 2025-12-23 14:11:05 +01:00
7e348e74bc Change linalg mat_inverse.
Still not sure whether it's better to calculate
rref[pivot_row][col] * (rref[row][pivot_col] / pivot_val) (option 1)
vs.
rref[pivot_row][col] * rref[row][pivot_col] / pivot_val   (option 2)

(i.e.  a * b / c vs. "a * (b/c))

in terms of floating point error.

But I think option 1 (current commit) is better, since the scale factor
(rref[row][pivot_col] / pivot_val) is always <= 1 here (I think).
2025-12-23 14:11:05 +01:00
ac9fa9f9ce Add quaternion operations 2025-12-23 14:11:05 +01:00
2bf683906b Add more dict tests 2025-12-23 14:11:04 +01:00
8197a5f45f Add dict_erase tests 2025-12-23 14:11:04 +01:00
467f9be00a Refactor 2025-12-23 14:11:04 +01:00
947041838e Add tokeniser 2025-12-23 14:11:04 +01:00
ead8bd8914 Work on utf-8 2025-12-23 14:11:04 +01:00