# InvertibleIndexFunction

### Related Docs: object InvertibleIndexFunction | package indexfunction

#### abstract class InvertibleIndexFunction[V] extends IndexFunction[V]

An IndexFunction that is also invertible (and so 1-1).

V

The range value type of this function.

Self Type
InvertibleIndexFunction[V]
Linear Supertypes
IndexFunction[V], Serializable, Serializable, PartialFunction[Int, V], (Int) ⇒ V, AnyRef, Any
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. InvertibleIndexFunction
2. IndexFunction
3. Serializable
4. Serializable
5. PartialFunction
6. Function1
7. AnyRef
8. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Abstract Value Members

1. #### abstract def apply(v1: Int): V

Definition Classes
Function1
2. #### abstract def domain: Iterator[Int]

Obtain a new iterator over the indices that the function is defined on.

Obtain a new iterator over the indices that the function is defined on.

returns

An iterator over the function domain

Definition Classes
IndexFunction
3. #### abstract def inverse: InverseIndexFunction[V]

Obtain the inverse of this function.

Obtain the inverse of this function.

returns

The inverse function that maps range values to their correponding indices

4. #### abstract def isDefinedAt(x: Int): Boolean

Definition Classes
PartialFunction
5. #### abstract def width: Int

The width of the integer index interval that contains the domain.

The width of the integer index interval that contains the domain. All indices this function is defined on are on the interval [0, width)

returns

The width of the interval [0, width) containing the function domain.

Definition Classes
IndexFunction

### Concrete Value Members

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

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

Definition Classes
AnyRef → Any
3. #### final def ++(that: InvertibleIndexFunction[V]): InvertibleIndexFunction[V]

Concatenate two invertible index functions.

Concatenate two invertible index functions.

that

The right-hand function of the concatenation

returns

The concatenation of left and right index functions, defined as:

`(f1 ++ f2)(j) = if (j < f1.width) f1(j) else f2(j - f1.width)`
Note

The range values of the argument functions must be disjoint, in order to preserve the invertability of their concatenation.

4. #### final def ++(that: IndexFunction[V]): IndexFunction[V]

Concatenate two index functions.

Concatenate two index functions.

that

The right-hand function of the concatenation

returns

The concatenation of left and right index functions, defined as:

`(f1 ++ f2)(j) = if (j < f1.width) f1(j) else f2(j - f1.width)`
Definition Classes
IndexFunction
5. #### final def ==(arg0: Any): Boolean

Definition Classes
AnyRef → Any
6. #### def andThen[C](k: (V) ⇒ C): PartialFunction[Int, C]

Definition Classes
PartialFunction → Function1
7. #### def applyOrElse[A1 <: Int, B1 >: V](x: A1, default: (A1) ⇒ B1): B1

Definition Classes
PartialFunction
8. #### final def asInstanceOf[T0]: T0

Definition Classes
Any
9. #### def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
10. #### def compose[A](g: (A) ⇒ Int): (A) ⇒ V

Definition Classes
Function1
Annotations
@unspecialized()
11. #### final def eq(arg0: AnyRef): Boolean

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

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

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

Definition Classes
AnyRef → Any
15. #### def hashCode(): Int

Definition Classes
AnyRef → Any
16. #### final def isInstanceOf[T0]: Boolean

Definition Classes
Any
17. #### def lift: (Int) ⇒ Option[V]

Definition Classes
PartialFunction
18. #### final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef
19. #### final def notify(): Unit

Definition Classes
AnyRef
20. #### final def notifyAll(): Unit

Definition Classes
AnyRef
21. #### def orElse[A1 <: Int, B1 >: V](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

Definition Classes
PartialFunction
22. #### final def range: Iterator[V]

Obtain a new iterator over the function range values

Obtain a new iterator over the function range values

returns

An iterator over values that may be returned by the function

Definition Classes
InvertibleIndexFunctionIndexFunction
23. #### def runWith[U](action: (V) ⇒ U): (Int) ⇒ Boolean

Definition Classes
PartialFunction
24. #### final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef
25. #### final def toMap: Map[Int, V]

Obtain a Scala Map from values in the domain to their corresponding range values.

Obtain a Scala Map from values in the domain to their corresponding range values.

returns

A Scala Map that is equivalent to this function

Definition Classes
IndexFunction
26. #### def toString(): String

Definition Classes
Function1 → AnyRef → Any
27. #### final def wait(): Unit

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

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

Definition Classes
AnyRef
Annotations
@throws( ... )