BufferAlgebraND

interface BufferAlgebraND<T, out A : Algebra<T>> : AlgebraND<T, A> (source)

Inheritors

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open fun binaryOperation(operation: String, left: StructureND<T>, right: StructureND<T>): StructureND<T>

Dynamically invokes a binary operation with the certain name.

Link copied to clipboard
open fun binaryOperationFunction(operation: String): (left: StructureND<T>, right: StructureND<T>) -> StructureND<T>

Dynamically dispatches a binary operation with the certain name.

Link copied to clipboard
open fun bindSymbol(value: String): StructureND<T>

The same as bindSymbolOrNull but throws an error if symbol could not be bound

Link copied to clipboard
fun <T> Algebra<T>.bindSymbol(symbol: Symbol): T
Link copied to clipboard
open fun bindSymbolOrNull(value: String): StructureND<T>?

Wraps a raw string to T object. This method is designed for three purposes:

Link copied to clipboard
fun <T> Algebra<T>.bindSymbolOrNull(symbol: Symbol): T?
Link copied to clipboard

Indicates whether some StructureND is equal to another one.

Link copied to clipboard

Export an algebra element, so it could be accessed even after algebra scope is closed. This method must be used on algebras where data is stored externally or any local algebra state is used. By default (if not overridden), exports the object itself.

Link copied to clipboard
open fun <F : StructureFeature> getFeature(structure: StructureND<T>, type: KClass<out F>): F?

Get a feature of the structure in this scope. Structure features take precedence other context features.

Link copied to clipboard
inline fun <T : Any, F : StructureFeature> AlgebraND<T, *>.getFeature(structure: StructureND<T>): F?

Get a feature of the structure in this scope. Structure features take precedence other context features.

Link copied to clipboard
open operator fun (T) -> T.invoke(structure: StructureND<T>): StructureND<T>

Element-wise invocation of function working on T on a StructureND.

Link copied to clipboard
open override fun StructureND<T>.map(transform: A.(T) -> T): BufferND<T>

Maps elements from one structure to another one by applying transform to them.

Link copied to clipboard
open override fun StructureND<T>.mapIndexed(transform: A.(index: IntArray, T) -> T): BufferND<T>

Maps elements from one structure to another one by applying transform to them alongside with their indices.

Link copied to clipboard
inline fun <T, A : Algebra<T>> BufferAlgebraND<T, A>.mapInline(arg: BufferND<T>, crossinline transform: A.(T) -> T): BufferND<T>
Link copied to clipboard
fun <T, A : Ring<T>> AlgebraND<T, A>.one(shape: ShapeND): StructureND<T>
@JvmName(name = "oneVarArg")
fun <T, A : Ring<T>> AlgebraND<T, A>.one(shapeFirst: Int, vararg shapeRest: Int): StructureND<T>
Link copied to clipboard
open override fun structureND(shape: ShapeND, initializer: A.(IntArray) -> T): BufferND<T>

Produces a new StructureND using given initializer function.

Link copied to clipboard
fun <T, A : Algebra<T>> BufferAlgebraND<T, A>.structureND(vararg shape: Int, initializer: A.(IntArray) -> T): BufferND<T>
fun <T, A : Algebra<T>> AlgebraND<T, A>.structureND(shapeFirst: Int, vararg shapeRest: Int, initializer: A.(IntArray) -> T): StructureND<T>
Link copied to clipboard
Link copied to clipboard
open fun unaryOperation(operation: String, arg: StructureND<T>): StructureND<T>

Dynamically invokes a unary operation with the certain name.

Link copied to clipboard
open fun unaryOperationFunction(operation: String): (arg: StructureND<T>) -> StructureND<T>

Dynamically dispatches a unary operation with the certain name.

Link copied to clipboard
fun <T, A : Group<T>> AlgebraND<T, A>.zero(shape: ShapeND): StructureND<T>
@JvmName(name = "zeroVarArg")
fun <T, A : Group<T>> AlgebraND<T, A>.zero(shapeFirst: Int, vararg shapeRest: Int): StructureND<T>
Link copied to clipboard
open override fun zip(left: StructureND<T>, right: StructureND<T>, transform: A.(T, T) -> T): BufferND<T>

Combines two structures into one.

Properties

Link copied to clipboard
abstract val bufferAlgebra: BufferAlgebra<T, A>
Link copied to clipboard

Provide a factory for buffers, associated with this Algebra

Link copied to clipboard
open override val elementAlgebra: A

The algebra over elements of ND structure.

Link copied to clipboard