Slackbot
07/12/2022, 6:50 PMaltavir
07/16/2022, 8:34 AMdev
and yes, it can work with tensors and allows custom operators: https://github.com/mipt-npm/kmath/blob/dev/kmath-core/src/commonTest/kotlin/space/kscience/kmath/expressions/DerivativeStructureExpressionTest.kt. Documentation is not ready yet, but any feedback would be welcome.
The difference from Facebook implementation is that operations themselves (including performance optimization) are decoupled from the autodiff algorithm. So you can for example use Multik native implementation with the autodif engine.Stumpos
07/20/2022, 5:55 PMaltavir
07/24/2022, 9:05 AMPavel Gorgulov
07/29/2022, 10:25 AMaltavir
08/03/2022, 1:56 PMaltavir
08/04/2022, 6:58 AMMultik.stat
fail by default there. Engines must be loaded manually and it should be mentioned in the documentation.altavir
08/17/2022, 6:01 PMaltavir
10/04/2022, 7:34 AMtensor.lup()
with prefix notations like Algebra::lup(tensor)
. It allows much more robust use of contexts and extensions and in my opinion is much more readable. In numpy/Torch postfix notation is used mostly because it could not be done in the other way. The only thing we loose is easy chaining (it could be brought back via scope functions). Does anybody know a case with real complicated chaining on tensors?Curtis Ullerich
10/06/2022, 3:02 AMnino
11/04/2022, 1:40 PM0.42.rem(0.14)
return 0.13999999999999996
and how can I fix it?altavir
11/05/2022, 6:37 PMSam Stone
12/04/2022, 1:59 AMx in 0 until a
, return 0, a until b
return 1, b until c
return 2, greater than or equal to d
, return 3?altavir
12/10/2022, 9:29 AMPeter
12/12/2022, 8:37 AMdata = data[rows-x until rows].cat(mk.zeros(rows-x, columns))
Does anyone knows a better way of doing this (performance is key) ?Sam Stone
01/01/2023, 10:23 PMmcpiroman
01/10/2023, 12:16 PMPaolo Rotolo
01/24/2023, 11:36 AMiosSimulatorArm64
as target?PHondogo
02/14/2023, 7:34 AMaltavir
04/09/2023, 8:37 AMMarc Reichelt
04/20/2023, 3:06 PMIllegalStateException: Fail to find engine
What’s weird about this is that it is happening only sometimes. Did anyone ran into this issue? Link: https://github.com/Kotlin/multik/issues/155altavir
05/13/2023, 6:19 AMrepo.kotlin.link
(with ios artefacts). It contains a lot of minor and major changes and new features: https://github.com/SciProgCentre/kmath/releases. Additionally there is a huge new separate KMath-based project kmath-polynomials: https://github.com/SciProgCentre/kmath-polynomial with algebras for polynomials and rational functions maintained by @Gleb Minaev. A lot of work has been done. A lot more still awaits.
Slack ConversationDaniel Rindt
07/10/2023, 11:31 AMSam Stone
07/26/2023, 10:09 PMexpect
these various implementations? https://discuss.kotlinlang.org/t/multiplatform-bigdecimal-implementation/5631/10Paolo Rotolo
08/04/2023, 12:49 PMkotlin-statistics
has been moved somewhere else? I can't find it on GH anymore: https://github.com/thomasnield/kotlin-statisticsSam Stone
08/11/2023, 9:18 AM/**
Given:
old rate = $30/hour
new rate = $37.5/hour
Hours in new rate = 36.72
Total hours = 52.21
Equations:
1/x := 30/37.5 == 37.5/30 = x; x=1.25, so 1 hour of the new rate is worth 1.25 hours in the old rate.
Hours in old rate = total hours - hours in new rate = 52.21 - 32.67 = 15.49
(1.25 * hours worked in new rate) * old rate = equivalent hours in new rate * old rate = salary for hours in new rate
Calculations:
1.25 * 36.72 = 45.9 upscaled hours
45.9 * 30 = $1,377 for hours in new rate
15.49 * 30 = $464.70 for hours in old rate
$1,377 + $464.70 = $1,841.70 total
Check:
36.72 * $37.5 = $1,377 for hours in new rate
15.49 * $30 = $464.70 for hours in old rate
$1,377 + $464.70 = $1,841.70 total
* */
fun calculateHoursInNewRate(oldRatePerHour: Double,newRatePerHour: Double,totalHoursWorked: Double,hoursInNewRateWorked: Double): Double {
val equivalentOfOldHoursWorkedInNewRate = newRatePerHour / oldRatePerHour
val hoursInOldRate = totalHoursWorked - hoursInNewRateWorked
val upscaledHours = equivalentOfOldHoursWorkedInNewRate * hoursInNewRateWorked
val salaryForHoursInNewRateWorked = upscaledHours * oldRatePerHour
val salaryForHoursInOldRateWorked = hoursInOldRate * oldRatePerHour
return salaryForHoursInNewRateWorked + salaryForHoursInOldRateWorked
}
altavir
02/18/2024, 6:11 AMaltavir
02/18/2024, 4:45 PMjvm summary:
Benchmark Mode Cnt Score Error Units
DotBenchmark.bufferedDot thrpt 5 1.336 ± 0.026 ops/s
DotBenchmark.cmDot thrpt 5 0.836 ± 0.027 ops/s
DotBenchmark.cmDotWithConversion thrpt 5 0.795 ± 0.344 ops/s
DotBenchmark.ejmlDot thrpt 5 6.532 ± 0.066 ops/s
DotBenchmark.ejmlDotWithConversion thrpt 5 6.051 ± 0.180 ops/s
DotBenchmark.multikDot thrpt 5 40.559 ± 4.751 ops/s
DotBenchmark.parallelDot thrpt 5 11.879 ± 1.117 ops/s
DotBenchmark.tensorDot thrpt 5 1.183 ± 0.125 ops/s
DotBenchmark.tfDot thrpt 5 6.013 ± 0.323 ops/s
Abdhilahi Wabwire
03/01/2024, 4:58 AMJason Thomas
03/10/2024, 2:01 AMval a = mk.ndarray(floatArrayOf(1.0f, 2.0f), 2, 1)
val b = mk.ndarray(floatArrayOf(1.0f, 2.0f, 3.0f), 1, 3)
val result = a * b
println(result)