New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pairwise summation #577
Open
LukeMathWalker
wants to merge
43
commits into
rust-ndarray:master
from
LukeMathWalker:pairwise-summation
base: master
Merge pull request #4 from jturner314/pairwise-summation
1e88385
Select commit
483b29a
Add function declaration for pairwise_sum
LukeMathWalker 75860b6
Base case: array with 512 elements
LukeMathWalker b8304c0
Base case: use unrolled_fold
LukeMathWalker ec3722a
Implemented algorithm for not-base case branch
LukeMathWalker 70d32b7
Implemented pairwise summation algorithm for an iterator parameter
LukeMathWalker c66dc98
Implemented pairwise summation algorithm for an iterator parameter wi…
LukeMathWalker 175f9a2
Refactored: use fold to sum
LukeMathWalker 8e403af
Refactored: use a constant to reuse size value of recursion base case…
LukeMathWalker 465063f
Added documentation
LukeMathWalker 6427d45
Minor edits to the docs
LukeMathWalker 4414450
Don't forget to add the sum of the last elements (<512 ending block).
LukeMathWalker aeaad0e
Add a benchmark for summing a contiguous array
LukeMathWalker 75109b1
Benchmarks for arrays of different length
LukeMathWalker 3085194
Don't split midpoint, saving one operation
LukeMathWalker 797e212
Revert "Don't split midpoint, saving one operation"
LukeMathWalker d2b636b
Benches for sum_axis
LukeMathWalker b3d2b42
Bench for contiguous sum with integer values
LukeMathWalker 8f95705
Alternative implementation for sum_axis
LukeMathWalker 74a74ae
Revert "Alternative implementation for sum_axis"
LukeMathWalker a592a7d
Ensure equal block size independently of underlying implementation
LukeMathWalker f73fb2d
Change threshold names
LukeMathWalker c7fa091
Change sum_axis implementation
LukeMathWalker f72164a
Reduce partial accumulators pairwise in unrolled_fold
LukeMathWalker 9f1c4d2
Remove unused imports
LukeMathWalker bbc4a75
Get uniform behaviour across all pairwise_sum implementations
LukeMathWalker b98e30b
Add more benchmarks of sum/sum_axis
jturner314 ed88e2e
Improve performance of iterator_pairwise_sum
jturner314 e7835ee
Make sum pairwise over all dimensions
jturner314 8301c25
Implement contiguous sum_axis in terms of Zip
jturner314 82453df
Remove redundant len_of call
jturner314 1d51f70
Merge pull request #3 from jturner314/pairwise-summation
LukeMathWalker 978f45a
Added test for axis independence
LukeMathWalker fa0ba30
Make sure we actually exercise the pairwise technique
LukeMathWalker b4136d7
Test discontinuous arrays
LukeMathWalker 4a63cb3
Add more integer benchmark equivalents
LukeMathWalker f306b5f
Fix min_stride_axis to prefer axes with length > 1
jturner314 b7951df
Specialize min_stride_axis for Ix3
jturner314 3326de4
Enable min_stride_axis as pub(crate) method
jturner314 65b6046
Simplify fold to use min_stride_axis
jturner314 b0b391a
Improve performance of sum in certain cases
jturner314 7f04e6f
Update quickcheck and use quickcheck_macros
jturner314 1ed1a63
Clarify capacity calculation in iterator_pairwise_sum
jturner314 1e88385
Merge pull request #4 from jturner314/pairwise-summation
LukeMathWalker
Open
Pairwise summation #577
Merge pull request #4 from jturner314/pairwise-summation
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 4, 2019
Jan 5, 2019
Jan 5, 2019
Jan 5, 2019
Jan 5, 2019
Jan 5, 2019
Jan 5, 2019
Jan 9, 2019
Jan 9, 2019
Jan 9, 2019
Jan 22, 2019
Jan 22, 2019
Jan 22, 2019
Jan 22, 2019
Jan 22, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 3, 2019
Feb 4, 2019
Feb 4, 2019
1e88385
Select commit
483b29a
Add function declaration for pairwise_sum
LukeMathWalker 75860b6
Base case: array with 512 elements
LukeMathWalker b8304c0
Base case: use unrolled_fold
LukeMathWalker ec3722a
Implemented algorithm for not-base case branch
LukeMathWalker 70d32b7
Implemented pairwise summation algorithm for an iterator parameter
LukeMathWalker c66dc98
Implemented pairwise summation algorithm for an iterator parameter wi…
LukeMathWalker 175f9a2
Refactored: use fold to sum
LukeMathWalker 8e403af
Refactored: use a constant to reuse size value of recursion base case…
LukeMathWalker 465063f
Added documentation
LukeMathWalker 6427d45
Minor edits to the docs
LukeMathWalker 4414450
Don't forget to add the sum of the last elements (<512 ending block).
LukeMathWalker aeaad0e
Add a benchmark for summing a contiguous array
LukeMathWalker 75109b1
Benchmarks for arrays of different length
LukeMathWalker 3085194
Don't split midpoint, saving one operation
LukeMathWalker 797e212
Revert "Don't split midpoint, saving one operation"
LukeMathWalker d2b636b
Benches for sum_axis
LukeMathWalker b3d2b42
Bench for contiguous sum with integer values
LukeMathWalker 8f95705
Alternative implementation for sum_axis
LukeMathWalker 74a74ae
Revert "Alternative implementation for sum_axis"
LukeMathWalker a592a7d
Ensure equal block size independently of underlying implementation
LukeMathWalker f73fb2d
Change threshold names
LukeMathWalker c7fa091
Change sum_axis implementation
LukeMathWalker f72164a
Reduce partial accumulators pairwise in unrolled_fold
LukeMathWalker 9f1c4d2
Remove unused imports
LukeMathWalker bbc4a75
Get uniform behaviour across all pairwise_sum implementations
LukeMathWalker b98e30b
Add more benchmarks of sum/sum_axis
jturner314 ed88e2e
Improve performance of iterator_pairwise_sum
jturner314 e7835ee
Make sum pairwise over all dimensions
jturner314 8301c25
Implement contiguous sum_axis in terms of Zip
jturner314 82453df
Remove redundant len_of call
jturner314 1d51f70
Merge pull request #3 from jturner314/pairwise-summation
LukeMathWalker 978f45a
Added test for axis independence
LukeMathWalker fa0ba30
Make sure we actually exercise the pairwise technique
LukeMathWalker b4136d7
Test discontinuous arrays
LukeMathWalker 4a63cb3
Add more integer benchmark equivalents
LukeMathWalker f306b5f
Fix min_stride_axis to prefer axes with length > 1
jturner314 b7951df
Specialize min_stride_axis for Ix3
jturner314 3326de4
Enable min_stride_axis as pub(crate) method
jturner314 65b6046
Simplify fold to use min_stride_axis
jturner314 b0b391a
Improve performance of sum in certain cases
jturner314 7f04e6f
Update quickcheck and use quickcheck_macros
jturner314 1ed1a63
Clarify capacity calculation in iterator_pairwise_sum
jturner314 1e88385
Merge pull request #4 from jturner314/pairwise-summation
LukeMathWalker