
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