|
Boost Users : |
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2008-01-13 09:48:08
Joel de Guzman wrote:
> Richard wrote:
> > [Please do not mail me a copy of your followup]
> >
> > boost_at_[hidden] spake the secret code
> > <fmblls$ees$1_at_[hidden]> thusly:
> >
> >> I also urge Steven to pursue the dynamic_switch idea I
> posted which
> >> employs perfect hashing at compile time whereby allowing
> equivalent
> >> or faster than a switch dispatch at runtime where the cases are
> >> dynamic (instead of compile time constants).
> >
> > I just want to say that I think this approach is so
> amazingly cool, my
> > socks are not only blown off, but orbiting the planet :-).
>
> Yes, it's so cool. I believe it can be done. A well designed
> compiler implements switch using perfect (or near perfect)
> hashing anyway. Seems though that some compilers still don't.
>
> Here's the relevant link (with attached experiment code):
>
> http://lists.boost.org/Archives/boost/2004/08/69787.php
FWIW, I did a lot of work related to perfect hash generation lately (up 100
million entries in the hash table) and I second Joels request. Perfect hashs
are a _very_ fast alternative to sequenced if/else if chains. The beauty of
this is, that it is possible to generate perfect hashs for any type of key,
not only for integer values, which again is of particular interest in
dynamic switch scenarios. And I'ld be happy to help with this.
Regards Hartmut
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net