Commit Graph

805 Commits

Author SHA1 Message Date
Iaroslav Postovalov
e094f6e8ee Remove Algebra.evaluate(MST) by inlining in into interpret 2022-02-08 11:43:50 +07:00
Iaroslav Postovalov
5ba7d74bd2 Completely specialized expression types for Int, Long, Double and compilation of MST to it 2021-11-28 20:56:01 +07:00
Iaroslav Postovalov
d2e3110480 Update gradle-tools, do Kotlin 1.6.0 migrations 2021-11-24 15:32:06 +07:00
Alexis Manin
06a6a99ef0 feat(Core): add new flavors of permSort: allow user to specify a comparator (sort with) or a custom field to use in buffer values (sort by). 2021-11-18 17:44:53 +01:00
Alexis Manin
0f7a25762e feat(Core): add a permutation sorting prototype for buffers
This is a Buffer extension function to create a list of permuted indices that represent the sequence of naturally sorted buffer elements
2021-11-17 13:19:40 +01:00
Iaroslav Postovalov
7ceb0b69b8 Revert license removal and update copyright 2021-11-16 18:14:34 +07:00
Alexander Nozik
e25827eb14
Merge pull request #437 from mipt-npm/commandertvis/double-specialized
Provide specializations of `AsmBuilder` for `Double`, `Long`, `Int`
2021-11-16 11:41:53 +03:00
Iaroslav Postovalov
70ac232c15 Relax type requirements in algebraExtensions.kt from Ring to Group 2021-11-16 14:27:20 +07:00
Iaroslav Postovalov
7b50400de5 Provide specializations of AsmBuilder for Double, Long, Int 2021-11-16 14:03:12 +07:00
Iaroslav Postovalov
f231d722c6 Multiple performance improvements related to ASM
1. Argument values are cached in locals
2. Optimized Expression.invoke function
3. lambda=indy is used in kmath-core
2021-11-15 23:29:15 +07:00
fa9ff4c978 Minor refactoring 2021-11-09 17:56:53 +03:00
d62bc66d4a Refactoring 2021-11-09 13:42:22 +03:00
f6b576071d Add non-boxing BufferView access 2021-11-09 12:25:17 +03:00
1315a8cd34 views cleanup 2021-11-08 19:57:22 +03:00
a1351aa942 Buffer views 2021-11-08 17:50:49 +03:00
bf504ae6c5 Basic series 2021-11-05 16:58:13 +03:00
0e1e97a3ff Multik integration finished (for now) 2021-11-04 10:58:27 +03:00
726864ed0e Refactoring of power 2021-11-03 12:55:29 +03:00
b65197f577 revert parts of tensor api to tensors 2021-11-01 19:45:02 +03:00
46e7da9ae0 Tensor algebra generified 2021-10-28 11:18:16 +03:00
4db7398a28 Tensor algebra generified 2021-10-28 10:58:22 +03:00
7e59ec5804 Refactor TensorAlgebra to take StructureND and inherit AlgebraND 2021-10-26 09:16:24 +03:00
69e6849a12 Name refactoring for tensors 2021-10-20 16:11:36 +03:00
a81ab474f7 Add multik tensor factories and benchmarks 2021-10-18 11:35:09 +03:00
827f115a92 Multik wrapper 2021-10-17 21:12:14 +03:00
9b9fe07044 Specialized operations for ND algebra 2021-10-17 16:42:46 +03:00
4513b06e87 Shapeless ND and Buffer algebras 2021-10-17 13:09:21 +03:00
688382eed6 Shapeless ND and Buffer algebras 2021-10-17 12:42:35 +03:00
d0354da80a Shapeless ND and Buffer algebras 2021-10-17 11:12:35 +03:00
fd8a61c852 Fix Mean bug 2021-10-04 12:40:30 +03:00
abae29bbed DoubleBuffer algebra refactoring 2021-10-02 18:54:45 +03:00
85aefb5380 Completely remove AlgebraElements.kt 2021-10-02 16:14:38 +03:00
0f634688cc API cleanup 2021-10-02 15:56:57 +03:00
01bbb4bb13 API cleanup 2021-10-02 09:55:52 +03:00
89eebbecb7 Fix EJML inversion issue 2021-09-21 21:24:27 +03:00
9fcc1b3af2 Split Buffer.kt for better readability 2021-09-19 21:17:26 +03:00
546d56aeee Refactor buffer builders to suit new discoverability pattern 2021-09-19 21:13:07 +03:00
49ec5d1554 Refactor ND builders to suit new discoverability pattern 2021-09-19 20:48:36 +03:00
dfd6e0a949 Merge remote-tracking branch 'origin/dev' into feature/advanced-optimization
# Conflicts:
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/optimization/CMOptimization.kt
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/optimization/cmFit.kt
#	kmath-ejml/src/main/kotlin/space/kscience/kmath/ejml/_generated.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/FunctionOptimization.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/NoDerivFunctionOptimization.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/Optimization.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/XYFit.kt
2021-08-16 09:56:00 +03:00
aaa298616d QOW is working more or less 2021-08-16 09:55:03 +03:00
9b8da4cdcc Fix JS bug with null cast 2021-08-12 20:28:45 +03:00
Iaroslav Postovalov
da27c2e494 Fix path to LICENSE in the notice 2021-08-08 12:27:16 +07:00
a020d1545c merge dev 2021-08-06 12:23:24 +03:00
Iaroslav Postovalov
86a45504e3 Add contentEquals extension to ND algebra and LinearSpace 2021-08-05 16:45:54 +07:00
Iaroslav Postovalov
afd5908784 Revise grammar of KDoc comments, refresh documentation files 2021-07-29 07:16:26 +07:00
Iaroslav Postovalov
8b3298f7a8 Exact conversions from Long to Int, Int indexing of Dimension 2021-07-20 11:21:47 -07:00
Iaroslav Postovalov
b1998ed1a9 Replace public override with override 2021-07-19 03:12:41 +07:00
Iaroslav Postovalov
ef41c3f168 Build infrastructure changes 2021-07-17 16:40:34 +07:00
Iaroslav Postovalov
5d2eaaf68a Add contracts to some functions, fix multiple style issues 2021-07-13 00:38:30 +07:00
3ba12f4999 Generic Buffer Algebra 2021-07-09 14:11:26 +03:00
Iaroslav Postovalov
83fc4e28d8 Generate README, bump versions of Kotlin, Gradle, ND4J, ASM 2021-07-03 17:23:45 +07:00
Iaroslav Postovalov
4d6428a308 Update Jafama module documentation with some minor code amendments 2021-06-14 21:51:06 +07:00
Iaroslav Postovalov
7b736a7c81 Fix README.md again 2021-06-09 21:40:47 +07:00
95c0b2d3f0 [WIP] optimization with QOW 2021-06-08 14:27:45 +03:00
f84f7f8e45 Merge branch 'dev' into feature/advanced-optimization
# Conflicts:
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/optimization/CMOptimization.kt
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/optimization/cmFit.kt
#	kmath-core/src/commonMain/kotlin/space/kscience/kmath/expressions/DifferentiableExpression.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/FunctionOptimization.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/XYFit.kt
2021-05-25 17:00:02 +03:00
f2b7a08ad8 Remove second generic from DifferentiableExpression 2021-05-25 16:53:53 +03:00
c240fa4a9e [WIP] optimization refactoring 2021-05-25 16:42:23 +03:00
88e94a7fd9 [WIP] Optimization 2021-05-24 17:02:12 +03:00
3ec674c61b Merge branch 'dev' into feature/advanced-optimization
# Conflicts:
#	examples/src/main/kotlin/space/kscience/kmath/functions/integrate.kt
#	examples/src/main/kotlin/space/kscience/kmath/functions/matrixIntegration.kt
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/integration/CMGaussRuleIntegrator.kt
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/integration/CMIntegrator.kt
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/optimization/CMOptimization.kt
#	kmath-commons/src/main/kotlin/space/kscience/kmath/commons/optimization/cmFit.kt
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/GaussIntegrator.kt
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/Integrand.kt
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/MultivariateIntegrand.kt
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/integration/UnivariateIntegrand.kt
#	kmath-functions/src/commonTest/kotlin/space/kscience/kmath/integration/GaussIntegralTest.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/FunctionOptimization.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/NoDerivFunctionOptimization.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/optimization/Optimization.kt
2021-05-24 14:44:08 +03:00
380c76fe40 Piecewise optimization 2021-05-23 20:01:07 +03:00
a24c8dcbce Simpson and spline integration 2021-05-22 20:08:49 +03:00
Iaroslav Postovalov
189449f40e Fix unresolved reference in generated type parameter 2021-05-21 20:08:17 +07:00
Iaroslav Postovalov
15a0258b7d Nd4j based TensorAlgebra implementation, drop Nd4jArrayLongStructure 2021-05-20 21:42:36 +07:00
Iaroslav Postovalov
d7a4228f5f Add out variance to StructureND and some related types, make some unrelated changes 2021-05-20 19:57:55 +07:00
a67c112793 add xor 2021-05-18 10:22:33 +03:00
Alexander Nozik
72f4d7c7e6
Update kmath-core/src/commonMain/kotlin/space/kscience/kmath/operations/Algebra.kt
Co-authored-by: Iaroslav Postovalov <38042667+CommanderTvis@users.noreply.github.com>
2021-05-17 10:10:54 +03:00
7f1789c556 Merge remote-tracking branch 'origin/dev' into feature/booleans 2021-05-16 20:52:22 +03:00
516444d1bc Fix and test 2021-05-16 20:51:46 +03:00
15d874fb06 Remove MST.Symbolic
Replace it by Symbol
LogicAlgebra
2021-05-16 19:53:21 +03:00
Iaroslav Postovalov
eb3a8655fb
Code generation of EJML linear spaces 2021-05-16 18:41:25 +07:00
4964fb2642 Merge remote-tracking branch 'origin/dev' into dev 2021-05-14 18:23:48 +03:00
42d130f69c Build tools update. Cleanup 2021-05-14 15:59:17 +03:00
fff7377687 ColumnarData returns nullable column 2021-05-14 12:42:27 +03:00
zhelenskiy
cf555bc8ae TODO removed as I already added what neeed 2021-05-14 10:48:57 +03:00
dc9ec54644 naming fix and doc update 2021-05-14 09:32:24 +03:00
1a615c503d re-apply bigint fix 2021-05-14 09:20:49 +03:00
1b60f71ed0 Revert "fixes to power"
This reverts commit bdb9ce6a
2021-05-14 09:14:48 +03:00
Alexander Nozik
bdb9ce6a59
fixes to power 2021-05-14 09:10:05 +03:00
Alexander Nozik
a299003236
Merge branch 'dev' into dev 2021-05-14 09:06:21 +03:00
zhelenskiy
c204747401 Reusing of existing power function 2021-05-13 22:44:33 +03:00
zhelenskiy
1e94538931 Unstable API annotation added + inconsistent docs fix + unnecessary BigIntField usage removed 2021-05-13 13:11:20 +03:00
f5289abdc3 Introduce PerformancePitfall annotation 2021-05-13 11:09:49 +03:00
97c4b81717 Introduce PerformancePitfall annotation 2021-05-13 11:02:20 +03:00
zhelenskiy
8443fac4ae UInt can be used in exponent (in pow) now. 2021-05-12 14:10:32 +03:00
zhelenskiy
1e71f29d5e Large addition tests added 2021-05-12 13:59:41 +03:00
zhelenskiy
ded01251d1 Karatsuba enhancement 2021-05-12 11:05:42 +03:00
zhelenskiy
ed86a31c50 Placing pow outside the Ring interface. 2021-05-12 04:58:48 +03:00
zhelenskiy
b4e47494fc Parsing of decimal values takes 9 immediately digits but not 1. 2021-05-12 04:42:17 +03:00
zhelenskiy
9184bd55de Parser optimization 2021-05-12 02:01:49 +03:00
zhelenskiy
74d14970b9 empty string parsing fixed 2021-05-12 00:58:27 +03:00
zhelenskiy
2da0648d73 Karatsuba added
Incorrect equals fix test
Incorrect overflow handling support
2021-05-11 01:40:45 +03:00
zhelenskiy
3ad7f32ada Incorrect BigInt equality fixed 2021-05-10 18:41:40 +03:00
zhelenskiy
d17a3ac6ef Further optimization of power is added 2021-05-10 18:24:13 +03:00
zhelenskiy
1716b7f5d1 Fast power is added 2021-05-10 17:57:49 +03:00
Iaroslav Postovalov
bbef697b7d
Document and change retention for UnstableKMathAPI 2021-05-09 18:10:06 +07:00
6d78bb8d91 0.3.0-dev-8. Readme update 2021-05-08 14:36:37 +03:00
0622be2494 Merge remote-tracking branch 'origin/dev' into dev 2021-05-08 11:35:15 +03:00
Roland Grinis
b7cc4e4b1b merge dev 2021-05-06 07:45:53 +01:00
Alexander Nozik
eca1ad48f5
Merge pull request #273 from mipt-npm/feature/jupyter
Add Jupyter integration
2021-05-02 21:28:17 +03:00
Iaroslav Postovalov
83c7ec8c6b
Deprecate AlgebraElements.kt 2021-05-01 18:46:11 +07:00
Roland Grinis
1b6bd67b90 No virtual mutable buffers 2021-04-30 21:11:01 +01:00
Roland Grinis
8a039326d4 Minor corrections 2021-04-30 19:47:05 +01:00
Roland Grinis
42ddd2e569 MutableBufferFromGenerator 2021-04-30 15:08:32 +01:00
Roland Grinis
86c2816cfd Fixed strides code duplication 2021-04-30 14:53:02 +01:00
Iaroslav Postovalov
77d72c7bf6
Add Jupyter integration 2021-04-30 20:50:00 +07:00
Iaroslav Postovalov
598b2e1587
Rewrite EJML module by dropping ejml-simple abstraction level; multiple build script changes 2021-04-30 19:48:12 +07:00
7b6361e59d [WIP] optimization refactor in process 2021-04-26 15:02:19 +03:00
257337f4fb [WIP] Refactor optimization 2021-04-25 22:34:59 +03:00
Roland Grinis
4f593aec63 Buffer mini-protocol 2021-04-24 18:53:21 +01:00
Roland Grinis
76b5cd0de5 Merge dev 2021-04-21 17:04:09 +01:00
7a11ed0797 Merge remote-tracking branch 'origin/dev' into dev 2021-04-21 16:03:30 +03:00
Iaroslav Postovalov
0a0d0af94a
Configure copyright scoping 2021-04-21 19:46:02 +07:00
Iaroslav Postovalov
b6a57dbfd0
MST compilation to WebAssembly with Binaryen, reorganize internal JS bindings, tests refactor 2021-04-21 19:17:57 +07:00
6aa5b547b5 cleanup 2021-04-21 12:48:11 +03:00
299592ed25 Update readme 2021-04-16 19:44:51 +03:00
65a8d8f581 Field element integration 2021-04-16 15:50:33 +03:00
Iaroslav Postovalov
e9c31b7827
Merge branch 'master' into dev
# Conflicts:
#	README.md
#	build.gradle.kts
#	examples/src/main/kotlin/space/kscience/kmath/stat/DistributionBenchmark.kt
#	examples/src/main/kotlin/space/kscience/kmath/structures/ParallelRealNDField.kt
#	kmath-ast/README.md
#	kmath-ast/build.gradle.kts
#	kmath-ast/src/commonMain/kotlin/space/kscience/kmath/ast/MstExpression.kt
#	kmath-complex/README.md
#	kmath-complex/build.gradle.kts
#	kmath-complex/src/commonMain/kotlin/space/kscience/kmath/complex/ComplexNDField.kt
#	kmath-core/README.md
#	kmath-core/build.gradle.kts
#	kmath-core/src/commonMain/kotlin/space/kscience/kmath/expressions/MST.kt
#	kmath-core/src/commonMain/kotlin/space/kscience/kmath/expressions/MstAlgebra.kt
#	kmath-core/src/commonMain/kotlin/space/kscience/kmath/nd/RealNDField.kt
#	kmath-core/src/commonMain/kotlin/space/kscience/kmath/structures/RealBufferField.kt
#	kmath-coroutines/build.gradle.kts
#	kmath-coroutines/src/commonMain/kotlin/space/kscience/kmath/chains/BlockingRealChain.kt
#	kmath-coroutines/src/jvmMain/kotlin/space/kscience/kmath/structures/LazyNDStructure.kt
#	kmath-dimensions/src/commonTest/kotlin/kscience/dimensions/DMatrixContextTest.kt
#	kmath-for-real/README.md
#	kmath-functions/README.md
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/interpolation/Interpolator.kt
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/interpolation/LoessInterpolator.kt
#	kmath-functions/src/commonMain/kotlin/space/kscience/kmath/interpolation/XYPointSet.kt
#	kmath-geometry/build.gradle.kts
#	kmath-nd4j/README.md
#	kmath-nd4j/build.gradle.kts
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/distributions/FactorizedDistribution.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/stat/Distribution.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/stat/Fitting.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/stat/OptimizationProblem.kt
#	kmath-stat/src/jvmMain/kotlin/space/kscience/kmath/stat/distributions.kt
#	kmath-viktor/src/main/kotlin/space/kscience/kmath/viktor/ViktorNDStructure.kt
2021-04-16 18:02:44 +07:00
ba3c9b6d45 BigIntBenchmarks. cleanup 2021-04-16 09:47:30 +03:00
Iaroslav Postovalov
41b7349a43
Setup copyright headers, add references to third-party files, update LICENSE 2021-04-16 00:15:00 +07:00
e2ceb64d36 Fix errors and migrations 2021-04-14 23:26:21 +03:00
6cea5742e8 Blocking statistics. Move MST to core 2021-04-14 12:40:26 +03:00
acb4052fe4 Migrate to gradle 7.0 and suspend-inline bug 2021-04-10 15:20:09 +03:00
Roland Grinis
383376080e Merge branch 'dev' into feature/tensor-algebra 2021-04-07 12:05:56 +01:00
Iaroslav Postovalov
cf91da1a98
Add pi and e constants, some unrelated changes 2021-04-05 23:44:42 +07:00
a91d468b74 Refactor Algebra and ExpressionAlgebra. Introduce bindSymbolOrNull on the top level 2021-04-01 21:27:30 +03:00
Iaroslav Postovalov
9ee506b1d2
Some experiments with MST rendering 2021-03-31 16:12:07 +07:00
Roland Grinis
5abd63cde2 moving to kmath-tensors module 2021-03-31 09:07:45 +01:00
Roland Grinis
61edf999c8 Merge branch 'dev' into feature/tensor-algebra 2021-03-31 08:35:48 +01:00
Roland Grinis
6305acea68 API dump 2021-03-31 08:32:53 +01:00
Iaroslav Postovalov
9574099f9b
Fix post-merge issues 2021-03-31 02:24:21 +07:00
Iaroslav Postovalov
f26cad6d18
Merge branch 'dev' into feature/mp-samplers
# Conflicts:
#	examples/src/main/kotlin/space/kscience/kmath/commons/fit/fitWithAutoDiff.kt
#	examples/src/main/kotlin/space/kscience/kmath/stat/DistributionBenchmark.kt
#	examples/src/main/kotlin/space/kscience/kmath/stat/DistributionDemo.kt
#	kmath-commons/src/test/kotlin/space/kscience/kmath/commons/optimization/OptimizeTest.kt
#	kmath-core/src/commonMain/kotlin/space/kscience/kmath/structures/Buffer.kt
#	kmath-coroutines/src/commonMain/kotlin/kscience/kmath/chains/BlockingRealChain.kt
#	kmath-stat/src/commonMain/kotlin/kscience/kmath/stat/SamplerAlgebra.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/stat/Distribution.kt
#	kmath-stat/src/commonMain/kotlin/space/kscience/kmath/stat/RandomChain.kt
#	kmath-stat/src/jvmMain/kotlin/space/kscience/kmath/stat/distributions.kt
2021-03-31 01:48:26 +07:00
Roland Grinis
07b6f988c2 forgot ln 2021-03-30 19:31:42 +01:00
Roland Grinis
b5d3ca76db Dropping creation methods from interface 2021-03-30 19:20:20 +01:00
Roland Grinis
ae30d3a03e remerging pr 263 2021-03-30 16:58:05 +01:00
Roland Grinis
03455a3beb infix dot forgotten 2021-03-30 14:36:59 +01:00
Roland Grinis
581c13c573 drop code duplication 2021-03-30 14:14:05 +01:00
Roland Grinis
370bab462c merged pull request 2021-03-30 13:14:09 +01:00
Andrei Kislitsyn
139534fdb3 fix 2021-03-30 15:13:45 +03:00
Roland Grinis
97f148c175 Merge commit 'refs/pull/263/head' of ssh://git.jetbrains.space/mipt-npm/sci/kmath into feature/tensor-algebra 2021-03-30 13:06:23 +01:00
Andrei Kislitsyn
2503d35ba8 complete qr + test qr and lu 2021-03-30 14:53:19 +03:00
Roland Grinis
d281dfca3a Separate linear algebra utils into dedicated module 2021-03-30 11:22:55 +01:00
Andrei Kislitsyn
6e85d496f2 resolve conflict 2021-03-30 00:22:10 +03:00
Roland Grinis
51eca003af Moved back value to main algebra context 2021-03-29 22:11:34 +01:00
Roland Grinis
92710097f0 Fixing 2D and 1D casts 2021-03-29 21:58:56 +01:00
Andrei Kislitsyn
3219712019 resolve merge conflict 2021-03-26 23:49:58 +03:00
Roland Grinis
22b68e5ca4 BufferedTensor2D & BufferedTensor1D 2021-03-26 20:36:21 +00:00
Andrei Kislitsyn
5d830206a2 Merge remote-tracking branch 'ups/feature/tensor-algebra' into andrew 2021-03-26 19:03:43 +03:00
Roland Grinis
516cd90677 Moved out to archive unimplemented API 2021-03-26 15:36:53 +00:00
Roland Grinis
e03910354e ok reverting 2021-03-26 15:14:23 +00:00
Andrei Kislitsyn
056699f27b Merge remote-tracking branch 'ups/feature/tensor-algebra' into andrew 2021-03-26 18:10:53 +03:00