Feature: Polynomials and rational functions #469
@ -308,8 +308,8 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api("space.kscience:kmath-core:0.3.0-dev-17")
|
api("space.kscience:kmath-core:0.3.0-dev-19")
|
||||||
// api("space.kscience:kmath-core-jvm:0.3.0-dev-17") for jvm-specific version
|
// api("space.kscience:kmath-core-jvm:0.3.0-dev-19") for jvm-specific version
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ Extensions to MST API: transformations, dynamic compilation and visualization.
|
|||||||
|
|
||||||
## Artifact:
|
## 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-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -20,7 +20,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-ast:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-ast:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -31,7 +31,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-ast:0.3.0-dev-17")
|
implementation("space.kscience:kmath-ast:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -66,20 +66,19 @@ For example, the following code:
|
|||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
import space.kscience.kmath.asm.compileToExpression
|
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:
|
… leads to generation of bytecode, which can be decompiled to the following Java class:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
import java.util.Map;
|
import java.util.*;
|
||||||
import kotlin.jvm.functions.Function2;
|
import kotlin.jvm.functions.*;
|
||||||
import space.kscience.kmath.asm.internal.MapIntrinsics;
|
import space.kscience.kmath.asm.internal.*;
|
||||||
import space.kscience.kmath.complex.Complex;
|
import space.kscience.kmath.complex.*;
|
||||||
import space.kscience.kmath.expressions.Expression;
|
import space.kscience.kmath.expressions.*;
|
||||||
import space.kscience.kmath.expressions.Symbol;
|
|
||||||
|
|
||||||
public final class CompiledExpression_45045_0 implements Expression<Complex> {
|
public final class CompiledExpression_45045_0 implements Expression<Complex> {
|
||||||
private final Object[] constants;
|
private final Object[] constants;
|
||||||
@ -91,6 +90,32 @@ public final class CompiledExpression_45045_0 implements Expression<Complex> {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
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<Symbol, ? extends Double> 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.
|
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
|
#### Limitations
|
||||||
|
@ -8,7 +8,7 @@ Complex and hypercomplex number systems in KMath.
|
|||||||
|
|
||||||
## Artifact:
|
## 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-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -18,7 +18,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-complex:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-complex:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -29,6 +29,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-complex:0.3.0-dev-17")
|
implementation("space.kscience:kmath-complex:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -15,7 +15,7 @@ performance calculations to code generation.
|
|||||||
|
|
||||||
## Artifact:
|
## 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-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -25,7 +25,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-core:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-core:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -36,6 +36,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-core:0.3.0-dev-17")
|
implementation("space.kscience:kmath-core:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -9,7 +9,7 @@ EJML based linear algebra implementation.
|
|||||||
|
|
||||||
## Artifact:
|
## 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-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -19,7 +19,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-ejml:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-ejml:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -30,6 +30,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-ejml:0.3.0-dev-17")
|
implementation("space.kscience:kmath-ejml:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -9,7 +9,7 @@ Specialization of KMath APIs for Double numbers.
|
|||||||
|
|
||||||
## Artifact:
|
## 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-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -19,7 +19,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-for-real:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-for-real:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -30,6 +30,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-for-real:0.3.0-dev-17")
|
implementation("space.kscience:kmath-for-real:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -11,7 +11,7 @@ Functions and interpolations.
|
|||||||
|
|
||||||
## Artifact:
|
## 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-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -21,7 +21,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-functions:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-functions:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -32,6 +32,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-functions:0.3.0-dev-17")
|
implementation("space.kscience:kmath-functions:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -7,7 +7,7 @@ Integration with [Jafama](https://github.com/jeffhain/jafama).
|
|||||||
|
|
||||||
## Artifact:
|
## Artifact:
|
||||||
|
|
||||||
The Maven coordinates of this project are `space.kscience:kmath-jafama:0.3.0-dev-17`.
|
The Maven coordinates of this project are `space.kscience:kmath-jafama:0.3.0-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -17,7 +17,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-jafama:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-jafama:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -28,7 +28,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-jafama:0.3.0-dev-17")
|
implementation("space.kscience:kmath-jafama:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
## Artifact:
|
## Artifact:
|
||||||
|
|
||||||
The Maven coordinates of this project are `space.kscience:kmath-kotlingrad:0.3.0-dev-17`.
|
The Maven coordinates of this project are `space.kscience:kmath-kotlingrad:0.3.0-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -18,7 +18,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-kotlingrad:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-kotlingrad:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -29,6 +29,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-kotlingrad:0.3.0-dev-17")
|
implementation("space.kscience:kmath-kotlingrad:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -9,7 +9,7 @@ ND4J based implementations of KMath abstractions.
|
|||||||
|
|
||||||
## Artifact:
|
## Artifact:
|
||||||
|
|
||||||
The Maven coordinates of this project are `space.kscience:kmath-nd4j:0.3.0-dev-17`.
|
The Maven coordinates of this project are `space.kscience:kmath-nd4j:0.3.0-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -19,7 +19,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-nd4j:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-nd4j:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -30,7 +30,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-nd4j:0.3.0-dev-17")
|
implementation("space.kscience:kmath-nd4j:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ Common linear algebra operations on tensors.
|
|||||||
|
|
||||||
## Artifact:
|
## Artifact:
|
||||||
|
|
||||||
The Maven coordinates of this project are `space.kscience:kmath-tensors:0.3.0-dev-17`.
|
The Maven coordinates of this project are `space.kscience:kmath-tensors:0.3.0-dev-19`.
|
||||||
|
|
||||||
**Gradle:**
|
**Gradle:**
|
||||||
```gradle
|
```gradle
|
||||||
@ -19,7 +19,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'space.kscience:kmath-tensors:0.3.0-dev-17'
|
implementation 'space.kscience:kmath-tensors:0.3.0-dev-19'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Gradle Kotlin DSL:**
|
**Gradle Kotlin DSL:**
|
||||||
@ -30,6 +30,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("space.kscience:kmath-tensors:0.3.0-dev-17")
|
implementation("space.kscience:kmath-tensors:0.3.0-dev-19")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user