com.eharmony.aloha.feature

BasicFunctions

object BasicFunctions extends DefaultPossessor with BasicMath with Comparisons with Sos2 with CustomSos2 with Indicator with Intercept with TimeConstants with SparsityTransforms with RegressionModelValueToTupleConversions with DecisionTreeBoolToOptBoolConversions with SkipGrams with MapImplicitRegressionConversion with OptionLifting

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. BasicFunctions
  2. OptionLifting
  3. MapImplicitRegressionConversion
  4. SkipGrams
  5. DecisionTreeBoolToOptBoolConversions
  6. RegressionModelValueToTupleConversions
  7. SparsityTransforms
  8. TimeConstants
  9. Intercept
  10. Indicator
  11. CustomSos2
  12. Sos2
  13. Comparisons
  14. BasicMath
  15. DefaultPossessor
  16. AnyRef
  17. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final val DAYS_PER_WEEK: Int(7)

    Days in one week (7) (ISO)

    Days in one week (7) (ISO)

    Definition Classes
    TimeConstants
  7. final val DefaultForMissingDataInReg: Seq[(String, Double)]

    The suggested default Iterable that should be emitted when data is missing or unexpected in some way.

    The suggested default Iterable that should be emitted when data is missing or unexpected in some way. This is provided to the feature generating functions but not doesn't act as a substitute for the framework's responsibility for handling missing data.

    Note: The keys (1st field) present in the Iterable's Tuple2s should be prefixed with "=". This is because (as the name suggests, it is mainly for regression models which have a specific format for generated features.

    Attributes
    protected[com.eharmony.aloha.feature]
    Definition Classes
    BasicFunctionsDefaultPossessor
  8. final val HOURS_PER_DAY: Int(24)

    Hours in a typical day (24) (ISO).

    Hours in a typical day (24) (ISO).

    Definition Classes
    TimeConstants
  9. final val HOURS_PER_WEEK: Int(168)

    Hours in a typical week.

    Hours in a typical week.

    Definition Classes
    TimeConstants
  10. final val MILLIS_PER_DAY: Int(86400000)

    Milliseconds in a typical day (ISO).

    Milliseconds in a typical day (ISO).

    Definition Classes
    TimeConstants
  11. final val MILLIS_PER_HOUR: Int(3600000)

    Milliseconds in one hour (ISO)

    Milliseconds in one hour (ISO)

    Definition Classes
    TimeConstants
  12. final val MILLIS_PER_MINUTE: Int(60000)

    Milliseconds in one minute (ISO)

    Milliseconds in one minute (ISO)

    Definition Classes
    TimeConstants
  13. final val MILLIS_PER_SECOND: Int(1000)

    Milliseconds in one second (1000) (ISO)

    Milliseconds in one second (1000) (ISO)

    Definition Classes
    TimeConstants
  14. final val MILLIS_PER_WEEK: Int(604800000)

    Milliseconds in a typical week (ISO).

    Milliseconds in a typical week (ISO).

    Definition Classes
    TimeConstants
  15. final val MINUTES_PER_DAY: Int(1440)

    Minutes in a typical day (ISO).

    Minutes in a typical day (ISO).

    Definition Classes
    TimeConstants
  16. final val MINUTES_PER_HOUR: Int(60)

    Minutes in one hour (ISO)

    Minutes in one hour (ISO)

    Definition Classes
    TimeConstants
  17. final val MINUTES_PER_WEEK: Int(10080)

    Minutes in a typical week (ISO).

    Minutes in a typical week (ISO).

    Definition Classes
    TimeConstants
  18. final val SECONDS_PER_DAY: Int(86400)

    Seconds in a typical day (ISO).

    Seconds in a typical day (ISO).

    Definition Classes
    TimeConstants
  19. final val SECONDS_PER_HOUR: Int(3600)

    Seconds in one hour (ISO)

    Seconds in one hour (ISO)

    Definition Classes
    TimeConstants
  20. final val SECONDS_PER_MINUTE: Int(60)

    Seconds in one minute (60) (ISO)

    Seconds in one minute (60) (ISO)

    Definition Classes
    TimeConstants
  21. final val SECONDS_PER_WEEK: Int(604800)

    Seconds in a typical week (ISO).

    Seconds in a typical week (ISO).

    Definition Classes
    TimeConstants
  22. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  23. implicit def atomicIntMapToDoubleConversion(m: Map[String, AtomicInteger]): Map[String, Double]

  24. implicit def atomicLongMapToDoubleConversion(m: Map[String, AtomicLong]): Map[String, Double]

  25. def bag(str: String, prefix: String = "=", suffix: String = "", splitString: String = """\s+""", maxElements: Option[Int] = None): Map[String, Int]

    Definition Classes
    SkipGrams
  26. implicit def booleanToOptionBoolean(b: Boolean): Option[Boolean]

    Allows conversion from a Boolean to an option of a Boolean.

    Allows conversion from a Boolean to an option of a Boolean. It is used to lift the boolean value into the computational context of an Option. This function has many names in many different contexts (point, return, etc). For more info, see http://en.wikipedia.org/wiki/Monad_(functional_programming)

    b

    a Boolean to be converted to an Option[Boolean].

    returns

    the lifted boolean.

    Definition Classes
    DecisionTreeBoolToOptBoolConversions
  27. implicit def byteToIterableTuple2EmptyStringDouble(x: Byte): Iterable[(String, Double)]

  28. def clamp(x: Int, min: Int, max: Int): Int

    Definition Classes
    BasicMath
    Annotations
    @inline()
  29. def clamp(x: Long, min: Long, max: Long): Long

    Definition Classes
    BasicMath
    Annotations
    @inline()
  30. def clamp(x: Float, min: Float, max: Float): Float

    Definition Classes
    BasicMath
    Annotations
    @inline()
  31. def clamp(x: Double, min: Double, max: Double): Double

    Definition Classes
    BasicMath
    Annotations
    @inline()
  32. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. def csos2(value: Option[Double], knots: Int*): Iterable[(String, Double)]

    value
    knots

    should contain at least two knots and knots should be

    returns

    Definition Classes
    CustomSos2
    Annotations
    @inline()
  34. def csos2(value: Double, knots: Int*): Iterable[(String, Double)]

    Definition Classes
    CustomSos2
    Annotations
    @inline()
  35. def csos2Fast(value: Option[Double], knots: Int*): Iterable[(String, Double)]

    Definition Classes
    CustomSos2
    Annotations
    @inline()
  36. def csos2Fast(value: Double, knots: Int*): Iterable[(String, Double)]

    Definition Classes
    CustomSos2
    Annotations
    @inline()
  37. def csos2I(v: Double, knots: IndexedSeq[Int], ignoreChecks: Boolean = false): Iterable[(Int, Double)]

    v
    knots
    ignoreChecks

    (default false)

    returns

    Definition Classes
    CustomSos2
  38. def densifyFn[A, B, F[C] <: FilterMonadic[C, F[C]], That](denseDomain: F[A], sparseMapping: (A) ⇒ Option[B], whenMissing: B)(implicit cbf: CanBuildFrom[F[A], B, That]): That

    Given a sparse mapping represented as a function (sparseMapping) from the input domain A to a range of optional values (Option[B]), convert to a dense format of the appropriate container type.

    Given a sparse mapping represented as a function (sparseMapping) from the input domain A to a range of optional values (Option[B]), convert to a dense format of the appropriate container type. This is done by composing f = g ∘ sparseMapping, where g is defined as:

           ⎧ y            if x = Some(y)
    g(x) = ⎨
           ⎩ whenMissing  otherwise
    

    and mapping f over denseDomain.

    An example:

    val denseDomain = 3 to 6
    val sparseKeys = Array(4, 6)
    val sparseVals = Iterable(1, 2)
    val sparseMapping = (sparseKeys zip sparseVals).toMap.get _   // Int => Option[Int]
    val whenMissing = 0
    
    val result = densify(denseDomain, sparseMapping, whenMissing)
    val expected = Vector(0, 1, 0, 2)
    
    // NOTE: The resulting container type is a Vector because of the type of denseDomain.
    assert(result.getClass.getCanonicalName == "scala.collection.immutable.Vector")
    assert(result == expected)
    A

    type of the dense domain

    B

    type of the dense range

    F

    the container type of the input. An attempt is made to make the output container type as close as possible to the input container type. While this is a FilterMonadic, it really only needs to be a functor (because we only care about the map function. Flatmap doesn't matter).

    That

    the resulting type implementation.

    denseDomain

    the domain of dense values provided as the preimage to the sparse mapping specified by the parallel iterables.

    sparseMapping

    a mapping from the input domain to an option of the output domain. Once composed with whenMissing this map all values of the domain an appropriate value in the range of the function.

    whenMissing

    the resulting value when an item from denseDomain isn't contained in sparseKeys.

    cbf

    a CanBuildFrom object

    returns

    the dense image of the mapping from the dense domain, using sparseMapping and whenMissing.

    Definition Classes
    SparsityTransforms
  39. def densifyMap[A, B, F[C] <: FilterMonadic[C, F[C]], That](denseDomain: F[A], sparseFeatures: Map[A, B], whenMissing: B)(implicit cbf: CanBuildFrom[F[A], B, That]): That

    Given a sparse mapping represented as a map (sparseFeatures), convert to a dense format of the appropriate container type.

    Given a sparse mapping represented as a map (sparseFeatures), convert to a dense format of the appropriate container type. This is done by creating a map based on sparseFeatures with a default value specified by whenMissing and mapping the new map's apply function over denseDomain.

    An example:

    val denseDomain = 3 to 6
    val sparseKeys = Array(4, 6)
    val sparseVals = Iterable(1, 2)
    val sparseFeatures = (sparseKeys zip sparseVals).toMap
    val whenMissing = 0
    
    val result = densify(denseDomain, sparseFeatures, whenMissing)
    val expected = Vector(0, 1, 0, 2)
    
    // NOTE: The resulting container type is a Vector because of the type of denseDomain.
    assert(result.getClass.getCanonicalName == "scala.collection.immutable.Vector")
    assert(result == expected)
    A

    type of the dense domain

    B

    type of the dense range

    F

    the container type of the input. An attempt is made to make the output container type as close as possible to the input container type. While this is a FilterMonadic, it really only needs to be a functor (because we only care about the map function. Flatmap doesn't matter).

    That

    the resulting type implementation.

    denseDomain

    the domain of dense values provided as the preimage to the sparse mapping specified by the parallel iterables.

    sparseFeatures

    a map from the domain to range

    whenMissing

    the resulting value when an item from denseDomain isn't contained in sparseKeys.

    cbf

    a CanBuildFrom object

    returns

    the dense image of the mapping from the dense domain, using sparseMapping and whenMissing.

    Definition Classes
    SparsityTransforms
  40. def densifyPI[A, B, F[C] <: FilterMonadic[C, F[C]], That](denseDomain: F[A], sparseKeys: Iterable[A], sparseVals: Iterable[B], whenMissing: B)(implicit cbf: CanBuildFrom[F[A], B, That]): That

    Given a sparse mapping represented as key-value pairs in parallel iterables, convert to a dense format of the appropriate container type.

    Given a sparse mapping represented as key-value pairs in parallel iterables, convert to a dense format of the appropriate container type. This is done by mapping over the denseDomain, determining whether a key exists in sparseKeys. If a key exists, the associated value is substituted; otherwise, substitute with the whenMissing value.

    In the event of duplicate keys, for each pair of duplicate keys, the key-value pair associated with the second encountered key will be used.

    An example:

    val denseDomain = 3 to 6
    val sparseKeys = Array(4, 6)
    val sparseVals = Iterable(1, 2)
    val sparseValOptions = sparseVals.map(Option.apply)
    val whenMissing = None
    
    val result = densify(denseDomain, sparseKeys, sparseValOptions, whenMissing)
    val expected = Vector(None, Some(1), None, Some(2))
    
    // NOTE: The resulting container type is a Vector because of the type of denseDomain.
    assert(result.getClass.getCanonicalName == "scala.collection.immutable.Vector")
    assert(result == expected)

    Notice in the example above that when all of the keys are contained in denseDomain, then when sparsifying the results of densify, we get back the original sparseVals:

    assert(result.flatten == sparseVals)
    A

    type of the dense domain

    B

    type of the dense range

    F

    the container type of the input. An attempt is made to make the output container type as close as possible to the input container type. While this is a FilterMonadic, it really only needs to be a functor (because we only care about the map function. Flatmap doesn't matter).

    That

    the resulting type implementation.

    denseDomain

    the domain of dense values provided as the preimage to the sparse mapping specified by the parallel iterables.

    sparseKeys

    the keys in the sparse mapping (NOTE: (sparseKeys(i), sparseVals(i)) represents a key-value pair)

    sparseVals

    the values in the sparse mapping

    whenMissing

    the resulting value when an item from denseDomain isn't contained in sparseKeys.

    cbf

    a CanBuildFrom object

    returns

    the dense image of the mapping from the dense domain, using the mapping created by sparseKeys, sparseVals and whenMissing.

    Definition Classes
    SparsityTransforms
  41. implicit def double2Option(a: Double): Option[Double]

    Definition Classes
    OptionLifting
  42. implicit def doubleToIterableTuple2EmptyStringDouble(x: Double): Iterable[(String, Double)]

  43. final val empty: Iterable[(String, Double)]

    Attributes
    protected[com.eharmony.aloha.feature]
    Definition Classes
    DefaultPossessor
  44. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  45. def equals(arg0: Any): Boolean

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  47. implicit def floatMapToDoubleConversion(m: Map[String, Float]): Map[String, Double]

  48. implicit def floatToIterableTuple2EmptyStringDouble(x: Float): Iterable[(String, Double)]

  49. def geLe[A, B >: A](x: A, lb: A, ub: A)(implicit o: Ordering[B]): Boolean

    Is lb <= x and x <= ub?

    Is lb <= x and x <= ub?

    A

    type of inputs

    B

    type of ordering used for comparison. This must be a super type of the values being compared.

    x

    value to be compared against lower bound and upper bound

    lb

    lower bound (inclusive)

    ub

    upper bound (inclusive)

    o

    an ordering

    returns

    true if the lb <= x and x <= ub; otherwise, false.

    Definition Classes
    Comparisons
  50. def geLt[A, B >: A](x: A, lb: A, ub: A)(implicit o: Ordering[B]): Boolean

    Is lb <= x and x < ub?

    Is lb <= x and x < ub?

    A

    type of inputs

    B

    type of ordering used for comparison. This must be a super type of the values being compared.

    x

    value to be compared against lower bound and upper bound

    lb

    lower bound (inclusive)

    ub

    upper bound (exclusive)

    o

    an ordering

    returns

    true if the lb <= x and x < ub; otherwise, false.

    Definition Classes
    Comparisons
  51. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  52. def gtLe[A, B >: A](x: A, lb: A, ub: A)(implicit o: Ordering[B]): Boolean

    Is lb < x and x <= ub?

    Is lb < x and x <= ub?

    A

    type of inputs

    B

    type of ordering used for comparison. This must be a super type of the values being compared.

    x

    value to be compared against lower bound and upper bound

    lb

    lower bound (exclusive)

    ub

    upper bound (inclusive)

    o

    an ordering

    returns

    true if the lb < x and x <= ub; otherwise, false.

    Definition Classes
    Comparisons
  53. def gtLt[A, B >: A](x: A, lb: A, ub: A)(implicit o: Ordering[B]): Boolean

    Is lb < x and x < ub?

    Is lb < x and x < ub?

    A

    type of inputs

    B

    type of ordering used for comparison. This must be a super type of the values being compared.

    x

    value to be compared against lower bound and upper bound

    lb

    lower bound (exclusive)

    ub

    upper bound (exclusive)

    o

    an ordering

    returns

    true if the lb < x and x < ub; otherwise, false.

    Definition Classes
    Comparisons
  54. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  55. def ind[E <: Enum[E]](e: E): Iterable[(String, Double)]

    Indicator for any Enum class.

    Indicator for any Enum class.

    E

    The enum type

    e

    a java enum constant

    returns

    an indicator.

    Definition Classes
    Indicator
    Annotations
    @inline()
  56. def ind(a: Iterable[Option[String]]): Iterable[(String, Double)]

    Definition Classes
    Indicator
    Annotations
    @inline()
  57. def ind(a: Iterable[String])(implicit d: DummyImplicit): Iterable[(String, Double)]

    Definition Classes
    Indicator
    Annotations
    @inline()
  58. def ind(a: String): Iterable[(String, Double)]

    Definition Classes
    Indicator
    Annotations
    @inline()
  59. def ind[A >: AnyVal with String](a: Option[A]): Iterable[(String, Double)]

    Definition Classes
    Indicator
    Annotations
    @inline()
  60. def ind(a: AnyVal): Iterable[(String, Double)]

    Definition Classes
    Indicator
    Annotations
    @inline()
  61. implicit def intMapToDoubleConversion(m: Map[String, Int]): Map[String, Double]

  62. implicit def intToIterableTuple2EmptyStringDouble(x: Int): Iterable[(String, Double)]

  63. def intercept(): Iterable[(String, Double)]

    Provides an intercept function that returns a sequence of one key-value pair:

    Provides an intercept function that returns a sequence of one key-value pair:

    assert(intercept() == Seq(("", 1.0)))
    returns

    Definition Classes
    Intercept
    Annotations
    @inline()
  64. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  65. def log2(x: Double): Double

    Definition Classes
    BasicMath
    Annotations
    @inline()
  66. implicit def longMapToDoubleConversion(m: Map[String, Long]): Map[String, Double]

  67. implicit def longToIterableTuple2EmptyStringDouble(x: Long): Iterable[(String, Double)]

  68. def nGrams(s: String, n: Int, sep: String = "_", prefix: String = "=", suffix: String = "", splitString: String = """\s+""", maxElements: Option[Int] = None): Map[String, Int]

    Definition Classes
    SkipGrams
  69. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  70. final def notify(): Unit

    Definition Classes
    AnyRef
  71. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  72. implicit def shortToIterableTuple2EmptyStringDouble(x: Short): Iterable[(String, Double)]

  73. def skipGrams(str: String, n: Int, k: Int = 0, sep: String = "_", prefix: String = "=", suffix: String = "", splitString: String = """\s+""", maxElements: Option[Int] = None): Map[String, Int]

    Definition Classes
    SkipGrams
  74. def sos2(value: Double, min: Long, max: Long, delta: Long): Iterable[(String, Double)]

    Like sos2U but no underflows are reported.

    Like sos2U but no underflows are reported. Instead the values are first clamped to be in range so in the event value < min, return a tuple representing the min.

    value

    number to be sos2 binned

    min

    minimum bin value

    max

    minimum bin value

    delta

    bin size

    returns

    sos2 binned value

    Definition Classes
    Sos2
    Annotations
    @inline()
  75. def sos2(value: Option[Double], min: Long, max: Long, delta: Long, underflowKey: String, unknownKey: String): Iterable[(String, Double)]

    See com.eharmony.aloha.feature.Sos2.

    value

    number to be sos2 binned

    min

    minimum bin value

    max

    minimum bin value

    delta

    bin size

    underflowKey

    When value < min, an underflow key-value pair is emitted. This controls the key that is emitted.

    unknownKey

    When value is missing, a separate key-value pair is emitted. This controls the key that is emitted.

    returns

    sos2 binned value

    Definition Classes
    Sos2
    Annotations
    @inline()
  76. def sos2(value: Option[Double], min: Long, max: Long, delta: Long): Iterable[(String, Double)]

    Definition Classes
    Sos2
    Annotations
    @inline()
  77. def sos2I(value: Double, min: Long, max: Long, delta: Long): Seq[(Int, Double)]

    This is the purest form of sos2 binning that clamps the values in the [min, max] interval and then bins.

    This is the purest form of sos2 binning that clamps the values in the [min, max] interval and then bins.

    scala>  (0 to 10).map(_ / 4.0 - 0.25).map(v => s"$v\t${sos2(v, 0, 2, 1)}").foreach(println)
    -0.25  List((0,1.0))
    0.0    List((0,1.0))
    0.25   List((0,0.75), (1,0.25))
    0.5    List((0,0.5), (1,0.5))
    0.75   List((0,0.25), (1,0.75))
    1.0    List((1,1.0))
    1.25   List((1,0.75), (2,0.25))
    1.5    List((1,0.5), (2,0.5))
    1.75   List((1,0.25), (2,0.75))
    2.0    List((2,1.0))
    2.25   List((2,1.0))
    value

    number to be sos2 binned

    min

    minimum bin value

    max

    minimum bin value

    delta

    bin size

    returns

    sos2 binned value

    Definition Classes
    Sos2
  78. def sos2U(value: Option[Double], min: Long, max: Long, delta: Long, underflowKey: Option[String], unknown: Option[Iterable[(String, Double)]]): Iterable[(String, Double)]

    value

    number to be sos2 binned

    min

    minimum bin value

    max

    minimum bin value

    delta

    bin size

    underflowKey

    When value < min, an underflow key-value pair is emitted. This controls the key that is emitted.

    unknown

    When value is missing (None), a separate key-value pair is emitted. This controls the pair(s) that is/are emitted.

    returns

    Definition Classes
    Sos2
  79. def sos2U(value: Double, min: Long, max: Long, delta: Long): Iterable[(String, Double)]

    scala>  (0 to 10).map(_ / 4.0 - 0.25).map(v => s"$v\t${sos2U(v, 0, 2, 1)}").foreach(println)
    -0.25  List((=UNDERFLOW,1.0))
    0.0    List((=0,1.0))
    0.25   List((=0,0.75), (=1,0.25))
    0.5    List((=0,0.5), (=1,0.5))
    0.75   List((=0,0.25), (=1,0.75))
    1.0    List((=1,1.0))
    1.25   List((=1,0.75), (=2,0.25))
    1.5    List((=1,0.5), (=2,0.5))
    1.75   List((=1,0.25), (=2,0.75))
    2.0    List((=2,1.0))
    2.25   List((=2,1.0))
    value

    number to be sos2 binned

    min

    minimum bin value

    max

    minimum bin value

    delta

    bin size

    returns

    sos2 binned value

    Definition Classes
    Sos2
    Annotations
    @inline()
  80. def sos2U(value: Option[Double], min: Long, max: Long, delta: Long): Iterable[(String, Double)]

    Definition Classes
    Sos2
    Annotations
    @inline()
  81. implicit def string2Option(a: String): Option[String]

    Definition Classes
    OptionLifting
  82. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  83. implicit def toKv[A](a: Option[A]): OptToKv[A]

    Provides extension methods to Options via com.eharmony.aloha.models.reg.OptToKv.

    Provides extension methods to Options via com.eharmony.aloha.models.reg.OptToKv.

    A

    the type of value

    a

    an optional value

    returns

    an OptToKv instance

    Definition Classes
    RegressionModelValueToTupleConversions
  84. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from OptionLifting

Inherited from SkipGrams

Inherited from SparsityTransforms

Inherited from TimeConstants

Inherited from Intercept

Inherited from Indicator

Inherited from CustomSos2

Inherited from Sos2

Inherited from Comparisons

Inherited from BasicMath

Inherited from DefaultPossessor

Inherited from AnyRef

Inherited from Any

Ungrouped