path: root/scilab/modules
AgeCommit message (Collapse)AuthorFilesLines
2021-07-15Merge remote-tracking branch 'origin/6.1'HEADmasterClément David1691-64889/+58849
Change-Id: I5d26fc380a28efe0bb6d0096fe9684b274b55bfe
2021-06-02* Bug 16601 fixed: libmatio >= 1.5.18 was not supportedmottelet1-2/+10 Change-Id: I1630a353a0ac46681334ebd1512b71eea4935cb6
2021-06-02ac_aux_files includes compile script depending on autotools versionmottelet1-0/+1
Change-Id: Icde0c1202e7c2833d5a140bd898cca0315feefab
2021-06-01[core] make getversion() aware of arm64 architecturemottelet1-10/+27
"arm64" has been selected as it is more widespread than the Linux-only "aarch64" name. Only time will tell if this choice was good. This commit also flatten the #ifdef/#endif architecture selection and clarify the possible arches on Windows or macOS/Linux. Change-Id: I207f7e80de89404d732207fcd9bcb688bf1545c3
2021-05-28* Bugs 16438 16685: asciimat(text) fixed + various lengths + UTF8Samuel GOUGEON11-282/+829
asciimat() proposed page (PDF): : Support to strings of distinct lengths added. Support to strings including UTF8 extended characters added. : asciimat(['ab';'';'ab']) result was wrongly shaped. asciimat(['a';'';'b']) yielded an error. asciimat(stringHypermat) squeezed dim#2 of the result and so did not cope with Matlab/Octave's behavior. test_run string asciimat test_run string bug_14976 test_run statistics histc To keep track of its files changes, asciimat() will be moved in [m2sci] only later. In addition, an option could be implemented later, to make asciimat(text) fully working in an elementwise way (as first proposed @ ) Change-Id: I3183fc3d05491066816034802e8f09645261d76e
2021-05-26dotdiv fixedCedric Delamarre3-14/+56
* restore overload for dotdiv between eye() and int * template fixed for linux See also Change-Id: Ie4f12cde19a9d6711e7233ef4cc3c1f2a17a04f7
2021-05-26add function to get scilab version as string and revisionAntoine ELIAS2-1/+25
Change-Id: Ide9b3758286db1876116050aa21a816a9e68f064
2021-05-20* Bug 16664 fixed: diag(spzeros(2,2)) warned for Operation - []Samuel GOUGEON2-2/+49 Test: diag(spzeros(2,2)) // Must return without warning --> diag(spzeros(2,2)) ans = ( 2, 1)zero sparse matrix Change-Id: I3a55d6d2108b19e5f1cbadfcaaf46856760b20f8
2021-05-18* Bug 15330 fixed: spec.tst was crashing on LinuxClément DAVID2-3/+16 After lapack source code read, zgeev.f need rwork storage for detecting its work sizes. Other memory leaks have also been fixed in this commit. Change-Id: I8c90ce927caea264def831a484ab7a2173c3a46a
2021-05-17[xcos] OpAmp icon was too bigSamuel GOUGEON4-1/+2
No need to have it so big and most often resize it: Change-Id: I09f6ea635e8c29e5231d8a52e2cc00fc3e1f2852
2021-05-17move test file after c296e494a846Cedric Delamarre1-0/+39
Change-Id: I4a1cf09d00d5fa7d0061c0d3ae2de31bb62f4243
2021-05-07* Bug 16540 fixed: implemented snapToTicks spinner propertymottelet1-9/+19 Change-Id: I352368987e084556bd9d8ab90c485abf3adf6896
2021-05-03* Bug 16683 fixed [m2sci] fix & improvementsSamuel GOUGEON200-7710/+9141 1) Extend the set of supported (Scilab) internal data types, without which some bugs can't be fixed, and improving or extending supported conversions won't be possible: a) Missing vtype=Function added, with property Macro|Builtin|? b) Missing vtype=Polynomial added, with property Real|Complex|? c) Missing properties (in addition to Unknown) added, for existing vtypes: Int: : "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64" Handle: "Figure", "Axes". String: String, Char (to distinguish "string" from 'char' (Matlab>2018). Octave has only char). This is required before implementing the parsing of "strings" in concurrence to to 'chars'. Boolean: - The default property is now Boolean instead of Real (was misleading). - New property value: Sparse. (Currently, Sparse boolean are not supported). d) Void: Removed. this vtype defined in m2sci() was used nowhere in the whole m2sci. BTW, not sure that there is a single way in Matlab/Octave to get a void element. e) Type(), m2sci() and m2scideclare() upgraded accordingly, to manage all new vtypes and properties. 2) Funcall(): the LHS argin is now optional (default = list(), to which it had often be set. For some known function names frequently used in sci_funs conversion functions, it is automatically initialized accordingly. 3) Operation(): the out argout is now optional, with default = list(). 4) Conversions TO FIX: a) `a=1, b=2` was converted into `a = 1b = 2`, yielding a syntax error. b) `['abc';'def']` : the result's property is now Char instead of Unknown. c) The concatenation result now reflects concatenation precedence rules to set its vtype and property. There were formerly set to the type of the last operand. d) Function handles `@fun` were converted into a char 'fun' instead of into a function-handle object. ishandle(@sin) was converted into type("sin")==9 instead of type(sin)==9: Fixed. e) `full(Boolean)` was returning `full(bool2s(Boolean))`, instead of the same. `full(BooleanSparse)` conversion was yielding an error in convert2double: Sparse boolean were never supported. `full(String)` was returning `mtlb_full(String)` instead of the same. f) `mtlb_full()` is removed. It was useless. g) `sparse([true false])` conversion was yielding a `convert2double` error, instead of `sparse([%t,%f])`. h) `isa('logical')` was ignoring sparse booleans. `isa('function_handle')` was ignoring builtins. i) `isvector(Hypermat)` conversion was wrong (making isvector(rand(1,2,3)) returning %T). j) `isreal` conversion was wrongly using eps=0: isreal(complex(1,0)) returns false with Matlab/Octave. k) `[1 2]==1` result was having property=Real, instead of Boolean. m) `Cste(["abc" "de" ; "fg" "hij"])` was initializing dims=list(2,10) instead of list(2,5). n) `rem(a,b)` conversion was using a formula instead of `modulo(a,b)`. 5) Conversions IMPROVED: a) 2*3*4*5 and 2*3/4 was converted into ((2*3)*4)*5 and (2*3)/4, instead of staying unchanged. b) `a = true || false` was converted into `a = %t;if ~%t then a = %f;end`, instead of staying the same. c) `a = true && false` was converted into `a = %f;if %t then a = %f;end;`, instead of staying the same. d) `a = 1; b = 2` was converted into `a = 1;b = 2` without space separating instructions. e) `for..,end;` was terminated with a parasitic ";" sticking to `end` (instruction2code). 6) Conversions COMPLETED: a) isa(x, 'integer') and isa(x, 'float') were not converted. b) isreal() was not implemented for Sparse, Boolean Sparse, Handle, Struct, Cell, and Function types. 7) MISC TO FIX: a) In case of missing sci_function, the whole database of existing Matlab functions (and related toolboxes) was loaded through mtlbtoolfun() each time that such a case is met. This was slow (1.12s x n). Now the database is loaded only once, at the first need, and then stored as global for direct access. New timing: (0.3ms x n). b) Codes for ||, and && operators were missing in sciparam() 8) Documentation a) m2scideclare() can be very helpful to check the vtype/property/size of a variable, for instance in tests. This was deserving to be documented. b) The table of vtypes is now in the Type() page, instead of the m2scideclare one. In addition, the list of supported properties is now given in the same table, for each vtype. c) Operation(): the fields of the result were not explicitly named. 9) Conversions ADDED: deal(), gca(), gcf(), iscolumn(), isrow(), ismatrix() 10) Code style improved. Change-Id: Ic1b24442780a2c94e500bd6b2d31b587dab0f9e5
2021-05-03allow unsafe string for ocaml 8.06 and moreCedric Delamarre78-2/+158
Change-Id: I211bdd07053f11bf8b3889e2b34e9d370f7d1f3d
2021-05-03%chars: missing gamma. More chars. %chars in scinotesSamuel GOUGEON4-10/+16
Change-Id: Ibcacb5d5313602c390ec3e25146976d79e2f3b3b
2021-04-30core: remove getwd alias for getcwdClément DAVID5-21/+10
Needed to pass configure and make on Fedora 34. It also update previously modified files with the correct automake version. Change-Id: Ie29b1acc7e85ed6c054c13a1ee2188a5149b6b07
2021-04-29* Bug 16677 fixed: offline, atomsInstall() was flashing the consoleSamuel GOUGEON2-3/+9 // Interactive test: om = atomsGetConfig("offline"); atomsSetConfig offline True atomsInstall(WSCI+"\modules\atoms\tests\unit_tests\", "user"); // The installation must succeed without flashing the console atomsRemove toolbox_7V6 atomsSetConfig("offline", om); Change-Id: I68e68673bc1919790062aa5fed345ca86698760d
2021-04-29[doc][equadif + polynomials] Unfold synopses + fix + improvementsSamuel GOUGEON161-5293/+4137
+ some <screen> added + examples code style improved + non en_US sometimes desynchronized: fixed + some erroneous or missing required info added: detr() is first applicable to rationals, not only to polynomials. determ() is NOT restricted to real polynomials. polfact() is restricted to real polynomials. roots(): default="f" not "e" sfact() accepts only square matrices. + some missing headers added (in fr versions) Change-Id: Ia7713236af0734dc800f7f6ba7c29dbbe141962e
2021-04-29%p_s_r, %r_s_p, %r_a_p, %r_x_p: simplify duplicate codesSamuel GOUGEON5-125/+16
Change-Id: I7a3b6ad7a113a88ba23da3fe8e978618f178b14f
2021-04-29Fix %r_simp() about preliminary cleaningSamuel GOUGEON1-1/+1
Discussion @ 1) clean(n) and clean(d) formerly introduced (by me) are not correct because they implicitly apply some default absolute threshold. Such an absolute threshold is not relevant and even erroneous. Indeed, a numerator with all coefficients very small like 1e-100 + 1e-110*%z *can* be meaningful. By the way, in a rational, (1e-100 + 1e-110*%z)/%z and (1+1e-10*%z)/(1e100*%z) are equivalent. So if clean() is used, it should be so with a 0 absolute threshold. 2) Now for the considered aim, here clean(n,0,reltol) would be useless: At least one non-zero coefficient will always survive to it, with no way to yield a constant null polynomial. This is why these clean() must be removed. This does not cancel the fix against the bug 13893, but makes the fix stricter. If we want to go forward about simplification with some relevant cleaning, this should be done *when operating* (+,-,.*,./) rationals, while operands are still known, *not after* based only on the result. Indeed, cleaning needs to be based on the order of magnitude of *operands coefficients*, compared to the result ones. On this respect, is a good preliminary that could avoid later implementing N times the same improvements. Change-Id: I6fef298bc41b6dd1da45dac3aeaa80dda0b798ef
2021-04-28[doc][core] Unfold synopses (end, after d9e34a)Samuel GOUGEON85-629/+1262
+ other small fix or improvements Change-Id: I32aeab85504634bbfa2c96772fa078490815d797
2021-04-28* Bug 16592 fixed: | and & between complex and boolean or []Samuel GOUGEON9-314/+125 Change-Id: I6e40de20fcaa68e293c3a36837bca1fa85eaf81b
2021-04-28Revert "* Bug 16633: now Listbox callback can be triggered by item click"Stéphane MOTTELET1-11/+1
There are redundant callbacks, which are unavoidable. This reverts commit bea89839ef0b59f42eb320f5da8f45c6a97435ef. Change-Id: I5bc1d93407c6f382d2c686df4df462355c5b19c0
2021-04-28move unwrap() => [signal_processing]Samuel GOUGEON8-2/+2
together with detrend() and so. Its most relevant place. Change-Id: Ib96eb5f6337f857bf6b558c5d5c864dc10285150
2021-04-27* Bug 14567 fixed [Scinotes]: Restore the TODO featureSamuel GOUGEON2-496/+518 Built after removal: 1st trial: Not tested Change-Id: I51188dcbed1106f6e62d3f43db54afcefd97c248
2021-04-27[core] leave file open when calling hash with file argumentmottelet3-4/+8
Change-Id: I482dafe7e076a1a33c457b04e6146cc4b758f61f
2021-04-27* Bug 16284 fixed: typename() updated for Scilab 6 (11 'm', 'mc'=>'function')Samuel GOUGEON1-11/+11 Change-Id: Ie1b66431b1487ccaaaa9cb066abc73b14426e40a
2021-04-27core: set SCI_VERSION_REVISION and SCI_VERSION_TIMESTAMP with default valuesClément David2-6/+8
Change-Id: I471aa52e051995778701fc83fdd82c5bafca09de
2021-04-27* Bug 16679 fixed: get_function_path('acosh') yielded an errorSamuel GOUGEON2-1/+27 Change-Id: Ife5e2e8bffbe19a406112171ce73ea2639a1114f
2021-04-26elementary_functions: fix rand() with a single key letter after 02f1f9cdClément David3-8/+33
Change-Id: I7a57b563875025b366cc5c96df93706356b155a3
2021-04-26sparse: make tests passClément David4-25/+7
Change-Id: I6cea469b850c8f1e8bbb8ba4c236fe74b8cee457
2021-04-26Bug #8761 fixed: Xcos masked superblocks had invalid namesClément David4-26/+34
Change-Id: I82c5d0481c832dbdeb4bf53eae95833050351687
2021-04-26Linux build: fix doc building with javac 11Clément DAVID2-16/+17
Change-Id: I19b42fc1e045c159a15a494ff3415a5a763ed9e7
2021-04-26Update jflex to 1.8.2Clément DAVID18-21510/+8752
This might be done on a minor release as: * the library has no runtime. * it is API/lang compatible Change-Id: I19c62d0b75046bd36922f23815d1343b547acf14
2021-04-26Xcos: fix opar integers encoding issuesClément DAVID3-10/+102
Change-Id: I375d1c270a09a63ec5a6ca8225e8ea670ddf3380
2021-04-12[doc] gettext printf_conversion mprintf msprintf mfprintf pages updated & fixedSamuel GOUGEON12-1090/+1622
* update for numbered placeholders "%n$" * update for boolean input * printf_conversion fixed for many issues (see changes), and a lot improved. I think that when processing the bug 10 years ago, the uploaded XML were not the right ones: there were so many issues left... (or i was more lazy :-/ ) Bundled PDF: Change-Id: I755f6fa53140e3a357a55188d16ff36288c1fc8f
2021-04-12* Bug 16661 fixed: now spzeros and sparse yield correct error messagesCedric Delamarre3-7/+62
Messages about dimensions limitations are not explicit, see . It also: * restores big sparse features after 5b1796f8 * change error to warning when creating a sparse of size > INT_MAX Change-Id: I750ba1a5b2ba4e2d36876df75fb81fa80e63cfa3
2021-04-12* Bug 16627: importgui => uiSpreadsheet. Internals => private. [fileio] => ↵Samuel GOUGEON10-462/+531
[ui_data] Change-Id: Ied3bec6e52cd343fa3f64d22d0a2824027057aec
2021-04-09* Bug 16665 fixed: help('echo') can redirect to help('mode') on preferencesSamuel GOUGEON5-4/+299 Interactive test: // Preference unchecked (default): help echo // => list of possible matching pages displayed on the left preferences // General/Documentation : check "Redirect Matlab terms to closest Scilab equivalent" // validate and quit help echo // => display the mode() page help cot // => display the cotg() page. etc Change-Id: I5129c130592fefb99180eb44d8abe245a00db7c0
2021-04-08* Bug 15481 fixed: scatter() & scatter3d()Samuel GOUGEON27-1264/+1387 Moved from master @ A short list of fixed issues: USAGES * scatter() nor scatter3d() could display a single data point (reported bug). * The type of X, Y, Z was not checked, leading to weird error messages. * X, Y (and Z) should have had the same shape, while only the same length is actually required. * The properties names were case-sensitive. * Colors could not be scaled to data < %eps. * Colors could not be specified by their #RRGGBB code nor their index. * The handle of polylines was returned even when not requested. * The example cleared the current figure instead of the current axes. INTERNAL a) Warnings were generated, instead of errors. b) Warnings messages were not standard. c) Warning messages were not localized. d) The same colorIndex name was used to name a function and a regular variable. DOCUMENTATION * The thickness option is for all markers. It was not indicated. * Examples: scatter(): . 2 clouds of points : images did not match the code (negative coord impossible from rand()) . First spiral: the image did not match with the example code: The code does not vary the size of dots. scatter3d(): last example: . p refered to nothing. . color() was called with RGB in [0,1] instead of in [0,255] => dark * UNIT TESTS: More than 50+50 tests added. * FEATURES ADDED: + colors identified with "#RRGGBB" or indices + options "smallOnTop" and "datatips" (documented only for scatter()) Change-Id: Id26797f8e713d7e3078031c8fc4d1db7c529606c
2021-04-08Sparse: insertion in complex sparse fixed and leak fixedCedric Delamarre3-994/+7
Mat = sprand(1000, 1000, 0.01) + %i * sprand(1000, 1000, 0.01); ind = [1 2 3]; Mat(ind, ind) = 0; test_run ast sparse test_run ast sparse mode_nwni_profiling Change-Id: Iff07fdfa695fd35cb4e1c168bcabec038bd28c2a
2021-04-08[doc][m2sci_equivalents] A bit of cleaning and updateSamuel GOUGEON285-6985/+1405
* many misc. fixes/updates (noticeably after Scilab 5=>6) * delete all pages that tell nothing more than Matlab Scilab theFun theFun * deactivate non-runnable <programlisting> * explicits more list of compared syntaxes After merging [m2sci_equivalent] separate module into [m2sci], This is a second step to improve m2sci documentation. Next one could be to merge corresponding m2sci_equivalent and mtlb_# pairs of pages. Change-Id: I0677117d98108982d354f2be6d8aa1175bdb2aba
2021-04-07[graphics] Axe default x|y|zlabels & title font sizes better tunedClément David4-337/+26
Discussed @ Change-Id: I60ad48f5461716a0e5f49c65b5c69e110465b2b4
2021-04-02[graphics] better logarithmic plotsmottelet13-0/+1225
Change-Id: I1356ffe8fa3b9503bd80959ad4495ec31430cfbe
2021-04-02[doc] mv ru_RU/library.xml into [core] after 23e5595Samuel GOUGEON1-0/+0
Change-Id: I81297967a1af7446eb360db09991844b2c82e6eb
2021-04-02[doc] restore (and update) en_US plot.xml after f88f57fSamuel GOUGEON1-136/+135
after Change-Id: Ibebbd246bcb2be2a9f2f36a36223c9d86f523b41
2021-04-02[core] allow scilab to use more secure hash functionsmottelet31-608/+3102 Introducing hash() function, see proposed help page at Change-Id: I825a4361ae81530e1257f1d9187c76ceee285729
2021-04-01* Bug 10964 fixed: now Scinotes can execute the current file in NW modemottelet10-25/+416 This patch also allows the evaluation of a selection. Change-Id: I14c3b519ec58ed9cd22c713f990a8ce6c2179f01
2021-04-01* Bug #14397 fixed - mgeti did not read u-int64 > 2^52Samuel GOUGEON14-1281/+1201 Change-Id: I4115f4564df90a5cbf408b8e1a3b1667ee981be3
2021-04-01[fileio] allow mopen and mclose to handle multiple filesmottelet6-101/+146
It would allow files = listfiles("*.sce"); hash(mopen(files),"sha256") if is merged, as hash() already handles arrays of file descriptors. Change-Id: I03e0224f66446f893336ccbe7569e01e460da119