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