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 {
api(project(":kmath-core"))
api(project(":kmath-sequential"))
api(project(":kmath-streaming"))
api("org.apache.commons:commons-math3:3.6.1")
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")

View File

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

View File

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

View File

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

View File

@ -14,14 +14,10 @@
* limitations under the License.
*/
package scientifik.kmath.sequential
package sicentifik.kmath.chains
import kotlinx.atomicfu.atomic
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.channels.produce
import kotlinx.coroutines.isActive
import kotlinx.coroutines.FlowPreview
/**
@ -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
fun <R> Chain<R>.asChannel(scope: CoroutineScope): ReceiveChannel<R> = scope.produce { while (isActive) send(next()) }
@FlowPreview
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> 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 sicentifik.kmath.chains.Chain
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.ExperimentalCoroutinesApi

View File

@ -1,4 +1,4 @@
package scientifik.kmath.sequential
package scientifik.kmath.streaming
import kotlinx.coroutines.sync.Mutex
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.GlobalScope

View File

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

View File

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