Packages

o

sigmastate

DataValueComparer

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]
  2. type POC[A, B] = PairOfCols[A, B]

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final val CostKind_EQ_AvlTree: FixedCost
  5. final val CostKind_EQ_BigInt: FixedCost
  6. final val CostKind_EQ_Box: FixedCost
  7. final val CostKind_EQ_COA_AvlTree: PerItemCost

    Equals two CollOverArray of AvlTree type.

  8. final val CostKind_EQ_COA_BigInt: PerItemCost

    Equals two CollOverArray of BigInt type.

  9. final val CostKind_EQ_COA_Boolean: PerItemCost

    Equals two CollOverArray of Boolean type.

  10. final val CostKind_EQ_COA_Box: PerItemCost

    Equals two CollOverArray of Box type.

  11. final val CostKind_EQ_COA_Byte: PerItemCost

    Equals two CollOverArray of Byte type.

  12. final val CostKind_EQ_COA_GroupElement: PerItemCost

    Equals two CollOverArray of GroupElement type.

  13. final val CostKind_EQ_COA_Header: PerItemCost

    Equals two CollOverArray of Header type.

  14. final val CostKind_EQ_COA_Int: PerItemCost

    Equals two CollOverArray of Int type.

  15. final val CostKind_EQ_COA_Long: PerItemCost

    Equals two CollOverArray of Long type.

  16. final val CostKind_EQ_COA_PreHeader: PerItemCost

    Equals two CollOverArray of PreHeader type.

  17. final val CostKind_EQ_COA_Short: PerItemCost

    Equals two CollOverArray of Short type.

  18. final val CostKind_EQ_Coll: PerItemCost

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

  19. final val CostKind_EQ_GroupElement: FixedCost

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

  20. final val CostKind_EQ_Header: FixedCost
  21. final val CostKind_EQ_Option: FixedCost

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

  22. final val CostKind_EQ_PreHeader: FixedCost
  23. final val CostKind_EQ_Prim: FixedCost
  24. final val CostKind_EQ_Tuple: FixedCost
  25. final val CostKind_MatchType: FixedCost
  26. final val CostOf_MatchType: Int(1)

    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]
  28. final val EQ_BigInt: OperationCostInfo[FixedCost]
  29. final val EQ_Box: OperationCostInfo[FixedCost]
  30. final val EQ_COA_AvlTree: OperationCostInfo[PerItemCost]
  31. final val EQ_COA_BigInt: OperationCostInfo[PerItemCost]
  32. final val EQ_COA_Boolean: OperationCostInfo[PerItemCost]
  33. final val EQ_COA_Box: OperationCostInfo[PerItemCost]
  34. final val EQ_COA_Byte: OperationCostInfo[PerItemCost]
  35. final val EQ_COA_GroupElement: OperationCostInfo[PerItemCost]
  36. final val EQ_COA_Header: OperationCostInfo[PerItemCost]
  37. final val EQ_COA_Int: OperationCostInfo[PerItemCost]
  38. final val EQ_COA_Long: OperationCostInfo[PerItemCost]
  39. final val EQ_COA_PreHeader: OperationCostInfo[PerItemCost]
  40. final val EQ_COA_Short: OperationCostInfo[PerItemCost]
  41. final val EQ_Coll: OperationCostInfo[PerItemCost]
  42. final val EQ_GroupElement: OperationCostInfo[FixedCost]
  43. final val EQ_Header: OperationCostInfo[FixedCost]
  44. final val EQ_Option: OperationCostInfo[FixedCost]
  45. final val EQ_PreHeader: OperationCostInfo[FixedCost]
  46. final val EQ_Prim: OperationCostInfo[FixedCost]
  47. final val EQ_Tuple: OperationCostInfo[FixedCost]
  48. final val MatchType: OperationCostInfo[FixedCost]
  49. final val OpDesc_EQ_AvlTree: NamedDesc
  50. final val OpDesc_EQ_BigInt: NamedDesc
  51. final val OpDesc_EQ_Box: NamedDesc
  52. final val OpDesc_EQ_COA_AvlTree: NamedDesc
  53. final val OpDesc_EQ_COA_BigInt: NamedDesc
  54. final val OpDesc_EQ_COA_Boolean: NamedDesc
  55. final val OpDesc_EQ_COA_Box: NamedDesc
  56. final val OpDesc_EQ_COA_Byte: NamedDesc
  57. final val OpDesc_EQ_COA_GroupElement: NamedDesc
  58. final val OpDesc_EQ_COA_Header: NamedDesc
  59. final val OpDesc_EQ_COA_Int: NamedDesc
  60. final val OpDesc_EQ_COA_Long: NamedDesc
  61. final val OpDesc_EQ_COA_PreHeader: NamedDesc
  62. final val OpDesc_EQ_COA_Short: NamedDesc
  63. final val OpDesc_EQ_Coll: NamedDesc
  64. final val OpDesc_EQ_GroupElement: NamedDesc
  65. final val OpDesc_EQ_Header: NamedDesc
  66. final val OpDesc_EQ_Option: NamedDesc
  67. final val OpDesc_EQ_PreHeader: NamedDesc
  68. final val OpDesc_EQ_Prim: NamedDesc
  69. final val OpDesc_EQ_Tuple: NamedDesc
  70. final val OpDesc_MatchType: NamedDesc
  71. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  72. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  73. val descriptors: AVHashMap[RType[_], (OperationCostInfo[FixedCost], OperationCostInfo[PerItemCost])]
  74. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  75. def equalColls[A](c1: Coll[A], c2: Coll[A])(implicit E: ErgoTreeEvaluator): Boolean

    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

    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

    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. The comparison recursively descends on the value structure regardless of the depth. However, every step costs are accrued to E.coster and the defined limit E.coster.costLimit is checked. Thus, the execution of this method is limited and always finishes at least as fast as the costLimit prescribes. No limit is structural depth is necessary.

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

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

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

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

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

    Compare equality of two SigmaBoolean trees.

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

    Compare equality of two sequences of SigmaBoolean trees.

  82. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  83. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  84. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  85. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  86. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  87. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  88. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  89. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  90. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  91. def toString(): String
    Definition Classes
    AnyRef → Any
  92. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  93. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  94. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped