diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f2c76a354..cffef64b0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -13,25 +13,13 @@ jobs:
runs-on: ${{matrix.os}}
timeout-minutes: 40
steps:
- - name: Checkout the repo
- uses: actions/checkout@v2
- - name: Set up JDK 11
- uses: DeLaGuardo/setup-graalvm@4.0
+ - uses: actions/checkout@v3.0.0
+ - uses: actions/setup-java@v3.0.0
with:
- graalvm: 21.2.0
- java: java11
- arch: amd64
- - name: Cache gradle
- uses: actions/cache@v2
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
+ java-version: 11
+ distribution: liberica
- name: Cache konan
- uses: actions/cache@v2
+ uses: actions/cache@v3.0.1
with:
path: ~/.konan
key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
@@ -39,5 +27,6 @@ jobs:
${{ runner.os }}-gradle-
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v1.0.4
- - name: Build
- run: ./gradlew build --build-cache --no-daemon --stacktrace
+ - uses: gradle/gradle-build-action@v2.1.5
+ with:
+ arguments: build
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
index 23ed54357..9b76fd16e 100644
--- a/.github/workflows/pages.yml
+++ b/.github/workflows/pages.yml
@@ -9,20 +9,22 @@ jobs:
runs-on: ubuntu-20.04
timeout-minutes: 40
steps:
- - uses: actions/checkout@v2
- - uses: DeLaGuardo/setup-graalvm@4.0
+ - uses: actions/checkout@v3.0.0
+ - uses: actions/setup-java@v3.0.0
with:
- graalvm: 21.2.0
- java: java11
- arch: amd64
- - uses: actions/cache@v2
+ java-version: 11
+ distribution: liberica
+ - name: Cache konan
+ uses: actions/cache@v3.0.1
with:
- path: ~/.gradle/caches
+ path: ~/.konan
key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
restore-keys: |
${{ runner.os }}-gradle-
- - run: ./gradlew dokkaHtmlMultiModule --build-cache --no-daemon --no-parallel --stacktrace
- - uses: JamesIves/github-pages-deploy-action@4.1.0
+ - uses: gradle/gradle-build-action@v2.1.5
+ with:
+ arguments: dokkaHtmlMultiModule --no-parallel
+ - uses: JamesIves/github-pages-deploy-action@4.2.5
with:
branch: gh-pages
folder: build/dokka/htmlMultiModule
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index fa3cb700c..8e9b98dcb 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -14,42 +14,36 @@ jobs:
os: [ macOS-latest, windows-latest ]
runs-on: ${{matrix.os}}
steps:
- - name: Checkout the repo
- uses: actions/checkout@v2
- - name: Set up JDK 11
- uses: DeLaGuardo/setup-graalvm@4.0
+ - uses: actions/checkout@v3.0.0
+ - uses: actions/setup-java@v3.0.0
with:
- graalvm: 21.2.0
- java: java11
- arch: amd64
- - name: Cache gradle
- uses: actions/cache@v2
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
+ java-version: 11
+ distribution: liberica
- name: Cache konan
- uses: actions/cache@v2
+ uses: actions/cache@v3.0.1
with:
path: ~/.konan
key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
restore-keys: |
${{ runner.os }}-gradle-
- - name: Gradle Wrapper Validation
- uses: gradle/wrapper-validation-action@v1.0.4
+ - uses: gradle/wrapper-validation-action@v1.0.4
- name: Publish Windows Artifacts
if: matrix.os == 'windows-latest'
- shell: cmd
- run: >
- ./gradlew release --no-daemon --build-cache -Ppublishing.enabled=true
- -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }}
- -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }}
+ uses: gradle/gradle-build-action@v2.1.5
+ with:
+ arguments: |
+ releaseAll
+ -Ppublishing.enabled=true
+ -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }}
+ -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }}
- name: Publish Mac Artifacts
if: matrix.os == 'macOS-latest'
- run: >
- ./gradlew release --no-daemon --build-cache -Ppublishing.enabled=true -Ppublishing.platform=macosX64
- -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }}
- -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }}
+ uses: gradle/gradle-build-action@v2.1.5
+ with:
+ arguments: |
+ releaseMacosX64
+ releaseIosArm64
+ releaseIosX64
+ -Ppublishing.enabled=true
+ -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }}
+ -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a19b1f467..75833602c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,19 @@
## [Unreleased]
### Added
+
+### Changed
+
+### Deprecated
+
+### Removed
+
+### Fixed
+
+### Security
+
+## [0.3.0]
+### Added
- `ScaleOperations` interface
- `Field` extends `ScaleOperations`
- Basic integration API
@@ -19,6 +32,12 @@
- Complex power
- Separate methods for UInt, Int and Number powers. NaN safety.
- Tensorflow prototype
+- `ValueAndErrorField`
+- MST compilation to WASM: #286
+- Jafama integration: #176
+- `contentEquals` with tolerance: #364
+- Compilation to TeX for MST: #254
+
### Changed
- Exponential operations merged with hyperbolic functions
@@ -48,10 +67,15 @@
- Operations -> Ops
- Default Buffer and ND algebras are now Ops and lack neutral elements (0, 1) as well as algebra-level shapes.
- Tensor algebra takes read-only structures as input and inherits AlgebraND
+- `UnivariateDistribution` renamed to `Distribution1D`
+- Rework of histograms.
+- `UnivariateFunction` -> `Function1D`, `MultivariateFunction` -> `FunctionND`
+
### Deprecated
- Specialized `DoubleBufferAlgebra`
+
### Removed
- Nearest in Domain. To be implemented in geometry package.
- Number multiplication and division in main Algebra chain
@@ -62,10 +86,12 @@
- Second generic from DifferentiableExpression
- Algebra elements are completely removed. Use algebra contexts instead.
+
### Fixed
- Ring inherits RingOperations, not GroupOperations
- Univariate histogram filling
+
### Security
## [0.2.0]
@@ -88,6 +114,7 @@
- New `MatrixFeature` interfaces for matrix decompositions
- Basic Quaternion vector support in `kmath-complex`.
+
### Changed
- Package changed from `scientifik` to `space.kscience`
- Gradle version: 6.6 -> 6.8.2
@@ -112,7 +139,6 @@
- `symbol` method in `Algebra` renamed to `bindSymbol` to avoid ambiguity
- Add `out` projection to `Buffer` generic
-### Deprecated
### Removed
- `kmath-koma` module because it doesn't support Kotlin 1.4.
@@ -122,13 +148,11 @@
- `Real` class
- StructureND identity and equals
+
### Fixed
- `symbol` method in `MstExtendedField` (https://github.com/mipt-npm/kmath/pull/140)
-### Security
-
## [0.1.4]
-
### Added
- Functional Expressions API
- Mathematical Syntax Tree, its interpreter and API
@@ -146,6 +170,7 @@
- Full hyperbolic functions support and default implementations within `ExtendedField`
- Norm support for `Complex`
+
### Changed
- `readAsMemory` now has `throws IOException` in JVM signature.
- Several functions taking functional types were made `inline`.
@@ -157,9 +182,10 @@
- Gradle version: 6.3 -> 6.6
- Moved probability distributions to commons-rng and to `kmath-prob`
+
### Fixed
- Missing copy method in Memory implementation on JS (https://github.com/mipt-npm/kmath/pull/106)
- D3.dim value in `kmath-dimensions`
- Multiplication in integer rings in `kmath-core` (https://github.com/mipt-npm/kmath/pull/101)
- Commons RNG compatibility (https://github.com/mipt-npm/kmath/issues/93)
-- Multiplication of BigInt by scalar
+- Multiplication of BigInt by scalar
\ No newline at end of file
diff --git a/README.md b/README.md
index 99dd6d00f..aea94f529 100644
--- a/README.md
+++ b/README.md
@@ -52,21 +52,18 @@ module definitions below. The module stability could have the following levels:
## Modules
-
-* ### [benchmarks](benchmarks)
+### [benchmarks](benchmarks)
>
>
> **Maturity**: EXPERIMENTAL
-
-* ### [examples](examples)
+### [examples](examples)
>
>
> **Maturity**: EXPERIMENTAL
-
-* ### [kmath-ast](kmath-ast)
+### [kmath-ast](kmath-ast)
>
>
> **Maturity**: EXPERIMENTAL
@@ -77,15 +74,13 @@ module definitions below. The module stability could have the following levels:
> - [mst-js-codegen](kmath-ast/src/jsMain/kotlin/space/kscience/kmath/estree/estree.kt) : Dynamic MST to JS compiler
> - [rendering](kmath-ast/src/commonMain/kotlin/space/kscience/kmath/ast/rendering/MathRenderer.kt) : Extendable MST rendering
-
-* ### [kmath-commons](kmath-commons)
+### [kmath-commons](kmath-commons)
>
>
> **Maturity**: EXPERIMENTAL
-
-* ### [kmath-complex](kmath-complex)
+### [kmath-complex](kmath-complex)
> Complex numbers and quaternions.
>
> **Maturity**: PROTOTYPE
@@ -94,9 +89,8 @@ module definitions below. The module stability could have the following levels:
> - [complex](kmath-complex/src/commonMain/kotlin/space/kscience/kmath/complex/Complex.kt) : Complex Numbers
> - [quaternion](kmath-complex/src/commonMain/kotlin/space/kscience/kmath/complex/Quaternion.kt) : Quaternions
-
-* ### [kmath-core](kmath-core)
+### [kmath-core](kmath-core)
> Core classes, algebra definitions, basic linear algebra
>
> **Maturity**: DEVELOPMENT
@@ -112,21 +106,18 @@ performance calculations to code generation.
> - [domains](kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains) : Domains
> - [autodiff](kmath-core/src/commonMain/kotlin/space/kscience/kmath/expressions/SimpleAutoDiff.kt) : Automatic differentiation
-
-* ### [kmath-coroutines](kmath-coroutines)
+### [kmath-coroutines](kmath-coroutines)
>
>
> **Maturity**: EXPERIMENTAL
-
-* ### [kmath-dimensions](kmath-dimensions)
+### [kmath-dimensions](kmath-dimensions)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-ejml](kmath-ejml)
+### [kmath-ejml](kmath-ejml)
>
>
> **Maturity**: PROTOTYPE
@@ -136,9 +127,8 @@ performance calculations to code generation.
> - [ejml-matrix](kmath-ejml/src/main/kotlin/space/kscience/kmath/ejml/EjmlMatrix.kt) : Matrix implementation.
> - [ejml-linear-space](kmath-ejml/src/main/kotlin/space/kscience/kmath/ejml/EjmlLinearSpace.kt) : LinearSpace implementations.
-
-* ### [kmath-for-real](kmath-for-real)
+### [kmath-for-real](kmath-for-real)
> Extension module that should be used to achieve numpy-like behavior.
All operations are specialized to work with `Double` numbers without declaring algebraic contexts.
One can still use generic algebras though.
@@ -150,9 +140,8 @@ One can still use generic algebras though.
> - [DoubleMatrix](kmath-for-real/src/commonMain/kotlin/space/kscience/kmath/real/DoubleMatrix.kt) : Numpy-like operations for 2d real structures
> - [grids](kmath-for-real/src/commonMain/kotlin/space/kscience/kmath/structures/grids.kt) : Uniform grid generators
-
-* ### [kmath-functions](kmath-functions)
+### [kmath-functions](kmath-functions)
>
>
> **Maturity**: EXPERIMENTAL
@@ -164,21 +153,18 @@ One can still use generic algebras though.
> - [spline interpolation](kmath-functions/src/commonMain/kotlin/space/kscience/kmath/interpolation/SplineInterpolator.kt) : Cubic spline XY interpolator.
> - [integration](kmath-functions/#) : Univariate and multivariate quadratures
-
-* ### [kmath-geometry](kmath-geometry)
+### [kmath-geometry](kmath-geometry)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-histograms](kmath-histograms)
+### [kmath-histograms](kmath-histograms)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-jafama](kmath-jafama)
+### [kmath-jafama](kmath-jafama)
>
>
> **Maturity**: PROTOTYPE
@@ -186,15 +172,13 @@ One can still use generic algebras though.
> **Features:**
> - [jafama-double](kmath-jafama/src/main/kotlin/space/kscience/kmath/jafama/) : Double ExtendedField implementations based on Jafama
-
-* ### [kmath-jupyter](kmath-jupyter)
+### [kmath-jupyter](kmath-jupyter)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-kotlingrad](kmath-kotlingrad)
+### [kmath-kotlingrad](kmath-kotlingrad)
>
>
> **Maturity**: EXPERIMENTAL
@@ -203,21 +187,18 @@ One can still use generic algebras though.
> - [differentiable-mst-expression](kmath-kotlingrad/src/main/kotlin/space/kscience/kmath/kotlingrad/KotlingradExpression.kt) : MST based DifferentiableExpression.
> - [scalars-adapters](kmath-kotlingrad/src/main/kotlin/space/kscience/kmath/kotlingrad/scalarsAdapters.kt) : Conversions between Kotlin∇'s SFun and MST
-
-* ### [kmath-memory](kmath-memory)
+### [kmath-memory](kmath-memory)
> An API and basic implementation for arranging objects in a continuous memory block.
>
> **Maturity**: DEVELOPMENT
-
-* ### [kmath-multik](kmath-multik)
+### [kmath-multik](kmath-multik)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-nd4j](kmath-nd4j)
+### [kmath-nd4j](kmath-nd4j)
>
>
> **Maturity**: EXPERIMENTAL
@@ -227,33 +208,28 @@ One can still use generic algebras though.
> - [nd4jarrayrings](kmath-nd4j/#) : Rings over Nd4jArrayStructure of Int and Long
> - [nd4jarrayfields](kmath-nd4j/#) : Fields over Nd4jArrayStructure of Float and Double
-
-* ### [kmath-optimization](kmath-optimization)
+### [kmath-optimization](kmath-optimization)
>
>
> **Maturity**: EXPERIMENTAL
-
-* ### [kmath-stat](kmath-stat)
+### [kmath-stat](kmath-stat)
>
>
> **Maturity**: EXPERIMENTAL
-
-* ### [kmath-symja](kmath-symja)
+### [kmath-symja](kmath-symja)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-tensorflow](kmath-tensorflow)
+### [kmath-tensorflow](kmath-tensorflow)
>
>
> **Maturity**: PROTOTYPE
-
-* ### [kmath-tensors](kmath-tensors)
+### [kmath-tensors](kmath-tensors)
>
>
> **Maturity**: PROTOTYPE
@@ -263,13 +239,11 @@ One can still use generic algebras though.
> - [tensor algebra with broadcasting](kmath-tensors/src/commonMain/kotlin/space/kscience/kmath/tensors/core/BroadcastDoubleTensorAlgebra.kt) : Basic linear algebra operations implemented with broadcasting.
> - [linear algebra operations](kmath-tensors/src/commonMain/kotlin/space/kscience/kmath/tensors/api/LinearOpsTensorAlgebra.kt) : Advanced linear algebra operations like LU decomposition, SVD, etc.
-
-* ### [kmath-viktor](kmath-viktor)
+### [kmath-viktor](kmath-viktor)
>
>
> **Maturity**: DEVELOPMENT
-
## Multi-platform support
@@ -308,8 +282,8 @@ repositories {
}
dependencies {
- api("space.kscience:kmath-core:0.3.0-dev-17")
- // api("space.kscience:kmath-core-jvm:0.3.0-dev-17") for jvm-specific version
+ api("space.kscience:kmath-core:$version")
+ // api("space.kscience:kmath-core-jvm:$version") for jvm-specific version
}
```
diff --git a/benchmarks/README.md b/benchmarks/README.md
new file mode 100644
index 000000000..cd8fbafd3
--- /dev/null
+++ b/benchmarks/README.md
@@ -0,0 +1,4 @@
+# Module benchmarks
+
+
+
diff --git a/benchmarks/build.gradle.kts b/benchmarks/build.gradle.kts
index f8d39b9c5..22712816d 100644
--- a/benchmarks/build.gradle.kts
+++ b/benchmarks/build.gradle.kts
@@ -155,7 +155,7 @@ kotlin.sourceSets.all {
}
}
-tasks.withType {
+tasks.withType {
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" + "-Xlambdas=indy"
diff --git a/build.gradle.kts b/build.gradle.kts
index 3372d505d..10f2385f5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -11,7 +11,7 @@ allprojects {
}
group = "space.kscience"
- version = "0.3.0-dev-20"
+ version = "0.3.0"
}
subprojects {
@@ -56,7 +56,7 @@ subprojects {
readme.readmeTemplate = file("docs/templates/README-TEMPLATE.md")
ksciencePublish {
- github("kmath")
+ github("kmath", addToRelease = false)
space()
sonatype()
}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index b69ebe6cd..fa5142538 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -1,7 +1,7 @@
plugins {
`kotlin-dsl`
`version-catalog`
- alias(npmlibs.plugins.kotlin.plugin.serialization)
+ alias(miptNpmLibs.plugins.kotlin.plugin.serialization)
}
java.targetCompatibility = JavaVersion.VERSION_11
@@ -14,8 +14,8 @@ repositories {
}
val toolsVersion: String by extra
-val kotlinVersion = npmlibs.versions.kotlin.asProvider().get()
-val benchmarksVersion = npmlibs.versions.kotlinx.benchmark.get()
+val kotlinVersion = miptNpmLibs.versions.kotlin.asProvider().get()
+val benchmarksVersion = miptNpmLibs.versions.kotlinx.benchmark.get()
dependencies {
api("ru.mipt.npm:gradle-tools:$toolsVersion")
@@ -23,7 +23,7 @@ dependencies {
api("org.jetbrains.kotlinx:kotlinx-benchmark-plugin:$benchmarksVersion")
api("org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion")
//to be used inside build-script only
- implementation(npmlibs.kotlinx.serialization.json)
+ implementation(miptNpmLibs.kotlinx.serialization.json)
}
kotlin.sourceSets.all {
diff --git a/buildSrc/gradle.properties b/buildSrc/gradle.properties
index 05486d4f6..a0b05e812 100644
--- a/buildSrc/gradle.properties
+++ b/buildSrc/gradle.properties
@@ -4,5 +4,4 @@
#
kotlin.code.style=official
-
-toolsVersion=0.11.1-kotlin-1.6.10
+toolsVersion=0.11.2-kotlin-1.6.10
diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts
index 9c5550602..7c1df133d 100644
--- a/buildSrc/settings.gradle.kts
+++ b/buildSrc/settings.gradle.kts
@@ -4,10 +4,8 @@
*/
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
-enableFeaturePreview("VERSION_CATALOGS")
dependencyResolutionManagement {
-
val toolsVersion: String by extra
repositories {
@@ -18,8 +16,8 @@ dependencyResolutionManagement {
}
versionCatalogs {
- create("npmlibs") {
+ create("miptNpmLibs") {
from("ru.mipt.npm:version-catalog:$toolsVersion")
}
}
-}
\ No newline at end of file
+}
diff --git a/docs/templates/README-TEMPLATE.md b/docs/templates/README-TEMPLATE.md
index b0c418697..4ffa9e75f 100644
--- a/docs/templates/README-TEMPLATE.md
+++ b/docs/templates/README-TEMPLATE.md
@@ -52,7 +52,7 @@ module definitions below. The module stability could have the following levels:
## Modules
-$modules
+${modules}
## Multi-platform support
diff --git a/examples/README.md b/examples/README.md
new file mode 100644
index 000000000..d4e1c5289
--- /dev/null
+++ b/examples/README.md
@@ -0,0 +1,4 @@
+# Module examples
+
+
+
diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts
index 36715cd78..60f8f5aed 100644
--- a/examples/build.gradle.kts
+++ b/examples/build.gradle.kts
@@ -58,7 +58,7 @@ kotlin.sourceSets.all {
}
}
-tasks.withType {
+tasks.withType {
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" + "-Xopt-in=kotlin.RequiresOptIn" + "-Xlambdas=indy"
diff --git a/examples/src/main/kotlin/space/kscience/kmath/functions/integrate.kt b/examples/src/main/kotlin/space/kscience/kmath/functions/integrate.kt
index f60b1ab45..59eaba5bd 100644
--- a/examples/src/main/kotlin/space/kscience/kmath/functions/integrate.kt
+++ b/examples/src/main/kotlin/space/kscience/kmath/functions/integrate.kt
@@ -13,7 +13,7 @@ import kotlin.math.pow
fun main() {
//Define a function
- val function: UnivariateFunction = { x -> 3 * x.pow(2) + 2 * x + 1 }
+ val function: Function1D = { x -> 3 * x.pow(2) + 2 * x + 1 }
//get the result of the integration
val result = DoubleField.gaussIntegrator.integrate(0.0..10.0, function = function)
diff --git a/examples/src/main/kotlin/space/kscience/kmath/functions/interpolateSquare.kt b/examples/src/main/kotlin/space/kscience/kmath/functions/interpolateSquare.kt
index feefedece..a50df0931 100644
--- a/examples/src/main/kotlin/space/kscience/kmath/functions/interpolateSquare.kt
+++ b/examples/src/main/kotlin/space/kscience/kmath/functions/interpolateSquare.kt
@@ -18,7 +18,7 @@ import space.kscience.plotly.scatter
@OptIn(UnstablePlotlyAPI::class)
fun main() {
- val function: UnivariateFunction = { x ->
+ val function: Function1D = { x ->
if (x in 30.0..50.0) {
1.0
} else {
diff --git a/gradle.properties b/gradle.properties
index 7d9628621..80108737e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,13 +2,12 @@
# Copyright 2018-2021 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.
#
-
kotlin.code.style=official
+kotlin.jupyter.add.scanner=false
kotlin.mpp.stability.nowarn=true
kotlin.native.ignoreDisabledTargets=true
-
-kotlin.jupyter.add.scanner=false
+#kotlin.incremental.js.ir=true
org.gradle.configureondemand=true
-org.gradle.parallel=true
org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G
+org.gradle.parallel=true
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7454180f2..41d9927a4 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 2e6e5897b..aa991fcea 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/kmath-ast/README.md b/kmath-ast/README.md
index bedf17486..5d5630f46 100644
--- a/kmath-ast/README.md
+++ b/kmath-ast/README.md
@@ -10,17 +10,17 @@ Extensions to MST API: transformations, dynamic compilation and visualization.
## Artifact:
-The Maven coordinates of this project are `space.kscience:kmath-ast:0.3.0-dev-17`.
+The Maven coordinates of this project are `space.kscience:kmath-ast:0.3.0`.
-**Gradle:**
-```gradle
+**Gradle Groovy:**
+```groovy
repositories {
maven { url 'https://repo.kotlin.link' }
mavenCentral()
}
dependencies {
- implementation 'space.kscience:kmath-ast:0.3.0-dev-17'
+ implementation 'space.kscience:kmath-ast:0.3.0'
}
```
**Gradle Kotlin DSL:**
@@ -31,7 +31,7 @@ repositories {
}
dependencies {
- implementation("space.kscience:kmath-ast:0.3.0-dev-17")
+ implementation("space.kscience:kmath-ast:0.3.0")
}
```
@@ -66,20 +66,19 @@ For example, the following code:
```kotlin
import space.kscience.kmath.asm.compileToExpression
-import space.kscience.kmath.complex.ComplexField
+import space.kscience.kmath.operations.DoubleField
-"x+2".parseMath().compileToExpression(ComplexField)
+"x^3-x+3".parseMath().compileToExpression(DoubleField)
```
… leads to generation of bytecode, which can be decompiled to the following Java class:
```java
-import java.util.Map;
-import kotlin.jvm.functions.Function2;
-import space.kscience.kmath.asm.internal.MapIntrinsics;
-import space.kscience.kmath.complex.Complex;
-import space.kscience.kmath.expressions.Expression;
-import space.kscience.kmath.expressions.Symbol;
+import java.util.*;
+import kotlin.jvm.functions.*;
+import space.kscience.kmath.asm.internal.*;
+import space.kscience.kmath.complex.*;
+import space.kscience.kmath.expressions.*;
public final class CompiledExpression_45045_0 implements Expression {
private final Object[] constants;
@@ -91,6 +90,32 @@ public final class CompiledExpression_45045_0 implements Expression {
}
```
+For `LongRing`, `IntRing`, and `DoubleField` specialization is supported for better performance:
+
+```java
+import java.util.*;
+import space.kscience.kmath.asm.internal.*;
+import space.kscience.kmath.expressions.*;
+
+public final class CompiledExpression_-386104628_0 implements DoubleExpression {
+ private final SymbolIndexer indexer;
+
+ public SymbolIndexer getIndexer() {
+ return this.indexer;
+ }
+
+ public double invoke(double[] arguments) {
+ double var2 = arguments[0];
+ return Math.pow(var2, 3.0D) - var2 + 3.0D;
+ }
+
+ public final Double invoke(Map arguments) {
+ double var2 = ((Double)MapIntrinsics.getOrFail(arguments, "x")).doubleValue();
+ return Math.pow(var2, 3.0D) - var2 + 3.0D;
+ }
+}
+```
+
Setting JVM system property `space.kscience.kmath.ast.dump.generated.classes` to `1` makes the translator dump class files to program's working directory, so they can be reviewed manually.
#### Limitations
@@ -134,9 +159,9 @@ MstField { x + 2 }.compileToExpression(DoubleField)
An example of emitted Wasm IR in the form of WAT:
```lisp
-(func $executable (param $0 f64) (result f64)
+(func \$executable (param \$0 f64) (result f64)
(f64.add
- (local.get $0)
+ (local.get \$0)
(f64.const 2)
)
)
diff --git a/kmath-commons/README.md b/kmath-commons/README.md
new file mode 100644
index 000000000..7195e6fb1
--- /dev/null
+++ b/kmath-commons/README.md
@@ -0,0 +1,32 @@
+# Module kmath-commons
+
+Commons math binding for kmath
+
+## Usage
+
+## Artifact:
+
+The Maven coordinates of this project are `space.kscience:kmath-commons:0.3.0`.
+
+**Gradle Groovy:**
+```groovy
+repositories {
+ maven { url 'https://repo.kotlin.link' }
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'space.kscience:kmath-commons:0.3.0'
+}
+```
+**Gradle Kotlin DSL:**
+```kotlin
+repositories {
+ maven("https://repo.kotlin.link")
+ mavenCentral()
+}
+
+dependencies {
+ implementation("space.kscience:kmath-commons:0.3.0")
+}
+```
diff --git a/kmath-complex/README.md b/kmath-complex/README.md
index 92f2435ba..4646c6a80 100644
--- a/kmath-complex/README.md
+++ b/kmath-complex/README.md
@@ -8,17 +8,17 @@ Complex and hypercomplex number systems in KMath.
## Artifact:
-The Maven coordinates of this project are `space.kscience:kmath-complex:0.3.0-dev-17`.
+The Maven coordinates of this project are `space.kscience:kmath-complex:0.3.0`.
-**Gradle:**
-```gradle
+**Gradle Groovy:**
+```groovy
repositories {
maven { url 'https://repo.kotlin.link' }
mavenCentral()
}
dependencies {
- implementation 'space.kscience:kmath-complex:0.3.0-dev-17'
+ implementation 'space.kscience:kmath-complex:0.3.0'
}
```
**Gradle Kotlin DSL:**
@@ -29,6 +29,6 @@ repositories {
}
dependencies {
- implementation("space.kscience:kmath-complex:0.3.0-dev-17")
+ implementation("space.kscience:kmath-complex:0.3.0")
}
```
diff --git a/kmath-core/README.md b/kmath-core/README.md
index e765ad50c..4fddd327c 100644
--- a/kmath-core/README.md
+++ b/kmath-core/README.md
@@ -15,17 +15,17 @@ performance calculations to code generation.
## Artifact:
-The Maven coordinates of this project are `space.kscience:kmath-core:0.3.0-dev-17`.
+The Maven coordinates of this project are `space.kscience:kmath-core:0.3.0`.
-**Gradle:**
-```gradle
+**Gradle Groovy:**
+```groovy
repositories {
maven { url 'https://repo.kotlin.link' }
mavenCentral()
}
dependencies {
- implementation 'space.kscience:kmath-core:0.3.0-dev-17'
+ implementation 'space.kscience:kmath-core:0.3.0'
}
```
**Gradle Kotlin DSL:**
@@ -36,6 +36,6 @@ repositories {
}
dependencies {
- implementation("space.kscience:kmath-core:0.3.0-dev-17")
+ implementation("space.kscience:kmath-core:0.3.0")
}
```
diff --git a/kmath-core/api/kmath-core.api b/kmath-core/api/kmath-core.api
index b424b59ff..737d33f1c 100644
--- a/kmath-core/api/kmath-core.api
+++ b/kmath-core/api/kmath-core.api
@@ -1,17 +1,29 @@
public final class space/kscience/kmath/data/ColumnarDataKt {
+ public static final fun getIndices (Lspace/kscience/kmath/data/ColumnarData;)Lkotlin/ranges/IntRange;
+}
+
+public final class space/kscience/kmath/data/XYColumnarData$Companion {
}
public final class space/kscience/kmath/data/XYColumnarDataKt {
public static synthetic fun asXYData$default (Lspace/kscience/kmath/nd/Structure2D;IIILjava/lang/Object;)Lspace/kscience/kmath/data/XYColumnarData;
}
+public final class space/kscience/kmath/data/XYErrorColumnarData$Companion {
+ public final fun of (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/data/XYErrorColumnarData;
+}
+
public abstract interface class space/kscience/kmath/domains/Domain {
public abstract fun contains (Lspace/kscience/kmath/structures/Buffer;)Z
public abstract fun getDimension ()I
}
+public final class space/kscience/kmath/domains/Domain1DKt {
+ public static final fun getCenter (Lspace/kscience/kmath/domains/Domain1D;)D
+}
+
public abstract interface class space/kscience/kmath/expressions/AutoDiffProcessor {
- public abstract fun process (Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/DifferentiableExpression;
+ public abstract fun differentiate (Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/DifferentiableExpression;
}
public class space/kscience/kmath/expressions/AutoDiffValue {
@@ -35,6 +47,9 @@ public final class space/kscience/kmath/expressions/DifferentiableExpressionKt {
public static final fun derivative (Lspace/kscience/kmath/expressions/DifferentiableExpression;Ljava/lang/String;)Lspace/kscience/kmath/expressions/Expression;
public static final fun derivative (Lspace/kscience/kmath/expressions/DifferentiableExpression;Ljava/util/List;)Lspace/kscience/kmath/expressions/Expression;
public static final fun derivative (Lspace/kscience/kmath/expressions/DifferentiableExpression;[Lspace/kscience/kmath/expressions/Symbol;)Lspace/kscience/kmath/expressions/Expression;
+ public static final fun derivative (Lspace/kscience/kmath/expressions/SpecialDifferentiableExpression;Ljava/lang/String;)Lspace/kscience/kmath/expressions/Expression;
+ public static final fun derivative (Lspace/kscience/kmath/expressions/SpecialDifferentiableExpression;Ljava/util/List;)Lspace/kscience/kmath/expressions/Expression;
+ public static final fun derivative (Lspace/kscience/kmath/expressions/SpecialDifferentiableExpression;[Lspace/kscience/kmath/expressions/Symbol;)Lspace/kscience/kmath/expressions/Expression;
}
public abstract interface class space/kscience/kmath/expressions/Expression {
@@ -46,9 +61,9 @@ public abstract interface class space/kscience/kmath/expressions/ExpressionAlgeb
}
public final class space/kscience/kmath/expressions/ExpressionKt {
- public static final fun binding (Lspace/kscience/kmath/expressions/ExpressionAlgebra;)Lkotlin/properties/ReadOnlyProperty;
public static final fun callByString (Lspace/kscience/kmath/expressions/Expression;[Lkotlin/Pair;)Ljava/lang/Object;
public static final fun callBySymbol (Lspace/kscience/kmath/expressions/Expression;[Lkotlin/Pair;)Ljava/lang/Object;
+ public static final fun getBinding (Lspace/kscience/kmath/expressions/ExpressionAlgebra;)Lkotlin/properties/ReadOnlyProperty;
public static final fun invoke (Lspace/kscience/kmath/expressions/Expression;)Ljava/lang/Object;
}
@@ -70,10 +85,11 @@ public abstract class space/kscience/kmath/expressions/FunctionalExpressionAlgeb
}
public final class space/kscience/kmath/expressions/FunctionalExpressionAlgebraKt {
+ public static final fun expression (Lspace/kscience/kmath/operations/DoubleField;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/Expression;
public static final fun expressionInExtendedField (Lspace/kscience/kmath/operations/ExtendedField;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/Expression;
public static final fun expressionInField (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/Expression;
+ public static final fun expressionInGroup (Lspace/kscience/kmath/operations/Group;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/Expression;
public static final fun expressionInRing (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/Expression;
- public static final fun expressionInSpace (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/Expression;
}
public class space/kscience/kmath/expressions/FunctionalExpressionExtendedField : space/kscience/kmath/expressions/FunctionalExpressionField, space/kscience/kmath/operations/ExtendedField {
@@ -85,8 +101,6 @@ public class space/kscience/kmath/expressions/FunctionalExpressionExtendedField
public synthetic fun atan (Ljava/lang/Object;)Ljava/lang/Object;
public fun atan (Lspace/kscience/kmath/expressions/Expression;)Lspace/kscience/kmath/expressions/Expression;
public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
- public synthetic fun bindSymbol (Ljava/lang/String;)Ljava/lang/Object;
- public fun bindSymbol (Ljava/lang/String;)Lspace/kscience/kmath/expressions/Expression;
public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
public fun cos (Lspace/kscience/kmath/expressions/Expression;)Lspace/kscience/kmath/expressions/Expression;
public synthetic fun exp (Ljava/lang/Object;)Ljava/lang/Object;
@@ -189,7 +203,6 @@ public final class space/kscience/kmath/expressions/MST$Unary : space/kscience/k
}
public final class space/kscience/kmath/expressions/MSTKt {
- public static final fun evaluate (Lspace/kscience/kmath/operations/Algebra;Lspace/kscience/kmath/expressions/MST;)Ljava/lang/Object;
public static final fun interpret (Lspace/kscience/kmath/expressions/MST;Lspace/kscience/kmath/operations/Algebra;Ljava/util/Map;)Ljava/lang/Object;
public static final fun interpret (Lspace/kscience/kmath/expressions/MST;Lspace/kscience/kmath/operations/Algebra;[Lkotlin/Pair;)Ljava/lang/Object;
public static final fun toExpression (Lspace/kscience/kmath/expressions/MST;Lspace/kscience/kmath/operations/Algebra;)Lspace/kscience/kmath/expressions/Expression;
@@ -255,7 +268,7 @@ public final class space/kscience/kmath/expressions/MstExtendedField : space/ksc
public fun unaryPlus (Lspace/kscience/kmath/expressions/MST;)Lspace/kscience/kmath/expressions/MST$Unary;
}
-public final class space/kscience/kmath/expressions/MstField : space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumbersAddOperations, space/kscience/kmath/operations/ScaleOperations {
+public final class space/kscience/kmath/expressions/MstField : space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumbersAddOps, space/kscience/kmath/operations/ScaleOperations {
public static final field INSTANCE Lspace/kscience/kmath/expressions/MstField;
public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun add (Lspace/kscience/kmath/expressions/MST;Lspace/kscience/kmath/expressions/MST;)Lspace/kscience/kmath/expressions/MST$Binary;
@@ -317,7 +330,7 @@ public final class space/kscience/kmath/expressions/MstNumericAlgebra : space/ks
public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
}
-public final class space/kscience/kmath/expressions/MstRing : space/kscience/kmath/operations/NumbersAddOperations, space/kscience/kmath/operations/Ring, space/kscience/kmath/operations/ScaleOperations {
+public final class space/kscience/kmath/expressions/MstRing : space/kscience/kmath/operations/NumbersAddOps, space/kscience/kmath/operations/Ring, space/kscience/kmath/operations/ScaleOperations {
public static final field INSTANCE Lspace/kscience/kmath/expressions/MstRing;
public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun add (Lspace/kscience/kmath/expressions/MST;Lspace/kscience/kmath/expressions/MST;)Lspace/kscience/kmath/expressions/MST$Binary;
@@ -365,8 +378,6 @@ public final class space/kscience/kmath/expressions/SimpleAutoDiffExtendedField
public fun atan (Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
public fun atanh (Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
- public synthetic fun bindSymbol (Ljava/lang/String;)Ljava/lang/Object;
- public fun bindSymbol (Ljava/lang/String;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
public fun cos (Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
@@ -395,7 +406,7 @@ public final class space/kscience/kmath/expressions/SimpleAutoDiffExtendedField
public fun tanh (Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
}
-public class space/kscience/kmath/expressions/SimpleAutoDiffField : space/kscience/kmath/expressions/ExpressionAlgebra, space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumbersAddOperations {
+public class space/kscience/kmath/expressions/SimpleAutoDiffField : space/kscience/kmath/expressions/ExpressionAlgebra, space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumbersAddOps {
public fun (Lspace/kscience/kmath/operations/Field;Ljava/util/Map;)V
public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun add (Lspace/kscience/kmath/expressions/AutoDiffValue;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
@@ -403,7 +414,6 @@ public class space/kscience/kmath/expressions/SimpleAutoDiffField : space/kscien
public fun bindSymbolOrNull (Ljava/lang/String;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public synthetic fun const (Ljava/lang/Object;)Ljava/lang/Object;
public fun const (Ljava/lang/Object;)Lspace/kscience/kmath/expressions/AutoDiffValue;
- public final fun const (Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public final fun derive (Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun divide (Lspace/kscience/kmath/expressions/AutoDiffValue;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
@@ -431,6 +441,7 @@ public final class space/kscience/kmath/expressions/SimpleAutoDiffKt {
public static final fun asinh (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public static final fun atan (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public static final fun atanh (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
+ public static final fun const (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public static final fun cos (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public static final fun cosh (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
public static final fun exp (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
@@ -450,18 +461,13 @@ public final class space/kscience/kmath/expressions/SimpleAutoDiffKt {
public static final fun tanh (Lspace/kscience/kmath/expressions/SimpleAutoDiffField;Lspace/kscience/kmath/expressions/AutoDiffValue;)Lspace/kscience/kmath/expressions/AutoDiffValue;
}
-public final class space/kscience/kmath/expressions/StringSymbol : space/kscience/kmath/expressions/Symbol {
- public static final synthetic fun box-impl (Ljava/lang/String;)Lspace/kscience/kmath/expressions/StringSymbol;
- public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String;
- public fun equals (Ljava/lang/Object;)Z
- public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z
- public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z
- public fun getIdentity ()Ljava/lang/String;
- public fun hashCode ()I
- public static fun hashCode-impl (Ljava/lang/String;)I
- public fun toString ()Ljava/lang/String;
- public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String;
- public final synthetic fun unbox-impl ()Ljava/lang/String;
+public abstract interface class space/kscience/kmath/expressions/SpecialDifferentiableExpression : space/kscience/kmath/expressions/DifferentiableExpression {
+ public abstract fun derivativeOrNull (Ljava/util/List;)Lspace/kscience/kmath/expressions/Expression;
+}
+
+public final class space/kscience/kmath/expressions/SpecialExpressionsKt {
+ public static final fun chiSquaredExpression (Lspace/kscience/kmath/expressions/AutoDiffProcessor;Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/expressions/DifferentiableExpression;
+ public static final fun genericChiSquaredExpression (Lspace/kscience/kmath/expressions/AutoDiffProcessor;Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/expressions/DifferentiableExpression;
}
public abstract interface class space/kscience/kmath/expressions/Symbol : space/kscience/kmath/expressions/MST {
@@ -470,15 +476,19 @@ public abstract interface class space/kscience/kmath/expressions/Symbol : space/
}
public final class space/kscience/kmath/expressions/Symbol$Companion {
- public final fun getX-uKgCeAI ()Ljava/lang/String;
- public final fun getY-uKgCeAI ()Ljava/lang/String;
- public final fun getZ-uKgCeAI ()Ljava/lang/String;
+ public final fun getX ()Lspace/kscience/kmath/expressions/Symbol;
+ public final fun getXError ()Lspace/kscience/kmath/expressions/Symbol;
+ public final fun getY ()Lspace/kscience/kmath/expressions/Symbol;
+ public final fun getYError ()Lspace/kscience/kmath/expressions/Symbol;
+ public final fun getZ ()Lspace/kscience/kmath/expressions/Symbol;
+ public final fun getZError ()Lspace/kscience/kmath/expressions/Symbol;
}
public final class space/kscience/kmath/expressions/SymbolIndexerKt {
}
public final class space/kscience/kmath/expressions/SymbolKt {
+ public static final fun Symbol (Ljava/lang/String;)Lspace/kscience/kmath/expressions/Symbol;
public static final fun get (Ljava/util/Map;Ljava/lang/String;)Ljava/lang/Object;
public static final fun get (Ljava/util/Map;Lspace/kscience/kmath/expressions/Symbol;)Ljava/lang/Object;
public static final fun getSymbol ()Lkotlin/properties/ReadOnlyProperty;
@@ -487,7 +497,7 @@ public final class space/kscience/kmath/expressions/SymbolKt {
}
public final class space/kscience/kmath/linear/BufferedLinearSpace : space/kscience/kmath/linear/LinearSpace {
- public fun (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;)V
+ public fun (Lspace/kscience/kmath/operations/BufferAlgebra;)V
public fun buildMatrix (IILkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/Structure2D;
public fun buildVector (ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/structures/Buffer;
public fun dot (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
@@ -499,6 +509,10 @@ public final class space/kscience/kmath/linear/BufferedLinearSpace : space/kscie
public fun unaryMinus (Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
}
+public final class space/kscience/kmath/linear/BufferedLinearSpaceKt {
+ public static final fun linearSpace (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/linear/BufferedLinearSpace;
+}
+
public abstract interface class space/kscience/kmath/linear/CholeskyDecompositionFeature : space/kscience/kmath/linear/MatrixFeature {
public abstract fun getL ()Lspace/kscience/kmath/nd/Structure2D;
}
@@ -514,6 +528,36 @@ public abstract interface class space/kscience/kmath/linear/DiagonalFeature : sp
public final class space/kscience/kmath/linear/DiagonalFeature$Companion : space/kscience/kmath/linear/DiagonalFeature {
}
+public final class space/kscience/kmath/linear/DoubleLinearSpace : space/kscience/kmath/linear/LinearSpace {
+ public static final field INSTANCE Lspace/kscience/kmath/linear/DoubleLinearSpace;
+ public fun buildMatrix (IILkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/Structure2D;
+ public synthetic fun buildVector (ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/structures/Buffer;
+ public fun buildVector-CZ9oacQ (ILkotlin/jvm/functions/Function2;)[D
+ public final fun div-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;D)[D
+ public fun dot (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
+ public synthetic fun dot (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public fun dot-CZ9oacQ (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/structures/Buffer;)[D
+ public fun getElementAlgebra ()Lspace/kscience/kmath/operations/DoubleField;
+ public synthetic fun getElementAlgebra ()Lspace/kscience/kmath/operations/Ring;
+ public fun minus (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
+ public synthetic fun minus (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public fun minus-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public fun plus (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
+ public synthetic fun plus (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public fun plus-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun times (Ljava/lang/Object;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public fun times (Lspace/kscience/kmath/nd/Structure2D;D)Lspace/kscience/kmath/nd/Structure2D;
+ public synthetic fun times (Lspace/kscience/kmath/nd/Structure2D;Ljava/lang/Object;)Lspace/kscience/kmath/nd/Structure2D;
+ public synthetic fun times (Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Object;)Lspace/kscience/kmath/structures/Buffer;
+ public fun times-CZ9oacQ (DLspace/kscience/kmath/structures/Buffer;)[D
+ public fun times-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;D)[D
+ public fun unaryMinus (Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
+}
+
+public final class space/kscience/kmath/linear/DoubleLinearSpaceKt {
+ public static final fun getLinearSpace (Lspace/kscience/kmath/operations/DoubleField;)Lspace/kscience/kmath/linear/DoubleLinearSpace;
+}
+
public abstract interface class space/kscience/kmath/linear/InverseMatrixFeature : space/kscience/kmath/linear/MatrixFeature {
public abstract fun getInverse ()Lspace/kscience/kmath/nd/Structure2D;
}
@@ -533,11 +577,6 @@ public abstract interface class space/kscience/kmath/linear/LinearSolver {
public fun solve (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
}
-public final class space/kscience/kmath/linear/LinearSolverKt {
- public static final fun asMatrix (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/linear/VirtualMatrix;
- public static final fun asVector (Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/structures/Buffer;
-}
-
public abstract interface class space/kscience/kmath/linear/LinearSpace {
public static final field Companion Lspace/kscience/kmath/linear/LinearSpace$Companion;
public abstract fun buildMatrix (IILkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/Structure2D;
@@ -560,10 +599,12 @@ public abstract interface class space/kscience/kmath/linear/LinearSpace {
public final class space/kscience/kmath/linear/LinearSpace$Companion {
public final fun buffered (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/linear/LinearSpace;
public static synthetic fun buffered$default (Lspace/kscience/kmath/linear/LinearSpace$Companion;Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lspace/kscience/kmath/linear/LinearSpace;
- public final fun getReal ()Lspace/kscience/kmath/linear/LinearSpace;
+ public final fun getDouble ()Lspace/kscience/kmath/linear/LinearSpace;
}
public final class space/kscience/kmath/linear/LinearSpaceKt {
+ public static final fun asMatrix (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/linear/VirtualMatrix;
+ public static final fun asVector (Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/structures/Buffer;
public static final fun invoke (Lspace/kscience/kmath/linear/LinearSpace;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
}
@@ -587,11 +628,12 @@ public abstract interface class space/kscience/kmath/linear/LupDecompositionFeat
public final class space/kscience/kmath/linear/LupDecompositionKt {
public static final fun abs (Lspace/kscience/kmath/linear/LinearSpace;Ljava/lang/Comparable;)Ljava/lang/Comparable;
- public static final fun inverseWithLup (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
public static final fun lup (Lspace/kscience/kmath/linear/LinearSpace;Lkotlin/jvm/functions/Function2;Lspace/kscience/kmath/nd/Structure2D;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/linear/LupDecomposition;
- public static final fun lup (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/linear/LupDecomposition;
- public static final fun solveWithLup (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
- public static final fun solveWithLup (Lspace/kscience/kmath/linear/LupDecomposition;Lkotlin/jvm/functions/Function2;Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
+ public static final fun lup (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/Structure2D;D)Lspace/kscience/kmath/linear/LupDecomposition;
+ public static synthetic fun lup$default (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/Structure2D;DILjava/lang/Object;)Lspace/kscience/kmath/linear/LupDecomposition;
+ public static final fun lupSolver (Lspace/kscience/kmath/linear/LinearSpace;D)Lspace/kscience/kmath/linear/LinearSolver;
+ public static final fun lupSolver (Lspace/kscience/kmath/linear/LinearSpace;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/linear/LinearSolver;
+ public static synthetic fun lupSolver$default (Lspace/kscience/kmath/linear/LinearSpace;DILjava/lang/Object;)Lspace/kscience/kmath/linear/LinearSolver;
}
public final class space/kscience/kmath/linear/MatrixBuilder {
@@ -607,6 +649,7 @@ public final class space/kscience/kmath/linear/MatrixBuilderKt {
public static final fun column (Lspace/kscience/kmath/linear/LinearSpace;[Ljava/lang/Object;)Lspace/kscience/kmath/nd/Structure2D;
public static final fun row (Lspace/kscience/kmath/linear/LinearSpace;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/nd/Structure2D;
public static final fun row (Lspace/kscience/kmath/linear/LinearSpace;[Ljava/lang/Object;)Lspace/kscience/kmath/nd/Structure2D;
+ public static final fun symmetric (Lspace/kscience/kmath/linear/MatrixBuilder;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/Structure2D;
}
public abstract interface class space/kscience/kmath/linear/MatrixFeature : space/kscience/kmath/nd/StructureFeature {
@@ -623,7 +666,10 @@ public final class space/kscience/kmath/linear/MatrixWrapper : space/kscience/km
public fun getColNum ()I
public fun getColumns ()Ljava/util/List;
public fun getDimension ()I
- public final fun getFeatures ()Ljava/util/Set;
+ public synthetic fun getFeature (Lkotlin/reflect/KClass;)Ljava/lang/Object;
+ public fun getFeature (Lkotlin/reflect/KClass;)Lspace/kscience/kmath/nd/StructureFeature;
+ public final fun getFeatures-En6fw3w ()Ljava/util/Map;
+ public fun getIndices ()Lspace/kscience/kmath/nd/ShapeIndexer;
public final fun getOrigin ()Lspace/kscience/kmath/nd/Structure2D;
public fun getRowNum ()I
public fun getRows ()Ljava/util/List;
@@ -634,9 +680,10 @@ public final class space/kscience/kmath/linear/MatrixWrapper : space/kscience/km
public final class space/kscience/kmath/linear/MatrixWrapperKt {
public static final fun getOrigin (Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
public static final fun one (Lspace/kscience/kmath/linear/LinearSpace;II)Lspace/kscience/kmath/nd/Structure2D;
- public static final fun plus (Lspace/kscience/kmath/nd/Structure2D;Ljava/util/Collection;)Lspace/kscience/kmath/linear/MatrixWrapper;
public static final fun plus (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/linear/MatrixFeature;)Lspace/kscience/kmath/linear/MatrixWrapper;
public static final fun transpose (Lspace/kscience/kmath/nd/Structure2D;)Lspace/kscience/kmath/nd/Structure2D;
+ public static final fun withFeature (Lspace/kscience/kmath/nd/Structure2D;Lspace/kscience/kmath/linear/MatrixFeature;)Lspace/kscience/kmath/linear/MatrixWrapper;
+ public static final fun withFeatures (Lspace/kscience/kmath/nd/Structure2D;Ljava/lang/Iterable;)Lspace/kscience/kmath/linear/MatrixWrapper;
public static final fun zero (Lspace/kscience/kmath/linear/LinearSpace;II)Lspace/kscience/kmath/nd/Structure2D;
}
@@ -656,6 +703,10 @@ public abstract interface class space/kscience/kmath/linear/SingularValueDecompo
public abstract fun getV ()Lspace/kscience/kmath/nd/Structure2D;
}
+public final class space/kscience/kmath/linear/SymmetricMatrixFeature : space/kscience/kmath/linear/MatrixFeature {
+ public static final field INSTANCE Lspace/kscience/kmath/linear/SymmetricMatrixFeature;
+}
+
public final class space/kscience/kmath/linear/TransposedFeature : space/kscience/kmath/linear/MatrixFeature {
public fun (Lspace/kscience/kmath/nd/Structure2D;)V
public final fun getOriginal ()Lspace/kscience/kmath/nd/Structure2D;
@@ -678,6 +729,10 @@ public final class space/kscience/kmath/linear/VirtualMatrix : space/kscience/km
public fun getShape ()[I
}
+public final class space/kscience/kmath/linear/VirtualMatrixKt {
+ public static final fun virtual (Lspace/kscience/kmath/linear/MatrixBuilder;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/linear/VirtualMatrix;
+}
+
public final class space/kscience/kmath/linear/ZeroFeature : space/kscience/kmath/linear/DiagonalFeature {
public static final field INSTANCE Lspace/kscience/kmath/linear/ZeroFeature;
}
@@ -701,82 +756,164 @@ public final class space/kscience/kmath/misc/CumulativeKt {
public static final fun cumulativeSumOfLong (Lkotlin/sequences/Sequence;)Lkotlin/sequences/Sequence;
}
+public abstract interface class space/kscience/kmath/misc/Feature {
+ public fun getKey ()Lkotlin/reflect/KClass;
+}
+
+public final class space/kscience/kmath/misc/FeatureSet : space/kscience/kmath/misc/Featured {
+ public static final field Companion Lspace/kscience/kmath/misc/FeatureSet$Companion;
+ public static final synthetic fun box-impl (Ljava/util/Map;)Lspace/kscience/kmath/misc/FeatureSet;
+ public fun equals (Ljava/lang/Object;)Z
+ public static fun equals-impl (Ljava/util/Map;Ljava/lang/Object;)Z
+ public static final fun equals-impl0 (Ljava/util/Map;Ljava/util/Map;)Z
+ public synthetic fun getFeature (Lkotlin/reflect/KClass;)Ljava/lang/Object;
+ public fun getFeature (Lkotlin/reflect/KClass;)Lspace/kscience/kmath/misc/Feature;
+ public static fun getFeature-impl (Ljava/util/Map;Lkotlin/reflect/KClass;)Lspace/kscience/kmath/misc/Feature;
+ public final fun getFeatures ()Ljava/util/Map;
+ public fun hashCode ()I
+ public static fun hashCode-impl (Ljava/util/Map;)I
+ public static final fun iterator-impl (Ljava/util/Map;)Ljava/util/Iterator;
+ public fun toString ()Ljava/lang/String;
+ public static fun toString-impl (Ljava/util/Map;)Ljava/lang/String;
+ public final synthetic fun unbox-impl ()Ljava/util/Map;
+ public static final fun with-JVE9-Rk (Ljava/util/Map;Ljava/lang/Iterable;)Ljava/util/Map;
+ public static final fun with-JVE9-Rk (Ljava/util/Map;[Lspace/kscience/kmath/misc/Feature;)Ljava/util/Map;
+ public static final fun with-YU1a0hQ (Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
+ public static final fun with-h58Sd8I (Ljava/util/Map;Lspace/kscience/kmath/misc/Feature;Lkotlin/reflect/KClass;)Ljava/util/Map;
+ public static synthetic fun with-h58Sd8I$default (Ljava/util/Map;Lspace/kscience/kmath/misc/Feature;Lkotlin/reflect/KClass;ILjava/lang/Object;)Ljava/util/Map;
+}
+
+public final class space/kscience/kmath/misc/FeatureSet$Companion {
+ public final fun of-JVE9-Rk (Ljava/lang/Iterable;)Ljava/util/Map;
+ public final fun of-JVE9-Rk ([Lspace/kscience/kmath/misc/Feature;)Ljava/util/Map;
+}
+
+public abstract interface class space/kscience/kmath/misc/Featured {
+ public abstract fun getFeature (Lkotlin/reflect/KClass;)Ljava/lang/Object;
+}
+
+public abstract interface class space/kscience/kmath/misc/Loggable {
+ public static final field Companion Lspace/kscience/kmath/misc/Loggable$Companion;
+ public static final field INFO Ljava/lang/String;
+ public abstract fun log (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
+}
+
+public final class space/kscience/kmath/misc/Loggable$Companion {
+ public static final field INFO Ljava/lang/String;
+ public final fun getConsole ()Lspace/kscience/kmath/misc/Loggable;
+}
+
+public final class space/kscience/kmath/misc/LoggingKt {
+ public static final fun log (Lspace/kscience/kmath/misc/Loggable;Lkotlin/jvm/functions/Function0;)V
+}
+
+public final class space/kscience/kmath/misc/NumbersJVMKt {
+ public static final fun toIntExact (J)I
+}
+
public abstract interface annotation class space/kscience/kmath/misc/PerformancePitfall : java/lang/annotation/Annotation {
+ public abstract fun message ()Ljava/lang/String;
+}
+
+public final class space/kscience/kmath/misc/SortingKt {
+ public static final fun requireSorted (Lspace/kscience/kmath/structures/Buffer;)V
+ public static final fun sorted (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun sortedBy (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun sortedByDescending (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun sortedDescending (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
}
public abstract interface annotation class space/kscience/kmath/misc/UnstableKMathAPI : java/lang/annotation/Annotation {
}
-public abstract interface class space/kscience/kmath/nd/AlgebraND {
+public abstract interface class space/kscience/kmath/nd/AlgebraND : space/kscience/kmath/operations/Algebra {
public static final field Companion Lspace/kscience/kmath/nd/AlgebraND$Companion;
- public abstract fun combine (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
- public abstract fun getElementContext ()Lspace/kscience/kmath/operations/Algebra;
- public abstract fun getShape ()[I
+ public abstract fun getElementAlgebra ()Lspace/kscience/kmath/operations/Algebra;
public fun invoke (Lkotlin/jvm/functions/Function1;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
- public abstract fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
- public abstract fun mapIndexed (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
- public abstract fun produce (Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public fun mapIndexed (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
+ public abstract fun structureND ([ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public fun zip (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
}
public final class space/kscience/kmath/nd/AlgebraND$Companion {
}
+public final class space/kscience/kmath/nd/AlgebraNDExtentionsKt {
+ public static final fun one (Lspace/kscience/kmath/nd/AlgebraND;[I)Lspace/kscience/kmath/nd/StructureND;
+ public static final fun oneVarArg (Lspace/kscience/kmath/nd/AlgebraND;I[I)Lspace/kscience/kmath/nd/StructureND;
+ public static final fun structureND (Lspace/kscience/kmath/nd/AlgebraND;I[ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public static final fun zero (Lspace/kscience/kmath/nd/AlgebraND;[I)Lspace/kscience/kmath/nd/StructureND;
+ public static final fun zeroVarArg (Lspace/kscience/kmath/nd/AlgebraND;I[I)Lspace/kscience/kmath/nd/StructureND;
+}
+
+public final class space/kscience/kmath/nd/AlgebraNDKt {
+ public static final fun Shape (I[I)[I
+}
+
public abstract interface class space/kscience/kmath/nd/BufferAlgebraND : space/kscience/kmath/nd/AlgebraND {
- public fun combine (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun combine (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
- public fun getBuffer (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/structures/Buffer;
- public abstract fun getBufferFactory ()Lkotlin/jvm/functions/Function2;
- public abstract fun getStrides ()Lspace/kscience/kmath/nd/Strides;
+ public static final field Companion Lspace/kscience/kmath/nd/BufferAlgebraND$Companion;
+ public abstract fun getBufferAlgebra ()Lspace/kscience/kmath/operations/BufferAlgebra;
+ public fun getElementAlgebra ()Lspace/kscience/kmath/operations/Algebra;
+ public abstract fun getIndexerBuilder ()Lkotlin/jvm/functions/Function1;
public fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
public synthetic fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
public fun mapIndexed (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/BufferND;
public synthetic fun mapIndexed (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
- public fun produce (Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun produce (Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public fun structureND ([ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
+ public synthetic fun structureND ([ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public fun toBufferND (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun zip (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/BufferND;
+ public synthetic fun zip (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
+}
+
+public final class space/kscience/kmath/nd/BufferAlgebraND$Companion {
+ public final fun getDefaultIndexerBuilder ()Lkotlin/jvm/functions/Function1;
}
public final class space/kscience/kmath/nd/BufferAlgebraNDKt {
- public static final fun field (Lspace/kscience/kmath/nd/AlgebraND$Companion;Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;[I)Lspace/kscience/kmath/nd/BufferedFieldND;
- public static final fun group (Lspace/kscience/kmath/nd/AlgebraND$Companion;Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;[I)Lspace/kscience/kmath/nd/BufferedGroupND;
- public static final fun ndField (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;[ILkotlin/jvm/functions/Function1;)Ljava/lang/Object;
- public static final fun ndGroup (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;[ILkotlin/jvm/functions/Function1;)Ljava/lang/Object;
- public static final fun ndRing (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;[ILkotlin/jvm/functions/Function1;)Ljava/lang/Object;
- public static final fun ring (Lspace/kscience/kmath/nd/AlgebraND$Companion;Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;[I)Lspace/kscience/kmath/nd/BufferedRingND;
+ public static final fun getNd (Lspace/kscience/kmath/operations/BufferAlgebra;)Lspace/kscience/kmath/nd/BufferedFieldOpsND;
+ public static final fun getNd (Lspace/kscience/kmath/operations/BufferAlgebra;)Lspace/kscience/kmath/nd/BufferedGroupNDOps;
+ public static final fun getNd (Lspace/kscience/kmath/operations/BufferAlgebra;)Lspace/kscience/kmath/nd/BufferedRingOpsND;
+ public static final fun mapInline (Lspace/kscience/kmath/nd/BufferAlgebraND;Lspace/kscience/kmath/nd/BufferND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
+ public static final fun structureND (Lspace/kscience/kmath/nd/BufferAlgebraND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
+ public static final fun structureND (Lspace/kscience/kmath/nd/BufferAlgebraND;[ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
}
public class space/kscience/kmath/nd/BufferND : space/kscience/kmath/nd/StructureND {
- public fun (Lspace/kscience/kmath/nd/Strides;Lspace/kscience/kmath/structures/Buffer;)V
- public fun elements ()Lkotlin/sequences/Sequence;
+ public fun (Lspace/kscience/kmath/nd/ShapeIndexer;Lspace/kscience/kmath/structures/Buffer;)V
public fun get ([I)Ljava/lang/Object;
- public final fun getBuffer ()Lspace/kscience/kmath/structures/Buffer;
+ public fun getBuffer ()Lspace/kscience/kmath/structures/Buffer;
+ public fun getIndices ()Lspace/kscience/kmath/nd/ShapeIndexer;
public fun getShape ()[I
- public final fun getStrides ()Lspace/kscience/kmath/nd/Strides;
public fun toString ()Ljava/lang/String;
}
-public class space/kscience/kmath/nd/BufferedFieldND : space/kscience/kmath/nd/BufferedRingND, space/kscience/kmath/nd/FieldND {
- public fun ([ILspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;)V
+public final class space/kscience/kmath/nd/BufferNDKt {
+ public static final fun mapToBuffer (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/nd/BufferND;
+}
+
+public class space/kscience/kmath/nd/BufferedFieldOpsND : space/kscience/kmath/nd/BufferedRingOpsND, space/kscience/kmath/nd/FieldOpsND {
+ public fun (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;)V
+ public synthetic fun (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V
+ public synthetic fun (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
public fun scale (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/StructureND;
}
-public class space/kscience/kmath/nd/BufferedGroupND : space/kscience/kmath/nd/BufferAlgebraND, space/kscience/kmath/nd/GroupND {
- public fun ([ILspace/kscience/kmath/operations/Group;Lkotlin/jvm/functions/Function2;)V
- public final fun getBufferFactory ()Lkotlin/jvm/functions/Function2;
- public synthetic fun getElementContext ()Lspace/kscience/kmath/operations/Algebra;
- public final fun getElementContext ()Lspace/kscience/kmath/operations/Group;
- public final fun getShape ()[I
- public fun getStrides ()Lspace/kscience/kmath/nd/Strides;
- public synthetic fun getZero ()Ljava/lang/Object;
- public fun getZero ()Lspace/kscience/kmath/nd/BufferND;
+public class space/kscience/kmath/nd/BufferedGroupNDOps : space/kscience/kmath/nd/BufferAlgebraND, space/kscience/kmath/nd/GroupOpsND {
+ public fun (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;)V
+ public synthetic fun (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun getBufferAlgebra ()Lspace/kscience/kmath/operations/BufferAlgebra;
+ public fun getIndexerBuilder ()Lkotlin/jvm/functions/Function1;
public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
public fun unaryMinus (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
}
-public class space/kscience/kmath/nd/BufferedRingND : space/kscience/kmath/nd/BufferedGroupND, space/kscience/kmath/nd/RingND {
- public fun ([ILspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;)V
- public synthetic fun getOne ()Ljava/lang/Object;
- public fun getOne ()Lspace/kscience/kmath/nd/BufferND;
+public class space/kscience/kmath/nd/BufferedRingOpsND : space/kscience/kmath/nd/BufferedGroupNDOps, space/kscience/kmath/nd/RingOpsND {
+ public fun (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;)V
+ public synthetic fun (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
}
public final class space/kscience/kmath/nd/DefaultStrides : space/kscience/kmath/nd/Strides {
@@ -794,72 +931,151 @@ public final class space/kscience/kmath/nd/DefaultStrides$Companion {
public final fun invoke ([I)Lspace/kscience/kmath/nd/Strides;
}
-public final class space/kscience/kmath/nd/DoubleFieldND : space/kscience/kmath/nd/BufferedFieldND, space/kscience/kmath/operations/ExtendedField, space/kscience/kmath/operations/NumbersAddOperations, space/kscience/kmath/operations/ScaleOperations {
+public final class space/kscience/kmath/nd/DoubleBufferND : space/kscience/kmath/nd/BufferND {
+ public synthetic fun (Lspace/kscience/kmath/nd/ShapeIndexer;[DLkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public synthetic fun getBuffer ()Lspace/kscience/kmath/structures/Buffer;
+ public fun getBuffer-Dv3HvWU ()[D
+}
+
+public final class space/kscience/kmath/nd/DoubleFieldND : space/kscience/kmath/nd/DoubleFieldOpsND, space/kscience/kmath/nd/FieldND, space/kscience/kmath/operations/ExtendedField, space/kscience/kmath/operations/NumbersAddOps {
public fun ([I)V
- public synthetic fun acos (Ljava/lang/Object;)Ljava/lang/Object;
- public fun acos (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
public synthetic fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun acosh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun asin (Ljava/lang/Object;)Ljava/lang/Object;
- public fun asin (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun acosh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
public synthetic fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun asinh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun atan (Ljava/lang/Object;)Ljava/lang/Object;
- public fun atan (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun asinh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun atanh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public fun combine (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun combine (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
- public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
- public fun cos (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun atanh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun cosh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun exp (Ljava/lang/Object;)Ljava/lang/Object;
- public fun exp (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun getBuffer (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/structures/Buffer;
- public fun getBuffer-Udx-57Q (Lspace/kscience/kmath/nd/StructureND;)[D
- public synthetic fun getOne ()Ljava/lang/Object;
- public fun getOne ()Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun getZero ()Ljava/lang/Object;
- public fun getZero ()Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun ln (Ljava/lang/Object;)Ljava/lang/Object;
- public fun ln (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
- public fun mapIndexed (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun mapIndexed (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
+ public fun cosh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun getShape ()[I
public synthetic fun number (Ljava/lang/Number;)Ljava/lang/Object;
- public fun number (Ljava/lang/Number;)Lspace/kscience/kmath/nd/BufferND;
+ public fun number (Ljava/lang/Number;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun power (Ljava/lang/Object;I)Ljava/lang/Object;
public synthetic fun power (Ljava/lang/Object;Ljava/lang/Number;)Ljava/lang/Object;
- public fun power (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Number;)Lspace/kscience/kmath/nd/BufferND;
- public fun produce (Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun produce (Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
- public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
- public fun scale (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/StructureND;
- public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
- public fun sin (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun power (Lspace/kscience/kmath/nd/StructureND;I)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun power (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Number;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun power-Qn1smSk (Ljava/lang/Object;I)Ljava/lang/Object;
+ public fun power-Qn1smSk (Lspace/kscience/kmath/nd/StructureND;I)Lspace/kscience/kmath/nd/DoubleBufferND;
public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun sinh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
- public fun tan (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun sinh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
public synthetic fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun tanh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun tanh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
}
public final class space/kscience/kmath/nd/DoubleFieldNDKt {
- public static final fun nd (Lspace/kscience/kmath/operations/DoubleField;[ILkotlin/jvm/functions/Function1;)Ljava/lang/Object;
- public static final fun real (Lspace/kscience/kmath/nd/AlgebraND$Companion;[I)Lspace/kscience/kmath/nd/DoubleFieldND;
+ public static final fun getNdAlgebra (Lspace/kscience/kmath/operations/DoubleField;)Lspace/kscience/kmath/nd/DoubleFieldOpsND;
+ public static final fun ndAlgebra (Lspace/kscience/kmath/operations/DoubleField;[I)Lspace/kscience/kmath/nd/DoubleFieldND;
}
-public abstract interface class space/kscience/kmath/nd/FieldND : space/kscience/kmath/nd/RingND, space/kscience/kmath/operations/Field, space/kscience/kmath/operations/ScaleOperations {
+public abstract class space/kscience/kmath/nd/DoubleFieldOpsND : space/kscience/kmath/nd/BufferedFieldOpsND, space/kscience/kmath/operations/ExtendedFieldOps, space/kscience/kmath/operations/ScaleOperations {
+ public static final field Companion Lspace/kscience/kmath/nd/DoubleFieldOpsND$Companion;
+ public synthetic fun acos (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun acos (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun acosh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun add (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun add (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun asin (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun asin (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun asinh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun atan (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun atan (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun atanh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun cos (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun cosh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun div (DLspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun div (Ljava/lang/Object;Ljava/lang/Number;)Ljava/lang/Object;
+ public synthetic fun div (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public synthetic fun div (Ljava/lang/Object;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public fun div (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun div (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Number;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun div (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Object;)Lspace/kscience/kmath/nd/StructureND;
+ public fun div (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun divide (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun divide (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun exp (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun exp (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun ln (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun ln (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
+ public synthetic fun map (Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ protected final fun mapInline (Lspace/kscience/kmath/nd/DoubleBufferND;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun minus (DLspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun minus (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public synthetic fun minus (Ljava/lang/Object;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public fun minus (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun minus (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Object;)Lspace/kscience/kmath/nd/StructureND;
+ public fun minus (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun multiply (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun multiply (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public fun plus (DLspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun plus (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public synthetic fun plus (Ljava/lang/Object;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public fun plus (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun plus (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Object;)Lspace/kscience/kmath/nd/StructureND;
+ public fun plus (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
+ public fun scale (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun scale (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sin (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sinh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun structureND ([ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
+ public fun structureND ([ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun structureND ([ILkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun tan (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun tanh (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun times (Ljava/lang/Number;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun times (Ljava/lang/Number;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun times (Ljava/lang/Object;Ljava/lang/Number;)Ljava/lang/Object;
+ public synthetic fun times (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun times (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Number;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun times (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun toBufferND (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/BufferND;
+ public fun toBufferND (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun unaryMinus (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public synthetic fun unaryMinus (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun unaryPlus (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun unaryPlus (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/DoubleBufferND;
+ public fun zip (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/BufferND;
+ public synthetic fun zip (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/nd/StructureND;
+}
+
+public final class space/kscience/kmath/nd/DoubleFieldOpsND$Companion : space/kscience/kmath/nd/DoubleFieldOpsND {
+}
+
+public abstract interface class space/kscience/kmath/nd/FieldND : space/kscience/kmath/nd/FieldOpsND, space/kscience/kmath/nd/RingND, space/kscience/kmath/nd/WithShape, space/kscience/kmath/operations/Field {
+ public synthetic fun getOne ()Ljava/lang/Object;
+ public fun getOne ()Lspace/kscience/kmath/nd/StructureND;
+}
+
+public abstract interface class space/kscience/kmath/nd/FieldOpsND : space/kscience/kmath/nd/RingOpsND, space/kscience/kmath/operations/FieldOps, space/kscience/kmath/operations/ScaleOperations {
public fun div (Ljava/lang/Object;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
public fun div (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Object;)Lspace/kscience/kmath/nd/StructureND;
public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun divide (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
+ public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
+ public fun scale (Lspace/kscience/kmath/nd/StructureND;D)Lspace/kscience/kmath/nd/StructureND;
}
-public abstract interface class space/kscience/kmath/nd/GroupND : space/kscience/kmath/nd/AlgebraND, space/kscience/kmath/operations/Group {
- public static final field Companion Lspace/kscience/kmath/nd/GroupND$Companion;
+public abstract interface class space/kscience/kmath/nd/GroupND : space/kscience/kmath/nd/GroupOpsND, space/kscience/kmath/nd/WithShape, space/kscience/kmath/operations/Group {
+ public synthetic fun getZero ()Ljava/lang/Object;
+ public fun getZero ()Lspace/kscience/kmath/nd/StructureND;
+}
+
+public abstract interface class space/kscience/kmath/nd/GroupOpsND : space/kscience/kmath/nd/AlgebraND, space/kscience/kmath/operations/GroupOps {
+ public static final field Companion Lspace/kscience/kmath/nd/GroupOpsND$Companion;
public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun add (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
public fun minus (Ljava/lang/Object;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
@@ -868,12 +1084,13 @@ public abstract interface class space/kscience/kmath/nd/GroupND : space/kscience
public fun plus (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Object;)Lspace/kscience/kmath/nd/StructureND;
}
-public final class space/kscience/kmath/nd/GroupND$Companion {
+public final class space/kscience/kmath/nd/GroupOpsND$Companion {
}
public final class space/kscience/kmath/nd/MutableBufferND : space/kscience/kmath/nd/BufferND, space/kscience/kmath/nd/MutableStructureND {
- public fun (Lspace/kscience/kmath/nd/Strides;Lspace/kscience/kmath/structures/MutableBuffer;)V
- public final fun getMutableBuffer ()Lspace/kscience/kmath/structures/MutableBuffer;
+ public fun (Lspace/kscience/kmath/nd/ShapeIndexer;Lspace/kscience/kmath/structures/MutableBuffer;)V
+ public synthetic fun getBuffer ()Lspace/kscience/kmath/structures/Buffer;
+ public fun getBuffer ()Lspace/kscience/kmath/structures/MutableBuffer;
public fun set ([ILjava/lang/Object;)V
}
@@ -891,15 +1108,31 @@ public abstract interface class space/kscience/kmath/nd/MutableStructureND : spa
public abstract fun set ([ILjava/lang/Object;)V
}
-public abstract interface class space/kscience/kmath/nd/RingND : space/kscience/kmath/nd/GroupND, space/kscience/kmath/operations/Ring {
- public static final field Companion Lspace/kscience/kmath/nd/RingND$Companion;
+public abstract interface class space/kscience/kmath/nd/RingND : space/kscience/kmath/nd/GroupND, space/kscience/kmath/nd/RingOpsND, space/kscience/kmath/nd/WithShape, space/kscience/kmath/operations/Ring {
+ public synthetic fun getOne ()Ljava/lang/Object;
+ public fun getOne ()Lspace/kscience/kmath/nd/StructureND;
+}
+
+public abstract interface class space/kscience/kmath/nd/RingOpsND : space/kscience/kmath/nd/GroupOpsND, space/kscience/kmath/operations/RingOps {
+ public static final field Companion Lspace/kscience/kmath/nd/RingOpsND$Companion;
public synthetic fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun multiply (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
public fun times (Ljava/lang/Object;Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/StructureND;
public fun times (Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Object;)Lspace/kscience/kmath/nd/StructureND;
}
-public final class space/kscience/kmath/nd/RingND$Companion {
+public final class space/kscience/kmath/nd/RingOpsND$Companion {
+}
+
+public abstract interface class space/kscience/kmath/nd/ShapeIndexer : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker {
+ public abstract fun asSequence ()Lkotlin/sequences/Sequence;
+ public abstract fun equals (Ljava/lang/Object;)Z
+ public abstract fun getLinearSize ()I
+ public abstract fun getShape ()[I
+ public abstract fun hashCode ()I
+ public abstract fun index (I)[I
+ public fun iterator ()Ljava/util/Iterator;
+ public abstract fun offset ([I)I
}
public final class space/kscience/kmath/nd/ShapeMismatchException : java/lang/RuntimeException {
@@ -908,27 +1141,28 @@ public final class space/kscience/kmath/nd/ShapeMismatchException : java/lang/Ru
public final fun getExpected ()[I
}
-public final class space/kscience/kmath/nd/ShortRingND : space/kscience/kmath/nd/BufferedRingND, space/kscience/kmath/operations/NumbersAddOperations {
+public final class space/kscience/kmath/nd/ShortRingND : space/kscience/kmath/nd/ShortRingOpsND, space/kscience/kmath/nd/RingND, space/kscience/kmath/operations/NumbersAddOps {
public fun ([I)V
- public synthetic fun getOne ()Ljava/lang/Object;
- public fun getOne ()Lspace/kscience/kmath/nd/BufferND;
- public synthetic fun getZero ()Ljava/lang/Object;
- public fun getZero ()Lspace/kscience/kmath/nd/BufferND;
+ public fun getShape ()[I
public synthetic fun number (Ljava/lang/Number;)Ljava/lang/Object;
public fun number (Ljava/lang/Number;)Lspace/kscience/kmath/nd/BufferND;
}
public final class space/kscience/kmath/nd/ShortRingNDKt {
- public static final fun nd (Lspace/kscience/kmath/operations/ShortRing;[ILkotlin/jvm/functions/Function1;)Ljava/lang/Object;
- public static final fun produceInline (Lspace/kscience/kmath/nd/BufferedRingND;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/nd/BufferND;
+ public static final fun withNdAlgebra (Lspace/kscience/kmath/operations/ShortRing;[ILkotlin/jvm/functions/Function1;)Ljava/lang/Object;
}
-public abstract interface class space/kscience/kmath/nd/Strides {
- public abstract fun getLinearSize ()I
- public abstract fun getShape ()[I
+public abstract class space/kscience/kmath/nd/ShortRingOpsND : space/kscience/kmath/nd/BufferedRingOpsND {
+ public static final field Companion Lspace/kscience/kmath/nd/ShortRingOpsND$Companion;
+}
+
+public final class space/kscience/kmath/nd/ShortRingOpsND$Companion : space/kscience/kmath/nd/ShortRingOpsND {
+}
+
+public abstract class space/kscience/kmath/nd/Strides : space/kscience/kmath/nd/ShapeIndexer {
+ public fun ()V
+ public fun asSequence ()Lkotlin/sequences/Sequence;
public abstract fun getStrides ()[I
- public abstract fun index (I)[I
- public fun indices ()Lkotlin/sequences/Sequence;
public fun offset ([I)I
}
@@ -968,14 +1202,16 @@ public final class space/kscience/kmath/nd/Structure2DKt {
public static final fun as2D (Lspace/kscience/kmath/nd/StructureND;)Lspace/kscience/kmath/nd/Structure2D;
}
-public abstract interface class space/kscience/kmath/nd/StructureFeature {
+public abstract interface class space/kscience/kmath/nd/StructureFeature : space/kscience/kmath/misc/Feature {
}
-public abstract interface class space/kscience/kmath/nd/StructureND {
+public abstract interface class space/kscience/kmath/nd/StructureND : space/kscience/kmath/misc/Featured, space/kscience/kmath/nd/WithShape {
public static final field Companion Lspace/kscience/kmath/nd/StructureND$Companion;
- public abstract fun elements ()Lkotlin/sequences/Sequence;
+ public fun elements ()Lkotlin/sequences/Sequence;
public abstract fun get ([I)Ljava/lang/Object;
public fun getDimension ()I
+ public synthetic fun getFeature (Lkotlin/reflect/KClass;)Ljava/lang/Object;
+ public fun getFeature (Lkotlin/reflect/KClass;)Lspace/kscience/kmath/nd/StructureFeature;
public abstract fun getShape ()[I
}
@@ -987,14 +1223,25 @@ public final class space/kscience/kmath/nd/StructureND$Companion {
public static synthetic fun buffered$default (Lspace/kscience/kmath/nd/StructureND$Companion;Lspace/kscience/kmath/nd/Strides;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lspace/kscience/kmath/nd/BufferND;
public static synthetic fun buffered$default (Lspace/kscience/kmath/nd/StructureND$Companion;[ILkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lspace/kscience/kmath/nd/BufferND;
public final fun contentEquals (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Z
+ public final fun contentEquals (Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;D)Z
+ public static synthetic fun contentEquals$default (Lspace/kscience/kmath/nd/StructureND$Companion;Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;DILjava/lang/Object;)Z
public final fun toString (Lspace/kscience/kmath/nd/StructureND;)Ljava/lang/String;
}
public final class space/kscience/kmath/nd/StructureNDKt {
+ public static final fun contentEquals (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Z
+ public static final fun contentEquals (Lspace/kscience/kmath/linear/LinearSpace;Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Comparable;)Z
+ public static final fun contentEquals (Lspace/kscience/kmath/nd/AlgebraND;Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;)Z
+ public static final fun contentEquals (Lspace/kscience/kmath/nd/GroupOpsND;Lspace/kscience/kmath/nd/StructureND;Lspace/kscience/kmath/nd/StructureND;Ljava/lang/Comparable;)Z
public static final fun get (Lspace/kscience/kmath/nd/StructureND;[I)Ljava/lang/Object;
public static final fun mapInPlace (Lspace/kscience/kmath/nd/MutableStructureND;Lkotlin/jvm/functions/Function2;)V
}
+public abstract interface class space/kscience/kmath/nd/WithShape {
+ public fun getIndices ()Lspace/kscience/kmath/nd/ShapeIndexer;
+ public abstract fun getShape ()[I
+}
+
public abstract interface class space/kscience/kmath/operations/Algebra {
public fun binaryOperation (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
@@ -1004,21 +1251,16 @@ public abstract interface class space/kscience/kmath/operations/Algebra {
public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
}
-public final class space/kscience/kmath/operations/AlgebraElementsKt {
-}
-
public final class space/kscience/kmath/operations/AlgebraExtensionsKt {
- public static final fun abs (Lspace/kscience/kmath/operations/Ring;Ljava/lang/Comparable;)Ljava/lang/Comparable;
- public static final fun average (Lspace/kscience/kmath/operations/Ring;Ljava/lang/Iterable;)Ljava/lang/Object;
- public static final fun average (Lspace/kscience/kmath/operations/Ring;Lkotlin/sequences/Sequence;)Ljava/lang/Object;
- public static final fun averageWith (Ljava/lang/Iterable;Lspace/kscience/kmath/operations/Ring;)Ljava/lang/Object;
- public static final fun averageWith (Lkotlin/sequences/Sequence;Lspace/kscience/kmath/operations/Ring;)Ljava/lang/Object;
- public static final fun power (Lspace/kscience/kmath/operations/Field;Ljava/lang/Object;I)Ljava/lang/Object;
- public static final fun power-jXDDuk8 (Lspace/kscience/kmath/operations/Ring;Ljava/lang/Object;I)Ljava/lang/Object;
- public static final fun sum (Lspace/kscience/kmath/operations/Ring;Ljava/lang/Iterable;)Ljava/lang/Object;
- public static final fun sum (Lspace/kscience/kmath/operations/Ring;Lkotlin/sequences/Sequence;)Ljava/lang/Object;
- public static final fun sumWith (Ljava/lang/Iterable;Lspace/kscience/kmath/operations/Ring;)Ljava/lang/Object;
- public static final fun sumWith (Lkotlin/sequences/Sequence;Lspace/kscience/kmath/operations/Ring;)Ljava/lang/Object;
+ public static final fun abs (Lspace/kscience/kmath/operations/Group;Ljava/lang/Comparable;)Ljava/lang/Comparable;
+ public static final fun average (Lspace/kscience/kmath/operations/Group;Ljava/lang/Iterable;)Ljava/lang/Object;
+ public static final fun average (Lspace/kscience/kmath/operations/Group;Lkotlin/sequences/Sequence;)Ljava/lang/Object;
+ public static final fun averageWith (Ljava/lang/Iterable;Lspace/kscience/kmath/operations/Group;)Ljava/lang/Object;
+ public static final fun averageWith (Lkotlin/sequences/Sequence;Lspace/kscience/kmath/operations/Group;)Ljava/lang/Object;
+ public static final fun sum (Lspace/kscience/kmath/operations/Group;Ljava/lang/Iterable;)Ljava/lang/Object;
+ public static final fun sum (Lspace/kscience/kmath/operations/Group;Lkotlin/sequences/Sequence;)Ljava/lang/Object;
+ public static final fun sumWith (Ljava/lang/Iterable;Lspace/kscience/kmath/operations/Group;)Ljava/lang/Object;
+ public static final fun sumWith (Lkotlin/sequences/Sequence;Lspace/kscience/kmath/operations/Group;)Ljava/lang/Object;
}
public final class space/kscience/kmath/operations/AlgebraKt {
@@ -1061,7 +1303,7 @@ public final class space/kscience/kmath/operations/BigInt$Companion {
public final fun getZERO ()Lspace/kscience/kmath/operations/BigInt;
}
-public final class space/kscience/kmath/operations/BigIntField : space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumbersAddOperations, space/kscience/kmath/operations/ScaleOperations {
+public final class space/kscience/kmath/operations/BigIntField : space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumbersAddOps, space/kscience/kmath/operations/ScaleOperations {
public static final field INSTANCE Lspace/kscience/kmath/operations/BigIntField;
public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun add (Lspace/kscience/kmath/operations/BigInt;Lspace/kscience/kmath/operations/BigInt;)Lspace/kscience/kmath/operations/BigInt;
@@ -1085,9 +1327,12 @@ public final class space/kscience/kmath/operations/BigIntField : space/kscience/
public final class space/kscience/kmath/operations/BigIntKt {
public static final fun abs (Lspace/kscience/kmath/operations/BigInt;)Lspace/kscience/kmath/operations/BigInt;
- public static final fun bigInt (Lspace/kscience/kmath/nd/AlgebraND$Companion;[I)Lspace/kscience/kmath/nd/BufferedRingND;
public static final fun bigInt (Lspace/kscience/kmath/structures/Buffer$Companion;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
public static final fun bigInt (Lspace/kscience/kmath/structures/MutableBuffer$Companion;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/MutableBuffer;
+ public static final fun buffer (Lspace/kscience/kmath/operations/BigInt$Companion;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun getAlgebra (Lspace/kscience/kmath/operations/BigInt;)Lspace/kscience/kmath/operations/BigIntField;
+ public static final fun getNd (Lspace/kscience/kmath/operations/BigIntField;)Lspace/kscience/kmath/nd/BufferedRingOpsND;
+ public static final fun mutableBuffer (Lspace/kscience/kmath/operations/BigInt;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
public static final fun parseBigInteger (Ljava/lang/String;)Lspace/kscience/kmath/operations/BigInt;
public static final fun toBigInt (I)Lspace/kscience/kmath/operations/BigInt;
public static final fun toBigInt (J)Lspace/kscience/kmath/operations/BigInt;
@@ -1096,6 +1341,85 @@ public final class space/kscience/kmath/operations/BigIntKt {
public static final fun toBigInt-WZ4Q5Ns (I)Lspace/kscience/kmath/operations/BigInt;
}
+public abstract interface class space/kscience/kmath/operations/BufferAlgebra : space/kscience/kmath/operations/Algebra {
+ public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
+ public fun buffer (I[Ljava/lang/Object;)Lspace/kscience/kmath/structures/Buffer;
+ public abstract fun getBufferFactory ()Lkotlin/jvm/functions/Function2;
+ public abstract fun getElementAlgebra ()Lspace/kscience/kmath/operations/Algebra;
+ public fun map (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/structures/Buffer;
+ public fun mapIndexed (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/structures/Buffer;
+ public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
+ public fun zip (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function3;)Lspace/kscience/kmath/structures/Buffer;
+}
+
+public final class space/kscience/kmath/operations/BufferAlgebraKt {
+ public static final fun acos (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun acosh (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun asin (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun asinh (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun atan (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun atanh (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun buffer (Lspace/kscience/kmath/operations/BufferAlgebra;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun buffer (Lspace/kscience/kmath/operations/BufferAlgebra;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun buffer (Lspace/kscience/kmath/operations/BufferField;[Ljava/lang/Number;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun bufferAlgebra (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/operations/BufferFieldOps;
+ public static final fun cos (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun cosh (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun exp (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun getBufferAlgebra (Lspace/kscience/kmath/operations/DoubleField;)Lspace/kscience/kmath/operations/BufferFieldOps;
+ public static final fun getBufferAlgebra (Lspace/kscience/kmath/operations/ShortRing;)Lspace/kscience/kmath/operations/BufferRingOps;
+ public static final fun ln (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun pow (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Number;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun sin (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun sinh (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun tan (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun tanh (Lspace/kscience/kmath/operations/BufferAlgebra;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun withSize (Lspace/kscience/kmath/operations/BufferFieldOps;I)Lspace/kscience/kmath/operations/BufferField;
+}
+
+public final class space/kscience/kmath/operations/BufferField : space/kscience/kmath/operations/BufferFieldOps, space/kscience/kmath/operations/Field, space/kscience/kmath/operations/WithSize {
+ public fun (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;I)V
+ public synthetic fun getOne ()Ljava/lang/Object;
+ public fun getOne ()Lspace/kscience/kmath/structures/Buffer;
+ public fun getSize ()I
+ public synthetic fun getZero ()Ljava/lang/Object;
+ public fun getZero ()Lspace/kscience/kmath/structures/Buffer;
+}
+
+public class space/kscience/kmath/operations/BufferFieldOps : space/kscience/kmath/operations/BufferRingOps, space/kscience/kmath/operations/BufferAlgebra, space/kscience/kmath/operations/FieldOps, space/kscience/kmath/operations/ScaleOperations {
+ public fun (Lspace/kscience/kmath/operations/Field;Lkotlin/jvm/functions/Function2;)V
+ public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
+ public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun divide (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
+ public fun scale (Lspace/kscience/kmath/structures/Buffer;D)Lspace/kscience/kmath/structures/Buffer;
+ public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun unaryMinus (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+}
+
+public final class space/kscience/kmath/operations/BufferOperationKt {
+ public static final fun asIterable (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/Iterable;
+ public static final fun asSequence (Lspace/kscience/kmath/structures/Buffer;)Lkotlin/sequences/Sequence;
+ public static final fun fold (Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
+ public static final fun map (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun toList (Lspace/kscience/kmath/structures/Buffer;)Ljava/util/List;
+}
+
+public class space/kscience/kmath/operations/BufferRingOps : space/kscience/kmath/operations/BufferAlgebra, space/kscience/kmath/operations/RingOps {
+ public fun (Lspace/kscience/kmath/operations/Ring;Lkotlin/jvm/functions/Function2;)V
+ public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun add (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
+ public fun getBufferFactory ()Lkotlin/jvm/functions/Function2;
+ public synthetic fun getElementAlgebra ()Lspace/kscience/kmath/operations/Algebra;
+ public fun getElementAlgebra ()Lspace/kscience/kmath/operations/Ring;
+ public synthetic fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun multiply (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun unaryMinus (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
+}
+
public final class space/kscience/kmath/operations/ByteRing : space/kscience/kmath/operations/Norm, space/kscience/kmath/operations/NumericAlgebra, space/kscience/kmath/operations/Ring {
public static final field INSTANCE Lspace/kscience/kmath/operations/ByteRing;
public fun add (BB)Ljava/lang/Byte;
@@ -1120,6 +1444,90 @@ public final class space/kscience/kmath/operations/ByteRing : space/kscience/kma
public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
}
+public final class space/kscience/kmath/operations/DoubleBufferField : space/kscience/kmath/operations/DoubleBufferOps, space/kscience/kmath/operations/ExtendedField {
+ public fun (I)V
+ public synthetic fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun acosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun asinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun atanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun cosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun getOne ()Ljava/lang/Object;
+ public fun getOne ()Lspace/kscience/kmath/structures/Buffer;
+ public final fun getSize ()I
+ public synthetic fun getZero ()Ljava/lang/Object;
+ public fun getZero ()Lspace/kscience/kmath/structures/Buffer;
+ public synthetic fun power (Ljava/lang/Object;Ljava/lang/Number;)Ljava/lang/Object;
+ public fun power-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Number;)[D
+ public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun tanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
+}
+
+public abstract class space/kscience/kmath/operations/DoubleBufferOps : space/kscience/kmath/operations/BufferAlgebra, space/kscience/kmath/operations/ExtendedFieldOps, space/kscience/kmath/operations/Norm {
+ public static final field Companion Lspace/kscience/kmath/operations/DoubleBufferOps$Companion;
+ public fun ()V
+ public synthetic fun acos (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun acos-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun acosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun add-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun asin (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun asin-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun asinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun atan (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun atan-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun atanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
+ public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun cos-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun cosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun divide-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun exp (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun exp-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public fun getBufferFactory ()Lkotlin/jvm/functions/Function2;
+ public synthetic fun getElementAlgebra ()Lspace/kscience/kmath/operations/Algebra;
+ public fun getElementAlgebra ()Lspace/kscience/kmath/operations/DoubleField;
+ public synthetic fun ln (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun ln-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun map (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;)Lspace/kscience/kmath/structures/Buffer;
+ public fun map-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;)[D
+ public synthetic fun minus (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun minus-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun multiply-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun norm (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun norm (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/Double;
+ public synthetic fun plus (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+ public fun plus-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
+ public fun scale-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;D)[D
+ public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sin-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun tan-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun tanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun unaryMinus-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+ public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
+}
+
+public final class space/kscience/kmath/operations/DoubleBufferOps$Companion : space/kscience/kmath/operations/DoubleBufferOps {
+ public final fun mapInline-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function1;)[D
+}
+
public final class space/kscience/kmath/operations/DoubleField : space/kscience/kmath/operations/ExtendedField, space/kscience/kmath/operations/Norm, space/kscience/kmath/operations/ScaleOperations {
public static final field INSTANCE Lspace/kscience/kmath/operations/DoubleField;
public fun acos (D)Ljava/lang/Double;
@@ -1171,6 +1579,8 @@ public final class space/kscience/kmath/operations/DoubleField : space/kscience/
public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
public fun sinh (D)Ljava/lang/Double;
public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sqrt (D)Ljava/lang/Double;
+ public synthetic fun sqrt (Ljava/lang/Object;)Ljava/lang/Object;
public fun tan (D)Ljava/lang/Double;
public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
public fun tanh (D)Ljava/lang/Double;
@@ -1181,6 +1591,12 @@ public final class space/kscience/kmath/operations/DoubleField : space/kscience/
public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
}
+public final class space/kscience/kmath/operations/DoubleL2Norm : space/kscience/kmath/operations/Norm {
+ public static final field INSTANCE Lspace/kscience/kmath/operations/DoubleL2Norm;
+ public synthetic fun norm (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun norm (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/Double;
+}
+
public abstract interface class space/kscience/kmath/operations/ExponentialOperations : space/kscience/kmath/operations/Algebra {
public static final field ACOSH_OPERATION Ljava/lang/String;
public static final field ASINH_OPERATION Ljava/lang/String;
@@ -1212,7 +1628,7 @@ public final class space/kscience/kmath/operations/ExponentialOperations$Compani
public static final field TANH_OPERATION Ljava/lang/String;
}
-public abstract interface class space/kscience/kmath/operations/ExtendedField : space/kscience/kmath/operations/ExtendedFieldOperations, space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumericAlgebra, space/kscience/kmath/operations/ScaleOperations {
+public abstract interface class space/kscience/kmath/operations/ExtendedField : space/kscience/kmath/operations/ExtendedFieldOps, space/kscience/kmath/operations/Field, space/kscience/kmath/operations/NumericAlgebra, space/kscience/kmath/operations/PowerOperations {
public fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
public fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
public fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
@@ -1220,27 +1636,33 @@ public abstract interface class space/kscience/kmath/operations/ExtendedField :
public fun rightSideNumberOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
public fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
public fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
}
-public abstract interface class space/kscience/kmath/operations/ExtendedFieldOperations : space/kscience/kmath/operations/ExponentialOperations, space/kscience/kmath/operations/FieldOperations, space/kscience/kmath/operations/PowerOperations, space/kscience/kmath/operations/TrigonometricOperations {
+public abstract interface class space/kscience/kmath/operations/ExtendedFieldOps : space/kscience/kmath/operations/ExponentialOperations, space/kscience/kmath/operations/FieldOps, space/kscience/kmath/operations/ScaleOperations, space/kscience/kmath/operations/TrigonometricOperations {
public fun tan (Ljava/lang/Object;)Ljava/lang/Object;
public fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
public fun unaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function1;
}
-public abstract interface class space/kscience/kmath/operations/Field : space/kscience/kmath/operations/FieldOperations, space/kscience/kmath/operations/NumericAlgebra, space/kscience/kmath/operations/Ring, space/kscience/kmath/operations/ScaleOperations {
+public abstract interface class space/kscience/kmath/operations/Field : space/kscience/kmath/operations/FieldOps, space/kscience/kmath/operations/NumericAlgebra, space/kscience/kmath/operations/Ring, space/kscience/kmath/operations/ScaleOperations {
+ public static final field Companion Lspace/kscience/kmath/operations/Field$Companion;
public fun number (Ljava/lang/Number;)Ljava/lang/Object;
+ public fun power (Ljava/lang/Object;I)Ljava/lang/Object;
}
-public abstract interface class space/kscience/kmath/operations/FieldOperations : space/kscience/kmath/operations/RingOperations {
- public static final field Companion Lspace/kscience/kmath/operations/FieldOperations$Companion;
+public final class space/kscience/kmath/operations/Field$Companion {
+}
+
+public abstract interface class space/kscience/kmath/operations/FieldOps : space/kscience/kmath/operations/RingOps {
+ public static final field Companion Lspace/kscience/kmath/operations/FieldOps$Companion;
public static final field DIV_OPERATION Ljava/lang/String;
public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
public fun div (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
}
-public final class space/kscience/kmath/operations/FieldOperations$Companion {
+public final class space/kscience/kmath/operations/FieldOps$Companion {
public static final field DIV_OPERATION Ljava/lang/String;
}
@@ -1295,6 +1717,8 @@ public final class space/kscience/kmath/operations/FloatField : space/kscience/k
public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
public fun sinh (F)Ljava/lang/Float;
public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
+ public fun sqrt (F)Ljava/lang/Float;
+ public synthetic fun sqrt (Ljava/lang/Object;)Ljava/lang/Object;
public fun tan (F)Ljava/lang/Float;
public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
public fun tanh (F)Ljava/lang/Float;
@@ -1305,12 +1729,12 @@ public final class space/kscience/kmath/operations/FloatField : space/kscience/k
public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
}
-public abstract interface class space/kscience/kmath/operations/Group : space/kscience/kmath/operations/GroupOperations {
+public abstract interface class space/kscience/kmath/operations/Group : space/kscience/kmath/operations/GroupOps {
public abstract fun getZero ()Ljava/lang/Object;
}
-public abstract interface class space/kscience/kmath/operations/GroupOperations : space/kscience/kmath/operations/Algebra {
- public static final field Companion Lspace/kscience/kmath/operations/GroupOperations$Companion;
+public abstract interface class space/kscience/kmath/operations/GroupOps : space/kscience/kmath/operations/Algebra {
+ public static final field Companion Lspace/kscience/kmath/operations/GroupOps$Companion;
public static final field MINUS_OPERATION Ljava/lang/String;
public static final field PLUS_OPERATION Ljava/lang/String;
public abstract fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -1322,7 +1746,7 @@ public abstract interface class space/kscience/kmath/operations/GroupOperations
public fun unaryPlus (Ljava/lang/Object;)Ljava/lang/Object;
}
-public final class space/kscience/kmath/operations/GroupOperations$Companion {
+public final class space/kscience/kmath/operations/GroupOps$Companion {
public static final field MINUS_OPERATION Ljava/lang/String;
public static final field PLUS_OPERATION Ljava/lang/String;
}
@@ -1351,6 +1775,10 @@ public final class space/kscience/kmath/operations/IntRing : space/kscience/kmat
public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
}
+public final class space/kscience/kmath/operations/IsIntegerKt {
+ public static final fun isInteger (Ljava/lang/Number;)Z
+}
+
public final class space/kscience/kmath/operations/JBigDecimalField : space/kscience/kmath/operations/JBigDecimalFieldBase {
public static final field Companion Lspace/kscience/kmath/operations/JBigDecimalField$Companion;
public fun ()V
@@ -1441,6 +1869,15 @@ public abstract interface class space/kscience/kmath/operations/Norm {
public abstract fun norm (Ljava/lang/Object;)Ljava/lang/Object;
}
+public final class space/kscience/kmath/operations/NumbersKt {
+ public static final fun getAlgebra (Lkotlin/jvm/internal/ByteCompanionObject;)Lspace/kscience/kmath/operations/ByteRing;
+ public static final fun getAlgebra (Lkotlin/jvm/internal/DoubleCompanionObject;)Lspace/kscience/kmath/operations/DoubleField;
+ public static final fun getAlgebra (Lkotlin/jvm/internal/FloatCompanionObject;)Lspace/kscience/kmath/operations/FloatField;
+ public static final fun getAlgebra (Lkotlin/jvm/internal/IntCompanionObject;)Lspace/kscience/kmath/operations/IntRing;
+ public static final fun getAlgebra (Lkotlin/jvm/internal/LongCompanionObject;)Lspace/kscience/kmath/operations/LongRing;
+ public static final fun getAlgebra (Lkotlin/jvm/internal/ShortCompanionObject;)Lspace/kscience/kmath/operations/ShortRing;
+}
+
public abstract interface class space/kscience/kmath/operations/NumericAlgebra : space/kscience/kmath/operations/Algebra {
public fun bindSymbolOrNull (Ljava/lang/String;)Ljava/lang/Object;
public fun leftSideNumberOperation (Ljava/lang/String;Ljava/lang/Number;Ljava/lang/Object;)Ljava/lang/Object;
@@ -1455,10 +1892,7 @@ public final class space/kscience/kmath/operations/NumericAlgebraKt {
public static final fun getPi (Lspace/kscience/kmath/operations/NumericAlgebra;)Ljava/lang/Object;
}
-public final class space/kscience/kmath/operations/OptionalOperationsKt {
-}
-
-public abstract interface class space/kscience/kmath/operations/PowerOperations : space/kscience/kmath/operations/Algebra {
+public abstract interface class space/kscience/kmath/operations/PowerOperations : space/kscience/kmath/operations/FieldOps {
public static final field Companion Lspace/kscience/kmath/operations/PowerOperations$Companion;
public static final field POW_OPERATION Ljava/lang/String;
public static final field SQRT_OPERATION Ljava/lang/String;
@@ -1472,19 +1906,24 @@ public final class space/kscience/kmath/operations/PowerOperations$Companion {
public static final field SQRT_OPERATION Ljava/lang/String;
}
-public abstract interface class space/kscience/kmath/operations/Ring : space/kscience/kmath/operations/Group, space/kscience/kmath/operations/RingOperations {
+public abstract interface class space/kscience/kmath/operations/Ring : space/kscience/kmath/operations/Group, space/kscience/kmath/operations/RingOps {
+ public static final field Companion Lspace/kscience/kmath/operations/Ring$Companion;
public abstract fun getOne ()Ljava/lang/Object;
+ public fun power-Qn1smSk (Ljava/lang/Object;I)Ljava/lang/Object;
}
-public abstract interface class space/kscience/kmath/operations/RingOperations : space/kscience/kmath/operations/GroupOperations {
- public static final field Companion Lspace/kscience/kmath/operations/RingOperations$Companion;
+public final class space/kscience/kmath/operations/Ring$Companion {
+}
+
+public abstract interface class space/kscience/kmath/operations/RingOps : space/kscience/kmath/operations/GroupOps {
+ public static final field Companion Lspace/kscience/kmath/operations/RingOps$Companion;
public static final field TIMES_OPERATION Ljava/lang/String;
public fun binaryOperationFunction (Ljava/lang/String;)Lkotlin/jvm/functions/Function2;
public abstract fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
public fun times (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
}
-public final class space/kscience/kmath/operations/RingOperations$Companion {
+public final class space/kscience/kmath/operations/RingOps$Companion {
public static final field TIMES_OPERATION Ljava/lang/String;
}
@@ -1544,6 +1983,10 @@ public final class space/kscience/kmath/operations/TrigonometricOperations$Compa
public static final field TAN_OPERATION Ljava/lang/String;
}
+public abstract interface class space/kscience/kmath/operations/WithSize {
+ public abstract fun getSize ()I
+}
+
public final class space/kscience/kmath/structures/ArrayBuffer : space/kscience/kmath/structures/MutableBuffer {
public fun ([Ljava/lang/Object;)V
public fun copy ()Lspace/kscience/kmath/structures/MutableBuffer;
@@ -1551,6 +1994,11 @@ public final class space/kscience/kmath/structures/ArrayBuffer : space/kscience/
public fun getSize ()I
public fun iterator ()Ljava/util/Iterator;
public fun set (ILjava/lang/Object;)V
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class space/kscience/kmath/structures/ArrayBufferKt {
+ public static final fun asBuffer ([Ljava/lang/Object;)Lspace/kscience/kmath/structures/ArrayBuffer;
}
public abstract interface class space/kscience/kmath/structures/Buffer {
@@ -1558,31 +2006,25 @@ public abstract interface class space/kscience/kmath/structures/Buffer {
public abstract fun get (I)Ljava/lang/Object;
public abstract fun getSize ()I
public abstract fun iterator ()Ljava/util/Iterator;
+ public abstract fun toString ()Ljava/lang/String;
}
public final class space/kscience/kmath/structures/Buffer$Companion {
public final fun auto (Lkotlin/reflect/KClass;ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
public final fun boxing (ILkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
public final fun contentEquals (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)Z
+ public final fun toString (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/String;
}
public final class space/kscience/kmath/structures/BufferKt {
- public static final fun asBuffer (Ljava/util/List;)Lspace/kscience/kmath/structures/ListBuffer;
- public static final fun asBuffer ([Ljava/lang/Object;)Lspace/kscience/kmath/structures/ArrayBuffer;
- public static final fun asMutableBuffer (Ljava/util/List;)Ljava/util/List;
public static final fun asReadOnly (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
+ public static final fun first (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/Object;
public static final fun getIndices (Lspace/kscience/kmath/structures/Buffer;)Lkotlin/ranges/IntRange;
-}
-
-public final class space/kscience/kmath/structures/BufferOperationKt {
- public static final fun asIterable (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/Iterable;
- public static final fun asSequence (Lspace/kscience/kmath/structures/Buffer;)Lkotlin/sequences/Sequence;
- public static final fun fold (Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
- public static final fun map (Lspace/kscience/kmath/structures/Buffer;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Lspace/kscience/kmath/structures/Buffer;
- public static final fun toList (Lspace/kscience/kmath/structures/Buffer;)Ljava/util/List;
+ public static final fun last (Lspace/kscience/kmath/structures/Buffer;)Ljava/lang/Object;
}
public final class space/kscience/kmath/structures/DoubleBuffer : space/kscience/kmath/structures/MutableBuffer {
+ public static final field Companion Lspace/kscience/kmath/structures/DoubleBuffer$Companion;
public static final synthetic fun box-impl ([D)Lspace/kscience/kmath/structures/DoubleBuffer;
public static fun constructor-impl ([D)[D
public synthetic fun copy ()Lspace/kscience/kmath/structures/MutableBuffer;
@@ -1610,97 +2052,8 @@ public final class space/kscience/kmath/structures/DoubleBuffer : space/kscience
public final synthetic fun unbox-impl ()[D
}
-public final class space/kscience/kmath/structures/DoubleBufferField : space/kscience/kmath/operations/ExtendedField {
- public fun (I)V
- public synthetic fun acos (Ljava/lang/Object;)Ljava/lang/Object;
- public fun acos-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun acosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- public fun add-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun asin (Ljava/lang/Object;)Ljava/lang/Object;
- public fun asin-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun asinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun atan (Ljava/lang/Object;)Ljava/lang/Object;
- public fun atan-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun atanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
- public fun cos-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun cosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- public fun divide-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun exp (Ljava/lang/Object;)Ljava/lang/Object;
- public fun exp-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun getOne ()Ljava/lang/Object;
- public fun getOne ()Lspace/kscience/kmath/structures/Buffer;
- public final fun getSize ()I
- public synthetic fun getZero ()Ljava/lang/Object;
- public fun getZero ()Lspace/kscience/kmath/structures/Buffer;
- public synthetic fun ln (Ljava/lang/Object;)Ljava/lang/Object;
- public fun ln-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- public fun multiply-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun number (Ljava/lang/Number;)Ljava/lang/Object;
- public fun number (Ljava/lang/Number;)Lspace/kscience/kmath/structures/Buffer;
- public synthetic fun power (Ljava/lang/Object;Ljava/lang/Number;)Ljava/lang/Object;
- public fun power-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Number;)[D
- public synthetic fun scale (Ljava/lang/Object;D)Ljava/lang/Object;
- public fun scale-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;D)[D
- public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
- public fun sin-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun sinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
- public fun tan-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun tanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
- public fun unaryMinus (Lspace/kscience/kmath/structures/Buffer;)Lspace/kscience/kmath/structures/Buffer;
-}
-
-public final class space/kscience/kmath/structures/DoubleBufferFieldOperations : space/kscience/kmath/operations/ExtendedFieldOperations {
- public static final field INSTANCE Lspace/kscience/kmath/structures/DoubleBufferFieldOperations;
- public synthetic fun acos (Ljava/lang/Object;)Ljava/lang/Object;
- public fun acos-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun acosh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun acosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun add (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- public fun add-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun asin (Ljava/lang/Object;)Ljava/lang/Object;
- public fun asin-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun asinh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun asinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun atan (Ljava/lang/Object;)Ljava/lang/Object;
- public fun atan-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun atanh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun atanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun cos (Ljava/lang/Object;)Ljava/lang/Object;
- public fun cos-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun cosh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun cosh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun divide (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- public fun divide-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun exp (Ljava/lang/Object;)Ljava/lang/Object;
- public fun exp-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun ln (Ljava/lang/Object;)Ljava/lang/Object;
- public fun ln-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- public fun multiply-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun power (Ljava/lang/Object;Ljava/lang/Number;)Ljava/lang/Object;
- public fun power-CZ9oacQ (Lspace/kscience/kmath/structures/Buffer;Ljava/lang/Number;)[D
- public synthetic fun sin (Ljava/lang/Object;)Ljava/lang/Object;
- public fun sin-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun sinh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun sinh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun tan (Ljava/lang/Object;)Ljava/lang/Object;
- public fun tan-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun tanh (Ljava/lang/Object;)Ljava/lang/Object;
- public fun tanh-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
- public synthetic fun unaryMinus (Ljava/lang/Object;)Ljava/lang/Object;
- public fun unaryMinus-Udx-57Q (Lspace/kscience/kmath/structures/Buffer;)[D
+public final class space/kscience/kmath/structures/DoubleBuffer$Companion {
+ public final fun zero-Udx-57Q (I)[D
}
public final class space/kscience/kmath/structures/DoubleBufferKt {
@@ -1731,6 +2084,7 @@ public final class space/kscience/kmath/structures/FlaggedDoubleBuffer : space/k
public fun getSize ()I
public final fun getValues ()[D
public fun iterator ()Ljava/util/Iterator;
+ public fun toString ()Ljava/lang/String;
}
public final class space/kscience/kmath/structures/FloatBuffer : space/kscience/kmath/structures/MutableBuffer {
@@ -1808,6 +2162,12 @@ public final class space/kscience/kmath/structures/ListBuffer : space/kscience/k
public final fun getList ()Ljava/util/List;
public fun getSize ()I
public fun iterator ()Ljava/util/Iterator;
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class space/kscience/kmath/structures/ListBufferKt {
+ public static final fun asBuffer (Ljava/util/List;)Lspace/kscience/kmath/structures/ListBuffer;
+ public static final fun asMutableBuffer (Ljava/util/List;)Ljava/util/List;
}
public final class space/kscience/kmath/structures/LongBuffer : space/kscience/kmath/structures/MutableBuffer {
@@ -1852,6 +2212,7 @@ public class space/kscience/kmath/structures/MemoryBuffer : space/kscience/kmath
public fun getSize ()I
protected final fun getSpec ()Lspace/kscience/kmath/memory/MemorySpec;
public fun iterator ()Ljava/util/Iterator;
+ public fun toString ()Ljava/lang/String;
}
public final class space/kscience/kmath/structures/MemoryBuffer$Companion {
@@ -1981,5 +2342,6 @@ public final class space/kscience/kmath/structures/VirtualBuffer : space/kscienc
public fun get (I)Ljava/lang/Object;
public fun getSize ()I
public fun iterator ()Ljava/util/Iterator;
+ public fun toString ()Ljava/lang/String;
}
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/Domain1D.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/Domain1D.kt
new file mode 100644
index 000000000..3d531349c
--- /dev/null
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/Domain1D.kt
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2018-2021 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.domains
+
+import space.kscience.kmath.linear.Point
+import space.kscience.kmath.misc.UnstableKMathAPI
+
+@UnstableKMathAPI
+public abstract class Domain1D>(public val range: ClosedRange) : Domain {
+ override val dimension: Int get() = 1
+
+ public operator fun contains(value: T): Boolean = range.contains(value)
+
+ override operator fun contains(point: Point): Boolean {
+ require(point.size == 0)
+ return contains(point[0])
+ }
+}
+
+@UnstableKMathAPI
+public class DoubleDomain1D(
+ @Suppress("CanBeParameter") public val doubleRange: ClosedFloatingPointRange,
+) : Domain1D(doubleRange), DoubleDomain {
+ override fun getLowerBound(num: Int): Double {
+ require(num == 0)
+ return range.start
+ }
+
+ override fun getUpperBound(num: Int): Double {
+ require(num == 0)
+ return range.endInclusive
+ }
+
+ override fun volume(): Double = range.endInclusive - range.start
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other == null || this::class != other::class) return false
+
+ other as DoubleDomain1D
+
+ if (doubleRange != other.doubleRange) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = doubleRange.hashCode()
+
+ override fun toString(): String = doubleRange.toString()
+
+
+}
+
+@UnstableKMathAPI
+public val Domain1D.center: Double
+ get() = (range.endInclusive + range.start) / 2
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/HyperSquareDomain.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/HyperSquareDomain.kt
index bd5514623..485416a69 100644
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/HyperSquareDomain.kt
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/HyperSquareDomain.kt
@@ -7,18 +7,28 @@ package space.kscience.kmath.domains
import space.kscience.kmath.linear.Point
import space.kscience.kmath.misc.UnstableKMathAPI
import space.kscience.kmath.structures.Buffer
+import space.kscience.kmath.structures.DoubleBuffer
import space.kscience.kmath.structures.indices
/**
- *
- * HyperSquareDomain class.
- *
- * @author Alexander Nozik
+ * A hyper-square (or hyper-cube) real-space domain. It is formed by a [Buffer] of [lower] boundaries
+ * and a [Buffer] of upper boundaries. Upper should be greater or equals than lower.
*/
@UnstableKMathAPI
-public class HyperSquareDomain(private val lower: Buffer, private val upper: Buffer) : DoubleDomain {
+public class HyperSquareDomain(public val lower: Buffer, public val upper: Buffer) : DoubleDomain {
+ init {
+ require(lower.size == upper.size) {
+ "Domain borders size mismatch. Lower borders size is ${lower.size}, but upper borders size is ${upper.size}."
+ }
+ require(lower.indices.all { lower[it] <= upper[it] }) {
+ "Domain borders order mismatch. Lower borders must be less or equals than upper borders."
+ }
+ }
+
override val dimension: Int get() = lower.size
+ public val center: DoubleBuffer get() = DoubleBuffer(dimension) { (lower[it] + upper[it]) / 2.0 }
+
override operator fun contains(point: Point): Boolean = point.indices.all { i ->
point[i] in lower[i]..upper[i]
}
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/UnivariateDomain.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/UnivariateDomain.kt
deleted file mode 100644
index 9020ef8cb..000000000
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/domains/UnivariateDomain.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2018-2021 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.domains
-
-import space.kscience.kmath.linear.Point
-import space.kscience.kmath.misc.UnstableKMathAPI
-
-@UnstableKMathAPI
-public class UnivariateDomain(public val range: ClosedFloatingPointRange) : DoubleDomain {
- override val dimension: Int get() = 1
-
- public operator fun contains(d: Double): Boolean = range.contains(d)
-
- override operator fun contains(point: Point): Boolean {
- require(point.size == 0)
- return contains(point[0])
- }
-
- override fun getLowerBound(num: Int): Double {
- require(num == 0)
- return range.start
- }
-
- override fun getUpperBound(num: Int): Double {
- require(num == 0)
- return range.endInclusive
- }
-
- override fun volume(): Double = range.endInclusive - range.start
-}
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/misc/sorting.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/misc/sorting.kt
index a144e49b4..dc5421136 100644
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/misc/sorting.kt
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/misc/sorting.kt
@@ -3,43 +3,71 @@
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
*/
+
package space.kscience.kmath.misc
-import kotlin.comparisons.*
import space.kscience.kmath.structures.Buffer
+import space.kscience.kmath.structures.VirtualBuffer
/**
- * Return a new list filled with buffer indices. Indice order is defined by sorting associated buffer value.
- * This feature allows to sort buffer values without reordering its content.
+ * Return a new array filled with buffer indices. Indices order is defined by sorting associated buffer value.
+ * This feature allows sorting buffer values without reordering its content.
*
- * @return List of buffer indices, sorted by associated value.
+ * @return Buffer indices, sorted by associated value.
*/
-@PerformancePitfall
@UnstableKMathAPI
-public fun > Buffer.permSort() : IntArray = _permSortWith(compareBy { get(it) })
+public fun > Buffer.indicesSorted(): IntArray = permSortIndicesWith(compareBy { get(it) })
+
+/**
+ * Create a zero-copy virtual buffer that contains the same elements but in ascending order
+ */
+@OptIn(UnstableKMathAPI::class)
+public fun > Buffer.sorted(): Buffer {
+ val permutations = indicesSorted()
+ return VirtualBuffer(size) { this[permutations[it]] }
+}
-@PerformancePitfall
@UnstableKMathAPI
-public fun > Buffer.permSortDescending() : IntArray = _permSortWith(compareByDescending { get(it) })
+public fun > Buffer.indicesSortedDescending(): IntArray =
+ permSortIndicesWith(compareByDescending { get(it) })
+
+/**
+ * Create a zero-copy virtual buffer that contains the same elements but in descending order
+ */
+@OptIn(UnstableKMathAPI::class)
+public fun > Buffer.sortedDescending(): Buffer {
+ val permutations = indicesSortedDescending()
+ return VirtualBuffer(size) { this[permutations[it]] }
+}
-@PerformancePitfall
@UnstableKMathAPI
-public fun > Buffer.permSortBy(selector: (V) -> C) : IntArray = _permSortWith(compareBy { selector(get(it)) })
+public fun > Buffer.indicesSortedBy(selector: (V) -> C): IntArray =
+ permSortIndicesWith(compareBy { selector(get(it)) })
+
+@OptIn(UnstableKMathAPI::class)
+public fun > Buffer.sortedBy(selector: (V) -> C): Buffer {
+ val permutations = indicesSortedBy(selector)
+ return VirtualBuffer(size) { this[permutations[it]] }
+}
-@PerformancePitfall
@UnstableKMathAPI
-public fun > Buffer.permSortByDescending(selector: (V) -> C) : IntArray = _permSortWith(compareByDescending { selector(get(it)) })
+public fun > Buffer.indicesSortedByDescending(selector: (V) -> C): IntArray =
+ permSortIndicesWith(compareByDescending { selector(get(it)) })
+
+@OptIn(UnstableKMathAPI::class)
+public fun > Buffer.sortedByDescending(selector: (V) -> C): Buffer {
+ val permutations = indicesSortedByDescending(selector)
+ return VirtualBuffer(size) { this[permutations[it]] }
+}
-@PerformancePitfall
@UnstableKMathAPI
-public fun Buffer.permSortWith(comparator : Comparator) : IntArray = _permSortWith { i1, i2 -> comparator.compare(get(i1), get(i2)) }
+public fun Buffer.indicesSortedWith(comparator: Comparator): IntArray =
+ permSortIndicesWith { i1, i2 -> comparator.compare(get(i1), get(i2)) }
-@PerformancePitfall
-@UnstableKMathAPI
-private fun Buffer._permSortWith(comparator : Comparator) : IntArray {
- if (size < 2) return IntArray(size)
+private fun Buffer.permSortIndicesWith(comparator: Comparator): IntArray {
+ if (size < 2) return IntArray(size) { 0 }
- /* TODO: optimisation : keep a constant big array of indices (Ex: from 0 to 4096), then create indice
+ /* TODO: optimisation : keep a constant big array of indices (Ex: from 0 to 4096), then create indices
* arrays more efficiently by copying subpart of cached one. For bigger needs, we could copy entire
* cached array, then fill remaining indices manually. Not done for now, because:
* 1. doing it right would require some statistics about common used buffer sizes.
@@ -53,3 +81,12 @@ private fun Buffer._permSortWith(comparator : Comparator) : IntArray
*/
return packedIndices.sortedWith(comparator).toIntArray()
}
+
+/**
+ * Checks that the [Buffer] is sorted (ascending) and throws [IllegalArgumentException] if it is not.
+ */
+public fun > Buffer.requireSorted() {
+ for (i in 0..(size - 2)) {
+ require(get(i + 1) >= get(i)) { "The buffer is not sorted at index $i" }
+ }
+}
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/AlgebraND.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/AlgebraND.kt
index a071c1eb3..a9712e870 100644
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/AlgebraND.kt
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/AlgebraND.kt
@@ -194,7 +194,7 @@ public interface RingOpsND> : RingOps>, Gro
override fun multiply(left: StructureND, right: StructureND): StructureND =
zip(left, right) { aValue, bValue -> multiply(aValue, bValue) }
- //TODO move to extensions after KEEP-176
+ //TODO move to extensions with context receivers
/**
* Multiplies an ND structure by an element of it.
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/BufferND.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/BufferND.kt
index 539499794..2401f6319 100644
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/BufferND.kt
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/BufferND.kt
@@ -32,18 +32,23 @@ public open class BufferND(
/**
* Transform structure to a new structure using provided [BufferFactory] and optimizing if argument is [BufferND]
*/
-public inline fun StructureND.mapToBuffer(
- factory: BufferFactory = Buffer.Companion::auto,
+public inline fun StructureND.mapToBuffer(
+ factory: BufferFactory,
crossinline transform: (T) -> R,
-): BufferND {
- return if (this is BufferND)
- BufferND(this.indices, factory.invoke(indices.linearSize) { transform(buffer[it]) })
- else {
- val strides = DefaultStrides(shape)
- BufferND(strides, factory.invoke(strides.linearSize) { transform(get(strides.index(it))) })
- }
+): BufferND = if (this is BufferND)
+ BufferND(this.indices, factory.invoke(indices.linearSize) { transform(buffer[it]) })
+else {
+ val strides = DefaultStrides(shape)
+ BufferND(strides, factory.invoke(strides.linearSize) { transform(get(strides.index(it))) })
}
+/**
+ * Transform structure to a new structure using inferred [BufferFactory]
+ */
+public inline fun StructureND.mapToBuffer(
+ crossinline transform: (T) -> R,
+): BufferND = mapToBuffer(Buffer.Companion::auto, transform)
+
/**
* Represents [MutableStructureND] over [MutableBuffer].
*
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/operations/BufferAlgebra.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/operations/BufferAlgebra.kt
index 653552044..51fff8b69 100644
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/operations/BufferAlgebra.kt
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/operations/BufferAlgebra.kt
@@ -5,7 +5,6 @@
package space.kscience.kmath.operations
-import space.kscience.kmath.misc.UnstableKMathAPI
import space.kscience.kmath.structures.Buffer
import space.kscience.kmath.structures.BufferFactory
import space.kscience.kmath.structures.DoubleBuffer
@@ -53,7 +52,7 @@ public interface BufferAlgebra> : Algebra> {
*/
private inline fun > BufferAlgebra.mapInline(
buffer: Buffer,
- crossinline block: A.(T) -> T
+ crossinline block: A.(T) -> T,
): Buffer = bufferFactory(buffer.size) { elementAlgebra.block(buffer[it]) }
/**
@@ -61,7 +60,7 @@ private inline fun > BufferAlgebra.mapInline(
*/
private inline fun > BufferAlgebra.mapIndexedInline(
buffer: Buffer,
- crossinline block: A.(index: Int, arg: T) -> T
+ crossinline block: A.(index: Int, arg: T) -> T,
): Buffer = bufferFactory(buffer.size) { elementAlgebra.block(it, buffer[it]) }
/**
@@ -70,7 +69,7 @@ private inline fun > BufferAlgebra.mapIndexedInline(
private inline fun > BufferAlgebra.zipInline(
l: Buffer,
r: Buffer,
- crossinline block: A.(l: T, r: T) -> T
+ crossinline block: A.(l: T, r: T) -> T,
): Buffer {
require(l.size == r.size) { "Incompatible buffer sizes. left: ${l.size}, right: ${r.size}" }
return bufferFactory(l.size) { elementAlgebra.block(l[it], r[it]) }
@@ -127,13 +126,13 @@ public fun > BufferAlgebra.atanh(arg: Buff
mapInline(arg) { atanh(it) }
public fun > BufferAlgebra.pow(arg: Buffer, pow: Number): Buffer =
- mapInline(arg) {it.pow(pow) }
+ mapInline(arg) { it.pow(pow) }
-public open class BufferRingOps>(
+public open class BufferRingOps>(
override val elementAlgebra: A,
override val bufferFactory: BufferFactory,
-) : BufferAlgebra, RingOps>{
+) : BufferAlgebra, RingOps> {
override fun add(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l + r }
override fun multiply(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l * r }
@@ -152,10 +151,11 @@ public val ShortRing.bufferAlgebra: BufferRingOps
public open class BufferFieldOps>(
elementAlgebra: A,
bufferFactory: BufferFactory,
-) : BufferRingOps(elementAlgebra, bufferFactory), BufferAlgebra, FieldOps>, ScaleOperations> {
+) : BufferRingOps(elementAlgebra, bufferFactory), BufferAlgebra, FieldOps>,
+ ScaleOperations> {
- override fun add(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l + r }
- override fun multiply(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l * r }
+// override fun add(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l + r }
+// override fun multiply(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l * r }
override fun divide(left: Buffer, right: Buffer): Buffer = zipInline(left, right) { l, r -> l / r }
override fun scale(a: Buffer, value: Double): Buffer = a.map { scale(it, value) }
@@ -168,7 +168,7 @@ public open class BufferFieldOps>(
public class BufferField>(
elementAlgebra: A,
bufferFactory: BufferFactory,
- override val size: Int
+ override val size: Int,
) : BufferFieldOps(elementAlgebra, bufferFactory), Field>, WithSize {
override val zero: Buffer = bufferFactory(size) { elementAlgebra.zero }
diff --git a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/structures/Buffer.kt b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/structures/Buffer.kt
index 58c6d5ded..a1b0307c4 100644
--- a/kmath-core/src/commonMain/kotlin/space/kscience/kmath/structures/Buffer.kt
+++ b/kmath-core/src/commonMain/kotlin/space/kscience/kmath/structures/Buffer.kt
@@ -105,6 +105,16 @@ public interface Buffer {
*/
public val Buffer<*>.indices: IntRange get() = 0 until size
+public fun Buffer.first(): T {
+ require(size > 0) { "Can't get the first element of empty buffer" }
+ return get(0)
+}
+
+public fun Buffer.last(): T {
+ require(size > 0) { "Can't get the last element of empty buffer" }
+ return get(size - 1)
+}
+
/**
* Immutable wrapper for [MutableBuffer].
*
diff --git a/kmath-core/src/commonTest/kotlin/space/kscience/kmath/misc/PermSortTest.kt b/kmath-core/src/commonTest/kotlin/space/kscience/kmath/misc/PermSortTest.kt
index 0a2bb9138..4a724ac5f 100644
--- a/kmath-core/src/commonTest/kotlin/space/kscience/kmath/misc/PermSortTest.kt
+++ b/kmath-core/src/commonTest/kotlin/space/kscience/kmath/misc/PermSortTest.kt
@@ -6,14 +6,13 @@
package space.kscience.kmath.misc
import space.kscience.kmath.misc.PermSortTest.Platform.*
-import kotlin.random.Random
-import kotlin.test.Test
-import kotlin.test.assertEquals
-import kotlin.test.assertTrue
-
import space.kscience.kmath.structures.IntBuffer
import space.kscience.kmath.structures.asBuffer
+import kotlin.random.Random
+import kotlin.test.Test
import kotlin.test.assertContentEquals
+import kotlin.test.assertEquals
+import kotlin.test.assertTrue
class PermSortTest {
@@ -29,9 +28,9 @@ class PermSortTest {
@Test
fun testOnEmptyBuffer() {
val emptyBuffer = IntBuffer(0) {it}
- var permutations = emptyBuffer.permSort()
+ var permutations = emptyBuffer.indicesSorted()
assertTrue(permutations.isEmpty(), "permutation on an empty buffer should return an empty result")
- permutations = emptyBuffer.permSortDescending()
+ permutations = emptyBuffer.indicesSortedDescending()
assertTrue(permutations.isEmpty(), "permutation on an empty buffer should return an empty result")
}
@@ -47,25 +46,25 @@ class PermSortTest {
@Test
fun testPermSortBy() {
- val permutations = platforms.permSortBy { it.name }
+ val permutations = platforms.indicesSortedBy { it.name }
val expected = listOf(ANDROID, JS, JVM, NATIVE, WASM)
assertContentEquals(expected, permutations.map { platforms[it] }, "Ascending PermSort by name")
}
@Test
fun testPermSortByDescending() {
- val permutations = platforms.permSortByDescending { it.name }
+ val permutations = platforms.indicesSortedByDescending { it.name }
val expected = listOf(WASM, NATIVE, JVM, JS, ANDROID)
assertContentEquals(expected, permutations.map { platforms[it] }, "Descending PermSort by name")
}
@Test
fun testPermSortWith() {
- var permutations = platforms.permSortWith { p1, p2 -> p1.name.length.compareTo(p2.name.length) }
+ var permutations = platforms.indicesSortedWith { p1, p2 -> p1.name.length.compareTo(p2.name.length) }
val expected = listOf(JS, JVM, WASM, NATIVE, ANDROID)
assertContentEquals(expected, permutations.map { platforms[it] }, "PermSort using custom ascending comparator")
- permutations = platforms.permSortWith(compareByDescending { it.name.length })
+ permutations = platforms.indicesSortedWith(compareByDescending { it.name.length })
assertContentEquals(expected.reversed(), permutations.map { platforms[it] }, "PermSort using custom descending comparator")
}
@@ -75,7 +74,7 @@ class PermSortTest {
println("Test randomization seed: $seed")
val buffer = Random(seed).buffer(bufferSize)
- val indices = buffer.permSort()
+ val indices = buffer.indicesSorted()
assertEquals(bufferSize, indices.size)
// Ensure no doublon is present in indices
@@ -87,7 +86,7 @@ class PermSortTest {
assertTrue(current <= next, "Permutation indices not properly sorted")
}
- val descIndices = buffer.permSortDescending()
+ val descIndices = buffer.indicesSortedDescending()
assertEquals(bufferSize, descIndices.size)
// Ensure no doublon is present in indices
assertEquals(descIndices.toSet().size, descIndices.size)
diff --git a/kmath-coroutines/README.md b/kmath-coroutines/README.md
new file mode 100644
index 000000000..d0fef6e0f
--- /dev/null
+++ b/kmath-coroutines/README.md
@@ -0,0 +1,32 @@
+# Module kmath-coroutines
+
+
+
+## Usage
+
+## Artifact:
+
+The Maven coordinates of this project are `space.kscience:kmath-coroutines:0.3.0`.
+
+**Gradle Groovy:**
+```groovy
+repositories {
+ maven { url 'https://repo.kotlin.link' }
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'space.kscience:kmath-coroutines:0.3.0'
+}
+```
+**Gradle Kotlin DSL:**
+```kotlin
+repositories {
+ maven("https://repo.kotlin.link")
+ mavenCentral()
+}
+
+dependencies {
+ implementation("space.kscience:kmath-coroutines:0.3.0")
+}
+```
diff --git a/kmath-dimensions/README.md b/kmath-dimensions/README.md
new file mode 100644
index 000000000..650bcafde
--- /dev/null
+++ b/kmath-dimensions/README.md
@@ -0,0 +1,32 @@
+# Module kmath-dimensions
+
+A proof of concept module for adding type-safe dimensions to structures
+
+## Usage
+
+## Artifact:
+
+The Maven coordinates of this project are `space.kscience:kmath-dimensions:0.3.0`.
+
+**Gradle Groovy:**
+```groovy
+repositories {
+ maven { url 'https://repo.kotlin.link' }
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'space.kscience:kmath-dimensions:0.3.0'
+}
+```
+**Gradle Kotlin DSL:**
+```kotlin
+repositories {
+ maven("https://repo.kotlin.link")
+ mavenCentral()
+}
+
+dependencies {
+ implementation("space.kscience:kmath-dimensions:0.3.0")
+}
+```
diff --git a/kmath-ejml/README.md b/kmath-ejml/README.md
index fcd092bf1..eaa90120f 100644
--- a/kmath-ejml/README.md
+++ b/kmath-ejml/README.md
@@ -9,17 +9,17 @@ EJML based linear algebra implementation.
## Artifact:
-The Maven coordinates of this project are `space.kscience:kmath-ejml:0.3.0-dev-17`.
+The Maven coordinates of this project are `space.kscience:kmath-ejml:0.3.0`.
-**Gradle:**
-```gradle
+**Gradle Groovy:**
+```groovy
repositories {
maven { url 'https://repo.kotlin.link' }
mavenCentral()
}
dependencies {
- implementation 'space.kscience:kmath-ejml:0.3.0-dev-17'
+ implementation 'space.kscience:kmath-ejml:0.3.0'
}
```
**Gradle Kotlin DSL:**
@@ -30,6 +30,6 @@ repositories {
}
dependencies {
- implementation("space.kscience:kmath-ejml:0.3.0-dev-17")
+ implementation("space.kscience:kmath-ejml:0.3.0")
}
```
diff --git a/kmath-for-real/README.md b/kmath-for-real/README.md
index 938327612..9e8f95a16 100644
--- a/kmath-for-real/README.md
+++ b/kmath-for-real/README.md
@@ -9,17 +9,17 @@ Specialization of KMath APIs for Double numbers.
## Artifact:
-The Maven coordinates of this project are `space.kscience:kmath-for-real:0.3.0-dev-17`.
+The Maven coordinates of this project are `space.kscience:kmath-for-real:0.3.0`.
-**Gradle:**
-```gradle
+**Gradle Groovy:**
+```groovy
repositories {
maven { url 'https://repo.kotlin.link' }
mavenCentral()
}
dependencies {
- implementation 'space.kscience:kmath-for-real:0.3.0-dev-17'
+ implementation 'space.kscience:kmath-for-real:0.3.0'
}
```
**Gradle Kotlin DSL:**
@@ -30,6 +30,6 @@ repositories {
}
dependencies {
- implementation("space.kscience:kmath-for-real:0.3.0-dev-17")
+ implementation("space.kscience:kmath-for-real:0.3.0")
}
```
diff --git a/kmath-for-real/build.gradle.kts b/kmath-for-real/build.gradle.kts
index 4cccaef5c..18c2c50ad 100644
--- a/kmath-for-real/build.gradle.kts
+++ b/kmath-for-real/build.gradle.kts
@@ -21,19 +21,22 @@ readme {
feature(
id = "DoubleVector",
- description = "Numpy-like operations for Buffers/Points",
ref = "src/commonMain/kotlin/space/kscience/kmath/real/DoubleVector.kt"
- )
+ ){
+ "Numpy-like operations for Buffers/Points"
+ }
feature(
id = "DoubleMatrix",
- description = "Numpy-like operations for 2d real structures",
ref = "src/commonMain/kotlin/space/kscience/kmath/real/DoubleMatrix.kt"
- )
+ ){
+ "Numpy-like operations for 2d real structures"
+ }
feature(
id = "grids",
- description = "Uniform grid generators",
ref = "src/commonMain/kotlin/space/kscience/kmath/structures/grids.kt"
- )
+ ){
+ "Uniform grid generators"
+ }
}
diff --git a/kmath-functions/README.md b/kmath-functions/README.md
index 3d4beee47..3f44bd3f9 100644
--- a/kmath-functions/README.md
+++ b/kmath-functions/README.md
@@ -11,17 +11,17 @@ Functions and interpolations.
## Artifact:
-The Maven coordinates of this project are `space.kscience:kmath-functions:0.3.0-dev-17`.
+The Maven coordinates of this project are `space.kscience:kmath-functions:0.3.0`.
-**Gradle:**
-```gradle
+**Gradle Groovy:**
+```groovy
repositories {
maven { url 'https://repo.kotlin.link' }
mavenCentral()
}
dependencies {
- implementation 'space.kscience:kmath-functions:0.3.0-dev-17'
+ implementation 'space.kscience:kmath-functions:0.3.0'
}
```
**Gradle Kotlin DSL:**
@@ -32,6 +32,6 @@ repositories {
}
dependencies {
- implementation("space.kscience:kmath-functions:0.3.0-dev-17")
+ implementation("space.kscience:kmath-functions:0.3.0")
}
```
diff --git a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/functionTypes.kt b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/functionTypes.kt
index 88b24c756..0e814993c 100644
--- a/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/functionTypes.kt
+++ b/kmath-functions/src/commonMain/kotlin/space/kscience/kmath/functions/functionTypes.kt
@@ -7,6 +7,6 @@ package space.kscience.kmath.functions
import space.kscience.kmath.structures.Buffer
-public typealias UnivariateFunction = (T) -> T
+public typealias Function1D = (T) -> T
-public typealias MultivariateFunction = (Buffer) -> T
\ No newline at end of file
+public typealias FunctionND = (Buffer) -> T
\ No newline at end of file
diff --git a/kmath-geometry/README.md b/kmath-geometry/README.md
new file mode 100644
index 000000000..6602f5510
--- /dev/null
+++ b/kmath-geometry/README.md
@@ -0,0 +1,32 @@
+# Module kmath-geometry
+
+
+
+## Usage
+
+## Artifact:
+
+The Maven coordinates of this project are `space.kscience:kmath-geometry:0.3.0`.
+
+**Gradle Groovy:**
+```groovy
+repositories {
+ maven { url 'https://repo.kotlin.link' }
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'space.kscience:kmath-geometry:0.3.0'
+}
+```
+**Gradle Kotlin DSL:**
+```kotlin
+repositories {
+ maven("https://repo.kotlin.link")
+ mavenCentral()
+}
+
+dependencies {
+ implementation("space.kscience:kmath-geometry:0.3.0")
+}
+```
diff --git a/kmath-histograms/README.md b/kmath-histograms/README.md
new file mode 100644
index 000000000..27f1b43ec
--- /dev/null
+++ b/kmath-histograms/README.md
@@ -0,0 +1,32 @@
+# Module kmath-histograms
+
+
+
+## Usage
+
+## Artifact:
+
+The Maven coordinates of this project are `space.kscience:kmath-histograms:0.3.0`.
+
+**Gradle Groovy:**
+```groovy
+repositories {
+ maven { url 'https://repo.kotlin.link' }
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'space.kscience:kmath-histograms:0.3.0'
+}
+```
+**Gradle Kotlin DSL:**
+```kotlin
+repositories {
+ maven("https://repo.kotlin.link")
+ mavenCentral()
+}
+
+dependencies {
+ implementation("space.kscience:kmath-histograms:0.3.0")
+}
+```
diff --git a/kmath-histograms/build.gradle.kts b/kmath-histograms/build.gradle.kts
index 7e511faa0..51271bb0a 100644
--- a/kmath-histograms/build.gradle.kts
+++ b/kmath-histograms/build.gradle.kts
@@ -17,6 +17,8 @@ kotlin.sourceSets {
commonTest {
dependencies {
implementation(project(":kmath-for-real"))
+ implementation(projects.kmath.kmathStat)
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0")
}
}
}
diff --git a/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Counter.kt b/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Counter.kt
index 291284444..fe3278026 100644
--- a/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Counter.kt
+++ b/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Counter.kt
@@ -18,7 +18,8 @@ public interface Counter {
public val value: T
public companion object {
- public fun double(): ObjectCounter = ObjectCounter(DoubleField)
+ public fun ofDouble(): ObjectCounter = ObjectCounter(DoubleField)
+ public fun of(group: Group): ObjectCounter = ObjectCounter(group)
}
}
diff --git a/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/DoubleHistogramSpace.kt b/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/DoubleHistogramSpace.kt
deleted file mode 100644
index 61d0b9f33..000000000
--- a/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/DoubleHistogramSpace.kt
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2018-2021 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.histogram
-
-import space.kscience.kmath.domains.Domain
-import space.kscience.kmath.domains.HyperSquareDomain
-import space.kscience.kmath.misc.UnstableKMathAPI
-import space.kscience.kmath.nd.*
-import space.kscience.kmath.operations.DoubleField
-import space.kscience.kmath.structures.*
-import kotlin.math.floor
-
-public class DoubleHistogramSpace(
- private val lower: Buffer,
- private val upper: Buffer,
- private val binNums: IntArray = IntArray(lower.size) { 20 },
-) : IndexedHistogramSpace {
-
- init {
- // argument checks
- require(lower.size == upper.size) { "Dimension mismatch in histogram lower and upper limits." }
- require(lower.size == binNums.size) { "Dimension mismatch in bin count." }
- require(!lower.indices.any { upper[it] - lower[it] < 0 }) { "Range for one of axis is not strictly positive" }
- }
-
- public val dimension: Int get() = lower.size
-
- override val shape: IntArray = IntArray(binNums.size) { binNums[it] + 2 }
- override val histogramValueSpace: DoubleFieldND = DoubleField.ndAlgebra(*shape)
-
- private val binSize = DoubleBuffer(dimension) { (upper[it] - lower[it]) / binNums[it] }
-
- /**
- * Get internal [StructureND] bin index for given axis
- */
- private fun getIndex(axis: Int, value: Double): Int = when {
- value >= upper[axis] -> binNums[axis] + 1 // overflow
- value < lower[axis] -> 0 // underflow
- else -> floor((value - lower[axis]) / binSize[axis]).toInt()
- }
-
- override fun getIndex(point: Buffer): IntArray = IntArray(dimension) {
- getIndex(it, point[it])
- }
-
- @OptIn(UnstableKMathAPI::class)
- override fun getDomain(index: IntArray): Domain {
- val lowerBoundary = index.mapIndexed { axis, i ->
- when (i) {
- 0 -> Double.NEGATIVE_INFINITY
- shape[axis] - 1 -> upper[axis]
- else -> lower[axis] + (i.toDouble()) * binSize[axis]
- }
- }.asBuffer()
-
- val upperBoundary = index.mapIndexed { axis, i ->
- when (i) {
- 0 -> lower[axis]
- shape[axis] - 1 -> Double.POSITIVE_INFINITY
- else -> lower[axis] + (i.toDouble() + 1) * binSize[axis]
- }
- }.asBuffer()
-
- return HyperSquareDomain(lowerBoundary, upperBoundary)
- }
-
-
- override fun produceBin(index: IntArray, value: Double): Bin {
- val domain = getDomain(index)
- return DomainBin(domain, value)
- }
-
- override fun produce(builder: HistogramBuilder.() -> Unit): IndexedHistogram {
- val ndCounter = StructureND.auto(shape) { Counter.double() }
- val hBuilder = HistogramBuilder { point, value ->
- val index = getIndex(point)
- ndCounter[index].add(value.toDouble())
- }
- hBuilder.apply(builder)
- val values: BufferND = ndCounter.mapToBuffer { it.value }
- return IndexedHistogram(this, values)
- }
-
- override fun IndexedHistogram.unaryMinus(): IndexedHistogram = this * (-1)
-
- public companion object {
- /**
- * Use it like
- * ```
- *FastHistogram.fromRanges(
- * (-1.0..1.0),
- * (-1.0..1.0)
- *)
- *```
- */
- public fun fromRanges(vararg ranges: ClosedFloatingPointRange): DoubleHistogramSpace = DoubleHistogramSpace(
- ranges.map(ClosedFloatingPointRange::start).asBuffer(),
- ranges.map(ClosedFloatingPointRange::endInclusive).asBuffer()
- )
-
- /**
- * Use it like
- * ```
- *FastHistogram.fromRanges(
- * (-1.0..1.0) to 50,
- * (-1.0..1.0) to 32
- *)
- *```
- */
- public fun fromRanges(vararg ranges: Pair, Int>): DoubleHistogramSpace =
- DoubleHistogramSpace(
- ListBuffer(
- ranges
- .map(Pair, Int>::first)
- .map(ClosedFloatingPointRange::start)
- ),
-
- ListBuffer(
- ranges
- .map(Pair, Int>::first)
- .map(ClosedFloatingPointRange::endInclusive)
- ),
-
- ranges.map(Pair, Int>::second).toIntArray()
- )
- }
-}
\ No newline at end of file
diff --git a/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Histogram.kt b/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Histogram.kt
index 4e803fc63..12edafd81 100644
--- a/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Histogram.kt
+++ b/kmath-histograms/src/commonMain/kotlin/space/kscience/kmath/histogram/Histogram.kt
@@ -13,14 +13,23 @@ import space.kscience.kmath.structures.asBuffer
/**
* The binned data element. Could be a histogram bin with a number of counts or an artificial construct.
*/
-public interface Bin : Domain {
+public interface Bin : Domain {
/**
* The value of this bin.
*/
- public val value: Number
+ public val binValue: V
}
-public interface Histogram> {
+/**
+ * A simple histogram bin based on domain
+ */
+public data class DomainBin, D : Domain, out V>(
+ public val domain: D,
+ override val binValue: V,
+) : Bin, Domain by domain
+
+
+public interface Histogram> {
/**
* Find existing bin, corresponding to given coordinates
*/
@@ -32,29 +41,38 @@ public interface Histogram> {
public val dimension: Int
public val bins: Iterable
+
+ public companion object {
+ //A discoverability root
+ }
}
-public fun interface HistogramBuilder {
+public interface HistogramBuilder {
/**
- * Increment appropriate bin
+ * The default value increment for a bin
*/
- public fun putValue(point: Point, value: Number)
+ public val defaultValue: V
+
+ /**
+ * Increment appropriate bin with given value
+ */
+ public fun putValue(point: Point, value: V = defaultValue)
}
-public fun > HistogramBuilder.put(point: Point): Unit = putValue(point, 1.0)
+public fun