Commit Graph

192 Commits

Author SHA1 Message Date
Gleb Minaev
3a6aa14320 Cleaned up ListPolynomials and ListRationalFunctions:
- Added/updated docs.
- Fully (but in a simple way) implemented invocation, substitution, functional representation, derivatives and antiderivatives. Optimized reimplementation is in progress.
- Upgraded `PolynomialSpaceOfFractions` by adding a bit of laziness.
- Other little things...
2022-06-12 22:52:08 +03:00
Gleb Minaev
17703e407d Applied changes from previous sift. 2022-06-12 00:24:23 +03:00
Gleb Minaev
03b92de6e0 Sifted ListPolynomial's basics. 2022-06-11 19:29:14 +03:00
Gleb Minaev
8af183a969 Fixed typos. Added docstrings. Added variable convertional methods. 2022-06-11 19:22:57 +03:00
Gleb Minaev
a2b02ef09e Sifted rest usage of non-basic polynomial things. 2022-06-11 16:15:59 +03:00
Gleb Minaev
9b51062bf7 Sift. 2022-06-11 16:09:24 +03:00
Gleb Minaev
89cdbf4d71 Changed names of algebraic stub. Added FIXMEs about KT-31420. Changed JVM/JS names style. 2022-06-11 15:58:25 +03:00
Gleb Minaev
af2e437a48 Merge branch 'master' into feature/polynomials
# Conflicts:
#	README.md
#	kmath-ast/README.md
#	kmath-complex/README.md
#	kmath-core/README.md
#	kmath-ejml/README.md
#	kmath-for-real/README.md
#	kmath-functions/README.md
#	kmath-jafama/README.md
#	kmath-kotlingrad/README.md
#	kmath-nd4j/README.md
#	kmath-tensors/README.md
2022-06-03 21:58:37 +03:00
b509dc917d
ValueAndErrorField 2022-04-10 23:00:55 +03:00
Gleb Minaev
7f7b550674 Simplified polynomial builders. 2022-04-03 11:44:42 +03:00
Gleb Minaev
b3087c245f Fixed tests. 2022-03-25 17:46:13 +03:00
Gleb Minaev
f7286d33d2 Moved constructors to separate files. Replaced some TODOs with FIXMEs. 2022-03-25 17:18:56 +03:00
Gleb Minaev
7e328a5dbf Enhanced DSL constructor a bit. 2022-03-25 00:59:48 +03:00
Gleb Minaev
060f0ee35d Removed comparability feature. 2022-03-25 00:57:32 +03:00
Gleb Minaev
420bf05b22 Fixed annoying JVM clashes 😑 2022-03-22 19:42:59 +03:00
Gleb Minaev
0a5122a974 Prototyped DSL-like constructor for NumberedPolynomial. 2022-03-22 19:40:55 +03:00
Gleb Minaev
d75a41482d Added fabrics for LabeledPolynomial and NumberedPolynomial. 2022-03-22 17:09:33 +03:00
Gleb Minaev
5b8d6b601e Added degreeBy to Numbered.... 2022-03-22 15:37:19 +03:00
Gleb Minaev
b44c99c265 Added multivariate abstractions. 2022-03-22 15:28:34 +03:00
Gleb Minaev
39ce855075 Added constructors for RFs' spaces 2022-03-22 14:25:09 +03:00
Gleb Minaev
2f9e504357 Added division to RFs' Spaces. Added conversion to polynomial and RFs' spaces. Added requirements for RFs' denominators' changes for case of non-integral domain. Added requirements for non-zero divisor to RFs' divisions. 2022-03-22 13:58:29 +03:00
Gleb Minaev
09868f090b Enhanced tests of Double substitution. 2022-03-22 02:39:43 +03:00
Gleb Minaev
98b9a70893 Enhanced tests of Double substitution. 2022-03-22 02:37:26 +03:00
Gleb Minaev
c6d1068df4 Renamed Polynomial, etc. to ListPolynomial, etc. and AbstractPolynomial to Polynomial.
As it was advised by @CommanderTvis.
2022-03-21 23:47:10 +03:00
Gleb Minaev
51b0d232b5 Renamed AbstractPolynomialFractionsSpace to PolynomialSpaceOfFractions 2022-03-21 23:21:55 +03:00
Gleb Minaev
83d57c7295 Added RFs' interface to remove another boilerplate. Fixed bug in RFs' equalsTo. 2022-03-21 21:22:25 +03:00
Gleb Minaev
88e0dcf413 Added usage of more correct exceptions. 2022-03-21 18:26:09 +03:00
Gleb Minaev
25ec59b985 Finished with tests for Polynomial. 2022-03-20 23:22:39 +03:00
Gleb Minaev
fbc21101bb Added test. Fixed isOne and isMinusOne for Polynomial. 2022-03-20 06:26:52 +03:00
Gleb Minaev
5d4514a742 More test tools! More tests!! More fixes of stupid bugs!!! 😭 2022-03-19 19:35:41 +03:00
Gleb Minaev
90a7c4d901 Simplified use of Rational (current BigInt are hard to use and actually useless). Added tests, fixed bug. 2022-03-19 18:08:43 +03:00
Gleb Minaev
a965f5683f Added some tests and some utilities for tests. Fixed bug in utility of PolynomialSpace. 2022-03-19 16:54:30 +03:00
Gleb Minaev
85cd3b4de6 Added some test. Fixed bug in algebraicStub.kt 2022-03-18 20:39:01 +03:00
Gleb Minaev
cdc85291bc Fixed bug in implementations of polynomial operations 2022-03-18 20:04:21 +03:00
Gleb Minaev
ed2f14b68e Optimised existing substitution function. Prototyped substitution for RFs. 2022-03-18 01:47:03 +03:00
Gleb Minaev
86553e9f35 Added utilities. Rewrote polynomial-in-polynomial substitution 2022-03-17 16:28:41 +03:00
Gleb Minaev
d63c4acf10 Added space and scope fabrics for RFs 2022-03-17 16:27:02 +03:00
Gleb Minaev
ffd3ae7684 Optimized allocation during coefficients generation in Polynomial 2022-03-17 16:02:41 +03:00
Gleb Minaev
a8a95c9df7 Fixed typo 2022-03-17 02:15:48 +03:00
Gleb Minaev
e5186d469a Fixed issue with confusing countOfVariables in Numbered... 2022-03-17 02:12:40 +03:00
Gleb Minaev
2082175af5 Fixed typos. 2022-03-16 23:31:07 +03:00
Gleb Minaev
75fd920735 Deleted suddenly missed region marks and unused error classes 2022-03-16 23:22:51 +03:00
Gleb Minaev
3c9d8a4eee Deleted all region marks 2022-03-16 22:44:55 +03:00
Gleb Minaev
24944cdb16 Added support of power function to abstract structures.
Implemented exponentiation by squaring as default implementation of `power`. Updated docs in algebraicStub.kt and updated realisations in it.
2022-03-16 15:19:27 +03:00
Gleb Minaev
9aa131a9c6 Replaced Variable in Labeled... by Symbol and deleted it 2022-03-16 01:06:39 +03:00
Gleb Minaev
16cf1bc65e Implemented all derivative-like functions 2022-03-16 00:47:07 +03:00
Gleb Minaev
bb5e638b31 Added polynomial spaces and scopes fabrics 2022-03-15 20:38:27 +03:00
Gleb Minaev
1f9d8d34f5 Tried to add constructors and/or fabrics for polynomials 2022-03-15 20:18:39 +03:00
Gleb Minaev
91c9ea61da Added derivative-like functions to Polynomial 2022-03-15 18:10:11 +03:00
Gleb Minaev
1754ae0695 Added some docs 2022-03-15 16:43:22 +03:00
Gleb Minaev
79736a0a9b Forgot to remove unnecessary tailrec 2022-03-15 15:36:10 +03:00
Gleb Minaev
f86529d659 Optimized optimizedMultiply and optimizedAddMultiplied for cases of negative value of other and multiplier 2022-03-15 15:35:17 +03:00
Gleb Minaev
ebd7f799ad Attempts to implement derivatives and antiderivatives 2022-03-15 00:47:23 +03:00
Gleb Minaev
31ccf744c5 Deleted useless annotations JvmName, JsName and Suppress 2022-03-14 23:33:00 +03:00
Gleb Minaev
fb01d85197 Removed extra JSName annotations. Now everything builds 2022-03-14 22:23:50 +03:00
Gleb Minaev
44febbdd73 Processed labeledRationalFunctionUtil.kt 2022-03-14 20:19:42 +03:00
Gleb Minaev
dd820da765 1. Prototyped rest 2 algebraic structures of rational functions
2. Added `constantZero` and `constantOne` to abstract spaces and applied them instead of `ring.zero` and `ring.one`
3. Moved logic of `R.isZero` and 5 others to `AbstractRationalFunctionalSpace`
4. Deleted forgotten overridden functions of constants
5. Added KMath contributors' copyright notes
6. Added TODO 😄 The `NumberedPolynomial`'s `countOfVariables` is a confusing
2022-03-14 19:59:53 +03:00
Gleb Minaev
07f4b83722 Fixed forgotten TODOs 2022-03-14 14:18:15 +03:00
Gleb Minaev
de53d032af 1. Prototyped Rational Functions
2. Added abstract interfaces for removing boilerplates
3. Changed or added default values in interfaces
4. Renamed non-operator `equals` to `equalsTo`, and made it infix
2022-03-14 14:14:24 +03:00
Gleb Minaev
93de1d5311 Added support for all polynomials. But standard utilities still are not fully implemented. 2022-03-13 03:44:16 +03:00
Gleb Minaev
cab5958107 Added abstract rational functions 2022-03-13 03:44:16 +03:00
Gleb Minaev
191dd02e47 Restructured Polynomial 2022-03-13 03:44:15 +03:00
4575ab2b79
Update interpolation API to agree with other conventions. 2022-03-07 10:39:59 +03:00
Iaroslav Postovalov
7ceb0b69b8 Revert license removal and update copyright 2021-11-16 18:14:34 +07:00
a1351aa942 Buffer views 2021-11-08 17:50:49 +03:00
bf504ae6c5 Basic series 2021-11-05 16:58:13 +03:00
688382eed6 Shapeless ND and Buffer algebras 2021-10-17 12:42:35 +03:00
abae29bbed DoubleBuffer algebra refactoring 2021-10-02 18:54:45 +03:00
89eebbecb7 Fix EJML inversion issue 2021-09-21 21:24:27 +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
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
afd5908784 Revise grammar of KDoc comments, refresh documentation files 2021-07-29 07:16:26 +07:00
Iaroslav Postovalov
b1998ed1a9 Replace public override with override 2021-07-19 03:12:41 +07:00
Iaroslav Postovalov
5d2eaaf68a Add contracts to some functions, fix multiple style issues 2021-07-13 00:38:30 +07:00
95c0b2d3f0 [WIP] optimization with QOW 2021-06-08 14:27:45 +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
12805712d3 Integrand toString 2021-05-24 14:30:51 +03:00
380c76fe40 Piecewise optimization 2021-05-23 20:01:07 +03:00
ec7a971df7 Separate double-based integrator for a Simpson rule 2021-05-22 20:17:52 +03:00
a24c8dcbce Simpson and spline integration 2021-05-22 20:08:49 +03:00
18509f1259 Simpson integrator 2021-05-21 23:14:07 +03:00
8a07140f7c Minor piecewise rework 2021-05-19 22:35:06 +03:00
0898285542 Removed Any restriction on polynomials 2021-05-19 12:58:01 +03:00
d45d44f96d Fix Interpolation 2021-05-17 21:55:32 +03:00
53a6d3543f [WIP] Interpolation fix 2021-05-17 16:53:12 +03:00
e6c6925209 Fix integration borders 2021-05-16 22:33:53 +03:00
d1e76175b7 Refactor integrator API. 2021-05-16 14:09:21 +03:00
6f39b38a72 Refactor integrator API. 2021-05-16 13:59:37 +03:00
6eb95f26eb Additional piecewise extension 2021-05-14 12:11:37 +03:00
feb5743f58 Change signature of one of integrate helpers 2021-05-13 11:10:59 +03:00
257337f4fb [WIP] Refactor optimization 2021-04-25 22:34:59 +03:00
fd4108b74f fix segmented integral 2021-04-19 11:26:06 +03:00
07e39a068d Use split interval for integration. 2021-04-18 19:43:03 +03:00
6c215abf13 Fix BigInt benchmark. 2021-04-17 10:08:04 +03:00
ef1200aad0 Update integration API 2021-04-16 16:39:27 +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