Andy Ray Terrel wrote: > On Tue, Oct 6, 2009 at 2:43 PM, Anders Logg <l...@simula.no> wrote: >> On Tue, Oct 06, 2009 at 02:28:40PM -0500, Andy Ray Terrel wrote: >>> Sorry for being dense but computing the SHA1 hash for what essentially >>> is a string compare seems a bit overkill. >> I want to avoid a call to strcmp in a piece of code that needs to be >> fast. What I do (it seems to work now) is to compute the 20 byte SHA-1 >> hash from the ~40 byte finite element signature which is typically >> something like >> >> FiniteElement('Lagrange', 'triangle', 1) >> >> I then cast the SHA-1 hash to an 8 byte void* and use that for >> comparison. This may not be very safe but this is not exactly >> cryptography. The number of possible hashes is the same as the address >> space so it should be fine. >> >> -- >> Anders >> >> > > Yes I guess if you have a large number of comparisons it might be > faster. I forget there are a lot of signature checks for the function > space stuff. > > Computing the hash is O(n) just like strcmp, it really depends on the > constants. I would just do the timing before I said anything. > > I looked there are a lot of libraries out there for this but OpenSSL > is by far the most pervasive. >
What about boost::hash since we already depend on Boost? Garth > -- Andy > > > >>> On Tue, Oct 6, 2009 at 2:18 PM, Anders Logg <l...@simula.no> wrote: >>>> I'm contemplating adding a dependency to OpenSSL for computing hashes >>>> of things like element signatures. >>>> >>>> This is what breaks Kristian's code. Comparing element pointers does >>>> not work since the UFC class creates its own elements which are >>>> different from the ones existing in FunctionSpace classes. >>>> >>>> Would there be any difficulties with depending on OpenSSL? Are there >>>> simpler alternatives for a function that takes a string a returns a >>>> message digest like the SHA1 function in OpenSSL? >>>> >>>> >>>> -----BEGIN PGP SIGNATURE----- >>>> Version: GnuPG v1.4.9 (GNU/Linux) >>>> >>>> iEYEARECAAYFAkrLmCAACgkQTuwUCDsYZdEk3ACgl7+tHjclHzLesh+g/1vOzIo9 >>>> tJsAn1fHGu+dzyA/ndNpy88/RFWNTbEB >>>> =24AA >>>> -----END PGP SIGNATURE----- >>>> >>>> _______________________________________________ >>>> DOLFIN-dev mailing list >>>> DOLFIN-dev@fenics.org >>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >>>> >>>> >>> _______________________________________________ >>> DOLFIN-dev mailing list >>> DOLFIN-dev@fenics.org >>> http://www.fenics.org/mailman/listinfo/dolfin-dev >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v1.4.9 (GNU/Linux) >> >> iEYEARECAAYFAkrLndAACgkQTuwUCDsYZdFlWACePT0FglJU+NTPnOBXi/h7WcHC >> E5EAn2vinxerlg6jTNuA4T+0Kp+CFuhz >> =68Dm >> -----END PGP SIGNATURE----- >> >> _______________________________________________ >> DOLFIN-dev mailing list >> DOLFIN-dev@fenics.org >> http://www.fenics.org/mailman/listinfo/dolfin-dev >> >> > _______________________________________________ > DOLFIN-dev mailing list > DOLFIN-dev@fenics.org > http://www.fenics.org/mailman/listinfo/dolfin-dev _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev