Class StateUnion
- Namespace
- RandomizerCore.Logic.StateLogic
- Assembly
- RandomizerCore.dll
A collection of mutually incomparable states, representing a disjunction of possible states.
public class StateUnion : IReadOnlyList<State>, IReadOnlyCollection<State>, IEnumerable<State>, IEnumerable
- Inheritance
-
StateUnion
- Implements
- Inherited Members
- Extension Methods
Constructors
StateUnion()
public StateUnion()
StateUnion(State)
public StateUnion(State state)
Parameters
state
State
StateUnion(List<State>)
public StateUnion(List<State> states)
Parameters
Properties
Count
public int Count { get; }
Property Value
Empty
public static StateUnion Empty { get; }
Property Value
this[int]
public State this[int index] { get; }
Parameters
index
int
Property Value
Methods
IsProgressivelyEqual(StateUnion?, StateUnion?)
Returns true if the two state unions are equivalent under the partial order of IsProgressivelyLE(StateUnion?, StateUnion?).
public static bool IsProgressivelyEqual(StateUnion? left, StateUnion? right)
Parameters
left
StateUnionright
StateUnion
Returns
IsProgressivelyLE(StateUnion?, StateUnion?)
A partial ordering which holds if the right union represents equal or better progression than the left union. Returns true if left is null, or else both are not null and there is a map from left to right which takes each state in left to a IsComparablyLE(State, State) state in right. Note: this ordering is reversed from the natural ordering induced by the ordering on State.
public static bool IsProgressivelyLE(StateUnion? left, StateUnion? right)
Parameters
left
StateUnionright
StateUnion
Returns
Reduce(List<State>)
public static void Reduce(List<State> states)
Parameters
TryUnion(StateUnion, StateUnion, out StateUnion)
Returns true and outputs a result if the union operation would not result in the left argument.
public static bool TryUnion(StateUnion left, StateUnion right, out StateUnion result)
Parameters
left
StateUnionright
StateUnionresult
StateUnion
Returns
TryUnion(StateUnion, List<State>, out StateUnion)
public static bool TryUnion(StateUnion left, List<State> states, out StateUnion result)
Parameters
left
StateUnionstates
List<State>result
StateUnion
Returns
Union(StateUnion, StateUnion)
public static StateUnion Union(StateUnion left, StateUnion right)
Parameters
left
StateUnionright
StateUnion
Returns
Union(StateUnion, IEnumerable<State>)
public static StateUnion Union(StateUnion left, IEnumerable<State> lazyRight)
Parameters
left
StateUnionlazyRight
IEnumerable<State>