RiedleroD/BASAV

Add new actions PULL,PUSH,PULSH

RiedleroD opened this issue · 0 comments

For better algorithm control and the possibility of #20, a new action PULSH will be added. This will allow the Algorithm to PULL an item from the end of a bucket, and then PUSH it onto another one. There will also be the PUSH and PULL actions for storing one item while doing other stuff. They will be callable for algorithms through the following action:

yield (PULSH,buck1,buck2)

or

yield (PULL,buck1)
yield (PUSH,buck2)

where buck1 is a bucket with at least one item and buck2 is a bucket with at least one empty spot (which is a given in BASAV if buck1 isn't empty).

Pulshing any item that isn't at the end of a bucket to a position that isn't at the end of another bucket is possible through insertions, which defeats any performance gains PULSH would have. Which means it's not an action to make current algorithms faster, but to distinguish technically faster PULSH operations and usually slow BUCKINSERT operations in the stats. Also, as mentioned above, for insertless mode.

The PULSH operations will count as one PULL and one PUSH in the stats.