| Igor Schein on Mon, 15 May 2006 20:52:10 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| need for a hash function |
Hi,
Here's a scenario. I need to to check whether or not 2 polynomials
are isomorphic. The polynomials are big, so the usual methods like
nfisisom() and friends are computationally costly. But, I am able to
compute relatively cheaply my own invariant and compare it for both
polynomials. However, the value of the function which computes
the invariant takes on huge vectors. I can still compare the value,
but output to the screen is impossible. If F is my invariant, here's
a trick I employ (could be bettered, I am sure, but I don't feel like
playing with escaping special characters any longer than it took me to
come up with the first draft):
Hash(obj)=extern("echo '"obj"'|md5sum|cut -d\\ -f1|sed 's/^/_/'|sed 's/$/_/'|tr _ '\\042'")
for example:
F(pol)=Vec(pol)
then
? Hash(F(polzagier(100,98)))
"4fcfd176835438d4932007f33cda1e20"
Nice and compact. Now if I replace F with the actual function, it
enables me to compare polynomials not only logically, but also
visually, e.g. if I have a vector V of such polynomials, I would do
for(k=1,#V,print(k," ",Hash(F(V[k]))))
Did I make a strong enough case for the need of internal hashing
function? Can anyone think of other scenarions which would make
adding such function more attractive?
Thanks
Igor