2021-06-05 08:44:02 +03:00
|
|
|
# Module kmath-jafama
|
|
|
|
|
2021-06-14 17:51:06 +03:00
|
|
|
Integration with [Jafama](https://github.com/jeffhain/jafama).
|
2021-06-05 08:44:02 +03:00
|
|
|
|
2024-03-27 09:11:12 +03:00
|
|
|
- [jafama-double](src/main/kotlin/space/kscience/kmath/jafama/) : Double ExtendedField implementations based on Jafama
|
2021-06-05 08:44:02 +03:00
|
|
|
|
2021-06-14 17:51:06 +03:00
|
|
|
## Artifact:
|
2021-06-05 08:44:02 +03:00
|
|
|
|
2024-02-18 15:05:56 +03:00
|
|
|
The Maven coordinates of this project are `space.kscience:kmath-jafama:0.4.0-dev-3`.
|
2021-06-14 17:51:06 +03:00
|
|
|
|
|
|
|
**Gradle Kotlin DSL:**
|
2024-03-27 09:11:12 +03:00
|
|
|
|
2021-06-05 08:44:02 +03:00
|
|
|
```kotlin
|
2021-06-14 17:51:06 +03:00
|
|
|
repositories {
|
|
|
|
maven("https://repo.kotlin.link")
|
|
|
|
mavenCentral()
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2024-02-18 15:05:56 +03:00
|
|
|
implementation("space.kscience:kmath-jafama:0.4.0-dev-3")
|
2021-06-14 17:51:06 +03:00
|
|
|
}
|
|
|
|
```
|
2021-06-05 08:44:02 +03:00
|
|
|
|
2021-06-14 17:51:06 +03:00
|
|
|
## Example usage
|
2021-06-05 08:44:02 +03:00
|
|
|
|
2021-06-14 17:51:06 +03:00
|
|
|
All the `DoubleField` uses can be replaced with `JafamaDoubleField` or `StrictJafamaDoubleField`.
|
2021-06-05 08:44:02 +03:00
|
|
|
|
2021-06-14 17:51:06 +03:00
|
|
|
```kotlin
|
|
|
|
import space.kscience.kmath.jafama.*
|
|
|
|
import space.kscience.kmath.operations.*
|
|
|
|
|
|
|
|
fun main() {
|
|
|
|
val a = 2.0
|
|
|
|
val b = StrictJafamaDoubleField { exp(a) }
|
|
|
|
println(JafamaDoubleField { b + a })
|
|
|
|
println(StrictJafamaDoubleField { ln(b) })
|
2021-06-05 08:44:02 +03:00
|
|
|
}
|
|
|
|
```
|
2021-06-08 16:58:34 +03:00
|
|
|
|
2021-06-14 17:51:06 +03:00
|
|
|
## Performance
|
|
|
|
|
2024-03-27 09:11:12 +03:00
|
|
|
According to KMath benchmarks on GraalVM, Jafama functions are slower than JDK math; however, there are indications that
|
|
|
|
on Hotspot Jafama is a bit faster.
|
2021-06-14 17:51:06 +03:00
|
|
|
|
2021-05-07 15:59:21 +03:00
|
|
|
> **Can't find appropriate benchmark data. Try generating readme files after running benchmarks**.
|