add dokka multimodule

This commit is contained in:
Alexander Nozik 2024-10-04 14:55:15 +03:00
parent 8a453bf0b9
commit 7064546f83
29 changed files with 62 additions and 110 deletions

View File

@ -19,6 +19,14 @@ repositories {
}
kotlin {
jvmToolchain(17)
compilerOptions {
optIn.addAll(
"space.kscience.kmath.UnstableKMathAPI"
)
}
jvm()
js(IR) {
@ -58,7 +66,7 @@ kotlin {
implementation(project(":kmath-nd4j"))
implementation(project(":kmath-kotlingrad"))
implementation(project(":kmath-viktor"))
implementation(project(":kmath-jafama"))
// implementation(project(":kmath-jafama"))
implementation(projects.kmath.kmathTensorflow)
implementation("org.tensorflow:tensorflow-core-platform:0.4.0")
implementation("org.nd4j:nd4j-native:1.0.0-M1")
@ -152,15 +160,6 @@ benchmark {
}
}
kotlin {
jvmToolchain(11)
compilerOptions {
optIn.addAll(
"space.kscience.kmath.UnstableKMathAPI"
)
}
}
private data class JmhReport(
val jmhVersion: String,

View File

@ -1,39 +0,0 @@
/*
* Copyright 2018-2024 KMath contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package space.kscience.kmath.benchmarks
import kotlinx.benchmark.Blackhole
import org.openjdk.jmh.annotations.Benchmark
import org.openjdk.jmh.annotations.Scope
import org.openjdk.jmh.annotations.State
import space.kscience.kmath.jafama.JafamaDoubleField
import space.kscience.kmath.jafama.StrictJafamaDoubleField
import space.kscience.kmath.operations.Float64Field
import space.kscience.kmath.operations.invoke
import kotlin.random.Random
@State(Scope.Benchmark)
internal class JafamaBenchmark {
@Benchmark
fun jafama(blackhole: Blackhole) = invokeBenchmarks(blackhole) { x ->
JafamaDoubleField { x * power(x, 4) * exp(x) / cos(x) + sin(x) }
}
@Benchmark
fun core(blackhole: Blackhole) = invokeBenchmarks(blackhole) { x ->
Float64Field { x * power(x, 4) * exp(x) / cos(x) + sin(x) }
}
@Benchmark
fun strictJafama(blackhole: Blackhole) = invokeBenchmarks(blackhole) { x ->
StrictJafamaDoubleField { x * power(x, 4) * exp(x) / cos(x) + sin(x) }
}
}
private inline fun invokeBenchmarks(blackhole: Blackhole, expr: (Double) -> Double) {
val rng = Random(0)
repeat(1000000) { blackhole.consume(expr(rng.nextDouble())) }
}

View File

@ -19,6 +19,12 @@ allprojects {
version = "0.4.1-dev"
}
dependencies{
subprojects.forEach {
dokka(it)
}
}
subprojects {
if (name.startsWith("kmath")) apply<MavenPublishPlugin>()

View File

@ -27,8 +27,6 @@ dependencies {
implementation(project(":kmath-tensors"))
implementation(project(":kmath-symja"))
implementation(project(":kmath-for-real"))
//jafama
implementation(project(":kmath-jafama"))
//multik
implementation(project(":kmath-multik"))
implementation(libs.multik.default)
@ -54,7 +52,7 @@ dependencies {
}
kotlin {
jvmToolchain(11)
jvmToolchain(17)
sourceSets.all {
languageSettings {
optIn("kotlin.contracts.ExperimentalContracts")

View File

@ -1,15 +0,0 @@
/*
* Copyright 2018-2024 KMath contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package space.kscience.kmath.jafama
import space.kscience.kmath.operations.invoke
fun main() {
val a = 2.0
val b = StrictJafamaDoubleField { exp(a) }
println(JafamaDoubleField { b + a })
println(StrictJafamaDoubleField { ln(b) })
}

View File

@ -10,4 +10,5 @@ org.gradle.jvmargs=-Xmx4096m
org.gradle.parallel=true
org.gradle.workers.max=4
toolsVersion=0.15.4-kotlin-2.0.0
toolsVersion=0.15.6-kotlin-2.1.0-Beta1
org.jetbrains.dokka.experimental.gradle.pluginMode=V2EnabledWithHelpers

View File

@ -1,5 +1,5 @@
plugins {
id("space.kscience.gradle.jvm")
id("space.kscience.gradle.mpp")
}
kotlin.sourceSets
@ -9,11 +9,18 @@ kotlin.sourceSets
description = "Kotlin∇ integration module"
dependencies {
kscience{
jvm()
jvmMain{
api("ai.hypergraph:kaliningraph:0.1.9")
api("ai.hypergraph:kotlingrad:0.4.7")
api(project(":kmath-core"))
testImplementation(project(":kmath-ast"))
}
jvmTest{
implementation(project(":kmath-ast"))
}
}
readme {

View File

@ -1,14 +1,21 @@
plugins {
id("space.kscience.gradle.jvm")
id("space.kscience.gradle.mpp")
}
description = "ND4J NDStructure implementation and according NDAlgebra classes"
dependencies {
kscience {
jvm()
jvmMain {
api(project(":kmath-tensors"))
api("org.nd4j:nd4j-api:1.0.0-M1")
testImplementation("org.nd4j:nd4j-native-platform:1.0.0-M1")
testImplementation("org.slf4j:slf4j-simple:1.7.32")
api("org.nd4j:nd4j-api:1.0.0-M2.1")
}
jvmTest{
implementation("org.nd4j:nd4j-native-platform:1.0.0-M1")
}
}
readme {

View File

@ -18,8 +18,7 @@ public class RandomSourceGenerator internal constructor(
public val source: RandomSource,
seed: Long?,
) : RandomGenerator {
internal val random: UniformRandomProvider = seed?.let { source.create(seed) }
?: RandomSource.create(source)
internal val random: UniformRandomProvider = seed?.let { source.create(seed) } ?: source.create()
override fun nextBoolean(): Boolean = random.nextBoolean()
override fun nextDouble(): Double = random.nextDouble()

View File

@ -4,38 +4,24 @@
*/
plugins {
id("space.kscience.gradle.jvm")
id("space.kscience.gradle.mpp")
}
description = "Symja integration module"
dependencies {
api("org.matheclipse:matheclipse-core:2.0.0") {
// Incorrect transitive dependencies
exclude("org.apfloat", "apfloat")
exclude("org.hipparchus", "hipparchus-clustering")
exclude("org.hipparchus", "hipparchus-core")
exclude("org.hipparchus", "hipparchus-fft")
exclude("org.hipparchus", "hipparchus-fitting")
exclude("org.hipparchus", "hipparchus-ode")
exclude("org.hipparchus", "hipparchus-optim")
exclude("org.hipparchus", "hipparchus-stat")
}
kscience{
jvm()
// Replaces for incorrect transitive dependencies
api("org.apfloat:apfloat:1.10.0")
api("org.hipparchus:hipparchus-clustering:1.8")
api("org.hipparchus:hipparchus-core:1.8")
api("org.hipparchus:hipparchus-fft:1.8")
api("org.hipparchus:hipparchus-fitting:1.8")
api("org.hipparchus:hipparchus-ode:1.8")
api("org.hipparchus:hipparchus-optim:1.8")
api("org.hipparchus:hipparchus-stat:1.8")
jvmMain {
api("org.matheclipse:matheclipse-core:3.0.0")
api(project(":kmath-core"))
testImplementation("org.slf4j:slf4j-simple:1.7.31")
}
}
readme {
maturity = space.kscience.gradle.Maturity.PROTOTYPE
}

View File

@ -1,13 +1,16 @@
plugins {
id("space.kscience.gradle.jvm")
id("space.kscience.gradle.mpp")
}
description = "Binding for https://github.com/JetBrains-Research/viktor"
dependencies {
kscience{
jvm()
jvmMain{
api(project(":kmath-core"))
api("org.jetbrains.bio:viktor:1.2.0")
}
}
readme {
maturity = space.kscience.gradle.Maturity.DEPRECATED

View File

@ -61,7 +61,6 @@ include(
":kmath-tensors",
":kmath-jupyter",
":kmath-symja",
":kmath-jafama",
":examples",
":benchmarks",
)

View File

@ -14,6 +14,7 @@ kotlin.sourceSets {
dependencies {
api(projects.kmath.kmathCore)
api(kotlin("test"))
api(spclibs.logback.classic)
}
}
}