forked from kscience/kmath
Quick AIDA port
This commit is contained in:
parent
f506e76b69
commit
ae34346437
2
.gitignore
vendored
2
.gitignore
vendored
@ -8,4 +8,4 @@
|
||||
# Cache of project
|
||||
.gradletasknamecache
|
||||
|
||||
gradle.properties
|
||||
artifactory.gradle
|
28
build.gradle
28
build.gradle
@ -13,6 +13,7 @@ buildscript {
|
||||
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: "com.jfrog.artifactory"
|
||||
@ -21,29 +22,6 @@ allprojects {
|
||||
version = '0.0.1-SNAPSHOT'
|
||||
}
|
||||
|
||||
|
||||
artifactory {
|
||||
contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
|
||||
publish {
|
||||
repository {
|
||||
repoKey = 'gradle-dev-local'
|
||||
username = "${artifactory_user}"
|
||||
password = "${artifactory_password}"
|
||||
}
|
||||
|
||||
defaults {
|
||||
publications('jvm', 'js', 'kotlinMultiplatform', 'metadata')
|
||||
publishBuildInfo = false
|
||||
publishArtifacts = true
|
||||
publishPom = true
|
||||
publishIvy = false
|
||||
}
|
||||
}
|
||||
resolve {
|
||||
repository {
|
||||
repoKey = 'gradle-dev'
|
||||
username = "${artifactory_user}"
|
||||
password = "${artifactory_password}"
|
||||
}
|
||||
}
|
||||
if(file('artifactory.gradle').exists()){
|
||||
apply from: 'artifactory.gradle'
|
||||
}
|
15
kmath-aida/build.gradle.kts
Normal file
15
kmath-aida/build.gradle.kts
Normal file
@ -0,0 +1,15 @@
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven ("http://dl.bintray.com/kotlin/kotlin-eap")
|
||||
maven("http://java.freehep.org/maven2/")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(kotlin("stdlib"))
|
||||
api(project(":kmath-core"))
|
||||
api(group = "org.freehep", name = "freehep-jaida", version = "3.4.13")
|
||||
}
|
9
kmath-aida/src/main/kotlin/scientifik/kmath/aida/AIDA.kt
Normal file
9
kmath-aida/src/main/kotlin/scientifik/kmath/aida/AIDA.kt
Normal file
@ -0,0 +1,9 @@
|
||||
package scientifik.kmath.aida
|
||||
|
||||
import hep.aida.IAnalysisFactory
|
||||
import hep.aida.IHistogramFactory
|
||||
import hep.aida.ITreeFactory
|
||||
|
||||
val analysisFactory: IAnalysisFactory by lazy { IAnalysisFactory.create() }
|
||||
val treeFactory: ITreeFactory by lazy { analysisFactory.createTreeFactory() }
|
||||
val histogramFactory: IHistogramFactory by lazy { analysisFactory.createHistogramFactory(treeFactory.create()) }
|
@ -0,0 +1,23 @@
|
||||
package scientifik.kmath.aida
|
||||
|
||||
import hep.aida.IHistogram1D
|
||||
import hep.aida.IHistogram2D
|
||||
|
||||
fun Iterable<Double>.histogram(range: ClosedFloatingPointRange<Double>, bins: Int = 100, path: String = ""): IHistogram1D{
|
||||
val h1d = Histograms.create1D(range,bins,path)
|
||||
forEach{
|
||||
h1d.fill(it)
|
||||
}
|
||||
return h1d
|
||||
}
|
||||
|
||||
|
||||
object Histograms {
|
||||
fun create1D(range: ClosedFloatingPointRange<Double>, bins: Int = 100, path: String = ""): IHistogram1D {
|
||||
return histogramFactory.createHistogram1D(path, bins, range.start, range.endInclusive)
|
||||
}
|
||||
|
||||
fun create2D(xRange: ClosedFloatingPointRange<Double>, yRange: ClosedFloatingPointRange<Double>, xBins: Int = 100, yBins: Int = 100, path: String = ""): IHistogram2D {
|
||||
return histogramFactory.createHistogram2D(path, xBins, xRange.start, xRange.endInclusive, yBins, yRange.start, yRange.endInclusive)
|
||||
}
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
package scietifik.kmath.structures
|
||||
|
||||
import java.nio.IntBuffer
|
||||
|
||||
|
||||
@Fork(1)
|
||||
@Warmup(iterations = 2)
|
||||
@Measurement(iterations = 5)
|
||||
@State(Scope.Benchmark)
|
||||
open class ArrayBenchmark {
|
||||
|
||||
lateinit var array: IntArray
|
||||
lateinit var arrayBuffer: IntBuffer
|
||||
lateinit var nativeBuffer: IntBuffer
|
||||
|
||||
@Setup
|
||||
fun setup() {
|
||||
array = IntArray(10000) { it }
|
||||
arrayBuffer = IntBuffer.wrap(array)
|
||||
nativeBuffer = IntBuffer.allocate(10000)
|
||||
for (i in 0 until 10000) {
|
||||
nativeBuffer.put(i,i)
|
||||
}
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
fun benchmarkArrayRead() {
|
||||
var res = 0
|
||||
for (i in 1..10000) {
|
||||
res += array[10000 - i]
|
||||
}
|
||||
print(res)
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
fun benchmarkBufferRead() {
|
||||
var res = 0
|
||||
for (i in 1..10000) {
|
||||
res += arrayBuffer.get(10000 - i)
|
||||
}
|
||||
print(res)
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
fun nativeBufferRead() {
|
||||
var res = 0
|
||||
for (i in 1..10000) {
|
||||
res += nativeBuffer.get(10000 - i)
|
||||
}
|
||||
print(res)
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
maven { url = 'http://dl.bintray.com/kotlin/kotlin-eap' }
|
||||
mavenCentral()
|
||||
maven { url = 'http://dl.bintray.com/kotlin/kotlin-eap' }
|
||||
maven { url = 'https://plugins.gradle.org/m2/' }
|
||||
}
|
||||
}
|
||||
@ -10,5 +10,6 @@ enableFeaturePreview('GRADLE_METADATA')
|
||||
|
||||
rootProject.name = 'kmath'
|
||||
include ':kmath-core'
|
||||
include ':kmath-aida'
|
||||
include ':kmath-jmh'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user