Anders Logg wrote:
> On Tue, Oct 06, 2009 at 10:05:24PM +0200, Johan Hake wrote:
>> On Tuesday 06 October 2009 21:58:29 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.
>>>>
>>> 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.
>> Would it be an idea to extend ufc::finite_element with a hash_signature()?
>> Then you can compute the hash using hashlib in python during code creation.
>>
>> Johan
> 
> Sounds like a good idea. Only it requires changes to DOLFIN, UFC, FFC
> and SyFi...
> 
> Are there any objections to this?
> 

I'm not sure that this is a good idea. It complicates UFC.

Garth

> --
> Anders
> 
> 
>>> 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
>>>
>> _______________________________________________
>> 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

Reply via email to