plurimath 0.11.12 → 0.11.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/dependent-tests.yml +7 -0
  3. data/.github/workflows/shared-testsuite.yml +24 -0
  4. data/.gitmodules +3 -0
  5. data/.rspec-opal +3 -0
  6. data/Gemfile +18 -0
  7. data/README.adoc +297 -3
  8. data/docs/catalog.adoc +73 -0
  9. data/docs/uncertainty-asciimath-tree.md +92 -0
  10. data/docs/uncertainty.adoc +522 -0
  11. data/lib/plurimath/asciimath/parse.rb +43 -226
  12. data/lib/plurimath/asciimath/parser.rb +58 -1
  13. data/lib/plurimath/asciimath/slice_adapter.rb +138 -0
  14. data/lib/plurimath/asciimath/transform.rb +218 -0
  15. data/lib/plurimath/asciimath.rb +1 -0
  16. data/lib/plurimath/catalog/entry.rb +109 -0
  17. data/lib/plurimath/catalog/validation.rb +109 -0
  18. data/lib/plurimath/catalog.rb +96 -0
  19. data/lib/plurimath/cli/convert.rb +40 -0
  20. data/lib/plurimath/cli/helpers.rb +49 -0
  21. data/lib/plurimath/cli/render.rb +64 -0
  22. data/lib/plurimath/cli.rb +55 -57
  23. data/lib/plurimath/documentation.rb +99 -0
  24. data/lib/plurimath/errors/ambiguous_decimal_error.rb +19 -0
  25. data/lib/plurimath/errors/invalid_uncertainty.rb +18 -0
  26. data/lib/plurimath/errors/missing_dependency_error.rb +23 -0
  27. data/lib/plurimath/errors/rendering_failed.rb +17 -0
  28. data/lib/plurimath/errors/rendering_unavailable.rb +25 -0
  29. data/lib/plurimath/errors/unsupported_render_format.rb +18 -0
  30. data/lib/plurimath/errors/unsupported_semantic_tree_error.rb +12 -0
  31. data/lib/plurimath/errors.rb +5 -0
  32. data/lib/plurimath/math/evaluation/evaluator.rb +48 -0
  33. data/lib/plurimath/math/evaluation/expression_parser.rb +29 -20
  34. data/lib/plurimath/math/formula/class_tree.rb +92 -0
  35. data/lib/plurimath/math/formula.rb +43 -2
  36. data/lib/plurimath/math/function/abs.rb +6 -0
  37. data/lib/plurimath/math/function/arccos.rb +6 -0
  38. data/lib/plurimath/math/function/arcsin.rb +6 -0
  39. data/lib/plurimath/math/function/arctan.rb +6 -0
  40. data/lib/plurimath/math/function/arg.rb +20 -0
  41. data/lib/plurimath/math/function/bar.rb +6 -0
  42. data/lib/plurimath/math/function/base.rb +6 -0
  43. data/lib/plurimath/math/function/binary_function.rb +4 -0
  44. data/lib/plurimath/math/function/cancel.rb +6 -0
  45. data/lib/plurimath/math/function/ceil.rb +6 -0
  46. data/lib/plurimath/math/function/color.rb +12 -0
  47. data/lib/plurimath/math/function/cos.rb +6 -0
  48. data/lib/plurimath/math/function/cosh.rb +6 -0
  49. data/lib/plurimath/math/function/cot.rb +6 -0
  50. data/lib/plurimath/math/function/coth.rb +6 -0
  51. data/lib/plurimath/math/function/csc.rb +6 -0
  52. data/lib/plurimath/math/function/csch.rb +6 -0
  53. data/lib/plurimath/math/function/ddot.rb +6 -0
  54. data/lib/plurimath/math/function/deg.rb +6 -0
  55. data/lib/plurimath/math/function/det.rb +6 -0
  56. data/lib/plurimath/math/function/dim.rb +6 -0
  57. data/lib/plurimath/math/function/dot.rb +6 -0
  58. data/lib/plurimath/math/function/exp.rb +6 -0
  59. data/lib/plurimath/math/function/fenced.rb +6 -0
  60. data/lib/plurimath/math/function/floor.rb +6 -0
  61. data/lib/plurimath/math/function/font_style/bold-fraktur.rb +6 -0
  62. data/lib/plurimath/math/function/font_style/bold-italic.rb +6 -0
  63. data/lib/plurimath/math/function/font_style/bold-sans-serif.rb +6 -0
  64. data/lib/plurimath/math/function/font_style/bold-script.rb +6 -0
  65. data/lib/plurimath/math/function/font_style/bold.rb +6 -0
  66. data/lib/plurimath/math/function/font_style/double_struck.rb +6 -0
  67. data/lib/plurimath/math/function/font_style/fraktur.rb +6 -0
  68. data/lib/plurimath/math/function/font_style/italic.rb +6 -0
  69. data/lib/plurimath/math/function/font_style/monospace.rb +6 -0
  70. data/lib/plurimath/math/function/font_style/normal.rb +6 -0
  71. data/lib/plurimath/math/function/font_style/sans-serif-bold-italic.rb +6 -0
  72. data/lib/plurimath/math/function/font_style/sans-serif-italic.rb +6 -0
  73. data/lib/plurimath/math/function/font_style/sans-serif.rb +6 -0
  74. data/lib/plurimath/math/function/font_style/script.rb +6 -0
  75. data/lib/plurimath/math/function/font_style.rb +4 -0
  76. data/lib/plurimath/math/function/frac.rb +6 -0
  77. data/lib/plurimath/math/function/gcd.rb +6 -0
  78. data/lib/plurimath/math/function/glb.rb +12 -0
  79. data/lib/plurimath/math/function/hat.rb +6 -0
  80. data/lib/plurimath/math/function/hom.rb +6 -0
  81. data/lib/plurimath/math/function/inf.rb +6 -0
  82. data/lib/plurimath/math/function/int.rb +7 -1
  83. data/lib/plurimath/math/function/intent.rb +35 -0
  84. data/lib/plurimath/math/function/ker.rb +6 -0
  85. data/lib/plurimath/math/function/lcm.rb +12 -0
  86. data/lib/plurimath/math/function/lg.rb +6 -0
  87. data/lib/plurimath/math/function/lim.rb +6 -0
  88. data/lib/plurimath/math/function/liminf.rb +6 -0
  89. data/lib/plurimath/math/function/limits.rb +6 -0
  90. data/lib/plurimath/math/function/limsup.rb +6 -0
  91. data/lib/plurimath/math/function/ln.rb +6 -0
  92. data/lib/plurimath/math/function/log.rb +6 -0
  93. data/lib/plurimath/math/function/longdiv.rb +6 -0
  94. data/lib/plurimath/math/function/lub.rb +6 -0
  95. data/lib/plurimath/math/function/max.rb +6 -0
  96. data/lib/plurimath/math/function/mbox.rb +6 -0
  97. data/lib/plurimath/math/function/menclose.rb +19 -0
  98. data/lib/plurimath/math/function/merror.rb +22 -0
  99. data/lib/plurimath/math/function/min.rb +6 -0
  100. data/lib/plurimath/math/function/mlabeledtr.rb +23 -0
  101. data/lib/plurimath/math/function/mod.rb +6 -0
  102. data/lib/plurimath/math/function/msgroup.rb +20 -0
  103. data/lib/plurimath/math/function/multiscript.rb +6 -0
  104. data/lib/plurimath/math/function/nary.rb +11 -0
  105. data/lib/plurimath/math/function/norm.rb +6 -0
  106. data/lib/plurimath/math/function/obrace.rb +6 -0
  107. data/lib/plurimath/math/function/oint.rb +7 -1
  108. data/lib/plurimath/math/function/over.rb +6 -0
  109. data/lib/plurimath/math/function/overleftrightarrow.rb +6 -0
  110. data/lib/plurimath/math/function/overset.rb +6 -0
  111. data/lib/plurimath/math/function/phantom.rb +6 -0
  112. data/lib/plurimath/math/function/power.rb +6 -0
  113. data/lib/plurimath/math/function/power_base.rb +6 -0
  114. data/lib/plurimath/math/function/prod.rb +7 -1
  115. data/lib/plurimath/math/function/right.rb +1 -1
  116. data/lib/plurimath/math/function/root.rb +6 -0
  117. data/lib/plurimath/math/function/rule.rb +20 -0
  118. data/lib/plurimath/math/function/scarries.rb +20 -0
  119. data/lib/plurimath/math/function/sec.rb +6 -0
  120. data/lib/plurimath/math/function/sech.rb +6 -0
  121. data/lib/plurimath/math/function/semantics.rb +20 -0
  122. data/lib/plurimath/math/function/sin.rb +6 -0
  123. data/lib/plurimath/math/function/sinh.rb +6 -0
  124. data/lib/plurimath/math/function/sqrt.rb +6 -0
  125. data/lib/plurimath/math/function/stackrel.rb +6 -0
  126. data/lib/plurimath/math/function/substack.rb +6 -0
  127. data/lib/plurimath/math/function/sum.rb +7 -1
  128. data/lib/plurimath/math/function/sup.rb +6 -0
  129. data/lib/plurimath/math/function/table/align.rb +6 -0
  130. data/lib/plurimath/math/function/table/array.rb +6 -0
  131. data/lib/plurimath/math/function/table/bmatrix.rb +6 -0
  132. data/lib/plurimath/math/function/table/cases.rb +6 -0
  133. data/lib/plurimath/math/function/table/eqarray.rb +6 -0
  134. data/lib/plurimath/math/function/table/matrix.rb +6 -0
  135. data/lib/plurimath/math/function/table/multline.rb +6 -0
  136. data/lib/plurimath/math/function/table/pmatrix.rb +6 -0
  137. data/lib/plurimath/math/function/table/split.rb +6 -0
  138. data/lib/plurimath/math/function/table/vmatrix.rb +6 -0
  139. data/lib/plurimath/math/function/table.rb +10 -0
  140. data/lib/plurimath/math/function/tan.rb +6 -0
  141. data/lib/plurimath/math/function/tanh.rb +6 -0
  142. data/lib/plurimath/math/function/ternary_function.rb +4 -0
  143. data/lib/plurimath/math/function/text.rb +6 -0
  144. data/lib/plurimath/math/function/tilde.rb +6 -0
  145. data/lib/plurimath/math/function/ubrace.rb +6 -0
  146. data/lib/plurimath/math/function/ul.rb +6 -0
  147. data/lib/plurimath/math/function/unary_function.rb +4 -0
  148. data/lib/plurimath/math/function/uncertainty.rb +655 -0
  149. data/lib/plurimath/math/function/underover.rb +6 -0
  150. data/lib/plurimath/math/function/underset.rb +6 -0
  151. data/lib/plurimath/math/function/vec.rb +6 -0
  152. data/lib/plurimath/math/function.rb +1 -0
  153. data/lib/plurimath/math/renderer.rb +95 -0
  154. data/lib/plurimath/math/semantic_tree.rb +331 -0
  155. data/lib/plurimath/math/symbols/symbol.rb +2 -0
  156. data/lib/plurimath/math.rb +26 -0
  157. data/lib/plurimath/mathml/translator.rb +32 -0
  158. data/lib/plurimath/mathml/uncertainty_marker.rb +118 -0
  159. data/lib/plurimath/omml/translator.rb +68 -0
  160. data/lib/plurimath/omml/utility.rb +9 -1
  161. data/lib/plurimath/symbol_documentation.rb +57 -0
  162. data/lib/plurimath/unicode_math/parsing_rules/common_rules.rb +2 -1
  163. data/lib/plurimath/unicode_math/parsing_rules/masked.rb +3 -0
  164. data/lib/plurimath/unicode_math/transform.rb +64 -3
  165. data/lib/plurimath/unicode_math/utility.rb +38 -0
  166. data/lib/plurimath/version.rb +1 -1
  167. data/lib/plurimath.rb +3 -0
  168. data/plurimath.gemspec +3 -1
  169. data/scripts/replay_asciimath_corpus.rb +611 -0
  170. metadata +30 -4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plurimath
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.12
4
+ version: 0.11.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-20 00:00:00.000000000 Z
11
+ date: 2026-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.65
47
+ version: 0.8.155
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.8.65
54
+ version: 0.8.155
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mml
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -179,6 +179,7 @@ files:
179
179
  - ".github/workflows/plurimath_js.yml"
180
180
  - ".github/workflows/rake.yml"
181
181
  - ".github/workflows/release.yml"
182
+ - ".github/workflows/shared-testsuite.yml"
182
183
  - ".gitignore"
183
184
  - ".gitmodules"
184
185
  - ".hound.yml"
@@ -199,6 +200,9 @@ files:
199
200
  - UnitsML-Supported-Data.adoc
200
201
  - bin/console
201
202
  - bin/setup
203
+ - docs/catalog.adoc
204
+ - docs/uncertainty-asciimath-tree.md
205
+ - docs/uncertainty.adoc
202
206
  - exe/plurimath
203
207
  - intent_supported_classes.adoc
204
208
  - lib/plurimath.rb
@@ -206,13 +210,22 @@ files:
206
210
  - lib/plurimath/asciimath/constants.rb
207
211
  - lib/plurimath/asciimath/parse.rb
208
212
  - lib/plurimath/asciimath/parser.rb
213
+ - lib/plurimath/asciimath/slice_adapter.rb
209
214
  - lib/plurimath/asciimath/transform.rb
210
215
  - lib/plurimath/asciimath/utility.rb
211
216
  - lib/plurimath/base_number_prefix.rb
217
+ - lib/plurimath/catalog.rb
218
+ - lib/plurimath/catalog/entry.rb
219
+ - lib/plurimath/catalog/validation.rb
212
220
  - lib/plurimath/cli.rb
221
+ - lib/plurimath/cli/convert.rb
222
+ - lib/plurimath/cli/helpers.rb
223
+ - lib/plurimath/cli/render.rb
213
224
  - lib/plurimath/configuration.rb
214
225
  - lib/plurimath/deprecation.rb
226
+ - lib/plurimath/documentation.rb
215
227
  - lib/plurimath/errors.rb
228
+ - lib/plurimath/errors/ambiguous_decimal_error.rb
216
229
  - lib/plurimath/errors/configuration_error.rb
217
230
  - lib/plurimath/errors/deprecation_error.rb
218
231
  - lib/plurimath/errors/error.rb
@@ -227,11 +240,17 @@ files:
227
240
  - lib/plurimath/errors/evaluation/unsupported_expression_error.rb
228
241
  - lib/plurimath/errors/invalid_number.rb
229
242
  - lib/plurimath/errors/invalid_type_error.rb
243
+ - lib/plurimath/errors/invalid_uncertainty.rb
244
+ - lib/plurimath/errors/missing_dependency_error.rb
230
245
  - lib/plurimath/errors/omml/unsupported_node_error.rb
231
246
  - lib/plurimath/errors/parse_error.rb
232
247
  - lib/plurimath/errors/parse_option_error.rb
248
+ - lib/plurimath/errors/rendering_failed.rb
249
+ - lib/plurimath/errors/rendering_unavailable.rb
233
250
  - lib/plurimath/errors/unsupported_base.rb
234
251
  - lib/plurimath/errors/unsupported_locale.rb
252
+ - lib/plurimath/errors/unsupported_render_format.rb
253
+ - lib/plurimath/errors/unsupported_semantic_tree_error.rb
235
254
  - lib/plurimath/formatter.rb
236
255
  - lib/plurimath/formatter/numbers.rb
237
256
  - lib/plurimath/formatter/numbers/base.rb
@@ -275,6 +294,7 @@ files:
275
294
  - lib/plurimath/math/evaluation/expression_parser.rb
276
295
  - lib/plurimath/math/evaluation/iteration.rb
277
296
  - lib/plurimath/math/formula.rb
297
+ - lib/plurimath/math/formula/class_tree.rb
278
298
  - lib/plurimath/math/formula/mrow.rb
279
299
  - lib/plurimath/math/formula/mstyle.rb
280
300
  - lib/plurimath/math/function.rb
@@ -400,12 +420,15 @@ files:
400
420
  - lib/plurimath/math/function/ubrace.rb
401
421
  - lib/plurimath/math/function/ul.rb
402
422
  - lib/plurimath/math/function/unary_function.rb
423
+ - lib/plurimath/math/function/uncertainty.rb
403
424
  - lib/plurimath/math/function/underover.rb
404
425
  - lib/plurimath/math/function/underset.rb
405
426
  - lib/plurimath/math/function/unitsml.rb
406
427
  - lib/plurimath/math/function/vec.rb
407
428
  - lib/plurimath/math/model_helper.rb
408
429
  - lib/plurimath/math/number.rb
430
+ - lib/plurimath/math/renderer.rb
431
+ - lib/plurimath/math/semantic_tree.rb
409
432
  - lib/plurimath/math/symbols.rb
410
433
  - lib/plurimath/math/symbols/aa.rb
411
434
  - lib/plurimath/math/symbols/ac.rb
@@ -1873,6 +1896,7 @@ files:
1873
1896
  - lib/plurimath/mathml/formula_transformation.rb
1874
1897
  - lib/plurimath/mathml/parser.rb
1875
1898
  - lib/plurimath/mathml/translator.rb
1899
+ - lib/plurimath/mathml/uncertainty_marker.rb
1876
1900
  - lib/plurimath/mathml/utility.rb
1877
1901
  - lib/plurimath/number_formatter.rb
1878
1902
  - lib/plurimath/omml.rb
@@ -1883,6 +1907,7 @@ files:
1883
1907
  - lib/plurimath/setup/oga.rb
1884
1908
  - lib/plurimath/setup/opal.rb.erb
1885
1909
  - lib/plurimath/setup/ox_engine.rb
1910
+ - lib/plurimath/symbol_documentation.rb
1886
1911
  - lib/plurimath/unicode_math.rb
1887
1912
  - lib/plurimath/unicode_math/constants.rb
1888
1913
  - lib/plurimath/unicode_math/parse.rb
@@ -1911,6 +1936,7 @@ files:
1911
1936
  - lib/plurimath/xml_engine/ox_engine/element.rb
1912
1937
  - lib/plurimath/xml_helper.rb
1913
1938
  - plurimath.gemspec
1939
+ - scripts/replay_asciimath_corpus.rb
1914
1940
  - supported_parens_list.adoc
1915
1941
  - supported_symbols_list.adoc
1916
1942
  homepage: https://github.com/plurimath/plurimath