From 2fe04040c6316912969eeef5cbfe1ca799aef736 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 27 Mar 2024 09:58:28 +0300 Subject: [PATCH] Fix AttributeBuilder inlining --- .../space/kscience/kmath/integration/GaussIntegrator.kt | 2 +- .../kscience/kmath/integration/MultivariateIntegrand.kt | 2 +- .../space/kscience/kmath/integration/UnivariateIntegrand.kt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/GaussIntegrator.kt b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/GaussIntegrator.kt index e2f5c77ba..c988cdbde 100644 --- a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/GaussIntegrator.kt +++ b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/GaussIntegrator.kt @@ -92,7 +92,7 @@ public inline fun GaussIntegrator.integrate( range: ClosedRange, order: Int = 10, intervals: Int = 10, - attributesBuilder: AttributesBuilder>.() -> Unit = {}, + noinline attributesBuilder: AttributesBuilder>.() -> Unit = {}, noinline function: (Double) -> T, ): UnivariateIntegrand { require(range.endInclusive > range.start) { "The range upper bound should be higher than lower bound" } diff --git a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/MultivariateIntegrand.kt b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/MultivariateIntegrand.kt index 1afb59e5d..79e867576 100644 --- a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/MultivariateIntegrand.kt +++ b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/MultivariateIntegrand.kt @@ -29,6 +29,6 @@ public fun MultivariateIntegrand.withAttributes( ): MultivariateIntegrand = withAttributes(attributes.modified(block)) public inline fun MultivariateIntegrand( - attributeBuilder: AttributesBuilder>.() -> Unit, + noinline attributeBuilder: AttributesBuilder>.() -> Unit, noinline function: (Point) -> T, ): MultivariateIntegrand = MultivariateIntegrand(safeTypeOf(), Attributes(attributeBuilder), function) diff --git a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/UnivariateIntegrand.kt b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/UnivariateIntegrand.kt index dbe507233..e5d220f0f 100644 --- a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/UnivariateIntegrand.kt +++ b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/UnivariateIntegrand.kt @@ -30,7 +30,7 @@ public fun UnivariateIntegrand.withAttributes( ): UnivariateIntegrand = withAttributes(attributes.modified(block)) public inline fun UnivariateIntegrand( - attributeBuilder: AttributesBuilder>.() -> Unit, + noinline attributeBuilder: AttributesBuilder>.() -> Unit, noinline function: (Double) -> T, ): UnivariateIntegrand = UnivariateIntegrand(safeTypeOf(), Attributes(attributeBuilder), function) @@ -68,7 +68,7 @@ public fun AttributesBuilder>.integrationNodes(vararg nod */ @UnstableKMathAPI public inline fun UnivariateIntegrator.integrate( - attributesBuilder: AttributesBuilder>.() -> Unit, + noinline attributesBuilder: AttributesBuilder>.() -> Unit, noinline function: (Double) -> T, ): UnivariateIntegrand = integrate(UnivariateIntegrand(attributesBuilder, function)) @@ -79,7 +79,7 @@ public inline fun UnivariateIntegrator.integrate( @UnstableKMathAPI public inline fun UnivariateIntegrator.integrate( range: ClosedRange, - attributeBuilder: AttributesBuilder>.() -> Unit = {}, + noinline attributeBuilder: AttributesBuilder>.() -> Unit = {}, noinline function: (Double) -> T, ): UnivariateIntegrand {