7 instantiations of BitVector
System.Text.RegularExpressions (7)
System\Text\RegularExpressions\Symbolic\BitVector.cs (7)
49
public static BitVector CreateFalse(int length) => new
BitVector
(length);
54
var bv = new
BitVector
(length);
63
var bv = new
BitVector
(length);
100
return new
BitVector
(x.Length, blocks);
117
return new
BitVector
(x.Length, blocks);
137
return new
BitVector
(firstOther.Length, blocks);
151
var bv = new
BitVector
(x.Length, blocks);
67 references to BitVector
System.Text.RegularExpressions (67)
System\Text\RegularExpressions\Symbolic\BitVector.cs (32)
16
internal struct BitVector : IComparable<
BitVector
>, IEquatable<
BitVector
>
29
/// <summary>Initializes the <see cref="
BitVector
"/> to be of the specified length and contain all false bits.</summary>
38
/// <summary>Initializes the <see cref="
BitVector
"/> with the specified length and blocks.</summary>
48
/// <summary>Creates a <see cref="
BitVector
"/> of the specified length containing all bits not set.</summary>
49
public static
BitVector
CreateFalse(int length) => new BitVector(length);
51
/// <summary>Creates a <see cref="
BitVector
"/> of the specified length containing all bits set.</summary>
52
public static
BitVector
CreateTrue(int length)
54
var
bv = new BitVector(length);
60
/// <summary>Creates a <see cref="
BitVector
"/> of the specified length containing all bits not set except for the specified bit, which is set.</summary>
61
public static
BitVector
CreateSingleBit(int length, int i)
63
var
bv = new BitVector(length);
86
/// <summary>Create a new <see cref="
BitVector
"/> that is the bitwise-and of the two input vectors.</summary>
87
public static
BitVector
And(
BitVector
x,
BitVector
y)
103
/// <summary>Create a new <see cref="
BitVector
"/> that is the bitwise-or of the two input vectors.</summary>
104
public static
BitVector
Or(
BitVector
x,
BitVector
y)
120
/// <summary>Create a new <see cref="
BitVector
"/> that is the bitwise-or of the input vectors.</summary>
121
public static
BitVector
Or(ReadOnlySpan<
BitVector
> bitVectors)
125
BitVector
firstOther = bitVectors[0];
128
foreach (
BitVector
other in bitVectors)
140
/// <summary>Create a new <see cref="
BitVector
"/> that is the bitwise-not of the input vector.</summary>
141
public static
BitVector
Not(
BitVector
x)
151
var
bv = new BitVector(x.Length, blocks);
187
obj is
BitVector
other && Equals(other);
189
public bool Equals(
BitVector
other) =>
193
public int CompareTo(
BitVector
other) =>
System\Text\RegularExpressions\Symbolic\BitVectorSolver.cs (30)
7
internal sealed class BitVectorSolver : ISolver<
BitVector
>
11
private readonly
BitVector
[] _mintermVectors;
19
var singleBitVectors = new
BitVector
[minterms.Length];
22
singleBitVectors[i] =
BitVector
.CreateSingleBit(minterms.Length, i);
26
Empty =
BitVector
.CreateFalse(minterms.Length);
27
Full =
BitVector
.CreateTrue(minterms.Length);
30
public
BitVector
Empty { get; }
31
public
BitVector
Full { get; }
33
public bool IsFull(
BitVector
set) => set.Equals(Full);
35
public bool IsEmpty(
BitVector
set) => set.Equals(Empty);
37
public
BitVector
And(
BitVector
set1,
BitVector
set2) =>
BitVector
.And(set1, set2);
39
public
BitVector
Not(
BitVector
set) =>
BitVector
.Not(set);
41
public
BitVector
Or(ReadOnlySpan<
BitVector
> sets) =>
BitVector
.Or(sets);
43
public
BitVector
Or(
BitVector
set1,
BitVector
set2) =>
BitVector
.Or(set1, set2);
49
public
BitVector
ConvertFromBDD(BDD set, CharSetSolver solver)
53
BitVector
result = Empty;
58
result =
BitVector
.Or(result, _mintermVectors[i]);
65
public
BitVector
[] GetMinterms() => _mintermVectors;
69
public string PrettyPrint(
BitVector
bv, CharSetSolver solver) => solver.PrettyPrint(ConvertToBDD(bv, solver));
71
public BDD ConvertToBDD(
BitVector
set, CharSetSolver solver)
System\Text\RegularExpressions\Symbolic\MintermGenerator.cs (1)
11
/// <typeparam name="TSet">The type of set of elements (typically <see cref="BDD"/>, <see cref="
BitVector
"/> for more than 64 elements, or <see cref="ulong"/> for 64 or fewer elements).</typeparam>
System\Text\RegularExpressions\Symbolic\SymbolicRegexRunnerFactory.cs (4)
11
/// <summary>A SymbolicRegexMatcher of either ulong or <see cref="
BitVector
"/> depending on the number of minterms.</summary>
43
SymbolicRegexMatcher<
BitVector
>.Create(regexTree.CaptureCount, regexTree.FindOptimizations, bddBuilder, rootNode, new BitVectorSolver(minterms), matchTimeout) :
50
new Runner<
BitVector
>((SymbolicRegexMatcher<
BitVector
>)_matcher);