58 Commits

Author SHA1 Message Date
jun
3ee07078f0 Add comments 2025-03-21 00:51:29 +01:00
jun
7630ecfdcf Change directory structure 2025-03-21 00:22:34 +01:00
jun
275f46226d Add more guf_str functions 2025-03-20 23:30:45 +01:00
jun
21d1b04e6b Add changeable load factor 2025-03-20 20:29:21 +01:00
jun
534ff261ca Add move- and copy ctors to dict and guf_str 2025-03-20 15:29:18 +01:00
jun
c039e24996 Use SIZE_MAX instead of SIZE_T_MAX 2025-03-19 23:03:10 +01:00
jun
29014f4c52 Fix dict asserts 2025-03-19 19:16:31 +01:00
jun
48b366d8e9 Fix warnings in release 2025-03-19 18:29:52 +01:00
jun
7e1bbc769e Replace puts with fputs in guf_err_to_str 2025-03-19 18:14:06 +01:00
jun
1e534731bb Pass key_hash to guf_dict_find_idx to avoid re-computation 2025-03-19 17:03:12 +01:00
jun
b01e087c85 Fix GUF_DICT_64_BIT_IDX and guf_dict_max_capacity() 2025-03-19 16:16:41 +01:00
jun
6a7bd2bd97 Use single u32/u64 as GUF_DICT_KV_META_T instead of two 2025-03-19 15:23:32 +01:00
jun
e535d39e3d Fix allocation overflow for guf_dbuf and guf_dict
(Implement GUF_ALLOC_MAX_BYTES and GUF_ALLOC_MAX_CAPACITY).
2025-03-18 13:43:36 +01:00
jun
cc0413116d Improve guf_id_pool 2025-03-17 23:08:30 +01:00
jun
ad884ee1e9 Implement guf_str 2025-03-17 21:17:07 +01:00
jun
9ddea4bb07 Change short-string approach to use 32 instead of 40 bytes 2025-03-11 12:24:44 +01:00
jun
c860a6ccfe Add 3x3 matrix inversion 2025-03-08 11:25:57 +01:00
jun
ae104919e0 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-03-07 21:24:53 +01:00
jun
dac1d159b1 Fix linalg bugs 2025-03-07 16:06:45 +01:00
jun
9096a4f9c9 Add guf_nearly_zero/one 2025-03-07 13:42:28 +01:00
jun
7b433cd776 Add matrix inversion 2025-03-07 10:58:08 +01:00
jun
364dd603cf Fix guf_dict size types 2025-03-06 13:51:32 +01:00
jun
d057d76334 Rename GUF_STATIC_BUF_SIZE 2025-03-06 12:02:18 +01:00
jun
e489dd694b Add quaternion operations 2025-03-06 11:52:24 +01:00
jun
fc8118c182 Add linear algebra functions 2025-03-04 12:30:02 +01:00
jun
24bc8d5a15 Add guf_str_view functions 2025-03-04 08:18:35 +01:00
jun
301477f5c6 Add GUF_CSTR_TO_VIEW_CPP 2025-03-04 08:01:41 +01:00
jun
9d62df6a83 Add more dict tests 2025-03-04 06:52:42 +01:00
jun
8e6ffcdc70 Add dict_erase tests 2025-03-03 16:14:13 +01:00
jun
a41ff868f2 Fix guf_dict probing 2025-03-03 11:28:40 +01:00
jun
4d97725bba Fix guf_dict growth bug 2025-03-02 21:41:30 +01:00
jun
cd1c1cd5db Refactor 2025-03-02 18:25:54 +01:00
jun
8b02eff3b7 Make preserved_delims work (in guf_str_next_tok) 2025-02-27 13:02:28 +01:00
jun
217622d816 Add tokeniser 2025-02-27 10:21:21 +01:00
jun
d450cd8a45 Add utf-8 handling 2025-02-27 07:12:43 +01:00
jun
60e2849b01 Work on utf-8 2025-02-26 03:57:04 +01:00
jun
7a990c810e Add more tests 2025-02-25 15:12:38 +01:00
jun
6abe12c4c1 Improve tests 2025-02-25 14:01:20 +01:00
jun
c1e125dfcb Add C++ tests 2025-02-24 00:01:48 +01:00
jun
4c35d180e8 Improve iterator functions 2025-02-23 13:36:09 +01:00
jun
1f16b0e849 Fix dbuf iterator begin for dbuf.size == 0 2025-02-23 09:45:29 +01:00
jun
13abedd2ad Implement guf_dict 2025-02-23 09:18:50 +01:00
jun
81fc19aa85 Work on guf_dict 2025-02-19 08:18:18 +01:00
jun
22ebd8aa05 Add guf_rand with 32-bit operations (using xoshiro128** 1.1) 2025-02-18 20:06:59 +01:00
jun
f911933588 Fix overflow in guf_rand32range_i32 and guf_randrange_i64 2025-02-15 18:04:53 +01:00
jun
500fd47986 Add guf_rand32 2025-02-15 04:36:58 +01:00
jun
6b222eafc1 Add guf_rand 2025-02-15 03:00:15 +01:00
jun
fd58daa8b5 Change iterator 2025-02-01 13:31:15 +01:00
jun
df9d1c9c10 Add iter index functions 2025-01-30 16:10:10 +01:00
jun
67b5759e03 Change sort function name 2025-01-30 14:07:08 +01:00