1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625
|
8.0.3 Released 26 March 2025
* Improve 'mode' for small grid sizes.
* Update python usage for compatibility with NumPy2.
* Add samples for 'mode' and 'histl'.
* Minor fixes, improvements and spelling issues.
8.0.2 Released 3 October 2024
* Add 'mode' for finding sulution of Poisson equation with arbitrary boundary.
* Add 'histl' for histogram by linear interpolation.
* Add jumps functionality for 'ode' solver (see mgl_ode_solve_str_b(), mgl_ode_solve_str_cb()).
* Add robust approximation by using numbers 1,2,3 or 4 in variable list of 'fit' and 'fits' commands: '1' for norm sqrt(1+|u|^2), '2' for norm |u|^4, '3' for norm 1-cos(u), '4' for norm |u|^2*(2-|u|^2/6^2), default norm |u|^2.
* Add power deposition for QO2d if k0<0.
* Update fonts. Add STIX2 and CJK fonts.
* Compatibility changes for Qt6.
* Improve complex number reading from files.
* Exclude NAN values from momentum estiamtions.
* Minor bugfixes and optimizations.
8.0.1 Released 12 January 2022
* Increase accuracy at line segment skipping.
* Changes in SOVERSION numbering.
* Minor spelling fix (thanks to Rafael Laboissière)
8.0 Released 1 January 2022
* Change version numbering according Debian rules.
* Add accurate line segment and quadrangle/triangle face cutting at axis border crossing.
* Add 'fastcut' for disable accurate but slow line/trig/quad primitives cutting at axis borders.
* Restore back transparent background by default. You can set non-transparent background by using 'clf' or 'background' functions.
* Compatibility changes for Qt5.15 and MSVC.
INCOMPATIBLE:
* Change colorbar C-functions by adding last argument for options.
* Add alpha-value in fill_background().
* Disable Qt4 interface by default.
2.5 Released 8 December 2021
* Add 'keep' for keeping the data phase/sign or value along line i and j in given direction
* Add functions 'sum', 'prod' at formula evaluation, like "sum(_i^2,5)" will produce "30"=0+1^2+2^2+3^2+4^2, and "prod(1+_i,5)" will produce 5!="120". You can nest them for variables _i,_j,...,_z, like "sum(sum(_j+_i^2,5),5)" will give "200".
* Add functions 'value', 'spline' at formula evaluation, like "value(a,5)" will give value of 6-th element of a, i.e. a[5].
* Add user-defined functions fn1()...fn9() at formula evaluation, like "fn1(3)\x^_1" will produce "x^3".
* Add mglODEs() (i.e. 'ode') for solving PDE/cascade/etc: ode res 'eqs' 'vars' 'bnd_kind' ini [dt tmax]. Here 'eqs' may contain relative pointer, like 'u(j+1)-2*u(j)+u(j-1)', and can be complex. Variables have 'j' for current index, 't' for current time.
* Add 'lines' to draw a set of lines with arrows between points.
* Add 'dcont' to draw a set of curves, which are intersection of two isosurfaces at given level.
* Add 'first', 'last' to get array of first/last indexes of values larger specified one along given direction.
* Add 'bernoulli', 'binomial', 'brownian', 'discrete', 'exponential', 'gaussian', 'shuffle', 'uniform', 'uniformint' for data filling by random numbers with different distributions.
* Add 'readbin' to read data from binary files.
* Add 'texparse' to enable/disable TeX-like command parsing at text output.
* Update ODE: regularization is used if dt*tmax<0 (total time may differ, but number of steps still the same).
* Add mgl_default_graph() -- the global (default) pointer to HMGL for keeping plot settings, simplifying external scripts and capture it in GUI.
* Add style 'p' in command 'smooth' to use parabolic smoothing of arbitrary points.
* Allow 'background' for scaling image, centering image and tessellate image as mosaic.
* Allow filling 'background' by the specified color.
* Allow masks for 'candle', 'area', 'region', 'bars', 'barh', 'chart', 'tape', 'face', 'polygon', 'ellipse', 'rhomb'.
* Allow single value specification for contour level in 'cont', 'tricont', 'contd', 'contp', 'contv', 'tricontv', 'cont3', 'dcont'.
* Add mgl_dual_save_hdf(), mgl_real_save_hdf(), mgl_int_save_hdf() for saving single number in HDF5 file. Correspondingly, commands 'save' and 'savehdf' can save single value now.
* Add mgl_formula_calc(), mgl_formula_calc_c() for evaluating textual formulas of arbitrary set of data arrays.
* Add mglDataList -- global mglDataA* collection for viewing/changing in GUI data from external languages (like, Python, ...).
* Add Armadillo interface for mglData and mglDataC.
* If nsub parameter of command 'hist' is negative (nsub<0) then the linear interpolation is used instead of spline one.
* Add dark text colors for mgllab.
2.4.4 Released 8 July 2019
* mglData now have operator() which work as SubData() function.
* Add 'minmax' for positions of local maximums and minimums.
* Add ContGen() and ContFGen() to draw contour lines manually. Correspondingly 'cont' and 'contf' commands are extended.
* Add 'conts' for getting coordinate of contour lines.
* Extend 'put' for partial filling if data size(s) are smaller as destination.
* Classes mglFormula and mglFormulaC now can read file with given sizes if string have the format ":fname:x1:x2:y1:y2:z1:z2". Here data is supposed in range [x1,x2]*[y1,y2]*[z1,z2] (by default [0,1]*[0,1]*[0,1]). Calc() in this case return the interpolated values.
* Fix [xyz]range option for Area and Region.
* Minor bugfixes.
2.4.3 Released 14 March 2019
* Add 'clabel' command -- draw labels for colorbar. Should be used *after* drawing colorbar!
* Extend 'ctick' command
* Add subpixel smoothing for masks
* Boxes around text (style '@') now use actual height and position of the text.
* Add mask to EPS export. Note, mask angles are reduced to 45*(0,1,...7) degrees for decreasing pattern size in the EPS.
* Update default masks: '*' become dot, '^' become bricks, 'd' become plus, 'D' become tacks, ';' and 'j' change lengths. Note, you can use brush.ods to prepare user-defined masks.
* Add styles '^' and '_' for command 'smooth' to find upper/lower bound of the data.
* Improve FlowP() to draw both branches (in positive and negative time direction).
* Improve CGI interface and update website.
* Introduce struct mdual as interface for C and C++ complex numbers. It is implicitly converted to std::complex<> in C++. And need to call c2mdual() and mdual2c() in pure C. However mdual is binary compatible with C _Complex numbers.
* Add flag in CMake to manually disable support of C99 complex numbers.
* Bypass user-specified extension in base font family name.
* Improve hints in mgllab and udav.
* Add utility 'mgltask' for making output file with a set of copies of mask-file. It useful for making set of initial conditions with a few parameters varied in specified range.
* Add example of OpenGL output.
* Bugfix for approximate min and max position.
* Bugfix for position of SVG output.
* Compatibility fixes for new versions of CMake, compilers and libraries.
INCOMPATIBLE:
* Formally pure C interface handle complex numbers by new way due to strict following of C/C++ standards. However, the MathGL library is binary compatible with previous version(s).
2.4.2.1 Released 31 March 2018
* Bugfix for panel placement in mgllab.
* Move colorbars close to axis by default.
* Improve Spanish translation (thanks to Diego Sejas Viscarra).
2.4.2 Released 21 March 2018
* Add custom dialog for FLTK widgets. This can be constructed from C/C++ code, or from MGL script using special comments "##d##d $I kind|label|par1|par2|..." will create an entry in custom dialog for changing plot properties. Here "$I" is id ($0,$1...$9,$a,$b...$z), "label" is the label of element, "kind" is one following:
'e' for editor or input line (parameter is initial value) ,
'v' for spinner or counter (parameters are "ini|min|max|step|big_step"),
's' for slider (parameters are "ini|min|max|step"),
'b' for check box (parameter is "ini"; also understand "on"=1),
'c' for choice (parameters are possible choices).
* Add 'progress' for displaying the progress of execution (by '#' symbols in console, or by progress-bar widget).
* Add 'contp' for contour lines on parametrically specified surface.
* Add 'flow3' for flow threads of 3D vector field, which start from the plain.
* Add variant of 'flow' for drawing a flow thread, starting from specified point.
* Add 'scaletext' for disabling text size scaling in relative inplots (like columnplot, ...).
* Add 'setup' for setting all low-level flags.
* Add 'coil' for projecting periodical data.
* Add modulo operation "%" (x%y=fmod(x,y)) to the list of known operations in real-valued formulas.
* Add style '.' for 'cont' to draw contour lines from saddle points.
* Add style '.' for 'flow' to draw flow thread from saddle points.
* Add option 'value' in 'tube' for setting number of edges manually.
* Crop output of 'ode' if NAN or INFINITY value occurs.
* Remove style '~' for 'plot' and 'tens'. Now, all curves try to omit points.
* Add setup flag MGL_FULL_CURV which disable omitting points of curve.
* Shift axis labels closer to axis.
* Change size of LaTeX-like commands \sup, \sub to be the same as \overset, \underset.
* Change ticks drawing in colorbar.
* Add new section "All samples" of documentation with large set of samples for most of MathGL features.
* Samples in documentation are generated automatically now (from sample.cpp).
INCOMPATIBLE:
* Make obsolete MGL command 'setsizescl'. At this, the similar C/C++/Fortran/... functions still working.
2.4.1 Released 20 July 2017
* Add 'beltc' plot, which is 'belt' with manual coloring.
* Add style '~' for 'plot' and 'tens' to omit some points at output.
* Add style ':' for 'axis' to draw lines through point (0,0,0).
* Bugfixes
2.4 Released 17 May 2017
* Add mgllab executable, which is FLTK based version of UDAV. Most things mgllab do faster.
* Add string manipulation in MGL language:
o 'str'[n] -- get string of only n-th symbol;
o 'str'+v -- add value v to the last character of the string;
o 'str',val || 'str',!val -- append numeric value to the string (as before).
* Add time value to MGL language in format: "hh-mm-ss_DD.MM.YYYY" or "hh-mm-ss" or "DD.MM.YYYY".
* Add 'iris' plot to show cross-dependencies of several data arrays.
* Add 'flame2d' to draw flame fractals.
* Add 'bbox' to set bounding box for 2D output.
* Add 'section' to get part of data between specified values.
* Add 'detect' to found curves along data maximums.
* Add 'dilate' to extend the region of 1-th value.
* Add 'erode' to narrow the region of 1-th value.
* Add 'apde' to solve PDE equation in inhomogeneous nonlinear media with spatial dispersion.
* Add 'symbol' to draw the glyphs defined by 'addsymbol'.
* Add 'addsymbol' to declare user-defined symbol (or glyph), which can be used as markers for plot (with style '&') or drawn itself by 'symbol' command.
* Add 'openhdf' to open all data arrays from HDF file.
* Extend 'crop' to cut to optimal size for FFT (i.e. to closest of 2^n*3^m*5^l).
* Add function mgl_data_max_first() and data suffixes .m[xyz][fl] to find first/last maximum along direction.
* Add function mgl_datac_diff_par() to parametric derivative of complex data.
* Add style 'F' for 'bars' and 'barh' to set fixed bar widths.
* Add style 'a' for 'plot', 'tens', 'area' and 'region' to accurate drawing of data, which partially lie out of axis range.
* Add style '#' for 'region' to draw wired plot.
* Add possibility of manual shift in 'multiplot'.
* Add parsing arguments of options for MGL commands.
* MGL command 'correl' now can perform 2d and 3d correlations.
* Option 'meshnum' now change the number of drawn markers for 'plot', 'tens', 'step, 'mark' and 'textmark'.
* Function 'step' handle data with x.nx>y.nx similarly to 'bars'.
* Extend 'tile' and 'tiles' by adding manual coloring and face orientation.
* Add variant of MGL command 'copy' to copy data with "incorrect" names.
* Improve tick labels drawing.
* Improve time-ticks (add weeks) and add subticks to its.
* Improve 'fplot' to handle several singularities.
* Add LaTeX command \dfrac{}{}. This is full-sized version of \frac{}{}. Unfortunately, there is no support of nesting (i.e. \dfrac{\dfrac{}{}}{} not working). Contrary, \frac{}{} allow nesting.
* Add mglODEc() -- ODE solver for complex variables.
* Add cmplx(a,b)=a+i*b to the list of known functions in formula parsing
* Update CMake find_package to find MathGL.
* Increase line width for wired text.
* Update documentation: add description of new commands, add hint @ref{Mixing bitmap and vector output}.
* Add translation to Russian for most of labels and messages.
* Name 'all' are reserved in MGL scripts now as synonym of -1.
* INCOMPATIBLE: Replace libmgl-qt by libmgl-qt4 and libmgl-qt5 for resolving conflicts of simultaneously installed both Qt4 and Qt5.
* Minor bugfixes.
2.3.5.1 Released 20 June 2016
* INCOMPATIBLE: library libmgl-qt is removed. You need to use libmgl-qt4 or libmgl-qt5 explicitly now.
* Compatibility changes for latest MS VisualStudio.
* Bugfixes.
2.3.5 Released 16 May 2016
* Greatly update mgltex (by Diego Sejas Viscarra)
o \MGL@codes: Bugfix: category code for tabulators is changed too
o \MGL@quality: 9 is accepted as quality value now
o \MGL@scale: Now accepts any positive value
o \MGL@test@switch: New command to verify and validate switching arguments
o \mglTeX: Add a small negative space in the logo, between the "mgl" and "TEX"
o \mglTeX: Declared now as robust command
o \mglcomments: Now accepts arguments 0 (equivalent to off) and 1 (equivalent to on), besides the usual off and on
o \mglgraphics: New command options: gray, mglscale, quality, variant
o \mglname: Now writes the MGL code line setsize 600 400 to the main script
o \mglplot: Added \bgroup and \egroup in order to keep changes private
o New command options: gray, mglscale, quality, variant
o \mglsettings: Added options gray and variant
o Now calls the \mglswitch and \mglcomments commands for the switch and comments options, respectively
o \mglswitch: Now accepts arguments 0 (equivalent to off) and 1 (equivalent to on), besides the usual off and on
o mglTeX now depends on the ifpdf package
o Change definition of \mglcommentname from MGL comment to mglTEX comment
o Introduce the concept of global, local and private settings in the documentation
o New commands: \mglgray (to activate/deactivate) gray-scale mode locally, and \mglvariant (to set variant of arguments in MGL scripts locally)
o New package option 9q for setting quality to 9 (for testing purposes of the author)
o New package options 0v, 1v, 2v to select variant of arguments in MGL scripts
o New package options gray, color to activate/deactivate gray-scale mode for graphics
o Remove the \MGL@setkeys command, since it isn’t needed as first thought
o Rename \MGL@document@scripts to \MGL@doc@scripts
o Rename \MGL@script@name to \MGL@script
o Rename command \MGL@graph@ext to \MGL@imgext
o Rename command \mglcommonscriptname to mglsetupscriptname
o Rename environment mglcommon to mglsetupscript (mglcommon is still available, but deprecated)
o Rename family MGL@keys as MGL@gr@keys for consistency
o Reorganize and update documentation
o Some minor bugfixes
o The MGL code line "setsize 600 400" is now automatically written to the main script in order for the scaling options and commands to work
o mgl: New environment options: gray, mglscale, quality, variant
o mglcode: New environment options: gray, mglscale, quality, variant
* Add MGL command 'variant' to select proper variant of arguments (like "var1?var2?var3?...") in MGL commands.
* Remove limitation of maximal number (was 1000) of arguments for MGL commands. This is actual for 'list' command.
* Add mglWnd::Widget() for accessing widget which is used for drawing.
* Add Gray() for producing gray-scaled image.
* Add MGL command 'setsizescl' for scaling all further 'setsize'.
* Add Shear() for shearing plot.
* Add ShearPlot() for placing plots side-by-side with some shearing.
* Add mglData::Limit() for limit maximal absolute value of data.
* Add mglTridMat() for tridiagonal matrix algorithm.
* Add MGL command 'diffract' for single step diffraction calculation.
* Add 'ifsfile' for reading IFS fractal parameters from *.ifs file.
* Add style '*' for 2d versions of Pipe() and Flow() to draw threads from points inside axis range.
* Add "norm()" to the list of known functions
* Compatibility changes for MS VisualStudio, MacOS, Win64.
* Bugfix for legend export into EPS and SVG.
* Bugfix for importing data from std::vector.
* Improve Surf3*() drawing.
* Force NAN if divided by 0 in formulas.
* Option "-S" of mglconv now perform scaling in any cases
2.3.4 Released 13 February 2016
* Add mglData::Pulse() for determining pulse parameters.
* Add mglData::ScanFile() for getting formatted data from textual file.
* Add mglData::SetList() for setting data from variable argument list of double values.
* Add mglIFS2d() and mglIFS3d() for fractal generation using iterated function system (thanks to Diego Sejas Viscarra).
* Add option to SetSize() for scaling only primitives but don't erase it.
* Add Pmap() plot for Poincare map.
* Add Lamerey() plot for Lamerey diagram.
* Add Bifurcation() plot for Bifurcation diagram.
* Add mglGraph::SetPenDelta() for changing size of semi-transparent area around lines, marks, glyphs, ...
* Add MGL command 'echo' for printing the content of data.
* Add MGL command 'print' -- like 'info' but print immediately in stdout.
* Allow MGL command 'save' append textual strings to a file.
* Add option to rewrite file in 'savehdf'.
* Add callback functions to mglQt, mglFLTK, and extend mglDraw class for simpler drawing in parallel with calculation (see @ref{Draw and calculate}).
* Force set focus for editor in UDAV.
* Add line numbers to UDAV editor. Cyan number denote current line, red numbers denote lines with errors.
* Disable mouse wheel for zooming in UDAV by default.
* Update mgltex (thanks to Diego Sejas Viscarra).
* INCOMPATIBLE: Scale internally d1,d2 arguments in Curve() to be exactly the same as Bezier curve (P0=p1, P1=d1+p1, P2=p2-d2, P3=p2).
* Minor bugfixes and improvements.
2.3.3 Released 01 June 2015
* Add SurfCA() and Surf3CA() plots.
* Add wavelet transforms.
* Add AttachLight() for attaching light settings to inplots.
* Add manual rotation angle for axis ticks (by "value" option).
* Add mglDataS class which is similar to std::vector<double> one.
* Add missing mglDataC functions.
* Add style '%' for color scheme along 2 coordinates (as in Map()).
* If tick template start with '&' then long integer is passed instead of double.
* Add style 'V' for drawing text centered vertically.
* Add style "dN" in Smooth() for averaging over (2*N+1)-th points.
* Add TeX symbols "\quote", "--" and Cyrillic ones.
* Add complex numbers in MGL -- any expression started with '!' will have complex value(s).
* Add 'rkstep' command for Runge-Kutta step in MGL script.
* Add functions 'min()', 'max()' to MGL parser and formula evaluation.
* MGL command 'join' now can join arbitrary number of data arrays.
* Command 'stop' is not required to be placed before 'func'.
* Add warning about writing to temporary arrays in MGL scripts.
* Names 'rnd','nan','inf' are reserved in MGL scripts now.
* Add annotation for plot styles and options into header files.
* Greatly improve the speed of formula parsing for MGL scripts
* Update JS interface
* Add binary font files for speeding up initialization and font loading
* Exclude "pure" attribute for function due to compatibility reasons
* Add mgl_set_size_scl() for additional scaling width and height of the image
* Add options -S, -q for mglconv
* Rearrange toolbuttons in UDAV.
* Bugfix for Flow() and Pipe() functions
* Other minor improvements, bugfixes and compatibility changes
2.3.2 Released 2 February 2015
* Update mgltex (thanks to Diego Sejas Viscarra)
* Add reading files with complex numbers by 'read' command.
* Parallelize reading textual data files.
* Add 'i','j','k' variables for data filling.
* Add 2-color style for candle and ohlc plot.
* Add saving images in QMathGL even if corresponding format support is disabled.
* Add cmake option MGL_DEF_FONT to change default font name or use built-in one (if MGL_DEF_FONT is empty).
* Compatibility changes and bugfixes.
2.3.1 Released 21 October 2014
* Add MGL command 'load' for loading MGL commands from external DLL (or .so) module.
* Add Logo() function to draw bitmap (logo), which is stretched along whole axis range
* Add MGL command 'reset' which restore default settings and clear image (i.e. call DefaultPlotParam()).
* Change y coordinate at x-z projection.
* Improve projection of 'unrotatable' objects (like legend, title, ...).
* Add projection (Ternary&8) which is the same as usual (Ternary&4) but don't print text on projections
* Improve orientation of axis ticks and labels.
* Add mglWnd::SetDrawFunc().
* Add mgl_set_global_warn() and mgl_get_global_warn() for set/get messages of global scope.
* Make copying private of mglGraph and derived.
* Add virtual destructors.
* Add some static functions for mglGraph.
* Add option "-n" to mglconv to disable automatic saving of the image.
* Add option "-s" to mglview and mglconv to run setup script before the main one.
* Become compatible with giflib 5.1.
* Add light scaling at MGLD import.
* Add scaling of frames at Adjust().
* Possible bugfix for 32bit gcc.
* Update docs.
2.3 Released 7 August 2014
* Add background image, which allow in particular semi-transparent background color. Correspondingly add function Rasterize() for saving current image as background, and function LoadBackground() for loading background image from PNG or JPEG file.
* Add primitives to draw polygon and angle arc.
* Allow arbitrary factor for axis ticks (like, gr->SetTicks('x',M_PI,0,NAN,"\\pi");).
* Add function AddTick() for adding manual tick to existed ones.
* Add new styles and symbols:
- arrow style 'X';
- color gradient (color scheme) of glyphs in text;
- manual dash style, like "{df090}";
- manual mask style, like "{s00ff00182424f800}";
- Add styles 'fFE0123456789+-' for printing numbers in functions Axis(), Colorbar(), Table() and Label();
- style '!' to disable ticks tuning in Axis() and Colorbar();
- special symbol '\b' which will be ignored at printing;
- calligraphic TeX symbols, like \calB, \calE, \calF, \calH, \calI, \calL, \calM, \calR, \ell, \scrg, \scro.
* Add ODE solving functions for textual formulas
* Add function for global cubic spline interpolation, and function to refill using global spline.
* Add functions "random(dat)" and "gamma_inc(a,x)" to the list of known functions for formula parsing
* Add 'inf' variable to the MGL and formula parsing
* Allow reading JPEG files for mglData::Import().
* Function mgl_data_subdata_ext() handle NULL argument(s). Add variants of SubData() with 1 and 2 arguments.
* Warning messages and information are printed to stderr until call of mgl_suppress_warn(true) will disable it.
* Add function mgl_check_version() and MGL command 'version' to check if MathGL version is valid.
* Add move constructor(s) if compiler support C++11 rvalues.
* Changes in algorithms:
- Greatly increase speed of formula parsing (i.e. of functions mglData::Modify(), mglData::Fill() and similar), and speeding up many other places;
- Improve algorithm for contours drawing and filling, taking special attention to quasi-random data.
- Spline() now use 5-th order polynomials to keep continuity of 2nd derivative too.
- Add function attributes 'pure' or 'const', which potentially can speed up drawing.
- Use spline instead of linear interpolation in functions Flow() and Pipe().
- Adjust columnplot and gridplot positions for non-zero distance between the inplots.
- Improve colorbar labels drawing at SetRotatedText(false)
- Choose new scales for perspective.
- Allow 'negative' angles for text rotation
- Use new s-hull version for triangulation.
* Make function mgl_get_curvs() to be exported. This function is used internally to connect line segments to a set of curves (in particular, for contour lines).
* Add ViewAsRotate() function which handle arguments of View() by the same way as Rotate() function, i.e View(tetx,tetz,tety) <=> ViewAsRotate(-tetz,-tetx,-tety)
* Function mglWindow::Adjust() for Quality&4==0 now show image in widgets even if draw function is absent (i.e. =NULL).
* improvements in UDAV:
- Rearrange tool buttons;
- Add features for manual dashing and manual mask in Style dialog;
- Add dialog for new dialog for new inplots (including subplot, multiplot, columnplot, stickplot, gridplot);
- Add option to use dots plot at image refreshing (for faster rotation etc);
- Add new primitives (arc,polygon,rotated text) as mouse handled ones;
- Add close button to data tabs;
- Add button to stop script drawing and stop() slot for QMathGL;
- allow one to delete/hide/unhide selected plot;
- allow one to move selected plot between inplots;
- Improve NewCommand dialog -- now it replace the script command if user change arguments only;
- MGL commands 'perspective' and 'fog' now work correctly in UDAV;
- Update UDAV icons to use Oxygen ones.
2.2.2.1 Released 19 March 2014
* Compatibility changes for MS VisualStudio 2010 and early.
* Function SetRange(v1,v2) ignore NAN values now.
* Add enable-json-sample for building json-samples on demand only.
* Update docs.
2.2.2 Released 10 March 2014
* Add mgl_region_3d() to draw region (or ribbon) between 2 curves. Correspondingly extend mglGraph::Region() function and MGL command 'region'.
* Allow LGPL for MathGL widgets.
* Improve export to TeX.
* Add missing functions to Fortran interface.
* Bugfix for legend with enabled lighting.
* Minor bugfixes and memory leaks.
2.2.1 Released 22 January 2014
* Add Qt5 support.
* Add Pascal interface.
* Improve JavaScript interface.
* Add function AddRange(char dir, mreal v1, mreal v2) and extend corresponding MGL commands '[xyzc]range'.
* Add 'hypot' function for known functions in formula parsing.
* Add style '~' to disable colorbar or axis labels. NOTE, axis style '_' is obsolete and should be replaced by '~'.
* Change Aspect() if Ax=NAN. Now, Ay and Az set the ratio to optimal aspect (not exact value as previously).
* Disable changes by View(),Zoom(),Perspective() for position of Title(), Legend(), Colorbar().
* Partial support of perspective in CalcXYZ().
* Speed up PDE solving.
* Add complex versions of PDE, QO2d, QO3d.
* Correct filled background for Box() in curved coordinates.
* Allow nx=1 for Stem and Error.
* Bugfix for drawing single axis.
* Bugfix for missing options parsing for some of MGL commands.
* Bugfix for .pmin suffix in MGL. Add mglData::MaximalNeg() and mglData::MinimalPos() functions. Add .nmin and .nmax suffixes.
* Bugfix for colorbar labels.
* Force using python 2.7 by default due to bug in Ubuntu. Debian sid works well with python 3.* too.
* Minor bugfixes and memory leaks.
2.2 Released 11 November 2013
* Add OpenMP calls mostly everywhere (can work as replacement of pthreads - a bit faster since more loops is parallelized).
* Greatly speed up consequent FFT and Hankel transforms. Add mgl_clear_fft() function for manual clearing of saved FFT/Hankel data.
* Add OHLC() plot for drawing Open-High-Low-Close diagram
* Add wxMathGL widget.
* Add interface for Lua v.5.1.
* Add mask for face drawing if one of symbols "-+=;oOsS~<>jdD*^" is specified in color scheme. This work only for export in bitmap images.
* Add Quality=8 for dots drawing (extremely fast).
* Add styles '4','6','8' for Cone() and Cones() to produce square, hex-, octo-prism.
* Add style 't' for Cones() to produce tubes (cylinders).
* Add style '^' for Legend() to left/right align legend if its coordinates are right/left from the center
* Add style '<', '^', '>' for aligning/centering boxes in Bars(), Barh(), BoxPlot(), Cones(). Also this plots become centered by default if nx sizes are the same for all data.
* Add Dots() function which set independently both color and alpha of dots
* Improve automatic axis position. Add style '^' for inverse automatic axis position.
* Improve tick labeling. Add style TuneTicks&4 for zero filling of tick labels.
* Add mglData::Refill() for filling by interpolation of parametrically dependent data
* Add transparency for Area() and Region() plots.
* Add mgl_clf_chr() function and extend 'clf' command.
* Fourier now perform true inverse Fourier transform (instead of backward one).
* Improve/change lighting from local sources. Add SetDiffuse() function.
* C functions now return NULL if HMDT data cannot be created for given input argument(s).
* Enable line width for Mesh() and Fall() plots.
* Replace +INF and -INF by NAN in textual formula output.
* Add manual compression of JSON.
* Define WORDS_BIGENDIAN and HAVE_MEMRCHR (thanks to Dinar Valeev).
* Bugfix for cleaning unused points.
* Fix 'setsize' command at UDAV starting.
* Rewrite MGL parsing by using std::wstring for avoiding possible bugs of wcs*() functions.
* Minor bugfixes.
* Update docs.
2.1.3.1 Released 8 May 2013
* Compatibility changes for MS VS.
* Bugfixes for cmake options enable-double=OFF, enable-zlib=OFF.
* Enable mouse actions for Firefox in JS sample.
2.1.3 Released 2 May 2013
* Functions SinFFT, CosFFT, Hankel and so on, become multi-threaded
* Use DFT instead of FFT if GSL support is disabled (much slow!).
* Add Join() function for joining mglData arrays
* Add Roots() function for root finding of nonlinear equation using provided guess(es)
* Add mglExprC for parsing formula with complex numbers
* Correctly read #QNAN values in data files
* Speed up Dots() drawing
* Add flag to disable tick labels at axis origin (see SetOriginTick())
* Add MGL commands 'origintick', 'tickshift'
* WriteJSON now use zlib if filename end at 'z' (like "test.jsonz")
* Make separate libmgl-mpi
* Add SetAutoRanges() function (duplicate corresponding options)
* Add JSON sample usage via QtWebKit (thanks to DATADVANCE)
* Bugfixes and memory leaks
2.1.2 Released 28 January 2013
* Exclude "local" functions from resulting library.
* String in MGL script now can be concatenated with another string or data/numbers (like 'max(u)=',u.max,' a.u.').
* Bugfix for colors in 3D PDF.
* Bugfix for drawing in MPI mode.
* If Aspect() function have NAN argument(s) then it try to select optimal aspect ratio.
* Option 'size' in Legend() now change only text size (not mark size).
* Option 'meshnum' now influence on Boxs() and Belt() functions
* Adjust marks drawing (line width and dots).
* Minor improvements and bugfixes.
2.1.1 Released 24 December 2012
* Bugfix for SetRange(val,val) function
* Exclude export MGL to CPP
* MGL parsing now produce errors for any wrong list of arguments
* Add help message to mgl.cgi
* Improve text rotation at View()
* Make compatible with GIF library v.5.0.
* Bugfix for making MPI interface.
* Bugfix for running in Win32 mode.
* Update docs and MGL samples
2.1 Released 13 December 2012
* Add class mglDataC for complex data arrays.
* Add mglData::Solve() for finding x-value where dat(x)=val.
* Add mglData::Clean() for removing rows with duplicate values for given column.
* Add Vect3() plot for drawing vectors on slice of 3d vector field.
* Add Table() function for drawing table with data values.
* Add ZoomAxis() for zooming/shifting axis range as whole.
* Add WriteJSON() function for exporting in JSON format suitable for later drawing by JavaScript
* Add JavaScript code for visualizing JSON data.
* Add mgl.cgi tool which return PNG image for CGI request in form of MGL script.
* Add MGL commands 'errbox', 'face'
* Color can be specified as its RGB[A] values, i.e. like "{xFFFFFF}" or "{xFFFFFFFF}".
* Color in color scheme may have position in range [0,1]. Format is {CN,pos} or {xFFFFFF,pos}.
* Now pen width for marks is proportional to pen width of line multiplied by size of marks.
* Now you can use different font-faces in the plot simultaneously.
* Now Legend() automatically use several columns if it contain too many legend entries.
* Add style '-' for legend for drawing them horizontally.
* Vectors is drawn now even if only starting or ending points are placed in bounding box.
* Strongly rewrite the algorithm of vector field plotting.
* Grid lines for NAN origin values are always located at far-away edges.
* Try correctly place axis and tick labels even for axis with inverse range (i.e. for v2<v1).
Note, it work well for 2D axis. One should use Aspect() with negative values to do it correctly in general case.
* Axis style 'XYZ' draw corresponding axis with ticks labels from other side of axis. This also influence on followng Label() calls.
* Text is drawn for initially invisible axis (like z-axis) too.
* Add functions GetFrame(), AddFrame() for replacing or adding data from given frame. Work if MGL_VECT_FRAME is set on (by default is on).
* Frames now save 3D information if MGL_VECT_FRAME is set (by default).
* CalcXYZ() function now use data from z-buffer for better determining {x,y,z} coordinates.
* Add dialog for data arguments in "New command" dialog of UDAV.
* Value of arguments are saved while the kind of command is changed in "New command" dialog of UDAV.
* Extend classification of commands in "New command" dialog of UDAV and make it automatic.
* Mouse position at an object click now is displayed on the image itself.
* Add zoom in/out by mouse wheel.
* Add zoom in/out of axis range by mouse wheel, and shift of axis range by middle button.
* Text editor in UDAV now highlight current line.
* Completer can be switched off correctly now.
* Multi-line strings (i.e. separated by "\" symbol) are highlighted correctly now.
* Add option to enable/disable selected plot in UDAV.
* Rearrange hot-keys in UDAV and in QMathGL.
* Make code compilable by Borland compiler too.
* Improve output in OpenGL mode.
* Add fog at export in EPS/SVG formats.
* Add mglParse::AllowFileIO() for enable/disable I/O commands in MGL scripts.
* Export functions now can write in stdout if file name is "-".
* Picture drawing now use multi-threading for each stage.
* Functions mglData::Spline*, mglData::Linear* now can return gradient at the point.
* mglFourier now make true inverse transform
* Add annotation for all pure C functions.
* Update list of built-in glyphs
* Update samples
* Update documentation
* Different bugfixes
* INCOMPATIBLE CHANGES in the arguments of functions: mgl_axis, mgl_axis_grid, mgl_label, mgl_labelw, mgl_legend_pos, mgl_legend; and in functions for MGL parsing.
* MINOR INCOMPATIBLE: plotting functions now use double argument always.
2.0.3 Released 27 July 2012
* Make code compilable by compilers GNU/MinGW GCC, Clang, MS VisualStudio
* Add mglTriangulation() using s_hull_pro algorithm
* Add mglData::Grid() and mglGraph::DataGrid() for filling regular data by values of triangulated surface
* Add cmake options 'enable-png' and 'enable-zlib'
* Add SetTimeUTC() for using UTC time instead of local one
* Add SetTickShift() for additional shift of tick labels
* Add mglGraph::MPI_Send() and mglGraph::MPI_Recv()
* Vector plots now draw vector at edges, which are directed out of bounding box
* Add gap between 1d plots for avoiding possible undetermined overlapping.
* Add parallel build for documentation
* Bugfixes for memory leaks and uninitialized variables
* Bugfix for setting text size
* Bugfix for handling NAN color value
* Bugfix for missing lines in export to EPS/SVG
2.0.2 Released 24 May 2012
* Add 'U' style for Axis() which disable ticks rotation.
* Bugfix for enable-opengl option.
* Bugfix for lighting.
2.0.1 Released 23 May 2012
* Improve speed of drawing
* Add reading 3d data files using mglData::ReadMat()
* Exclude unnecessary dependencies/inclusions
* Improve build system
- Add multithreading
- Add install for Octave
- Separate enable-doc option from enable-all
* Minor bugfixes
2.0 Released 12 April 2012
|