25 Sep 15:

- Fixed bug in Suave.tm (oversight of 'nmin' argument).


7 May 15:

- Fixed sign error in Cuhre's Rule.c (copy-&-paste error from
  higher-precision weights in degree-9 rule).


31 Mar 15:

- Version 4.2: Added flag for resetting the state even if a state
  file is available in Vegas (Bit 5 of 'flags').  Together with
  Bit 4 (retain state file) the grid adapted for one integrand
  can be re-used on another integrand.

- Added --with-real=10 and --with-real=16 configuration options
  for higher-precision versions of Cuba.


26 Nov 14:

- Divonne now applies Flatten to the Given list, hence either
  a list of coordinates (as before) or a list of points can be
  given.

- Tweaked MathLink code for compatibility with older Mathematica
  versions.


25 Nov 14:

- Version 4.1: Added 'ninsuf' argument to Suave.
  When computing the integral value of a subregion, samples from a 
  former pass contribute only of their number is larger than ninsuf.
  Increasing ninsuf may reduce jumps in the chi^2 value.


25 Nov 14:

- Fixed subtle bug in Cuhre which could lead to longer run times
  than in versions 1 and 2.

- Fixed miscounting of degrees of freedom in rare cases in Suave.


9 Oct 14:

- Divonne now passes the userdata argument to the peakfinder
  function, too.


27 Aug 14:

- Fixed problem due to which CUBACORESMAX was effectively ignored.

- Fixed issues with MathLink compile for Mathematica 10.


15 Aug 14:

- Version 4.0: distinguishes Accelerators (GPUs) and Cores.
  New distribution strategy (see manual), e.g. can now prescribe
  maximum number of points per core, necessary for accelerators,
  allows for load-levelling on cores.

- No. of cores/accelerators and max. points per core/accel
  can be set with environment variables
  CUBACORES (as before) and CUBACORESMAX (or API call cubacores),
  CUBAACCEL and CUBAACCELMAX (or API call cubaaccel).
  API calls generally supersede the environment.

- Can choose minimum verbosity level via environment variable
  CUBAVERBOSE = 0..3 (or API call cubaverbose).

- Can start cores/accels explicitly via cubafork/cubawait calls,
  or have the integrator keep them running at exit.


18 Apr 14:

- Fixed uninitialized variable in update of Apr 11 that could lead
  to a potential segfault in Divonne.


11 Apr 14:

- Added invocation of worker init/exit functions also for the master
  whenever the number of samples is too small to be distributed.


21 Mar 14:

- Fixed glitch in Sobol quasi-random numbers for the long long int
  versions introduced in the last update (forgotten typecast).


18 Mar 14:

- Fixed infinite loop in Sobol quasi-random numbers for maxeval
  values >~ 2^30 (32-bit versions) or 2^62 (64-bit 'll' versions).


22 Jan 14:

- Removed 'Chop' from the Mathematica sampling procedure, which would
  introduce an absolute lower scale for integrals quite close to zero.


8 Jan 14:

- Restricted detection of Qt to version 4.


18 Dec 13:

- Minor fixes in the MacOS build of partview (thanks to Hong Xu).


11 Dec 13:

- Version 3.3: Added new argument 'nvec' to let the integrand
  function have more than one point at a time, e.g. to take advantage
  of vectorization. 


5 Nov 13:

- Fixed MathLink compilation issues with MacOS 10.9/clang++.

- Fixed spurious warning in partview.


25 Sep 13:

- Fixed issue with distribution of points to cores.  Because of
  rounding up the number of points for each core it could happen
  that the last one got nothing and kept waiting indefinitely.

- Fixed bug in shared memory allocation of Divonne.

- Added Korobov tables for Divonne extending the integration
  dimension up to 257.


17 Sep 13:

- More compliance: Repaired some compiler hiccups.


7 Aug 13:

- Version 3.2: Moved all variable-size arrays to alloca and
  cleaned up other bits that would lead to compiler warnings
  on select systems.

- Cuba now compiles with clang and icc (and even C89 compilers).

- Fixed bug in chi-square determination in Cuhre introduced in 3.1.

- Fixed bug in Ranlux for luxury level > 24.


6 Jun 13:

- Fixed segfault in repeated invocation of Divonne.


4 May 13:

- Version 3.1: Added check-pointing (state file) for Suave,
  Divonne, Cuhre, too.  Implementation by B. Chokoufe.

- The Suave, Divonne, and Cuhre API calls have changed w.r.t.
  Version 3.0 ('statefile' argument added).

- Improved handling of infinities by Divonne.


28 Mar 13:

- Fixed segfault in parallel Divonne for integration rules
  (key = 7, 9, 11, 13).


25 Mar 13:

- Fixed segfault in parallel Divonne for non-Korobov random numbers.


9 Jan 13:

- Fixed bug for parallel Divonne, the 'children' fd_set was not
  properly initialized.


21 Dec 12:

- Fixed bug for parallel Divonne and ncomp > 1.
  (Workers transmitted only partial results and thus the master
  waited indefinitely for data.)


27 Nov 12:

- Fixed bug when running Divonne with ngiven != 0 and CUBACORES > 1.


6 Sep 12:

- Added functions for (de)initialization of worker processes
  (e.g. close file descriptors before exit).


3 Jul 12:

- Added fflush(NULL) before fork to avoid multiple write-out
  of buffered content at child's exit(0).


17 Apr 12:

- Added 'keep state file' flag (bit 5) to not remove the state
  file in Vegas even if the integration terminated normally.


19 Mar 12:

- Fixed two bugs in MathLink interfacing, obvious oversight from
  last release.


16 Feb 12:

- Added shared memory communication for the processes running
  in parallel.


24 Nov 11:

- Significantly rearranged Divonne, e.g. unrolled the recursion
  on regions, for better parallelizability.

- Improved parallelization through DoSample.

- Automatic detection and usage of the free cores on a machine,
  or else set CUBACORES to the number of cores one wishes to
  utilize, with negative numbers meaning "up to" depending on
  availability (e.g. -2 means "use up to two free cores").


12 Aug 11:

- Version 3.0: Added parallelization, currently 'only' through
  the DoSample routine.  Uses fork/wait so integrands do not have
  to be reentrant.

  Specify number of cores in environment variable CUBACORES.
  C/C++/Fortran only, Mathematica users need to replace MapSample
  by ParallelMap or similar (as before).


18 Jun 11:

- Fixed problem with inner integration bounds depending on outer
  ones in the MathLink executables.


15 Feb 11:

- Moved partview to Qt 4.

- Rectified error reporting via longjmp, in particular avoiding
  sending $Failed twice in MathLink which would upset the
  following communications.


13 Sep 10:

- Added iteration number to integrand's optional parameters
  (Vegas and Suave).

- Fixed initialization problem when using state file in Vegas.

- Added tests for MathLink to configure.


20 Jul 10:

- Fixed severe bug in divonne/Split.c (wrong sign in SignedDelta
  macro).


14 Jul 10:

- Disabled optimization for gcc 4.2.x and 4.4.3, which would lead 
  to an Internal Compiler Error when compiling Cuba, see
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40237
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42956


21 Jun 10:

- Fixed problem with bashy syntax in tools/mcc.


8 Jun 10:

- All Cuba functions now reentrant, except for gridptr_ and griddim_
  in Vegas, which are intentionally preserved across calls.


19 May 10:

- Version 2.0: Changed invocations.

- Added void *userdata to be passed to integrator.

- Promoted integrand to int function, has to return 0 if successful,
  otherwise integrator terminates immediately.

- Moved all global variables (common blocks) to argument list.


12 Feb 10:

- Added Ranlux pseudo-random number generator.
  Luxury level 0 (mis)used for Mersenne Twister branch
  (but observe that Luxury level 24 = Luxury level 0).

- Changed external variable mersenneseed to
  struct { unsigned int level, seed; } cubarandom;


22 Jul 09:

- Fixed potential segfault in Split.c of Divonne, thanks to
  Andreas v. Manteuffel.


29 May 09:

- Added flushing of grids in Vegas through a negative grid number.


25 May 09:

- Removed explicit pointer reference from reallocatable
  "region_" array.


8 May 09:

- Improved memory handling in Divonne.


8 Apr 09:

- Version 1.6: Improved memory handling in Cuhre.
  Thanks to Valery Yundin for pointing out the problem.


6 Mar 09:

- Fixed segfault in Divonne if all samples from a region returned NaN.

- Reinstated fcc to fix static linkage problem with mcc 7.


10 Feb 09:

- Removed dependence on fcc script.


19 Jan 09:

- Added missing #include <stdlib.h> to partview.cpp.


15 Jan 09:

- Fixed problem with MathLink compilation for Mathematica 7.


5 Dec 08

- Version 1.5: Added possibility to set Mersenne Twister
  random seed.

- Introduced function MapSample to map the integrand over
  the points, whose default value Map can be replaced e.g.
  by ParallelMap.


15 Feb 08

- Added further check to Suave for sharp-edged functions.


15 Jan 08

- Fixed bug in makefile.in w.r.t. DESTDIR.


2 Jan 08

- Fixed minor bug in invocation of IniRandom in Suave.


19 Dec 07

- Version 1.4: Added new flag (bit 4), to turn off smoothing of
  the importance function for sharp-edged functions.

- Improved configure for Cygwin.  Now compiles MathLink
  executables `out of the box'.


30 Nov 07

- Fixed detection of variable-size arrays in configure.ac.

- Minor fixes for autoconf 2.60.


30 Aug 07

- Added passing of weight information to the integrand routine
  in Vegas and Suave.  Mathematica versions use $Weight.


7 Mar 07

- Documented the ll versions in the manual.


1 Mar 06

- Version 1.3: added long long int versions, i.e. all
  number-of-points-like quantities are now long long int
  instead of int.  The corresponding names are prefixed with
  "ll", e.g. llVegas.


5 Jan 06

- Corrected a number of declarations so that changing the "number"
  typedef in stddecl.h to a longer integer should work now.
  Note that this bugfix has NO EFFECT if the "number" typedef
  was not changed by hand!


31 Aug 05

- A small patch considerably reduces the "mysterious" problem
  in Vegas and Suave that further iterations on a more or less
  optimal grid would often degrade the grid.


2 Jun 05

- Added some #ifdefs to make the compile completely silent.

- Changed HUGE_VAL to DBL_MAX to avoid problems with icc.


7 Mar 05

- Extended Divonne's Korobov tables.

- partview now sorts the list of rectangles so that the smallest
  ones come on top.


2 Mar 05

- Fixed "mysterious" problem where Divonne would report a
  larger-than-requested error even though enough samples were
  available.


17 Feb 05

- Rewrote partview.cpp with tabbed window.

- Moved sources to src/{vegas,suave,divonne,cuhre}.
  The original names would get into the way of the Mathematica
  executables on OSX's case-insensitive file system.


15 Feb 05

- configure now disables compilation of demo-fortran if no
  Fortran compiler is found.


9 Feb 05

- Added some explicit typecasts and other tidbits such that
  Cuba compiles successfully also with a C++ compiler now.


7 Feb 05

- Added erf implementation in case some "C99 compliant" compiler
  like M$ Visual C++ in fact has no erf.


4 Feb 05

- Added partview.m for Mathematica.


3 Feb 05

- Added proper autoconf configure.

- Added cuba.F, a Fortran chooser which makes the invocation
  of the Cuba routines still simpler from Fortran.

- Straightened out the contexts of the MathLink executables.


2 Feb 05

- Substituted preprocessor variable NBATCH by run-time configurable
  global variable vegasbatch_.

- Added checks on ncomp.


1 Feb 05

- Added a partition viewer which displays the tesselation of the
  integration region on screen.  Needs Qt.


27 Jan 05

- Added a preprocessor flag NO_LONG_DOUBLE to disable the use
  of long doubles on systems that don't have it.


25 Jan 05

- Rearranged Vegas to sample in batches of NBATCH points to
  reduce memory consumption.


21 Jan 05

- Fixed bug in Divonne: Final result was wrong if not enough
  samples left for Phase 3.


19 Jan 05

- Updated manual re pseudo-random sampling.


17 Jan 05

- Introduced "number" typedef, might be useful when using wide ints.
  Not well tested, though.

- Substituted [sd]rand48 by Mersenne Twister generator.


14 Jan 05

- Added pseudo-rng (bit 3 in flags).

- Collected common declarations in stddecl.h.

- Better checking of dimension (e.g. in Divonne, all cases).


12 Jan 05

- Updated manual re vegas{grid,state}.


23 Dec 04

- Fixed a memory leak in Cuhre.


18 Nov 04

- Added vegasstate load/restore of internal state.


16 Jul 04

- Added vegasgrid.

