Companion

Functions

Link copied to clipboard
open override fun acos(arg: StructureND<Double>): DoubleBufferND

Computes the inverse cosine of arg.

Link copied to clipboard
open override fun acosh(arg: StructureND<Double>): DoubleBufferND

Computes the inverse hyperbolic cosine of arg.

Link copied to clipboard
open override fun add(left: StructureND<Double>, right: StructureND<Double>): DoubleBufferND

Element-wise addition.

Link copied to clipboard
open override fun asin(arg: StructureND<Double>): DoubleBufferND

Computes the inverse sine of arg.

Link copied to clipboard
open override fun asinh(arg: StructureND<Double>): DoubleBufferND

Computes the inverse hyperbolic sine of arg.

Link copied to clipboard
open override fun atan(arg: StructureND<Double>): DoubleBufferND

Computes the inverse tangent of arg.

Link copied to clipboard
open override fun atanh(arg: StructureND<Double>): DoubleBufferND

Computes the inverse hyperbolic tangent of arg.

Link copied to clipboard

Dynamically invokes a binary operation with the certain name.

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

Dynamically dispatches a binary operation with the certain name.

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

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

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.

fun <T : Comparable<T>> GroupOpsND<T, Ring<T>>.contentEquals(st1: StructureND<T>, st2: StructureND<T>, absoluteTolerance: T): Boolean

Indicates whether some StructureND is equal to another one with absoluteTolerance.

Link copied to clipboard
open override fun cos(arg: StructureND<Double>): DoubleBufferND

Computes the cosine of arg.

Link copied to clipboard
open override fun cosh(arg: StructureND<Double>): DoubleBufferND

Computes the hyperbolic cosine of arg.

Link copied to clipboard
open operator override fun Double.div(arg: StructureND<Double>): DoubleBufferND

Divides an element by an ND structure of it.

open operator override fun StructureND<Double>.div(arg: Double): DoubleBufferND

Divides an ND structure by an element of it.

open operator override fun StructureND<Double>.div(k: Number): DoubleBufferND

Division of this element by scalar.

open operator override fun StructureND<Double>.div(arg: StructureND<Double>): DoubleBufferND

Division of two elements.

Link copied to clipboard
open override fun divide(left: StructureND<Double>, right: StructureND<Double>): DoubleBufferND

Element-wise division.

Link copied to clipboard
open override fun exp(arg: StructureND<Double>): DoubleBufferND

Computes Euler's number e raised to the power of the value arg.

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<Double>, 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

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

Link copied to clipboard
open override fun ln(arg: StructureND<Double>): DoubleBufferND

Computes the natural logarithm (base e) of the value arg.

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

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

Link copied to clipboard
@PerformancePitfall(message = "Very slow on remote execution algebras")
open fun StructureND<Double>.mapIndexed(transform: DoubleField.(index: IntArray, Double) -> Double): StructureND<Double>

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
open operator override fun Double.minus(arg: StructureND<Double>): StructureND<Double>

Subtracts an ND structure from an element of it.

open operator override fun StructureND<Double>.minus(arg: Double): StructureND<Double>

Subtracts an element from ND structure of it.

open operator override fun StructureND<Double>.minus(arg: StructureND<Double>): DoubleBufferND

Subtraction of two elements.

Link copied to clipboard
open override fun multiply(left: StructureND<Double>, right: StructureND<Double>): DoubleBufferND

Element-wise multiplication.

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 operator override fun Double.plus(arg: StructureND<Double>): StructureND<Double>

Adds an element to ND structure of it.

open operator override fun StructureND<Double>.plus(arg: Double): DoubleBufferND

Adds an ND structure to an element of it.

open operator override fun StructureND<Double>.plus(arg: StructureND<Double>): DoubleBufferND

Addition of two elements.

Link copied to clipboard
open infix fun StructureND<Double>.pow(pow: Number): StructureND<Double>

Raises this value to the power pow.

Link copied to clipboard
open override fun power(arg: StructureND<Double>, pow: Number): StructureND<Double>

Raises arg to a power if possible (negative number could not be raised to a fractional power). Throws IllegalArgumentException if not possible.

Link copied to clipboard
open override fun scale(a: StructureND<Double>, value: Double): DoubleBufferND

Scaling an element by a scalar.

Link copied to clipboard
open override fun sin(arg: StructureND<Double>): DoubleBufferND

Computes the sine of arg.

Link copied to clipboard
open override fun sinh(arg: StructureND<Double>): DoubleBufferND

Computes the hyperbolic sine of arg.

Link copied to clipboard

Computes the square root of the value arg.

Link copied to clipboard
open override fun structureND(shape: ShapeND, initializer: DoubleField.(IntArray) -> Double): DoubleBufferND

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
open override fun tan(arg: StructureND<Double>): DoubleBufferND

Computes the tangent of arg.

Link copied to clipboard
open override fun tanh(arg: StructureND<Double>): DoubleBufferND

Computes the hyperbolic tangent of arg.

Link copied to clipboard
open operator override fun Number.times(arg: StructureND<Double>): DoubleBufferND

Multiplication of this number by element.

open operator override fun StructureND<Double>.times(k: Number): DoubleBufferND

Multiplication of this element by a scalar.

open operator override fun StructureND<Double>.times(arg: StructureND<Double>): DoubleBufferND

Multiplies this element by scalar.

open operator fun Double.times(arg: StructureND<Double>): StructureND<Double>

Multiplies an element by a ND structure of it.

open operator fun StructureND<Double>.times(arg: Double): StructureND<Double>

Multiplies an ND structure by an element of it.

Link copied to clipboard
Link copied to clipboard
open operator override fun StructureND<Double>.unaryMinus(): DoubleBufferND

The negation of this element.

Link copied to clipboard

Dynamically invokes a unary operation with the certain name.

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

Dynamically dispatches a unary operation with the certain name.

Link copied to clipboard
open operator override fun StructureND<Double>.unaryPlus(): DoubleBufferND

Returns this value.

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<Double>, right: StructureND<Double>, transform: DoubleField.(Double, Double) -> Double): BufferND<Double>

Combines two structures into one.

Properties

Link copied to clipboard
Link copied to clipboard

Provide a factory for buffers, associated with this Algebra

Link copied to clipboard

The algebra over elements of ND structure.

Link copied to clipboard
open override val indexerBuilder: (ShapeND) -> ShapeIndexer