Commit graph

16106 commits

Author SHA1 Message Date
Behdad Esfahbod
c248fd9133 [hash] Comment 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
42f4dab8db [hash] Switch to Knuth multiplicative hash
Wow, the old adhoc one was why the cmap test was timing out!
2023-05-16 10:12:02 +02:00
Behdad Esfahbod
0270e3e974 [map] Reinstate quadratic probing 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
19b628bdf0 Revert "[map] Implement Robinhood hashing"
This reverts commit 7056178568.
2023-05-16 10:12:02 +02:00
Behdad Esfahbod
18c3ba5018 [map] Implement Robinhood hashing
Numbers are not improved though. :(
2023-05-16 10:12:02 +02:00
Behdad Esfahbod
2133aa2407 [map] Inline code for set() 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
5bf5188ea2 [map] Simplify del() 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
2ffec3a6f4 [map] Shuffle fetch_item 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
1dc99128b9 [map] Separate has() code from set() code 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
2dd0803c85 [map] Downgrade from quadratic to linear probing 2023-05-16 10:12:02 +02:00
Behdad Esfahbod
498197671a [map] Write get() in terms of has() 2023-05-16 10:12:02 +02:00
Qunxin Liu
f37941bb52 [instancer] add tests for instancer-solver from python test suite
Also fix bug in the solver code
2023-05-15 14:41:57 -06:00
Qunxin Liu
39ac79a7f5 address review comments 2023-05-12 11:09:04 -06:00
Qunxin Liu
58f68dd37a [instancer] wrap hb_subset_input_Set_axis_range() under experimental
Also add notes: it's not actually working yet.
2023-05-12 11:09:04 -06:00
Qunxin Liu
f3a3c3b29d fix bot 2023-05-12 11:09:04 -06:00
Qunxin Liu
efc77dc68f [instancer] update code for collecting FeatureVariationRecord 2023-05-12 11:09:04 -06:00
Qunxin Liu
bf298e5050 [instancer ]update OS_2/post/glyf tables to accept Triple for axes positions 2023-05-12 11:09:04 -06:00
Qunxin Liu
51c7451bb5 [instancer] update fvar table to accept Tripe for axes positions 2023-05-12 11:09:04 -06:00
Qunxin Liu
bf46d566f9 [instancer] update STAT table to accept Triples for axes positions 2023-05-12 11:09:04 -06:00
Qunxin Liu
779e8ba080 [instancer] update subset-plan.cc to accept Triple as axes positions 2023-05-12 11:09:04 -06:00
Qunxin Liu
22cca43ded [instancer ]update internal hashmap to use Triple instead of single value
-Added hb-subset-instancer-solver.hh file and moved Triple struct to the
head file
2023-05-12 11:09:04 -06:00
Qunxin Liu
0799afe2b6 [instancer] Add hb_subset_input_set_axis_range() API 2023-05-12 11:09:04 -06:00
Behdad Esfahbod
5d543d6422
Merge pull request #4228 from harfbuzz/better-hash
Better hash
2023-05-09 19:02:26 -06:00
Behdad Esfahbod
5d0cc0062a [hash] Disable int hash as it has negative performance gain 2023-05-09 18:40:35 -06:00
Behdad Esfahbod
1fbb08584b [hash] Adjust prime number
Previous one wasn't a prime. Ouch!
2023-05-09 17:11:05 -06:00
Behdad Esfahbod
9cc7eb80ff [hash] Speed-up int64 hash 2023-05-09 16:13:46 -06:00
Khaled Hosny
4584bcdc32 7.3.0 2023-05-10 00:20:25 +03:00
Behdad Esfahbod
826fe2c9f7 [hash] Wrap specialization in HB_OPTIMIZE_SIZE_MORE 2023-05-09 13:48:38 -06:00
Behdad Esfahbod
b2b15fa30a [hash] Links 2023-05-09 13:39:52 -06:00
Behdad Esfahbod
05567da082 Revert "[hash] Use fasthash for integer hash"
This reverts commit 3bf758a57071572a0ffae3c359b4cfec5a096312.

This was resulting in long chains again :(.
2023-05-09 12:49:37 -06:00
Behdad Esfahbod
bdaa74d25f [hash] Use fasthash for integer hash
This seems to speed things up surprisingly.
2023-05-09 12:49:37 -06:00
Behdad Esfahbod
a58bbe5408 [set] Use better hash 2023-05-09 12:49:36 -06:00
Behdad Esfahbod
fe3339ea24 [algs] Add hash for 64bit ints 2023-05-09 11:31:06 -06:00
Behdad Esfahbod
33ef96b649 [glyf] Micro-optimize a few hash operations 2023-05-09 11:13:51 -06:00
Behdad Esfahbod
abb92388cc Revert "[map] Adjust resizing criteria"
This reverts commit 1fa4b41531.
2023-05-09 10:54:54 -06:00
Behdad Esfahbod
1fa4b41531 [map] Adjust resizing criteria 2023-05-09 10:52:58 -06:00
Behdad Esfahbod
f04d08b883 [fasthash] Remove GNU extension 2023-05-09 02:14:30 -06:00
Behdad Esfahbod
99f5050ccd [algs] Remove HB_NO_PACKED
We depend on packed attribute in fasthash now.
2023-05-09 02:07:54 -06:00
Behdad Esfahbod
da619c69c8 [fasthash] Try to fix unaligned access 2023-05-09 02:06:37 -06:00
Behdad Esfahbod
075ecff750 [hash] Work around g++ bug?!
I kid you not. Revert this and see src/test-map loop forever
eating your memory freezing your maching.

In this loop:

  {
    hb_hashmap_t<int, int> m0;
    hb_hashmap_t<std::string, int> m1;
    hb_hashmap_t<int, std::string> m2;
    hb_hashmap_t<std::string, std::string> m3;

    std::string s;
    for (unsigned i = 1; i < 1000; i++)
    {
      s += "x";
      m0.set (i, i);
      m1.set (s, i);
      m2.set (i, s);
      m3.set (s, s);
    }
  }

i will not stop at 1000 and just keeps going.  If you figure out
what's going on, please enlighten me!
2023-05-09 01:43:39 -06:00
Behdad Esfahbod
9fbab46f26 [cairo] Fix a clang warning 2023-05-09 01:42:44 -06:00
Behdad Esfahbod
e2fd49ff1a [hash] Comment 2023-05-08 23:37:47 -06:00
Behdad Esfahbod
fa64e42d75 [algs] Adjust int hash 2023-05-08 23:31:52 -06:00
Behdad Esfahbod
078b2a5101 [hash] Use a Mersenne prime for int hash
And hope that compiler optimizes to int ops instead of modula.

Improves chaining it seems.

Part of https://github.com/harfbuzz/harfbuzz/pull/4228
2023-05-08 22:31:30 -06:00
Behdad Esfahbod
fe0f7dc57b [bytes] Use fasthash as hash algorithm
Part of https://github.com/harfbuzz/harfbuzz/pull/4228
2023-05-08 22:19:02 -06:00
Rod S
4bbcff2c5c Help noobs who don't know their segment properties 2023-05-08 21:33:13 -06:00
Behdad Esfahbod
c005e3a2e3 [bytes] Simplify hash function
Part of https://github.com/harfbuzz/harfbuzz/issues/4227
2023-05-08 16:33:31 -06:00
Behdad Esfahbod
0e02680803 [hash] Add hash impl for integers
Part of https://github.com/harfbuzz/harfbuzz/issues/4227
2023-05-08 16:31:58 -06:00
Behdad Esfahbod
b7a8d23bc8 [map] Micro-optimize for hb_map_t 2023-05-08 14:32:24 -06:00
Behdad Esfahbod
2f05c32c36 [Coverage] Minor access arrayZ directly in a couple places 2023-05-08 14:29:07 -06:00