Commit Graph

226 Commits

Author SHA1 Message Date
Iaroslav
6ead822cc3
Fix after-merge issues, provide default implementations for hyperbolic functions, remove their interface 2020-08-09 23:31:49 +07:00
Iaroslav
cb5234a334
Document AST and expressions API, implement ExtendedField over MST and Expression<T> 2020-08-08 04:57:20 +07:00
c2ca7b871d Merge SCI-MR-10 from improved-java-math-big-numbers 2020-07-29 08:39:19 +00:00
Iaroslav
11c98d6acf
Upgrade better-parse to 0.4.0 2020-07-27 23:06:28 +07:00
Iaroslav
0995dca8b8
Delete unchecked cast, revert evaluate changes, add RealField handling "pow" operation 2020-07-27 20:46:57 +07:00
Iaroslav
c64a89c6b6
Implement power as binary operation with unchecked cast, add tests on parser precedence 2020-07-27 19:27:59 +07:00
Iaroslav
a5499260fa
Update num rule to match 1e+1 like numbers 2020-07-27 15:45:05 +07:00
Iaroslav
45087f8b2d
Add capital latin letters support 2020-07-27 15:37:18 +07:00
Iaroslav Postovalov
bce2a8460e
Add reference ANTLR grammar, implement missing rules and operations in parser, also add support for symbols in ASM 2020-07-20 20:40:03 +07:00
Iaroslav
415d11749a
Improve big arithmetics algebra in JVM module of kmath-core 2020-06-28 22:06:50 +07:00
Iaroslav
3d85c22497
Encapsulate classOfT property of AsmBuilder 2020-06-28 19:09:43 +07:00
Iaroslav
2a34110f1d
Implement advanced specialization for numeric functions 2020-06-28 17:16:15 +07:00
Iaroslav
7372197fe1
Specifty type explicitly 2020-06-28 02:10:26 +07:00
Iaroslav
63c001648e
Remove duplicated code, optimize constants field generation, add overloads for getOrFail in mapIntrinsics 2020-06-28 02:08:26 +07:00
Iaroslav
a71c02e9ed
Merge remote-tracking branch 'origin/dev' into adv-expr-improved-trigonometry
# Conflicts:
#	kmath-ast/README.md
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/AsmBuilder.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/buildName.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/classWriters.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/methodVisitors.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/specialization.kt
#	kmath-core/src/commonMain/kotlin/scientifik/kmath/structures/RealBufferField.kt
2020-06-27 20:24:41 +07:00
Iaroslav
e98fc126c4
Merge various codegen utilities into one file 2020-06-27 20:15:14 +07:00
Iaroslav
efcfb44253
Refactor Algebra call building 2020-06-27 20:04:22 +07:00
Iaroslav
bf89aa09e5
Add static imports for Opcodes 2020-06-26 22:05:42 +07:00
Iaroslav
37ef3a1879
Add explicit toRegex call to have better IDE support 2020-06-26 21:39:39 +07:00
Iaroslav
d962ab4d11
Rename and refactor MstAlgebra (ex-MSTAlgebra) (and its subclasses), MstExpression (ex-MSTExpression) 2020-06-26 21:02:22 +07:00
Iaroslav
0ee1d31571
Fix MSTField and MSTRing invalid unary operation, update according ASM tests 2020-06-26 20:57:47 +07:00
Iaroslav
2df97ca4c3
Update README.md, add suppression 2020-06-26 16:05:13 +07:00
Iaroslav
092728b1c3
Replace Stack with ArrayDeque 2020-06-26 16:01:50 +07:00
Iaroslav
90c287d42f
Add tests for MapInstrinsics 2020-06-26 15:59:24 +07:00
Iaroslav
5ab6960e9b
Add mapIntrinsics.kt, update specialization mappings 2020-06-26 15:55:01 +07:00
Iaroslav
e2cc3c8efe
Specify type explicitly, minor implementation refactor 2020-06-25 20:54:14 +07:00
Iaroslav
7faa48be58
Add zero call in MSTField test 2020-06-25 19:46:32 +07:00
Iaroslav
46f99139e2
Update number literal call in tests 2020-06-25 19:45:33 +07:00
Iaroslav
23816d3366
Update KDoc comments, optimize imports 2020-06-25 19:42:13 +07:00
Commander Tvis
f7f9ce7817
Delete AsmCompiledExpression abstract class, implement dynamic field generation to reduce quantity of cast instructions, minor refactor and renaming of internal APIs 2020-06-25 10:08:54 +07:00
Commander Tvis
e47ec1aeb9
Delete AsmCompiledExpression abstract class, implement dynamic field generation to reduce quantity of cast instructions, minor refactor and renaming of internal APIs 2020-06-25 10:07:36 +07:00
Iaroslav
fffc752153
Add more tests and improve current, fix type stack underflow exception 2020-06-24 21:17:06 +07:00
Iaroslav
02f42ee56a
Eliminate bridging 2020-06-24 20:55:48 +07:00
Iaroslav
9a3709624d
Use hashMap instead of map 2020-06-24 15:54:17 +07:00
Iaroslav
f475335df1
Merge remote-tracking branch 'origin/adv-expr' into adv-expr-eliminate-bridging
# Conflicts:
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/asm.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/AsmBuilder.kt
2020-06-24 15:53:19 +07:00
Iaroslav
7c7065542a
Merge remote-tracking branch 'mipt-npm/adv-expr' into adv-expr-lconst 2020-06-23 03:08:25 +07:00
Iaroslav
29c6d25967
Optimize constant pooling for Byte and Short 2020-06-22 15:15:46 +07:00
Iaroslav
e99f7ad360
Optimize constant pooling 2020-06-22 04:05:52 +07:00
Iaroslav
62ebda3302
Update readme, accident documentation-related refactor 2020-06-21 20:23:50 +07:00
Iaroslav
635d708de5
Add missing KDoc comments 2020-06-20 00:08:53 +07:00
Iaroslav
ba499da2da
More KDoc comments 2020-06-20 00:05:00 +07:00
Iaroslav
e9ff33c4f9
Write KDoc comments for AsmBuilder, minimal refactor of it 2020-06-19 23:56:35 +07:00
Iaroslav
d6e7eb8143
Add advanced specialization for primitive non-bridge methods 2020-06-18 11:35:20 +07:00
8264806958 Algebra delegates update. 2020-06-16 14:52:02 +03:00
d73f564fb4 Merge remote-tracking branch 'origin/adv-expr' into adv-expr 2020-06-16 10:33:16 +03:00
3d5036c982 Fix MSTAlgebra delegation 2020-06-16 10:27:54 +03:00
Iaroslav
c3cecc5a16
Rename variable 2020-06-16 14:21:13 +07:00
Iaroslav
91a9e2a5e9
Remove @PublishedApi 2020-06-16 14:20:17 +07:00
Iaroslav
15d7a20b43
Add removed AsmCompiledExpression, move buildName to buildName.kt, refactor compileWith 2020-06-16 14:16:36 +07:00
Iaroslav
fe64537cbc
Merge remote-tracking branch 'mipt-npm/adv-expr' into adv-expr-refactor-agc
# Conflicts:
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/AsmExpressions.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/asm.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/AsmBuilder.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/optimization.kt
2020-06-16 13:28:25 +07:00
96550922cd Removal of AsmExpression 2020-06-15 22:07:31 +03:00
Iaroslav
2580ab347e
Make ClassWriter extensions internal 2020-06-15 17:37:11 +07:00
Iaroslav
521ea8bddc
Rename ClassWriters.kt to be consistent with local code style, rename AsmBuilders.kt to asm.kt, rename AsmNode back to AsmExpression, rename AsmGenerator to AsmBuilder 2020-06-15 17:36:30 +07:00
Iaroslav
b57b55ec1a
Merge remote-tracking branch 'mipt-npm/adv-expr' into adv-expr-refactor-agc
# Conflicts:
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/AsmBuilders.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/AsmExpressions.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/AsmBuilder.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/asm/internal/optimization.kt
2020-06-15 17:23:35 +07:00
3434dde1d1 ASM API simplification 2020-06-15 11:02:13 +03:00
Iaroslav
a7302f49ff
Convert to expression body 2020-06-14 23:13:26 +07:00
Iaroslav
a8fa385497
Rename loadFromVariables to loadVariable 2020-06-14 23:01:34 +07:00
Iaroslav
4e28ad7d4e
Minor refactor 2020-06-14 23:00:26 +07:00
Iaroslav
635aac5f30
Refactor ex-AsmGenerationContext, introduce many bytecode utility functions to make its code readable, update compile method 2020-06-14 22:58:09 +07:00
Iaroslav
d3d348620a
Rename AsmExpression to AsmNode, encapsulate AsmGenerationContext, make AsmNode (ex-AsmExpression) an abstract class instead of interface 2020-06-14 00:30:39 +07:00
Iaroslav
cedfd3fe09
Merge remote-tracking branch 'mipt-npm/adv-expr' into adv-expr-asm
# Conflicts:
#	kmath-ast/build.gradle.kts
#	kmath-ast/src/commonMain/kotlin/scientifik/kmath/ast/parser.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/ast/Parser.kt
#	kmath-ast/src/jvmMain/kotlin/scientifik/kmath/ast/parser.kt
2020-06-14 00:21:07 +07:00
Iaroslav
af410dde70
Apply the suggested changes 2020-06-14 00:18:40 +07:00
0950580b85 Moe better-parse to common.
Watch for https://github.com/h0tk3y/better-parse/issues/27
2020-06-13 18:26:18 +03:00
Iaroslav
e91f6470d3
Implement constants inlining 2020-06-13 17:07:22 +07:00
Iaroslav
f9835979ea
Fix specification bug 2020-06-13 16:48:45 +07:00
Iaroslav
e65d1e43cf
Write tests 2020-06-13 16:16:57 +07:00
Iaroslav
223d238c43
Encapsulate MethodVisitor extensions 2020-06-13 15:53:54 +07:00
Iaroslav
834d1e1397
Move specific optimization functions to Optimization 2020-06-13 15:53:25 +07:00
Iaroslav
1582fde091
Replace JUnit @Test with kotlin-test @Test 2020-06-13 15:51:42 +07:00
866ae47239 replace raw by symbol in algebra 2020-06-13 11:51:33 +03:00
Iaroslav
fec8c7f9d1
Minor refactor and encapsulation 2020-06-13 15:50:21 +07:00
Iaroslav
36ad1fcf58
Minor refactor and document 2020-06-13 15:44:54 +07:00
Iaroslav
3ec1f7b5f1
Merge kmath-asm and kmath-ast modules, make all the ExpressionAlgebras concise and consistent, implement new-styled builders both for ASM and F. expressions 2020-06-13 02:26:12 +07:00
09641a5c9c Documentation 2020-06-12 16:59:36 +03:00
2751cee926 MST expression 2020-06-12 16:56:58 +03:00
5e92d85c46 Separate ast module 2020-06-12 10:40:59 +03:00