SeqGen

trait SeqGen[+A] extends DataGen[A]

This the base trait for all efficient sequence collections based on Array like classes, Arrays, ArrayBuffers etc. The final classes compile time wrap the platform Array and buffer classes. So currently there are just two classes for each type A, An ArrImut that wraps a standard immutable Array to produce an immutable array, and a ArrBuff that wraps an ArrayBuffer. Currently this just in a standard ArrayBuffer. Where A is a compound value types or an AnyVal type.

trait DataGen[A]
class Any
class AnyBuff[A]
trait ArrBase[A]
class Arr[A]
trait ArrArrayDbl[A]
trait ArrValueNs[A]
trait ArrDblNs[A]
trait ArrDbl1s[A]
class Angles
trait ArrDbl2s[A]
class MyDbl2s
class Pt2s
class Vec2MArr
class LatLongs
trait ArrDbl3s[A]
class Pt3s
trait ArrDbl4s[A]
class LineSegs
trait ArrDbl5s[A]
trait ArrDbl6s[A]
trait ArrDbl7s[A]
trait ArrIntNs[A]
trait ArrInt1s[A]
class Colours
class HSteps
trait ArrInt2s[A]
class Coods
class Roords
class HCens
class HCoords
class HSides
class HVerts
trait ArrInt4s[A]
class CoodLines
trait ArrLongNs[A]
trait ArrLong1s[A]
class Booleans
class Chars
class Dbls
class Floats
class Ints
class Longs
class Strings
trait BuffValueNs[A]
trait BuffDblNs[A]
trait BuffDbl2s[A]
class MinesBuff
class BuffPt2
class Vec2MBuff
trait BuffDbl3s[A]
class Pt3Buff
trait BuffDbl4s[A]
trait BuffIntNs[A]
trait BuffInt1s[A]
trait BuffInt2s[A]
class CoodBuff
class RoordBuff
class HCenBuff
class HVertBuff
trait BuffInt4s[A, M]
trait BuffLongNs[A]
trait BuffLong1s[A, ArrA]
class DblsBuff
class IntBuff
class LongsBuff

Type members

Types

type ThisT <: SeqGen[A]

The final type of this object.

The final type of this object.

Value members

Concrete methods

@inline
def apply(index: Int): A

apply method accesses the individual elements of the sequence by 0 based index.

apply method accesses the individual elements of the sequence by 0 based index.

def collect[B, BB <: ArrBase[B]](pf: PartialFunction[A, B])(implicit ev: ArrBuilder[B, BB]): BB

Collects values of B by applying partial function to only those elements of A, for which the PartialFunction is defined.

Collects values of B by applying partial function to only those elements of A, for which the PartialFunction is defined.

def collectList[B](pf: PartialFunction[A, B]): List[B]

Collects a List values of B by applying partial function to only those elements of A, for which the PartialFunction is defined.

Collects a List values of B by applying partial function to only those elements of A, for which the PartialFunction is defined.

def contains[A1 >: A](elem: A1): Boolean
@inline
def cycleGet(index: Int): A

Applies an index to this ArrayLike collection which cycles back to element 0, when it reaches the end of the collection. Accepts even negative integers as an index value without throwing an exception.

Applies an index to this ArrayLike collection which cycles back to element 0, when it reaches the end of the collection. Accepts even negative integers as an index value without throwing an exception.

def eMap[B, ArrB <: ArrBase[B]](f: A => EMon[B])(implicit ev: ArrBuilder[B, ArrB]): EMon[ArrB]
def eMapList[B](f: A => EMon[B]): EMon[List[B]]
@inline
def empty: Boolean

Is this sequence empty?

Is this sequence empty?

def existsCount(f: A => Boolean): Int

Counts the number of elements that fulfil the condition A => Boolean

Counts the number of elements that fulfil the condition A => Boolean

def fMax[B](defaultValue: B)(f: A => B)(implicit cmp: Ordering[B]): B

Gives the maximum value of type B, produced by applying the function from A to B on each element of this collection, or the default value if the collection is empty.

Gives the maximum value of type B, produced by applying the function from A to B on each element of this collection, or the default value if the collection is empty.

def fMin[B](defaultValue: B)(f: A => B)(implicit cmp: Ordering[B]): B

Gives the minimum value of type B, produced by applying the function from A to B on each element of this collection, or the default value if the collection is empty.

Gives the minimum value of type B, produced by applying the function from A to B on each element of this collection, or the default value if the collection is empty.

def filter[ArrA <: ArrBase[A]](f: A => Boolean)(implicit ev: ArrBuilder[A, ArrA]): ArrA
def filterNot[ArrA <: ArrBase[A]](f: A => Boolean)(implicit ev: ArrBuilder[A, ArrA]): ArrA
def filterToList(f: A => Boolean): List[A]
def flatMap[ArrB <: ArrBase[_]](f: A => ArrB)(implicit ev: ArrFlatBuilder[ArrB]): ArrB

Specialised flatMap to an immutable Arr.

Specialised flatMap to an immutable Arr.

def foldHeadTail[B](initial: B)(fHead: (B, A) => B)(fTail: (B, A) => B): B
def foldLeft[B](initial: B)(f: (B, A) => B): B
def forAll(p: A => Boolean): Boolean
def foreach[U](f: A => U): Unit

Performs a side effecting function on each element of this sequence in order. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users.

Performs a side effecting function on each element of this sequence in order. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users.

def foreachInit[U](f: A => U): Unit
def foreachReverse[U](f: A => U): Unit

Consider changing this name, as might not be appropriate to all sub classes.

Consider changing this name, as might not be appropriate to all sub classes.

@inline
def head: A

The first element of this sequence.

The first element of this sequence.

def headFold[B](noHead: => B)(ifHead: A => B): B

Folds over the non existence / existence of a head element. The first parameter is a value for an empty sequence, the second parameter passed as a separate parameter list is a function on the head element.

Folds over the non existence / existence of a head element. The first parameter is a value for an empty sequence, the second parameter passed as a separate parameter list is a function on the head element.

def headFoldToString[B](noHead: => String): String

Folds over the non existence / existence of a head element. If the sequence is nonEmpty applies toString to head element else returns the noHead parameter string.

Folds over the non existence / existence of a head element. If the sequence is nonEmpty applies toString to head element else returns the noHead parameter string.

def iFlatMap[ArrB <: ArrBase[_]](f: (Int, A) => ArrB)(implicit build: ArrFlatBuilder[ArrB]): ArrB

Specialised index with flatMap to an immutable Arr. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Specialised index with flatMap to an immutable Arr. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def iFlatMap[ArrB <: ArrBase[_]](iInit: Int)(f: (Int, A) => ArrB)(implicit build: ArrFlatBuilder[ArrB]): ArrB

Specialised index with flatMap to an immutable Arr. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Specialised index with flatMap to an immutable Arr. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def iForAll(p: (Int, A) => Boolean): Boolean

Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def iForeach[U](f: (Int, A) => U): Unit

Index with foreach. Performs a side effecting function on the index and each element of this sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Index with foreach. Performs a side effecting function on the index and each element of this sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def iForeach[U](startIndex: Int)(f: (Int, A) => U): Unit

Index with foreach. Performs a side effecting function on the index and each element of this sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Index with foreach. Performs a side effecting function on the index and each element of this sequence. It takes a function as a parameter. The function may return Unit. If it does return a non Unit value it is discarded. The [U] type parameter is there just to avoid warnings about discarded values and can be ignored by method users. The method has 2 versions / name overloads. The default start for the index is 0 if just the function parameter is passed. The second version name overload takes an Int for the first parameter list, to set the start value of the index. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def iForeachReverse[U](f: (Int, A) => U): Unit

Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def iMap[B, ArrB <: ArrBase[B]](f: (Int, A) => B)(implicit ev: ArrBuilder[B, ArrB]): ArrB

Specialised index with map to an immutable ArrBase of B. This method should be overridden in sub classes. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

Specialised index with map to an immutable ArrBase of B. This method should be overridden in sub classes. Note the function signature follows the foreach based convention of putting the collection element 2nd or last as seen for example in fold methods' (accumulator, element) => B signature.

def ifHead[U](f: A => U): Unit

if this SeqGen is nonEmpty performs the side effecting function on the head. If empty procedure is applied.

if this SeqGen is nonEmpty performs the side effecting function on the head. If empty procedure is applied.

def indexOf(elem: A): Int
def indexWhere(f: A => Boolean): Int

Return the index of the first element where predicate is true, or -1 if predicate not true forall.

Return the index of the first element where predicate is true, or -1 if predicate not true forall.

def iterFlatMap[B, ArrB <: ArrBase[B]](f: A => Iterable[B])(implicit ev: ArrBuilder[B, ArrB]): ArrB

FlatMaps over a function from A to any Iterable.

FlatMaps over a function from A to any Iterable.

@inline
def last: A

The last element of this sequence.

The last element of this sequence.

def lastFold[B](noLast: => B)(ifLast: A => B): B

Folds over the non existence / existence of a last element. The first parameter is a value for an empty sequence, the second parameter passed as a separate parameter list is a function on the last element.

Folds over the non existence / existence of a last element. The first parameter is a value for an empty sequence, the second parameter passed as a separate parameter list is a function on the last element.

def map[B, ArrB <: ArrBase[B]](f: A => B)(implicit ev: ArrBuilder[B, ArrB]): ArrB

Specialised map to an immutable ArrBase of B.

Specialised map to an immutable ArrBase of B.

def map2To1[B, ArrB <: ArrBase[B]](f: (A, A) => B)(implicit ev: ArrBuilder[B, ArrB]): ArrB

map 2 elements of A to 1 element of B. Ignores the last element on a collection of odd numbered length.

map 2 elements of A to 1 element of B. Ignores the last element on a collection of odd numbered length.

def mapCollectGoods[B, BB <: ArrBase[B]](f: A => EMon[B])(implicit ev: ArrBuilder[B, BB]): BB

maps from A to EMon[B], collects the good values.

maps from A to EMon[B], collects the good values.

def mapList[B <: AnyRef](f: A => B): List[B]

maps ValueProduct collection to List

maps ValueProduct collection to List

def mapWithAcc[B, ArrB <: ArrBase[B], C](initC: C)(f: (C, A) => (B, C))(implicit ev: ArrBuilder[B, ArrB]): ArrB
def max[B >: A](implicit ord: Ordering[B]): A
def min[B >: A](implicit ord: Ordering[B]): A
def mkString(seperator: String): String

Not sure about this method.

Not sure about this method.

@inline
def nonEmpty: Boolean

Is this sequence non empty?

Is this sequence non empty?

@inline

Method for keeping the typer happy when returning this as an instance of ThisT.

Method for keeping the typer happy when returning this as an instance of ThisT.

def sum(implicit ev: Sumable[A]): A
def sumBy(f: A => Int): Int
def tailForeach[U](f: A => U): Unit

Foreachs over the tail of this sequence.

Foreachs over the tail of this sequence.

def tailfold[B](initial: B)(f: (B, A) => B): B

foldLeft over the tail of this sequence.

foldLeft over the tail of this sequence.

def toList: List[A]
def toStrsCommaFold(fToStr: A => String): String
def toStrsCommaNoSpaceFold(fToStr: A => String): String
def toStrsCommaParenth(fToStr: A => String): String
def toStrsFold(seperator: String, f: A => String): String
def toStrsSemiFold(fToStr: A => String): String
def toStrsSemiParenth(fToStr: A => String): String
def zipMap[B, C, ArrC <: ArrBase[C]](operator: SeqGen[B])(f: (A, B) => C)(implicit ev: ArrBuilder[C, ArrC]): ArrC

Takes a second collection as a parameter and zips the elements of this collection and the operand collection and applies the specialised map function from type A and type B to type C.

Takes a second collection as a parameter and zips the elements of this collection and the operand collection and applies the specialised map function from type A and type B to type C.

def zipMap2[B, C, D, ArrD <: ArrBase[D]](operator1: SeqGen[B], operator2: SeqGen[C])(f: (A, B, C) => D)(implicit ev: ArrBuilder[D, ArrD]): ArrD

Takes a second collection and third collections as parameters and zips the elements of this collection and the operand collections and applies the specialised map function from type A and type B and type C to type D.

Takes a second collection and third collections as parameters and zips the elements of this collection and the operand collections and applies the specialised map function from type A and type B and type C to type D.

Inherited methods

def dataForeach[U](f: A => U): Unit

Performs a side effecting function on each element of this sequence in order.

Performs a side effecting function on each element of this sequence in order.

Inherited from
DataGen
def dataIForeach[U](f: (A, Int) => U): Unit

Performs a side effecting function on each element of this sequence in order.

Performs a side effecting function on each element of this sequence in order.

Inherited from
DataGen
def dataLast: A
Inherited from
DataGen
def dataMap[B, ArrB <: ArrBase[B]](f: A => B)(implicit ev: ArrBuilder[B, ArrB]): ArrB

Specialised map to an immutable ArrBase of B.

Specialised map to an immutable ArrBase of B.

Inherited from
DataGen
def dataTailForeach[U](f: A => U): Unit

Foreachs over the tail of the data sequence.

Foreachs over the tail of the data sequence.

Inherited from
DataGen
def dataTailfold[B](initial: B)(f: (B, A) => B): B

foldLeft over the tail of the data sequence.

foldLeft over the tail of the data sequence.

Inherited from
DataGen
def elemsLenStr: String

Just a handy short cut to give the length of this collection as a string.

Just a handy short cut to give the length of this collection as a string.

Inherited from
DataGen
def elemsNum: Int

The number of elements in the collection. These collections use underlying mutable Arrays and ArrayBuffers. The length of the underlying Array will be this number or a multiple of this number.

The number of elements in the collection. These collections use underlying mutable Arrays and ArrayBuffers. The length of the underlying Array will be this number or a multiple of this number.

Inherited from
DataGen
final
def elemsStr: String

The element String allows the composition of toString for the whole collection. The syntax of the output will be reworked.

The element String allows the composition of toString for the whole collection. The syntax of the output will be reworked.

Inherited from
DataGen
def fElemStr: A => String
Inherited from
DataGen
@inline
def indexData(index: Int): A

apply method accesses the individual elements of the sequence by 0 based index.

apply method accesses the individual elements of the sequence by 0 based index.

Inherited from
DataGen
final override
def toString: String
Definition Classes
DataGen -> Any
Inherited from
DataGen
def typeStr: String

String specifying the type of this object.

String specifying the type of this object.

Inherited from
DataGen
def unsafeSetElem(i: Int, value: A): Unit

Sets / mutates an element in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Sets / mutates an element in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Inherited from
DataGen
def unsafeSetElems(index: Int, elems: A*): Unit

Sets / mutates elements in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Sets / mutates elements in the Arr. This method should rarely be needed by end users, but is used by the initialisation and factory methods.

Inherited from
DataGen