Object

sigmastate

DataValueComparer

Related Doc: package sigmastate

Permalink

object DataValueComparer

Implementation of data equality for two arbitrary ErgoTree data types.

See also

DataValueComparer.equalDataValues

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DataValueComparer
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type COA[A] = CollOverArray[A]

    Permalink
  2. type POC[A, B] = PairOfCols[A, B]

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final val CostKind_EQ_AvlTree: FixedCost

    Permalink
  5. final val CostKind_EQ_BigInt: FixedCost

    Permalink
  6. final val CostKind_EQ_Box: FixedCost

    Permalink
  7. final val CostKind_EQ_COA_AvlTree: PerItemCost

    Permalink

    Equals two CollOverArray of AvlTree type.

  8. final val CostKind_EQ_COA_BigInt: PerItemCost

    Permalink

    Equals two CollOverArray of BigInt type.

  9. final val CostKind_EQ_COA_Boolean: PerItemCost

    Permalink

    Equals two CollOverArray of Boolean type.

  10. final val CostKind_EQ_COA_Box: PerItemCost

    Permalink

    Equals two CollOverArray of Box type.

  11. final val CostKind_EQ_COA_Byte: PerItemCost

    Permalink

    Equals two CollOverArray of Byte type.

  12. final val CostKind_EQ_COA_GroupElement: PerItemCost

    Permalink

    Equals two CollOverArray of GroupElement type.

  13. final val CostKind_EQ_COA_Header: PerItemCost

    Permalink

    Equals two CollOverArray of Header type.

  14. final val CostKind_EQ_COA_Int: PerItemCost

    Permalink

    Equals two CollOverArray of Int type.

  15. final val CostKind_EQ_COA_Long: PerItemCost

    Permalink

    Equals two CollOverArray of Long type.

  16. final val CostKind_EQ_COA_PreHeader: PerItemCost

    Permalink

    Equals two CollOverArray of PreHeader type.

  17. final val CostKind_EQ_COA_Short: PerItemCost

    Permalink

    Equals two CollOverArray of Short type.

  18. final val CostKind_EQ_Coll: PerItemCost

    Permalink

    Equals two Colls of non-primitive (boxed) types.

  19. final val CostKind_EQ_GroupElement: FixedCost

    Permalink

    NOTE: the value is set based on benchmarking of SigmaDslSpecification.

  20. final val CostKind_EQ_Header: FixedCost

    Permalink
  21. final val CostKind_EQ_Option: FixedCost

    Permalink

    NOTE: In the formula (7 + 1) the 1 corresponds to the second type match.

  22. final val CostKind_EQ_PreHeader: FixedCost

    Permalink
  23. final val CostKind_EQ_Prim: FixedCost

    Permalink
  24. final val CostKind_EQ_Tuple: FixedCost

    Permalink
  25. final val CostKind_MatchType: FixedCost

    Permalink
  26. final val CostOf_MatchType: Int(1)

    Permalink

    NOTE: The cost of most equality operations depends on the position in match statement.

    NOTE: The cost of most equality operations depends on the position in match statement. Thus the full cost to compare x and y equals DispatchCost * OperationCost, where DispatchCost = CasePosition * CostOf_MatchType, OperationCost is the type specific cost. For this reason reordering of cases may lead to divergence between an estimated and the actual execution cost (time). The constants are part of the consensus protocol and cannot be changed without forking.

  27. final val EQ_AvlTree: OperationCostInfo[FixedCost]

    Permalink
  28. final val EQ_BigInt: OperationCostInfo[FixedCost]

    Permalink
  29. final val EQ_Box: OperationCostInfo[FixedCost]

    Permalink
  30. final val EQ_COA_AvlTree: OperationCostInfo[PerItemCost]

    Permalink
  31. final val EQ_COA_BigInt: OperationCostInfo[PerItemCost]

    Permalink
  32. final val EQ_COA_Boolean: OperationCostInfo[PerItemCost]

    Permalink
  33. final val EQ_COA_Box: OperationCostInfo[PerItemCost]

    Permalink
  34. final val EQ_COA_Byte: OperationCostInfo[PerItemCost]

    Permalink
  35. final val EQ_COA_GroupElement: OperationCostInfo[PerItemCost]

    Permalink
  36. final val EQ_COA_Header: OperationCostInfo[PerItemCost]

    Permalink
  37. final val EQ_COA_Int: OperationCostInfo[PerItemCost]

    Permalink
  38. final val EQ_COA_Long: OperationCostInfo[PerItemCost]

    Permalink
  39. final val EQ_COA_PreHeader: OperationCostInfo[PerItemCost]

    Permalink
  40. final val EQ_COA_Short: OperationCostInfo[PerItemCost]

    Permalink
  41. final val EQ_Coll: OperationCostInfo[PerItemCost]

    Permalink
  42. final val EQ_GroupElement: OperationCostInfo[FixedCost]

    Permalink
  43. final val EQ_Header: OperationCostInfo[FixedCost]

    Permalink
  44. final val EQ_Option: OperationCostInfo[FixedCost]

    Permalink
  45. final val EQ_PreHeader: OperationCostInfo[FixedCost]

    Permalink
  46. final val EQ_Prim: OperationCostInfo[FixedCost]

    Permalink
  47. final val EQ_Tuple: OperationCostInfo[FixedCost]

    Permalink
  48. final val MatchType: OperationCostInfo[FixedCost]

    Permalink
  49. final val OpDesc_EQ_AvlTree: NamedDesc

    Permalink
  50. final val OpDesc_EQ_BigInt: NamedDesc

    Permalink
  51. final val OpDesc_EQ_Box: NamedDesc

    Permalink
  52. final val OpDesc_EQ_COA_AvlTree: NamedDesc

    Permalink
  53. final val OpDesc_EQ_COA_BigInt: NamedDesc

    Permalink
  54. final val OpDesc_EQ_COA_Boolean: NamedDesc

    Permalink
  55. final val OpDesc_EQ_COA_Box: NamedDesc

    Permalink
  56. final val OpDesc_EQ_COA_Byte: NamedDesc

    Permalink
  57. final val OpDesc_EQ_COA_GroupElement: NamedDesc

    Permalink
  58. final val OpDesc_EQ_COA_Header: NamedDesc

    Permalink
  59. final val OpDesc_EQ_COA_Int: NamedDesc

    Permalink
  60. final val OpDesc_EQ_COA_Long: NamedDesc

    Permalink
  61. final val OpDesc_EQ_COA_PreHeader: NamedDesc

    Permalink
  62. final val OpDesc_EQ_COA_Short: NamedDesc

    Permalink
  63. final val OpDesc_EQ_Coll: NamedDesc

    Permalink
  64. final val OpDesc_EQ_GroupElement: NamedDesc

    Permalink
  65. final val OpDesc_EQ_Header: NamedDesc

    Permalink
  66. final val OpDesc_EQ_Option: NamedDesc

    Permalink
  67. final val OpDesc_EQ_PreHeader: NamedDesc

    Permalink
  68. final val OpDesc_EQ_Prim: NamedDesc

    Permalink
  69. final val OpDesc_EQ_Tuple: NamedDesc

    Permalink
  70. final val OpDesc_MatchType: NamedDesc

    Permalink
  71. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  72. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  73. val descriptors: AVHashMap[RType[_], (OperationCostInfo[FixedCost], OperationCostInfo[PerItemCost])]

    Permalink
  74. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  75. def equalColls[A](c1: Coll[A], c2: Coll[A])(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Compare two collections for equality.

    Compare two collections for equality. Used when the element type A is NOT known statically. When the type A is scalar, each collection item is boxed before comparison, which have significant performace overhead. For this reason, this method is used as a fallback case.

  76. def equalColls_Dispatch[A](coll1: Coll[A], coll2: Coll[A])(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Compares two collections by dispatching to the most efficient implementation depending on the actual type A.

  77. def equalDataValues(l: Any, r: Any)(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Generic comparison of any two data values.

    Generic comparison of any two data values. The method dispatches on a type of the left value and then performs the specific comparison.

  78. def equalECPoint(p1: EcPointType, r: Any)(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Returns true if the given EcPointType is equal to the given object.

  79. def equalGroupElement(ge1: GroupElement, r: Any)(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Returns true if the given GroupElement is equal to the given object.

  80. def equalSigmaBoolean(l: SigmaBoolean, r: SigmaBoolean)(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Compare equality of two SigmaBoolean trees.

  81. def equalSigmaBooleans(xs: Seq[SigmaBoolean], ys: Seq[SigmaBoolean])(implicit E: ErgoTreeEvaluator): Boolean

    Permalink

    Compare equality of two sequences of SigmaBoolean trees.

  82. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  83. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  84. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  85. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  86. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  87. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  88. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  89. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  90. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  91. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  92. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  93. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  94. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped