All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.space.kscience.kmath.expressions.expressionBuilders.kt Maven / Gradle / Ivy

package space.kscience.kmath.expressions

import space.kscience.kmath.operations.ExtendedField
import space.kscience.kmath.operations.Field
import space.kscience.kmath.operations.Ring
import space.kscience.kmath.operations.Space
import kotlin.contracts.InvocationKind
import kotlin.contracts.contract


/**
 * Creates a functional expression with this [Space].
 */
public inline fun  Space.spaceExpression(block: FunctionalExpressionSpace>.() -> Expression): Expression {
    contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }
    return FunctionalExpressionSpace(this).block()
}

/**
 * Creates a functional expression with this [Ring].
 */
public inline fun  Ring.ringExpression(block: FunctionalExpressionRing>.() -> Expression): Expression {
    contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }
    return FunctionalExpressionRing(this).block()
}

/**
 * Creates a functional expression with this [Field].
 */
public inline fun  Field.fieldExpression(block: FunctionalExpressionField>.() -> Expression): Expression {
    contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }
    return FunctionalExpressionField(this).block()
}

/**
 * Creates a functional expression with this [ExtendedField].
 */
public inline fun  ExtendedField.extendedFieldExpression(block: FunctionalExpressionExtendedField>.() -> Expression): Expression {
    contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) }
    return FunctionalExpressionExtendedField(this).block()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy