Compare commits
10 Commits
1881feb5e2
...
3e8f44166c
Author | SHA1 | Date | |
---|---|---|---|
3e8f44166c | |||
6e24b563b2 | |||
2d309e050b | |||
c585c59552 | |||
c418607bf6 | |||
9518f16348 | |||
0af8147be6 | |||
bd9430bab4 | |||
9f9c4a347b | |||
9e88bff668 |
@ -140,4 +140,18 @@ public fun <A : Attribute<Unit>> Attributes(
|
|||||||
attribute: A,
|
attribute: A,
|
||||||
): Attributes = MapAttributes(mapOf(attribute to Unit))
|
): Attributes = MapAttributes(mapOf(attribute to Unit))
|
||||||
|
|
||||||
public operator fun Attributes.plus(other: Attributes): Attributes = MapAttributes(content + other.content)
|
/**
|
||||||
|
* Create a new [Attributes] that overlays [other] on top of this set of attributes. New attributes are added.
|
||||||
|
* Existing attribute keys are replaced.
|
||||||
|
*/
|
||||||
|
public operator fun Attributes.plus(other: Attributes): Attributes = when {
|
||||||
|
isEmpty() -> other
|
||||||
|
other.isEmpty() -> this
|
||||||
|
else -> MapAttributes(content + other.content)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new [Attributes] with removed [key] (if it is present).
|
||||||
|
*/
|
||||||
|
public operator fun Attributes.minus(key: Attribute<*>): Attributes =
|
||||||
|
if (content.contains(key)) MapAttributes(content.minus(key)) else this
|
@ -1,6 +1,5 @@
|
|||||||
@file:Suppress("UNUSED_VARIABLE")
|
@file:Suppress("UNUSED_VARIABLE")
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
|
||||||
import space.kscience.kmath.benchmarks.addBenchmarkProperties
|
import space.kscience.kmath.benchmarks.addBenchmarkProperties
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
@ -152,18 +151,12 @@ benchmark {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin.sourceSets.all {
|
kotlin {
|
||||||
with(languageSettings) {
|
jvmToolchain(11)
|
||||||
optIn("kotlin.contracts.ExperimentalContracts")
|
compilerOptions {
|
||||||
optIn("kotlin.ExperimentalUnsignedTypes")
|
optIn.addAll(
|
||||||
optIn("space.kscience.kmath.UnstableKMathAPI")
|
"space.kscience.kmath.UnstableKMathAPI"
|
||||||
}
|
)
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType<KotlinJvmCompile> {
|
|
||||||
kotlinOptions {
|
|
||||||
jvmTarget = "11"
|
|
||||||
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" + "-Xlambdas=indy"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ allprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "space.kscience"
|
group = "space.kscience"
|
||||||
version = "0.4.0"
|
version = "0.4.1-dev"
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
|
kotlin("jvm") version "1.9.23"
|
||||||
`kotlin-dsl`
|
`kotlin-dsl`
|
||||||
`version-catalog`
|
`version-catalog`
|
||||||
}
|
}
|
||||||
@ -25,10 +26,8 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvmToolchain {
|
jvmToolchain(11)
|
||||||
languageVersion.set(JavaLanguageVersion.of(11))
|
compilerOptions {
|
||||||
}
|
optIn.add("kotlin.OptIn")
|
||||||
sourceSets.all {
|
|
||||||
languageSettings.optIn("kotlin.OptIn")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ org.gradle.configureondemand=true
|
|||||||
org.gradle.jvmargs=-Xmx4096m
|
org.gradle.jvmargs=-Xmx4096m
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
org.gradle.workers.max=4
|
org.gradle.workers.max=4
|
||||||
toolsVersion=0.15.2-kotlin-1.9.22
|
|
||||||
|
toolsVersion=0.15.4-kotlin-2.0.0
|
||||||
#kotlin.experimental.tryK2=true
|
#kotlin.experimental.tryK2=true
|
||||||
#kscience.wasm.disabled=true
|
#kscience.wasm.disabled=true
|
@ -4,7 +4,20 @@ plugins {
|
|||||||
|
|
||||||
kscience {
|
kscience {
|
||||||
jvm()
|
jvm()
|
||||||
js()
|
js{
|
||||||
|
nodejs {
|
||||||
|
testTask {
|
||||||
|
useMocha().timeout = "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
browser {
|
||||||
|
useCommonJs()
|
||||||
|
testTask {
|
||||||
|
useMocha().timeout = "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
native()
|
native()
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -18,7 +31,7 @@ kscience {
|
|||||||
|
|
||||||
dependencies(jsMain) {
|
dependencies(jsMain) {
|
||||||
implementation(npm("astring", "1.7.5"))
|
implementation(npm("astring", "1.7.5"))
|
||||||
implementation(npm("binaryen", "101.0.0"))
|
implementation(npm("binaryen", "117.0.0"))
|
||||||
implementation(npm("js-base64", "3.6.1"))
|
implementation(npm("js-base64", "3.6.1"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,19 +42,6 @@ kscience {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
js {
|
|
||||||
nodejs {
|
|
||||||
testTask {
|
|
||||||
useMocha().timeout = "0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
browser {
|
|
||||||
testTask {
|
|
||||||
useMocha().timeout = "0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
filter { it.name.contains("test", true) }
|
filter { it.name.contains("test", true) }
|
||||||
|
@ -4,11 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
@file:Suppress(
|
@file:Suppress(
|
||||||
"INTERFACE_WITH_SUPERCLASS",
|
|
||||||
"OVERRIDING_FINAL_MEMBER",
|
|
||||||
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
|
|
||||||
"CONFLICTING_OVERLOADS",
|
|
||||||
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING",
|
|
||||||
"ObjectPropertyName",
|
"ObjectPropertyName",
|
||||||
"ClassName",
|
"ClassName",
|
||||||
)
|
)
|
||||||
|
@ -4,10 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
@file:Suppress(
|
@file:Suppress(
|
||||||
"INTERFACE_WITH_SUPERCLASS",
|
|
||||||
"OVERRIDING_FINAL_MEMBER",
|
|
||||||
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
|
|
||||||
"CONFLICTING_OVERLOADS",
|
|
||||||
"PropertyName",
|
"PropertyName",
|
||||||
"ClassName", "ENUM_CLASS_IN_EXTERNAL_DECLARATION_WARNING",
|
"ClassName", "ENUM_CLASS_IN_EXTERNAL_DECLARATION_WARNING",
|
||||||
)
|
)
|
||||||
|
@ -6,10 +6,6 @@
|
|||||||
@file:JsQualifier("WebAssembly")
|
@file:JsQualifier("WebAssembly")
|
||||||
|
|
||||||
@file:Suppress(
|
@file:Suppress(
|
||||||
"INTERFACE_WITH_SUPERCLASS",
|
|
||||||
"OVERRIDING_FINAL_MEMBER",
|
|
||||||
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
|
|
||||||
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING",
|
|
||||||
"ClassName",
|
"ClassName",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,78 +18,34 @@ import org.w3c.fetch.Response
|
|||||||
import space.kscience.kmath.internal.tsstdlib.PromiseLike
|
import space.kscience.kmath.internal.tsstdlib.PromiseLike
|
||||||
import kotlin.js.Promise
|
import kotlin.js.Promise
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
internal external interface CompileError
|
||||||
internal external interface CompileError {
|
|
||||||
companion object {
|
|
||||||
var prototype: CompileError
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
|
||||||
internal external interface Global {
|
internal external interface Global {
|
||||||
var value: Any
|
var value: Any
|
||||||
fun valueOf(): Any
|
fun valueOf(): Any
|
||||||
|
|
||||||
companion object {
|
|
||||||
var prototype: Global
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
|
||||||
@JsName("Instance")
|
@JsName("Instance")
|
||||||
internal external interface Instance1 {
|
internal external interface Instance1 {
|
||||||
var exports: Exports
|
var exports: Exports
|
||||||
|
|
||||||
companion object {
|
|
||||||
var prototype: Instance
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
internal external interface LinkError
|
||||||
internal external interface LinkError {
|
|
||||||
companion object {
|
|
||||||
var prototype: LinkError
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
|
||||||
internal external interface Memory {
|
internal external interface Memory {
|
||||||
var buffer: ArrayBuffer
|
var buffer: ArrayBuffer
|
||||||
fun grow(delta: Number): Number
|
fun grow(delta: Number): Number
|
||||||
|
|
||||||
companion object {
|
|
||||||
var prototype: Memory
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
|
||||||
@JsName("Module")
|
|
||||||
internal external interface Module1 {
|
|
||||||
companion object {
|
|
||||||
var prototype: Module
|
|
||||||
fun customSections(moduleObject: Module, sectionName: String): Array<ArrayBuffer>
|
|
||||||
fun exports(moduleObject: Module): Array<ModuleExportDescriptor>
|
|
||||||
fun imports(moduleObject: Module): Array<ModuleImportDescriptor>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
internal external interface RuntimeError
|
||||||
internal external interface RuntimeError {
|
|
||||||
companion object {
|
|
||||||
var prototype: RuntimeError
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
|
|
||||||
internal external interface Table {
|
internal external interface Table {
|
||||||
var length: Number
|
var length: Number
|
||||||
fun get(index: Number): Function<*>?
|
fun get(index: Number): Function<*>?
|
||||||
fun grow(delta: Number): Number
|
fun grow(delta: Number): Number
|
||||||
fun set(index: Number, value: Function<*>?)
|
fun set(index: Number, value: Function<*>?)
|
||||||
|
|
||||||
companion object {
|
|
||||||
var prototype: Table
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal external interface GlobalDescriptor {
|
internal external interface GlobalDescriptor {
|
||||||
|
@ -3,13 +3,6 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@file:Suppress(
|
|
||||||
"INTERFACE_WITH_SUPERCLASS",
|
|
||||||
"OVERRIDING_FINAL_MEMBER",
|
|
||||||
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
|
|
||||||
"CONFLICTING_OVERLOADS",
|
|
||||||
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING",
|
|
||||||
)
|
|
||||||
|
|
||||||
package space.kscience.kmath.internal.webassembly
|
package space.kscience.kmath.internal.webassembly
|
||||||
|
|
||||||
|
@ -12,8 +12,6 @@ import space.kscience.kmath.expressions.Symbol
|
|||||||
import space.kscience.kmath.operations.Algebra
|
import space.kscience.kmath.operations.Algebra
|
||||||
import space.kscience.kmath.operations.Float64Field
|
import space.kscience.kmath.operations.Float64Field
|
||||||
import space.kscience.kmath.operations.Int32Ring
|
import space.kscience.kmath.operations.Int32Ring
|
||||||
import kotlin.contracts.InvocationKind
|
|
||||||
import kotlin.contracts.contract
|
|
||||||
import space.kscience.kmath.asm.compile as asmCompile
|
import space.kscience.kmath.asm.compile as asmCompile
|
||||||
import space.kscience.kmath.asm.compileToExpression as asmCompileToExpression
|
import space.kscience.kmath.asm.compileToExpression as asmCompileToExpression
|
||||||
|
|
||||||
@ -43,7 +41,6 @@ private object PrimitiveAsmCompilerTestContext : CompilerTestContext {
|
|||||||
|
|
||||||
|
|
||||||
internal actual inline fun runCompilerTest(action: CompilerTestContext.() -> Unit) {
|
internal actual inline fun runCompilerTest(action: CompilerTestContext.() -> Unit) {
|
||||||
contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }
|
|
||||||
action(GenericAsmCompilerTestContext)
|
action(GenericAsmCompilerTestContext)
|
||||||
action(PrimitiveAsmCompilerTestContext)
|
action(PrimitiveAsmCompilerTestContext)
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
package space.kscience.kmath.nd
|
package space.kscience.kmath.nd
|
||||||
|
|
||||||
import space.kscience.kmath.UnsafeKMathAPI
|
import space.kscience.kmath.UnsafeKMathAPI
|
||||||
import kotlin.jvm.JvmInline
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A read-only ND shape
|
* A read-only ND shape
|
||||||
|
@ -159,7 +159,7 @@ class Rational {
|
|||||||
override fun equals(other: Any?): Boolean =
|
override fun equals(other: Any?): Boolean =
|
||||||
when (other) {
|
when (other) {
|
||||||
is Rational -> numerator == other.numerator && denominator == other.denominator
|
is Rational -> numerator == other.numerator && denominator == other.denominator
|
||||||
is Int -> numerator == other && denominator == 1L
|
is Int -> numerator == other.toLong() && denominator == 1L
|
||||||
is Long -> numerator == other && denominator == 1L
|
is Long -> numerator == other && denominator == 1L
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ public interface Histogram<in T : Any, out V, out B : Bin<T, V>> {
|
|||||||
/**
|
/**
|
||||||
* Find existing bin, corresponding to given coordinates
|
* Find existing bin, corresponding to given coordinates
|
||||||
*/
|
*/
|
||||||
public operator fun get(point: Point<out T>): B?
|
public operator fun get(point: Point<T>): B?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dimension of the histogram
|
* Dimension of the histogram
|
||||||
@ -57,7 +57,7 @@ public interface HistogramBuilder<in T, V> {
|
|||||||
/**
|
/**
|
||||||
* Increment appropriate bin with given value
|
* Increment appropriate bin with given value
|
||||||
*/
|
*/
|
||||||
public fun putValue(point: Point<out T>, value: V = defaultValue)
|
public fun putValue(point: Point<T>, value: V = defaultValue)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ public interface Histogram1DBuilder<in T : Any, V : Any> : HistogramBuilder<T, V
|
|||||||
*/
|
*/
|
||||||
public fun putValue(at: T, value: V = defaultValue)
|
public fun putValue(at: T, value: V = defaultValue)
|
||||||
|
|
||||||
override fun putValue(point: Point<out T>, value: V) {
|
override fun putValue(point: Point<T>, value: V) {
|
||||||
require(point.size == 1) { "Only points with single value could be used in Histogram1D" }
|
require(point.size == 1) { "Only points with single value could be used in Histogram1D" }
|
||||||
putValue(point[0], value)
|
putValue(point[0], value)
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ public class UniformHistogramGroupND<V : Any, A : Field<V>>(
|
|||||||
val hBuilder = object : HistogramBuilder<Double, V> {
|
val hBuilder = object : HistogramBuilder<Double, V> {
|
||||||
override val defaultValue: V get() = valueAlgebraND.elementAlgebra.one
|
override val defaultValue: V get() = valueAlgebraND.elementAlgebra.one
|
||||||
|
|
||||||
override fun putValue(point: Point<out Double>, value: V) = with(valueAlgebraND.elementAlgebra) {
|
override fun putValue(point: Point<Double>, value: V) = with(valueAlgebraND.elementAlgebra) {
|
||||||
val index = getIndexOrNull(point)
|
val index = getIndexOrNull(point)
|
||||||
ndCounter[index].add(value)
|
ndCounter[index].add(value)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user