renamed Projector2D to IterableIntervalProjector2D
Added RandomAccessibleProjector2D
added speed-up for specialcase in IterableIntervalProjector2D
print best time of benchmark (as well as median)
fixed a bug in IterableIntervalProjector2D
put XYRandomAccessibleProjector back in for benchmarks
benchmark: project slices of a 3D img resp real-view into 2D img

results on 2.8 GHz Core i7 Macbook pro, jdk 1.6.0_65:

When each test is run individually, median / best times over 100 runs are

IterableIntervalProjector2D Img
36 / 35 ms
RandomAccessibleProjector2D Img
25 / 24 ms
XYRandomAccessibleProjector Img
25 / 24 ms
IterableIntervalProjector2D Affine
285 / 269 ms
RandomAccessibleProjector2D Affine
279 / 263 ms
XYRandomAccessibleProjector Affine
272 / 259 ms


When running all tests in sequence (causing JIT deoptimization), median / best times over 100 runs converge to

IterableIntervalProjector2D Img
103 / 98 ms
RandomAccessibleProjector2D Img
32 / 30 ms
XYRandomAccessibleProjector Img
30 / 29 ms
IterableIntervalProjector2D Affine
288 / 275 ms
RandomAccessibleProjector2D Affine
279 / 269 ms
XYRandomAccessibleProjector Affine
264 / 248 ms
IterableIntervalProjector: Only use localzingCursor when needed!
Projectors2D: Updated JavaDoc
Merge branch 'p2d-improvements' of https://github.com/imagej/imglib into p2d-improvements
Removed AbstractXYProjector and XYRandomAccessibleProjector
Merge pull request #68 from imglib/p2d-improvements

Projector2d Improvements