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

Reply via email to