LinearOps

Operations mixin for segment-valued timelines whose payloads represent continuous, piecewise linear values.

Currently only used for Real profiles, but in the future could be refactored for duration profiles or parallel real profiles.

Inheritors

Functions

Link copied to clipboard
open override fun abs(): THIS

(DOC) Calculates the absolute value of this profile.

Link copied to clipboard
open fun cache(): THIS

(DOC) Caches the timeline for all available time.

abstract fun cache(opts: CollectOptions): THIS

Caches the result of collecting this timeline, to be reused for future collect requests if possible.

open fun cache(bounds: Interval): THIS

(DOC) A simplified version of cache.

Link copied to clipboard

(DOC) Collects the timeline for all available time.

(DOC) Evaluates the stack of operations and produces a list of timeline payload objects.

(DOC) A simplified version of collect.

Link copied to clipboard

(DOC) Safely converts to another timeline type that accepts the same payload type.

Link copied to clipboard
open fun filter(preserveMargin: Boolean = false, f: (Segment<LinearEquation>) -> Boolean): THIS

(DOC) Removes or retains objects based on a predicate.

Link copied to clipboard
open fun filterByDuration(validInterval: Interval): THIS

(DOC) Removes objects whose duration is outside a given valid interval.

Link copied to clipboard
open fun filterByWindows(windows: SerialOps<Interval, *>, truncateMarginal: Boolean = true): THIS

(DOC) Filters out payload objects whose intervals are not contained in the given Windows timeline.

Link copied to clipboard
open fun filterLongerThan(dur: Duration): THIS

(DOC) Removes objects whose duration is shorter than a given duration.

Link copied to clipboard
open fun filterShorterThan(dur: Duration): THIS

(DOC) Removes objects whose duration is longer than a given duration.

Link copied to clipboard

(DOC) A simpler version of flatMap2Values for operations that don't change the timeline type.

open fun <W : Any, R : Any, RESULT : SegmentOps<R, RESULT>> flatMap2Values(ctor: (Timeline<Segment<R>, RESULT>) -> RESULT, other: SegmentOps<W, *>, op: (LinearEquation, W, Interval) -> SegmentOps<R, *>?): RESULT

(DOC) Performs a local binary operation that produces profiles, and flattens it.

Link copied to clipboard

(DOC) A simpler version of flatMapValues for operations that don't change the timeline type.

(DOC) Maps segments into a collection of nested timelines and flattens them into their original intervals.

Link copied to clipboard
Link copied to clipboard

(DOC) Similar to filter, but produces a coalesced Windows object that highlights everything that satisfies the predicate.

Link copied to clipboard

(DOC) Inserts a no-op function into the operation stack to allow side effects, such as printing.

Link copied to clipboard

(DOC) Similar to filter, but returns an Universal timeline.

Link copied to clipboard
abstract operator fun iterator(): Iterator<Segment<LinearEquation>>
Link copied to clipboard

(DOC) A simplified version of map2Values for operations that don't change the timeline type.

open fun <W : Any, R : Any, RESULT : SegmentOps<R, RESULT>> map2Values(ctor: (Timeline<Segment<R>, RESULT>) -> RESULT, other: SegmentOps<W, *>, op: (LinearEquation, W, Interval) -> R?): RESULT

(DOC) Performs a local binary operation between two segment-valued timelines.

Link copied to clipboard

(DOC) Locally transforms the values of a profile without changing the intervals or profile type.

(DOC) Locally transforms the values of a profile without changing the intervals.

Link copied to clipboard
open override fun negate(): THIS

(DOC) Negates this profile.

Link copied to clipboard
open fun rate(unit: Duration = Duration.SECOND): Numbers<Double>

(DOC) Maps each segment into its derivative.

Link copied to clipboard
open fun select(interval: Interval): THIS

(DOC) Restricts the timeline to only be evaluated in the given interval.

Link copied to clipboard
open override fun shift(dur: Duration): THIS

(DOC) Uniformly shifts the entire timeline in time (positive shifts toward the future).

Link copied to clipboard
open fun split(f: (Segment<LinearEquation>) -> Int): THIS

(DOC) Splits payload objects into a variable number of equally sized pieces.

Link copied to clipboard
Link copied to clipboard
open operator fun unaryMinus(): THIS
Link copied to clipboard

(DOC) UNSAFE! Casts this timeline type to another type without changing its contents.

Link copied to clipboard
open fun <R : IntervalLike<R>, RESULT : GeneralOps<R, RESULT>> unsafeFlatMap(ctor: (Timeline<R, RESULT>) -> RESULT, boundsTransformer: BoundsTransformer, truncate: Boolean, f: (Segment<LinearEquation>) -> Segment<GeneralOps<R, *>>): RESULT

(DOC) UNSAFE! Maps each object to a nested timeline and flattens all the timelines into one.

Link copied to clipboard
open fun unsafeMap(boundsTransformer: BoundsTransformer, truncate: Boolean, f: (Segment<LinearEquation>) -> Segment<LinearEquation>): THIS

(DOC) UNSAFE! A simpler version of unsafeMap for operations that don't change the timeline type.

open fun <R : IntervalLike<R>, RESULT : GeneralOps<R, RESULT>> unsafeMap(ctor: (Timeline<R, RESULT>) -> RESULT, boundsTransformer: BoundsTransformer, truncate: Boolean, f: (Segment<LinearEquation>) -> R): RESULT

(DOC) UNSAFE! Maps each timeline object to another object, of potentially a different type, at potentially a different time.

Link copied to clipboard

Performs a generalized binary operation between this and another timeline.

Link copied to clipboard
open fun unsafeMapIntervals(boundsTransformer: BoundsTransformer, truncate: Boolean, f: (Segment<LinearEquation>) -> Interval): THIS

(DOC) UNSAFE! Maps the interval of each object, leaving the rest of the object unchanged.

Link copied to clipboard

(DOC) UNSAFE! A simpler version of unsafeOperate for operations that don't change the timeline type.

(DOC) UNSAFE! The basic, most general operation method. All operations eventually delegate here.

Link copied to clipboard
open fun unset(reject: Interval): THIS

(DOC) Unsets everything in a given interval. Timeline objects whose intervals fully contain the rejected interval may be split into two objects.