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. -- 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