0.1.12 (2017-12-24)
Features:
- MPI interface for Nelson
- MPI_Initialized : Indicates whether MPI_Init has been called.
- MPI_Finalize : Terminates MPI execution environment.
- MPI_Init : Initialize the MPI execution environment.
- MPI_Get_processor_name : Gets the name of the processor.
- MPI_Get_version : Return the version number of MPI.
- MPI_Get_library_version : Return the version number of MPI library.
- MPI_Recv : Blocking receive for a message.
- MPI_Send : Performs a blocking send.
- MPI_Barrier : Blocks until all processes in the communicator have reached this routine.
- MPI_Bcast : Broadcasts a message from the process with rank "root" to all other processes of the communicator.
- MPI_Reduce : Reduces values on all processes to a single value.
- MPI_Allreduce : Combines values from all processes and distributes the result back to all processes.
- MPI_Probe : Blocking test for a message.
- MPI_Iprobe : Nonblocking test for a message.
- MPI_Comm_object : Creates MPI_Comm object.
- MPI_Comm_disp : displays MPI_Comm object.
- MPI_Comm_get_name : Return the print name from the communicator.
- MPI_Comm_delete : delete MPI_Comm object in Nelson environment.
- MPI_Comm_used : get used MPI_Comm objects in Nelson environment.
- MPI_Comm_isvalid : check MPI_Comm handle validity.
- MPI_Comm_split : Creates new communicators based on colors and keys.
- MPI_Comm_rank : Determines the rank of the calling process in the communicator.
- MPI_Comm_size : Determines the size of the group associated with a communicator.
- mpiexec : Run an MPI script.
Bug Fixes:
#85: paste in text editor should be limited to the text only.
#84: CTRL + A action in text editor.
#83: save action in text editor do a popup to reload file.
#82: home, end, page down, page up keys shorcut not implement in editor.
Compilation:
- Update VS 2017 solution to VS 2017 15.5.1
0.1.11 alpha (2017-11-25)
Features:
-
#75: Intel Math Kernel Library can be used to replace OpenBLAS and FFTW on Windows.
-
#72: Add a script to check missing help files.
-
add an embedded script editor for Nelson:
- 'edit' builtin added.
- syntax colorization.
- text completion.
- smart indentation.
- drag & drop files.
- files modification notified.
- files association: .nls .nlf
-
add 'smartindent' builtin to indent a .nls or .nlf files.
-
drag & drop .nls (run), .nlf (open with editor) in gui main window.
Bug Fixes:
#80: code editor: keys up, down, left, right behavior
#78: [p,f,e]=fileparts('c:/') did not return the good result
Compilation:
- BOOST 1.65.1 on Windows
0.1.10 alpha (2017-10-29)
Features:
-
SLICOT module:
-
SLICOT (Subroutine Library in Systems and Control Theory) builtin generated with NIG.
-
slicot_ab01od : Staircase form for multi-input systems using orthogonal state and input transformations.
-
slicot_ab04md : Discrete-time / continuous-time systems conversion by a bilinear transformation.
-
slicot_ab07nd : Inverse of a given linear system.
-
slicot_ab08nd : Construction of a regular pencil for a given system such that its generalized eigenvalues are invariant zeros of the system.
-
slicot_ag08bd : Zeros and Kronecker structure of a descriptor system pencil.
-
slicot_mb02md : Solution of Total Least-Squares problem using a SVD approach.
-
slicot_mb03od : Matrix rank determination by incremental condition estimation.
-
slicot_mb03pd : Matrix rank determination by incremental condition estimation (row pivoting).
-
slicot_mb03rd : Reduction of a real Schur form matrix to a block-diagonal form.
-
slicot_mb04gd : RQ factorization with row pivoting of a matrix.
-
slicot_mb04md : Balancing a general real matrix.
-
slicot_mb05od : Matrix exponential for a real matrix, with accuracy estimate.
-
slicot_mc01td : Checking stability of a given real polynomial.
-
slicot_sb01bd : Pole assignment for a given matrix pair (A,B).
-
slicot_sb02od : Solution of continuous- or discrete-time algebraic Riccati equations (generalized Schur vectors method).
-
slicot_sb03md : Solution of continuous- or discrete-time Lyapunov equations and separation estimation.
-
slicot_sb03od : Solution of stable continuous- or discrete-time Lyapunov equations (Cholesky factor).
-
slicot_sb04md : Solution of continuous-time Sylvester equations (Hessenberg-Schur method).
-
slicot_sb04qd : Solution of discrete-time Sylvester equations (Hessenberg-Schur method).
-
slicot_sb10jd : Converting a descriptor state-space system into regular state-space form.
-
slicot_sg02ad : Solution of continuous- or discrete-time algebraic Riccati equations for descriptor systems.
-
slicot_tb01id : Balancing a system matrix corresponding to a triplet (A, B, C).
-
slicot_tg01ad : Balancing the matrices of the system pencil corresponding to a descriptor triple (A-lambda E, B, C).
-
-
Nelson Interface Generator (NIG) allows to generate Nelson builtin from C/Fortran code.
-
add 'isfield' function to check existence of a fieldname in a struct.
-
add 'exist' function to check existence of variable, builtin, function, file or directory.
-
add 'isvar' function to check existence of variable.
-
add 'ismacro' function to check existence of macro.
-
add 'isbuiltin' function to check existence of builtin.
-
add 'f2c' function to convert fortran code to C from Nelson
-
optimize 'vertcat' and 'horzcat' builtin (remove duplicated code).
-
history file saved on your cloud drive if 'OneDrive' environment variable defined.
Bug Fixes:
#74: A=[]; A(end + 1) = 8 failed.
#71: unix & dos did not have help files.
#68: display of nd array of integer were not defined.
#14: error(error_struct) throws an error using the fields of error_struct.
Compilation:
-
SLICOT used for control functions.
-
add Fortran 2 C converter library (based on libf2c forked).
0.1.9 alpha (2017-09-02)
Features:
-
add 'fftshift' and 'ifftshift' functions to shift the zero-frequency component to the center of the spectrum.
-
add 'circshift' function.
-
colon as string managed for deletion, extraction and insertion.
-
add 'rem' builtin. Remainder after division.
-
add 'abs' builtin. Absolute value.
-
add 'repmat' builtin. Replicates and tiles an array.
-
add 'mod' builtin. Modulus after division.
-
add 'maxNumCompThreads' builtin. Set/Get maximum number of computional threads.
Compilation:
-
Nelson Visual Studio solution updated to use 2017 version.
-
On Windows, all dependencies updated to be compatible with VS 2017 runtime.
-
more 50 warnings fixed (Thanks to PVS-Studio analyzer and also Cppcheck).
Bug Fixes:
#60: Y = complex(rand(500), rand(500)) crashed Nelson.
#58: Manages ICU4C 59.1 on macos X.
0.1.8 alpha (2017-08-15)
Features:
-
FFTW module:
- fft, ifft, fftn, ifftn functions based on FFTW library.
- fftw function to manage FFTW wisdom data.
-
prod : product of array elements builtin added.
-
conj : complex conjugate builtin added.
-
transpose and complex conjugate transpose manage all types available in Nelson.
-
APPVEYOR updated to build windows 32 & 64 bits versions.
0.1.7 alpha (2017-07-16)
Features:
-
On Windows, Nelson can read/write all excel 97-2016 file formats (Excel required) based on COM:
- COM_xlsread : read a xls/xlsx file.
- COM_xlswrite : write a xls/xlsx file.
- COM_xlsfinfo : get information about xls/xlsx file.
-
Component Object Model (COM) client interface: binary-interface standard for software components on Windows.
- actxcontrollist : get list all available control services installed on current Windows.
- actxserverlist : get list all available active X services installed on current Windows.
- actxGetRunningServer : get COM handle of an existing COM server.
- actxserver : creates a COM server.
- COM_used : get list of COM handle currently used in current Nelson's session.
- iscom : determines if it is a COM handle.
- overload on : class, delete, disp, fieldnames, get, set, invoke, ismethod, isprop, isvalid, methods.
- add COM handle.
- see examples in [modulepath('com_engine'), '/examples/'] directory.
-
Better management of varargout without output.
-
Add "<--EXCEL REQUIRED-->" tag managed by test engine.
Bug Fixes:
#53: COM_xlsread did not support path with dot '.'
#50: qml demos did not start on adv-cli mode.
0.1.6 alpha (2017-06-19)
Features:
-
The QML engine enables nelson programs to display and manipulate graphical content using Qt's QML framework.
qml_demos // for demonstrations
-
Qt 5.9 used on Windows binaries
-
add CONTRIBUTING.md , CODE_OF_CONDUCT.md and ROADMAP.md files
-
add 'heldlg', 'msgbox', 'errordlg', 'warndlg' functions based on QML.
-
add 'questdlg' function (Creates a question dialog box) based on QML.
-
add '==', '~=', 'isequal', 'isequaln' overload for handle and QObject.
-
add ishandle, isprop, ismethod, method, properties builtin.
-
add set, get, invoke, isvalid builtin used by handle objects.
-
extends clear function to call delete if 'TYPEHANDLE_clear' function is defined.
-
add handle object type.
-
gui module also loaded in advanced cli mode.
-
add 'sind', 'cosd', 'tand' functions.
-
add more output information in the result file of test_run function.
Bug Fixes:
#47: add isfinite builtin.
#43: rename getContentsAsWideString to getContentAsWideString.
#27: >= operator was not implemented.
0.1.5 alpha (2017-04-17)
Features:
- Optimize constructors allocation for eye, ones, Inf, NaN, rand, randn functions.
- Add 'issymmetric' function.
- Add 'svd' function.
- Add 'rcond' function.
Bug Fixes:
#41: test_makeref starts a new clear session to create a ref file.
#39: inv([0 0;i() 3]) did not return [Inf, Inf; Inf, Inf] on ARM platform.
#25: ndims added.
#24: isnan & isinf added.
0.1.4 alpha (2017-03-19)
Compilation:
LAPACKE used for linear algebra functions. On Windows, OpenBLAS used. On others platforms reference library LAPACKE used.
Features:
- Add 'isnan' function.
- Rework double and single matrix 2D display.
- Add 'trace' function.
- Add 'schur' function.
- Add 'inv' function.
- Add 'expm' function (single, double, sparse double managed).
- Rename 'string' type to 'char' type, 'string' type will be added later.
- Add 'dlmwrite' function.
- Add 'mat2str' function (sparse managed).
- Add 'str2double' function.
- Add 'cosm' function.
- which(function_name, '-all') without output argument display paths.
Bug Fixes:
#34: Windows installer did not copy module_skeleton help files at the good place.
#31: doc function was too slow (indexing at each restart).
#30: Search path order for functions was wrong.
0.1.3 alpha (2017-02-11)
Features:
- datevec updated to manage vectors, matrix.
- Add 'nnz', 'nzmax', 'numel' functions.
- Rework 'searchenv' to return a cell of strings.
- Update persistent variables behavior (clear functions).
- Add 'ceil', 'floor', 'round', 'fix' functions.
- Add sparse support for acos, asin, atan, cos, cosh, sin, sinh, tan, tanh.
- Add website and bug reports link in help menu.
Bug Fixes:
#28: Each public builtin have a help file.
#26: 7.853981633974482790D-01 was not correctly parsed.
#22: last output argument of 'IJV' did not return nzmax.
#19: rand & randn did not use Column-major order.
#17: 'locales' directory renamed as 'locale' (more standard).
#13: mldivide and mrdivide builtin were missing.
0.1.2 alpha (2017-01-01)
Bug Fixes:
#11: colon constructor failed with some special values.
#10: module_skeleton did not build/load.
#8: test_nargin & test_nargout failed in Windows binary version.
0.1.1 alpha (2016-12-30)
Bug Fixes:
#5: help browser did not work on some Windows
0.1.0 alpha (2016-12-28)
- Initial import in github of Nelson