I'm a long time Python/Numpy user and am starting to play around with Julia a bit. To get a handle on the language and how to write fast code, I've been implementing some simple functions and then trying to performance tune them. One such experiment involved generating Vandermonde matrices and then comparing timings vs the method that numpy supplies (np.vander). The code for two simple implementations that I wrote, plus the method supplied by MatrixDepot.jl are in this notebook along with timings for each and the corresponding timing for the numpy method on the same machine.
http://nbviewer.ipython.org/gist/synapticarbors/26910166ab775c04c47b Generally Julia fares pretty well against numpy here, but does not necessarily match or beat it over all array sizes. The methods I wrote are similar to the numpy implementation and are typically faster than what's in MatrixDepot.jl, but I was hoping someone with a bit more experience in Julia might have some further tricks that would be educational to see. I've already looked at the Performance Tips section of the documentation, and I think I'm following best practices. Suggestions and feedback are appreciated as always. Josh PS - maybe it's my experience with numpy, but I wonder if any thought has been given to following more of a numpy-style convention of always returning a view of an array when possible rather than a copy? This is often a source of confusion with new numpy users, but once you realize that generally, if the slice or transformation can be represented by a fixed stride through the data, then you get a view, it's pretty intuitive.
