Change log

Summary of changes for release candidate 1484 - display of variable and function binding - new data types for complex, row- and column-vectors - root finding by Newton's method - symbolic root finding for polynomials - keyboard caches special symbols - pinch-spread/shift-scroll gestures for text size - modified touch/mouse adapter - enhanced symbolic recognition of numeric constants - introduction of alternate complex notation ⅉ - better support for constant of integration ĉ - Euler transformation - linear systems and linear surfaces

Major changes by build number

Build Description
1473 Android keyboard repairs
1474 Pinch-Zoom/shift-scroll: algebra, replay, grammar, plot
1475 Preferences registry
1476 Refactored replay and grammar to use platform-independent touch/mouse adapter and common helper
1477 Fixed problem with Unicode → when generating function signature
1479 enhanced special simplification of sin, cos, tan, cot, sec, csc for fractions of pi
1480 rebuilt common TouchInterface and referencing desktop TouchListener and tablet TouchListener
1481 introduced alternate complex notation using , added simplification rules, added Euler transformation
1482 added subtypes for bool, integer, real, complexj to make subtype discrimination more efficient; test for Type.real changed to Type.isNumeric() is true for all for numeric types.
1483 Substitution and transformation rules will be discarded if they are not referenced again within a minute.
1484 Internal release candidate
1485 Internal release candidate
1486 Internal release candidate
1487 Internal release candidate
1488 Internal release candidate
1489 Internal release candidate
1490 Internal release candidate

Minor changes by build number

Build Description
1478 Fixed problem problem with display of ⅈ as exponent
1478 title of substitution selection dialog
1478 special simplification of cos (ℼ÷2) yielded a number close to zero; fixed by using createConst(Math.round(value)) when isInteger(value) is true
1478 changed display of (0,-1)i to (-1)ⅈ
1479 fixed inconsistency in special simplify applied to matrix which was not consistent with special simplify applied to tuple
1479 move expansion of 5/4 to 1+1/4 from special simplify to distribute
1479 factor applied to complex expression separates the real from the complex
1479 move-left/-right applied to denominator of real or imaginary part of complex expression multiplies both parts by the denominator and multiplies the complex by the inverse of the denominator.
1479 special simplify applied to a complex value applies special simplification to each component in turn, consistent with special simplification for tuples and matrices
1479 fixed bug in simplification generator: depatterning converted ?* to var instead of leaving it as expression
1479 added rule for combining complex exponents of multiplicands to complex simplifier
1479 changed complex variables to use bold case: x i displays as xⅈ
1479 the derivative of a complex value is a complex value composed of the derivatives of the real and imaginary parts
1479 factor applied to a component of a complex value sets that component to 1, divides the other component by the factor and multiplies the result by the factor; (a, b)ⅈ factored on a yields a⋅(1, b÷a)ⅈ and (a, b)ⅈ factored on b yields b⋅(a÷b, 1)ⅈ
1479 click on folder in properties display failed due to bad parsing in ExprParagraph with empty «»
1479 double click in plotter (desktop) problem introduced in build 1476
1480 more tlc on touch listener; abandoned double click because it slows down user experience on single clicks
complex simplification permitted complex imaginary part (illegal)
enhanced integer exponentiation of complex with zero real part to include non-constant imaginary part
repaired factor for subtract with leading negation: -(2⋅x)-2⋅x factors to -(2⋅x-x)
1481 repairs to equation isolator
added appendix "fundamentals" to guide
android: fixed save/restore for keyboard state
1482 arg function for complex
(sin (A+B)) !distribute=sin A⋅cos B+sin B⋅cos A
(30+45) ° !distribute=30 °+45 °
convergent simplification used in matrix reduction
inline selection support for all rootable types and integral decorations
auto-morph numeric to integer, real
1485Fixed a bug in alignment expression where old right side was left denested
constant of integration now combines with other constants
special characters in ExpressionModel replaced with Unicode.symbol references
1486APK failed to find license file
Android: honour penSize when measuring div and drawing horizontal lines; issue arises on high-resolution tablets
Android: fixed bug in auto-keyboard selection; fixed keyboard-specification tables
1487PolynomialExpression parser returned error instead of throwing exception
1488Documentation updates
1489Updated copyright date to 2018
bug in scanner due to Unicode char in string literal; replaced with \uxxxx notation
Android: Gauss helper buttons not working, caused by lack of license feature; modified listener to complain of missing license feature
Android: missing search button in bookreader on small screens; added (redundant) Search item to menu
Android: tweaked plotter to use screen density on high-density devices
tweaked painter in grammar component for better display of text (antialiasing)
1490Android: changed location of myron files from getUserDir() to getFilesDir() to conform with usage of FilesProvider; repaired email interface
ExprRelop now checks both sides for hasArray() before calling comparing two arrays; previously would fail when comparing a collection to a scalar
Fixed a bug in ViewModel restoration that left descent as always zero
Android: Revised Dropbox interface
Removed books dialog. Extra books are read from the Files display and are redisplayed using the book icon. The Myron Guide is redisplayed implicitly in response to context-sensitive help or explicitly using System Myron Guide
Desktop: Changed system property java.io.tmp to ~user/Myron/tmp. Debian has permissions on /tmp that prohibit a non-setuid user from creating files there. This issue shows up when SwingPainter fails to load fonts from jar resources. Turns out creating a font requires access to the /tmp folder.
Updated installers for Windows and Linux.

Code size

Project Lines of code
AlgebraExpression 64197
AlgebraGeometry 986
AlgebraGen 2186
AlgebraRegression 6830
AlgebraSwing 11399
AlgebraAndroid 13973
DropboxChooser 594
BookBuilder 4859
Common 4369