Update Gradle tooling
This commit is contained in:
parent
220eddd9df
commit
ea70c255e9
@ -1,3 +1,5 @@
|
|||||||
|
import ru.mipt.npm.gradle.KSciencePublishPlugin
|
||||||
|
|
||||||
plugins { id("ru.mipt.npm.publish") apply false }
|
plugins { id("ru.mipt.npm.publish") apply false }
|
||||||
|
|
||||||
val kmathVersion: String by extra("0.1.4")
|
val kmathVersion: String by extra("0.1.4")
|
||||||
@ -15,4 +17,4 @@ allprojects {
|
|||||||
version = kmathVersion
|
version = kmathVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects { if (name.startsWith("kmath")) apply(plugin = "ru.mipt.npm.publish") }
|
subprojects { if (name.startsWith("kmath")) apply<KSciencePublishPlugin>() }
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
java
|
|
||||||
kotlin("jvm")
|
kotlin("jvm")
|
||||||
kotlin("plugin.allopen") version "1.4.20-dev-3898-14"
|
kotlin("plugin.allopen") version "1.4.10"
|
||||||
id("kotlinx.benchmark") version "0.2.0-dev-20"
|
id("kotlinx.benchmark") version "0.2.0-dev-20"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,15 +27,14 @@ dependencies {
|
|||||||
implementation(project(":kmath-dimensions"))
|
implementation(project(":kmath-dimensions"))
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-io-jvm:0.2.0-npm-dev-6")
|
implementation("org.jetbrains.kotlinx:kotlinx-io-jvm:0.2.0-npm-dev-6")
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx.benchmark.runtime:0.2.0-dev-20")
|
implementation("org.jetbrains.kotlinx:kotlinx.benchmark.runtime:0.2.0-dev-20")
|
||||||
"benchmarksCompile"(sourceSets.main.get().output + sourceSets.main.get().compileClasspath) //sourceSets.main.output + sourceSets.main.runtimeClasspath
|
implementation("org.slf4j:slf4j-simple:1.7.30")
|
||||||
|
"benchmarksImplementation"("org.jetbrains.kotlinx:kotlinx.benchmark.runtime-jvm:0.2.0-dev-8")
|
||||||
|
"benchmarksImplementation"(sourceSets.main.get().output + sourceSets.main.get().runtimeClasspath)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure benchmark
|
// Configure benchmark
|
||||||
benchmark {
|
benchmark {
|
||||||
// Setup configurations
|
targets.register("benchmarks")
|
||||||
targets
|
|
||||||
// This one matches sourceSet name above
|
|
||||||
.register("benchmarks")
|
|
||||||
|
|
||||||
configurations.register("fast") {
|
configurations.register("fast") {
|
||||||
warmups = 5 // number of warmup iterations
|
warmups = 5 // number of warmup iterations
|
||||||
|
@ -8,15 +8,22 @@ import kotlin.contracts.contract
|
|||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.pow
|
import kotlin.math.pow
|
||||||
|
|
||||||
// TODO make `inline`, when KT-41771 gets fixed
|
|
||||||
/**
|
/**
|
||||||
* Polynomial coefficients without fixation on specific context they are applied to
|
* Polynomial coefficients without fixation on specific context they are applied to
|
||||||
* @param coefficients constant is the leftmost coefficient
|
* @param coefficients constant is the leftmost coefficient
|
||||||
*/
|
*/
|
||||||
public inline class Polynomial<T : Any>(public val coefficients: List<T>)
|
public inline class Polynomial<T : Any>(public val coefficients: List<T>)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a [Polynomial] with given [coefficients].
|
||||||
|
*/
|
||||||
public fun <T : Any> Polynomial(vararg coefficients: T): Polynomial<T> = Polynomial(coefficients.toList())
|
public fun <T : Any> Polynomial(vararg coefficients: T): Polynomial<T> = Polynomial(coefficients.toList())
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a [Polynomial] with given [coefficients].
|
||||||
|
*/
|
||||||
|
public fun <T : Any> Polynomial(coefficients: Iterable<T>): Polynomial<T> = Polynomial(coefficients.toList())
|
||||||
|
|
||||||
public fun Polynomial<Double>.value(): Double = coefficients.reduceIndexed { index, acc, d -> acc + d.pow(index) }
|
public fun Polynomial<Double>.value(): Double = coefficients.reduceIndexed { index, acc, d -> acc + d.pow(index) }
|
||||||
|
|
||||||
public fun <T : Any, C : Ring<T>> Polynomial<T>.value(ring: C, arg: T): T = ring {
|
public fun <T : Any, C : Ring<T>> Polynomial<T>.value(ring: C, arg: T): T = ring {
|
||||||
@ -50,7 +57,7 @@ public fun <T : Any, C : Ring<T>> Polynomial<T>.asFunction(ring: C): (T) -> T =
|
|||||||
* An algebra for polynomials
|
* An algebra for polynomials
|
||||||
*/
|
*/
|
||||||
public class PolynomialSpace<T : Any, C : Ring<T>>(public val ring: C) : Space<Polynomial<T>> {
|
public class PolynomialSpace<T : Any, C : Ring<T>>(public val ring: C) : Space<Polynomial<T>> {
|
||||||
public override val zero: Polynomial<T> = Polynomial(emptyList())
|
public override val zero: Polynomial<T> by lazy { Polynomial(emptyList()) }
|
||||||
|
|
||||||
public override fun add(a: Polynomial<T>, b: Polynomial<T>): Polynomial<T> {
|
public override fun add(a: Polynomial<T>, b: Polynomial<T>): Polynomial<T> {
|
||||||
val dim = max(a.coefficients.size, b.coefficients.size)
|
val dim = max(a.coefficients.size, b.coefficients.size)
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
pluginManagement {
|
pluginManagement {
|
||||||
val toolsVersion = "0.6.0-dev-5"
|
val toolsVersion = "0.6.0"
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("kotlinx.benchmark") version "0.2.0-dev-20"
|
id("kotlinx.benchmark") version "0.2.0-dev-20"
|
||||||
id("ru.mipt.npm.mpp") version toolsVersion
|
id("ru.mipt.npm.mpp") version toolsVersion
|
||||||
id("ru.mipt.npm.jvm") version toolsVersion
|
id("ru.mipt.npm.jvm") version toolsVersion
|
||||||
id("ru.mipt.npm.publish") version toolsVersion
|
id("ru.mipt.npm.publish") version toolsVersion
|
||||||
kotlin("plugin.allopen") version "1.4.20-dev-3898-14"
|
kotlin("plugin.allopen") version "1.4.10"
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
Loading…
Reference in New Issue
Block a user