daikon.inv.unary.sequence
Class CommonFloatSequence

Object
  extended by Invariant
      extended by UnaryInvariant
          extended by SingleSequence
              extended by SingleFloatSequence
                  extended by CommonFloatSequence
All Implemented Interfaces:
Serializable, Cloneable

public class CommonFloatSequence
extends SingleFloatSequence

Represents sequences of double values that contain a common subset. Prints as {e1, e2, e3, ...} subset of x[].

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class Invariant
Invariant.ClassVarnameComparator, Invariant.ClassVarnameFormulaComparator, Invariant.InvariantComparatorForPrinting, Invariant.Match
 
Field Summary
static boolean dkconfig_enabled
          Boolean.
static boolean dkconfig_hashcode_seqs
          Boolean.
 
Fields inherited from class SingleSequence
dkconfig_SeqIndexDisableAll
 
Fields inherited from class Invariant
CONFIDENCE_JUSTIFIED, CONFIDENCE_NEVER, CONFIDENCE_UNJUSTIFIED, debug, debugFlow, debugGuarding, debugIsObvious, debugIsWorthPrinting, debugPrint, debugPrintEquality, dkconfig_confidence_limit, dkconfig_fuzzy_ratio, dkconfig_simplify_define_predicates, falsified, isGuardingPredicate, min_mod_non_missing_samples, ppt, PROBABILITY_JUSTIFIED, PROBABILITY_NEVER, PROBABILITY_UNJUSTIFIED
 
Constructor Summary
protected CommonFloatSequence(PptSlice ppt)
           
 
Method Summary
 InvariantStatus add_modified(double[] a, int count)
          This method need not check for falsified; that is done by the caller.
 InvariantStatus check_modified(double[] a, int count)
           
protected  double computeConfidence()
          This method computes the confidence that this invariant occurred by chance.
 boolean enabled()
          returns whether or not this invariant is enabled
 String format_daikon()
           
 String format_using(OutputFormat format)
           
static CommonFloatSequence get_proto()
          Returns the prototype invariant for CommonFloatSequence
protected  CommonFloatSequence instantiate_dyn(PptSlice slice)
          instantiate an invariant on the specified slice
 boolean instantiate_ok(VarInfo[] vis)
          Sequences of hashcode values won't be consistent and are thus not printed by default.
 boolean isSameFormula(Invariant other)
           
 String repr()
          For printing invariants, there are two interfaces: repr gives a low-level representation (repr_prop also prints the confidence), and format gives a high-level representation for user output.
 
Methods inherited from class SingleFloatSequence
add_unmodified, add, check_unmodified, check, valid_types
 
Methods inherited from class SingleSequence
var
 
Methods inherited from class UnaryInvariant
resurrect_done
 
Methods inherited from class Invariant
add_sample, asInvClass, clear_falsified, clone_and_permute, clone, conf_is_ge, confidence_and, confidence_and, confidence_or, createGuardedInvariant, createGuardingPredicate, enoughSamples, falsify, find, format_too_few_samples, format_unimplemented, format, formatFuzzy, get_comparability, get_ni_suppressions, getConfidence, getGuardingList, getGuardingList, hasUninterestingConstant, instantiate, is_false, is_ni_suppressed, isActive, isAllPrestate, isExact, isExclusiveFormula, isInteresting, isObvious, isObviousDynamically_SomeInEquality, isObviousDynamically_SomeInEqualityHelper, isObviousDynamically, isObviousDynamically, isObviousStatically_AllInEquality, isObviousStatically_SomeInEquality, isObviousStatically_SomeInEqualityHelper, isObviousStatically, isObviousStatically, isReflexive, isSameInvariant, isValidEscExpression, isValidExpression, isWorthPrinting, justified, log, log, logDetail, logOn, match, merge, mergeFormulasOk, permute, prob_and, prob_and, prob_is_ge, prob_or, repCheck, repr_prob, resurrect, simplify_format_double, simplify_format_long, simplify_format_string, state_match, toString, toString, transfer, usesVar, usesVar, usesVarDerived, varNames
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dkconfig_enabled

public static boolean dkconfig_enabled
Boolean. True iff CommonSequence invariants should be considered.


dkconfig_hashcode_seqs

public static boolean dkconfig_hashcode_seqs
Boolean. Set to true to consider common sequences over hashcodes (pointers).

Constructor Detail

CommonFloatSequence

protected CommonFloatSequence(PptSlice ppt)
Method Detail

get_proto

public static CommonFloatSequence get_proto()
Returns the prototype invariant for CommonFloatSequence


enabled

public boolean enabled()
returns whether or not this invariant is enabled

Overrides:
enabled in class Invariant

instantiate_ok

public boolean instantiate_ok(VarInfo[] vis)
Sequences of hashcode values won't be consistent and are thus not printed by default.

Overrides:
instantiate_ok in class Invariant
See Also:
Invariant.valid_types(VarInfo[])

instantiate_dyn

protected CommonFloatSequence instantiate_dyn(PptSlice slice)
instantiate an invariant on the specified slice

Overrides:
instantiate_dyn in class Invariant
Returns:
the new invariant

repr

public String repr()
Description copied from class: Invariant
For printing invariants, there are two interfaces: repr gives a low-level representation (repr_prop also prints the confidence), and format gives a high-level representation for user output.

Overrides:
repr in class Invariant

format_using

public String format_using(OutputFormat format)
Specified by:
format_using in class Invariant

format_daikon

public String format_daikon()

check_modified

public InvariantStatus check_modified(double[] a,
                                      int count)
Specified by:
check_modified in class SingleFloatSequence

add_modified

public InvariantStatus add_modified(double[] a,
                                    int count)
Description copied from class: SingleFloatSequence
This method need not check for falsified; that is done by the caller.

Specified by:
add_modified in class SingleFloatSequence

computeConfidence

protected double computeConfidence()
Description copied from class: Invariant
This method computes the confidence that this invariant occurred by chance. Users should use getConfidence() instead.

Specified by:
computeConfidence in class Invariant
See Also:
Invariant.getConfidence()

isSameFormula

public boolean isSameFormula(Invariant other)
Overrides:
isSameFormula in class Invariant
Returns:
true iff the two invariants represent the same mathematical formula. Does not consider the context such as variable names, confidences, sample counts, value counts, or related quantities. As a rule of thumb, if two invariants format the same, this method returns true. Furthermore, in many cases, if an invariant does not involve computed constants (as "x>c" and "y=ax+b" do for constants a, b, and c), then this method vacuously returns true.