Packages

  • package root
    Definition Classes
    root
  • package de
    Definition Classes
    root
  • package sciss

    The interfaces are grouped into the following packages:

    Welcome to the Mellite API documentation.

    The interfaces are grouped into the following packages:

    The Lucre transactional object model:

    • de.sciss.lucre.stm is the base package for transactions, with things like Obj, Txn, Sys, and Cursor
    • de.sciss.lucre.artifact is the base package for file system artifacts, with classes Artifact and ArtifactLocation
    • de.sciss.lucre.expr is the base package for expression types such as IntObj, DoubleObj, etc.

    Other useful packages:

    • de.sciss.synth.io for reading and writing audio files
    • de.sciss.osc for general Open Sound Control interfaces
    Definition Classes
    de
  • package lucre
    Definition Classes
    sciss
  • package data
    Definition Classes
    lucre
  • object HASkipList

    A transactional version of the deterministic k-(2k+1) top-down operated skip list as described in T.

    A transactional version of the deterministic k-(2k+1) top-down operated skip list as described in T. Papadakis, Skip Lists and Probabilistic Analysis of Algorithms. Ch. 4 (Deterministic Skip Lists), pp. 55--78. Waterloo (CA) 1993

    It uses the horizontal array technique with a parameter for k (minimum gap size). It uses a modified top-down removal algorithm that avoids the need for a second pass as in the original algorithm, and is careful about object creations, so that it will be able to persist the data structure without any unnecessary reads or writes to the store.

    Three implementation notes: (1) We treat the nodes as immutable at the moment, storing them directly in the S#Val child pointers of their parents. While this currently seems to have a performance advantage (?), we could try to avoid this by using S#Refs for the child pointers, making the nodes become mutable. We could avoid copying the arrays for each insertion or deletion, at the cost of more space, but maybe better performance.

    (2) The special treatment of isRight kind of sucks. Since now that information is also persisted, we might just have two types of branches and leaves, and avoid passing around this flag.

    (3) Since there is a bug with the top-down one-pass removal, we might end up removing the creation of instances of virtual branches altogether again when replacing the current algorithm by a two-pass one.

    TODO: nodes or at least leaves should be horizontally connected for a faster iterator and fast pair (interval) search

    Definition Classes
    data
  • Branch
  • HeadOrBranch
  • Leaf
  • Map
  • Node
  • Set

trait Set[T <: Exec[T], A] extends SkipList.Set[T, A] with HASkipList[T, A, A]

Linear Supertypes
HASkipList[T, A, A], SkipList.Set[T, A], SkipList[T, A, A], Mutable[T], Disposable[T], Writable, Identified[T], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Set
  2. HASkipList
  3. Set
  4. SkipList
  5. Mutable
  6. Disposable
  7. Writable
  8. Identified
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def +=(entry: A)(implicit tx: T): Set.this.type
    Definition Classes
    SkipList
  2. abstract def -=(key: A)(implicit tx: T): Set.this.type
    Definition Classes
    SkipList
  3. abstract def add(key: A)(implicit tx: T): Boolean

    Inserts a new key into the set.

    Inserts a new key into the set.

    key

    the key to insert

    returns

    true if the key was new to the set, false if a node with the given key already existed

    Definition Classes
    Set
  4. abstract def ceil(key: A)(implicit tx: T): Option[A]

    Finds the entry with the smallest key which is greater than or equal to the search key.

    Finds the entry with the smallest key which is greater than or equal to the search key.

    key

    the search key

    returns

    the found entry, or None if there is no key greater than or equal to the search key (e.g. the list is empty)

    Definition Classes
    SkipList
  5. abstract def clear()(implicit tx: T): Unit
    Definition Classes
    SkipList
  6. abstract def contains(key: A)(implicit tx: T): Boolean

    Searches for the Branch of a given key.

    Searches for the Branch of a given key.

    key

    the key to search for

    returns

    true if the key is in the list, false otherwise

    Definition Classes
    SkipList
  7. abstract def debugPrint()(implicit tx: T): String
    Definition Classes
    SkipList
  8. abstract def dispose()(implicit tx: T): Unit
    Definition Classes
    Disposable
  9. abstract def firstKey(implicit tx: T): A
    Definition Classes
    SkipList
  10. abstract def floor(key: A)(implicit tx: T): Option[A]

    Finds the entry with the largest key which is smaller than or equal to the search key.

    Finds the entry with the largest key which is smaller than or equal to the search key.

    key

    the search key

    returns

    the found entry, or None if there is no key smaller than or equal to the search key (e.g. the list is empty)

    Definition Classes
    SkipList
  11. abstract def head(implicit tx: T): A

    Returns the first element.

    Returns the first element. Throws an exception if the list is empty.

    Definition Classes
    SkipList
  12. abstract def headOption(implicit tx: T): Option[A]

    Returns the first element, or None if the list is empty.

    Returns the first element, or None if the list is empty.

    Definition Classes
    SkipList
  13. abstract def height(implicit tx: T): Int

    The number of levels in the skip list.

    The number of levels in the skip list.

    Definition Classes
    SkipList
  14. abstract def id: Ident[T]
    Definition Classes
    Identified
  15. abstract def indexInNodeL(key: A, n: Node[T, A, A])(implicit tx: T): Int
    Definition Classes
    HASkipList
  16. abstract def indexInNodeR(key: A, n: Node[T, A, A])(implicit tx: T): Int

    Finds the right-most key which is greater than or equal to the query key.

    Finds the right-most key which is greater than or equal to the query key.

    key

    the key to search for

    n

    the branch or leaf from which to go down

    returns

    the index to go down (a node whose key is greater than key), or -(index+1) if key was found at index

    Definition Classes
    HASkipList
  17. abstract def isEmpty(implicit tx: T): Boolean
    Definition Classes
    SkipList
  18. abstract def isomorphicQuery(compare: (A) => Int)(implicit tx: T): (A, Int)

    Finds the nearest item equal or greater than an unknown item from an isomorphic set.

    Finds the nearest item equal or greater than an unknown item from an isomorphic set. The isomorphism is represented by a comparison function which guides the binary search.

    compare

    a function that guides the search. should return -1 if the argument is smaller than the search key, 0 if both are equivalent, or 1 if the argument is greater than the search key. E.g., using some mapping, the function could look like mapping.apply(_).compare(queryKey)

    returns

    the nearest item, or the maximum item

    Definition Classes
    SkipList
  19. abstract def iterator(implicit tx: T): Iterator[A]
    Definition Classes
    SkipList
  20. abstract def keyFormat: TFormat[T, A]
    Definition Classes
    SkipList
  21. abstract def last(implicit tx: T): A

    Returns the last element.

    Returns the last element. Throws an exception if the list is empty.

    Definition Classes
    SkipList
  22. abstract def lastKey(implicit tx: T): A
    Definition Classes
    SkipList
  23. abstract def lastOption(implicit tx: T): Option[A]

    Returns the last element, or None if the list is empty.

    Returns the last element, or None if the list is empty.

    Definition Classes
    SkipList
  24. abstract def maxGap: Int

    The maximum gap within elements of each skip level.

    The maximum gap within elements of each skip level.

    Definition Classes
    SkipList
  25. abstract def minGap: Int

    The minimum gap within elements of each skip level.

    The minimum gap within elements of each skip level.

    Definition Classes
    SkipList
  26. abstract def nonEmpty(implicit tx: T): Boolean
    Definition Classes
    SkipList
  27. implicit abstract def ordering: TOrdering[T, A]

    The ordering used for the keys of this list.

    The ordering used for the keys of this list.

    Definition Classes
    SkipList
  28. abstract def remove(key: A)(implicit tx: T): Boolean

    Removes a key from the set.

    Removes a key from the set.

    key

    the key to remove

    returns

    true if the key was found and removed, false if it was not found

    Definition Classes
    Set
  29. abstract def size(implicit tx: T): Int

    Reports the number of keys in the skip list (size of the bottom level).

    Reports the number of keys in the skip list (size of the bottom level). This operation may take up to O(n) time, depending on the implementation.

    Definition Classes
    SkipList
  30. abstract def toIndexedSeq(implicit tx: T): IndexedSeq[A]
    Definition Classes
    SkipList
  31. abstract def toList(implicit tx: T): List[A]
    Definition Classes
    SkipList
  32. abstract def toSeq(implicit tx: T): Seq[A]
    Definition Classes
    SkipList
  33. abstract def toSet(implicit tx: T): scala.Predef.Set[A]
    Definition Classes
    SkipList
  34. abstract def top(implicit tx: T): Option[Node[T, A, A]]
    Definition Classes
    HASkipList
  35. abstract def write(out: DataOutput): Unit
    Definition Classes
    Writable

Concrete 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 def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(that: Any): Boolean
    Definition Classes
    Identified → AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    Identified → AnyRef → Any
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  14. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  17. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from HASkipList[T, A, A]

Inherited from SkipList.Set[T, A]

Inherited from SkipList[T, A, A]

Inherited from Mutable[T]

Inherited from Disposable[T]

Inherited from Writable

Inherited from Identified[T]

Inherited from AnyRef

Inherited from Any

Ungrouped