LLVM 20.0.0git
|
DeltaAlgorithm - Implements the delta debugging algorithm (A. More...
#include "llvm/ADT/DeltaAlgorithm.h"
Public Types | |
using | change_ty = unsigned |
using | changeset_ty = std::set< change_ty > |
using | changesetlist_ty = std::vector< changeset_ty > |
Public Member Functions | |
virtual | ~DeltaAlgorithm () |
changeset_ty | Run (const changeset_ty &Changes) |
Run - Minimize the set Changes by executing. | |
Protected Member Functions | |
virtual void | UpdatedSearchState (const changeset_ty &Changes, const changesetlist_ty &Sets) |
UpdatedSearchState - Callback used when the search state changes. | |
virtual bool | ExecuteOneTest (const changeset_ty &S)=0 |
ExecuteOneTest - Execute a single test predicate on the change set S . | |
DeltaAlgorithm & | operator= (const DeltaAlgorithm &)=default |
DeltaAlgorithm - Implements the delta debugging algorithm (A.
Zeller '99) for minimizing arbitrary sets using a predicate function.
The result of the algorithm is a subset of the input change set which is guaranteed to satisfy the predicate, assuming that the input set did. For well formed predicates, the result set is guaranteed to be such that removing any single element would falsify the predicate.
For best results the predicate function should (but need not) satisfy certain properties, in particular: (1) The predicate should return false on an empty set and true on the full set. (2) If the predicate returns true for a set of changes, it should return true for all supersets of that set.
It is not an error to provide a predicate that does not satisfy these requirements, and the algorithm will generally produce reasonable results. However, it may run substantially more tests than with a good predicate.
Definition at line 35 of file DeltaAlgorithm.h.
Definition at line 37 of file DeltaAlgorithm.h.
using llvm::DeltaAlgorithm::changeset_ty = std::set<change_ty> |
Definition at line 39 of file DeltaAlgorithm.h.
using llvm::DeltaAlgorithm::changesetlist_ty = std::vector<changeset_ty> |
Definition at line 40 of file DeltaAlgorithm.h.
|
virtualdefault |
References Run().
|
protectedpure virtual |
ExecuteOneTest - Execute a single test predicate on the change set S
.
|
protecteddefault |
DeltaAlgorithm::changeset_ty DeltaAlgorithm::Run | ( | const changeset_ty & | Changes | ) |
Run - Minimize the set Changes
by executing.
Definition at line 102 of file DeltaAlgorithm.cpp.
Referenced by ~DeltaAlgorithm().
|
inlineprotectedvirtual |
UpdatedSearchState - Callback used when the search state changes.
Definition at line 73 of file DeltaAlgorithm.h.