Chains moved to coroutines. Cumulatives to core

This commit is contained in:
Alexander Nozik 2019-04-24 09:36:43 +03:00
parent 9182a4279c
commit 8208cb772f
12 changed files with 18 additions and 21 deletions

View File

@ -7,7 +7,7 @@ description = "Commons math binding for kmath"
dependencies { dependencies {
api(project(":kmath-core")) api(project(":kmath-core"))
api(project(":kmath-sequential")) api(project(":kmath-streaming"))
api("org.apache.commons:commons-math3:3.6.1") api("org.apache.commons:commons-math3:3.6.1")
testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit") testImplementation("org.jetbrains.kotlin:kotlin-test-junit")

View File

@ -2,9 +2,9 @@ package scientifik.kmath.transform
import org.apache.commons.math3.transform.* import org.apache.commons.math3.transform.*
import scientifik.kmath.operations.Complex import scientifik.kmath.operations.Complex
import scientifik.kmath.sequential.Processor import scientifik.kmath.streaming.Processor
import scientifik.kmath.sequential.Producer import scientifik.kmath.streaming.Producer
import scientifik.kmath.sequential.map import scientifik.kmath.streaming.map
import scientifik.kmath.structures.* import scientifik.kmath.structures.*

View File

@ -1,4 +1,4 @@
package scientifik.kmath.sequential package scientifik.kmath.misc
import scientifik.kmath.operations.Space import scientifik.kmath.operations.Space
import kotlin.jvm.JvmName import kotlin.jvm.JvmName

View File

@ -1,6 +1,5 @@
package scientifik.kmath.misc package scientifik.kmath.misc
import scientifik.kmath.sequential.cumulativeSum
import kotlin.test.Test import kotlin.test.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals

View File

@ -14,14 +14,10 @@
* limitations under the License. * limitations under the License.
*/ */
package scientifik.kmath.sequential package sicentifik.kmath.chains
import kotlinx.atomicfu.atomic import kotlinx.atomicfu.atomic
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.FlowPreview
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.channels.produce
import kotlinx.coroutines.isActive
/** /**
@ -47,10 +43,11 @@ interface Chain<out R> {
} }
/** /**
* Chain as a coroutine receive channel * Chain as a coroutine flow. The flow emit affects chain state and vice versa
*/ */
@ExperimentalCoroutinesApi @FlowPreview
fun <R> Chain<R>.asChannel(scope: CoroutineScope): ReceiveChannel<R> = scope.produce { while (isActive) send(next()) } val <R> Chain<R>.flow
get() = kotlinx.coroutines.flow.flow { while (true) emit(next()) }
fun <T> Iterator<T>.asChain(): Chain<T> = SimpleChain { next() } fun <T> Iterator<T>.asChain(): Chain<T> = SimpleChain { next() }
fun <T> Sequence<T>.asChain(): Chain<T> = iterator().asChain() fun <T> Sequence<T>.asChain(): Chain<T> = iterator().asChain()

View File

@ -1,6 +1,7 @@
package scientifik.kmath.sequential package scientifik.kmath.chains
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import sicentifik.kmath.chains.Chain
import kotlin.sequences.Sequence import kotlin.sequences.Sequence
/** /**

View File

@ -1,4 +1,4 @@
package scientifik.kmath.sequential package scientifik.kmath.streaming
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi

View File

@ -1,4 +1,4 @@
package scientifik.kmath.sequential package scientifik.kmath.streaming
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock

View File

@ -1,4 +1,4 @@
package scientifik.kmath.sequential package scientifik.kmath.streaming
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope

View File

@ -1,4 +1,4 @@
package scientifik.kmath.sequential package scientifik.kmath.streaming
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import scientifik.kmath.structures.asSequence import scientifik.kmath.structures.asSequence

View File

@ -29,6 +29,6 @@ include(
":kmath-histograms", ":kmath-histograms",
":kmath-commons", ":kmath-commons",
":kmath-koma", ":kmath-koma",
":kmath-sequential", ":kmath-streaming",
":benchmarks" ":benchmarks"
) )