# LME Release Notes

## LME 7.5

### New features

- new functions:

ode23s | stiff ODE integration |

### Minor changes

- support for
`\operatorname`,`\overset`, and`\underset`in`latex2mathml` - more robust algorithm of
`margin`and`dmargin`

### Bug fix

- possible freeze in
`ode23`and`ode45`with events and tight tolerances - in loops,
`cellfun`with empty cell array produced an`LME:wrongType`error; fixed `nargin(fun)`where`fun`was an anonymous function with captured variables was 1 too high; fixed- in ode functions with events,
`OutputFcn`caused an error; fixed - inline or anonymous functions whose expression was
`[]`caused an error; fixed `margin`and`dmargin`with a large cross-over frequency could return a negative frequency; fixed

## LME 7.0.2

### Minor changes

- library name displayed in error message of
`LME:libNotFound` - in SAX parser in HTML mode, tag and attribute names converted to lowercase, and content of script elements left unparsed

### Bug fix

- Possible memory corruption in
`regexp`under low memory conditions fixed

## LME 7.0.1

### Bug fixes

`saxnext`could hang upon large text element, processing element or comment; fixed`cell2struct`could crash with an empty cell array argument; fixed`cell2struct`with empty cell arrays fixed`isempty`with char/logical/single/int arrays fixed- in command syntax, escaped backslash before closing single-quote (e.g.
`disp '\\'`) wasn't parsed correctly; fixed

## LME 7.0

### New features

- new functions:
- support for parallel execution (OS-level multithreading), with the following functions:
- new built-in functions
`cart2pol`,`cart2sph`,`pol2cart`, and`sph2cart`(were in library`stdlib`) - full support for UTF-16 (Unicode code points beyond 16 bits)
- new string escape sequence
`\Uhhhhhhhh`for UTF-32 - Nakagami distribution in
`pdf`,`cdf`and`random` - second output argument for
`ismember` - optional type argument in
`rand`and`randn` - improved default random generator based on KISS
- option to get uint8 or base64 result from functions
`md5`and`sha1` - in
`fopen`, new text mode`q`and`T`to force output EOL to be LF or CRLF irrespectively of the OS - named argument
`NPrec`in`fprintf`and`sprintf`for default precision `tic`with output argument and`toc`with input argument for multiple simultaneous measurements`tic`and`toc`with optional named argument`CPUTime`to choose between wall-clock time (the new default) and CPU time- text inline data with
`@/text`

acosd | acos in degrees |

acotd | acot in degrees |

acscd | acsc in degrees |

asecd | asec in degrees |

asind | asin in degrees |

atand | atan in degrees |

atan2d | atan2 in degrees |

base32decode | decode base32-encoded data |

base32encode | encode data using base32 |

cosd | cos in degrees |

cotd | cot in degrees |

cscd | csc in degrees |

cummax | cumulative maximum |

cummin | cumulative minimum |

hmac | HMAC authentication hash |

posixtime | current Posix time |

random | random generator for distribution functions |

regexp | regular expression match |

regexpi | regular expression match ignoring case |

rng | state of random number generator |

saxcurrentline | current line number of SAX parser |

saxcurrentpos | current position in input stream of SAX parser |

saxnew | create a new SAX parser |

saxnext | get next SAX event |

saxrelease | release a SAX parser |

secd | sec in degrees |

sha2 | SHA-256 or SHA-224 digest |

sind | sin in degrees |

superclasses | parent classes of an object |

tand | tan in degrees |

utf32decode | decode Unicode characters encoded with UTF-32 |

utf32encode | encode a string of Unicode characters using UTF-32 |

batch | create a job with a single task |

cancel | cancel a job |

createJob | create a new job |

createTask | create a new task |

delete | delete a job or a task |

fetchOutputs | fetch output of all tasks in a job |

findTask | find tasks in a job |

parcluster | get a cluster |

pardefaultcluster | get or set default cluster |

submit | submit a job for execution |

wait | wait until a job state has changed |

### Minor changes

- cell arrays accepted by
`strmatch` `mpower`where the first operand is a square matrix and the second any scalar, not only a real integer- in
`sprintf`and other function for formatted output,`%x`and`%o`truncated numbers while`%d`rounded them; now all integer formats round numbers - anonymous functions without output argument, such as
`@(f) format(f)` - simplified syntax for indices in
`subsref`and`subsasgn` - indices and values returned by
`find`with option`'last'`not reversed anymore `median`gives`NaN`for vectors which contain`NaN`- in function
`latex2mathml`, new named argument`displaymath` - more character macros defined in
`latex2mathml` - horizontal space macros (
`\;`,`\quad`etc.) defined in`latex2mathml` `\begin{array}{...}`,`end{array}`and`\\`defined in`latex2mathml``\phantom{...}`defined in`latex2mathml`- named argument
`fd`in`fprintf`as an alternative to unnamed argument`fd` - documentation for
`householder`and`householderapply` - better LME source code parsing allowing function definitions not at the beginning of a line

### Bug fixes

`norm`1 or inf of non-square matrices fixed`join`without input argument fixed- nested assignment to struct fields could produce garbage; fixed
`arrayfun`didn't accept cell arrays; fixed`bitcmp(scalar,array)`fixed`care`sometimes produced nan results with valid inputs; fixed`base64decode`could produce garbage when the base64 sequence wasn't properly terminated; fixed- concatenation of struct arrays with different number of fields fixed
- calls to functions in variables without input arguments, such as
`f()`where`f`is a variable which contains a function reference or an anonymous function, fixed - functions without output arguments in anonymous functions used in larger expressions fixed
`bitall`and`bitany`fixed`hypot(0,0)`fixed- implicit argument name in
`inline`only with exactly one string argument; this permits anonymous functions without argument, such as`a=2; fun=@() a;` - anonymous functions with multiple output arguments fixed
- assignments to nested lists, cell arrays or structures, which gave sometimes incorrect results or crashes, fixed
`error`with a custom error identifier and no error message reused the previous error message; fixed`fwrite`with an invalid fd failed silently; now it throws an error- padding of formatted integer numbers fixed
`qr(A,false)`memory requirements, previously too high, fixed- option
`PreArg`fixed in`ode45`and`ode23` `info('u')`with an output argument returned a list with only the first used library; fixed

### Windows

- new function
`cputime` - function
`dir`fixed - in function
`fopen`with mode`'r'`, no more exclusive access

## LME 6.0

### New features

- new functions:
`arrayfun`function evaluation for each element of a numerical array `erfcinv`inverse complementary error function `erfcx`scaled complementary error function `fileparts`file path splitting into directory, filename and extension `filesep`file path separator `fionread`number of bytes which can be read without blocking `flintmax`largest of the set of consecutive integers stored as floating point `frewind`rewind current read or write position in a file `fsolve`solution of set of nonlinear equations `fullfile`file path construction `hideimplementation`hide the implementation of remaining functions in a library `inferiorto`class precedence for method calls with arguments of different classes `inthist`histogram of an integer array `iscolumn`column vector test `isdefined`check if a variable is defined `isequal`equality comparison `isfun`function test `ismac`Check whether computer runs under Mac OS X `ismatrix`matrix test `isnull`null object test `isrow`row vector test `latex2mathml`convert LaTeX equation to MathML `lsqcurvefit`least-square curve fitting `lsqnonlin`nonlinear least-square solver `namedargin`named input arguments `null`null object `randi`uniformly-distributed integer random number `rat`rational approximation `roundn`rounding to a specified precision `split`string splitting `strrep`substring replacement `structmerge`merge the fields of two structures `superiorto`class precedence for method calls with arguments of different classes `unwrap`unwrap angle sequence `xmlread`read an XML string into a DOM object `zp2ss`conversion from transfer function given by zeros and poles to state space - named arguments with support in user functions,
`struct`,`optimset`and friends, direct options in`fzero`,`fminbnd`,`fminsearch`,`fsolve`,`ode23`,`ode45`and friends `dbtype`,`disp`,`dumpvar`,`help`,`lookfor`,`info`and`inmem`with optional named argument`fd`- new built-in functions
`isprime`,`linspace`,`logspace`, and`median`(were in library`stdlib`) - new
`format rat`for rational approximations - support for new data type
`null`in boolean expressions used by`if`,`elseif`,`while`,`until`, in conditional expressions, and in comparisons with operators`==`and`~=` - in
`sprintf`and friends, new format`%P`for SI prefix, or engineering for exponent outside -24..24 - new class names recognized by
`isa`:`'numeric'`,`'float'`, and`'integer'` `interp1`now supports cubic interpolation (method`'3'`or`'cubic'`) or piecewise cubic Hermite interpolating polynomial (`'p'`or`'pchip'`)`~`can be used as a placeholder for unused output arguments in function calls or for unused input arguments in function definitions`isunix`and`ispc`moved from extension to LME, and`ismac`added`cellfun`can be used with struct arrays`catch`with variable to get the error description- inline data with
`@/base64` - definition of structs and n-by-1 struct arrays with braces and named values
`apply`with support for named arguments- named argument
`throwAsCaller`in`error`and`rethrow` - named argument
`NPrec`in`dumpvar` - in
`dbtype`, optional output argument to get function source code in a string - line breaks are ignored between brackets after a comma, which makes the three dot escape sequence superfluous there

### Minor changes

- display of cell arrays and structures improved
- first argument of
`optimset`,`odeset`, etc. can be an empty matrix to stand for the default options - with keywords,
`which`displays "(keyword)/..." `info s`gives also the size of double (8 bytes on all current platforms)`isa(x,'cell')`gives true if`x`is a list or a cell array`findstr`renamed`strfind`for the sake of consistency and compatibility with other applications- the profiler can be used with functions whose source code isn't available anymore (e.g. those defined from the command-line interface)
`dumpvar`made faster- for each library,
`info('l')`gets the list of its sublibraries `info`displays or returns the line number of functions and methods`quad`replaced by`integral`, with named arguments for options`lower`and`upper`convert letter case according to the Unicode Character Database- for constructors,
`help`accepts`class`as well as`class::class` - redefined range (colon operator) with complex values where the end value isn't located on the straight line defined by the start and step values
- complex
`dot` - arguments with default values forbidden in anonymous functions

### Bug fixes

- when a variable
`fun`contained a function reference or an anonymous or inline function, it couldn't be called without input argument with the syntax`fun()`; fixed - in rare cases, anonymous functions with variable number of output arguments could not be compiled correctly and resulted in a syntax error; fixed
- anonymous functions without input argument but with captured variables failed; fixed
`odeset`option`EventTime`with fixed events could fail; fixed`help`and`lookfor`for functions defined in libraries which weren't loaded sometimes failed; fixed`var(indices)=[]`or`var(select)=[]`with a single value in parenthesis didn't always produce the correct result; fixed- anonymous function
`@(x) x`threw an error; fixed `_pragma line`wasn't taken into account for function definitions; fixed`fclose all`didn't work reliably; fixed`dare`with three output arguments didn't always gave the correct gain; fixed`format int b/o/x`displayed integer types in decimal; fixed- line number displayed when errors occur in libraries loaded with
`include`or`includeifexists`fixed `cond([])`produced garbage; fixed (gives 0)`cov`with complex data fixed- indexed element deletion of an undefined variable could lead to data corruption or crashes; fixed
- in
`fzero`, test to stop infinite range expansion (e.g. for`fzero(@(x)1,2)`)

### Windows

- extension functions with the same name as the dll file might cause a crash; fixed

## LME 5.1

### New features

- engineering format with
`format`,`fprintf`,`sprintf`and`bprintf` - line breaks are ignored between parenthesis and braces, which makes the three dot escape sequence superfluous in many cases
- anonymous functions can have multiple output arguments (when they have a top-level function call, the number of output arguments is passed from the caller)
- value sequences, a generalization of the
`v{:}`syntax (now any indexing expression(s) can be provided in the braces, and the resulting item(s) are used as if they were enumerated explicitly and separated with commas in function input arguments, matrix rows, lists, or cell array rows) `interp1`(1D interpolation)- option
`Past`in`odeset`to add past time and state values to ODE (useful to integrate delay differential equations) - structure arrays; new functions
`structarray`,`cell2struct`, and`struct2cell`; support in`beginning`,`cat`,`ctranspose`,`disp`,`dumpvar`,`end`,`flipdim`,`fliplr`,`flipud`,`horzcat`,`ipermute`,`isempty`,`length`,`ndims`,`permute`,`repmat`,`reshape`,`rot90`,`size`,`squeeze`,`transpose`,`vertcat`, and variable refererence and assignment - new built-in function
`factor`(was in library`stdlib`) `info s`(size of integers and pointers)

### Minor changes

`interpn`now supports any numerical data type and converts the result to double- when structures and lists are displayed, control chacters in strings are displayed as question marks
- support for
`fflush`with files - syntax
`f(...)`to evaluate a function reference or an inline or anonymous function stored in a variable`f`now supports multiple output arguments `classdef`is a new reserved keyword`apply`has now a limit of 256 output arguments if their number is not specified`horzcat`and`vertcat`accept any number of input arguments- in
`interpn`, optional argument for the extrapolated value - in
`ode23`and`ode45`, time step is reduced before events to improve their precision and reduce the risk of event repeating - with an output argument,
`info`,`inmem`, and`dbstack`return now a structure array instead of a list of structures

### Bug fixes

`interpn`with decreasing input coordinates could produce NaN when it shouldn't; fixed

## LME 5.0.1

### New features

`includeifexists`

### Minor changes

`fgets`and`fgetl`now return an empty string upon end-of-file, so that`while feof(fd)`can be used without error catching`interpn`check the size of input arguments before the coordinate monotonicity, to give a more informative error in case the result of`meshgrid`is given instead of vectors of coordinates- improved
`help`and`lookfor`: help for functions defined in libraries provided with Sysquake is available also before the library has been loaded with`use`

### Bug fixes

- when requesting more data than available,
`fread`gave an end-of-file error in text mode only; fixed - in the command-line interface, once an attempt to call a function
in a library was made before the library was imported, a subsequent
`use`statement didn't define the function in the correct context; fixed `ss2tf`numerator degree reduction could introduce dummy zeros which become apparent in some cases, such as magnitude frequency responses with loglog scale; fixed

## LME 5.0

### New features

- anonymous functions with captured variables and optional argument to inline functions for constant parameters
- new
`_pragma`directive, with`_pragma line`which changes the current line number (useful in code translated from another source file) - new function
`hypot` - support for styled text with fd=4
- styled text for help
- internal support to mark libraries from some sources as untrusted, so that their functions run in the sandbox
`info b`displays`u`after each untrusted function (functions which cannot be executed in the sandbox) and`L=info('b')`return the trusted flag for each function

### Bug fixes

- in some uncommon cases, index expressions in assignments with multiple
output arguments where the indexed array wasn't a variable weren't interpreted
correctly (e.g.
`(a,b)=size((1:10)(2:6))`threw an error) ; fixed - when built-in functions and operators permitted by
`str2obj`were overridden by an extension, their use became illegal; fixed

## LME 4.7.1

### Bug fixes

- element deletion along one of multiple dimensions with logical
selection, such as
`V(:,[false,true,false],:)=[]`, might corrupt variables; fixed `fft`whose argument length was a multiple of a prime number larger or equal to 31 was wrong; fixed

## LME 4.7

### New features

- in command syntax, arguments can be enclosed in single quotes; then spaces and escape sequences beginning with a backslash are interpreted like in normal quoted strings
- new functions
`inmem`,`goldenratio` - new functions
`meshgrid`and`ndgrid`(removed from library`stdlib`) - support for complex matrices in built-in versions of
`null`,`orth`and`pinv` - support for nonsymmetric and complex matrices in built-in version of
`eig`

### Minor changes

`(U,S,V)=svd(M,false)`removes not only`m-n`last columns of`U`if`m>n`, but also`n-m`last columns of`V`if`m<n`(to have the same behavior as before, write`svd(M,size(M,1)<size(M,2))`)`clc`with an optional file descriptor`format '+'`displays negative numbers as`-`and pure imaginary nonzero numbers as`I`

### Bug fixes

- when the last element of
`varargout`was an empty array, it was ignored; fixed `sort`and`unique`with complex matrices produced garbage; fixed- support for single type in
`sort` - support for single type in operator
`:` - assignments with a colon in the indices and incompatible dimensions of
the right-hand side expression, such as
`v=[]; v(:,1)=[1,2]`, could cause a crash; fixed - built-in version of
`orth`didn't always produce the correct result; fixed - in rare cases, built-in
`schur`, and functions which depend on it (`lyap`,`dlyap`,`care`, and`dare`), didn't converge (e.g.`schur([0,0,0,1;1,0,0,0;0,1,0,0;0,0,1,0])`); fixed `d1~=d2`, where`d1`and/or`d2`was complex, wasn't always correct; fixed- on platforms using Unicode,
`disp`didn't display correctly strings with characters code`>127`in list elements or structure fields; fixed - assignment
`v(...)=[]`, where`v`was undefined and indices contained at least one colon, corrupted variable data and could lead to a crash; fixed `fprintf`and`sprintf`, with format`%d`,`%i`,`%o`or`%x`, displayed finite numbers instead of`inf`,`-inf`or`nan`; fixed- literal strings beginning with characters between 0 and 127 followed by characters between 128 and 255 were corrupted; fixed

## LME 4.6

### New features

- new functions
`intmin`and`intmax` - new function
`num2cell` - new function
`orderfields` `unique`with two or three output arguments- new functions for sets:
`union`,`intersect`,`setdiff`,`setxor`,`ismember` `fft`and`ifft`use a fast algorithm for any nonprime size, not only powers of 2`fft2`and`ifft2`are native now- new functions
`fftn`and`ifftn` `moment`,`var`,`std`,`skewness`and`kurtosis`are native now- new function
`interpn` - new functions
`tsearchn`,`tsearch`,`griddatan`,`griddata` - new functions
`cross`(removed from library`stdlib`) and`dot` - new native functions for quaternions (library
`quaternion.lml`is now mostly obsolete, though linear algebra on quaternions such as LU factoring have been left out) - new function
`strtok`

### Minor changes

`sinc(x)`is defined as`sin(pi*x)/(pi*x)`instead of`sin(x)/x``sum`,`prod`and`mean`now return an empty array for empty inputs when the`dim`parameter is specified- scalar operators with a scalar operand are faster
`findstr(s1,s2)`with an empty`s2`returns an empty array instead of`1:length(s1)+1`- integer and single numbers can be used as indices in array subscripts
- format
`%i`in`fscanf`and`sscanf`accept binary numbers prefixed by`0b`or`0B` - in
`ode23`and`ode45`, the time step is now reset when an event occurs to avoid an unlimited growing when the ode is integrated without error - operators
`/`and`\`throw error "Non-square matrix" instead of "Incompatible size" when the left or right operand is a non-square matrix, respectively

### Bug fixes

`permute`and`ipermute`converted single arguments to double; fixed`isempty`with an argument of type single always gave false; fixed`fft`with real argument along second dimension crashed sometimes; fixed`ind2sub`with scalar size argument for square matrices didn't work as documented; fixed`class`gave`'binary'`instead of the actual name of built-in objects such as longint; fixed- List elements were displayed as
`bin`instead of the actual name of built-in objects such as longint; fixed `V(:)=expr`didn't always set all elements of`V`; fixed- in error messages, the symbol wasn't always correct; fixed
- in
`ode23`and`ode45`, events were missed if the`OnEvent`function provoked a change of sign of the value returned by the`Events`function; fixed `inline`without input argument produced undefined results instead of a clean error; fixed- in
`ode23`and`ode45`, events are disabled during the integration step following an event, to prevent shattering - matrix multiplication by empty matrix and division of empty matrix didn't always give an empty matrix; fixed

## LME 4.5.2

### New features

- new function
`numel`(number of elements in an array) - new syntax
`f(arguments)`for calling the inline function or function reference`f`which can be a variable or an expression - new function
`sha1`(SHA-1 digest) - new functions
`reallog`,`realpow`,`realsqrt` `polyder`with multiple arguments for derivative of polynomial products and ratios- new functions
`cast`,`typecast`,`swapbytes` - the prompt of command-line interface is associated with file descriptor 3 instead of 1 (stdout)

### Minor changes

- new error message "Undefined input argument"
- with
`format long`, single numbers are displayed with 7 digits

### Bug fixes

- spaces weren't supported between a list of variables in the left-hand side
of an assignment and the closing bracket (such as
`[a,b ]=size(c)`); fixed - parenthesis/brackets mismatch around a list of variable in the left-hand side
of an assignment was accepted (e.g.
`(a,b]=size(c)`); fixed `linprog`didn't always produced the correct result with both lower and upper bounds on the same variables; fixed`md5`didn't accept single characters or bytes; fixed`v(sel)=[]`, where`v`was a column vector and`sel`a logical vector, didn't produce a result with the correct size; fixed- relational operators weren't defined for type single; fixed
`ode45`and`ode23`didn't always updated the integration step in an optimal way; fixed

### Mac OS X

- extensions can have the suffix ".dylib" instead of ".so", to make development with XCode easier

## LME 4.5.1

### New features

`graycode`and`igraycode`(conversion to and from Gray code)- function
`echo`to log a trace of the execution of functions - functions
`sec`,`csc`,`cot`,`asec`,`acsc`,`acot`,`sech`,`csch`,`coth`,`asech`,`acsch`,`acoth`, and`log2`are now built in, not in library stdlib anymore

## LME 4.5

### New features

`sandboxtrust`(unrestricted execution of code from a sandbox)- cell arrays (arrays whose elements have arbitrary types, like
lists but with multiple dimensions); semicolon supported between braces
to create 2-dim cell arrays; new functions
`cell`,`cellfun`, and`iscell`; support in`apply`,`beginning`,`cat`,`ctranspose`,`disp`,`dumpvar`,`end`,`flipdim`,`fliplr`,`flipud`,`for`,`horzcat`,`ipermute`,`isempty`,`join`,`length`,`map`,`ndims`,`permute`,`repmat`,`reshape`,`rot90`,`size`,`squeeze`,`subsasgn`,`subsref`,`transpose`,`vertcat`, and variable refererence and assignment `lookfor`on platforms where`help`is supported- new functions
`factorial`,`ellipam`,`ellipf`,`ellipe`,`delaunay`,`delaunayn`,`voronoi`,`voronoin`,`isdigit` `cal2julian`and`julian2cal`(date conversion)`c2dm`with`'match'`method for zeros and poles matching`matrixrow`and`matrixcol`(row or column index to be used in index expressions, like`beginning`and`end`)

### Minor changes

- execution speed has been improved
- to remove element(s) from a list or a cell array, the syntax
`listvar(index)=[]`is supported in addition to`listvar(index)={}`, for compatibility with Matlab - user breaks (with Control-C or its platoform-dependent equivalent) is not
caught by
`catch`anymore - global and persistent variables are now forbidden in code executed
by
`sandbox`(`sandboxtrust`can be used to circumvent this restriction) - the transpose operators (
`'`and`.'`) can be applied to any kind of arrays, not only 2-dim; dimensions 1 and 2 are permuted `fminbnd`and`fminsearch`with 2 or 3 output arguments- support for single-precision input arguments in
`min`,`max`,`sort`,`unique`,`find`, and`repmat` - support for all kinds and dimensions of numerical, char, and logical arrays in
`num2list` - new options
`'Priority'`and`'Sandbox'`in`threadset` - the second output argument of
`sort`for lists (and cell arrays) is now a row vector instead of a column vector, so that`S===L(I)`for`(S,I)=sort(L)` `x^2`, where`x`is a real scalar double, is implemented as`x*x`for faster execution and exact output when possible- option for ascending or descending direction in
`sort` - support for 2 or 3 input arguments in
`find`to limit the number of values found `find`preserves the type char or logical in the 3rd output argument to match the input type`find`generates an error with input arrays with more than 2 dimensions and 2 or 3 output arguments (`ind2sub`can be used to get the subscripts for arrays of any dimension)`care`with 5 input arguments- on platforms which use UTF-8, initial BOM (Byte-Ordering Mark) in libraries are ignored
`tril`,`triu`, and`diag`accept 2-d arrays of any numerical, logical or char class`beginning`can be defined as a variable or a function (then the built-in definition used in index expressions will be hidden)`fft`has been accelerated for real input`format`now accepts option`bank`for display with 2 fixed decimal digits, and format`'+'`for display of arrays with`+`for nonzero elements and spaces for zero elements- functions
`fprintf`,`sprintf`and`bprintf`support the format`%i`and the flag`#`

### Bug fixes

`end`in an index expression for a single-precision array variable returned an error; fixed`size`wth an empty array and multiple output arguments gave 1 for trailing (superfluous) dimensions instead of 0; fixed`v{ix}`where v was a structure was accepted; fixed`threadsleep`didn't always suspend threads correctly; fixed- on some platforms,
`ss2tf`with a single output argument crashed since LME 4.3; fixed `bitshift`with two input arguments, the first one being an integer, didn't produce the correct result; fixed`size(A,dim)`where`A`was empty and`dim>2`gave 1 instead of 0; fixed`funm([],fun)`,`sqrtm([])`, and`logm([])`gave an error; fixed (give`[]`, and 0 for the optional second output argument of`funm`)- the number of libraries was limited to 16 by context; now it's limited only by memory
- in assignments to subscripted lists where subscripts weren't in ascending
order, the assigned elements weren't in the correct order (for instance
`L([2,1])={20,10}`set the 2 leading elements of`L`to`20`and`10`); fixed `unique`didn't produce a row vector when the input was a row vector of a non-double type; fixed- dumping the state of LME cleared unused memory space, which was useless and forced memory allocation on systems with virtual memory; fixed
- there was no error message for unexpected
`else`; fixed - functions
`and`,`balance`,`chol`,`ctranspose`,`eig`,`eye`,`flipdim`,`fliplr`,`flipud`,`funm`,`hess`,`householder`,`householderapply`,`ind2sub`,`isscalar`,`isvector`,`kron`,`linprog`,`lu`,`ndims`,`ones`,`or`,`pinv`,`rand`,`randn`,`schur`,`str2fun`,`sub2ind`,`trace`,`transpose`,`tril`,`triu`,`unique`,`xor`, and`zeros`couldn't be overloaded; fixed - assignments like
`a(i,j)=[]`threw the error`Deleting elements along multiple dimensions`even when`i`and`j`selected 0 element because they were empty or false; fixed `lu`works now with singular and rectangular matrices`c2dm`with first-order hold and transfer function didn't always produce the correct numerator; fixed- with command syntax, spaces between the last argument and a semicolon or a
comma caused an empty string to be passed as an additional input argument
(e.g.
`disp a ;`was interpreted as`disp('a','')`); fixed - on platforms which supported it (Mac OS X and other unix), loading user extensions from several places didn't work correctly; fixed
- assignments like
`A(sel,...)=B`with multiple subscripts, where`sel`was a logical vector, didn't always produce the correct result; fixed `repmat`didn't copy elements correctly when the result was a column vector; fixed- number beginning with 08 or 09 were decoded as decimal; now they're considered as illegal octal
`dumpvar`with a negative file descriptor threw an out of memory error; now they throw an bad file descriptor error