From: Justin Bailey Date: 2006-08-03T02:13:50+09:00 Subject: For performance, write it in C# ------=_Part_106039_12898110.1154538821758 Content-Type: multipart/alternative; boundary="----=_Part_106040_16906777.1154538821758" ------=_Part_106040_16906777.1154538821758 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline I can't resist jumping on this one. The attached file requires John Lam's excellent RubyCLR library (http://www.rubyclr.com) >ruby latins.rb user system total real 5 squares, ruby 4.156000 0.047000 4.203000 ( 4.235000) 5 squares, .net 0.594000 0.000000 0.594000 ( 0.719000) Thanks to the Peter Hickman for his C version (on which I based the C# version) and Simon Kroeger for the ruby code. All I/O was removed from the code to remove that factor from the timings. Sadly, I don't have a c compiler set up to time the original c version. ------=_Part_106040_16906777.1154538821758 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I can't resist jumping on this one. The attached file requires John Lam's excellent RubyCLR library (http://www.rubyclr.com )

>ruby latins.rb
      user     system      total        real
5 squares, ruby  4.156000   0.047000   4.203000 (  4.235000)
5 squares, .net  0.594000   0.000000   0.594000 (  0.719000)

Thanks to the Peter Hickman for his C version (on which I based the C# version) and Simon Kroeger for the ruby code. All I/O was removed from the code to remove that factor from the timings. Sadly, I don't have a c compiler set up to time the original c version.


------=_Part_106040_16906777.1154538821758-- ------=_Part_106039_12898110.1154538821758 Content-Type: application/octet-stream; name="latins.zip.safe" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="latins.zip.safe" X-Attachment-Id: f_eqdyljnw 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 AAA= ------=_Part_106039_12898110.1154538821758--