On the Road to 4.1

This is the running changelog of the G’MIC software, until version 4.1 is released. It lists all new features and changes done since latest major version 4.0.

New features

G’MIC-Qt plug-in:

  • [gmic-qt-404] New filter Rendering / Variable-Density Hilbert Curve draws a single variable-density Hilbert Curve that reproduces an input image.

  • [gmic-qt-404] Filter Arrays & Tiles / Montage has been recoded to use the newest arrange command, with a few additionnal improvements (support a larger number of input layers, better memory management, etc.).

G’MIC Standard Library:

Improvements / Modifications

Core functionalities:

  • [core-404] Interpreter now pre-counts number of arguments given to a native command, to speed up argument parsing.

  • [core-404] When interpreter parses a string that is expected to be a single double value, it now uses std::strtod() rather than std::sscanf(), which is 5 to 10 times faster (it does not make a huge difference on execution time of G’MIC scripts though).

  • [math-core-404] Function find() has an extra max_iterations parameters that allows to narrow search in an image or vector subset.

Bug fix

  • [stdlib-404] Commands display, print and plot: Fix error occurring when one of the selected images has an empty name.

  • [math-core-404] Better catch exceptions occuring in parallelized evaluations.

1 Like
"* Function 'find(A,B,_starting_index,_search_step,_max_iterations)' returns the index where sub-vector 'B' appears "\

I suppose that max iteration means number of times to search? And can there be max sublength parameter? Vectors are const size, but what if I just want to find exact matches up to N?

rep_uniq_args could benefit from that, which to be honest is pretty small edge case.

That’s it. I didn’t want to call it sequence_length because when search_step is different from 1 it could be tricky to understand what it does.