Thomas E Enebo wrote: >> Only if by "vanilla" you mean optimised Java. > > Did you look at Isaac's implementation? It is almost exactly the same > it > was before, but he is not printing out the latin squares as unicode (which > none of the other impls are doing to my knowledge) and it is writing to > a BufferedReader (which any Java programmer with a couple months of > experience would/should do). Yes. > I think of things like manual loop unrolling and other similiar > techniques > as optimization techniques. They are all optimisations. > The stuff he did was common sense and I think > closer to the C impl in action (these languages are not the same -- some > consideration should be taken in this). These languages are not the same. However, using "ordinary" IO via System.out.println or cout or print_endline is the "vanilla" way of outputting in all of these languages. Of these languages, only Java gives appalling performance unless you switch to buffers. Even when you do use buffers in Java, it is still slower than unbuffered C++, OCaml etc. on my machine. > My only question on this thread about Java is what Java is being used > for the test (used on the webpage -- a good addition to the page)? I was using Sun's J2SE 1.5. I also tried GNU's GIJ, which is even slower than OCaml's bytecode. -- Dr Jon D Harrop, Flying Frog Consultancy Objective CAML for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists