Skip to content

Commit abc5361

Browse files
committed
fix(bin_s): constructor
1 parent 15747b8 commit abc5361

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/sourcery/bin_s.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
associate( remainder => mod(num_items, num_bins), items_per_bin => num_items/num_bins)
1212

1313
if (bin_number <= remainder) then
14-
bin%first_ = (bin_number-1)*(items_per_bin+1) + 1
15-
bin%last_ = bin%first_ + items_per_bin
14+
bin%first_ = 1 + (bin_number-1)*(items_per_bin+1)
15+
bin%last_ = bin_number*(items_per_bin+1)
1616
else
17-
bin%first_ = remainder*(items_per_bin+1) + (bin_number-remainder)*items_per_bin + 1
18-
bin%last_ = bin%first_ + items_per_bin - 1
17+
bin%first_ = 1 + (remainder-1)*(items_per_bin+1) + 1 + (bin_number-remainder)*items_per_bin
18+
bin%last_ = remainder*(items_per_bin+1) + (bin_number-remainder)*items_per_bin
1919
end if
2020

2121
end associate

test/bin_test.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ function verify_all_items_partitioned() result(test_passes)
6565
logical test_passes
6666

6767
type(bin_t), allocatable :: bins(:)
68-
integer, parameter :: n_items=12, n_bins=5
68+
integer, parameter :: n_items=11, n_bins=6
6969
integer b
7070

7171
bins = [( bin_t(num_items=n_items, num_bins=n_bins, bin_number=b), b = 1,n_bins )]

0 commit comments

Comments
 (0)