- now Expression.is_numeric() accepts an Evaluation object as a parameter, to use the definitions.
- To numerify expressions, the function apply_N was introduced in the module mathics.builtin.numeric to avoid the idiom Expression("N", expr, prec).evaluate(evaluation). The idea is to avoid when it is possible to call the Pattern matching routines to obtain the numeric value of an expression.
- A bug comming from a failure in the order in which mathics.core.definitions stores the rules was fixed.
Guidermannian
Tensor functions:
RotationTransformScalingTransformShearingTransformTransformationFunctionTranslationTransform
Spherical Bessel functions:
SphericalBesselJSphericalBesselYSphericalHankelH1SphericalHankelH2
Gamma functions:
PolyGammaStieltjes
Uniform Polyhedron
* Dodecahedron
* Icosahedron
* Octahedron
* TetraHedron
* UniformPolyedron
- Fix and document better behavior of
Quantile - Improve Asymptote ``BezierCurve``implementation
Rationalizegives symmetric results for +/- like MMA does. If the result is an integer, it stays that way.- stream processing was redone.
InputStream,OutputStreamandStringToStreamshould all open, close, and assign stream numbers now
The main thrust behind this API-breaking release is to be able to support a protocol for Graphics3D.
It new Graphics3D protocol is currently expressed in JSON. There is an independent threejs-based module to implement this. Tiago Cavalcante Trindade is responsible for this code.
The other main API-breaking change is more decentralization of the Mathics Documentation. A lot more work needs to go on here, and so there will be one or two more API breaking releases. After this release, the documentation code will be split off into its own git repository.
- a Graphics3D protocol, mentioned above, has been started
mathics.settinghave been gone over to simplify.- A rudimentary and crude SVG Density Plot was added. The prior method relied on mysterious secret handshakes in JSON between Mathics Core and Mathics Django. While the density plot output was nicer in Mathics Django, from an overall API perspective this was untenable. A future version may improve SVG handling of Density plots using elliptic density gratings in SVG. And/or we may define this in the JSON API.
- SVG and Asymptote drawing now includes inline comments indicating which Box Structures are being implemented in code
- Document data used in producing PDFs and HTML-rendered documents is now stored in both the user space, where it can be extended, and in the package install space -- which is useful when there is no user-space data.
- The documentation pipeline has been gone over. Turning the internal data
into a LaTeX file is now a separate own program. See
mathics/doc/test/README.rstfor an overview of the dataflow needed to create a PDF. - Summary text for various built-in functions has been started. These summaries are visible in Mathics Django when lists links are given in Chapters, Guide Sections, or Sections.
- A Sections for Lists has been started and grouping for these have been added. So code and sections have moved around here.
- Regexp detection of tests versus document text has been improved.
- Documentation improved
- The flakiness around showing sine graphs with filling on the axes or below has been addressed. We now warn when a version of Asymptote or Ghostscript is used that is likely to give a problem.
- A small SVGTransform bug was fixed. Thanks to axelclk for spotting.
- Elliptic arcs are now supported in Asymptote. There still is a bug however in calculating the bounding box when this happens.
- A bug in image decoding introduced in 3.1.0 or so was fixed.
- A bug SVG LineBoxes was fixed
- Some of the test output for buitins inside a guide sections is not automatically rendered
- Density plot rendered in Mathics Django do not render as nice since we no longer use the secret protocol handshake hack. We may fix this in a future release
- Some of the Asymptote graphs look different. Graphic3D mesh lines are not as prominent or don't appear. This is due to using a newer version of Asymptote, and we will address this in a future release.
Arrowfor Graphics3D (preliminary)Cylinder(preliminary)Factorial2PR #1459 Issue #682
Large sections like the "Strings and Characters", "Integer Functions" and "Lists" sections have been broken up into subsections. These more closely match online WL "Guide" sections. This is beneficial not just in the documentation, but also for code organization. See PRs #1464, #1473.
A lot more work is needed here.
The Introduction section of the manual has been revised. Licensing and Copyright/left sections have been reformatted for non-fixed-width displays. #1474
PolarPlot documentation was improved. #1475.
A getter/setter method for Mathics settings was added #1472.
- Add
requirements-*.txt``to distribution files. ``pip install Mathics3[dev]should work now. PR #1461 - Some
PointBoxbugs were fixed - Some
Arrow3DBoxandPoint3DBoxbugs were fixed PR #1463 - Fix bug in
mathicsCLI when-scriptand-ewere combined PR #1455
Overall there is a major refactoring underway of how formatting works and its interaction with graphics. More work will come in later releases.
Some of the improvements are visible not here but in the front-ends mathicsscript and mathics-django. In mathicsscript, we can now show SVG images (via matplotlib). In Mathics Django, images and threejs graphs are no longer embedded in MathML.
A lot of the improvements in this release were done or made possible with the help of Tiago Cavalcante Trindade.
It is now possible to get back SVG, and graphics that are not embedded in MathML.
The code is now Pyston 2.2 compatible. However scipy lxml are
not currently available on Pyston so there is a slight loss of
functionality. The code runs about 30% faster under Pyston 2.2. Note
that the code also works under PyPy 3.7.
- Tick marks and the placement of numbers on charts have been corrected. PR #1437
- Asymptote now respects the
PointSizesetting. - In graphs rendered in SVG, the
PointSizehas been made more closely match Mathematica. - Polygons rendered in Asymptote now respects the even/odd rule for filling areas.
Density Plots rendered in SVG broke with this release. They will be reinstated in the future.
Go over settings file to ensure usage names are full sentences.
We have started to put more builtins in the sections or subsections following the organization in Mathematics 5 or as found in the online Wolfram Language Reference. As a result, long lists in previous topics are a bit shorter and there are now more sections. This work was started in 2.2.0.
More work is needed on formatting and showing this information, with the additional breakout we now have subsections. More reorganization and sectioning is needed.
These cleanups will happen in a future version.
Chapters without introductory text like Structural Operations, or Tensors have had descriptions added.
Sections that were empty have either been expanded or removed because
the underlying name was never a user-level built in, e.g. the various
internal Boxing functions like DiskBox, or CompiledCodeBox
Documentation specific builtins like PolarPlot or
BernsteinBasis have been added improved, and document examples
have been revised such as for PieChart, Pi and others.
The Mathics Gallery examples have been updated.
Some slight improvements were made to producing the PDF and more kinds of non-ASCII symbols are tolerated. Expect more work on this in the future via tables from the Mathics Scanner project.
Chapters are no longer in Roman Numerals.
docpipline.pyaccepts the option--chaptersor-cto narrow tests to a particular chapter- Format routines have been isolated into its own module. Currently we have format routines for SVG, JSON and Asymptote. Expect more reorganization in the future.
- Boxing routines have been isolated to its own module.
- The entire code base has been run through the Python formatter black.
- More Python3 types to function signatures have been added.
- More document tests that were not user-visible have been moved to unit tests which run faster. More work is needed here.
- SymPy 1.8
ArgCoefficientArraysandCollect(#1174, #1194)DispatchFullSimplifyLetterNumber#1298. Thealphabetparameter supports only a minimal number of languages.MemoryAvailableMemoryInUseNandandNorlogical functions.Series,OandSeriesDataStringReverse$SystemMemory- Add all of the named colors, e.g.
BrownorLighterMagenta.
- a function evaluate_predicate allows for a basic predicate evaluation using $Assumptions.
Attributesaccepts a string parameter.Casesaccepts Heads option. Issue #1302.ColorNegatefor colors is supported.DandDerivativeimprovements.ExpandandExpandAllnow support a second parameterpattIssue #1301.ExpandandExpandAllworks with hyperbolic functions (Sinh, Cosh, Tanh, Coth).FileNamesreturns a sorted list (#1250).FindRootnow accepts several optional parameters likeMethodandMaxIterations. See Issue #1235.FixedPointnow supports theSameTestoption.mathicsCLI now uses its own Mathicssettings.mfilePrependworks withDownValuesIssue #1251PrimeandPrimePinow accept a list parameter and have theNumericFunctionattribute.ReadwithHold[Expression]now supported. (#1242)ReplaceRepeatedandFixedPointnow supports theMaxIterationoption. See Issue #1260.Simplifyperforms a more sophisticated set of simplifications.Simplifyaccepts a second parameter that temporarily overwrites$Assumptions.StringTakenow accepts form containing a list of strings and specification. See Issue #1297.Table[expr, n] is supported.ToExpressionhandles multi-line string input.ToStringaccepts an optional form parameter.ToExpressionhandles multi-line string input.$VersionNumbernow set to 10.0 (was 6.0).- The implementation of Streams was redone.
- Function
mathics.core.definitions.autoload_fileswas added and exposed to allow front-ends to provide their own custom Mathics. settings. - String output in the
mathicsterminal has surrounding quotes to make it more visually distinct from unexpanded and symbol output. To disable this behavior use--strict-wl-output.
SetTagDelayednow does not evaluate the RHS before assignment.$InstallationDirectorystarts outUnprotected.FindRootnow handles equations.- Malformed Patterns are detected and an error message is given for them.
- Functions gone over to ensure the
ListableandNumericFunctionproperties are correct.
System`$UseSansSerifmoved from core and is sent front-ends usingSettings`$UseSansSerif.
docpipeline.pyaccepts the option-dto show how long it takes to parse, evaluate and compare each individual test.-xoption (akin topytests -xis a short-hand for stop on first error- Some builtin functions have been grouped together in a module
underneath the top-level builtin directory. As a result, in the
documents you will list some builtins listed under an overarching
categery like
Specific FunctionsorGraphics, Drawing, and Images. More work is expected in the future to improve document sectioning. System`$Notebooksis removed from settings. It is in all of the front-ends now.
ArcTanhByteArrayCreateFileCreateTemporaryFileNamesNIntegratePartitionsP$NotebooksSparseArray
- The Mathics version is checked for builtin modules at load time. A message is given when a builtin doesn't load.
- Automatic detection for the best strategy to numeric evaluation of constants.
FileNameJoinnow implementsOperatingSystemoption- Mathics functions are accepted by
Compile[]. The return value or type will beCompile[] and CompiledFunction[]. Every Mathics Expression can have a compiled form, which may be implemented as a Python function. Equal[]now compares complex against other numbers properly.- Improvements in handling products with infinite factors:
0 Infinity->Indeterminate, andexpr Infinity->DirectedInfinite[expr] $Pathis nowUnprotectedby defaultRead[]handles expressions better.StringSplit[]now accepts a list in the first argument.SetDelayed[]now accepts several conditions imposed both at LHS as well as RHS.- Axes for 2D Plots are now rendered for SVGs
InsertBoxaccepts an opaque parameter
TeXForm[]for integrals are now properly formatted.
- Pymathics modules now can run initialization code when are loaded.
- The
builtinslist is not hard-linked to the library anymore. This simplifies the loading and reloading of pymathics modules. - Decoupling of BoxConstructors from the library. Now are defined at the level of the definition objects. This is useful for customizing the Graphics output if it is available.
- A pass was made to improve Microsoft Windows compatibility and testing Windows under MSYS.
- Include numpy version in version string. Show in CLI
- Small CLI tweaks
--colors=Noneadded to match mathicsscript. - In the
BaseExpressionand derived classes, the methodboxes_to_xmlnow are calledboxes_to_mathml. - In the
formatmethod of the classEvaluation, the builtinToStringis called instead ofboxes_to_text - In order to control the final form of boxes from the user space in specific symbols and contexts.
GraphicsBoxnow have two methods:to_svgandto_mathml. The first produces SVG plain text while the second produces<mglyph ...>tags with base64 encoded SVGs.
- Improved
EqualSee PR #1209 - Better Unicode support, especially for Mathics operators
- Improved
D[]andDerivative[]See PR #1220. - Improved performance
Collect[]See Issue #1194.Series[]See Issue #1193.
To accommodate growth and increased use of pieces of Mathics inside other packages, parts of Mathics have been split off and moved to separate packages. In particular:
- The Django front-end is now a PyPI installable package called Mathics-Django.
- Scanner routines, character translation tables to/from Unicode, and character properties are now `mathics-scanner https://github.com/Mathics3/mathics-scanner`_.
- Specific builtins involving heavy, non-standard routines were moved to pymathics modules `pymathics-graph https://github.com/Mathics3/pymathics-graph`_, `pymathics-natlang https://github.com/Mathics3/pymathics-natlang`_.
-e--executeis better suited for embedded use. It shows just evaluation output as text.- Docker scripts
dmathics,dmathicsscriptanddmathicsserverhave been removed. They are part of thedocker-mathicsa separate PyPI package.
The bump in the major version number reflects major changes in this release. Another major release is planned soon, with more major changes.
See below for future work planned.
AnglePath,AnglePathFold,AngleVectorBoxData,TextData,InterpretationBox,StyleBox,TagBox,TemplateBox,ButtonBox,InterpretationBoxContinuedFractionConvertCommonDumpRemoveLinearSyntaxandSystem`ConvertersDumpcontext variablesFirstCase,Lookup,Key,LookupandFailureHaversine,InverseHaversineInsertandDeleteLerchPhiMathicsVersion(this is not in WL)NumberQPossibleZeroQPR #1100RunShowSympyObjectTimeRemainingandTimeConstrained\[RadicalBox]- Improving support for options in the Plot module:
Axes,Filling,ImageSize,Joined
Mathematical Constants is now its own module/section. Constants have been filled out. These constants have been added:
CatalanDegreeGlaisherGoldenRatioKhinchin
Many of these and the existing constants are computable via mpmath, NumPy, or Sympy.
Certain aspects of the kernel configuration are now controlled by variables, defined in /autoad/settings.m.
$GetTrace(Falseby default). Defines if when a WL module is load throughGet, definitions will be traced (for debug).$PreferredBackendMethodSet this do whether to use mpmath, NumPy or SymPy for numeric and symbolic constants and methods when there is a choice ("sympy"by default) (see #1124)
- Add
Methodoption "mpmath" to computeEigenvaluesusing mpmath (#1115). - Improve support for
OptionValueandOptionsPattern(#1113)
Numerous bugs were fixed while working on Combinatorica V0.9 and CellsToTeX.
Suminvolving numeric integer bounds involving Mathics functions fixed.EqualUnEqualtesting on Strings (#1128).
- Start a readthedocs Developer Guide
- Fix evaluation timeouts
Sum's lower and upper bounds can now be Mathics expressions
- Enlarge the set of
gries_schneidertests - Improve the way builtins modules are loaded at initialization time (#1138).
- We are in the process of splitting out graphics renderers, notably for matplotlib. See pymathics-matplotlib.
- Work is also being done on asymptote. See PR #1145.
- Makeboxes is being decoupled from a renderer. See PR #1140.
- Inline SVG will be supported (right now SVG is binary).
- Better support integrating Unicode in output (such as for Rule arrows) is in the works. These properties will be in the scanner package.
- A method option ("mpmath", "sympy", or "numpy") will be added to the
N[]. See PR #1144.
This may be the last update before some major refactoring and interface changing occurs.
In a future 2.0.0 release, Django will no longer be bundled here. See mathics-django <https://github.com/Mathics3/mathics-django> for the unbundled replacement.
Some changes were made to support Pymathics Graph, a new graph package bundled separately, and to support the ability for front-ends to handle rendering on their own. Note that currently this doesn't integrate well into the Django interface, although it works well in mathicsscript.
- SymPy 1.7.1
Mathics Packages added:
DiscreteMath`CombinatoricaV0.9(preferred) andDiscreteMath`CombinatoricaV0.6.
Both of these correspond to Steven Skiena's older book: Implementing Discrete Mathematics: Combinatorics and Graph Theory.
If you have a package that you would like included in the distribution, and it works with Mathics, please contact us.
Rubi may appear in a future release, possibly in a year or so. Any help to make this happen sooner is appreciated.
StirlingS1,StirlingS2(not all WL variations handled)MapAt(not all WL variations handled)PythonForm,SympyForm: not in WL. Will show a crude translation to SymPy or Python. Expect more and better translation laterThrowandCatchWithFileNameTake
- Workaround for
Compileso it accepts functions ##1026 - Add
Traceoption toGet.Get["fn", Trace->True]will show lines as they are read - Convert to/from Boolean types properly in
from_python,to_python. Previously they were 0 and 1 - Extend
DeleteCasesto accept a levelspec parameter - Set
Evaluation#exc_resultto captureAborted,Timeout,Overflow1, etc. ImageDatachanged to get bits {0,1}, not booleans as previously- Add tokenizer symbols for
<->and->and the Unicode versions of those - Small corrections to
Needs, e.g check if already loaded, correct a typo, etc. System`$InputFileNameis now set insideNeedsandGet- Install shell scripts
dmathicserver,dmathicsscript, anddmathicsto simplify running docker - Adjust
$InputFileNameinsideGetandNeeds - Support for
Allas aPartspecification - Fix
BeginPackage - Improving support for
OptionValue. Now it supports list of Options - Adding support in
from_python()to convert dictionaries in list of rules - Fix
OptionsPatternassociated symbols
So we can get onto PyPI, the PyPI install name has changed from Mathics to Mathics3.
- Add Symbolic Comparisons. PR #1000
- Support for externally PyPI-packagable builtin modules - PyMathics
SetDirectoryfixes. PR #994- Catch
`PatternErrorExceptions - Fix formatting of
..and...(RepeatAll) - Tokenization of
\.without a following space (ReplaceAll). Issue #992 - Support for assignments to named
`Pattern` - Improve support for
`Names. PR #1003 - Add a
MathicsSessionclass to simplify running Mathics from Python. PR #1001 - Improve support for
`Protect`and`Unprotect`list of symbols and regular expressions. PR #1003
All major packages that Mathics needs have been updated for more recent releases. Specifically these include:
- Python: Python 3.6-3.9 are now supported
- Cython >= 0.15.1
- Django 3.1.x
- mpmath >= 1.1.0
- SymPy 1.6.2
Association,AssociationQ,FirstPostion,LeafCountAssociation,AssociationQ,Keys,Values#705BarChart[],PieChart,Histogram,DensityPlot#499BooleanQ,DigitQandLetterQCharacterEncodingoption forImport[]Coefficient[],Coefficient[x * y, z, 0],Coefficient*[]DiscreteLimit#922Environment- File read operations from URLs
FirstPostions,Integers,PrePendTo[]GetEnvironment# 938Integers,PrependToandContainsOnlyImportsupport for WL packagesIterationLimitLoadModuleMantissaExponent[],FractionalPart[],CubeRoot[]PolynomialQ[],MinimalPolynomial[]Quit[],Exit[]#523, #814,RealDigits#891, #691,Interrupt,UniqueRemoveDiacritics[],Transliterate[]#617Root#806Sign[],Exponent,Divisors,QuotientRemainder,FactorTermsList- Speedups by avoiding inner classes, #616
StringRiffle[],StringFreeQ[],StringContainsQ[],StringInsertSubsetQandDelete[]#688, #784,Subsets#685SystemTimeZoneand correctTimeZone#924System\`ByteorderingandSystem\`Environemnt#859$UseSansSerif#908randchoiceoption forNoNumPyRandomEnv#820- Support for
MATHICS_MAX_RECURSION_DEPTH - Option
--full-form(-F) onmathicsto parsedFullFormof input expressions
- speed up leading-blank patterns #625, #933
- support for iteration over Sequence objects in
Table,Sum, andProduct - fixes for option handling
- fixes for
Manipulate[x,{x,{a,b}}] - fixes rule -> rule case for
Nearest - fixes and enhancements to
WordCloud - added
StringTrim[] - fixes
URLFetchoptions - fixes
XMLGetStringand parse error - fixes
LanguageIdentify - fixes 2 <= base <= 36 in number parsing
- improved error messages
- fixes
Check,Interrupt, andUnique#696 - fixes
Eigenvalues,Eigenvectors#804 - fixes
Solve#806 - proper sympolic expantion for
ReandIm - fixes a bug in the evaluation of
SympyPrime#827 - clean up
ColorData - fixes Unicode characters in TeX document
- update Django gallery examples
- fixes
SumandProduct#869, #873 - warn when using options not supported by a Builtin #898, #645
- renamed
FetchURLtoURLFetch(according to the WL standard) - renamed
SymbolLookuptoLookup
- Speed up pattern matching for large lists
- Quadraditc speed improvement in pattern matching. #619 and see the graph comparisons there
- In-memory sessions #623
- bump
RecursionLimit - blacken (format) a number of Python files and remove blanks at the end of lines
- Adding several CI tests
- Remove various deprecation warnings
- Change shbang from
pythontopython3 - Update docs
- Support for Python 3.5 and earlier, and in particular Python 2.7, was dropped.
- The
graphsmodule (for Graphs) has been pulled until Mathics supports pymathics and graphics using networkx better. It will reappear as a pymathics module. - The
natlang(for Natural Language processing) has also been pulled. The problem here too is that the pymathics mechanism needs a small amount of work to make it scalable, and in 1.0 these were hard coded. Also, both this module andgraphspulled in some potentially hard-to-satisfy non-Python dependencies such as matplotlib, or NLP libraries, and word lists. All of this made installation of Mathics harder, and the import of these libraries,natlangin particular, took some time. All of this points to having these live in their own repositories and get imported on lazily on demand.
LinearModelFit#592EasterSunday#590DSolvefor PDE #589LogisticSigmoid#588CentralMoment,Skewness,Kurtosis#583- New web interface #574
Imagesupport and image processing functions #571, #541, #497, #493, #482StringCases,Shortest,Longeststring match/replace #570QuantimeandQuartiles#567Pick#563ByteCount#560Nearest#559Count#558RegularPolygon#556- Impoved date parsing #555
Permutations#552- LLVM compilation of simple expressions #548
NumberForm#534, #530, #455- Basic scripting with mathicsscript
- Arcs for
DiskandCircle#498, #526 - Download from URL #525
$CommandLine#524Backgroundoption forGraphics#522Style#521, #471, #468- Abbreviated string patterns #518
Return#515- Better messages #514
- Undo and redo functionality in web interface #511
CovarianceandCorrelation#506ToLowerCase,ToUpperCase,LowerCaseQ,UpperCaseQ#505StringRepeat#504TextRecognise#500- Axis numbers to integers when possible #495
PointSize#494FilledCurve,BezierCurve,BezierFunction#485PadLeft,PadRight#484Manipulate#483, #379, #366Replace#478- String operator versions #476
- Improvements to
Piecewise#475 - Derivation typo #474
- Natural language processing functions #472
Arrow,Arrowheads#470- Optional modules with requires attribute #465
MachinePrecision#463Catenate#454Quotient#456- Disable spellcheck on query fields #453
MapThread#452ScanandReturn#451OnandOff#450$MachineEpsilonand$MachinePrecision#449ExpandAll#447Position#445StringPosition#444AppendTo,DeleteCases,TrueQ,ValueQ#443Indeterminate#439- More integral functions #437
ExpIntegralEiandExpIntegralE#435VarianceandStandardDeviation#424- Legacy
Randomfunction #422 - Improved gamma functions #419
- New recursive descent parser #416
TakeSmallestand related #412Boole#411Median,RankedMin,RankedMax#410HammingDistance#409JaccardDissimilarityand others #407EuclideanDistanceand related #405- Magic methods for
Expression#404 Reverse#403RotateLeftandRotateRight#402ColorDistance,ColorConvert#400- Predefine and document
$Abortedand$Failed#399 IntegerString,FromDigits, and more #397EditDistanceandDamerauLevenshteinDistance#394QRDecomposition#393RandomChoiceandRandomSample#488Hash#387- Graphics boxes for colors #386
Except#353- Document many things #341
StringExpression#339- Legacy file functions #338
- Nested
Module#591, #584 - Python2 import bug #565
- XML import #554
\[Minus]parsing bug #550Casesevaluation bug #531Takeedge cases #519PlotSizebug #512- Firefox nodeValue warning #496
- Django database permissions #489
FromDigitsmissing message #479- Numerification upon result only #477
- Saving and loading notebooks #473
Rationalise#460OptionalandPatternprecedence values #459- Fix
Sum[i / Log[i], {i, 1, Infinity}]#442 - Add
\[Pi],\[Degree],\[Infinity]and\[I]to parser #441 - Fix loss of precision bugs #440
- Many minor bugs from fuzzing #436
Positive/Negativedo not numerify arguments #430 fixes #380- Chains of approximate identites #429
- Logical expressions behave inconsistently/incorrectly #420 fixes #260
- Fix
Take[_Symbol, ___]#396 - Avoid slots in rule handling #375 fixes #373
Gather,GatherBy,Tally,Union,Intersect,IntersectingQ,DisjointQ,SortByandBinarySearch#373- Symbol string comparison bug #371
- Fix
Begin/BeginPackageleaking user-visible symbols #352 - Fix
TableFormandDimensionswith an empty list #343 - Trailing slash bug #337
Globalsystem bug #336Nullcomparison bug #371CompoundExpressionandOut[n]assignment bug #335 fixes #331- Load unevaluated cells #332
- Large expression formatting with
$OutputSizeLimit#581 - Faster terminal output #579
- Faster
walk_paths#578 - Faster flatten for
Sequencesymbols #577 - Compilation for plotting #576
Sequenceoptimisations #568- Improvements to
GatherBy#566 - Optimised
Expressioncreation #536 Expressioncaching #535Definitionscaching #507- Optimised
Position,Cases,DeleteCases#503 - Optimised
StringSplit#502 - Optimised
$RecursionLimit#501 - Optimised insert_rule #464
- Optimised
IntegerLength#462 - Optimised
BaseExpressioncreation #458 - No reevaluation of evaluated values #391
- Shortcut rule lookup #389
- 15% performance boost by preventing some rule lookups #384
- 25% performance boost using same over
__eq__ - n log n algorithm for
ComplementandDeleteDuplicates#373 - Avoid computing
x^yinPowerMod[x, y, m]#342
- Improve syntax error messages #329
SVD,LeastSquares,PseudoInverse#258, #321- Python 3 support #317
- Improvements to
Riffle#313 - Tweaks to
PolarPlot#305 StringTake#285Norm#268 #270Total,Accumulate,FoldList,Fold#264, #252Flatten#253 #269Whichwith symbolic arguments #250Min/Maxwith symbolic arguments # 249
- Upgrade to ply 3.8 (issue #246)
- Drop interrupting cow #317
- Add six (already required by Django) #317
- Span issues with negative indices #196 fixed by #263 #325
- SVG export bug fixed by #324
- Django runserver threading issue #158 fixed by #323
- asymptote bug building docs #297 fixed by #317
- Simplify issue #254 fixed by #322
ParametricPlotbug fixed by #320DensityPlotSVG regression in the web interface- Main function for server.py #288, #289 fixed by #298
- ply table regeneration #294 fixed by #295
- Print bar issue #290 fixed by #293
- Quit[] index error #292 partially fixed by #307
- Quit definition fixed by #286
- Conjugate issue #272 fixed by #281
- Improvements to 3D Plotting, see #238
- Enable MathJax menu, see #236
- Improvements to documentation
- Upgrade to SymPy 0.7.6
- Upgrade to ply3.6 (new parsetab format, see #246)
- Upgrade to mpmath 0.19
IntegerDigits[0]
- Readline tab completion
- Automatic database initialisation
- Support for wildcards in
ClearandClearAll - Add
Conjugate - More tests and documentation for
Sequence - Context support
- Fix unevaluated index handling (issue #217)
- Fix
Solvetreating one solution equal to 1 as a tautology (issue #208) - Fix temporary symbols appearing in the result when taking derivatives with respect to t (issue #184)
- typo in save worksheet help text (issue #199)
- Fix mathicsserver wildcard address binding
- Fix
Dotacting on matrices in MatrixForm (issue #145) - Fix Sum behaviour when using range to generate index values (issue #149)
- Fix behaviour of plot with unevaluated arguments (issue #150)
- Fix zero-width space between factors in MathJax output (issue #45)
- Fix
{{2*a, 0},{0,0}}//MatrixFormcrashing in the web interface (issue #182)
ElementDatausing data from Wikipedia- Add
Switch - Add
DSolveandRSolve - More Timing functions
AbsoluteTiming,TimeUsed,SessionTime,Pause - Date functions
DateList,DateString,DateDifference, etc. - Parser rewritten using lex/yacc (PLY)
- Unicode character support
PolarPlot- IPython style (coloured) input
VectorAnalysisPackage- More special functions (Bessel functions and othogonal polynomials)
- More NumberTheory functions
Import,Export,Get,Needsand other IO related functions- PyPy compatibility
- Add benchmarks (
mathics/benchmark.py) BaseFormDeleteDuplicates- Depth, Operate Through and other Structure related functions
- Changes to
MatrixForm/TableFormprinting - Use interruptingcow to limit evaluation time
- Character Code functions
- Fix divide-by-zero with zero-length plot range
- Fix mathicsserver exception on startup with Django 1.6 (issues #194, #205, #209)
- 3D graphics and plots using WebGL in the browser and Asymptote in TeX output
- Plot: adaptive sampling
- MathJax 2.0 and line breaking
- New symbols:
Graphics3Detc.,Plot3D,ListPlot,ListLinePlot,ParametricPlot,Prime,Names,$Version - Fixed issues: 1, 4, 6, 8-21, 23-27
- Lots of minor fixes and improvements
- Number of built-in symbols: 386
- Compatibility to Sage 4.0 and other latest libraries
- Resolved several issues
- Initial version