<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2658.34">
<TITLE>RE: The Computer Language Shootout</TITLE>
</HEAD>
<BODY>
<BR>

<P><FONT SIZE=2>Here's a version that uses ets instead of dict.</FONT>
<BR><FONT SIZE=2>In order to make sure the ets tables were removed</FONT>
<BR><FONT SIZE=2>in an orderly fashion, I made a small wrapper </FONT>
<BR><FONT SIZE=2>function.</FONT>
</P>

<P><FONT SIZE=2>new_hash(F) -></FONT>
<BR><FONT SIZE=2>    T = ets:new(hash, [set]),</FONT>
<BR><FONT SIZE=2>    Res = F(T),</FONT>
<BR><FONT SIZE=2>    ets:delete(T),</FONT>
<BR><FONT SIZE=2>    Res.</FONT>
</P>

<P><FONT SIZE=2>main() -></FONT>
<BR><FONT SIZE=2>    Seq = dna_seq(),</FONT>
<BR><FONT SIZE=2>    lists:foreach(fun(H) -></FONT>
<BR><FONT SIZE=2>                          new_hash(fun(T) -></FONT>
<BR><FONT SIZE=2>                                           printf(gen_freq(T,Seq,H))</FONT>
<BR><FONT SIZE=2>                                   end)</FONT>
<BR><FONT SIZE=2>                  end, [1,2]),</FONT>
<BR><FONT SIZE=2>    lists:foreach(fun(H) -> write_count(Seq,H) end,</FONT>
<BR><FONT SIZE=2>[<<"GGT">>,<<"GGTA">>,<<"GGTATT">>,<<"GGTATTTTAATT">>,<<"GGTATTTTAATTTAT</FONT>
<BR><FONT SIZE=2>AGT">>]),</FONT>
<BR><FONT SIZE=2>    halt(0). </FONT>
</P>

<P><FONT SIZE=2>Running time on my machine went down from</FONT>
<BR><FONT SIZE=2>3.74 sec to 1.47. A 70% improvement (overall this time. ;)</FONT>
</P>

<P><FONT SIZE=2>The ratio may be different on hipe. I haven't checked.</FONT>
</P>

<P><FONT SIZE=2>Regards,</FONT>
<BR><FONT SIZE=2>Ulf W</FONT>
</P>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: owner-erlang-questions@erlang.org </FONT>
<BR><FONT SIZE=2>> [<A HREF="mailto:owner-erlang-questions@erlang.org">mailto:owner-erlang-questions@erlang.org</A>] On Behalf Of </FONT>
<BR><FONT SIZE=2>> Kenneth Johansson</FONT>
<BR><FONT SIZE=2>> Sent: den 18 mars 2006 01:45</FONT>
<BR><FONT SIZE=2>> To: Vlad Dumitrescu</FONT>
<BR><FONT SIZE=2>> Cc: erlang-questions@erlang.org</FONT>
<BR><FONT SIZE=2>> Subject: RE: The Computer Language Shootout</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> On Fri, 2006-03-17 at 11:48 +0100, Vlad Dumitrescu wrote:</FONT>
<BR><FONT SIZE=2>> > Hi,</FONT>
<BR><FONT SIZE=2>> > Also, an even better result (~half the time) can be </FONT>
<BR><FONT SIZE=2>> obtained by using </FONT>
<BR><FONT SIZE=2>> > binaries instead of lists:</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Nice I copied that and did some small line reducing changes </FONT>
<BR><FONT SIZE=2>> If no one has any other suggestions I submit this version </FONT>
<BR><FONT SIZE=2>> some time next week. </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
</P>

<P><FONT FACE="Arial" SIZE=2 COLOR="#000000"></FONT> 

</BODY>
</HTML>