This file details the changes between Scilab 6.1.1 (this version), Scilab 6.1.0, and the previous 6.0.2 release. For changelogs of earlier releases, please see Scilab 6.0.2.
This file is intended for the specific needs of advanced users, and describes:
Please report anything we could have missed, on the mailing lists or the bug tracker.
For a high-level description of the main new features of this release, please consult the embedded help. It is also available as the "What's new" page of the help, by simply typing help
in Scilab console.
In summary, the main new features are:
uiSpreadsheet
function has been added to easily interface csvReadargn
GNU autotools have been updated to :
Linux and macOS builds require a C++17 compiler. Toolboxes might also want to use this standard by specifying -std=c++17
as a CFLAGS
Migration to Microsoft Visual Studio 2017 and Intel Composer 2018
Scilab embedded JVM is Java 8. To run or compile Scilab you need at least:
Windows:
Mac OS X:
Linux:
For more information, please consult: What are the system requirements for Java?
SSE2, Streaming SIMD Extensions 2 support is now mandatory to run Scilab on Linux i686.
airy
has been added: Evaluation of Airy functions of the first and second kind, and their first derivative, possibly scaled.bitget
is upgraded:
log2(number_properties("huge"))
= 1024).x > 2^52
, queried bits below %eps
(indices < log2(x)-52) now return Nan
instead of 0.bitset
is upgraded:
bitstring
function added.edit
now accepts a line number as text (like "23").profileEnable
, profileDisable
, profileGetInfo
could be used to instrument functions and gather execution information within Scilab.prettyprint
is upgraded:
mesh2d
has been introduced to compute a 2d mesh from vectors (x,y) of points.loadmatfile
is upgraded:
-toStruct
option added, to return results in a structure instead of in the calling environment.jremove
is optional and clear
could be used to release Java objects mapped to Scilab.blockdiag
is introduced to improve, replace, and extend sysdiag
to strings.assert_checkequal
is upgraded:
diophant
is improved:
[]
is returned.csvRead
and csvTextScan
are now implemented without extra copies.editvar
GUI support copy-paste of strings removing quotes.calendar
can now display formatted calendars.xmlSetValues
clones setPreferencesValue
that is now obsolete.unique
is upgraded to:
"keepOrder"
option.Nan
values as the same one, with the "uniqueNan"
option.ellipj
function introduced, to compute the sn
, cn
, dn
, ns
, nc
and nd
Jacobi elliptic functions.riccati
is upgraded:
riccati(H)
and riccati(H,E)
syntaxes added, to describe the Riccati equation through its Hamiltonian H or (E,H) pencil.X=[]
| X1=[]
is returned instead of yielding an error.hallchart
is upgraded:
playsnd
is upgraded:
nicholschart
is improved: more neutral default frame color; improved labels positioning; colors can now be specified by their predefined name or "#RRGGBB" hexa code; a structure of handles is now returned to easily post-process both subframes and the set of labels.sciargs
returns a column instead of formerly a row.[%f int8(-5)]
.gsort
can now perform multilevel sorting. This noticeably allows sorting completely complex numbers.factorial
can be used now from n=171 up to n=10^14.intersect
now supports complex numbers.setdiff
now supports complex numbers.twinkle
can now blink together several hierarchically independent objects, like a curve and its labels, etc.repmat
has been rewritten. It is 7 times faster now.plot
can now work in semi or bi-logarithmic mode with some input logflag.plotimplicit
function added.weekday
accepts new date formats and new syntaxes. A language option applying to the day names is now available.vectorfind
is upgraded:
joker
and matching
added.indType
.datafit
is now able to fit weighted data. It now supports any gap function vectorized for Data points, and so is much faster. It now accepts any matrix of parameters (not necessarily a column). It now returns the average Mode-to-data distance, and the termination status for the quasi-Newton algorithm.tree_show
is upgraded:
rootTitle
and styles
optional inputs.arrayByFields
option, to allow displaying each array component as an object in its whole.nchoosek
is introduced, to compute the binomial coefficients.perms
can now build and return only unique permutations, without duplicates.circshift
is introduced.atomsGetInstalledPath
is no longer sensitive to the case or completeness of the names of the modules. Providing the version of the modules is now optional.function
replaces mc
as the new overloading code for functions in Scilab language.gsort
is upgraded:
g, r, c, lr, lc
methods, including sparse booleans, and in a multi-level mode. It was formerly limited to sparse real or complex vectors and only to the g
mode.unique
is enabled for any 2D sparse arrays, in simple, 'c' and 'r' modes.%chars
constant added, to easily access to some selected sets of Unicode symbols.interp1
is upgraded:
y
now supported: the real and imaginary parts are interpolated separately.edgevalue
mode added for all interpolations; periodic
mode added for linear and spline interpolations. linear
mode added for the spline interpolations.xlfont
did not support the documented 4th argument.bitcmp
is upgraded:
Arnoldi
module is now internal.sgolay
and the companion sgolayfilter
and sgolaydiff
functions have been added to implement Savitsky-Golay filters.clock
now returns the time zone and the daylight saving time.mapsound
is rewritten and handle parameters in a different way.mprintf
, msprintf
and mfprintf
can now print input booleans, as 0
|1
or as T
|F
.setdiff
now supports input booleans and sparse matrices (boolean or numeric).intersect
is extended to any sparse boolean or numeric arrays, in all simple, 'c' or 'r' modes.union
supports boolean, sparse boolean, and sparse numerical matrices.kron
and .*.
are extended to boolean arrays.gamma
is extended to incomplete gamma integrals.close
is extended to close the help browser, xcos, the variables browser, or editor GUIs.polyint
is introduced to compute polynomial antiderivatives.det
is now actually extended to sparse matrices.deff
is upgraded:
deff
, the @
symbol can be used as function pseudo-name.mgeti
can now read correctly 64-bit int64 / uint64 integers bigger than 2^52.mopen
and mclose
now handle multiple files and file descriptors.hash
function with SHA-1, SHA-2 and SHA-3 Secure Hash Algorithms has been added.loglog
, semilogx
, semilogy
Matlab-compatible functions added.scatter
and scatter3d
are reforged. New scatter
options: "smallOnTop"
and "datatips"
.asciimat
now supports input strings of different lengths or including international UTF8 extended characters.int2d
can now compute direcly a double integral over a rectangle.int3d
can now compute direcly a triple integral over a cuboid.cutaxes
function added.complex
is extended to sparse arrays.m2sci
Matlab-to-Scilab code converter upgraded for better code conversion.ans
variable is editable as any other variable in Editvar.clear
the big ones first.x_matrix
can now edit matrices of booleans, integers, or text. Matrices of real or complex numbers are better displayed.importgui
is renamed uiSpreadsheet
.CURVE_c
settings did not always display a window.CheckOutputArgument(ctx, min, max)
the min
argument should be set to 0
if needed.getNbOutputArgument(ctx)
the return value could be 0
_iRetCount
argument value could be 0
.frexp
becomes an internal. Please use [m,e]=log2(x)
instead.champ1
is obsolete. Please use champ.colored
instead.setPreferencesValue
is obsolete. Please use xmlSetValues
instead.%sn
is obsolete. Please use ellipj
instead.sysdiag
is obsolete. Please use blockdiag
instead.ric_desc
is obsolete and will be removed from Scilab 6.1.x. Please use riccati
instead.noisegen
will be removed from Scilab 6.1.x. Please use grand
instead.get_figure_handle(n)
is obsolete. Please use findobj('figure_id',n)
instead.hist3d
is renamed bar3d
. The former hist3d
function is declared obsolete and will be replaced by an actual 3D histogram function in Scilab 6.2.scatter3
is obsolete. Please use scatter3d
instead.saveafterncommands
is canceled. It will be removed from Scilab 6.1.xxname
is obsolete. It will be removed from Scilab 6.2.x. Please use gcf().figure_name
instead.soundsec
is obsolete. It will be removed from Scilab 6.2.x. Please use 0 : 1/freq : t*(1-%eps)
instead.fplot2d
is obsolete. It will be removed from Scilab 6.2.x. Please use plot(x, f)
instead.getPreferencesValue
was obsolete and has been removed. Please use xmlGetValues
instead.eval
was obsolete and has been removed. Please use evstr
instead.hypermat
was obsolete and has been removed. Please use matrix
instead.lstsize
was obsolete and has been removed. Please use size
instead.denom
was obsolete and has been removed. Please use the .den
rational field instead.numer
was obsolete and has been removed. Please use the .num
rational field instead.square
was obsolete and has been removed.strcmpi
was obsolete and has been removed. Please use strcmp(,'i')
instead.xgetech
was obsolete and has been removed. Please use gca
instead.fac3d
was obsolete since Scilab 4 and has been removed. Please use plot3d
instead.fac3d1
was obsolete since Scilab 4 and has been removed. Please use plot3d1
instead.xinfo
was obsolete and has been removed. Please use gcf().info_message
instead.with_tk
was obsolete and has been removed. Please use with_module('tclsci')
instead.part()
was slower than in Scilab 4.1.2.printf_conversion
help page was poorly presented and had many issues: The described types of accepted value and the printed result were often switched; nothing was told about the processing of complex numbers; special escaped sequences \n \r \t \ was not described; possible numbering of placeholders was not described; in the pt_BR version, the itemized lists were wrongly unnested and characters typing placeholders (d,u,o,x,f,e,g..) were missing..wgetrc
config file could make troubles in atomsDownload
.cumsum()
on sparse documented.ContextMenu => Delete last datatip
was useless.MAXMIN
block did not propose 2 input ports to work in an element-wise way (unlike MIN_f and MAX_f).browsevar
, displaying the content of lists, structures, cells, or other custom tlists or mlists was not possible.mapsound
page was poor with a single interesting example.rand()
was parsing its inputs incorrectly.struct
page did not document how to build an array of structures.ipar(9) > 1
led to an error.browsevar
, clicking on any graphical handle did not edit its figure with ged
.browsevar
, clicking on any function did not edit it with edit
. The content of libraries could not be displayed either.A(%s)
gave the same result as A($)
.mprintf
, msprintf
and mfprintf
could not print input booleans.csvRead
page did not document the way to use the range
up to the last row/column.csvRead()
did not take the range
into account when header
is provided. []
could not be used as the default range
.fft
page, the formula for the inverse FFT missed the 1/n normalization factor.pause
was not up-to-date and could be improved.x_matrix
could not edit matrices of booleans, encoded integers, or text. Matrices of real or complex numbers were poorly displayed.genlib
and library
help pages were outdated concerning Scilab 6.cumsum()
improved.mtlb_sparse()
removed from the documentation.frameflag=9
and strf=".9."
values of these plot2d
options were no longer accepted. Their documentation was ambiguous.TODO
keyword was no longer highlighted.user
is removed for a while but was still documented.setfield
page: The output and the 6.0 history were documented only on the en_US version. The input was wrongly restricted to matrices, while any Scilab object is acceptable. The specific role of setfield
for mlists was not really described nor illustrated. The example did not include any call to setfield.covStart(["isempty" ; "isscalar"])
crashed Scilab.getdate
page: The time referential was obscure: a) UTC for Unix Time Convention vs Coordinated Universal Time. b) unclear influence of the time zone.get
page needed to be overhauled: get(0)
, get(0,prop)
, get(tag)
, get(tag,prop)
and other features were not documented.gsort
was unable to sort any hypermatrix along dimensions > "r"|"c".gsort
: the only sparse possible input were real or complex vectors, and only with the g
method.intersect
supported neither sparse boolean nor sparse numeric inputs.unique
could not process 2D sparse matrices.setdiff(s,s2)
yielded an error when s
or/and s2
is sparse encoded.mfile2sci
abusively added a 6 lines mode(0); ieee(1)
header to every converted file.[].figure_name
crashes Scilab.(m:n)($)
crashed Scilabisequal(1:$, 2:$)
returned %T
.covStart()
clear previous coverage information. profileEnable()
could be used to append a macro later on.covStart()
help page was incomplete about the API usage.assert_checkequal()
did not considered equal matching Nan or void elements in (nested) containers.typename()
still considered removed uncompiled macros (11, "m"), and "mc" overloading code instead of "function".wavread
was wrong.unwrap()
failed unfolding curves with straight segments.[U,km,ku] = unique(..)
was not implemented.setdiff("","")
produced ""
instead of []
. The "c"
and "r"
options yielded an error for string inputs. Input arguments were poorly checked.strcat()
was much slower in Scilab 6.0.2.isdef([],..)
yielded an error instead of returning [].script2var
did get variables generated by exec()
.median(m,"r")
and median(m,"c")
yielded wrong results (6.1.0 regression)plot([0 1], ":")
plotted a dash-dotted curve instead of a dotted one.msprintf()
did not handle LaTeX dollars anymore.Simulation => Modelica initialize
displayed "Undefined variable: flag" in the console.csvRead()
was crashing with CSV files containing empty lines.(m:n)(:)
crashed Scilabmtlb_zeros([])
was crashing Scilab.external_object_java
class was crashing Scilab.edit_curv
yielded an error when reading data.toJSON(var, indent, filename)
is the right call sequence. Documentation has been updated.asciimat(text)
did not accept strings of different lengths or including some extended UTF-8 characters.colorbar(..)
ignored how to guess umin
and umax
for a Champ object (with .colored="on").setdiff(a,b,"r"|"c")
with a and b boolean yielded an error.setdiff(sparse([1 3 0 2]), sparse([3 7]))
missed returning 0, and wrongly returned 3.gsort
yielded an error when sorting any sparse vector including some NaN.mean()
did not handle sparse numerical matrices.imult(%z)
crashed Scilab.issquare
was not overloaded.getdate
page should be rewritten: a) getdate("s")
does NOT take leap seconds into account. b) D=getdate(X)
is vectorized, accepts fractional seconds and returns them in [0,1)
in D(10) instead of milliseconds. Moreover, the time referential of the result was unclear (time zone, daylight saving offset).clock
returned none of the milliseconds, time zone, and daylight saving time.csvTextScan()
and csvRead()
did not handle well complex data.1 ./ uint8(0)
crashes Scilab (idem with int8, uint16, int16, uint32, int32, uint64, int64).getdate("s")
truncated the actual time to integer seconds. getdate(u)(10)
returned fractional seconds instead of milliseconds as getdate()
.bitget(x,pos)
and bitset(x,pos)
results could be wrong when pos
is an encoded integer.soundsec(t,freq)
has the trivial equivalence 0 : 1/freq : t*(1-%eps)
and should be removed.deff
could not return the created function as output argument, preventing to create and use anonymous functions. The function's headline and body had to be provided separately. For Simple functions, a one-string input (possibly console-oriented) definition was not supported.mapsound
needed to be reforged.fplot2d
is weaker than plot
and useless. It should be removed.num2cell
returned {} for any input array of empty strings.mfile2sci
conversion of ispc
and isunix
still used MSDOS
removed far ago. Conversion of ismac
was missing. Conversion of exist
missed using mtlb_exist
. Conversion of dos
yielded some "operation +" warnings. Unit tests for the conversion of cd
, dir
, and ferror
overwrote some Scilab reserved keywords. Conversion of return
yielded mtlb(resume)
.unique(["" ""])
returned ["" ""]
.macr2tree
+ tree2code
translated e={2}
into "e=1"
and e={2,"ab"}
into "e=[2,"ab"]"
.isempty(A)
was true for a sparse matrix of dimension 2^16 or larger.histplot(-10:0.2:10, 2)
yielded a warning from histc
and an error.edit(user_defined_function)
corrupted the original code.mfile2sci
did not support Matlab block-comments %{ ..%}.**
was undocumented.mfile2sci
had several issues when converting the NOT ~
operator: 1) ~(1-1)
was converted into ~1-1
instead of ~(1-1)
2) ~
applied to an integer expression yielded an error from convert2double
3) ~i
was converted into ~%i
instead of ~abs(%i)
.mfile2sci
: Some axis
conversions were wrong or not reliable.mfile2sci
: The prettyprintoutput
flag badly managed appended comments.%i|[]
, []|%i
, %i&[]
, and []&%i
were wrong. %t|%i
, %t&%i
, and %i&%t
were not defined.libmatio >= 1.5.18
was not supported.union
did not support input boolean, sparse boolean, nor sparse numerical matrices. The result of union(complexA, complexB)
was wrongly conjugate.bitcmp
needed to be upgraded for Scilab 6..*.
operator, kron()
was not defined for sparse numeric matrices..*.
nor kron()
worked with boolean or sparse boolean matrices.gamma
did not support incomplete gamma integrals.close
could not close the help browser, xcos, nor the variable editor or browser.derivat
had no reciprocal polyint
polynomial integration function.inv
could no longer be overloaded for hypermatrices of decimal or complex numbers.rand(2,2,2)^2
yielded a wrong result instead of trying to call the %s_p_s
overload for input hypermatrices.fullfile
badly handled any forced final file separator when building a directory's path.==
and <>
between libraries were no longer defined.importgui
function's name was not explicit enough. importgui
is renamed uiSpreadsheet
. importgui
internals was public.interp1
's documentation did not tell the spline edges conditions; extrapolation modes were poorly explained; the description of the result's size was completely wrong; x as an option was not documented. periodic
and edgevalue
extrapolation modes were not available. linear
extrapolation was not available for splines. When xp
is an hypermatrix with size(xp,1)==1
, the size of the result was irregular/wrong.det(sparse)
most often yielded Nan
. [e,m]=det(sparse)
was not actually implemented.getcolor
had a bunch of issues.atomsInstall
and atomsRemove
did not update the Toolboxes menu.input("message:")
yielded a wrong error message about mprintf
in case of non-interpretable input.interp
was leaking memory.x=spzeros(1e10,1e10)
yielded an incorrect error message.diag(spzeros(2,2))
yielded an Operation -[]
warning.help echo
could not redirect to help mode
when preferred, for new users coming from Octave.atomsInstall
was flashing many times on the console.get_function_path("acosh")
yielded an error (regression from Scilab 6.0.0).m2sci
code converter needed a set of fix and improvements.asciimat("A";"";"B")
yielded a transposed matrix of codes. When processing an hypermatrix of codes, the dim#2 of the result was squeezed (unlike Matlab/Octave's behavior).strsplit('a','a')
, strsplit('ab','ab')
, and strsplit("abcd","cd")
yielded wrong results.spec
documentation used messy concurrent notations. It still refered to the Arnoldi module instead of eigs
. The fr_FR version was incomplete.mgetl
could not read from stdin.prettyprint
export to html failed under Linux and macOS.fullpath
failed to resolve the path depending on pwd.bitget
did not accept positive integers of types int8, int16 or int32.datafit
algorithm was not documented.circshift
introduced.factorial
could use a huge memory amount even for a scalar argument.lstsize
was a duplicate of size
and should be removed.datafit
help page needed to be fixed and overhauled.champ1
is useless. champ().colored
is available for a long time.ged
did not allow moving several objects.gsort
could not perform multilevel sorting, and could not sort complex numbers completely.[ny,nx]
of meshgrid(x,y)
results and usages with graphics was not enough documented.definedfields
wrongly considered as defined void elements in lists, tlists, and mlists.list2vec
and vec2list
were located in the optimization module instead of in data_structures, and were missing in the See also
section of list
.isdef
and definedfields
had mismatching answers for void elements in lists, mlists, or tlists.unique
was not able to return the number of occurrences of returned distinct entities.SCALE_CSCOPE
& SCALE_CMSCOPE
in Xcos.disp
puzzlingly displayed arguments in reverse order.sciargs()
included twice -nw
when -nw
is used.assert_checkequal(list(1,,3), list(1,,3))
yielded an error.:
operator was too lowDominationRank
could be made private in optim_nsga2
.isinf
was not reliable for polynomials.gca().axes_bounds
refered to fig.figure_size
instead of fig.axes_size
.colorbar
, retrieving the handle of the new color bar was not trivial.subplot
's action was unclearly described on its help page. Page improved.show_window()
did not raise the current graphics window.bitset
did not work for numbers greater than 2^32-1.toprint
was not translated.strcmpi
was an obsolete duplicate of strcmp(,'i')
. It is removed.plot(1:3, 10)
failed.unsetmenu()
for a dockable="off"
figure crashed Scilab.get_figure_handle
was a specific duplicate of the more powerful findobj('figure_id',n)
feature. It is now obsolete..figure_size
were not documented.plot2d()
, plot()
did not accept logflags among input arguments.mgeti
wrongly handled int64
or uint64
integers bigger than 2^52. The mget
/mgeti
help page was unclear.clc(0)
did nothing, now clears last console entry. Remove leading blank after a clc()
.size([],3)
returned 1 instead of 0.strsubst
crashed on consecutive occurrences.csim
failed when the system has no state.size([],3)
returned 1 instead of 0.Demo > GUI > Uicontrols 2
could not be exported to a file.closeEditvar()
had to be replaced with editvar("close")
.emptystr
is 40x slower with 6.0.0 wrt 5.5.2bench_run
was too strict about the specification of tests names.[names,mem]=who()
was always zero.x = ric_desc(H,E)
always yielded an error. [x1,x2,residual] = ric_desc(..) returned a wrong residual
value.bitset
worked only element-wise, without accepting mixed scalar and array inputs.dec2base
was 53-bit limited by double and not uint64 readysimulated_annealing
module was out of the optimization
one.genetic_algorithms
module was out of the optimization
one.hist3d
was not an histogram function. It is renamed bar3d
.[m,e]=log2(x)
was not documented. As public function frexp
was in duplicate with [m,e]=log2(x)
.mprintf
, msprintf
a non-finite number displayed nothing.sleep 1
crashed Scilab.exportUI
on a non dockable figure crashed Scilab.function
replacing mc
for functions in the Scilab language was not documented.msprintf
segmentation fault was caught due to a wrong size.xmi
files saved from Xcos could not be opened by drag & dropping them into the console.size(sum(ones(2,3,4,5),4))
was [4 2 3] instead of [2 3 4].weekday
yielded an error for some row of input dates.lsq
was leaking memory.sci2exp
was no longer able to convert non-scalar structures.xgetech
was poor and stiff compared to any combination of gca()
properties .axes_bounds
, .data_bounds
, .log_flags
, and .margins
. It is removed.bitget
needed to be upgraded.eval
was a weak duplicate of evstr
. It should be removed.lu
was leaking memory.ric_desc
should be merged into riccati
.atomsGetInstalledPath
returned "" if the provided technical name differs only by the case, or is a fragment, or failed when the version is not provided.twinkle
was not able to blink several independent objects.numer
and denom
were poor and duplicates of the .num
and .den
fields of rationals. They are removed.freson
silently returned frequencies not corresponding to a maximum, or returned [] instead of some still computable maxima frequencies.comet
and comet3d
did not allow specifying colors with colors names.nicholschart
plotted nothing. The default frame color was a flashy cyan. The position of gain labels could be puzzling. It was not possible to specify colors by their names. Postprocessing the frames and the set of labels was not easy.a .*. b
failed when a
or b
or both are hypermatrices, with one or both being polynomials or rationals.repmat
was slow. Its code did not use kron
and was complex.[]
and its non-convertibility were poorly documented.lucene 4.10
in Debian.scatter
and scatter3d
failed when specifying a single data point.set
documentation page needed to be overhauled.factorial
could be used up to only n=170
.unique
was not able to consider all Nan values as the same value. A uniqueNan
option now allows it.%ODEOPTIONS(1)=2
didn't work with solvers 'rk' and 'rkf'edit
did not accept a line number as text, as with edit linspace 21
.det(sparse([],[]))
yielded an error.unique
was not able to return distinct values in their original order, without sorting them. A keepOrder
option now allows it.with_tk
was a duplicate of with_module('tclsci')
. It is removed.save(filename)
saved all predefined Scilab constants %e %pi etc.. (regression)loadmatfile
could not return variables in a structure instead of into the calling environment.A\B
was not faster when A
is square and triangular.%nan
indices crashed Scilab.intersect
did not support complex numbers.setdiff
was wrong with complex numbers.compatibility_functions
module should be merged in the m2sci
one.sylm(a,b)
yielded an error when degree(a)==0 or degree(b)==0.diophant(0,0,m)
, diophant([p 0],q)
, diophant([0 p],q)
with m<>0 and p>q were wrong. There was no flag for cases with an infinite number of solutions. When there is no solution, some values were returned anyway, instead of []. In this case, the documented definition of the err value was dubious. Decimal numbers and integers were accepted, but not encoded integers. Inf and NaN input coefficients were not rejected.fac3d
and fac3d1
were still in Scilab 6.0 despite they were tagged obsolete 14 years ago in Scilab 4.1gsort
could not sort completely dense matrices of complex numbers.grand(1,"prm",m)
yielded an unsqueezed size([size(m) 1]) hypermatrixoverloadname
internal macro defined in CACSD was a duplicate of typeof(,"overload")
. It is removed.scatter3
function name was an unfounded naming exception. It had to be renamed scatter3d
.scifunc_block_m
block: any <
in the expression was not displayed on the block's icon.^ hat
page wrongly indicated that ^
applied to a rectangular matrix not being a vector is done element-wise.xlabel
, ylabel
, zlabel
, and title
needed to be upgraded.EXPRESSION
block was more expected in the Mathematical palette.plot(x,y)
did not accept y as encoded integers.setdiff(1,[])
was [] instead of 1
. setdiff(a,[],..)
was not enough tested.msprintf("%d", %nan)
did not return Nanwavread(..,'info')
had a mistake. The wavread
page deserved some improvements.writewav
page in English said that input data are one column per channel, instead of one row per channel. In addition, in case of writing error, savewave
kept the output file open and locked.EXPRESSION
, CLR
and DLR
Xcos blocks did not (always) correctly display multicharacter exponents in expressions displayed in their icons.wavread
kept the wav file open and locked when returning on errors. It weakly managed the input file name. It claimed for invalid data formats instead of unsupported ones, with poor information about the current format vs the supported ones. Several error messages referred to a wrong function.group
regressed in 5.5.2 due to a too intrusive fix.mfile2sci
yielded an unsuitable warning when converting atan
.mfile2sci
converted acoth
using atanh
and yielding a wrong warning message.intdec
example was biased and not robust when changing sampling frequencies.colorbar(umin, umax)
did not work after plot3d2
.[struct() struct()]
crashed Scilab.x.a=1; x(:)=[]
x.a was an empty list.intg(a,b,f)
called f(x) with x outside [a,b].polarplot(x,Z)
yielded an error when x is a vector and Z a matrix.tand([-90 90])
answered [Nan Nan] instead of [-Inf, Inf]. cotd([-90 90])
answered [Nan Nan] instead of [0 0]. 1 ./cosd([-90 90])
answered [Inf -Inf] instead of [Inf Inf].atanh
, neither the documentation pages nor the m2sci
converter was up to date.intdec(intdec(x, r), 1/r)
was most often different from length(x).w=ssrand(2,3,4)
, []+w
, []-w
, w+[]
and w-[]
yielded an "operation +/- []" warning.plot(,"color",c)
no longer supported standard abbreviated color names c like "k" for black.tbx_make
did not allow easily to force building all toolbox sections without the toolbox builder (if any). tbx_make(Dir,"*")
now does it.tbx_make(Dir,'localization')
did not update .mo
files from .po
.prettyprint(complex(1,%nan))
omitted the "+" in 1 + Nani
. Documentation was also improved.prettyprint
did not support input encoded integers.prettyprint
was broken for cells.part("",$)
and part("",$-1:$+2)
yielded an error instead of returning "" and " ".prettyprint
did not allow to export of objects into HTML.x=1:1e10
freezed Scilab.prbs_a
was poor and unclear.[]
.coth
was more than twice slower than 1./tanh()
. tanh
and coth
did not accept sparse-encoded input.lstcat
could not concatenate input lists with mixed objects of types>10 like 1:$, sin, sind, struct, cells, tlists or mlists. In addition, it was slow for very long inputs lists.assert_checkequal
did not support properly or at all Nan and void in lists, Nan in sparse, implicit lists, macros, libraries, built-in functions, graphical handles. For input arrays or lists of matching typeof and sizes, the failure message displayed neither the index nor the values of the first mismatching elements.isglobal
was not supporting a non-scalar array of strings as input.%s <> (1+%s)
returned %F.tree_show
was broken cells within containers.tree_show
void components were displayed as non-empty.sci2exp({})
result could not be executed.tree_show
needs improvements.uiDumpTree()
interpreted "\n" "\r" "\t" sequences in contents as special ones.base2dec()
did not detect invalid numbers.playsnd
on Windows for a long sound, it was not possible to stop it.playsnd
could not be run in a non-modal (asynchronous) way on Linux and MacOS.auread
and auwrite
kept the sound file open and locked when returning on errors. They poorly handled the default .au sound file extension.playsnd
could not directly accept an audio file and could not repeat the input sound.clc(n)
cleared n+1 lines instead of n>0. Thus, it was not possible to clear only one line.integrate
and intg
default absolute tolerances atol was no longer the same. integrate
's default relative tolerance rtol was not the same in the case of 3 or 4 input arguments.setPreferencesValue
is a general usage function and deserved to be renamed xmlSetValues
.fullpath
did not support symbolic links in pathss
, s([])
returned []
instead of sparse([])
.flipdim(hypermat,dim,sb)
yielded wrong results for dim<3 and sb>1, and yielded an error for dim>2.ppol
changed values of the third input variable.noisegen()
and prbs_a()
deserved to be moved to the elementary_functions module, gathered with rand()
and grand()
in a new elementarymatrices/random
help subsection.prbs_a()
did not comply with the requested number of switches. The biased number of actual switches was unpredictable, preventing to manage its statistical distribution. The probability of the initial state was biased. For instance, prbs_a(n,0) always returned ones(1,n).noisegen
is very poor. It is tagged as obsolete and will be removed from Scilab 6.1.x.test_run
always failed.libraryinfo
yielded 0x0 matrix of strings for libs without any macro.sci2exp
yielded an error for any input macro without output argument.mfile2sci
yielded an error on a(end)
standing for a($)
(Scilab 6 regression).zpk2tf
and zpk2ss
examples yielded an error.for i=1:$, end
crashed Scilab.grand
causes a freeze after several consecutive calls when using the default base generator.uicontrol.units = "normalized"
property was not described.mfile2sci
badly converted the colon :
into mtlb(:)
EXPRESSION
, CLR
, and DLR
Xcos blocks sometimes displayed multiplied terms ambiguously in their icons.WSCI
was not defined as an environment variable and could not be used as %WSCI%
in commands sent with host
or unix_*
.bode
and nyquist
inline demos did not clear and reset the current axes where to draw, which could yield an error.help scilab
page were misleading.MSWin>scilab --help
missed displaying some options like -args..
, -noatomsautoload
, etc.colorbar
did not support $
in colminmax
, standing for the number of colors in the current colormap.loadmatfile
could not read Octave native text data files.perms
could freeze the whole computer. It could not ignore duplicate permutations.gsort
could not sort booleans.isvector
was broken for sparse matrices.blockdiag
implemented to replace sysdiag
, improved and extended to strings.*
and .*
multiplications involving a sparse boolean and a double, or involving 2 booleans, were not implemented.nnz
was not possible (regression).warning
documentation were not up-to-date.loadmatfile
was never able to automatically detect the input data format.spzeros(0,n)
and spzeros(n,0)
were different from sparse(0,0)
.calendar
had no formatted display mode.fsolve(x0, fun, tol)
no longer took tol
into account.cn
, dn
, ns
, nc
and nd
Jacobi elliptic functions were not available.hallchart
had bugs and a poor rendering.graypolarplot
, colorbar
displayed an empty ungraduated color bar.log10(x)
had wrong dimensions when x
is a hypermatrix.dockable="off"
and closerequestfcn
on figures crached Scilab.conj(sparse(x))
was complex when x is real.mgetl
could not read single line data which is greater than ~260,000 characters.tree_show
crashed for an input Xcos block.matrix(sparse([]),[0 0])
yielded []
instead of sparse([])
.esb=sparse([%t %f]); esb(1,:)=[];
, size(esb)
answered [0 2]
instead of [0 0]
.