on Sun Nov 06 2016, Hooman Mehr <[email protected]> wrote: >> On Nov 6, 2016, at 8:03 PM, Dave Abrahams via swift-evolution > <[email protected]> wrote: >>> I had a brush with Julia <http://julialang.org/ <http://julialang.org/>> as >>> well. Have you >>> looked at their work >> >> It's been a while, to be honest. >> >>> and the recent reworking of their similar data structures? >> >> Links would be appreciated. > > Start with this blog post, if you haven’t already seen it: > http://julialang.org/blog/2016/03/arrays-iteration
Thanks! * It's interesting that they seem to consider every important data structure to be some variety of array. * “I in eachindex(A)” sounds like “for i in A.indices.” But, as I presume they are traversing integer indices (or tuples thereof) that's really inadequate to deal with sparse arrays if you want optimal efficiency, since you end up needing to do (at minimum) a binary search to access the array elements. IMO, the MTL (https://en.wikipedia.org/wiki/Matrix_Template_Library) approach is better: use enhanced iterators that only traverse the non-zeroes and can report their coordinates in the underlying matrix. I don't understand everything written in that post as I lack context from that community, but my overall impression is that the problems they're dealing with have well-known solutions and they're somewhat hamstrung by the idea that indices are fundamentally integers (despite the fact that they do mention the existence of arrays indexed by non-integers). I think one of the most interesting related areas that they don't cover at all is explored in http://lafstern.org/matt/segmented.pdf (related video: https://meetingcpp.com/index.php/tv15/items/20.html) which among other things is applicable to ATLAS-style blocking techniques. -- -Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
