Skip to content

Tags: HighDiceRoller/icepool

Tags

v2.2.1

Toggle v2.2.1's commit message
* Added `wild`, `wild_low`, and `wild_high` options to `largest_count…

…()` evaluation. These allow specifying outcomes as wild, combining with any outcomes, outcomes that they are lower than, and outcomes that they are higher than respectively.

* `standard_pool` renamed to `d_pool`, leaving a deprecation warning.

v2.2.0

Toggle v2.2.0's commit message
Major modifications to `map(repeat)` Markov process flow.

* Now requires Python >= 3.12 (from 3.10).
* `Reroll` split into separate `Reroll` and `Restart` symbols with different meanings in `map(repeat)` and `Again`.
  * In `map(repeat)`, `Reroll` rerolls only the current stage, while `Restart` restarts the entire process.
  * With `again_count`, `Reroll` rerolls any dice over the limit until they don't roll `Again`, while `Restart` restarts the entire process.
  * With `again_depth`, `Reroll` rerolls the last depth if going over the limit, while `Restart` cannot be used with `again_depth`.
* `Break` outcome wrapper that can be returned from a function sent to `map(repeat)` in order to immediately terminate the Markov process.
* `map(repeat)` now defaults to `repeat=None`; `repeat` is now explicitly incompatible with `Again`.
* Remove separate `time_limit` parameter to `map()`; `repeat` now always returns early if fully absorbed.
* `again_end` can now be used with `again_count`.
* `.weightless()` method for multiset generators that sets the quantity for all possible multisets to 1.
* New `product_of_counts()` multiset evaluation.
* More specific overloads for `map`, `tupleize`, `vectorize`.
* Rename `commonize_denominator()` to `harmonize_denominator()` and add optional weight parameter.
* Fix immediate absorption case for `map(repeat='inf')`.

v2.1.3

Toggle v2.1.3's commit message
* Change `max_pair_lowest()` and `max_pair_highest()` to `max_pair_ke…

…ep()` and `max_pair_drop()`.

* Add remaining operators to the `max_pair` methods.
* Rename `reroll_to_pool(mode)` options from 'highest' to 'high'.
* Allow `max_time` argument to be omitted from `time_to_sum` if all outcomes are positive.
* Allow lexicographic comparison between `Vector`s of different length.
* Prevent unevaluated expressions from being returned from a `@multiset_function`.

v2.1.2

Toggle v2.1.2's commit message
* Breaking change: `difference` (but not other operations) now has `k…

…eep_negative_counts` parameter again, which defaults to `False`.

v2.1.1

Toggle v2.1.1's commit message
* Experimental `sort_pair_keep_while()` and `sort_pair_drop_while()` …

…multiset operators.

v2.1.0

Toggle v2.1.0's commit message
* Breaking change: `any()` multiset evaluation renamed and inverted t…

…o `empty()`.

* Breaking change: `sort_match()` renamed to `sort_pair()`, `maximum_match_highest()` renamed to `max_pair_highest()` and similar for `minimum_match_highest()`.
* Add `extra` parameter to `sort_pair`.
* Rename several `which` and `target` parameters to `outcomes`.
* Make `max_rerolls` and `depth` parameters of `reroll_to_pool()` keyword-only, and add default outcomes to reroll.
* Experimental `leximin()` and `leximax()` multiset evaluations.
* Experimental `versus_any()` and `versus_all()` multiset operations.

v2.0.4

Toggle v2.0.4's commit message
* Fix internal `star` in `map_and_time()`.

* Experimental `mean_time_to_absorb()`.

v2.0.3

Toggle v2.0.3's commit message
* Add `star` option for `multiset_function`.

* Add `kwargs` option for `map` and similar functions.
* Skip optimization for multideal.
* Fix `Vector` comparisons so that they properly serve the dual purpose of element-wise comparison and truth value comparison.
* Fix multideal null pops.
* Experimental `Deck.deal_groups()`.

v2.0.2

Toggle v2.0.2's commit message
* Fix default `next_state_key` identification.

v2.0.1

Toggle v2.0.1's commit message
* Adjusted behavior of `MultisetEvaluator` caching between calls to `…

…evaluate()` depending on the value of `next_state_key`.

  * By default, `next_state_key` will only cache if the evaluator is called directly (i.e. not inside a `@multiset_function`).
  * If a full `next_state_key` is given, it will cache inside `@multiset_function`, provided the other contents agree.
  * The special value `NoCache` will disable caching.
* Support argumentless evaluations.
* Some typing fixes.