Maxima Changelog

What's new in Maxima 5.47.0

Jun 4, 2023
  • New items in core:
  • function powerseries: power series for function lambert_w (thanks to Dimiter Prodanov)
  • init option strips any directories and the last extension from the given value. This value is used as the basename instead of "maxima-init" for the name of the init file. This is an incompatible change.
  • init-mac and --init-lisp are now (deprecated) aliases for --preload.
  • This is an incompatible change.
  • The variable $maxima_frontend_bugreportinfo allows the frontend to tell bug_report() how to report frontend bugs.
  • New items in share:
  • package pslq: PSLQ algorithm for finding integer relations among inexact numbers (thanks to Andrej Vodopivec)
  • package nelder_mead: Nelder-Mead algorithm for minimization without derivatives (thanks to Mario S. Mommer and Andrej Vodopivec)
  • package decfp: exact decimal floats (thanks to Richard J. Fateman)
  • Changes in core:
  • Maxima/ABCL: Use the option --noinform for ABCL. This suppresses the startup messages from ABCL, so that e.g. the Maxima
  • option --quiet is quiet.
  • Fix command line options for Maxima with ABCL.
  • Functions that return lambda expressions with free variables are now translated correctly. Previously many of these lambda expressions would cause internal errors when called.
  • Array functions and subscripted functions can now be translated.
  • Previously these would fail to translate with no explanation. configure: If the user doesn't specify a specific lisp maxima is compiled with all suitable lisp compilers.
  • no-init now actually inhibits load if the user init files.
  • Init files that are loaded are now printed on startup
  • Add functions and variables for inspecting floating point properties
  • Variables: most_positive_float, most_negative_float, least_positive_float, least_positive_normalized_float, least_negative_float
  • Functions: float_eps, bitfloat_eps, float_precision, unit_in_last_place, is_power_of_two, scale_float, decode_float, integer_decode_float
  • Simplify elliptic_kc((sqrt(3)+2)/4)
  • Fix bug in converting inverse_jacobi_ds to elliptic_f.
  • bfallroots with integer coefficients was not returning roots with the specified precision.
  • Add hypergeometric representations for elliptic_ec, elliptic_kc, expintegral_chi, expintegral_ci, expintegral_shi, expintegral_si, expintegral_li, expintegral_ei, expintegral_e
  • hgfred can simplify some 2F2 functions to expintegral_ci.
  • hgfred can simplify some 1F2 functions to expintegral_si.
  • Reject invalid values for debugmode.
  • disp_time variable removed because it was undocumented and didn't actually do anything.
  • Floats are displayed readably by default (fpprintprec = 0)
  • Function texput: punt to previously defined TeX output function
  • when false is returned
  • Strings are comparable under "<", "<=", ">=", ">"
  • Function plot2d: new option gnuplot_svg_background
  • Changes in share:
  • package contrib_ode: Fix name of Clairaut differential equation
  • in code and documentation. Was misspelled as Clairault.
  • package tensor: commit code from Toth & Turyshev paper for trace-free
  • decomposition, for time and memory assessments
  • package namespaces: expunge this package, moved to Github
  • package ezunits: derive units for diff, integrate, and 'at'
  • function mnewton: optional argument for the Jacobian
  • function mnewton: revise mnewton for greater simplicity and speed
  • Document harmonic_number and harmonic_to_psi functions from simplify_sum.
  • package draw: allow points(...) to contain nonnumeric (including non-finite floats) data
  • package draw: honor fill_density in errors, polygon, ellipse, bars, explicit, and region
  • package descriptive: implementation of skyline (outline) histogram
  • package descriptive: optional weight argument recognized by mean, var, std, and other functions
  • package distrib: maximum likelihood estimators (mle_something) for several distributions
  • package graphs: new functions get_unique_vertex_by_label and get_all_vertices_by_label
  • Changes in Xmaxima:
  • Changes in the Windows installer:
  • Update Gnuplot, SBCL, wxWidgets and TCL/TK.
  • Compile a recent texinfo for building the installer. Maxima now needs
  • texinfo 6.8, but 6.7 is included in the usual build machines for
  • nightly builds, etc.
  • Bug fixes for numbered bugs:
  • 545: multivar taylor gives 1^2
  • 608: taylor(x^a,[x],0,1) unsimplified
  • 1743: limit of trig expression
  • 3026: missing info files not well-handled
  • 3071: limit of expressions with signum not very powerful
  • 3136: gruntz(atan2(x^2-2,x^3-2*x),x,sqrt(2),minus) => atan2(0,0) undefined
  • 3279: limit incorrect with domain:complex
  • 3280: gruntz incorrect limit
  • 3415: limit doesn't check for zero coefficients in limit((ax+1)/(ax+2),x,inf)
  • 3592: Wrong limit
  • 3631: gen_laguerre returns 0 to a negative exponent
  • 3834: abconvtest undocumented and possibly unused
  • 3848: ratsubst error ZEROP: ((MMINUS) 1) is not a number
  • 3926: Various limits give UND where they should give IND
  • 3953 Pressing q necessary to continue when plot2d output to svg
  • 3956 expand(1/((sqrt(2)-1)*(sqrt(2)+1))) => 1/1 (unsimplified)
  • 3963 trace doesn't detect calls to functions defined by DEFMFUN in Lisp code
  • 3958 plot2d with multiple discrete plots fails
  • 3959 plot2d + Gnuplot 4 with plot title noenhanced
  • 3965 maxima --list-avail fails with GCL, but works with ECL and SBCL
  • 3966 lis should be zeta(s) (with conditions on s)
  • 3967 elliptic_e(5*%pi/4,1) inconsistent with numerical evaluation
  • 3968 zeta(-r) should use analytic continuation?
  • 3970 draw does not do adequate argument checking
  • 3972: gcl only: Autocompletion inverts command case
  • 3982 tex complains about Unicode character in symbol
  • 3984 limit for und + something yields something instead of und
  • 3985: integrate(sin(x*cos(x)), x), risch; causes unlimited recursion
  • 3992 Add word to Integration.texi
  • 3996: parse_string fails to parse string which contains semicolon
  • 3998: Lisp error when parser encounters eof in a comment
  • 4008: translator and prederror
  • 4018: defint(foo,,0,inf) lisp error when denom(foo) contains %i
  • 4029 limit(cos(1/x)^2 + sin(1/x)^2 + cos(x),x,0) --> ind
  • 4035 Invisible characters should work better
  • 4036: prederror affects bigfloat calculations
  • 4043: bug in to_poly
  • 4045 Different results for integration in Maxima 5.45.1 and 5.46.0
  • 4046 plot2d legend option shows the wrong label in the list
  • 4048 An incorrect limit
  • 4050: Maxima can't handle limits of Fibonacci expressions
  • 4056 Cannot create very large data array
  • 4060 Wrong limit of -3li3+3x*li2+x^3 at x -> inf
  • 4061 2.0^1024 gives "false" on second try
  • 4062 limit(li3, x, inf) gives li3
  • 4064 Simple limit triggers Lisp error "1 is not of type LIST"
  • 4077 Replace opcons with ftake*
  • 4084 Error in [lin]solve with orderless called before
  • 4088: maxima variable prefer_d undocumented
  • 4089 Specvar ans in schatc
  • 4090 output formatting: -x-1 has redundant parentheses: (-x)-1
  • 4092 Repeated factorial (n!)! displayed the same as double factorial n!!
  • 4094 Build warning in share: grep: warning: stray before #
  • 4029 limit(cos(1/x)^2 + sin(1/x)^2 + cos(x),x,0) --> ind
  • 4097 Bad string representation of integers in the first argument of save
  • 4100 On macOS, building Maxima has some issues
  • 4107 least_positive_float doesn't print/read correctly in float/bfloat
  • 4109 Limits of polylogarithms
  • 4112 Double superscript in tex(conjugate(z))^2
  • 4118 facsum + operator(".") + dotdistrib:true + GCL = FAIL
  • 4119 ECL fails decode_float(-0.25) test
  • 4120 is("foo"<3) gives internal error
  • Unnumbered bugs fixed:
  • commit 7a7114c: avoid call to undefined function expintegral_ei
  • commit fe1d8cf: avoid clobbering global state when autoloading
  • commit 70a5f78: expunge calls to 'sign' in share package distrib
  • commit 7bc968a: in printf, be more consistent about non-numeric argument for ~e, ~f, and ~g
  • Documentation:
  • Help can use html docs instead of displaying help to the terminal.
  • This is enabled by setting output_format_for_help to 'html; it defaults
  • to 'text. Use 'frontend to display help using Xmaxima, wxMaxima or
  • other frontends.
  • Add documentation for trigtools to the manual.
  • Some reordering of the trig functions in the manual.
  • Some renaming of sections in the manual to be more explicit.
  • Add more cross references.
  • Add more examples for erf_representation, hypergeometric_representation, expintrep, expintexpand, besselexpand
  • Add examples for the ggf package.

New in Maxima 5.46.0 (Apr 16, 2022)

  • New items in core:
  • Added eval_string_lisp to read in and evaluate lisp forms from a string
  • Maxima compiled with ABCL can use network connections (option "-s"),
  • which is used by frontends like Xmaxima and wxMaxima.
  • Added gnuplot_send to open a Gnuplot pipe and send a command to it.
  • new code to commute conjugate of derivative (Commit [565fcf]).
  • new plot option window. It can be used to send the plot to a window
  • different from the default 0 window.
  • New items in share:
  • new package quantum_computing: a simulator of quantum computing
  • circuits.
  • new package test_batch_encodings: tests for batch and batchload with different character encodings
  • new file conics_04.mac: intersections of conic sections
  • package distrib: implementation of inverse gamma distribution
  • package stringproc: extend the range of recognized encodings somewhat
  • package numericalio: extend function md5sum to accept binary input stream
  • package numericalio: recognize 1-element strings as equivalent to symbols for separators
  • package gentran: update to new version contributed by Michael Stern
  • Changes in core:
  • plot2d, plot3d, mandelbrot and julia now use gnuplot_pipes by default
  • in all operating systems and in all cases (plot shown on the screen or
  • saved to a graphics file). No temporary files are used.
  • option gnuplot_strings made more consistent in different terminals.
  • option gnuplot_script_file now accepts complete path file names.
  • Changes in share:
  • draw: Restored the default gnuplot_pipes format (Commit [a54f2f])
  • draw: Restores the window, font and size options for default
  • terminal (Commit [096f0b])
  • Changes in Xmaxima:
  • fix to allow several plotdf windows to work independently by refreshing
  • the expressions of the derivatives every time a new trajectory is plotted.
  • Changes in the Windows installer:
  • Update SBCL, wxMaxima, TCL/TK.
  • A newer Gnuplot version is available, but causes problems when using
  • pipes on Windows, therefore that was not updated.
  • Use the HTML manual (not the PDF version) in the start menu.
  • Strip included C programs (saves some space).
  • The command line option "--userdir" did not work on Windows, fixed that.
  • Bug fixes for numbered bugs:
  • #380: algsys ab=cd grossly incomplete
  • #484: limit(x=0,x,0) wrong
  • #926: sign errors in cartan package
  • #1097: pattern variable appears in letsimp result
  • #1848: taytorat leaks internal gensyms from multivar expansions
  • #2247: not plotting from Vista, probably due to national characters
  • #2388: wrong limit
  • #2446: horner of multivariate taylor gives junk
  • #2709: letsimp' is wrong ifratexpand' is called
  • #2837: ev causes bogus WNA checks for sum, product, define and ":"
  • #2876: Error simplifying infix operators declared l/rassociative
  • #2921: errcatch fails to catch various errors
  • #2953: limit loops endlessly
  • #3068: taylor of CRE fails
  • #3159: plot3d in Windows not recognizing plot option color
  • #3453: Mesh Lines Bugged | Cannot Change Their Color from Default
  • #3462: simplify_sum() variable name clash
  • #3483: limit apparently causes infinite loop
  • #3520: "Directory does not exist" errors on Windows 10
  • #3542: Unable to display second plot until first one is closed
  • #3605: Variable confusion in function handling Taylor series
  • #3654: uniteigenvectors fails if uv[1] is used in the user main program
  • #3656: Update builtins-list.txt
  • #3718: incorrect trigonometric definite integral
  • #3736: Quoting either min or max inhibits simplification
  • #3764: limit of min works with assume but not with asksign
  • #3765: min(und,...) gives error with trylevel > 1
  • #3769: max or min called on CRE expressions
  • #3789: package ezunits: ev(dimensions(u), nouns) stack overflow
  • #3793: plot2d fails on small x-range
  • #3796: plot3d doesn't support rotation in 5.45
  • #3797: plot2d(0, ...) gives "can't plot with empty y range" -- regression
  • #3801: error sourcing .xmaximarc on Windows
  • #3805: plot2d should give a clean user error for undefined functions
  • #3807: plot2d heuristic to detect unbound variables excludes valid cases
  • #3810: integrate error "not of type FIXNUM" for integrand with floats in it
  • #3819: Implicit plot2d calculating 1/0 gives Lisp error
  • #3820: testsuite with display_all = true
  • #3825: apply('forget, facts()) gives Lisp error
  • #3826: limit returns temp variable expression
  • #3838: limit(atan(sin(x)),x,inf,plus) --> atan(ind)
  • #3844: Wrong limit involving gamma function
  • #3881: plot2d not ignoring errors within functions
  • #3883: plot creates invalid gnuplot command
  • #3893: display2d and long numbers
  • #3907: gnuplot_postamble not actually the last Gnuplot output before plot
  • #3910: correct 'an Unicode' in doc/info/stringproc.texi
  • #3921: Expanded subtracted from unexpanded with e^ix does not integrate to zero
  • #3925: Maxima help button opens "file not found"
  • #3934: expand(1/(1+%i)^4) => (-4)^(-1) (unsimplified)
  • #3935: Noncommutative multiplication with string argument triggers "declare: argument must be a symbol"
  • #3936: plot2d sends invalid file to gnuplot
  • #3945: 'props' isn't empty at startup
  • #3950: letsimp confuses symbols and nullary applications
  • #3951: screen terminal no longer works as described in docs
  • #3952: plot2d clipping warnings not appearing
  • #3953: Pressing q necessary to continue when plot2d output to svg
  • #3956: expand(1/((sqrt(2)-1)*(sqrt(2)+1))) => 1/1 (unsimplified)
  • #3958: plot2d with multiple discrete plots fails
  • #3959: plot2d + Gnuplot 4 with plot title noenhanced
  • Unnumbered bugs fixed:
  • (x^^-1) . x simplified to 1 instead of dotident (commit [c8d115d])
  • Adjust derivatives of beta_incomplete and friends (commit [ad682b0])
  • mailing list 2022-01-04: Bad vect package? (commit [c6110df])
  • mailing list 2021-06-27: ev(xxx,pred) vs is(xxx) (commit [37206b8])
  • Stackoverflow: (wx)Maxima: texput for powers of expressions (commit [4e65bc3])
  • Stackoverflow: How to plot a bode_gain inside the wxmaxima GUI? (commit [6bee3ca])
  • Documentation:
  • Examples in the introduction to strings (Data Types and Structures chapter)
  • fixed.
  • New build scripts in Lisp, Python is no longer needed to build the documentation
  • Update japanese documentation
  • New configuration options --enable-lang-ru and --enable-lang-ja for building
  • japanese and russian documentation
  • New configuration option --enable-build-docs (default = yes) to make it
  • possible to omit building documentation
  • Documentation is only produced in UTF-8 encoding and no other encoding
  • Expunge build and runtime machinery for doc/info/<lang>.utf8</lang>
  • Remove configuration options --enable-lang-<lang>-utf8</lang>
  • Fix building PDF documentation for non-english languages. Use xeTeX
  • make pdf PDFTEX=xetex
  • to build Japanese and Russian PDFs.
  • Build system:
  • Many improvements wrt out-of-tree-builds and translations of the manual

New in Maxima 5.44.0 (Jun 8, 2020)

  • New items in core:
  • Additional float constants: LEAST-NEGATIVE-NORMALIZED-FLONUM largest_negative_float, least_negative_float least_positive_normalized_float, and least_negative_normalized_float
  • Support for pre/post sub/superscripts (get_index_properties declare_index_properties and remove_index_properties) 2) Make declare_index_properties
  • Mark non-trivial results from gcfactor with a GCFACTORED flag
  • New items in share:
  • pytranslate, which converts maxima to python
  • rtest_inteqn
  • descriptive: find_runs and find_runs_inverse
  • Changes in core:
  • Code clean ups and removal of functions that only had a historical meaning
  • In TEST-BATCH, ensure that list of unexpectedly passed tests is nonempty before reporting it
  • lisp-quiet can now be told not to use subsequent :lisp commands
  • defmfun now adds an ARG-LIST property that allows frontends to validate arguments
  • An improved version of float_approx_equal
  • Better handling of non-numerical input to find_root
  • Better handling of defint errors triggered by laplace()
  • Avoid variable capture in the WITH-NEW-CONTEXT macro
  • Evaluate the body of a WITH-NEW-CONTEXT form as an implicit PROGN
  • Numbers are no loger compared using EQ instead of EQL
  • Characters are no loger compared using EQ instead of EQL
  • Fixed bogus translations of apply2 and applyb2
  • Fixed bogus translations of atan and atan2 with float arguments
  • Fixed the bogus translation of atan2 with one float and one rational argument
  • Fixed bogus and inconsistent translations of max and min when the arguments were a mix of float and other modes
  • Fixed bogus translations of = and # with mixed float and numerical arguments
  • Fixed an internal error in the translator when attempting to convert a variable of mode rational to a float
  • Fixed the inconsistent translation of signum with a float argument
  • Fixed the bogus translation of random with a float argument
  • Fixed the translations of log and sqrt so they honor the flag tr_float_can_branch_complex
  • Updated gentran to v.5
  • Improved the pattern matcher for "+" and "*" expressions, see maxima-discuss, circa 2019-12-27: "Function to recognise series"
  • allow zn_log to work on subgroups
  • gamma_incomplete_lower is now returned in the noun form in many places
  • operatorp(expr,op) was inconsistent with operatorp(expr,[op])
  • sqrtdenest is now built-in, not a share function
  • load(sqdnst) now is a no-op
  • Changes in share:
  • Interpol used funmake instead of apply
  • An updated version of COMA
  • A testbench for draw()
  • plot2d with a single function now uses xlabel
  • Many minor corrections
  • In package amatrix, protect against empty matrices when converting amatrix to matrix and vice versa
  • Fixed contragrad in ctensor, added tests for cograd/contragrad
  • Bug fixes:
  • 3412: Corrected the translation of conditionals
  • 3587, +3489: Better handling of limits of logarithms
  • 3521: In simplify_sum, avoid double-counting -min_ni term in to_hypergeometric
  • 3265: gcfactor(0) -> division by zero
  • 2839: gcfactor(9) => 9
  • 3287: Cross product of scalar zero versus vector yields zero result
  • 3583: Stack overflow for equality testing with assumptions
  • 3608: logic_simplify handles inequalities incorrectly
  • 3607: printprops displays matchdeclare properties incorrectly when value is a lambda
  • 2174: Bogus translation of declare
  • 3513: Emacs: wxdraw3d not working
  • 3048: notequal is not translated properly
  • Unnumbered bugs:
  • plot now works correctly with function names containing _, ^ and @
  • Maxima now no longer becoms unusable with errset=t
  • FREE-LISP-VARS property for LET was broken
  • translator: improved error message when a throw is not in a catch
  • PATCH-UP-MEVAL-IN-FSET had a bogus BARFO call
  • standard-input was broking during gentranin runs
  • Problem loading abs_integrate in imaxima mode (emacs)
  • compgrind:true caused compfile to not write to the output file
  • compgrind:true didn't ensure pretty-printing of compfile output
  • Taylor expansion for gamma_incomplete_lower(1/2,z) now works
  • compgrind:true didn't ensure pretty-printing of compfile output
  • gamma_incomplete_lower now respects gamma_expand
  • Additional improvements:
  • The documentation now is build use a stock makeinfo
  • Many other improvements to the way documentation is generated
  • The RPM files now end up in the build directory
  • A way to run many draw() and plot() examples for manual tests
  • More out-of-source-build improvements
  • "make dvi" was subject to bit-rot and should now work again
  • Resolved a few cases in which common variable names in arguments caused unexpected behavior
  • Better ABCL integration
  • Added a help message (Option: /?) to the windows installer
  • Fix errors when installing on MacOS via Homebrew
  • run_testsuite(share_tests=only) now doesn't fail due to unicode-sniffer.lisp not having been loaded
  • Draw now translates the coordinates of labels, too
  • Use DLMF 8.8.9 to expand gamma_incomplete(a+n,z)
  • Expand gamma_incomplete for rational order
  • Many code cleanups
  • Many improvements to the documentation
  • Windows Installer: Updated wxMaxima to the new release

New in Maxima 5.43.2 (Jan 27, 2020)

  • The installer contains Maxima and the required/optional components
  • CLisp, SBCL, wxWidgets, wxMaxima, jsMath-Fonts, Gnuplot and VTK.
  • Maybe Windows will warn you, that
  • "This program is not commonly downloaded and could harm your computer."
  • The reason may be, that the installer was not often downloaded and it is not signed with an Extended Validation (EV) Code Signing certificate.
  • The frontends wxMaxima and Xmaxima communicate with the backend (command line Maxima) using a local network connection, so maybe the Windows firewall will ask you, that you allow that communication.

New in Maxima 5.43.1 (Jan 26, 2020)

  • The installer contains Maxima and the required/optional components CLisp, SBCL, wxWidgets, wxMaxima, jsMath-Fonts, Gnuplot and VTK.
  • Maybe Windows will warn you, that "This program is not commonly downloaded and could harm your computer."
  • The reason may be, that the installer was not often downloaded and it is not signed with an Extended Validation (EV) Code Signing certificate.
  • The frontends wxMaxima and Xmaxima communicate with the backend (command line Maxima) using a local network connection, so maybe the Windows firewall will ask you, that you allow that communication

New in Maxima 5.42.0 (Oct 1, 2018)

  • New items in core:
  • New function define_opproperty to define an operator simplification
  • The environment MAXIMA_INITIAL_FOLDER if set tells Maxima which
  • folder to start in.
  • The variable $factor_max_degree that prevents certain polynomials
  • from being factored if their degree exceeds that value instead of
  • letting factorization cause an out-of-memory.
  • The variable factor_max_degree_print_warning that tells if to
  • output an warning in this case.
  • A test bench for Maxima's interactive functions.
  • New items in share:
  • A test bench for draw
  • timeout.lisp
  • new version of package share/contrib/Eulix
  • Trotter-Johnson algorithms
  • combinatorics.lisp
  • A new README file for the share directory.
  • Changes in core:
  • "make check" now runs both the normal and the share test bench
  • "make check" now also runs the tests from rtest_ask.
  • test bench failures that resulted in "error-catch" now show a
  • more descriptive error message
  • a warning() command that works similar to error()
  • Windows installer: support components (one can deselect optional
  • components like VTK, wxMaxima or Gnuplot during the installation to
  • save space)
  • MAPATOM returns true for mapatom(-4)
  • A file with test cases for draw
  • A file with test cases for drawdf
  • A file with test cases for plot
  • errcatch() now produced meaningful error messages.
  • Add support for multiple return values to the ERRSET macro
  • scene() is dropped from plot() as it depends on Tcl/VTK which is no
  • more actively supported and currently is broken.
  • gcl: concurrent Maxima processes now can negotiate which can use
  • how much memory.
  • Emit warning from parser when a list is constructed and then
  • discarded in ([a,b,c], ...).
  • Emacs > 26.1 compatibility.
  • Maxima now deletes its temp files on exit.
  • Automatic file encoding detection if the file begins in a BOM.
  • Improved the behavior of the exterior product operator when acting
  • on ordinary products.
  • Updated the Spanish translation
  • The functions that work with permutations, given as lists of
  • consecutive integers from 1 to n, will now use the prefix "perm",
  • to distinguish them from those that permute any arbitrary list or
  • set, which use the prefix "permutation". The name of
  • permutation_index was changed to perm_length and apply_permutation
  • became permute.
  • On Windows Maxima now autodetects the directory it finds its files
  • in.
  • Ask the user to use ; at the demo prompt, to make it work also in
  • Xmaxima.
  • Check for correct syntax of parametric plots.
  • Removed the old non-adaptive parametric plotter
  • Typecheck backtrace's argument
  • Better desktop integration for Linux systems
  • Changes in share:
  • Draw/MS Windows: Gnuplot now supports multiplot
  • Draw/MS Windows: Gnuplot now supports multiple draw windows
  • wrstcse: A simple package for tolerance calculations.
  • The test bench file's names now all begin with "rtest".
  • Marked many known bad tests as "bad" so changes that break
  • something are easier to find.
  • engineering-format now allows to specify which number range doesn't
  • need exponents.
  • Drawdf now no more translates its input which made it slightly
  • faster, but sometimes caused internal errors. Setting
  • drawdf_translate:true reverts it to the old behavior
  • The share testsuite now tests the draw package, too.
  • Draw: Allow vector coordinates to be transformed
  • Draw: Resolved a warning for multiplot svg output
  • Draw: Contour can now be set to "none" as documented in the
  • manual.
  • Draw: Support for vtk7. A "draw_renderer:vtk7" enables it.
  • Draw: Resizing the window now can change the aspect ratio of the
  • plot.
  • Draw: Allow to specify numeric line types
  • Draw: A finer default grid
  • Enable remove(x, rule) to succeed when x is a string.
  • vector.dem and qual.dem now can be loaded.
  • Xmaxima now accepts more of the standard options.
  • Vtk (except of the plot routines) now is migrated to vtk-python
  • which is actively supported in favour of the no-more working
  • tcl-vtk
  • Bug fixes:
  • 3459: Wrong limit calculation
  • 3458: addcol mishandles empty matrix as first argument
  • 3457: true[2] gives wrong error
  • 3426: Precision problem for small positive values in bfpsi0
  • 3410: extremal_subst gives bogus results with undefined predicate
  • 2822: After load("diff_form") `functions' fails
  • 3363: Documentation of modulus incorrectly says it applies to all
  • rational numbers
  • 3439: Simplode output on empty list
  • 3023: divide(1,0) gave a Lisp error instead of a Maxima one
  • 1581: sublis & sublis_apply_lambda:true causing Lisp errors
  • 2803: trace/timer do not work for functions with quoted arguments
  • 3247: Maxima's trace and timer handle rules incorrectly
  • 3368: integrate('limit(...),...) internal error
  • 2880: integral of secant shouldn't need principal value
  • 2116: lambda form for taylor_simplifier
  • 3431: error system variable holds unsimplified list, causing errors
  • to be repeated when trying to access it
  • 3423: tellsimpafter: circular rule attempted when loading package
  • vect twice
  • 3337: Wrong scalefactor for cartesian2d
  • 2644: integrate(1/(1+s^7),s,0,%pi) includes a false term
  • 3413: false in definite integral of rational
  • 2845: Avoid initialization-time compile in commac.lisp
  • 3416: limit gives limit(x^r,x,inf)=>0 when "Is r pnz" is answered
  • zero
  • 2928, 2994 and 3419: Detect an endless loop in BPROG (simp.lisp)
  • and throw rat-error. rat(1/(x^(2/3)+1)), algebraic and
  • similar expressions no longer loop forever.
  • 3009, 3146 and 3147: Certain polynomials when factored caused an
  • out-of-memory
  • 3422: li[2] and li[3] numerical evaluation fails for complex not in
  • rectangular form
  • 3402: Unbinding defined variable generates error in compiled
  • functions
  • 3406: pdf_geometric appears to be incorrect and/or poorly
  • documented
  • 3403: Function/lambda parameters declared constant cause error
  • 2012: Lisp stack overflow with dpart
  • 3390: ?great mishandles box
  • 3387: kill(all) looses mtime's "nary" property
  • 1820: missing eigenvectors
  • 3373: Running the test suite twice causes errors
  • 3379: recur.mac correct bug in varc2
  • 3375: algsys failure on homogeneous linear equations
  • 3293: derivatives don't format correctly using alt-display TeX
  • 3238: plot fails with small x-range due to rounding
  • 2835: Parametric plotting failed if the variable was not t
  • 3356: sign(nz * nz) = nz
  • 3349: Using VTK on windows gives 'vtkpythonC:' error
  • 3344: Conflict between sym package and grobner package
  • Unnumbered bugs:
  • Windows installer: Fix the plotting problem with Clisp/Windows and
  • long user names.
  • Windows installer: Fix reading maximarc on Windows, when the
  • username contains a space.
  • Garbage Collector Defaults for gcl that allow Maxima to be able to
  • run the testbench without getting an out-of-memory
  • Many error messages now are easier to understand
  • Some share tests contained timeouts that were set to values that
  • were easily to trigger even on current computer systems
  • share/gf and share/contrib/fresnel can now be loaded without
  • encountering an error.
  • simplode on a singleton list could return a non-string
  • If keepfloat was true partfrac often resulted in errors. Now
  • keepfloat is false during partfrac().
  • 'make pdf' now works for de and pt.
  • A Lisp error appeared when display2d:true and there are nested
  • DISPLA calls
  • tex(): The output for matrices is now upwards compatible to
  • amsmath.sty
  • Fixed some shell quoting issues
  • Many translator improvements
  • Fix charfun when prederror is true
  • Quieted many irrelevant warnings on loading packages, for example
  • caused by autoload.
  • Fixed a bug in perms, when called with three arguments
  • beta_incomplete now works correctly with sums.
  • Windows: Fixed reading maximarc on Windows, when the username
  • contains a space.
  • Lapack now can be compiled out-of-the-box on SBCL on Windows (64Bit).
  • running rtest_levin after rtest15 causes some failures
  • because MLIST is not recognized as an operator.
  • Process command line option --run-string correctly
  • changes to stream handling for SBCL, which improve
  • writefile, appendfile, asksign, describe, and entermatrix.
  • trigsimp fails with pderivop
  • In $ARRAY, handle list argument + use_fast_arrays correctly.
  • Resolved many potential variable name clashes with user-specified
  • variables
  • Xmaxima: Resolved an error message that caused a crash
  • Xmaxima: Removed Win98 workarounds that made problems with modern
  • Windows systems
  • Xmaxima now supports file and directory names with spaces in them.
  • Additional improvements:
  • Additional bug fixes
  • Performance improvements
  • Much work on the manual including many hyperlinks, clarifications
  • and additional information on how to speed up user functions.
  • A script that tests loading packages twice or package combinations
  • A few files that didn't need an "executable" flag were marked
  • as executable.
  • Updated all references to wxMaxima to wxMaxima's new URL.
  • The wxMaxima version the Windows Installer comes with now is
  • Version 18.10.1

New in Maxima 5.40.0 (Jun 2, 2017)

  • New items in core:
  • [0eda309] New functions encode_time and decode_time, with test cases.
  • New items in share:
  • [534a7d1] add symplectic_ode package
  • [46a7a0f] Add Kaplan-Meier's survival and empirical distribution estimators
  • Changes in core:
  • [cb259bb] change O(n^2) method for flattening list to O(n) method.
  • [21cf8e1] split totient into two parts
  • [6ef2b26] optimized gcfactor and tried to make it easier to read.
  • [1594167] optimize gc squaring and inline gctime1
  • [d7ff7c3] inline gctimes.
  • [4c8b6c6] sped up psumsq.
  • [f306940] speeded up imodp.
  • [efadb61] new implementation of ; is about a factor of 2 faster on sbcl
  • [9c79308] move jacbi and related functions from rat3c to numth
  • [75d8ceb] sped up divsum by splitting it in two parts where the lower
  • Numerous cross-compiling changes.
  • Numerous documentation changes and improvements.
  • Build/installation improvements.
  • Many updates to examples.
  • Many changes and improvements to test system.
  • Changes in share:
  • [9c7c70c] Commit new version of COMA. Sent by Wilhelm Haager
  • [0ef9ab0] Check for a constant "variable" of integration in romberg and bromberg
  • [834ffb3] Import ODEPACK fortran code.
  • [06bc1bd] Julia() and mandelbrot() are modified to create maxoutXXX.gnuplot
  • [dca80e3] plotdf: An option to change the arrow density. Patch from themusicgod1.
  • Bug fixes:
  • [6ff1570] fix bug 3291: ecl on Linux needs utf-8
  • [db7788f] fix bug3300 Incorrect sha256sum output
  • [b896d1f] In rtest_translator, skip some tests which cause a crash (bug #3291).
  • [f1bc324] Implement numerical evaluation for gamma_greek. Fixes SF bug #3277.
  • [eec3d7f] In tests for kill(props), work around bug #3289.
  • [6267b88] In lsquares_mse, ensure temporary variable is assigned the correct value. #3282.
  • [b58a547] In lsquares_mse, ensure temporary variable is assigned the correct value. #3282.
  • [a7239b1] In RISCHLOGEPROG, detect zero divisor. This fixes SF bug #3274.
  • [eaacba6] Unlock :common-lisp package when compiling with SBCL. Fixes SF bug #3271.
  • [71ee1c0] Fix bug #2740: demo(romberg) fails
  • [5fb8f81] Add test for bug #2295: Failure to evaluate definite integral
  • [35c625e] Add tests for bug #2314: Two different results for an integral
  • [56fb70e] In tests for simplify_sum, add a few more tests from bug report #3236.
  • Unnumbered bugs:
  • [06c0fc7] operatingsystem: Make chdir work with recent gcl versions.
  • [7277f54] gcfactor(4/(%i+1)) gave an internal error in $bothcoef.
  • [c477689] Give informative error message when some index is not an integer: "rat(-1) isn't an integer?" from mailing list 2017-03-04.
  • [96c57d5] work around bug in gcl decode-universal-time.
  • [b4819b4] work around bug in gcl decode-universal-time.
  • [a36bf53] When evaluating float(diff(...)), apply float only to the first argument. Fixes bug reported to mailing list 2017-02-27.
  • [bffe54f] In GETL-LM-FCN-PROP, return NIL for argument which is not a symbol. Fixes bug reported to mailing list 2017-03-04.
  • [ef1fa9e] Remove built-in symbols from the list for user-defined properties. Fixes bug reported to mailing list 2017-02-24.
  • [70e05dd] Handle Lisp arrays in MQAPPLY expressions more carefully. Fixes bug reported to mailing list 2017-02-02.
  • [761cc1c] Handle Lisp arrays in MQAPPLY expressions more carefully. Fixes bug reported to mailing list 2017-02-02.
  • [b6dd08c] A solve() enhancement by Richard Fateman that should fix a zillion of bug tickets.
  • [b6b5c5c] Translate define and ":=" correctly by nuking the translator property. Fixes bug reported to mailing list circa 2017-01-24.
  • [5cfc6fd] Fix bernoulli and binomial pdfs when p=0 or p=1
  • [d6739e9] Fix bernoulli and binomial pdfs when p=0 or p=1

New in Maxima 5.39.0 (Dec 13, 2016)

  • New items in core:
  • New functions firstn and lastn
  • Changes in core:
  • Special variable clean-up
  • Crosscompiling support
  • Gnuplot 5.0 or newer versions
  • Documentation updates
  • function save: portable way to save "fast" arrays (hash tables)
  • functions timedate, parse_timedate: handle timezone offsets
  • Floating point overflow handling
  • Complex numericals
  • Testsuite additions and improvements
  • GIT fixes
  • ODE improvements
  • Load .wxm files from wxMaxima
  • Temporary file handling improvements
  • New in share:
  • package decfp: decimal bigfloat package
  • Changes in share:
  • In some share test scripts, put reset() at the top
  • package solver: rename solver.mac to Solver.mac
  • package stringproc: new functions slessp, slesspignore, sgreaterp, sgreaterpignore (string comparison)
  • package charsets: several updates and improvements; still work in progress
  • package boolsimp: code clean-up; no functional changes
  • package descriptive, functions continuous_freq, discrete_freq: faster counting algorithm; accept arrays as well as lists
  • Bug fixes:
  • [54822ea] Fixed bug #3258: diff with negative order in integrate
  • [0e4ed41] Fix issue #3255 by changing how resimplification works
  • [55ba236] In risplit, in preparation of fixing issue #3255 (logarc)
  • [6e7f9dd] Partial fix #3216: In package lapack, load without compile
  • [ad86a80] Fixed bug #3232: In ezunits, don't compile predicate functions
  • [0ec66c6] Fixed GCL bug #49689: Mark a known failure in rtest11
  • [98b0349] Fixed bug #3213: Round when formatting bigfloats
  • [3745efa] Another test for bug #3244.
  • [67fd622] Fixed bug #3246: look-up entries for inv. trig antiderivatives
  • [120d8be] Fixed bug #3241: In MQAPPLY1, call AMPERCHK
  • [e916dd0] Fixed bug #3235: In RGRP, rephrase test for ECL
  • [7060221] Add tests from bug #3221
  • [2204fca] Fixed bug #3221: elliptic_pi(n,z,m) wrong for z > %pi/2
  • [cb3dc1c] Fixed bug #453: algsys fails in simple case
  • [7efa7eb] Add tests from SF bug 2059.
  • [4851e2c] Add tests from SF [bugs:2038] and [bugs:#2736]
  • 640ca75 SF [bug:#1266][bug:#3208] Don't use $radcan when simplifying in algsys.
  • 2986fc0 Fix SF [bugs:#3208]. Use sqrtdenest in algsys to simplify partial solutions.
  • 5fd2f55 [bugs:#3208] algsys.lisp:presultant: resimplify result
  • 4734ec8 share-subdirs.lisp is auto-generated and in version control - which is afaik unavoidable for the lisp-only build system. It also currently is out-of-sync with the repo => Updated the repo version.
  • f91d677 Increase output when running share/contrib/diffequations/tests
  • a5873ba SF bugs 3210 and 3212. Fix algsys regressions.
  • 9a4694f Bug #2796 can't load ode2 with n declared constant
  • 3c6c473 Bug report ID: 1621 Wrong solution to ode2
  • cf9cbb2 Fixed bug #2667: Distinguish trig function exponents in TeX
  • bf4cf94 In rtest_log, additional tests for SF bug #3105.
  • 9ef3fee Fixed bug #3148: Most of the change is in indentation
  • 8f523fc Fixed bug #3194: No simplification of tan(x+n%pi) and cot(x+n%pi)
  • fdadebc Fixed bug #3186 and other get_plot_option issues.
  • 3fd2b4c Fixed bug #3022: Update the RPM spec file
  • aa0a365 Fixed bug #3180: declare(foo, antisymmetric)
  • 9ad3f2f Add test for SF bug #3090
  • a57ff0c Add test for SF bug #3170
  • 4568937 Fixed bug #3144: Avoid unbounded recursion in PTIMES%E
  • 0bcccbe Fixed bug #3109: is(sin(x)

New in Maxima 5.38.1 (May 17, 2016)

  • Maxima has functions to work with polynomials, matrices, finite sets, integrals, erivatives and differential equations, linear algebra, plotting, floating point and arbitrary-precision arithmetic, etc.
  • Maxima can run on MS Windows and various flavors of Unix, including MacOS X.
  • There is a precompiled executable installer for Windows, RPM's for Linux, DMG for MacOS X, and source code tar.gz.
  • Maxima is implemented in Common Lisp; several Lisps can compile and run Maxima, including CMUCL, SBCL, Clisp, GCL, and ECL.
  • The Maxima project welcomes new participants. You can contribute in several ways: reporting bugs, fixing bugs, writing new add-on packages, revising core functions, user interfaces, documentation, ....
  • Why not see what's happening on the mailing list and consider how you might contribute to the project.

New in Maxima 5.37.0 (Sep 2, 2015)

  • New items in core:
  • new function with_default_2d_display: ensure pretty-printing output
  • New items in share:
  • new package cryptools: tools for cryptography
  • new package elliptic_curves: elliptic curves over prime fields and binary fields
  • new function cgrind: output Maxima expressions as C code
  • package draw: new function vennplot (Venn diagrams)
  • package stringproc: new functions flush_output, readbyte, and writebyte
  • Changes in core:
  • function gf_symmetric renamed to gf_balanced
  • Changes in share:
  • functions md5sum, sha1sum, sha256sum and base64_decode: accept and return numbers and octet lists as well as strings
  • packages aes and aes2: provide flexible support for different data types, e.g. octet lists
  • Bug fixes:
  • Manual is wrong about "sqrt" and "radexpand"
  • extra () in display2d:false output
  • documentation error in gf_manual.pdf
  • Some divergent integrals give error, some don't
  • Display of taylor series in wrong order
  • "rectform" causes infinite recursion depending on variable name
  • number of distinct partitions gives wroing result
  • Wrong limits involving logs
  • dotscrules and antisymmetric
  • stack overflow in integrate
  • dotscrules and antisymmetric
  • misformatting in debugger help message
  • Assigning variable twice yields different results
  • atan2(y,x)+atan2(-y,x) doesnt always return 0
  • abs(x)^(2*int) doesn't simplify
  • rtest_sign #77
  • eigenvectors of a 10 x 10
  • ev doesn't bind functions safely
  • Unnumbered bugs:
  • commit [6779ac0]: zn-nrt: root of zero should be zero
  • commit [b212487]: Fix up version variables so that load(drawutils) succeeds
  • mailing list 2015-08-29: Documentation fails with error
  • mailing list 2015-08-27: Warnings from loading cartan package
  • mailing list 2015-08-25: Strange symmetry of acoth(x), area cotangens hyperbolicus function (#552)
  • mailing list 2015-08-17: trouble with GCL build
  • mailing list 2015-06-11: rationalize(0.1) and the manual

New in Maxima 5.36.1 (Sep 1, 2015)

  • Bug 2936: Stack overflow in integrate.
  • Bugs in the draw package.
  • Problem in loading wxm files from the Explorer in Wxmaxima.

New in Maxima 5.36.0 (Sep 1, 2015)

  • New items in core:
  • function parse_timedate: parse time/date string
  • New items in share:
  • function lll: Lenstra-Lenstra-Lovasz algorithm
  • Changes in core:
  • at: remove variables in simplification
  • Other changes:
  • package contrib_ode: update test suite
  • package ezunits: additional femto, pico, nano, and micro fractions
  • package ezunits: apply rules more aggressively
  • package maxima-odesolve: documentation
  • package gentran: update
  • package draw: geometric transformations for 2D implicit functions
  • package coma: new version
  • package maximaMathML: hook mechanism
  • package noninteractive: new script expand_branches.mac
  • Bug fixes:
  • [#2924]: Maxima fails to run on lisp interpreters
  • [#2922]: input '20log(x)' causes strange error
  • [#2919]: Definite integration broken: integrate(1/(x^2), x, -inf, inf) gives zero
  • [#2913]: trigrat crashes with variable name "e"
  • [#2907]: ratsubst(z, sin(x + 1), 0) crashes when radsubstflag = true
  • [#2898]: limit of continuous --> und
  • [#2892]: julia() and mandelbrot() creates maxout.gnuplot in different place than plot2d()/plot3d()
  • [#2883]: load (lsquares); Error
  • [#2881]: quad_qags recently got problems evaluating erf
  • [#2878]: Installing from maxima-5.35.1.tar.gz requires Makeinfo
  • [#2873]: implicit_plot does not accept symbolic ranges
  • [#2865]: Use exp as a list
  • [#2862]: Incorrect result for integrate(u/(u+1)^2,u,0,inf);
  • [#2854]: Integral hangs with domain:complex
  • [#2853]: abs_integrate hangs after encountering log(0)
  • Unnumbered bugs:
  • mailing list 2015-03-16: Requesting advice on simplification rules for user-defined operators
  • mailing list 2015-02-09: save(..) can't save syntax extensions in a readable form
  • mailing list 2015-02-16: expand phenomenon
  • mailing list 2015-02-08: Newbie lisp question
  • mailing list 2015-01-22: Matrix inversion with detout = true?
  • mailing list 2015-01-09: Problem loading package COMA
  • mailing list 2015-01-05: order of operands is changed due to source information
  • commit [b0a9ab]: Fix jacobi_sc(elliptic_kc(m)/2,m)
  • commit [ff92d9]: Fix make_elliptic_f for inverse_jacobi_ns and inverse_jacobi_nc
  • commit [b7dc04]: Added device info to paths in cl-info::*info-tables*
  • commit [95c186]: Fixes a bug in the style option parser
  • commit [bf9a67]: Correct the derivative of bessel_y wrt order: diff(bessel_y(v,z),v)
  • commit [0d8d8a]: Handle the (finite) geometric sums with quotient 1.
  • commit [b3cffd]: Fix bug controlling non numeric symbols in explicit
  • commit [114860]: Add device to maxima-load-pathname-directory.
  • commit [72d617]: Fix maxima -s PORT command.