contiguous ranges

via Digitalmars-d digitalmars-d at puremagic.com
Fri Feb 20 05:06:17 PST 2015


On Friday, 20 February 2015 at 12:23:49 UTC, Vlad Levenfeld wrote:
> Slicing and in-place transformations are pretty much the only 
> things that will preserve contiguity. Piping ac through map or 
> something will take us back to manually propagating the 
> sampling rate. In general, deciding how and when to preserve 
> what information under which transformations is tough. Lazily 
> mapping, say, to increase the volume could meaningfully 
> preserve sampling rate, but under filtering, zipping or 
> striding it doesn't make sense.

The sensible thing to do is to have ranges of contiguous ranges:

1. to get better cache locality

2. to iterate over btrees (which are popular now due to memory 
bus issues)

3. to do intermediate buffering for higher speed (SIMD)

In the worst case the contiguous range will degrade to 1 element, 
which is OK for prototyping. Then you can insert an intermediate 
buffer where needed after profiling performance.


More information about the Digitalmars-d mailing list