Releases
Announcements and version updates
Here are the latest updates on the development of NumeRe and anything else that might be relevant to read.
We mainly publish development updates here. Other topics can be found here rather rarely and very irregularly.
NumeRe v1.1.6 "Casimir"
published: 18.04.2024
Today we publish the new version 1.1.6.2404 (ChangesLog) named after the physicist Hendrik Casimir, who is best known for his work on the Casimir effect.
Highlighted changes in this version
UI changes
An optional feature to extract the argument types of functions, methods and procedures based upon their names, was added.
Usability of mouse-over tooltips was improved. It should now be possible to show the fulltips of arguments inside of function parentheses again.
The auto-indentation functionality does not interfere with CTRL-Z any more.
New and improved functionalities
The new plotting option stacked enables the stacking of bars and hbars on each other.
Bar charts now always include the value y=0. In some situations it is reasonable to enable origin=sliding as an additional plotting option.
One can now pass custom axis ticks using a list of strings instead of the newline-separated strings.
Experimental features
It is now possible to create new columns in tables if values are assigned to an unknown column using string indexing with the column headlines, i.e. TABLE(:, "MY-COL-HEADLINE"). The new column will be appended at the end of the table.
matop functions now also accept matrix results as their scalar inputs. For consecutive scalar inputs, even a single vector can be passed, e.g. matop zero({1,3})
We added support for coloured window themes. If you want to test it, the setting can be found at the end of the syntax colour list. Recommended colour sets are the blue set (foreground: rgb(159,213,244) and background: rgb(234,245,253)), the light grey set (foreground: rgb(82,82,82), background: rgb(181,183,185)) and the splash-image set (foreground: rgb(214,177,182), background: rgb(222,237,234))
General changes
Increased performance of stfa, audioread and some statistics functions.
write now uses noquotes as default. The parameter was removed and has no effect any more.
If the values nan and inf are used within an index vector, then they are treated as invalid values and will always return an invalid value.
Many improvements and fixes
Remarks
This is a stable release and builds ontop of the changes from the last release candidate.
If you experience troubles with downloads from SourceForge (esp. via MS Edge for Business), consider downloading from Github directly (see assets section at the end of the release notes).
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The full list of changes can be found in the ChangesLog.
NumeRe v1.1.6rc
published: 05.02.2024
Today we publish the release candidate version 1.1.6.2402 (ChangesLog). We're pleased to announce that over 80 changes are part of this release.
Highlighted changes in this version
UI changes
Added feature of autowrapping for comments if line indicator is active.
Using the new file dialog and selecting "App", one can create a custom app from some predefined templates
The terminal rendering speed was increased, it provides global variables for autocompletion, autocompletion was improved generally
The table viewer will now group common table header rows together, creating a virtual hierarchy. Strings are also automatically wrapped around and the grid lines can be hidden
Folding has been enabled for LaTeX files and a simple lexer for INI files was added
New and improved functionalities
getfilelist() and getfolderlist() may now follow shell links (*.LNK files)
getuilang() returns the user's current language, getfilediff() returns the unified diff of two files, the functions to_utf8() and to_ansi() can be used to convert to and from UTF-8 encoded strings
vectshift() and circshift() perform element shifts in matrices
Weibull probability functions and probability density functions for all distributions
Multiple new string functions with corresponding methods: firstch(), lastch(), startswith(), endswith()
New table methods: TAB().insertXYZ(), TAB().removeXYZ(), TAB().reorderXYZ() (XYZ means rows, cols or cells) and TAB().shrink()
TAB().convert() now provides an "auto" mode and may now convert more different number formats (notably EU and US separators for decimals and thousands). TAB().fndcols() can now be used with regular expressions
The "value" column type of tables was extended to provide far more different fundamental data types, e.g. "value.f32" or "value.ui8". Some file types will now be loaded with the best fitting data type
Loading and saving of regular file types with custom file extensions is now possible
Procedures can now be called with relative namespaces
Conditional expressions in if and while, which return multiple values, have now all return values being considered (implictly using and())
leave extends the functionality of break by jumping out of all nested control flow statements (with exception of procedure ... endprocedure)
One can create QR codes with qrcode
More interaction possibilities to interact with and create custom windows, layouts can now be defined dynamically via strings and custom windows may now be used as dialogs.
Experimental features
Conditional breakpoints (available via right-click in the editor)
Column headlines are now usable for column indices, i.e. TABLE(:, "MY-COL-HEADLINE")
General changes
We now provide 32 bit and 64 bit versions. The 64 bit version is likely to be faster and more versatile so switching is greatly encouraged
We'll now provide an up-to-date PDF documentation with every new release (including this one)
File loading was improved in many scenarios
Many improvements and fixes
Remarks
This is a release candidate. Some features are subject to change. If you experience problems, please let us know
If you experience troubles with downloads from SourceForge (esp. via MS Edge for Business), consider downloading from Github directly (see assets section at the end of the release notes).
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The full list of changes can be found in the ChangesLog.
NumeRe v1.1.5 "Cherenkov"
published: 16.05.2023
Today we publish the new version 1.1.5.2305 (ChangesLog) named after the physicist Pavel Alekseyevich Cherenkov, who was able to explain the Cherenkov radiation. This time 30 changes have been incorporated into this version, which are mostly fixes to the version v1.1.5.2303.
Changes in this version
It's now possible to define an enumeration using the syntax declare enum -> {VAL1, VAL2, ...}
The documentation browser can now be opened again using help window and similar. The necessary time for opening up with this method was greatly reduced.
Empty cells are now preserved, if one converts string columns to logical columns.
Multiple head rows in tables and data files are now much better supported for XLS, XLSX, ODS and CSV
Copying and moving (using copy and move) of mixed-value tables is now possible again.
It's now possible to deactivate the table auto-save by setting the interval to zero
Downloading of zip files now works as expected.
The calculation of needed memory per table and cluster does now reflect better the actually needed memory.
TAB().num now also considers strings as valid values for the num() operation and empty columns are now correctly calculated as empty if used with TAB().cnt.cols
Improved performance when copying a large table out of the table viewer.
Procedures execute now always the latest changes without the need of waiting a few seconds
Plain app names were removed from code and moved to the langauge files (allows also translations of the app name).
Many improvements and fixes
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The full list of changes can be found in the ChangesLog.
NumeRe v1.1.5rc
published: 15.03.2023
Today we publish the release candidate version 1.1.5.2303 (ChangesLog). This time again nearly 100 changes have been incorporated into this version, so that comprehensive changes are to be expected.
Changes in this version
A large number of table methods have been added: TAB().pcorrof(), TAB().scorrof(), TAB().covarof(), TAB().*rankof(), TAB().zscoreof(), TAB().anovaof(), TAB().fndcols(), TAB().indexof(), TAB().countif(), TAB().binsof(), TAB().categoriesof(), TAB().categorize(), TAB().rows, TAB().cols
A filter() function was added to matop to filter a matrix with an arbitrary kernel
A large number of random distributions (Laplace, Cauchy, Rayleigh, Landau, Levy (alpha stable), Fisher-F, Student-T) were added as functions
Functions to work with time values were added: as_date(), as_time(), weekday(), weeknum()
sha256() function calculates SHA-256 of strings and files
to_time() and timeformat() now use automatic pattern matching if no pattern is given
The range-based for loop has been added as for (ITER -> RANGE) and can also have multiple iterators at once
archive files can be packed with pack and unpacked with unpack
diff can now differentiate numerically up to the third order
hist2d now also supports time axes (experimental)
vect can now also generate vector plots from complex functions and complex data grids
With the new plot options ohlc ("Open-High-Low-Close") and candlestick, plots can be generated for the display of price developments (stocks)
Tables can now have columns with logical values and columns with categories. In addition, the Table Viewer has received further functionalities that further simplify the interaction with tables
External files are now under automatic version control. Furthermore, restoring a previous version has been improved so that the current file is now automatically overwritten. In addition, a menu option has been added to compare two different files with each other
It is now possible to disable the "floating" of most windows on the main window
Procedures in the file tree now show their signature and documentation (if available) as tooltip
It is now possible to copy text with styling information from the editor to MS-Word or MS-PowerPoint with an appropriate menu option
It is now possible to drag code with comments into the terminal. The code is executed normally
When creating a new file, a helpful dialog with more information about the file types now appears
The support of Excel files and JCAMP-DX files has been improved
The help command and the documentation browser have been improved and now also show function and procedure documentation
Toolbar icons have been updated and modernized. Three selectable styles are available in the options (Purist, Focused (default) and Colourful). It is also possible to extend the toolbar over the entire window width
Many improvements and fixes
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The main changes can be found in the ChangesLog.
NumeRe v1.1.4 "Compton"
published: 20.09.2022
Today we publish the new version 1.1.4.2209 (ChangesLog) named after Arthur H. Compton. This time again nearly 70 changes have been incorporated into this version, so that comprehensive changes are to be expected.
Changes in this version
The tabs in the editor and in many other GUI elements can now be rearranged and also used to split the window. A transparent preview is displayed when the current tab can be docked.
The autocomplete function has been enhanced with SmartSense, so that much better predictions are possible
The static code analyser warns about misleading type prefixes and a new option in the context menu offers automatic detection of matching type prefixes
Elements of the interface are no longer automatically focused by the mouse
Highlighting of local variables is now done throughout the procedure
Code blocks in documentation articles now use syntax highlighting
Symbols declared with declare can now be included in other files
logtoidx() and idxtolog() can now also be used outside matop mode
read can filter comment blocks
include replaces the old @-syntax. NumeRe will mark the old syntax with a warning
vect and vect3d now require curly braces around their vector fields
TABLE().lines has been renamed to TABLE().rows and nlines to nrows (but the old names are still available as aliases)
combobox is a new GUI element
With coords=parametric, abscissa and ordinate can be specified separately (and similarly for the third dimension). This allows plots to be made with two datasets as in MATLAB(R).
The secondary axes in plots now have a small distance to the box.
getversioninfo() returns information about the NumeRe version
getfileinfo() returns information about the given file
hcat() and vcat() connect two matrices horizontally and vertically respectively
cutoff() restricts the given matrix to a given interval
to_tex() converts a numeric value into a TeX-formatted string
textparse() has been extended and understands much more data types
is_dirpath() and is_filepath() can be used to check if a string contains a valid path
taylor returns the coefficients of the given polynomial
the debugger can now jump into the heads of control flow statements
The option enablefuture has been removed and replaced by alwaysreferencetables (also available in the options dialogue)
Many improvements and fixes
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The main changes can be found in the ChangesLog.
NumeRe v1.1.4rc
published: 15.03.2022
Today we publish the new release candidate (ChangesLog) for version 1.1.4. This time more than 80 changes have been incorporated into this version, so that comprehensive changes are to be expected.
Changes in this version
Error handling is now possible with try ... catch ... endtry possible
Tables can now have different data types per column, between which they can also be converted. Currently available are numeric values, strings and time-date values.
NumeRe can now handle complex numbers. In addition there are some functions especially for complex numbers as well as special plotting options
Tables can now be described with additional documentation that makes it easier to associate measurement data with its data source. This documentation is also displayed in the tooltips in the file tree
Tables can now be copied more easily using COPY() = TAB()
The command fft2d provides a 2D FFT
The command clc deletes the contents of the console
New functions for matrix mode: polylength(), assemble(), movavg(), movsum(), ...
Commands for declaring local variables (str, var, ...) can now be used several times per procedure
time values now have microsecond precision and can cover a larger date range
diff and taylor now use Savitzky-Golay as differentiation method
resample can now use different samples for rows and columns as well as other methods
The variable viewer offers more features like copying values or displaying the needed memory
Tooltips have been improved and now show the default values of optional function arguments. Tooltips have also been added to the console. In addition, the console offers improved completion when navigating through recent commands
The current file in the editor can now be cloned to a second view to work in two different places of the file at the same time
The debugger is now slightly clearer when it requires attention. If desired, the NumeRe icon can also be enabled to blink in the taskbar
Files can now be automatically saved before execution
Brace completion can now be configured or disabled altogether
Procedures flagged with test now create a local cluster TESTINFO{} containing the statistics of the executed tests
The static code analyzer can now handle more cases
The matrix mode and the statistic methods of tables now use OpenMP where reasonable and possible
Note: as of version 1.1.5, tables that are not passed to a procedure marked as reference are actually copied. NumeRe will issue a warning because of this. After reviewing all warnings, the behavior of 1.1.5 can already be enabled in 1.1.4rc with set enablefuture=true
Many improvements and fixes
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The main changes can be found in the ChangesLog.
NumeRe v1.1.3 "Marie Curie"
published: 26.07.2021
Today we release the fourth version of the C series and name it after the physicist Marie Sklodowska Curie: NumeRe v1.1.3 "Marie Curie".
After Pierre Curie was the name giver for version 1.1.2, Marie takes over this role for this new version, which could actually also be called "Creators Update" in the tradition of Win10. We have put the focus of this version on the creation and deployment of packages and plugins, and with the new Package Repository Browser also created the possibility to install and keep them up to date easily and comfortably.
Changes in this version
New functions for matop mode providing coordinate transformations, interpolations and access to a matrix via vectors (select(MAT,MAT,MAT)).
String functions for finding all matches (strfndall()) and the first occurrence of all characters (strmatchall()). Furthermore, via strunique() also a variant of unique() for strings
The table method TAB().aliasof() can be used to access the contents of another table passed by name (e.g. via TAB().name)
The package repository browser allows access to the remote package repository from where packages and plugins can be installed and updated
The Package Creator can now save settings as a "NumeRe package project" (*.npkp). Likewise, documentation can now be saved as a "NumeRe help file" (*.nhlp) and included in the projects. Additionally it embeds now also the complete files (with comments, etc) into packages
GUI plugins can be used to embed graphical interfaces (layouts) directly in the NumeRe interface in the package menu and start them from there
Access to audio files has been improved: audioread can be used to read whole WAV files, while seek can be used to extract only an excerpt
Access via http(s) and (s)ftp is now possible with the url command. An upstream to an FTP server is also possible
The command fft has been improved and now returns the bilateral spectrum (positive and negative frequencies). The unintuitive position of the frequencies on the axis can be adjusted with axisshift
With the command declare SYM := VAL file-wide literal constants can be defined (similar to #define in C/C++), which make the code more readable and maintainable without requiring countless variables in memory
NumeRe is now available via winget and will be updatable by entering winget upgrade NumeRe.NumeRe into the Windows terminal
Many improvements and fixes, and of course all changes from previous release candidates
The following changes are planned for the next release: Milestone v1.1.4
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The main changes can be found in the ChangesLog.
NumeRe v1.1.3rc
published: 31.03.2021
Release Candidate (ChangesLog) of the new version 1.1.3 has just been published.
An overview can be found below, the details as always in the attached ChangesLog.
Animations of data sets and tables are now possible
The detect command can be used to find structures in 2D data
The pso command provides a particle swarm optimizer for functions with up to four dimensions
There are commands to rotate images (imrot), datasets (tabrot) and data grids (gridrot)
GUI system: NumeRe now provides the ability to create and interact with custom graphical interfaces. Window layouts are stored in NumeRe layout files (*.nlyt), which can also be embedded in packages
Base conversion functions: dectobase() and basetodec()
Perlin noise: perlin()
Regular expressions: regex()
Remove prefixes and suffixes: strip()
Packages can now be licensed
Vector expansion has been improved and now allows these constructs: {a,b,c:d,e,...}
Procedure test system: the assert command can be used to test an assumption and throws an error if the assumption is not met. The procedure flag test, on the other hand, converts all non-critical errors to warnings so that the procedure does not terminate immediately
Procedure arguments are now real variables (copies of the passed values). References to the passed variables are possible by declaring the argument as a reference with an ampersand (&): $PROC(copiedVal, referencedVar&)
The ESC key cancels the evaluation only if the console has the focus at the same time
Many fixes and improvements
NumeRe v1.1.2 "Pierre Curie"
published: 15.11.2020
Today we release the third version of the C series and name it after the physicist Pierre Curie: NumeRe v1.1.2 "Pierre Curie".
Yes, we also name this version after a male physicist and not after his wife. Background is our naming scheme: namers must be already deceased physicists (female or male), sorted by their year of birth. Pierre Curie was born already in 1859, his wife only in 1867, therefore Marie Sklodowska Curie will be the eponym for version 1.1.3.
Changes in this version
The default table is now called table() and no longer cache(), also data() is now a regular table without write protection. It is still the default table for loaded data.
The tocache option is now called totable and has also been integrated into the context menu of the file tree.
New functions: minpos(), maxpos(), repmat()
New table methods: TABLE().name, TABLE().size, TABLE().minpos, TABLE().maxpos
A "What do you want to do?" search function in the toolbar
Documentation keywords and documentation comments are now highlighted separately in the editor. The conversion to LaTeX documentation has been reworked and can now export a complete dependency tree to a common documentation
The editor now has a "transpose data" functionality that can transpose space/tab/comma separated data in a text file
The static code analyzer has been improved many times and now waits with the refresh until the user has taken a typing break
More filters for smoothing data have been added
Commands have been reworked: set, get, random, hist, stats, reload, clear
File load commands now return the indices of the loaded data block
NumeRe is now single-instance: files opened by double click are now opened in the already running instance
Many improvements and fixes, and of course all changes from previous release candidates
The following changes are planned for the next release: Milestone v1.1.3
If you have any wishes for the future, please let us know! Either by eMail, Discord or directly entered into the ticket system. They will be heard in any case!
The main changes can be found in the ChangesLog.
NumeRe v1.1.2rc3 HF 1
updated: 03.06.2020
Release Candidate 3 HF1 of the new version 1.1.2 has just been published.
Release Candidate 1
An overview can be found below, the details as always in the attached ChangesLog.
switch as new control flow environment
Clusters have been integrated as new data types. These can contain numeric values and mixed strings.
Many new string functions that can recognize the type of the contained characters
Editor improvements: bookmark saving, multiple selection insertion, autocompletion of LaTeX commands, global variable warnings
The console can now handle HOME, END and CTRL-LEFT, CTRL-RIGHT
Animations now contain an additional rendering step where the animation is cached and then runs smoother and with lower computational requirements
The debugger has been massively improved and now offers many standard functions like skip block, execute next statement, jump out of the current procedure, etc.
The inline flag of procedures has been improved and now allows actual inlining, which can mean runtime improvements of a factor of 20
NumeRe now provides built-in version control of files in the default paths when editing them with the editor
The dialog command can now be used to create graphical dialogs for user interaction
The refactoring functions have been improved and can now be restricted in the search area. In addition, each renaming of a symbol is logged
NumeRe can calculate a dependency tree for a procedure (Tools menu)
NumeRe now provides a package creator that can automatically generate an install script from a selected set of procedures (Tools menu)
The documentation window has been reworked and now contains a directory on the left side and a toolbar with the history functions and the possibility to print an article
Many fixes and improvements
Release Candidate 2
Release Candidate 2 of version 1.1.2 brings the following improvements:
String expressions can now be used as index expressions for data objects
The names of local variables can be highlighted during declaration. This has advantages especially for long variable declarations
The version control system has been improved and now includes a diff viewer for comparing the differences between two versions
The Package Creator can now be opened even if no procedure is selected
The variable "ans" is now a cluster and can therefore store arbitrary and mixed values
The function "polynomial(x,a0,a1,a2,...)" was added and replaces the previous definitions of "taylor" and "spline"
Many other minor improvements and fixes
Release Candidate 3
Release Candidate 3 of version 1.1.2 brings these changes:
Plots can now use time values (UNIX time) as axes
MathGL 2.4.4 has been integrated and improves plotting quality and speed
DoxyGen-like documentation blocks can be generated from NumeRe to procedures
"implot" generates an image plot from image data
"cmp()" can now also find the first value that is smaller/larger/equal to the comparison value
"shuffle(sel,val)" is a new matrix function that returns a vector of shuffled values
"getkeyval()" is a string function that can decode a key value list: "{KEY1,VAL1,KEY2,VAL2,...}"
OpenMP support has been enabled and is used when evaluating strings
NumeRe was compiled with a new compiler and is now about twice as fast (in exceptions 3x higher speeds were measured)
Many other minor improvements and fixes
Hotfix 1 to Release Candidate 3 fixes some minor bugs newly introduced in RC3. Support for the new plotting library is still experimental.