Summary of important user-visible changes for version 3.6:
---------------------------------------------------------
** The PCRE library is now required to build Octave. If a pre-compiled
package does not exist for your system, you can find PCRE sources
at http://www.pcre.org
** The ARPACK library is no longer distributed with Octave.
If you need the eigs or svds functions you must provide an
external ARPACK through a package manager or by compiling it
yourself. If a pre-compiled package does not exist for your system,
you can find the current ARPACK sources at
http://forge.scilab.org/index.php/p/arpack-ng
** Many of Octave's binary operators (.*, .^, +, -, ...) now perform
automatic broadcasting for array operations which allows you to use
operator notation instead of calling bsxfun or expanding arrays (and
unnecessarily wasting memory) with repmat or similar idioms. For
example, to scale the columns of a matrix by the elements of a row
vector, you may now write
rv .* M
In this expression, the number of elements of rv must match the
number of columns of M. The following operators are affected:
plus + .+
minus - .-
times .*
rdivide ./
ldivide .\
power .^ .**
lt <
le <=
eq ==
gt >
ge >=
ne != ~=
and &
or |
atan2
hypot
max
min
mod
rem
xor
additionally, since the A op= B assignment operators are equivalent
to A = A op B, the following operators are also affected:
+= -= .+= .-= .*= ./= .\= .^= .**= &= |=
See the "Broadcasting" section in the new "Vectorization and Faster
Code Execution" chapter of the manual for more details.
** Octave now features a profiler, thanks to the work of Daniel Kraft
under the Google Summer of Code mentorship program. The manual has
been updated to reflect this addition. The new user-visible
functions are profile, profshow, and profexplore.
** Overhaul of statistical distribution functions
Functions now return "single" outputs for inputs of class "single".
75% reduction in memory usage through use of logical indexing.
Random sample functions now use the same syntax as rand and accept
a comma separated list of dimensions or a dimension vector.
Functions have been made Matlab-compatible with regard to special
cases (probability on boundaries, probabilities for values outside
distribution, etc.). This may cause subtle changes to existing
scripts.
negative binomial function has been extended to real, non-integer
inputs. The discrete_inv function now returns v(1) for 0 instead of
NaN. The nbincdf function has been recoded to use a closed form
solution with betainc.
** strread, textscan, and textread have been completely revamped.
They now support nearly all Matlab functionality including:
* Matlab-compatible whitespace and delimiter defaults
* Matlab-compatible options: 'whitespace', treatasempty', format
string repeat count, user-specified comment style, uneven-length
output arrays, %n and %u conversion specifiers (provisionally)
** All .m string functions have been modified for better performance or
greater Matlab compatibility. Performance gains of 15X-30X have
been demonstrated. Operations on cell array of strings no longer pay
quite as high a penalty as those on 2-D character arrays.
deblank: Now requires character or cellstr input.
strtrim: Now requires character or cellstr input.
No longer trims nulls ("\0") from string for Matlab
compatibility.
strmatch: Follows documentation precisely and ignores trailing spaces
in pattern and in string. Note that this is documented
Matlab behavior but the implementation apparently does
not always follow it.
substr: Now possible to specify a negative LEN option which
extracts to within LEN of the end of the string.
strtok: Now accepts cellstr input.
base2dec, bin2dec, hex2dec:
Now accept cellstr inputs.
dec2base, dec2bin, dec2hex:
Now accept cellstr inputs.
index, rindex:
Now accept 2-D character array input.
strsplit: Now accepts 2-D character array input.
** Geometry functions derived from Qhull (convhull, delaunay, voronoi)
have been revamped. The options passed to the underlying qhull
command have been changed for better results or for Matlab
compatibility.
convhull: Default options are "Qt" for 2D, 3D, 4D inputs
Default options are "Qt Qx" for 5D and higher
delaunay: Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs
Default options are "Qt Qbb Qc Qx" for 4D and higher
voronoi: No default arguments
** Date/Time functions updated. Millisecond support with FFF format
string now supported.
datestr: Numerical formats 21, 22, 29 changed to match Matlab.
Now accepts cellstr input.
** The following warning IDs have been removed:
Octave:associativity-change
Octave:complex-cmp-ops
Octave:empty-list-elements
Octave:fortran-indexing
Octave:precedence-change
** The warning ID Octave:string-concat has been renamed to
Octave:mixed-string-concat.
** Octave now includes the following Matlab-compatible preference
functions:
addpref getpref ispref rmpref setpref
** The following Matlab-compatible handle graphics functions have been
added:
guidata uipanel uitoolbar
guihandles uipushtool uiwait
uicontextmenu uiresume waitfor
uicontrol uitoggletool
The uiXXX functions above are experimental.
Except for uiwait and uiresume, the uiXXX functions are not
supported with the FLTK+OpenGL graphics toolkit.
The gnuplot graphics toolkit does not support any of the uiXXX
functions nor the waitfor function.
** New keyword parfor (parallel for loop) is now recognized as a valid
keyword. Implementation, however, is still mapped to an ordinary
for loop.
** Other new functions added in 3.6.0:
bicg nthargout usejava
is_dq_string narginchk waitbar
is_sq_string python zscore
is_function_handle register_graphics_toolkit
loaded_graphics_toolkits recycle
** Deprecated functions.
The following functions were deprecated in Octave 3.2 and have been
removed from Octave 3.6.
create_set spcholinv splu
dmult spcumprod spmax
iscommand spcumsum spmin
israwcommand spdet spprod
lchol spdiag spqr
loadimage spfind spsum
mark_as_command sphcat spsumsq
mark_as_rawcommand spinv spvcat
spatan2 spkron str2mat
spchol splchol unmark_command
spchol2inv split unmark_rawcommand
The following functions have been deprecated in Octave 3.6 and will
be removed from Octave 3.10 (or whatever version is the second major
release after 3.6):
cut is_duplicate_entry
cor polyderiv
corrcoef shell_cmd
__error_text__ studentize
error_text sylvester_matrix
** The following functions have been modified for Matlab compatibility:
randperm
CHANGES MADE TO MATHOMATIC 15.8.5 TO BRING IT UP TO THE NEXT VERSION:
Code, documentation, and user interface improvements, corrections,
and cleanup. Fixed many possible bugs, some where the wrong level global
expression buffers were being used.
05/26/12 - Push command improved with better responses. Same functionality.
In the source code, tune-up variable integer_coefficients was
renamed to "factor_out_all_numeric_gcds", because Mathomatic always
tries to have integer coefficients this year, but it doesn't always
factor out all numeric GCDs unless factor_out_all_numeric_gcds
is true, or the factor command is used. The default is false,
for more orderly and revealing coefficients.
Of course, much of what Mathomatic does is
try to improve readability and simplicity.
There is no need to set this variable, just use the factor command.
05/27/12 - Removed C declarations for memmove(3), the defaults in
/usr/include/string.h are probably better and what's wanted in
every case. It would be very odd if this didn't work 100%.
05/28/12 - readline history file renamed to "~/.matho_history" from
"~/.mathomatic_history". File name was too long for CygWin.
Tested thoroughly compiling, installing, and running under
the latest CygWin. Works fine, except for rlwrap. "rlwrap -v"
returns with error, a successful return is how I test for its
existence.
Made output redirection work with the "list primes" command.
06/02/12 - Cleanup of Linux, Mac OS X, and Windows binary distributions.
The Windows binary distribution now includes m4 scripts, in case
CygWin is installed, allowing use of m4 Mathomatic in Windows.
Fixed MinGW version to not output two carriage returns at the
end of every line of list command output.
06/03/12 - If compiled with -DSHOW_RESOURCES, will give total CPU usage and
RSS size in the "version status" command. Requires OS support.
Some OSes will show even more information. Uses getrusage(2).
06/04/12 - Allow breaking out of user line-input requests with Control-C.
Still have to hit the Enter key, but the command will be aborted.
06/05/12 - Added "lib/example.c", the simplest example yet of Symbolic Math
Library usage. Compile with "compile.testmain" or practice
compiling it by hand.
The simplify command now returns the number of expressions
simplified, so you can tell if "simplify sign" worked.
The solve command can now require verification, by using the
"verifiable" option, instead of the "verify" option. This causes
unverifiable solves to return with failure, aborting any reads.
Fixed missing code in internal C function free_mem().
I don't think it was used by anyone. A call to free_mem() is
now made on exit, if Mathomatic is compiled with -DVALGRIND, to
check for memory leaks.
06/08/12 - Added polynomial factoring to GCD result of divide command.
It is always handy to know what the factors are of the GCD.
Allow comma (,) at the end of most input lines. A comma now
terminates an expression instead of giving an error. Allow
commas all over the place, where-ever logical, in any
Mathomatic command-line. They are used as separators,
more so than spaces.
06/09/12 - Cleaned up variables command to always allow the count parameter,
and to line up everything with 8 character wide tabs.
Added ability to place the definite integration bounds on the
integrate command-line, just like the nintegrate command.
Added titles to most help command pages.
06/10/12 - The "factor number" command works much nicer now, and allows comma
separators and zero.
Developers should note that to remain the same as past versions,
HTML mode needs to be "set html all" to output HTML at all times
in both the application and the symbolic math library, even when
redirecting output. Now setting all HTML mode with
"make pdfsheet". "set html" only outputs HTML code to standard
output.
06/13/12 - Added warning in "misc/known_bugs.txt" about LLVM/Clang optimizer
failure when compiling Mathomatic with LLVM/Clang instead of gcc.
If you enable any optimization at all, entering (32^.5) and the
like will hang Mathomatic, putting it in an endless loop.
So when compiling Mathomatic with LLVM/Clang, always disable
optimization with "-O0", so that it will then run and pass
all of the tests in 1 second and not be infinitely slower.
Mathomatic will hang during "make test"
if compiled with optimization enabled using LLVM. Mathomatic is
not noticeably slower when compiled without any optimization,
because everything is memmove(3)s and floating point arithmetic.
06/15/12 - Added repeat option to replace command. A handy feature that
lets you try plugging different values into an equation. It
checks if the result is an identity, too.
06/18/12 - The version command now has a "status" option, which behaves
as before, displaying all version and status information.
The version command by itself now only displays the Mathomatic
version number. Running "mathomatic -v" is now a good way of
testing for the existence of Mathomatic on your system, only
outputting the version number to standard output and exiting
successfully.
06/19/12 - Removed the parenthesizing of variable names in all messages.
If the current expression is a non-equation, then prefixing or
suffixing an expression with "=" will add that expression as
the other equation side now, conveniently making it an equation
you can solve.
06/22/12 - Added equation number ranges option to tally command. Type
"tally -" to resume if the current equation hasn't changed. Type
"tally all" to add together all stored expressions as the starting
value. Specifying equation numbers or ranges will silently add
them, then prompt for the next things to add. The average option
now displays the number of entries (count) each time the average
is displayed. When you exit by typing an empty line, the current
total is saved in the next available equation space and made
current, so it can easily resume with "tally -". "-" by itself
always means the current equation.
gnuplot now works with MS-Windows better. Tried running a Windows
gnuplot test from scratch, without Cygwin, and it didn't work.
It should be mostly fixed now. So go ahead and try plotting
in Windows, after downloading and installing gnuplot. Please
complain if any problems.
Fixed a long-running problem with the plot command, by asking the
user questions, only if needed, so that gnuplot will not give an
error if you are multi-expression plotting.
06/23/12 - Moved load_rc() out of main.c so that the Mathomatic startup set
options file can be loaded by the library, if the developer wishes.
Changed a few things so that "set save" and "set no save" will work
if load_rc() is called beforehand.
06/25/12 - The simplify command has been fixed for optimal integer coefficient
factoring results and so "180*(sides-2)" simplification works
nicely, by keeping the result the same as the start by
factoring out rational constants greater than 1 (this is new),
along with less than 1,
if the coefficients remain or become integers.
Many things cleaned up and finished, like the official
documentation, the "code integer" command, and "examples/fact.c".
06/27/12 - Allow an ASCII string after the "set save" command, to save only
that string in ~/.mathomaticrc, so that string, which should be set
options, is for every Mathomatic session to start with.
For example, "set save bold color" will start out Mathomatic in
bold color mode every time. Enter "set no save" to remove.
"set save" by itself saves all of the current set options for every
future session.
Mathomatic version 16.0.0 released Friday 06/29/12.
Based on PR 46507 by Wen Heping.
* let to register egg-info.
* all files in distfile are not DOS style EOL oter than Windows related files,
so remove extract option for ZIP.
GMPY 1.15 is a bug fix release. The following bugs were fixed:
* Reference counting leak in divmod(x,0).
* Fatal crash in remove(x,1).
* Discontinue use of custom memory allocator. (Fixes compatibility with Sage.)
* Allow up to base-62 integer conversion.
Based on PR 46506 by Wen Heping.
* let to register egg-info.
* marked as incompatible with python 2.5, as new features in 1.3.
but not marked as compatible with 3.x, one file will not be compiled well
both 3.1 and 3.2.
Lease Log:
Networkx-1.6
Release date: 20 November 2011
Highlights
New functions for finding articulation points, generating random bipartite
graphs, constructing adjacency matrix representations, forming graph products,
computing assortativity coefficients, measuring subgraph centrality and
communicability, finding k-clique communities, and writing JSON format output.
New examples for drawing with D3 Javascript library, and ordering matrices with
the Cuthill-McKee algorithm.
More memory efficient implementation of current-flow betweenness and new
approximation algorithms for current-flow betweenness and shortest-path
betweenness.
Simplified handling of "weight" attributes for algorithms that use
weights/costs/values. See Version 1.6 notes and API changes.
Updated all code to work with the PyPy Python implementation http://pypy.org
which produces faster performance on many algorithms.
For full details of the tickets closed for this release (added features and bug
fixes) see: https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.6
API Changes
See Version 1.6 notes and API changes:
http://networkx.lanl.gov/reference/api_1.6.html
Networkx-1.5
Release date: 4 June 2011
For full details of the tickets closed for this release see: https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.5
Highlights
New features
* Algorithms for generating and analyzing bipartite graphs
* Maximal independent set algorithm
* Erd?s-Gallai graphical degree sequence test
* Negative edge cycle test
* More memory efficient Dijkstra path length with cutoff parameter
* Weighted clustering coefficient
* Read and write version 1.2 of GEXF reader format
* Neighbor degree correlation that handle subsets of nodes
* In-place node relabeling
* Many `weighted' graph algorithms now take optional parameter to use
specified edge attribute (default=`weight') (ticket 509)
* Test for distance regular graphs
* Fast directed Erd?s-Renyi graph generator
* Fast expected degree graph generator
* Navigable small world generator
* Waxman model generator
* Geographical threshold graph generator
* Karate Club, Florentine Families, and Davis' Women's Club graphs
API Changes
See Version 1.5 notes and API changes
http://networkx.lanl.gov/reference/api_1.5.html
Bug fixes
* Fix edge handling for multigraphs in networkx/graphviz interface
(ticket 507)
* Update networkx/pydot interface for new versions of pydot
(ticket 506), (ticket 535)
* Fix negative cycle handling in Bellman-Ford (ticket 502)
* Write more attributes with GraphML and GML formats (ticket 480)
* Handle white space better in read_edgelist (ticket 513)
* Better parsing of Pajek format files (ticket 524) (ticket 542)
* Isolates functions work with directed graphs (ticket 526)
* Faster conversion to numpy matrices (ticket 529)
* Add graph[`name'] and use properties to access Graph.name (ticket 544)
* Topological sort confused None and 0 (ticket 546)
* GEXF writer mishandled weight=0 (ticket 550)
* Speedup in SciPy version of PageRank (ticket 554)
* Numpy PageRank node order incorrect + speedups (ticket 555)
Networkx-1.4
Release date: 23 January 2011
New features
* k-shell,k-crust,k-corona
* read GraphML files from yEd
* read/write GEXF format files
* find cycles in a directed graph
* DFS and BFS algorithms
* chordal graph functions
* Prim's algorithm for minimum spanning tree
* r-ary tree generator
* rich club coefficient
* NumPy matrix version of Floyd's algorithm for all-pairs shortest path
* read GIS shapefiles
* functions to get and set node and edge attributes
* and more, see https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.4
API Changes
* gnp_random_graph() now takes a directed=True|False keyword instead of
create_using
* gnm_random_graph() now takes a directed=True|False keyword instead of
create_using
Bug fixes
* see https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.4
Networkx-1.3
Release date: 28 August 2010
See: https://networkx.lanl.gov/trac/timeline
New features
* Works with Python versions 2.6, 2.7, 3.1, and 3.2 (but not 2.4 and 2.5).
* Minimum cost flow algorithms
* Bellman-Ford shortest paths
* GraphML reader and writer
* More exception/error types
* Updated many tests to unittest style. Run with:
"import networkx; networkx.test()" (requires nose testing package)
* and more, see https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.3
API Changes
* minimum_spanning_tree() now returns a NetworkX Graph (a tree or forest)
Bug fixes
* see https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.3
The Munkres module provides an implementation of the Munkres
algorithm (also called the Hungarian algorithm or the Kuhn-Munkres
algorithm), useful for solving the Assignment Problem.
Assignment Problem: Let C be an nxn matrix representing the costs
of each of n workers to perform any of n jobs. The assignment
problem is to assign jobs to workers in a way that minimizes the
total cost. Since each worker can perform only one job and each
job can be assigned to only one worker the assignments represent
an independent set of the matrix C.
Contributed to pkgsrc-wip by Jason Bacon.
ARPACK is a collection of Fortran77 subroutines designed to solve large
scale eigenvalue problems.
The package is designed to compute a few eigenvalues and corresponding
eigenvectors of a general n by n matrix A. It is most appropriate for large
sparse or structured matrices A where structured means that a matrix-vector
product w <- Av requires order n rather than the usual order n**2 floating
point operations. This software is based upon an algorithmic variant of the
Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When
the matrix A is symmetric it reduces to a variant of the Lanczos process
called the Implicitly Restarted Lanczos Method (IRLM). These variants may be
viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly
Shifted QR technique that is suitable for large scale problems. For many
standard problems, a matrix factorization is not required. Only the action
of the matrix on a vector is needed. ARPACK software is capable of solving
large scale symmetric, nonsymmetric, and generalized eigenproblems from
significant application areas. The software is designed to compute a few (k)
eigenvalues with user specified features such as those of largest real part
or largest magnitude. Storage requirements are on the order of n*k locations.
No auxiliary storage is required. A set of Schur basis vectors for the desired
k-dimensional eigen-space is computed which is numerically orthogonal to working
precision. Numerically accurate eigenvectors are available on request.
Important Features:
o Reverse Communication Interface.
o Single and Double Precision Real Arithmetic Versions for Symmetric,
Non-symmetric, Standard or Generalized Problems.
o Single and Double Precision Complex Arithmetic Versions for Standard
or Generalized Problems.
o Routines for Banded Matrices - Standard or Generalized Problems.
o Routines for The Singular Value Decomposition.
o Example driver routines that may be used as templates to implement
numerous Shift-Invert strategies for all problem types, data types
and precision.
Thiss fixes a compilation issue with aligned_allocator, and a typo
in the ParametrizedLine documentation.
2.0.16:
Fix bug in 3x3 tridiagonlisation (and consequently in 3x3 selfadjoint eigen decomposition).
Fix compilation for new gcc 4.6.
Fix performance regression since 2.0.12: in some matrix-vector product, complex matrix expressions were not pre-evaluated.
Fix documentation of Least-Square.
New feature: support for part<SelfAdjoint>.
Fix bug in SparseLU::setOrderingMethod.
FFTW 3.3.2
* Removed an archaic stack-alignment hack that was failing with
gcc-4.7/i386.
* Added stack-alignment hack necessary for gcc on Windows/i386. We
will regret this in ten years (see previous change).
* Fix incompatibility with Intel icc which pretends to be gcc
but does not support quad precision.
* make libfftw{threads,mpi} depend upon libfftw when using libtool;
this is consistent with most other libraries and simplifies the life
of various distributors of GNU/Linux.
FFTW 3.3.1
* Changes since 3.3.1-beta1:
- Reduced planning time in estimate mode for sizes with large
prime factors.
- Added AVX autodetection under Visual Studio. Thanks Carsten
Steger for submitting the necessary code.
- Modern Fortran interface now uses a separate fftw3l.f03 interface
file for the long double interface, which is not supported by
some Fortran compilers. Provided new fftw3q.f03 interface file
to access the quadruple-precision FFTW routines with recent
versions of gcc/gfortran.
* Added support for the NEON extensions to the ARM ISA. (Note to beta
users: an ARM cycle counter is not yet implemented; please contact
fftw@fftw.org if you know how to do it right.)
* MPI code now compiles even if mpicc is a C++ compiler; thanks to
Kyle Spyksma for the bug report.
FFTW 3.3.2
* Removed an archaic stack-alignment hack that was failing with
gcc-4.7/i386.
* Added stack-alignment hack necessary for gcc on Windows/i386. We
will regret this in ten years (see previous change).
* Fix incompatibility with Intel icc which pretends to be gcc
but does not support quad precision.
* make libfftw{threads,mpi} depend upon libfftw when using libtool;
this is consistent with most other libraries and simplifies the life
of various distributors of GNU/Linux.
CHANGES MADE TO MATHOMATIC 15.8.4 TO BRING IT UP TO THE NEXT VERSION:
General cleanup.
05/11/12 - Renamed fact(x) function to factorial(x), because Maxima uses
the function "factorial(x)" and no one uses "fact(x)". Added
factorial(x) as a standard function in rmath. Removed binary
operator name "mod" from rmath, due to having a different meaning
in conventional mathematics. It previously meant the % operator,
which is a programming language construct and not math.
05/14/12 - Improved user interface of divide command.
05/16/12 - Improved introduction to Mathomatic in "doc/manual.html".
05/17/12 - Made more use of C function !isfinite(double) for better
reliability. Checks for infinity and NaN on user input.
05/18/12 - Solve verify now quick simplifies the solve result, so you
don't have to. This will result in better verification and
less chance of oversized expressions.
05/20/12 - Fixed solving bug where it was throwing away absolute values.
Improved the way Mathomatic looks.
05/21/12 - examples/limits.c is now a highly polished program, LGPL licensed.
Compile with "./compile.limits". Tells the integer and float
C data types, with sizes, characteristics, and verification
for the current C compiler (cc).
Display total number of unique solutions stored with
"simplify sign".
Fixed several errors in the simplify command documentation in the
Mathomatic Command Reference.
05/22/12 - Fixed simplify command to simplify (x^2 - 1)^4/(x + 1)^2 properly,
by factoring repeated factor polynomials at the very end.
Fixed bug in divide command, wasn't calculating the polynomial GCD
sometimes, etc, because input was not being expanded. Broken on
12/14/11, fixed today.
05/23/12 - Fixed limit command to return the original expression when the
limit variable is not found or the expression contains no
variables. A warning is given, telling that this is the case.
Thanks to Parag Magunia for indicating that this was a bug.
Previously these cases only returned with an error message.
"tests/limits.in" limit command regression tests checked and
re-added to the main tests. All still works the same as when
these limit command regression tests were removed long ago.
05/24/12 - Cleanup, and remove "examples/c", replaced with
"examples/compile.limits" and "examples/compile.roots".
Mathomatic version 15.8.5 released Friday 05/25/12.
CHANGES MADE TO MATHOMATIC 15.8.3 TO BRING IT UP TO THE NEXT VERSION:
The version command now displays the last main prompt return value, and
the number of allocated equation spaces.
04/29/12 - Added simplifying trig identities to the tests. Discovered
"solve 0" doesn't work anymore, use "solve for 0" instead.
"solve 0" will be fixed and enhanced shortly.
04/30/12 - "solve 0" and "solve verify 0" work now. "solve verify 0"
will solve for zero and tell you if the equation is an identity
or not, while "solve 0" simply solves the current equation for
zero. "solve all verify 0" will verify that all entered equations
are identities.
With the roots command, the "Inverse check" value is not
displayed unless debugging is enabled now.
The iterative calculate command mode now always tells the
number of completed feedback iterations.
It was not apparent before.
Documented and ignore pause command with demo mode now,
instead of html mode.
Demo mode is specified with -d, html mode with -x.
05/02/12 - Mathomatic now proudly displays when verifying a solve operation.
Too many UI improvements to mention, all relatively minor.
05/03/12 - Added "copy select" option to the copy command, which selects
the first created copy, making it the current equation, rather
than not updating the current equation.
05/04/12 - Ran valgrind on the symbolic math library executable testmain,
after running all the tests, no memory
leaks were found at all! I was surprised! Now I get to pat
myself on the back! I will make another release soon.
05/05/12 - "display simple" is now allowed, in addition to "display mixed",
to display simple or mixed fractions as desired, regardless of
the default.
"set finance" option removed, replace with "set fixed" option.
Works similarly, except now you can do "set fixed_point=0" to have
integer-only output.
"set no fixed" or "set fixed -1" turns off fixed-point
mode, returning you to true floating-point mode.
05/06/12 - Added more integer factoring debugging code. It's a shame that
Mathomatic only does double precision floating point arithmetic.
Made "set no autodelete" the default. Numeric expressions will
not be deleted. "set auto" leaves "autodelete" alone now.
05/07/12 - real and imaginary commands now append "_real" or "_imag" to the
solved for variable name now, if a solved equation. This is for
clarification and ease of use.
05/08/12 - Improved "misc/limits.c" and added GNU LGPL license preamble.
Later moved to directory examples.
-d demo mode now allows using the calculate command without
prompting for the values of any of the variables. This is so the
calculate command can be used with the online versions of
Mathomatic.
05/09/12 - Moved all worthy example source code from directory misc to
directory examples, so they can be included in the binary
distributions. Moved and now available are limits.c, roots.c,
and testprimes.
Improved/shortened the eliminate command messages and made the
"using" syntax consistent.
Need "set debug -2" to suppress everything now, including warnings.
"set debug -1" only suppresses helpful messages now, warnings will
get through. Warnings are usually rather important.
Mathomatic version 15.8.4 released Thursday 05/10/12.
CHANGES MADE TO MATHOMATIC 15.8.2 TO BRING IT UP TO THE NEXT VERSION:
Code cleanup.
03/27/12 - Added simplification of "tests/trig.in" and "tests/hypertrig.in"
to the regression tests.
04/02/12 - Added ability to create all non-re-entrant code, so that the Apple
app store won't complain. The line containing "_REENTRANT" in
"includes.h" has been commented out, so nothing special needs to be
done, when compiling for iOS.
04/07/12 - Added ability to make help command text paragraphs all one long
line, instead of always expecting an 80 column or higher display.
Useful for 40 column displays for example, as long as the display
wraps at 40 columns, the output should look OK. Better than it
did, anyways. Tables and such are preserved. See the beginning
of "help.c".
04/10/12 - Fixed bug failing to run gnuplot with Mathomatic compiled with
MINGW. This only affects the MS-Windows version. So if you have
downloaded gnuplot under MS-Windows, the plot command should work
the same as in all other operating systems, now. Be sure and name
it gnuplot.exe and have it in an executable directory in your PATH.
This fixed bug is thanks to Tom Sturgeon for bringing this
error to my attention. This gnuplot fix will be included in the
next release, version 15.8.3, and is now in the development
version. The problem was caused by differences between the Unix
echo command and the Windows echo command.
04/12/12 - Comparing expressions with the compare command will now tell if
one expression is the negation (times -1) of the other.
04/22/12 - Added the HTML tidy command after rman, so that the HTML errors
created by rman are all fixed.
Added and documented matho_clear(3) to Symbolic Math Library,
replaces clear_all(). Simply rename all occurrences of
clear_all() in your code that uses the library with
matho_clear().
04/23/12 - Improved debugging code and error messages.
04/25/12 - The previous autocalc result is erased every time autocalc is
used, unless "set no autodelete" was done. This is done in case
you would like to keep every calculation you made stored in an
equation space. The default is the previous behavior:
"set autodelete", which only keeps one numerical calculation
in memory. "autodelete" only means something when "autocalc" is
on, and since the library has no calculate command, this is not
available in the symbolic math library.
04/27/12 - Cleanup of equation space selecting, shelling out with !, etc.
In the Mathomatic application, everything is now flushed before
user input (with fflush(NULL)). fflush(NULL) is not used at all
anymore in the symbolic math library.
Mathomatic version 15.8.3 released Saturday 04/28/12.
CHANGES MADE TO MATHOMATIC 15.8.1 TO BRING IT UP TO THE NEXT VERSION:
Change of 12/18/11 partially undone. Preventing power collecting
of absolute values doesn't seem necessary anymore, some other
change done recently must have fixed it.
Now power collecting is always done when requested,
fixing a substantial simplification regression that began on 12/18/11.
03/13/12 - Small fix to main makefile. "mandir" and "docdir" no longer depend
on "datadir".
03/14/12 - Small fix to simplification. Any absolute value (such as
|x*y| = ((x*y)^2)^.5) is now not ever power expanded
(to (x^2)^.5*(y^2)^.5 or (x*x*y*y)^.5), so some results are
simpler, like simplifying |x^2-x|.
03/23/12 - A change to the matho script makes GNU m4 no longer quiet
about any warnings or errors, when running m4 Mathomatic.
Mathomatic version 15.8.2 released Saturday 03/24/12.
* Author: Artem Ignatiev <zazubrik@gmail.com>
* remove require and rake altogether
* gem build and rake gem both work fine without those requires,
* and requiring 'rake' broke bundler
* add rake as development dependency
* Somehow it broken rake on my other project
=== 0.7.0 / 07.05.2012
* Author: Artem Ignatiev <zazubrik@gmail.com>
* use both ruby 1.8 and 1.9 compatible way of getting character code when hashing
* Fix syntax for ruby-1.9
* return gemspec so that bundler can find it
When bundler loads gemspec, it evaluates it, and if the return value is
not a gem specification built, refuses to load the gem.
* Testing worksheet protection
=== 0.6.9 / 28.04.2012
* Yield is more simple here too.
* No need to capture the block in Spreadsheet.open
* Rather than extending a core class, let's just use #rcompact from a helper module
Changes from versions 3.0.* to version 3.1.0:
- The "canard à l'orange" release.
- The MPFR source has been reorganized.
- Dropped ansi2knr support.
- TLS support is now detected automatically. If TLS is supported, MPFR is
built as thread safe by default. To disable TLS explicitly, configure
MPFR with --disable-thread-safe.
- New --enable-gmp-internals configure option to use GMP's undocumented
functions (not from the public API). Note that library versioning is
not guaranteed to work if this option is used.
- The mpfr_urandom and mpfr_urandomb functions now return identical values
on processors with different word size (assuming the same random seed, and
since the GMP random generator does not depend itself on the word size,
cf http://gmplib.org/list-archives/gmp-devel/2010-September/001642.html).
- The mpfr_add_one_ulp and mpfr_sub_one_ulp macros (which are obsolete and
no more documented) will be removed in a future release.
- Speed improvement for the mpfr_sqr and mpfr_div functions using Mulders'
algorithm. As a consequence, other functions using those routines are
also faster.
- Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
- The --with-gmp-build configure option can now be used when the GMP
source directory and the GMP build directory are different (without
having to copy header files manually as before).
- New functions mpfr_buildopt_gmpinternals_p, mpfr_buildopt_tune_case,
mpfr_frexp, mpfr_grandom and mpfr_z_sub.
- New divide-by-zero exception (flag) and associated functions.
- The mpfr.h header can be included several times, while still supporting
optional functions (see Section "Headers and Libraries" in the manual).
- Updated tuning parameters.
- Improved MPFR manual.
- MPFR tests: libtool no longer generates wrapper scripts with "make check"
(so that running the tests under valgrind or gdb is easier).
- Bug fixes.
Note: The mpfr_subnormalize implementation up to MPFR 3.0.0 did not change
the flags. In particular, it did not follow the generic rule concerning
the inexact flag (and no special behavior was specified). The case of the
underflow flag was more a lack of specification.
NetBSD-6.99.4/amd64:
All 160 tests passed
(1 test was not run)
changes: any new features, performance improvements and bug fixes,
Some highlights are:
-Re-introduction of datetime dtype support to deal with dates in arrays.
-A new 16-bit floating point type.
-A new iterator, which improves performance of many functions.
Functions for inference in generalised linear spatial models. The
posterior and predictive inference is based on Markov chain Monte
Carlo methods. Package geoRglm is an extension to the package geoR,
which must be installed first.
Database interface and PostgreSQL driver for R. This package provides
a Database Interface (DBI) compliant driver for R to access PostgreSQL
database systems. A wiki and issue tracking system for the package
are available at Google Code at https://code.google.com/p/rpostgresql/.
A database interface (DBI) definition for communication between R and
relational database management systems. All classes in this package
are virtual and need to be extended by the various R/DBMS
implementations.
A package with classes and methods for spatio-temporal data. In
particular, space-time regular lattices, sparse lattices, and
irregular data are supported, with limited support for trajectories,
but not for topologies with S/T interactions such as space-time
prisms. Utility functions are provided for plotting data as map
sequences (lattice or animation) or multiple time series; for spatial
and temporal selection, as well as methods for retrieving coordinates,
for subsetting, print, summary, etc.
Provide for uniform handling of R's different time-based data classes
by extending zoo, maximizing native format information preservation
and allowing for user level customization and extension, while
simplifying cross-class interoperability.
An S3 class with methods for totally ordered indexed observations. It
is particularly aimed at irregular time series of numeric
vectors/matrices and factors. Zoo's key design goals are independence
of a particular index/date/time class and consistency with ts and base
R by providing methods to extend standard generics.
CHANGES IN R VERSION 2.14.2:
NEW FEATURES:
o The internal untar() (as used by default by R CMD INSTALL) now
knows about some pax headers which bsdtar (e.g., the default tar
for Mac OS >= 10.6) can incorrectly include in tar files, and
will skip them with a warning.
o Function compactPDF() in package tools now takes the default for
argument gs_quality from environment variable GS_QUALITY: there
is a new value "none", the ultimate default, which prevents
GhostScript being used in preference to qpdf just because
environment variable R_GSCMD is set. If R_GSCMD is unset or set
to "", the function will try to find a suitable GhostScript
executable.
o For consistency with the logLik() method, nobs() for "nls" files
now excludes observations with zero weight. (Reported by Berwin
Turlach.)
UTILITIES:
o R CMD check now reports by default on licenses not according to
the description in 'Writing R Extensions'.
o R CMD check has a new option --as-cran to turn on most of the
customizations that CRAN uses for its incoming checks.
PACKAGE INSTALLATION:
o R CMD INSTALL will now no longer install certain file types from
inst/doc: these are almost certainly mistakes and for some
packages are wasting a lot of space.
+ BUG FIXES
CHANGES IN R VERSION 2.14.1:
NEW FEATURES:
o parallel::detectCores() is now able to find the number of
physical cores (rather than CPUs) on Sparc Solaris.
It can also do so on most versions of Windows; however the
default remains detectCores(logical = TRUE) on that platform.
o Reference classes now keep a record of which fields are locked.
$lock() with no arguments returns the names of the locked fields.
o HoltWinters() reports a warning rather than an error for some
optimization failures (where the answer might be a reasonable
one).
o tools::dependsOnPkg() now accepts the shorthand dependencies =
"all".
o parallel::clusterExport() now allows specification of an
environment from which to export.
o The quartz() device now does tilde expansion on its file
argument.
o Option print in Sweave's RweaveLatex() driver now emulates
auto-printing rather than printing (which can differ for an S4
object by calling show() rather than print()).
o filled.contour() now accepts infinite values: previously it might
have generated invalid graphics files (e.g. containing NaN
values).
+ BUG FIXES
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
Changes in Maxima 5.27:
Backwards-incompatible changes:
* remove obsolete Cray Fortran translator
* rename topoly and to_poly_solver to to_poly and to_poly_solve, respectively
New items in core:
* new functions zn_order, zn_primroot_p, zn_primroot, zn_log, chinese
New items in share:
* package rkf45: Runge-Kutta-Fehlberg 4th-5th order numerical o.d.e. solver
Other changes:
* functions bessel_i, bessel_j: results for imaginary arguments
* function build_info: return a structure instead of just printing its data
* function plot3d: allow 3-d parametric plots
* functions fortmx, f90mx: generate assignments to 1-d array when argument is a list
* package ezunits: update values for physical constants
* revise and update documentation
* reorganization of directory maxima/share
* clean up source code by cutting out unused functions
Bug fixes:
3509430: limit of tanh(x) at 0 makes no sense
3497046: Integration of products of sin(nz)/(nz) sometimes fails
3495182: hgfred([-n/2, (n-1)/2],[1],x) --> error
3484414: display places (false) before output if display2d is false
3480954: integrate(sin(x)^2/x,x,minf,inf) gives not zero
3473549: gcl bug using 1-12-2012 defint.lisp
3470668: Integration is not correct: invalid 'false' term in results
3469184: integrate(exp(-x^n),x,0,1) bug for n >2
3449369: nfloat
3397562: sin(x^2)/(x^2) improper integral incorrect?
mailing list 2012-02-27: print ( false ) bug 5.26.0
mailing list circa 2012-02-19: BIGFLOAT::%TO should pass CL complex numbers
mailing list circa 2012-01-27: nonstandard extension in category scripts
mailing list circa 2012-01-09: invert_by_lu does not work as expected
overflow in regularized incomplete gamma function
incorrect value for gamma_incomplete(0,200*%i)
It sounds like COMPILE-FILE is broken in CLISP on NetBSD/amd64.
Silence warnings and suppress redefinition check in order to compile it
without a single warning.
Makefile.
A package that provides classes and methods for spatial data. The
classes document where the spatial location information resides, for
2D or 3D data. Utility functions are provided, e.g. for plotting data
as maps, spatial selection, as well as methods for retrieving
coordinates, for subsetting, print, summary, etc.
Changes in OpenAxiom-1.4.1
Algebra
The domain ScriptFormulaFormat and the package ScriptFormulaFormat1 have been removed.
Changes in OpenAxiom-1.4.0
This release introduces the following changes from the base document
("AXIOM: The Scientific Computation System" by Jenks and Sutor).
Compiler
* The compiler now accepts interpreter-style unnamed functions.
* The compiler now generate far better (Lisp) codes for Spad libraries
or scripts. The compiler now applies more aggressive (but sound)
optimizations, including domain inlining, type propagations.
* The compiler now accepts interpreter-style unnamed functions.
* Parameterized macros are now supported by the compiler.
* The compiler now support exception handling. In particular,
the try/finally programming construct was added to support reliable
resource management (e.g. opening/closing or creating/removing files.)
Algebra
In addition to novelties in OpenAxiom-1.3.0, the following types have been
added to OpenAxiom-1.4.0:
* The category BooleanLogic has been added.
It is now extended by PropositionalLogic and BitAggregate.
The domain SingleInteger now satisfies BooleanLogic.
* It it now possible to obtain the string representation of a
DoubleFloat value. The function
string: DoubleFloat -> %
was added to the domain String
* A function matrix is now exported by the category MatrixCategory
to allow construction of matrices whose entries can be succinctely
described by a function. For instance, the 4-by-4 Hilbert matrix
may be expressed as
m: Matrix Fraction Integer := matrix(4,4,(i,j) +-> 1/(i+j))
Note that the third argument is a function that computes the value
of the (i,j)th entry.
* The category StringCategory was removed as it was essentially redundant
with the category StringAggregate.
* The category MappingCategory is now part of the algebra as a builtin
category constructor.
* The following operators
less?: (%,NonNegativeInteger) -> Boolean
more?: (%,NonNegativeInteger) -> Boolean
size?: (%,NonNegativeInteger) -> Boolean
have been moved from the category Aggregate to StreamAggregate
where they seem more appropriate.
* The domain InnerTaylorSeries now satisfies the category BiModule.
* The domains FreeModule and OrderedFreeMonoid now satisfy the newly
added FreeMonoidCategory.
* The list of domains for OpenAxiom program manipulation has been expanded.
* Support for range and segment bindings now includes RangeBinding.
Boot
Boot, the programming language used to write the OpenAxiom compiler,
has been vastly improved. Lisp codes are being phased out.
CHANGES MADE TO MATHOMATIC 15.8.0 TO BRING IT UP TO THE NEXT VERSION:
Added some important missing documentation, and the makefiles were fixed.
Some scary messages explained to make them less scary.
02/23/12 - All makefiles corrected to fix the following problem:
Removed -Cv option from the install command, so that installing
Mathomatic under NetBSD works without a hitch. The "install -Cv"
option is not supported under some operating systems, so compiling
and installing Mathomatic will now be easier on those systems.
02/27/12 - Added Heron's formula (calculates the area of any triangle, given
all three side lengths) to the "help geometry" command. Mathomatic
can solve for any side length, too. See "tests/heron.in" for some
proofs.
03/01/12 - "make uninstall" is now passing the current "prefix" (the directory
being operated on, like "/usr") to the lib and primes uninstall.
03/04/12 - Added noisy compile-time warning if DBL_DIG is not 15, and display
it as digits precision in the version command.
Removed "no right_associative_power" from set options listing, now
only lists "right_associative_power" if it is set. A very
unimportant and rarely used option that was just taking up display
space. However, when set, this option makes Mathomatic work like
most other computer algebra systems when parsing multiple power
operators on the same level (without parentheses). So feel free
to use it, or recommend I make it the default.
03/06/12 - Fixed a bug in modulus simplification; sometimes it would go in an
infinite loop because it was not checking that it made the
expression smaller. It now checks that the result is actually
smaller. Surprisingly, this problem happened only when doing
polynomial division for a modulus operator to simplify it.
Here is a test expression, to see if you have this bug:
(x % ((x - y)/integer_any1)). Simplifying it results in a hang,
on any version of Mathomatic without the new bug fix.
Mathomatic version 15.8.1 released Friday 03/09/12.
* Reduced planning time in estimate mode for sizes with large prime factors.
* Added AVX autodetection under Visual Studio.
* Modern Fortran interface now uses a separate fftw3l.f03 interface file for
the long double interface, which is not supported by some Fortran compilers.
Provided new fftw3q.f03 interface file to access the quadruple-precision FFTW
routines with recent versions of gcc/gfortran.
* Added support for the NEON extensions to the ARM ISA.
* MPI code now compiles even if mpicc is a C++ compiler.
* Updated test files from the Math::BigInt distribution
* Updated bundled Devel::CheckLib from v0.92 to v0.93
* Math::BigInt::GMP now requires Math::BigInt v1.997
* Include "^MYMETA\.(yml|json)\z" in MANIFEST.SKIP. Whereas META.* are
generated by the distribution author at packaging time, MYMETA.* are
generated by the end user at configure time after any dynamic dependencies
are known.
* Changed Makefile.PL so that a "make dist" makes a META.yml and META.json.
* Updated common test files from the Math::BigInt distribution.
Notable changes in FriCAS 1.1.6 (compared to version 1.1.5):
- Added experimental graph theory package.
- Added power series expanders for Weierstrass elliptic
functions at 0.
- New functions: kroneckerProduct and kroneckerSum for matrices,
numeric weierstrassInvariants and modularInvariantJ, symbolic
Jacobi Zeta, double float numeric elliptic integrals.
- New domains for vectors and matrices of unsigned 8 and 16 bit integers.
- Changes to Spad compiler: underscores which are not needed as escape
are now significant in Spad names and strings, macros with parameters
are supported, added partial support for exceptions, braces can
be used for grouping.
- A few speedups.
- Reduced disc space usage during build.
Bug fixes, in particular:
- Fixed eval of hypergeometricF at 0
- Fixed problem with scope of macros.
- Worked around problems with openinig named pipes in several Lisp
implementations.
- Fixed a problem with searching documentation via HyperDoc.
- Fixed build problem on Mac OSX.
Notable changes in FriCAS 1.1.5 (compared to version 1.1.4):
- Added numeric version of lambertW.
- New function 'rootFactor' which tries to write roots of products
as products of roots.
- 'try', 'catch' and 'finally' are now Spad keywords.
- Experimental support for using gmp with Closure CL (64-bit Intel/Amd
only).
- New categoris CoercibleFrom and ConvertibleFrom. New domain
for ordinals up to epsilon0. New domain for matrices of machine
integers. New package for solving linear equations written as
expressions (faster then general expression solver).
- Functions exported by Product() are now called 'construct', 'first'
and 'second' (instead of 'makeprod', 'selectfirst' and 'selectsecond'
respectively).
- Some functions are now much faster, in particular bivariate
factorization over small finite fields.
- When using sbcl FriCAS now tries to preload statistical profiler.
Bug fixes, in particular:
- Fixed handling of Control-C in FriCAS compiled by recent sbcl.
- Fixed HyperDoc crash due to bad handling of '#'.
- Fixed power series expanders for elliptic integrals.
- Fixed 'possible wild ramifcation' problem with algebraic
integrals.
- 'has' in interpreter now correctly handles '%'.
- Spad compiler can now handle single '=>' at top level of a function.
- Fixed few problems with conditional types in Spad compiler.
Notable changes in FriCAS 1.1.4 (compared to version 1.1.3):
- New domains for combinatorial probability theory by Franz Lehner.
- Improved integration of algebraic functions.
- Initial support for semirings.
- Updated framework for theory of computations.
- In Spad parser '**', '^' and '->' are now
right-associative.
- Spad parser now longer transforms relational operators.
- Join of categories is faster which speeds up Spad compiler.
Bug fixes, in particular:
- Retraction of 'rootOf' from Expression(Integer) to AlgebraicNumber
works now.
- Attempt to print error message about invalid type no longer
crash (SF 2977357).
- Fixed few problems in Spad compiler dealing with conditional exports.
- HyperDoc now should find all function descriptions (previously
it missed several).
CHANGES MADE TO MATHOMATIC 15.7.3 TO BRING IT UP TO THE NEXT VERSION:
02/05/12 - The variables command now returns false (with error message) if
no normal variables are listed with the default or "count"
command line options. This is so it can detect numeric-only
expressions, which may be useful.
02/08/12 - The set command now returns the string "Success." upon success,
if the debug level is positive or zero. m4 Mathomatic startup
m4 scripts required adjustment, so they wouldn't repeatedly say
"Success.".
02/13/12 - The variables command by default now displays e, i, pi as e#, i#,
and pi#, so you can tell they are not normal variables. This
affected other functionality of the variables command, fix was
uploaded before the end of the day.
02/14/12 - Change of 12/24/11 was undone. Many expressions containing the
imaginary unit, such as the complex exponential expansion of the
tangent function, were not getting simplified with the simplify
command. See the complex number problem in "misc/known_bugs.txt".
Simplification should work better now for expressions containing
division by complex numbers.
Mathomatic version 15.8.0 released Saturday 02/18/12.
CHANGES MADE TO MATHOMATIC 15.7.2 TO BRING IT UP TO THE NEXT VERSION:
Some minor user interface improvements were made.
12/14/11 - Further improved parse_complex(), so simplify works better and
the divide command no longer approximates, giving more accurate
symbolic answers.
12/18/11 - Combining powers and different denominators that contain absolute
values like ((x^2)^.5) is now prevented. This allows correct
simplification and solving when dealing with absolute values.
Tested with the Batman equations, which, when plotted
display the Batman logo ("tests/batman_plot").
12/21/11 - Moved place where 1/i is converted to -i to within the complex
number division handler, making complex number results more
consistent and correct.
12/23/11 - Changed the chief author's main email address to
"gesslein@mathomatic.org". The old linux.com email address didn't
seem to work, reliability issues, etc.
12/24/11 - Combining different denominators that contain the imaginary unit
(i) is now prevented. This prevents getting different answers
after simplifying a complicated complex number expression.
01/01/12 - All copyright dates updated to include the new year 2012.
Happy New Year everybody!
"set html" in the library now allows pretty HTML output with
redirected output and with 2D library result string expression
output ("set display2d" or display command).
Still no color HTML output for the library.
01/04/12 - Improvement to simplification made, less unnecessary divisions
and prettier results of the simplify command. Needs testing.
01/05/12 - Added color HTML output for redirected output when using the
symbolic math library.
01/24/12 - Increased the size of icons/mathomatic.png to 64x64 and made
it look nicer. This is the new, resizeable Mathomatic logo:
icons/mathomatic.svg.
01/25/12 - Published makenews.sh script to make the NEWS file out of the
changes.txt file.
01/26/12 - Added tests/demo and tests/demo_sub, to run specific scripts,
and create complete HTML output files from them. These are used
to create the examples on the Mathomatic website.
Mathomatic version 15.7.3 released Wednesday 02/01/12.
CHANGES MADE TO MATHOMATIC 15.7.1 TO BRING IT UP TO THE NEXT VERSION:
A C code cleanup was performed and new debugging/self-checking code was added.
11/19/11 - "make uninstall" now uninstalls the prime number tools and
symbolic math library too.
11/20/11 - Cleaned up calculate command to allow feedback iteration of more
than one expression at a time, for a consistent user interface.
11/22/11 - The Mathomatic command "help geometry" now enters the common
geometry formulas for you, into equation spaces.
Added "help conversions" which enters some common metric/English
conversion formulas; with it, you just select the equation that
does what you want, solving for the desired unit of measurement.
Then you just type "repeat calculate" to try different values.
"tests/geometry.in" and "tests/conversions.in" have been
subsequently removed.
11/25/11 - When compiled for the Symbolic Math Library, Mathomatic defaults
to single-line output ("set no display2d"), so that output can be
easily fed back into the input. Otherwise, output defaults to
2D mode ("set display2d"). Mathomatic no longer ignores the
display2d flag when using the Symbolic Math Library.
11/26/11 - The command "factor number" now works in the symbolic math library,
similarly to the way it works in the Mathomatic application.
11/27/11 - matho-sumsq in the Prime Number Tools now gets its input from
standard input, if invoked with no arguments.
11/29/11 - Added shell script "misc/testprimes" for a parallel, brute force
test for the first 50,000,000 primes generated by matho-primes.
Read the shell script for more information. Runs in 30 seconds on
a fast, dual-core computer.
11/30/11 - Added -m option to matho-primes, which allows specifying a
memory size multiplier.
12/02/11 - Added ability to push a text string into the readline history
buffer, with the "push string" command. Whenever the command
"push equation-number-ranges" fails, the entire argument text
string is pushed, instead.
12/03/11 - Made it so that entering "#" followed by a variable name at the main prompt
searches backwards through all equation spaces for that variable, and then
selecting and displaying that equation space. "/" followed by a variable name
performs similarly, but searches forward.
12/04/11 - Added "help main" command, which lists all things allowed at the
main prompt.
Added "tests/cubic2.in", which is the general cubic polynomial
formula using 2 equations.
Improved display order and functionality of "optimize all" command.
12/11/11 - Better detection of complex numbers with fixed parse_complex()
internal function.
Rationalizing denominators that contain absolute values ((x^2)^.5)
is now prevented. This was a bug.
Mathomatic version 15.7.2 released Tuesday 12/13/11.
CHANGES MADE TO MATHOMATIC 15.7.0 TO BRING IT UP TO THE NEXT VERSION:
11/03/11 - Added "tests/heart.in", which plots a nice looking heart with
gnuplot while running Mathomatic.
Displaying thousands separators in MinGW was failing, now it must
be specified with the THOUSANDS_SEPARATOR compile-time define.
Thousands separators are not well supported in most standard C
libraries, causing failure to display numbers, so they are now
turned off. So now "set finance" works in the MS-Windows version,
it was not working at all before (bug reports, anyone?).
11/04/11 - Testing "set finance" mode when doing the standard Mathomatic
tests now. "tests/finance.in" now does "set finance" first thing.
Do we need a round-up option for "set finance" mode? Currently
rounds to nearest cent.
11/06/11 - Some minor improvements to the Mathomatic symbolic math library
error handling output were made. And no more redundant nor
inappropriate things are sent to standard output when SILENT=0,
only helpful messages are output.
Added the "unfactor count" command option, which also displays the
resulting number of additive terms in each equation side.
11/10/11 - Improved error and warning messages.
Rearrangements were made for future reliability and thorough
testing.
11/11/11 - Allow multiple equation-number-ranges for the simplify command.
11/12/11 - Code cleanup and added more DEBUG error checking.
Added a little helpful color to the help command.
11/13/11 - "repeat echo -" now draws a line of dashes, "repeat echo" clears
the screen, etc.
The derivative command now properly terminates as soon as the
derivative reaches 0, whenever an order greater than 1 is
specified. Previously it just kept differentiating, order times.
The number of derivatives taken until the result reached 0 is
displayed. No primes are added to the LHS variable if the required
number of primes to add won't fit in the variable name. Previously
it gave the wrong number of primes (') if they all didn't fit.
Cleanup of the Mathomatic Prime Number Tools and their man pages.
11/14/11 - Fixed a missing check for out of memory failure in plot command.
Plotting expressions with sign variables in them now gives a
suggestion to try "simplify sign" first, because gnuplot doesn't
handle +/- or sign variables, but it can plot multiple
expressions at once.
11/17/11 - Made "make test" and ./t work under Cygwin, by ignoring trailing
carriage returns when comparing test output.
Mathomatic version 15.7.1 released Friday 11/18/11.
CHANGES MADE TO MATHOMATIC 15.6.5 TO BRING IT UP TO THE NEXT VERSION:
A C code cleanup was done.
10/02/11 - Allow an equation-number-range to be specified on the calculate
command command-line, so that multiple equation spaces can be
calculated automatically with a single command.
10/19/11 - Improved nintegrate command results. nintegrate of cos(sin(x+1))
wrt x from 0 to 1 now always gives the correct simplified result.
Rewrote to allow specifying lower and upper bounds on command line.
10/20/11 - Divide command improved: Allow specifying the dividend and divisor
on the command line. Other minor fixes.
The Mathomatic command "plot x^2" works now, Mathomatic
automatically replaces all ^ with ** on the plot command line.
10/21/11 - Added compilation option -fexceptions to CFLAGS in the Mathomatic
application and library makefiles and build scripts. May be why
exception handling wasn't working well in the past.
10/22/11 - Fixed the display command in the symbolic math library to respond
to "set columns=number" to cut-off the 2D expression output string
at the number column, instead of always 80 columns. And Unix shell
style redirection for the display command works now, to be
consistent with the other library commands, simultaneously
returning a single 2D expression string (width controlled by the
"set columns" variable) and outputting all specified 2D expressions
to the file pointed to by gfp (width limit set to infinity).
Trying to remove -lncurses from ld command line again, getting more
build failures because of it. To compile under old Red Hat Linux,
"LDLIBS=-lncurses make READLINE=1" must be used now. All other
distros should easily compile with no changes now.
10/24/11 - Added the "variables count" option, to display the counts of each
variable in the specified expressions or equations.
11/01/11 - Added "NEWS" file, which is just "changes.txt" reversed. "NEWS" is
ordered neatly with the latest changes at the top.
Mathomatic version 15.7.0 released Wednesday 11/02/11.
CHANGES MADE TO MATHOMATIC 15.6.4 TO BRING IT UP TO THE NEXT VERSION:
8/25/11 - Now allowing balanced parentheses with anything inside them in
variable names, so that they can preserve functions temporarily.
Just type "set special ()" to use this option and stop getting
errors when entering functions. They will not be real functions,
just variables whose name is the complete function string.
8/27/11 - Added sinc(x) function to m4 Mathomatic, which is the normalized
sinc function, defined as sin(pi*x)/(pi*x).
8/31/11 - Split off the generally useful stuff and general C math defines
from am.h to standard.h; am.h only contains Mathomatic defines now.
standard.h and complex_lib.c with complex.h can be included in
your C math programs if you like, with no changes required.
Use of gcd.c in other floating point programs that need a gcd() or
double-to-fraction convert function is recommended. The code
has been heavily tested by this CAS.
9/02/11 - Fixed and tested the variables command to handle complex number
equations better.
9/04/11 - Cleaned up and improved documentation on modular arithmetic and
its options. Mathomatic can simplify, calculate, and even solve
modular arithmetic!
9/06/11 - The 2D display command's internals were
rewritten to allow outputting to C string buffers. This allows
the display command to return a multi-line, formatted expression
string when using the Symbolic Math Library. Note that there is
no color mode when outputting to a C string, but if you send the
string to a terminal, it displays the specified equation space
nicely in 2D fraction format.
9/18/11 - Mathomatic "help color" command page created.
9/19/11 - Ported Mathomatic to latest OpenIndiana SunOS operating system.
Some changes were required and implemented for easier compilation.
All tests passed!
9/24/11 - Improved set command error reporting.
Mathomatic version 15.6.5 released Sunday 09/25/11.
CHANGES MADE TO MATHOMATIC 15.6.3 TO BRING IT UP TO THE NEXT VERSION:
8/05/11 - Approximating complex number roots only when helpful or approximating,
improving some results when imaginary numbers are used; for example,
simplifying sqrt(sin(x)) now returns the best possible result.
8/06/11 - Added "make strip" target to allow easily running the Unix strip
utility on the resulting binaries.
Deleted the "make install-strip" and "make bininstall-strip" targets.
Additionally display C compiler version number in version command.
8/09/11 - Added ability to make a shared library of the Symbolic Math Library,
using the cmake utility. "CMakeLists.txt" was the only file changed.
The shared library is thoroughly UNtested. :-)
8/13/11 - A colon character (:) placed before any main prompt input will make
it ignore any error occuring in that particular line, so any current
read operation won't abort. Any Mathomatic command preceded with a
colon will always return with successful status.
File "misc/identities.in" was added, showing a strength and weakness
of Mathomatic.
Removed "doc" target in makefile, due to interference from a
directory of the same name; use the "html" target instead.
Added cheat card "doc/quickrefcard.html", created by "make htmlcard"
and scripts "makehtmlcard.sh" and "makehtmlcard.awk". The PDF of
this currently has to be made manually with a web browser, using
print to PDF file.
Added ability to automatically create cheat sheet "quickref.pdf",
created by "make pdfsheet", which invokes script "makepdfsheet.sh".
8/19/11 - General complex number root approximation bug fix: expressions like
sqrt(sin(9)) now give the correct result, instead of a negative
number, when using the calculate command. The calculate command is
used to immediately evaluate it when you type "sqrt(sin(9))" into
the m4 Mathomatic main prompt.
8/20/11 - The variables command now defines all "integer" and "sign" variables
as "int" instead of "double".
8/21/11 - Rewrote the code command code lister to allow output to a C string.
Code command is now completely available with string output in the
Symbolic Math Library, meaning Mathomatic can automatically
generate programming language code within other programs now.
Mathomatic version 15.6.4 released Wednesday 08/24/11.
CHANGES MADE TO MATHOMATIC 15.6.2 TO BRING IT UP TO THE NEXT VERSION:
Source code and user documentation cleanup and corrections.
Creating a PDF book from the Mathomatic man pages with "make bookman" is more
likely to work now. Package txt2man must be installed to run "make bookman".
6/24/11 - Added file misc/known_bugs.txt, which is the current list of known
bugs in Mathomatic.
7/04/11 - Added file tests/quadratic.in, just a script that solves the general
quadratic equation.
7/06/11 - Fixed error messaging to not always give command usage information
when a command fails or gives a negative result.
Now only gives command usage info when helpful,
like when something on the command line is incorrect.
7/07/11 - Fixed the Mathomatic derivative command to not fail with a helpful
error message when the derivative is zero.
Now it just gives a warning message along with the successful
result of the constant zero.
7/23/11 - Mathomatic no longer compiles correctly with the latest Xcode gcc,
due to a bug in Apple's gcc optimizer. Either turn the optimizer
completely off when compiling with Xcode, or use the gcc provided
by MacPorts. Xcode version 3.x and other non-Apple C compilers will
work fine. All mention of Xcode has been removed from the
Mathomatic distribution.
7/28/11 - Balanced parentheses and brackets are now allowed in variable names,
if the "set special_variable_characters" command is run first.
For example, "set special ()" will allow entry of named functions,
converting them to variables, which might be useful in some cases.
However, entry of variables like "f(x)" will not be differentiatable,
because there is no "x" variable in that, only the "f(x)" variable.
There can be no spaces encountered in the function; variable names
end at any non-variable character, including space characters. I
can change this, if anyone requests it.
Entry of array elements is still possible with "set special []".
This is the default.
7/29/11 - Prompts are now blue when reading files into Mathomatic in color mode.
7/30/11 - Allow an equation number range on the solve command line, for faster,
more automated solving. If you want to solve all entered equations
for x, just type "solve all x" or "solve verify all for x" to be sure.
7/31/11 - Allow "repeat read filename" command, which repeatedly reads a script
until it fails or is aborted.
8/04/11 - "make install" now shows if installed executables are new or have
changed since the last install.
Mathomatic version 15.6.3 released Thursday 08/04/11.
CHANGES MADE TO MATHOMATIC 15.6.1 TO BRING IT UP TO THE NEXT VERSION:
6/06/11 - Corrected datadir variable usage in the main Mathomatic makefile.
Directly importing datadir could have catastrophically deleted the
entire /usr/share directory with "make uninstall".
6/12/11 - Added proper compilation option (WIN32_CONSOLE_COLORS) for color mode
in MinGW, in case use with mintty.exe is desired.
Mathomatic version 15.6.2 released Sunday 06/12/11.
CHANGES MADE TO MATHOMATIC 15.6.0 TO BRING IT UP TO THE NEXT VERSION:
The Mathomatic user documentation and help have been shaped up.
A BOLD_COLOR compile-time flag was added, to make Mathomatic default to
using bold color mode. Used on the Mac and Windows versions of
Mathomatic now.
5/8/11 - The "factor number" command now allows number ranges, in addition
to integers and integer expressions.
5/9/11 - Install "m4/functions.m4" to proper directory (/usr/share/mathomatic/m4).
The "m4" directory is no longer installed to the system doc directory.
A big thanks to Terje Røsten of Fedora for showing me the way on this,
and for his timely Mathomatic package maintenance in Fedora Linux.
5/11/11 - The matho-primes utility can now be run from within Mathomatic by typing
"list primes". Put any arguments you want to pass to matho-primes on the
"list primes" command line. Redirection doesn't work yet for this, so it
remains undocumented.
5/15/11 - Added NOGAMMA compile-time define, which makes the factorial function
integer only, if desired.
Added color mode to the MinGW Windows version of Mathomatic, thanks to
Doug Snead for the code. Tested in cmd.exe, command.com, and CygWin.
The new color mode does not work in mintty.exe.
5/16/11 - Allow defining SILENT=0 when compiling the symbolic math library,
so that "set debug level" works and normal Mathomatic debugging works
within the library code. Thanks to Doug Snead for suggesting this.
5/21/11 - Changed "make check" to not use the time command, as /usr/bin/time is not
available on all systems. "make test" performs the same function and
still uses time.
5/23/11 - Updated the Free Software Foundation's address in the LGPL license text
and in all source files.
Mathomatic version 15.6.1 released Sunday 06/05/11.
* Stop to treat NetBSD's sed as GNU sed, not full compatible.
* Then, no need to reset TOOLS_PLATFORM.gsed for NetBSD if USE_TOOLS+=gsed and
real GNU sed is required.
* In addition, convert simple USE_TOOLS+=gsed to conditionally, without NetBSD.
* convert {BUILD_,}DEPENDS+=gsed to USE_TOOLS, all tools from gsed are real gsed.
(Leaf package, so ok during freeze.)
Upstream changelog:
2009.08.14: Changes between NTL 5.5.1 and 5.5.2
New routines MulAddTo and MulSubFrom for computing x += a*b and x
-= a*b, where x and a are ZZ's and b is a ZZ or a long. In the case
where b is a long, this may be much faster than writing mul(t, a, b);
add(x, x, t). See ZZ.txt for details. These new routines are used in a
number of places in NTL to get faster algorithms (for example, the LLL
routine).
Fixed a relatively benign indexing bug in GF2EX discovered by
Berend-Benjamin Tams using the valgrind tool.
2009.05.05: Changes between NTL 5.5 and 5.5.1
If using GMP (via either NTL_GMP_LIP or NTL_GMP_HACK), then the
new version (4.3.0) of GMP implements the XGCD functionality
differently, so that the coefficients do not always agree with those
returned by the classical extended Euclidean algorithm. This version
of NTL corrects the coefficients, so that the "classical" coefficients
are always produced, regardless of GMP's implementation. This version
of NTL also works around a bug in GMP 4.3.0's XGCD code (although that
bug should be fixed in GMP 4.3.1).
The configure script has been slightly modified: there is a new
configuration variable DEF_PREFIX, whose value can be used to set
PREFIX, GMP_PREFIX, and GF2X_PREFIX in one stroke. Also, the (somewhat
esoteric) configure variables GMP_LIBDIR, GMP_INCDIR, GF2X_LIBDIR, and
GF2X_INCDIR have slightly different meanings now.
2009.04.08: Changes between NTL 5.4.2 and 5.5
Added the ability to generate a shared library (with help from Tim
Abbott). Details.
Fixed some standardization issues (with help from Tim Abbot):
default location of installed documentation files now conforms to
standards; use of EOF now conforms to standards.
Added a callback mechanism to NTL's error reporting function. See
ErrorCallback in tools.txt.
Added support for the gf2x library for speeding up arithmetic in
GF2X (with help from Emmanuel Thom?). Details.
In conjuction with the above, I also changed the GF2X so that it
works better with very large polynomials: large blocks of memory are
released, recursive HalfGCD algorithms are used for large polynomials.
Fixed a bug in void TraceMod(zz_p& x, const zz_pX& a, const
zz_pXModulus& F) (reported by Luca De Feo).
Fixed a performance issue in various versions of SetCoeff
(reported by Luca De Feo).
Fixed the declaration of mat_zz_p transpose(const mat_zz_p& a)
(reported by Benoit Lacelle).
2008.03.05: Changes between NTL 5.4.1 and 5.4.2
Fixed a bug in the sub(ZZ_pEX, ZZ_pE, ZZ_pEX) and sub(zz_pEX,
zz_pE, zz_pEX) routines (reported by Charanjit Jutla). Under certain
circumstances, these could outout wrong answers.
2007.05.09: Changes between NTL 5.4 and 5.4.1
Fixed rounding bug in expm1 (reported by Paul Zimmermann).
Fixed memory leak in several LLL routines (reported by Friedrich Bahr).
Fixed infinite loop in several LLL routines (this only occurred on
machines, like x86, with double rounding).
Improved GF2X timing tests (suggested by Paul Zimmermann).
2005.03.24: Changes between NTL 5.3.2 and 5.4
By default, NTL now compiles in ISO mode (using namespaces,
etc.). You can always revert to traditional mode by unsetting the flag
NTL_STD_CXX (either pass NTL_STD_CXX=off to the configure script, or
manually edit the config.h file).
Some bug fixes:
The sqrt and log1p routines for the RR class would produce
incorrectly rounded results in certain circumstances (although this
only affected the relative error of the result very marginally).
The SqrRootPrec routine for the RR class could not be called,
because it was defined incorrectly.
Thanks to Paul Zimmermann for finding (and fixing) these bugs!
Paul has also validated NTL's RR class by cross-checking it with the
MPFR library.
Some performance enhancements:
Added a new MulModPrecon inline function for computing (a * b)
% n for single precision numbers, when b and n are fixed for several
computations. On some platforms this can be twice as fast or more than
the old MulMod2 routine. This indirectly affects a lot of computations
that are done via homomorphic imaging (polynomial multiplication over
zz_p, ZZ_p, and ZZ, matrix computations over zz_p and ZZ).
Rewrote the small prime FFT to take advantage of the new
MulModPrecon, and to be more cache friendly.
Improved the performance of the GF2X multiplication
routine. On some platforms, it can be twice as fast as the old
one. Thanks (again) to Paul Zimmermann for suggesting some of these
improvements and supplying some of the code.
Miscellany:
Rewrote several of the installation scripts in Perl (the old
shell scripts were getting too messy to maintain). However, the syntax
for all of the command-line interfaces remains identical.
2004.05.21: Changes between NTL 5.3.1 and 5.3.2
Some bug fixes.
Re-wrote SqrRootMod to make it run faster.
This makes the package build and work at least in NetBSD on some platforms.
Summary of important user-visible changes for version 3.4.3:
-----------------------------------------------------------
** Octave 3.4.3 is a bug fixing release.
Summary of important user-visible changes for version 3.4.2:
-----------------------------------------------------------
** Octave 3.2.4 fixes some minor installation problems that affected
version 3.4.1.
Summary of important user-visible changes for version 3.4.1:
-----------------------------------------------------------
** Octave 3.4.1 is primarily a bug fixing release.
** IMPORTANT note about binary incompatibility in this release:
Binary compatibility for all 3.4.x releases was originally planned,
but this is impossible for the 3.4.1 release due to a bug in the way
shared libraries were built in Octave 3.4.0. Because of this bug,
.oct files built for Octave 3.4.0 must be recompiled before they
will work with Octave 3.4.1.
Given that there would be binary incompatibilities with shared
libraries going from Octave 3.4.0 to 3.4.1, the following
incompatible changes were also made in this release:
* The Perl Compatible Regular Expression (PCRE) library is now
required to build Octave.
* Octave's libraries and .oct files are now installed in
subdirectories of $libdir instead of $libexecdir.
Any future Octave 3.4.x release versions should remain binary
compatible with Octave 3.4.1 as proper library versioning is now
being used as recommended by the libtool manual.
** The following functions have been deprecated in Octave 3.4.1 and will
be removed from Octave 3.8 (or whatever version is the second major
release after 3.4):
cquad is_duplicate_entry perror strerror
** The following functions are new in 3.4.1:
colstyle gmres iscolumn isrow mgorth nproc rectangle
** The get_forge_pkg function is now private.
** The rectangle_lw, rectangle_sw, triangle_lw, and triangle_sw
functions are now private.
** The logistic_regression_derivatives and logistic_regression_likelihood
functions are now private.
** ChangeLog files in the Octave sources are no longer maintained
by hand. Instead, there is a single ChangeLog file generated from
the Mercurial version control commit messages. Older ChangeLog
information can be found in the etc/OLD-ChangeLogs directory in the
source distribution.
Summary of important user-visible changes for version 3.4:
---------------------------------------------------------
** BLAS and LAPACK libraries are now required to build Octave. The
subset of the reference BLAS and LAPACK libraries has been removed
from the Octave sources.
** The `lookup' function was extended to be more useful for
general-purpose binary searching. Using this improvement, the
ismember function was rewritten for significantly better
performance.
** Real, integer and logical matrices, when used in indexing, will now
cache the internal index_vector value (zero-based indices) when
successfully used as indices, eliminating the conversion penalty for
subsequent indexing by the same matrix. In particular, this means it
is no longer needed to avoid repeated indexing by logical arrays
using find for performance reasons.
** Logical matrices are now treated more efficiently when used as
indices. Octave will keep the index as a logical mask unless the
ratio of true elements is small enough, using a specialized
code. Previously, all logical matrices were always first converted
to index vectors. This results in savings in both memory and
computing time.
** The `sub2ind' and `ind2sub' functions were reimplemented as compiled
functions for better performance. These functions are now faster,
can deliver more economized results for ranges, and can reuse the
index cache mechanism described in previous paragraph.
** The built-in function equivalents to associative operators (`plus',
`times', `mtimes', `and', and `or') have been extended to accept
multiple arguments. This is especially useful for summing
(multiplying, etc.) lists of objects (of possibly distinct types):
matrix_sum = plus (matrix_list{:});
** An FTP object type based on libcurl has been implemented. These
objects allow ftp connections, downloads and uploads to be
managed. For example,
fp = ftp ("ftp.octave.org);
cd (fp, "gnu/octave");
mget (fp, "octave-3.2.3.tar.bz2");
close (fp);
** The default behavior of `assert (observed, expected)' has been
relaxed to employ less strict checking that does not require the
internals of the values to match. This avoids previously valid
tests from breaking due to new internal classes introduced in future
Octave versions.
For instance, all of these assertions were true in Octave 3.0.x
but false in 3.2.x due to new optimizations and improvements:
assert (2*linspace (1, 5, 5), 2*(1:5))
assert (zeros (0, 0), [])
assert (2*ones (1, 5), (2) (ones (1,5)))
** The behavior of library functions `ismatrix', `issquare', and
`issymmetric' has been changed for better consistency.
* The `ismatrix' function now returns true for all numeric,
logical and character 2-D or N-D matrices. Previously, `ismatrix'
returned false if the first or second dimension was zero.
Hence, `ismatrix ([])' was false,
while `ismatrix (zeros (1,2,0))' was true.
* The `issquare' function now returns a logical scalar, and is
equivalent to the expression
ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x)
The dimension is no longer returned. As a result, `issquare ([])'
now yields true.
* The `issymmetric' function now checks for symmetry instead of
Hermitianness. For the latter, ishermitian was created. Also,
logical scalar is returned rather than the dimension, so
`issymmetric ([])' is now true.
** Function handles are now aware of overloaded functions. If a
function is overloaded, the handle determines at the time of its
reference which function to call. A non-overloaded version does not
need to exist.
** Overloading functions for built-in classes (double, int8, cell,
etc.) is now compatible with Matlab.
** Function handles can now be compared with the == and != operators,
as well as the `isequal' function.
** Performance of concatenation (using []) and the functions `cat',
`horzcat', and `vertcat' has been improved for multidimensional
arrays.
** The operation-assignment operators +=, -=, *= and /= now behave more
efficiently in certain cases. For instance, if M is a matrix and S a
scalar, then the statement
M += S;
will operate on M's data in-place if it is not shared by another
variable, usually increasing both time and memory efficiency.
Only selected common combinations are affected, namely:
matrix += matrix
matrix -= matrix
matrix .*= matrix
matrix ./= matrix
matrix += scalar
matrix -= scalar
matrix *= scalar
matrix /= scalar
logical matrix |= logical matrix
logical matrix &= logical matrix
where matrix and scalar belong to the same class. The left-hand
side must be a simple variable reference.
Moreover, when unary operators occur in expressions, Octave will
also try to do the operation in-place if it's argument is a
temporary expresssion.
** The effect of comparison operators (<, >, <=, and >=) applied to
complex numbers has changed to be consistent with the strict
ordering defined by the `max', `min', and `sort' functions. More
specifically, complex numbers are compared by lexicographical
comparison of the pairs `[abs(z), arg(z)]'. Previously, only real
parts were compared; this can be trivially achieved by wrapping the
operands in real().
** The automatic simplification of complex computation results has
changed. Octave will now simplify any complex number with a zero
imaginary part or any complex matrix with all elements having zero
imaginary part to a real value. Previously, this was done only for
positive zeros. Note that the behavior of the complex function is
unchanged and it still produces a complex value even if the
imaginary part is zero.
** As a side effect of code refactoring in liboctave, the binary
logical operations are now more easily amenable to compiler
optimizations and are thus significantly faster.
** Octave now allows user-defined `subsasgn' methods to optimize out
redundant copies. For more information, see the manual.
** More efficient matrix division handling. Octave is now able to
handle the expressions
M' \ V
M.' \ V
V / M
(M is a matrix and V is a vector) more efficiently in certain cases.
In particular, if M is triangular, all three expressions will be
handled by a single call to xTRTRS (from LAPACK), with appropriate
flags. Previously, all three expressions required a physical
transpose of M.
** More efficient handling of certain mixed real-complex matrix
operations. For instance, if RM is a real matrix and CM a complex
matrix,
RM * CM
can now be evaluated either as
complex (RM * real (CM), RM * imag (CM))
or as
complex (RM) * CM,
depending on the dimensions. The first form requires more
temporaries and copying, but halves the FLOP count, which normally
brings better performance if RM has enough rows. Previously, the
second form was always used.
Matrix division is similarly affected.
** More efficient handling of triangular matrix factors returned from
factorizations. The functions for computing QR, LU and Cholesky
factorizations will now automatically return the triangular matrix
factors with proper internal matrix_type set, so that it won't need
to be computed when the matrix is used for division.
** The built-in `sum' function now handles the non-native summation
(i.e., double precision sum of single or integer inputs) more
efficiently, avoiding a temporary conversion of the whole input
array to doubles. Further, `sum' can now accept an extra option
argument, using a compensated summation algorithm rather than a
straightforward sum, which significantly improves precision if lots
of cancellation occurs in the summation.
** The built-in `bsxfun' function now uses optimized code for certain
cases where built-in operator handles are passed in. Namely, the
optimizations concern the operators `plus', `minus', `times',
`ldivide', `rdivide', `power', `and', `or' (for logical arrays),
the relational operators `eq', `ne', `lt', `le', `gt', `ge', and the
functions `min' and `max'. Optimizations only apply when both
operands are of the same built-in class. Mixed real/complex and
single/double operations will first convert both operands to a
common type.
** The `strfind' and `strrep' functions now have compiled
implementations, facilitating significantly more efficient searching
and replacing in strings, especially with longer patterns. The code
of `strcat' has been vectorized and is now much more efficient when
many strings are concatenated. The `strcmpi' and `strncmpi'
functions are now built-in functions, providing better performance.
** Matlab-style ignoring input and output function arguments using
tilde (~) is now supported. Ignored output arguments may be
detected from a function using the built-in function `isargout'.
For more details, consult the manual.
** The list datatype, deprecated since the introduction of cells, has
been removed.
** The accumarray function has been optimized and is now significantly
faster in certain important cases.
** The behavior of isreal and isnumeric functions was changed to be more
Matlab-compatible.
** The integer math & conversion warnings (Octave:int-convert-nan,
Octave:int-convert-non-int-val, Octave:int-convert-overflow,
Octave:int-math-overflow) have been removed.
** rem and mod are now built-in functions. They also handle integer
types efficiently using integer arithmetic.
** Sparse indexing and indexed assignment has been mostly rewritten.
Since Octave uses compressed column storage for sparse matrices,
major attention is devoted to operations manipulating whole columns.
Such operations are now significantly faster, as well as some other
important cases.
Further, it is now possible to pre-allocate a sparse matrix and
subsequently fill it by assignments, provided they meet certain
conditions. For more information, consult the `spalloc' function,
which is no longer a mere dummy. Consequently, nzmax and nnz are no
longer always equal in Octave. Octave may also produce a matrix
with nnz < nzmax as a result of other operations, so you should
consistently use nnz unless you really want to use nzmax (i.e. the
space allocated for nonzero elements).
Sparse concatenation is also affected, and concatenating sparse
matrices, especially larger collections, is now significantly more
efficient. This applies to both the [] operator and the
cat/vertcat/horzcat functions.
** It is now possible to optionally employ the xGESDD LAPACK drivers
for computing the singular value decomposition using svd(), instead
of the default xGESVD, using the configuration pseudo-variable
svd_driver. The xGESDD driver can be up to 6x times faster when
singular vectors are requested, but is reported to be somewhat less
robust on highly ill-conditioned matrices.
** Configuration pseudo-variables, such as page_screen_output or
confirm_recursive_rmdir (or the above mentioned svd_driver), now
accept a "local" option as second argument, requesting the change
to be undone when the current function returns:
function [status, msg] = rm_rf (dir)
confirm_recursive_rmdir (false, "local");
[status, msg] = rmdir (dir, "s");
...
endfunction
Upon return, confirm_recursive_rmdir will be restored to the value
it had on entry to the function, even if there were subsequent
changes to the variable in function rm_rf or any of the functions
it calls.
** pkg now accepts a -forge option for downloading and installing
packages from Octave Forge automatically. For example,
pkg install -forge general
will automatically download the latest release of the general
package and attempt to install it. No automatic resolving of
dependencies is provided. Further,
pkg list -forge
can be used to list all available packages.
** The internal data representation of structs has been completely
rewritten to make certain optimizations feasible. The field data
can now be shared between structs with equal keys but different
dimensions or values, making operations that preserve the fields
faster. Economized storage is now used for scalar structs (just
like most other scalars), making their usage more
memory-efficient. Certain array-like operations on structs
(concatenation, uniform cellfun, num2cell) have gained a
significant speed-up. Additionally, the octave_scalar_map class
now provides a simpler interface to work with scalar structs within
a C++ DLD function.
** Two new formats are available for displaying numbers:
format short eng
format long eng
Both display numbers in engineering notation, i.e., mantissa +
exponent where the exponent is a multiple of 3.
** The following functions are new in Octave 3.4:
accumdim erfcx nfields pqpnonneg uigetdir
bitpack fileread nth_element quadcc uigetfile
bitunpack fminbnd onCleanup randi uiputfile
blkmm fskipl pbaspect repelems uimenu
cbrt ifelse pie3 reset whitebg
curl ishermitian powerset rsf2csf
chop isindex ppder saveas
daspect luupdate ppint strread
divergence merge ppjumps textread
** Using the image function to view images with external programs such
as display, xv, and xloadimage is no longer supported. The
image_viewer function has also been removed.
** The behavior of struct assignments to non-struct values has been
changed. Previously, it was possible to overwrite an arbitrary
value:
a = 1;
a.x = 2;
This is no longer possible unless a is an empty matrix or cell
array.
** The dlmread function has been extended to allow specifying a custom
value for empty fields.
** The dlmread and dlmwrite functions have been modified to accept
file IDs (as returned by fopen) in addition to file names.
** Octave can now optimize away the interpreter overhead of an
anonymous function handle, if the function simply calls another
function or handle with some of its parameters bound to certain
values. Example:
f = @(x) sum (x, 1);
When f is called, the call is forwarded to @sum with the constant 1
appended, and the anonymous function call does not occur on the
call stack.
** Deprecated functions.
The following functions were deprecated in Octave 3.0 and have been
removed from Octave 3.4.
beta_cdf geometric_pdf pascal_pdf
beta_inv geometric_rnd pascal_rnd
beta_pdf hypergeometric_cdf poisson_cdf
beta_rnd hypergeometric_inv poisson_inv
binomial_cdf hypergeometric_pdf poisson_pdf
binomial_inv hypergeometric_rnd poisson_rnd
binomial_pdf intersection polyinteg
binomial_rnd is_bool setstr
chisquare_cdf is_complex struct_contains
chisquare_inv is_list struct_elements
chisquare_pdf is_matrix t_cdf
chisquare_rnd is_scalar t_inv
clearplot is_square t_pdf
clg is_stream t_rnd
com2str is_struct uniform_cdf
exponential_cdf is_symmetric uniform_inv
exponential_inv is_vector uniform_pdf
exponential_pdf isstr uniform_rnd
exponential_rnd lognormal_cdf weibcdf
f_cdf lognormal_inv weibinv
f_inv lognormal_pdf weibpdf
f_pdf lognormal_rnd weibrnd
f_rnd meshdom weibull_cdf
gamma_cdf normal_cdf weibull_inv
gamma_inv normal_inv weibull_pdf
gamma_pdf normal_pdf weibull_rnd
gamma_rnd normal_rnd wiener_rnd
geometric_cdf pascal_cdf
geometric_inv pascal_inv
The following functions were deprecated in Octave 3.2 and will
be removed from Octave 3.6 (or whatever version is the second major
release after 3.2):
create_set spcholinv splu
dmult spcumprod spmax
iscommand spcumsum spmin
israwcommand spdet spprod
lchol spdiag spqr
loadimage spfind spsum
mark_as_command sphcat spsumsq
mark_as_rawcommand spinv spvcat
spatan2 spkron str2mat
spchol splchol unmark_command
spchol2inv split unmark_rawcommand
The following functions have been deprecated in Octave 3.4 and will
be removed from Octave 3.8 (or whatever version is the second major
release after 3.4):
autocor cellidx gammai krylovb values
autocov dispatch glpkmex replot
betai fstat is_global saveimage
* For compatibility with Matlab, mu2lin (x) is now equivalent to
mu2lin (x, 0).
* The ARPACK library is now distributed with Octave so it no longer
needs to be available as an external dependency when building
Octave.
Although mcsim.dvi, mcsim.html, and mcsim.texinfo aren't on the PLIST, the
package tries to build them anyway, at least on DragonFly. This modifies
the documentation makefile to prevent this. DragonFly doesn't have dvips
and thus the package was failing to build.
environment. Note: some of the ones I'm adding may not be absolutely
required; I made this list by checking atimes after building R with
all tex stuff available, and confirmed that with (only) these packages
available it does build.
It doesn't help that the R makefile, apparently intentionally, doesn't
stop if running tex fails.
The ld linker from binutils 2.22 has --no-copy-dt-needed-entries enabled by
default, which is exactly opposite of earlier versions of the linker.
Previously ld would recursively search libraries linked in by the object's
primary libraries during symbol resolution. Now linker wants all libraries
explicit requested, otherwise one gets a message such as this:
ld: <object file>: undefined reference to symbol '<symbol>'
ld: note: '<symbol>' is defined in DSO <shared library> so try adding it
to the linker command line.
If this message is encountered, the two options are either to explicitly
add it to the linker command as suggested, or use the
--no-copy-dt-needed-entries switch to return the linker to its previous
behavior. In the case of math/pari, libstdc++ was added to the library
list for the plotfltk.o object. This explicit link is required by DragonFly
which is migrated to binutils 2.22 as its default version.
as executables rather than loadable modules
This might cause that the pkg doesn't build on as many platforms as
it did before, but it has a chance to work now.
bump PKGREV
Recent versions of devel/p5-Object-InsideOut optionally uses this
module.
This module provides pseudorandom number generators (PRNGs) that are
based on the Mersenne Twister algorithm. There is a functional
interface to a standalone PRNG, and an OO interface (based on the
inside-out object model as implemented by the Object::InsideOut
module) for generating multiple PRNG objects.
=== 0.6.5.8 / 30.8.2011
* This patch is about adding a sheet_count method to workbook so that it returns
* the total no of worksheets for easy access. Please check. By
* tamizhgeek@gmail.com
* https://gist.github.com/1180625
3.0202 July 23, 2011
- Moved tag-release.pl to scripts/tag-release.pl (though we now use
Mercurial instead of Subversion.)
- Add t/mode.t to test the ->mode() method.
- Documented ->mode() better.
- Optimized ->mode().
3.0201 October 14, 2010
- Add some documentation clarifying the 0th percentile return, as it
returns undef() for representing -inf:
- Fix https://rt.cpan.org/Ticket/Display.html?id=62055
- Thanks to Dave Breimann for reporting it.
- Add the tag-release.pl to tag a release using Subversion.
0.43 Tue 02 Aug 2011
- Changed name in META.yml (RT#69574)
0.42 Wed 01 Jun 2011
- Add --html output option to xlscat
- Force CSV parser when in-sep is given
- Prefer Data::Peek over Data::Dumper if available
0.41 Wed 06 Oct 2010
- Spell-check
- Fixed requiring optional modules (RT#61928 - Roderick Schupp)
0.59 April 6 2011
+ Patch for decryption of default encrypted workbooks from
Alexey Mazurin.
! Fix for invalid formatting of text cell that are numeric.
http://rt.cpan.org/Public/Bug/Display.html?id=62073
2011-02-26 v1.16 pjacklam (6153 tests)
* Change bigintpm.inc to reflect recent changes in the Math::BigInt
distribution (Peter John Acklam).
2011-02-10 v1.15 pjacklam (6151 tests)
* Include latest version of test scripts from Math-BigInt (closes RT #65580)
(Peter John Acklam).
* Add 00sig.t for testing SIGNATURE, and 01load.t for basic module loading and
giving diagnostics useful for bug tracking (Peter John Acklam).
* Rename pod.t to 02pod.t and pod_cov.t to 03podcov.t and use more generic
code (Peter John Acklam).
* Clean up whitespace (Peter John Acklam).
2011-02-26 v1.36 pjacklam (6362 tests)
* Change bigintpm.inc to reflect recent changes in the Math::BigInt
distribution (Peter John Acklam).
* Use a _nok() function more similar to the one in Math::BigInt::Calc
(Peter John Acklam).
2011-02-08 v1.35 pjacklam (6361 tests)
* Rename files for testing signature, module loading, and POD so the names
are within the 8+3 character limit (Peter John Acklam).
* Rename method _nok_ok() to the correct _nok(). There ought to have been a
test catching an error like that (Peter John Acklam).
* Fix _nok() giving wrong output when second input argument is zero
(Peter John Acklam).
* Fix _nok() so it doesn't modify its second input arg (Peter John Acklam).
* Update the included Devel::CheckLib to most recent version as suggested in
RE #63055 (Peter John Acklam).
* Apply "chmod 0644" to the few test scripts that don't already have that
mode (Peter John Acklam).
2011-02-07 v1.34 pjacklam (6361 tests)
* Rename _num() to _str(). The old _num() did exactly what _str() is supposed
to do, according to the API documentation (Peter John Acklam).
* Add a _num() function which (currently) simply numifies the output from
_str() (Peter John Acklam).
* Clean up whitespace (Peter John Acklam).
* Fix POD errors (Peter John Acklam).
* Add _nok() method. Now the old claim that Math::BigInt::GMP conforms to API
version 2 is actually true (Peter John Acklam).
* Edit the test files that were copied from the Math::BigInt distribution, so
we now test Math::BigInt against Math::BigInt::GMP, not Math::BigInt::Calc.
I had forgotten this when I copied the test files from the Math::BigInt
distribution. This reduces the total test count, since some test are not
executed with Math::BigInt::GMP (Peter John Acklam).
* Replace morse code in 'README' with proper text (Peter John Acklam).
* Include '01-load.t' for explicitly testing module loading (Peter John
Acklam).
* Use more generic code in 'pod.t' and 'pod_cov.t' (Peter John Acklam).
2011-01-30 v1.33 pjacklam (6411 tests)
* Fix _modinv() so that it works the same way as _modinv() in other
Math::BigInt libraries: The output arguments are an object and the
corresponding sign, not undef (Peter John Acklam).
* Include most recent versions of the test files from the Math-BigInt
distribution (bigfltpm.inc, bigfltpm.t, bigintpm.inc, bigintpm.t,
biglog.t, and bigroot.t) (Peter John Acklam).
* Include generic SIGNATURE test file (Peter John Acklam).
* Required version of Math::BigInt is now 1.99_05 (Peter John Acklam).
0.09 Mon Dec 06 2010
- explicit use of of Math::BigInt to avoid confusing Devel::Cover
0.08 Mon Dec 06 2010
- don't short-circuit encoding '0' so it gets proper padding.
* Fix t/matlab.t failing on Windows (RT 64629)
* Applied patch from RT 51669 (POD rendering)
* Applied patch from RT 61334 (fix croak in new_from_string)
* Make reference check less strict in _new_from_row_or_cols (requested by MJD)
Changes 2.06:
* added submatrix() (exactly the same behavior as sec() from PDL, for 2D
matrices)
* t/submatrix.t created
* t/decompose_LR.t created
* !!!NEED documentation for submatrix()
* Compiling OpenMP support (--enable-openmp) now installs a fftw3_omp library,
instead of fftw3_threads, so that OpenMP and POSIX threads (--enable-threads)
libraries can be built and installed at the same time.
* Various minor compilation fixes, corrections of manual typos, and
improvements to the benchmark test program.
* Add support for the AVX extensions to x86 and x86-64. The AVX code works with
16-byte alignment (as opposed to 32-byte alignment), so there is no ABI
change compared to FFTW 3.2.2.
* Added Fortran 2003 interface, which should be usable on most modern Fortran
compilers (e.g. gfortran) and provides type-checked access to the the C FFTW
interface. (The legacy Fortran-77 interface is still included also.)
* Added MPI distributed-memory transforms. Compared to 3.3alpha, the major
changes in the MPI transforms are:
* Fixed some deadlock and crashing bugs.
* Added Fortran 2003 interface.
* Added new-array execute functions for MPI plans.
* Eliminated use of large MPI tags, since Cray MPI requires tags < 224.
* Expanded documentation.
* make check now runs MPI tests
* Some ABI changes — not binary-compatible with 3.3alpha MPI.
* Add support for quad-precision __float128 in gcc 4.6 or later (on x86.
x86-64, and Itanium). The new routines use the fftwq_ prefix.
* Temporarily removed MIPS paired-single support due to lack of available
hardware for testing. We hope to add it back before the final FFTW 3.3
release; meanwhile, users who want this functionality should continue using
FFTW 3.2.x.
* Removed support for the Cell Broadband Engine. Cell users should use FFTW
3.2.x.
* New convenience functions fftw_alloc_real and fftw_alloc_complex to use
fftw_malloc for real and complex arrays without typecasts or sizeof.
Changes:
- Added "jet bundle" framework by Werner Seiler and Joachim Schue,
which includes completion procedure and symmetry analysis for PDE.
- Better splitting of group representations (added Holt-Rees improvement
to meatAxe).
- Added numeric versions of some elliptic integrals and few more elliptic
functions.
- Speeded up FFCGP (finite fields via Zech logarithms).
- New experimental flag (off by default, set via setSimplifyDenomsFlag)
which if on causes removal of irrationalities from denominators.
Usually it causes slowdown, but on some examples gives huge speedup.
It may go away in future (when no longer needed).
- Added experimental framework for theory of computations.
Bug fixes, in particular:
- Numerical solutions of polynomial systems have now required accuracy
(SF 2418832).
- Fixed problem with crashes during tracing.
- Fixed a problem with nested iteration (SF 3016806).
- Eliminated stack overflow when concatenating long lists.
From README:
RPy2 is subject to the Mozilla Public License Version 1.1 (the
"License"); you may not use RPy2 except in compliance with the
License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/ (or see the file MPL_LICENSE)
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and
limitations under the License.
The Original Code is the RPy2 python package, itself subdivived
into subpackages and modules.
All code is Copyright of the respective author(s).
See the file AUTHORS for further details regarding authorship.
Alternatively, RPy2 may be used under the terms of either the GNU
General Public License Version 2 or later (the "GPL", see the file
GPL_LICENSE), or the GNU Lesser General Public License Version 2.1
or later (the "LGPL", see the file LGPL_LICENSE), in which case the
provisions of the GPL or the LGPL are applicable instead of those
above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow
others to use your version of this file under the terms of the MPL,
indicate your decision by deleting the provisions above and replace
them with the notice and other provisions required by the GPL or the
LGPL. If you do not delete the provisions above, a recipient may use
your version of this file under the terms of any one of the MPL, the
GPL or the LGPL.
Changes:
- Experimental Texmacs interface and Texmacs format output.
- Guessing package can now guess algebraic dependencies.
- Expansion into Taylor series and limits now work for most
special functions.
- Spad to Aldor translator is removed.
- Spad compiler no longer allows to denote sets using braces.
Bug fixes, in particular:
- Fixed few cases where elementary integrals were returned
unevaluated or produced wrong results.
- Unwanted numerical evaluation should be no longer a problem
(FriCAS interpreter now very strongly prefers symbolic
evaluation over numerical evaluation).
- Fixed a truncation bug in guessing package which causes loss
of some correct solutions.
- TeX and MathML format should correctly put parentheses around
and inside sums and products.
- Fixes few problems with handling of Unicode.
This release fixes a bug on x86 when the scale factor of
scale_float(cl_LF, cl_I) exceeded 2^31. In addition, it improves
portability to non-GCC compilers.
Approved by wiz@.
Version 0.73-0
* Identify the contents of file uploads with a class "FileUploadContent"
* Don't collapse duplicate parameter values that correspond to file uploads
in MultiPartFormData objects.
* $ operator for MultiPartFormData extended to handle the case of multiple
elements for the same parameter, specifically file uploads.
* Added parameters to some functions to allow caller to specify content
of the submitted form that is usually provide via environment variables or standard
in. This facilitates debugging.
Version 0.72-2
* Deal with repeated parameters.
* pkgsrc change: fix conflicts of some functions name with newer gsl.
Sat Feb 26 08:18:45 PST 2011
* Ruby/GSL 1.14.7
* Fix conversion of non-DFLOAT NArray to GSL::Vector and
GSL::Vector::Complex.
Thu Feb 24 10:27:08 PST 2011
* Ruby/GSL 1.14.6
* Add Vector::Complex support to NArray conversions
* Raise exception when trying to create View from NArray object of
incompatible type.
Maxima 5.24 change log
New items in core:
* function defstruct: documentation
New items in share:
* package lapack: function dgemm (matrix multiplication)
* package fractals: documentation
* package finance: documentation
Other changes:
* elliptic functions: bug fixes
* integration: apply trigonometric identities for some special cases
* improve TeX output for conditional expressions
* more work on German translation of reference manual
* regularize error messages and prepare for translation
* remove unused functions and variables
* XMaxima user interface: bug fixes and improvements
* package draw: bug fixes, pngcairo output
* package noninteractive: bug fixes
* package clebsch_gordan: new version
* package graphs: updates
* package ezunits: updates
Bug fixes:
3211937 wrong sign for integral of e^(-1/x^2)
3199708 integrate(sin(2x)atan(sin(x)),x)
3198530 Apparently wrong limit with factorial
3181353 Documentation of "at" misleading
3165872 integrate(abs(sin(x)),x,0,2*%pi) wrong result
3158526 integrate(x^2*exp(x)/(1+exp(x))^2,x , minf, inf);
3154534 need local declaration in antid.mac
3154351 abs_integrate --> errors from apply
3153533 incorrect integration
3153506 typo in antid / FIX
3153170 abs_integrate + composisiton of unit step
3153169 abs_integrate of unit step
3138054 bfloat problem / FIX
3133916 scanmap(minfactorial,a!) infinite loop
3131324 simplification of sqrt
3067098 The command timer for a Lisp function
2808179 maxima.el inferior-maxima-complete on Emacs 23
1285104 trigsimp and trigreduce & square roots
917283 Comment syntax confused
unnumbered: lisp (gcl?) being unable to read 1.79769d308
unnumbered: draw2d(explicit(321.4567,x,0,1)) causing hang
unnumbered: plotting functions by name
unnumbered: asinh and atanh are increasing odd functions
unnumbered: bad interaction of rassociative and tellsimp
Maxima 5.23 change log
Backwards-incompatible changes:
* package draw: changed names of some options:
file_bgcolor --> background_color
pic_width, pic_height, eps_width, eps_height, pdf_width, pdf_height --> dimensions
rot_horizontal, rot_vertical --> view
New items in core:
* function bf_find_root: bigfloat version of find_root
* function find_root: recognize keyword arguments
New items in share:
* package cobyla: import Fortran COBYLA (constrained optimization)
* package draw: new graphic objects 'errors' and 'region'
Other revisions:
* further work on exponential integrals
* further work on abs and signum identities
* further work on special cases in integration
* translation of reference manual to German (ongoing)
* clean-up in code related to processing files
* general code clean-up
* package ezunits: additional built-in conversions
Bug fixes:
3114834 maxima-help does not find help topics
3111568 subsequent calls to gradef hide variable dependencies
3102421 noninteractive-mode and kill(all)
3101075 limit bug
3093408 Bug in simplify_sum
3085498 integration error (partial solution)
3081820 lbfgs causes error
3080397 laplace(unit_step(-t),t,s) generates an error
3079975 rectform(atan2(y,0)) -> division by zero
3073827 integrate(t*cos(a*t^2 + b*t + c), t, 0, 1) => division by 0
3072490 contrib diag.mac variable scope
3071208 rtest15--limit to inf from above
3067311 eivects doesn't load eigen automatically
3064709 domain error for tan
3062883 diff does not recognize indirect dependencies in expressions
3060669 filename_merge with more than two arguments
3060166 und documentation is incorrect
3058324 $save must bind *print-circle* to NIL
3058290 tan(%pi*integer) simplification
3055427 conjugate solver
3045559 integrate(exp(-u^2), u, minf, x) => incorrect gamma_incomple
3041267 jacobi_cs(x,1) returns a wrong expression
3041196 carg(exp(x+%i*y)) -> y not correct
3040667 logarc(acosh(z)) needlessly complicated
3039452 integrate(sqrt(t^c)/(t*(b*t^c+a)),t) hangs
3038883 In general exp(z)^a --> exp(z*a) not correct
3034415 integrate(1/abs(x),x) using abs_integrate
3024924 list_matrix_entries
3020589 xlabel and ylabel don't change plot3d axis labels
3020243 defint(exp(cos(x))*cos(sin(x)),x,0,2*%pi) wrong result 0
2997443 ic2 fails
2970792 gradef(s) together with vect package
2881021 ic2 and bc2 may return incorrect results (solution suggeste)
2796194 error doing a Fourier transform.
2727846 tan(%pi/2) is not correct (or just not nice?)
2555641 no doc for subnumsimp
2541376 antidiff bug
2171237 load(basic) warnings
2123651 min and max of imaginary and real numbers
1993208 cartesian_product incorrect on empyt argument list
1990099 wrong integer_partitions(0)
1892341 taylor message about something assumed to be 0 in integral
1890128 no user doc for cauchy_matrix
1839088 ic2 fails with division by 0
1789213 ic1 for solution containing indefinite integral
1439559 function burn is broken
1213621 reveal with matrix argument
1149719 ratvarswitch not documented
1045920 a>1 and b>1, is a+b>2?
875089 defint(f(x)=g(x),x,0,1) -> false = false
767338 Evaluation of array names
703789 save() doesn't return a pathname
(unnumbered) integrate(cos(2*x)*cos(x),x) is wrong.
Patch 3 fixes the following bug:
The mpfr_atan function calls mpfr_check_range on the unrounded
result (no longer allocated) instead of the rounded result.
Consequence of this bug: possible incorrect or invalid result and/or
incorrect flags if the unrounded result or rounded result is not in
the current exponent range. Or possibly worse if the memory used by
the unrounded result is modified before the return of the function.
This bug has been present since MPFR 2.1.0 (exceptions were not
supported before).
Patch 2 fixes the following bug:
The mpfr_rec_sqrt function can have undefined behavior due to the
call of mpn_add_1 or mpn_sub_1 (from GMP) with a null size, which is
not allowed. The fourth argument of mpn_add_1 or mpn_sub_1 (i.e. the
value that should have been added or subtracted) is here also 0, so
that the consequences are limited. In practice, with the current GMP
version, this yields a small buffer overflow (1 limb, i.e. 32 bits
or 64 bits), as shown by valgrind, with the possible consequences:
a crash, or memory corruption (very unlikely) if another process or
thread modifies the limb at the same time (as in this context, the
value is first read then written back by GMP). This bug has always
been present since the introduction of the mpfr_rec_sqrt function
in MPFR 2.4.0.
Patch 1 fixes the following bug:
If the exponent range has been reduced such that emax = 1 or 2,
mpfr_asin may give an incorrect result on +1 and -1.
which should probably never occur in practical codes.
New in gsl-1.15:
** Added Tuomo Keskitalo's new ode branch ode-initval2 with a
gsl_odeiv2 prefix. This provides proper support for implicit
solvers. It is intended to be the new default for differential
equations. The existing gsl_odeiv routines will be retained for
binary compatibility but their interface will be deprecated.
** Added new gsl_integrate_cquad routines for robust integration of
difficult functions using the doubly-adaptive CQUAD algorithm
(Pedro Gonnet).
** Added error checking to CBLAS functions (Jose Luis Garcia Pallero)
** Added a new function gsl_integration_glfixed_point to return
ordered Gauss-Legendre points and weights contained within a
gsl_integration_glfixed_table [bug #32237].
** Added a new function gsl_interp_type_min_size to return the size of
an interpolation type.
** Added a function gsl_pow_uint(x,n) to compute x^n for unsigned
exponents (needed when n exceeds the range of signed integers).
** Added new routine gsl_linalg_complex_cholesky_invert to handle the
matrix inversion for complex Cholesky decompositions (Huan Wu).
** Added the functions gsl_vector_equal(x,y) and gsl_matrix_equal(x,y)
for testing equality of two vectors or matrices.
** Added function gsl_eigen_nonsymmv_params to control the balancing
transformation for eigenvector calculations. Balancing is now
turned off by default for gsl_eigen_nonsymmv.
** It is now possible to choose an alternative cblas library via
pkg-config using the GSL_CBLAS_LIB environment variable or
the pkg-config --define-variable option.
** The jacobi method gsl_eigen_jacobi now uses the norm of the
off-diagonal elements for its convergence criterion, as in
algorithm 8.4.3 of Golub and van Loan.
** The newton multiroot solvers now return an error when a singular
jacobian is detected.
** The interpolation functions now return NaN and when x is out of range,
instead of extrapolating.
** The gsl_multimin_fdfsolver multidimensional minimisers now return
GSL_ENOPROG immediately if the generated trial point does not
differ from the initial point (to machine precision), avoiding
unnecessary further iterations.
** Extended the range of gsl_sf_bessel_lnKnu_e by rescaling
intermediate results to avoid internal overflows [bug #31528].
** Improved the result of gsl_sf_atanint_e for large arguments by
adding the first order 1/x correction term. [bug #29562]
** Fixed the gsl_rng_ranlxs generators to enforce a maximum seed value
of 2^31-1. Larger seed values caused out of range values to be
returned.
** Fixed gsl_ran_chisq_pdf(x,nu) to return correct result of 1/2
instead of 0 when x=0 and nu=2, and +inf when x=0 and nu<2.
** Fixed gsl_pow_int(x,n) to avoid an infinite loop when n=INT_MIN due
to wrapping of signed integers.
** Fixed gsl_sf_hyperg_2F1(a,b,c,x) to avoid returning NaN for
arguments |a|>10. [bug #24812]
** Avoid spurious underflow return code in gsl_sf_beta_inc_e when
intermediate underflow does not affect the result. [bug #30933]
** Avoid segfault in Chebyshev series derivatives gsl_cheb_calc_deriv
for n=1. [bug #29139]
Changes in Mathomatic version 15.6.0:
------------------------------------
Many tweaks and corrections to simplification and polynomial operations were made.
Created m4 Mathomatic input file "tests/trig". Lists all trig and
hypertrig functions, allowing testing of their simplification
and manipulation.
Sped up polynomial operations to be another 30 times faster
in some cases. Finished and cleaned up the polynomial factoring
and division C code. Thanks again to Kingsley G. Morse Jr. for
showing me this needed to be done.
The "simplify quick" command was changed to not combine unlike
denominators, making it much more useful, doing better
simplification than any other simplify option sometimes.
The tally command now returns the ending total and sets it as the
current equation.
Fixed an old bug just discovered today where expressions like
(x - y)*(x^99 - y^99) were being factored into something huge
with the simplify and fraction commands, which are the only
commands that do polynomial factoring.
Improved coloring scheme: all prompt and normal text is now the
terminal emulator's default color for text (usually uncolored).
Expressions remain colored if color mode is enabled. Thanks to
Carl U. Grayser for the good idea.
Improved the fraction command by factoring polynomials first.
Specifying the "numerator" and "denominator" options together
will make the fraction command return with failure if the result
is not a fraction, otherwise the entire fraction is returned.
Changes in Mathomatic version 15.5.3:
------------------------------------
Simplify expressions with positive bases like 16^(x/2) and (2^m)^n by default;
previously only simplified these with the "simplify symbolic" command.
The exit status of Mathomatic now shows any errors when run with the
-e option. So if a command fails, it exits to the OS with the exit
status 1. Exit status is 0 if everything went OK. Also works without
the -e option, when files are specified on the shell command line.
An error will abort the script, returning you to the operating system
with an exit status of 1.
Changed makefile to allow installing m4 Mathomatic without installing
the documentation. Use "sudo make bininstall matho-rmath-install" to
install m4 Mathomatic executables and man pages.
Then "sudo make docinstall" installs all documentation.
The rmath man page math function and constant lists have been corrected
and the rmath man page has been added to the main user documentation.
Output of universal constants is now prettier when displaying. No
more i#, e#, and pi#, they are displayed as they are entered: i, e,
and pi. HTML mode displays the small Greek letter pi for pi.
The nintegrate command now works with complex numbers and trigonometry,
and does not change the current equation to the result.
Link the man page rmath.1 to matho.1 when installing, so that every
executable has a man page.
Added "numerator" and "denominator" options to the fraction command,
which returns only the numerator or denominator after making sure the
expression is a simple algebraic fraction.
Autocalc now deletes only the previous autocalc when autocalc is used.
It was deleting all autocalc results except for the current one every
time, preventing copying.
Improved simplification of expressions like (x + (2^(1/2)))^{3,4,5,6}.
It broke a while back when factor_times() constant factoring was
improved. The fix uses factor_times() less, preserving reduced surds.
Saving "plot_prefix" with the "set save" command was not escaping
semicolons, so they were disappearing from the prefix. Fixed now.
Changes in Mathomatic version 15.5.2:
------------------------------------
Renamed the "factorial" directory to "examples".
Fixed entering negative odd roots like (-32)^(1/3) to not approximate,
instead simplifying to -2*4^(1/3). So all surds are preserved, now.
Added man pages for the Mathomatic Symbolic Math Library functions.
Allow building a PDF book of all Mathomatic man pages.
Simplify command simplification sped up even more, by putting algebraic
fraction reduction in the right place and not overusing it.
Responsiveness has greatly improved for large expressions. Thanks go
to Kingsley G. Morse Jr. for help with this and for filing a bug report.
The simplify command functionality was improved. It was fixed to
not mess up with unwanted fractional coefficients.
Changes in Mathomatic version 15.5.1:
------------------------------------
Many minor cleanups and corrections were made.
Renamed Mathomatic User's Manual to Official Mathomatic User Guide.
Calculate command now outputs fewer newlines. Not so much blank space.
Allow equation-number-ranges on the plot command line. For example,
"plot all" works now, to plot all stored equations and expressions
at once, for easy comparison.
Changes in Mathomatic version 15.5.0:
------------------------------------
Fixed result of (constant % inf) to equal constant.
Restored explicitly linking with ncurses library when compiled
with readline, because Red Hat Linux wrongly requires this.
There is no way to know ahead of time whether this is needed, so
remove the "-lncurses" from the makefile if there is a problem
linking.
Upgraded set option "fractions_display_mode" to display fractions
as mixed fractions when possible, when set to mode 2. A mixed
fraction is possible when the numerator of a simple fraction is
greater than the denominator, like 9/4, which displays as (2+(1/4))
in mixed fraction display mode 2. Mode 1 is the default, which
functions as before, displaying 2.25 as the simple fraction 9/4.
To display mixed fractions only on command, just type "display mixed"
to display the current expression with mixed fractions output
that one time.
Autocalc (used when typing a numerical only expression at the main
prompt) now keeps the result until next time autocalc is used,
so that it can be acted on further by Mathomatic commands, if desired.
All previous autocalc results are erased every time autocalc is used.
This provides much better calculator functionality for Mathomatic
and improves ease-of-use.
Use HTML infinity symbol (∞) for infinities in HTML output mode.
Allow solid fraction bar display in HTML output mode by using "–".
Previously the ASCII dash character "-" was used, making a dashed line
that separated the numerator and denominator of fractions. Now the line
should be solid in HTML output mode.
Improved divide command for numerical division. Added mixed fractions
and cleaned up output.
Ported matho-primes to MS-Windows and included it in the Windows
version on my website: "http://mathomatic.org/winam2.zip".
The fraction command is now repeatable by preceding it with "repeat".
This repeatedly runs it until the smallest expression is achieved.
Simplification was sped up, especially with "simplify quick", therefore
differentiating and the Taylor command are faster.
Removed the requirement for the Unix "time" command with m4 Mathomatic.
Allow array variable refs like a[2] or a[1][2] when generating C code.
Just "set special []" to allow straight brackets in variable names.
Another ease-of-use enhancement was implemented, making it possible to
use "#equation-number" anywhere in any expression, it will insert the
expression at that equation number. This is an improvement that should
have been done long ago. However, don't expect it to work with the
plot command, "plot #1" does not work because the argument to plot is a
string and/or the current equation. For example, typing things like
"y=#1^2" is a convenient way to raise the expression in equation space
number 1 to the power of 2 and set it equal to y, or whatever you wish.
Changes in Mathomatic version 15.4.4:
------------------------------------
Many minor but obnoxious bugs were fixed.
Fixed result of constant modulo 0 (e.g. 9 % 0) and infinity modulo
constant (e.g. inf % 9) to be NaN.
Disabled shelling out and the edit command only in m4 Mathomatic.
The terminal hung when shelling out or editing with an m4 front-end.
Plotting still works and pagination is working now for m4 Mathomatic.
Cleaned up tests/quartic.in, it now works without m4 Mathomatic, and is
a single formula to solve most fourth degree polynomial equations.
Created a nice man page for rmath and matho (rmath.1).
Changes in Mathomatic version 15.4.3:
------------------------------------
Fixed negate priority to be the same as TIMES/DIVIDE like Maxima (yay!).
So now entering -x^2 is meaningful. Previously negate was the highest
priority (high precedence) operator. Entering -2^2 now results in -4
instead of 4, as in most other mathematics programs (except for pure
calculators like bc).
Flush standard output before reading a line of input from the user
when not using readline, so that the MinGW version works with mintty.
Added a new "for" command, for plugging in sequential values into a
variable in the current expression and displaying the results.
The syntax is the same as the sum and product commands.
Changes in Mathomatic version 15.4.1:
------------------------------------
Upgraded the plot command towards always giving gnuplot a proper plot command,
no matter what the user input is. The plot command now automatically renames the
variable in a single variable expression to the x variable, so plotting
will always succeed.
Removed Python script "misc/mp"; Couldn't get mpmath to work properly for
all input.
Improved results of the fraction command.
Now saving readline history in $HOME/mathomatic_history when compiled for CygWin.
Now additionally searching for "mathomatic.rc" in $HOME when compiled for CygWin.
Ported matho-pascal and matho-primes to double floats if USE_DOUBLES is defined,
for systems that don't support long double floats.
Changes in Mathomatic version 15.4.0:
------------------------------------
Added "compare approximate" command option, use of which is more likely to
result in a successful comparison. Runs the approximate command on
both expressions before comparing, if needed.
The variables command syntax was upgraded to be the same as the code command.
Added code to delete identities in the optimize command. When identical
equations were optimized, identities would result. These are now removed.
Fixed incorrect syntax in the menu files in menu directory.
Added "tests/quartic.in". At last, a working set of equations for calculating
the four solutions of any quartic equation, similar to "tests/cubic.in".
Fixed parser routine to give a helpful error message when a cursor or function key
string is encountered. Escape, carriage return, and form-feed are ignored now.
Changes in Mathomatic version 15.3.7:
------------------------------------
Fixed the modulus operator (%) to always evaluate to an integer when
both arguments are integer.
7921%14 was giving 11.000000000001, now gives exactly 11.
Equation number ranges for commands may include unallocated equation
spaces now, allowing entry of any reasonable range.
Changes in Mathomatic version 15.3.6:
------------------------------------
Many minor fixes for consistency and helpfulness were made.
Cleaned up "factor numbers" command for consistency in operation and to
work as documented.
Warn when substituting a non-integer expression into an integer variable.
Added m4/degrees.m4, this can be read into rmath with "rmath degrees.m4"
to use degree units instead of radians for trig functions.
"sudo make m4install-degrees" installs degree mode as the default for
matho and rmath by appending m4/degrees.m4 to m4/functions.m4.
Allow input of #equation-number as the LHS or RHS of any equation. It is
replaced with the expression or RHS at the specified equation-number.
Note that #equation-number is also the current equation selector, so entering
it as the LHS at the main prompt will function differently.
Simplify (integer % 1) and the like to 0. Generalized to instantly simplify
to 0 the following: (integer_expression % +/-unit_fraction).
Changes in Mathomatic version 15.3.4:
------------------------------------
Fixed an error reporting bug in the solve command.
There was the possibility of spewed space characters with improper input.
Added code so that solving for 0^2 or variable^2 will properly square both
sides of an equation. Solving for variable^2 will isolate the square root of
the largest expression containing that variable, and then square both sides of
the equation. Works for any power and variable with any equation with roots.
Changes in Mathomatic version 15.3.3:
------------------------------------
Fixed -e option to be more like entering what follows into the main prompt;
That is, the autosolve option is left on and errors do not abort.
"set finance" option now groups output with thousands' grouping characters
if the locale information indicates any. For example: 2,000,000.00
Changes in Mathomatic version 15.3.2:
------------------------------------
Added "help options" command which lists invocation options (like -h).
Entering "nan" now gives a warning, instead of an error,
so that expressions containing NaN can be read back in without aborting.
Added "-c count" option to matho-primes, optionally limiting the number
of lines of primes that are output to "count" lines.
Fixed an old, important bug in the Mathomatic solve routine, where solve was
failing on some easy to solve equations indeterminately, because of
incorrect infinite loop detection code. Solving should work perfectly now.
This problem was discovered today with the input: "a=a+b" "a" "b".
Changes in Mathomatic version 15.3.1:
------------------------------------
Improved the help command, allowing multiple help topics on the help
command line.
Improved upon "misc/roots.c", the automatic polynomial root finder.
Increased the maximum number of equation spaces from 100 to 200.
They do not consume memory unless they are used.
Solving things like 0=(x+1)^15+x for x exited the solve routine without grace.
This problem is now fixed for all solve requests that aborted with error.
When using the symbolic math library, the display command now outputs
all specified equation spaces in fraction format and returns the last
equation space listed as a result.
Before it was just a crippled list command with a little simplification
that didn't output anything.
Changes in Mathomatic version 15.3.0:
------------------------------------
Changed -u option to also echo line input, so that m4 Mathomatic is easier to use.
X-Windows icon for the Mathomatic entry within desktop menu systems.
The repeat command can now be shortened to 4 characters, like any other command.
Capitalized E, I, and PI are now no longer parsed as universal constants.
Entering E, I, or PI will now result in the general variables E, I, and PI,
unless "set no case" is previously entered.
This change undoes version 15.2.0 Mathematica compatibility, due to kind user feedback.
Entering e, i, or pi still gives the universal constants e#, i#, and pi#.
Removed "set negate_highest_precedence" option.
This was done for compatibility and so that less parentheses are displayed
within expressions. Polynomials should display very nicely now, powers
like "x^2", "y^3", and "x^y" are not parenthesized unless need be.
Added "list hexadecimal" command option, which displays expressions
exactly as stored internally in hexadecimal. No precision is lost,
this is because the floating point values are not converted to decimal.
Error reporting was improved.
Changes in Mathomatic version 15.2.2:
------------------------------------
Added "set plot_prefix" option, which allows custom plot functionality.
Changes in Mathomatic version 15.2.1:
------------------------------------
Added the -e option, which processes mathematical expressions and Mathomatic commands
instead of input files on the shell command line.
Improved results of solving for zero. Results should have reduced integer coefficients,
by factoring out the GCD of rational coefficients.