Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
0.6.12 (2022-12-27)
Added
Graphics module:
First big step to do plot 2D and 3D with Nelson. Some features are missing and will come in next releases. Current version is usable and show plots possibilities of Nelson.
Do not hesitate to create features requests or bug reports. Contributions are welcome.
Implemented features:
figurecreates an figure window.claclears figure.axescreates cartesian axes.axisset axis limits and aspect ratios.claclears axes.zlimset or get z-axis limits.ylimset or get y-axis limits.xlimset or get x-axis limits.climset colormap limits.linecreates primitive line.plot2-D line plot.plot33-D line plot.rgbplotPlot colormap.subplotCreate axes in tiled positions.newplotPrepare to produce a new plot.semilogxSemilog plot (x-axis has log scale).semilogySemilog plot (y-axis has log scale).squiverQuiver or vector plot.surfcreates surface plot.textcreates text descriptions to data points.titleadds title.legendadds legend to axes.xlabelLabel x-axis.ylabelLabel y-axis.zlabelLabel z-axis.gridDisplay or hide axes grid lines.spyVisualize sparsity pattern of matrix.imagedisplays image from array.imagescdisplays image from array with scaled colors.cylindercreates cylinder.spherecreates sphere.closeclose one or more figures.gcfget current figure graphics object.gcaget current axes graphics object.grootreturn graphic root object.refreshredraws current figure.isholdget current hold state.holdretain current plot when adding new plots.viewCamera line of sigh.saveasSave figure to specific file format.copygraphicsCopy plot to clipboard.isValidGraphicsPropertycheck property name is valid for a graphics object type name.isprop,properties,isequal,eq,display,set,getfor Graphics Object type.isgraphicsCheck if it is an graphics object handles.colstyleParse color and style from string.is2DChecks if ax is a 2-D Polar or Cartesian axes.colorbarColorbar showing color scale.colormapView and set current colormap.- colormaps:
autumn: Autumn colormap array.gray: Gray colormap array.parula: Parula colormap array.spring: Spring colormap array.summer: Summer colormap array.winter: Winter colormap array.
░░ٌٌٌӇ░ٌٌٌƛ░ٌٌٌƤ░ٌٌٌƤ░ٌٌٌƳ ░ٌٌٌ░ٌٌٌƝ░ٌٌٌЄ░ٌٌٌƜ░ٌٌٌ░ٌٌٌ Ƴ░ٌٌٌЄ░ٌٌٌƛ░ٌٌٌƦ░ٌٌٌ!░
╚═════════ ೋღ❤ღೋ ═════════╝
0.6.11 (2022-11-25)
Added
-
normest2-norm estimate. -
logical operators
&,|,&&,||for sparses matrix managed. -
doxygen documentation generated by Github CI for each release.
-
--noaudioCLI argument disable audio (module) in Nelson. -
#783: Fedora 37 support.
-
an example to build mexFunction using Rust.
-
geometry module:
rotx: 3x3 transformation matrix for rotations around x-axisroty: 3x3 transformation matrix for rotations around y-axisrotz: 3x3 transformation matrix for rotations around z-axis
-
sponesreplaces non zero sparse matrix elements with ones. -
rot90faster for 2D matrix.
Changed
-
timeout
--timeoutCLI argument andsystemwith timeout return error code258on Windows and134others platforms. -
test_runcatchs error code about test aborted (timeout). -
exitdoes not allow value > 255 on Linux and MacOS. -
#776: internal dependencies between modules reworked.
-
Uses MKL or OpenBlas if detected on linux and MacOs (Nelson is faster on Linux and MacOs).
Fixed
-
basic terminal was closed immediately if stdin was null.
-
Github Actions CI warnings.
-
#778: ArchLinux Github CI was broken.
0.6.10 (2022-10-31)
Added
-
#750: Qt 6.4.0 support (win64 release embed Qt6.4.0).
-
#733: minimal build and optional installation on MacOs, Linux and Windows.
Fixed
-
#762: MacOs CI was broken (libomp no more detected).
-
#776: CodeQL Analyze was broken.
-
#739: special case with empty cell.
-
buildhelp did not return some errors.
Changed
-
#755: Boost 1.80 support (default on Windows)
-
#753: move from boost::filesystem to std::filesystem. (It should have no impact for users ...)
-
Path functions returns sensitive path on Windows.
cd ('c:/program files')returns true pathC:/Program Files. -
fileparts builtin updated to be more compatible.
-
normalizePath internal function reworked.
-
internal files functions reworked and factorized.
0.6.9 (2022-09-28)
Added
-
linear algebra module:
rref: Gauss-Jordan elimination.orth: Range space of a matrix.subspace: Angle between two subspaces.planerot: Givens plane rotation.condeig: Condition number with respect to eigenvalues.bandwidth: Lower and upper matrix bandwidth.isbanded: Determine if matrix is within specific bandwidth.
-
audio module:
sound: Convert matrix of signal data to sound and play it.soundsc: Scale data and play as sound.mu2lin: Convert audio data from mu-law to linear signal.lin2mu: Convert audio data from linear singal to mu-law.
-
elementary functions module:
toeplitz: Toeplitz matrix.hadamard: Hadamard matrix.wilkinson: Wilkinson's eigenvalue test matrix.vander: Vandermonde matrix.rosser: Classic symmetric eigenvalue test problem.nextpow2: Next higher power of 2.permute: Permute array dimensions.ipermute: Inverse permute array dimensions.rot90: Rotate array 90 degrees.
-
special functions module:
dot: Dot product.cross: Cross product.
-
string module:
isletter: Determine which characters are letters.
-
data analysis module:
cumsum: Cumulative sum.cumprod: Cumulative product.
Changed
-
#715: update
{fmt}to 9.1.0. -
Nelson uses
simdutflibrary to convert characters encoding faster. -
shorcuts
&&and||reworked. -
assign behavior with empty matrix.
-
#702: Ubuntu 18.04 CI removed on Github.
-
Remove definitively Appveyor CI.
-
C++ API:
getContentAsDoubleScalar,getContentAsSingleScalar,getContentAsInteger8Scalar, ... ,getContentAsInteger64Scalarcan check if it is an integer value. -
addgateway,removegateway,gatewayinfobuiltin moved inmodules_managermodule (reduces dependency)
Fixed
-
#722: MS MPI runtime v10.1.2.
-
#723: MacOS CI was broken.
-
#737: profiler failed with
sindexample. -
#739: special case with empty cell.
-
#741:
onesandzerosdo not manager logical as typename.
0.6.8 (2022-08-27)
Added
-
#573:
diffdifferences and discret derivatives. -
peaks: peaks function. -
parallel module:
fetchNext: Retrieve next unread outputs from FevalFuture array.afterAll: Run function after all functions finish running in the background.afterEach: Run function after each functions finish running in the background.
-
signal processing module:
hann: Hann window.hamming: Hamming window.bartlett: Bartlett window.blackman: Blackman window.sinc: sinc function.filter2: 2-D digital filter.fft2: Two-dimensional discrete Fourier Transform.
-
time functions:
weekday: Day of week.eomday: Last day of month.etime: Time elapsed between date vectors.date: Current date as character vector.timeit: Measure time required to run function.addtodate: Modify date number by field.
-
trigonometric functions:
rad2deg: Convert angle from radians to degrees.deg2rad: Convert angle from degrees to radians.cart2pol: Transforms Cartesian coordinates to polar or cylindrical.pol2cart: Transforms polar or cylindrical coordinates to Cartesian.cart2sph: Transforms Cartesian to spherical coordinates.sph2cart: Transform spherical coordinates to Cartesian.sech: Hyperbolic secant.secd: Secant of argument in degrees.sec: Secant of angle in radians.csch: Hyperbolic cosecant.cscd: Cosecant of argument in degrees.csc: Cosecant of argument in radians.coth: Hyperbolic cotangent.cot: Cotangent of argument in radians.cotd: Cotangent of argument in degrees.atand: Inverse tangent in degrees.atan2d: Four-quadrant inverse tangent in degrees.sinpi: Computes sin(X * pi) accurately.cospi: Computes cos(X * pi) accurately.asind: Inverse sine in degrees.asinh: Inverse hyperbolic sine.acosh: Inverse hyperbolic cosine.acosd: Inverse cosine in degrees.acoth: Inverse hyperbolic cotangent.acsc: Inverse cosecant in radians.acscd: Inverse cosecant in degrees.acsch: Inverse hyperbolic cosecant.asec: Inverse secant in radians.asecd: Inverse secant in degrees.asech: Inverse hyperbolic secant.acot: Inverse cotangent in radians.acotd: Inverse cotangent in degrees.
-
prettier is used to format .xml, .md files.
-
Code format (.xml, .md, c++) checker added to Github CI.
Changed
-
systembuiltin:- returns time execution
- timeout input argument can be set to kill process after n seconds.
-
#687: Uses BS thread pool 3.3.0.
-
Windows 32 bits threads support: due to threading limitations with MKL, openMP and others threads computation threads are limited to 4 threads on Windows 32 bits.
-
#683: MacOS Catalina removed on Github CI (no more officially supported).
-
Help chapter titles all start with a capital letter.
-
#771: Fedora 36 Github CI replaces Fedora 35 Github CI.
Fixed
- #689:
c = computerreturns an error. - #691: help generation crashs if copyright tag is empty.
- #35: datenum does not support vectorization.
or,anddo not manage matrix operator scalar case.
0.6.7 (2022-07-27)
Added
-
str2funcmanages anonymous function. -
Parallel functions (part 2):
cancelAll: Stop all functions running in the background.cancel: Stop function running in the background.wait: Wait for futures to be completed.Diaryproperty forFevalFutureobject.
-
CITATION.cff with human- and machine-readable citation information for software.
Changed
- localization files
.pot,.poupdated.
Fixed
- #679: uniformize path for includes and libraries.
0.6.6 (2022-06-27)
Added
-
Parallel functions (part 1):
parfeval: Run function on parallel background thread pool worker.backgroundPool: Environment for running code in the background.fetchOutputs: Retrieve results from function running in the background.
-
#666:
lsfunction: List folder contents. -
#655: help viewer embedded (available on all platforms).
Changed
-
LGTM replaced by CodeQL (Thanks to Github for their support)
-
#662: Snap uses Core22 and Qt6 (all dependencies are up-to-date).
-
#668:
maxNumCompThreadsdetects numbers of physical cores on Windows. -
matrix of handles supported.
-
#676: use fmtlib 9.0
Fixed
0.6.5 (2022-05-26)
Added
-
#572:
pow2: Base 2 exponentiation. -
audioread,audiowritesupports new file formats.mp3,.flac,.caf(Thanks to libsndfile). -
MacOs 12 Monterey Github CI.
-
#634: Ubuntu 22.04 CI.
Changed
-
#631: Qt6 used as default distribution on some OS platforms.
For backport compatibility only Qt5.15.x and Qt6.3 (or more) are supported.
- Windows 64 bits: Qt6.3
- Windows 32 bits: Qt5.15.x
- Ubuntu 22.04: Qt6.3
- Ubuntu 20.04, 18.04: Qt5.15.x
- MacOs Monterey: Qt6.3
- MacOs BigSur, Catalina: Qt5.15.x
- Others OS platforms: Qt version based on distributed Qt version.
-
#636: docker image uses bullseye image.
-
systembuiltin: multithread rework. -
#633: libsndfile 1.1.0 used.
-
Windows build uses
/permissive-option. -
#646:
warndlg,questdlg,errordlg,helpdlgreworked to better Qt6 support.
Fixed
-
Dark theme detection with Gnome.
-
#642:
randwas not thread safe. -
#648: Ubuntu 18.04 CI failed.
-
#651: MacOs monterey crashs at exit with mpi module.
0.6.4 (2022-04-24)
Changed
-
#590: Nelson's license moved to LGPL v3.0 and GPL v3.0 and uses SPDX format.
-
Nelson uses Hack font.
-
Linux 64 bits and 32 bits uses same main script.
-
#594:
.potused to generate en_US.
Added
-
'sscanf' reworked to manage unicode characters and speed optimization.
-
French translations imported from Weblate (Thanks to contributors)
-
Dark theme detected and applied on Linux, MacOS and Windows.
-
#559:
formattedDisplayTextfunction: Capture display output as string. -
Better detection Qt6 or Qt5 with CMake.
Fixed
-
Main Nelson's font was not applied on some OS platforms (ex: MacOS Catalina)
-
#622:
isreal(sqrt(i^4))did not return true. -
Nelson's help indexing is faster (x100).
0.6.3 (2022-03-26)
Changed
- #596: Tests results display use emoji if terminal supports Unicode.
Added
-
Packaging:
-
add information for Software Center (Linux desktop, icons).
-
nelsonMain script to start Nelson (superceed others scripts). -
isunicodesupportedfunction: Detect whether the current terminal supports Unicode. -
dlsymfunction: search nearest symbol name if value entry is not found. -
terminal_sizefunction:Query the size of the terminal window. -
#598:
sscanffunction read formatted data from strings.
Fixed
-
#599:
make installstep in CI for linux and MacOs. -
#601: embed all tests on linux and macos install.
0.6.2 (2022-02-26)
Changed
-
#576: C++17 Compiler required to build Nelson.
-
#581: Github CI platforms list extended (ArchLinux, Fedora, Ubuntu 18.04, MacOs BigSur).
-
#539: Visual studio 2022 build on Windows
- Visual studio 2022 solution upgraded,
- Github CI and Appveyor use VS 2022 image,
- boost 1.78 (VS 2022 x86, x64 build),
- Eigen 3.4 stable branch (Feb 06/22),
- MSVC 2022 support added to build C/C++ code easily "on fly" on Windows,
- slicot 5.0 (VS 2022 x86, x64 build),
- libffi (VS 2022 x86, x64 build),
- taglib 1.12 (VS 2022 x86, x64 build),
- hdf5 1.12.1 (VS 2022 x86, x64 build),
- matio 1.5.21 (VS 2022 x86, x64 build),
- all others windows dependencies rebuilt with VS 2022.
- #505: libCurl 7.81 on Windows.
- #524: oneApi 2022.1 on Windows.
Added
- Nelson uses
JuliaMono-Regularfont as default. - #567:
...in cells if character vector is too long.
Fixed
- #587: implicit cast to string array for horzcat and vertcat operators.
- #562:
format longcomplex do not display expected precision. - scale factor for integer values did not display as expected.
- #561:
0^0did not return expected value. - #560: many warnings fixed (Thanks to new PVS-Studio and cppcheck).
- cmake
WITH_SLICOT,WITH_FFTW,ENABLE_CLANG_TIDY_FIXwere not documented. - #584: docker files updated to support C++17 and new libraries.
- #591: Innosetup display glitch with
Nelson's websitebutton.
0.6.1 (2022-01-31)
Changed
- display of all types reworked to be
pixel perfect. (a small sentence but a big rework)
Added
formatextended to manage:compact,loose,longE,longG,hex,bank,rational.- #507:
celldisp: Display cell array contents. - #548:
hypotbuiltin: Square root of sum of squares. - #555:
rsf2csffunction: Convert real Schur form to complex Schur form. CHANGELOG0.6.x family.