Release 2.3.6a of : - Bug fixes: - Restored ability to load files from outside the current working directory - Correct handling of dy (or absence thereof) in ftv - New functionality: - Frida main program now has command-line options -b, -h, --version - Command crp to restrict plot range - New integral operations firstwith, lastwith - Improved functionality: - In binning (mpa, msa), computation of sampling error is now optional - Commands gp, gf, gp!, gf!, gfa to create, overwrite, or append to graphic file - Integral operations now return integers when appropriate - Cleaner implementation of refined curve plotting - Code cleanup: - fname_divide replaced by functions from std::experimental::filesystem Release 2.3.5a of 01feb17: - CMake machinery now uses variables like ${library_name}_LIBRARY - Renamed libfrida -> libfridacore, libtrivia -> libfridatrivia - Fully relying on implicit library dependencies (frida -> libfridacore -> libfridatrivia -> GSL) - Ensure termination of functional tests by including the one-line script "exit(1)" Release 2.3.4d of 28jan17: - mpgi,mpgr now using NOlo::j2j for spectrum correspondence - gnuplot-fifo now named gnuplot-<PID> which resolves failure of ctest -j<n> - Exceptions in initialization of CFrida are catched, and line number is reported Release 2.3.4c of 27jan17: - New function NOlo::j2j to prepare for better J:J matching in mpgi, mpgr, and elsewhere - Correct CMake mechanism in ptest - Explicit library dependence in utest/CMakeLists.txt - Copy edit CMake files - Previous release had erroneous path 2.3,4b (comma instead of point) Release 2.3.4b of 25jan17: - Grid created by fm now ends with x[ni-1]=1. - mi renamed -> mpgi - Inverted logic of interpolation mpgi: now operating on data with reference to grid - New command mpgr to redistribute histogrammed intensity Release 2.3.4a of 24jan17: - New command variant 'fthb' to read blocks with no header - Restored capability to read i96 and a01 files - New conversion script i96-to-yda (this was a bad idea, made obsolete by the above) - Print info when new fit curve gets constant weighing - Restore cfs - Forbid i-dependent K or J unless I is explicitly given - Repair ftests; ctest now passes - The entire code reformatted using clang-format - Finally, converted to conventional use of include guards Release 2.3.3f of 3aug16: - Minor fix: restored missing include Release 2.3.3e of 3aug16: - Requirements set back from std=c++14 to c++11, to support older compilers Release 2.3.3d of 13jun16: - Minor fixes here and there Release 2.3.3c of 16mar16: - Bug fix: - msa: handle file-dependent nJ, handle mj - msb: z to r was broken (patch by Antti) - op*: was froken since move to move semantics in 2.3.3a - curve-from-script: some metadata were not copied Release 2.3.3b of 12jan16: - Bug fix: - plot::determineYrange was broken - Refactoring: - namespaces -> singleton classes SMem, SFSel Release 2.3.3a of 7jan16: - Major refactoring (resulting in acceleration by 0 to 10%): - POlo, PSlice and subclass pointers are now unique_ptr - start explicitly using 'move semantics' - Caveat: - fit range restriction disabled Release 2.3.2g of 4jan16: - New functionality: - functions kwwmc, kwwms, kwwmp take argument <tau> instead of tau - Code cleanup: - got rid of global singleton instances - modernized and simplified singleton base class - Online memory, file selection, and file iterator now in three different files (mem.*, fsel.*, loop.*), and in different namespaces (NOlm, NSel, -/-) Release 2.3.2f of 17nov15: - Bug fix: - throw exception when p0 is accessed for data file, and similar - Improved functionality: - two new plot symbols; improved ExecOval2, ExecRectangle2; rm ExecTrueOval Release 2.3.2e of 12nov15: - Bug fix: - catch invalid r-par in expression - Code cleanup: - move singleton.hpp to trivia - move axis,dualplot,plotwin to new library fridaplot (src dir plot/) - rename CVar->CGenus,reg->variables,geni->reduce_spec,integrate->reduce_curv Release 2.3.2d of 9nov15: - Bug fix: - correct variance weighing for pconv - catch exception from curve evaluation within global fit - correct line count when toplevel executes script - default ParAttr in change_expr - now able to parse 'sum[K,J]' Release 2.3.2c of 6nov15: - Bug fix: - repair iop0 p0[k]' in a way compatible with 'nj[i]' - correct error propagation in func_pow (operator ^) Release 2.3.2b of 2nov15: - Bug fix: - repair broken evaluation of expressions like y/y[k,j,0] - Improved functionality: - avge, sum, min and similar may now be used in pointwise expressions - all messages now written to 'cout' (putting an end to inconsequent use of cerr) - Code cleanup: - more const declarations (P* -> R*) - '= delete' for compile-time detection of unintended class instantiations - SFuncRegistry, ex-NCvin, ex-NGeni, ex-NPloWin become singleton classes, thereby getting rid of false error messages from valgrind - replaced OpenMP by C++11 std::thread, std::async Release 2.3.2a of 20oct15: - New functionality and changed user interface: - curve evaluation node c[]() renamed back to f[]() - new data format *.yda instead of *.y08 - new commands 'hc' and 'hv' for help on constants and variables - Improved functionality: - 'oi' respects freeze ('m/') - simpler error messages from node evaluation - News for sysadmins: - now requires cmake 2.8.12 (older version were untested) - functional and unit tests can all be run through 'ctest' - source archive now contains googletest sources (though little used by now) - Code cleanup: - using inheritance instead of if-statements for different indexed-variable nodes - grammar prescribes maximum number of index arguments in bracket - Bug fix: - "stdv" was variance. Now "var" and "stdv" are available - variance computation in 'msa' as in 'mpa'; stdv shrinks with 1/sqrt(n) when averaging over several points with same y+-dy - plot error bars with same line thickness as the symbol - now able to use index i in positions K and J Release 2.3.1b of 22sep15: - Improved functionality: - error estimates in 'mpa' and 'mpaf' - delta fit: allow extrapolation of resolution function by zeros - Code cleanup: - revised Find<Package>.cmake modules Release 2.3.1a of 11sep15: - Updated dependence: - now requires libyaml-cpp0.5 instead of obsolete 0.3 - New functionality: - reference 'nk' for number of files - Bugfixes: - repaired man page building (was broken since conversion to cmake) - update man page contents - don't require test directory to be in path - New tests: - loading SPHERES raw data - convoluting two functions (really?) Release 2.3.0d of 1jul15: - New functionality: - 'mpe-' to remove error bars - on upstart, test whether Gnuplot supports X11 - Bugfixes: - 'msj' can detect incongruent error bar status - Improved behavior: - modified parametrization of ornuhl Release 2.3.0c of 28may15: - New functionality: - func_ornuhl Ornstein-Uhlenbeck spectrum - Bugfixes: - m/, m/- repaired, test added - Temporary help: - "obsolete command 'ci 1' has become 'oi p1'" Release 2.3.0b of 25may15: - Bugfixes: - Curves without data reference: repaired initialization of parameter attributes - Shell escape '!' restored - purge_dy now at file level, not per slice (inconsistency reported by Kerstin Kaempf) - Improved behavior: - Generalized integrals now setting y units - 'pn','pv' aka FK01,2 are ignored when j would exceed the allowed range - Tests yield more explicit error messages; distinguish 'exit' from 'throw' - Improved help: - 'hr' for help on resolution convolution Release 2.3.0a of 22may15: - New user interface (accidentally present since 2.2.3c): - new list format "from:to:step" instead of "from-to.step" - Bugfixes: - Curves without data reference wouldn't print, bug probably introduced with 2.3a. - rm obsolete flag -Wno-deprecated-register (report by Kerstin Kaempf) Release 2.2.3d of 11may15: - Corrections: - Curve functionals now also work in pocket-calculator mode. - Much improved documentation functions 'ho', 'hic', 'hid'. - Better error messages about invalid index. Release 2.2.3c of 10may15: - Accidentally, this release already introduced the new list format foreseen for 2.3.0 - Bugfixes: - msa repaired - ceil, floor, round now return int (inconsistency reported by Kerstin Kaempf) - Correction: - Replaced time.h by chrono, which is standard C++ (by Antti Soininen) - Improvement: - Location of share directory now under cmake control (by Antti Soininen) Release 2.2.3b of 26mar15: - Bugfix: avoid illegal casts from pointer-to-function to pointer-to-object Release 2.2.3a of 2feb15: - New functionality: - global fits - integer expressions now evaluated in integer arithmetics - starting a test script collection - Remove legacy methods: - rm loaders for old formats 96 and 01. - Major code refactoring: - expression evaluation now returns object pointers - some cleanup according to cppcheck - code is ready for clang (except for OpenMP, still unsupported under clang) - most function names converted to underscore style - variable registry instead of readln macros Release 2.2.2b of 22dec14: - Bugfix: a cmake file was missing in 2.2.2a. - Refactored: split readln -> readln, macro. Release 2.2.2a of 21dec14, to be used with frida2libs-141221: - Libraries readplus and trivia are now part of the Frida repository, and come with cmake files instead of autotools support. - Correction: oi stdv. Release 2.2.1b of 18dec14, to be used with frida2libs-141218: - changed interface: - 'frida' command takes script names as arguments; these scripts are executed before Frida goes interactive. This also allows for shebang files. - shorter syntax: 'integral[..]' expands to 'integral(x[..],y[..]) - outcome, chi2, R2 replace obscure fit quality metrics cq0,cq2,cq1 - be more tolerant with unnecessary blanks (trim in readany) - removed functionality: - GridSum, because it is a composite of two elementary operations - Load a01 - code cleanup: - doxygen comments - using 100 columns Release 2.2.1a of 15dec14: - changed interface: - 'oio' is gone; any expression may now contain generalized integrals - refactoring: - CFunc now subclassed -> CFunc1, ... Release 2.2.0c of 3dec14: - cleanup: - rm broken Python binding fragments - new functionality: - variance-weighed fitting takes into account resolution errors Release 2.2.0b of 1dec14: - bugfix: - external curve evaluation failed for x=0 - correct opr pointwise: dy.clear() if not computed - new functionality: - Fit functions debye-msd, Bessel-j1, rotational diffusion Release 2.2.0a of 23oct14, to be used with frida2libs-141023: - splitted code into a library and a tiny wrapper - started infrastructure for Python binding (not yet productive) - replaced yamlfreeze by official libyaml-cpp0.3 - various little corrections and additions Release 2.1.9a of 11apr14: - new build system: cmake instead of automake Release 2.1.8g of 10apr14: - bugfix: - little bug found thanks to first Clang compilation - Doxygen update - graphics: - revised g3, adapted wups11a to facilitate concatenation - removed wups07a.ps, wups10a.ps - packaging: finally without leading tmp/ Release 2.1.8f of 23jan14: - bugfix: - dualplot segfault on long ylabel - new commands ftvd (to read x-y-dy lines), oixyd, ofs - new functions fac, cata - improved error message from convolution Release 2.1.8e of 19nov13, to be used with frida2libs-131120: - several little bug fixes, thanks to reports by Antti Soininen Release 2.1.8d of 13sep13: - purge of autotools scripts - no libtools needed in m4/ - upgrade to bison-3.0 - replace obsolete macro Release 2.1.8c of 10sep13: - bugfixes: - -Wno-unused-results, otherwise g++-4.8 warns about 'system' - fix xax .h vs .hpp conflict in Makefile.am Release 2.1.8b of 9sep13, comes with frida2libs-130909: - configure.ac automatically sets language standard to C11 - adapt to name and API changes in libreadplus, libyamlfreeze, liblmfit, libtrivia Release 2.1.8a of 1jun13, comes with frida2libs-130601: - modified functionality: - blanks disallowed in expressions (this has broken operators mod, over, ..) - bugfixes: - repair mfj for curve files - fix mfj= - prevent segfault when accessing nonexistent MOM elements - code cleanup - some steps towards cpplint compliance - correct comment header: FRIDA expands to "fast reliable", period. - data type "uint" eliminated Release 2.1.7b of 18feb13, comes with frida2libs-130218: - bugfixes: - reenable external curves (nPar() becomes nP) - new functionality: - function voigt(t,sigma,gamma); requires libcerf - distribution: - directory doc renamed man Release 2.1.7a of 2dec12, comes with frida2libs-121202: - code refactored: - file selection management now hidden in mem.cpp - mystd:: becomes triv:: - strg() goes into namespace triv::, defs.h abbreviates triv::strg as S - main page and file descriptions for doxygen - bugfixes: - repair zentry protection default, spoiled in 2.1.5a or 2.1.6a - mfj= now works - improved behaviour: - mfj also for curve files - new commands: - 'mi' interpolation - 'opa' take absolute value of given parameters - 'opc' copy parameters from another file Release 2.1.6a of 26oct12, comes with frida2libs-121026: - code refactored: - from now on, std=C++11 (temporarily 0x) is required - new library libtrivia in fridalibs - include's thoroughly revised -bugfixes: - constant curve now plotted correctly Release 2.1.5a of 25oct12: - new functionality: - abbreviated plot commands pn, pv, an, av; k selection commands kn, kv - frida.ini defines function keys \f01,\f02 now recognised by libreadln - command mfjd (on the price of a few lines of code duplication from mem.cpp) - improved behaviour: - better error messages from weighing in fit - default fit metric is now q2 = chi^2, now normalized to N-n-1 - info below PS file explains plot symbols Release 2.1.4f of 11oct12: - bugfix in convp Release 2.1.4e of 11oct12, comes with frida2libs-121011: - new functionality: - shift argument in resol() and conv() now optional - convp to use primitive of theory function - code refactored: - Subclasses instead of switch statements in expression nodes (CTree->CNode..) - bugfixes: - autotools clean up => ld -l.. library list now fully created by configure Release 2.1.4d of 1sep12, comes with frida2libs-120901: - improved behavior: - KWW now in double precision - bugfixes: - solved problem with logarithmic plot axes Release 2.1.4c of 9may12, comes with frida2libs-120509: - new functionality: - Debye curve D1 - user interface changes: - 'resol' instead of 'dirac' - new SPHERES format acq52 - improved behavior: - improve curve refinement, especially for log axes (close_enough) - bugfixes: - several improvements in Save_y08 (following bug report by Kerstin Kämpf) Release 2.1.4b of 21dec11: - improved behavior: - guess j=0 and i=0 if nj=1 or ni=1 - bugfixes: - improved handling of r and z ('or', 'oz', 'ms*', 'mfj') Release 2.1.4a of 9nov11, comes with frida2libs-111109: - new functionality: - splitted mfj mfj+ - gsym explain plot symbols - changed dependency: - now requesting yaml-cpp version 0.2.6 => need fridalibs-<date> or later - now compiling under g++ 4.5, with libreadline6 - bugfixes - #include sys/* in curves.cpp needed for mkfifo(3) - simplify and accelerate determination of x grid - several corrections in postscript files Release 2.1.3a of 30apr11: - user interface changes: - command modifier "=" (overwrite) must now be appended - calculator mode merged with main menu: FRIDA _is_ now a pocket calculator - macro $ for last result - graphics macro cleanup (-> wups11a.ps): - sorted and sectioned - rarely used macros deleted - "obsolete" marks now with date - scaling operators now faster ('bind def') - umlaute finally work (save script as latin1) - no optimisation_by_specialisation for uncritical tasks like tack plotting (commands xTacL &c are superfluous) - pset and lset reengineered - column plotting is now broken (but it has become clear at which level it should be re-integrated) - bugfixes: - worked a lot on curve/external Release 2.1.2a of 20feb11, comes with frida2libs-110220: - new functionality: - curve definition via script - built-in functions now self documenting - conditional fit monitoring - Havriliak-Negami function - code restructured: - command execution now in commands.cpp - variable reference var.h separated from expr.h - graphics definitions now wups10a.ps: - many obsolete definitions eliminated - "arrow" replaced by "pfeil" - four predefined color sequences aCol1 .. aCol4 - bugfixes: - error bar plotting - many little things Release 2.1.1a of 01oct10, comes with frida2libs-101001: - new functionality: - 'dd' now shows doc lines, 'ed' allows to edit them via vi - 'op' allows to change all curve parameters at once - 'mpaf' binning with fixed number of input channels per bin - improved behavior: - reduce noise in lDoc (no 'cf'; basic merge in 'mfj') - 'gx', 'gy': restore defaults - frida.ini now in /usr/local/etc, configurable through $prefix - expand ~ in \i command - internal changes: - eliminate remnants of SPHERES/XML read in - eliminate myask template - simplify parameter fixation (now bool, not list) - bugfixes: - repaired 'ry' after 100511 introduction of shared_ptr - file and spectrum references containing i were calculated incorrectly - restore basic \i functionality Release 2.1.0c of 21may10: - bugfixes, among them: - let op ignore data files - set weight to lin if data have no error bars - 'msa' got wrong x for groups of size 1 - error propagation for vectorial arguments - internal changes: - simplify index.cpp, removed test mode, remove unused IndexList Release 2.1.0b of 15may10: - fix bugs introduced by release 100511 (especially by shared_ptr): - enable ody - repair oio when nJ=1 - oy was setting nonsense dy when expr yielded no error - severe errors in error handling within expr Release 2.1.0a of 11may10 (including new frida2libs release): - fix bug in configure.ac introduced in previous release - new release numbering scheme: 2 : Frida implementation 1 : increases when established usage changes 0 : increases when new functionality is added or major bug is fixed a : increases with minor improvements or bug fixes Release 100511: - new functionality: - error propagation now working for 'm' and 'ox', 'oy', .. operations - '\wh' meta command: write history, using GNU history - 'mpaea', 'mpaer': binning that keeps error bars below given bound - 'ge': switch error bar plotting on/off - 'cr': set restrictions for fit range - changes in user interface: - curve evaluation expression: now c[]() instead of f[]() - 'mdy-' removed: to suppress error bars, now use oy y+-0 - improvements in behavior: - suppress menu when answer is already given (oio, ..) - do not leave calc mode on error - bugfixes: - bugfix in plot axis rounding - bugfix mfj: z coordinates, rPar - fix "g" and "m" explanations - fix as-on-disk indicator - internal changes (major code refactoring): - online memory and z-entry main vector now based on shared_ptr - sources split (olf/mem, opr/special1, dualplot/axis) - scan and parts of curve now unified in zentry - reduce .h dependencies (keyword "class"; move implementation to .cpp) - revise exp.cpp thoroughly - purge and simplify macro engine; separate meta commands and macros Release 100429, comes with frida2libs-100429: - new functionality: - 'gd' restore gnuplot dialog (request by Fanni) - bugfixes: - repair several little bugs discovered during JCNS data analysis school - correct frida.ini location - internal changes: - function names -> "clear", "remove" for compatibility with STL Release 100424, comes with frida2libs-100424: - changes in user interface: - get rid of dmake, automake compiles frida.pod - make install now installs man page and aux files (/usr/local/share/frida) - executable renamed frida2 -> frida - bugfixes: - correct file_in (xcoord was reread as ycoord) - improvements in behavior: - improve "df" Change log started 7apr10