diff --git a/extra/math/extras/extras-tests.factor b/extra/math/extras/extras-tests.factor index 363192896f..a815283f7d 100644 --- a/extra/math/extras/extras-tests.factor +++ b/extra/math/extras/extras-tests.factor @@ -130,7 +130,7 @@ IN: math.extras.test { 10 } [ 12 5 round-to-step ] unit-test { 15 } [ 13 5 round-to-step ] unit-test -{ 0b101 } [ 0b11 next-permutation-bits ] unit-test +{ 0b101 } [ 0b011 next-permutation-bits ] unit-test { 0b110 } [ 0b101 next-permutation-bits ] unit-test { diff --git a/extra/math/extras/extras.factor b/extra/math/extras/extras.factor index 5cb45d06c9..6888226e15 100644 --- a/extra/math/extras/extras.factor +++ b/extra/math/extras/extras.factor @@ -261,7 +261,7 @@ M: float round-to-even : next-permutation-bits ( v -- w ) [ dup 1 - bitor 1 + dup ] keep - [ dup neg bitand ] bi@ / -1 shift 1 - bitor ; + [ dup neg bitand ] bi@ /i -1 shift 1 - bitor ; : permutation-bits ( bit-count bits -- seq ) [ on-bits dup '[ dup _ >= ] ]