kmath/kmath-jafama/README.md

46 lines
1.1 KiB
Markdown
Raw Normal View History

2021-06-05 08:44:02 +03:00
# Module kmath-jafama
Integration with [Jafama](https://github.com/jeffhain/jafama).
2021-06-05 08:44:02 +03:00
2024-03-27 09:51:23 +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
## Artifact:
2021-06-05 08:44:02 +03:00
2024-03-27 09:51:23 +03:00
The Maven coordinates of this project are `space.kscience:kmath-jafama:0.4.0`.
**Gradle Kotlin DSL:**
2021-06-05 08:44:02 +03:00
```kotlin
repositories {
maven("https://repo.kotlin.link")
mavenCentral()
}
dependencies {
2024-03-27 09:51:23 +03:00
implementation("space.kscience:kmath-jafama:0.4.0")
}
```
2021-06-05 08:44:02 +03:00
## Example usage
2021-06-05 08:44:02 +03:00
All the `DoubleField` uses can be replaced with `JafamaDoubleField` or `StrictJafamaDoubleField`.
2021-06-05 08:44:02 +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
## 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.
> **Can't find appropriate benchmark data. Try generating readme files after running benchmarks**.