BitContradiction filtering changes to cut invalid divisors during checks.
This commit is contained in:
1 parent
b31aab4d89
commit
f1eaab8582
19 files changed
+3912
-2361
No files matched your search
@@ -9,13 +9,19 @@ public readonly struct ColumnBounds(int forcedOnes, int possibleOnes)
|
||||
public readonly int PossibleOnes = possibleOnes;
|
||||
}
|
||||
|
||||
public readonly struct CarryRange(long min, long max)
|
||||
public readonly struct CarryRange(long min, long max, byte mod4Mask = byte.MinValue)
|
||||
{
|
||||
public readonly long Min = min;
|
||||
public readonly long Max = max;
|
||||
public readonly byte Mod4Mask = mod4Mask;
|
||||
|
||||
public static CarryRange Single(long value) => new(value, value);
|
||||
public static readonly CarryRange Zero = Single(0);
|
||||
public static CarryRange Single(long value) => new(value, value, byte.MinValue);
|
||||
public static CarryRange Single(long value, byte mod4Mask) => new(value, value, mod4Mask);
|
||||
|
||||
public static readonly CarryRange Zero = Single(0, 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public bool IsEmpty() => Min > Max || Mod4Mask == 0;
|
||||
}
|
||||
|
||||
public enum ContradictionReason
|
||||
|
||||
Reference in new issue
Block a user