NEWS
NMOF 2.10-2
- French: support more datasets
- ....
NMOF 2.10-1 (2024-11-03)
- an example was removed from the manual page of 'NS'
NMOF 2.10-0 (2024-10-20)
- fix bug in bracketing introduced in version 2.9-0
- 'French' supports more datasets:
"F-F_Research_Data_5_Factors_2x3_daily_CSV.zip", and
"market" with frequency "monthly"
- 'French' gains an argument "return.class": supported are
"data.frame" (the current behaviour) and "zoo", which
can easily be transformed to "xts"
- 'Shiller' tries to fetch data from new URL at
https://shillerdata.com/
NMOF 2.9-0
- new function 'approxBondReturn', for approximating the
total return of a (par) bond through its current yield,
duration and convexity, as described in Swinkels (2019;
https://doi.org/10.3390/data4030091)
- 'bracketing' better handles cases when 'fun' evaluates to
exactly zero, matching the MATLAB implementation in the
NMOF book
NMOF 2.8-0 (2023-10-20)
- 'callHestoncf' gains an argument 'uniroot.control', which
allows passing settings for 'uniroot' (to compute implied
vol), and 'uniroot.info'; both arguments work the same way
as in functions 'vanillaOptionImpliedVol' and 'callCF'
- 'trackingPortfolio' now has an argument 'ls.algo', for
specifying settings for method 'ls'
- new function 'minMAD' for computing minimum-MAD
portfolios, as described in Konno and Yamazaki
(1991; https://doi.org/10.1287/mnsc.37.5.519 )
- 'vanillaOptionEuropean' also provides "DvegaDspot" and
"DvegaDvol"
- 'Ritter' has been adapted to new file format
- all functions that allow parallel programming now support
argument 'affinity.list'
- the package now depends on R >= 3.5 (which was released
in 2018)
- the manual has been updated:
http://enricoschumann.net/NMOF.htm#NMOFmanual
NMOF 2.7-1 (2022-10-20)
- various minor documentation updates
- manual has been updated:
http://enricoschumann.net/NMOF.htm#NMOFmanual
- there is an additional public repository at
https://git.sr.ht/~enricoschumann/NMOF
NMOF 2.7-0 (2022-08-19)
- function 'gbm' gains an argument "antithetic": if
TRUE, paths are created based on antithetic variates
- functions 'gbm' and 'gbb' gain an argument
'exp.result', with default TRUE. If FALSE, the log
paths are returned. Function 'gbb' gets an argument
'log', with default FALSE, which matches the
previous behaviour
- new function 'barrierOptionEuropean', for computing
theoretical prices for various barrier-option types
- function 'French' tries harder to evaluate to NULL
when a download fails
- function vanillaOptionAmerican now works for very
small values for M (M <= 3)
NMOF 2.6-0
- function 'randomReturns' gains an argument "exact":
if TRUE, the created matrix has the exact specified
column means (up to numerical, but not sampling accuracy)
- group constraints now work with only a single group
(e.g. in functions 'minCVaR' or 'minvar')
NMOF 2.5-0 (2021-10-20)
- new function 'Ritter', which downloads IPO data
provided by Jay Ritter
- 'gridSearch' now can handle arbitrary lists (before,
only lists of numeric vectors were supported)
- 'French': improve formatting of (some) datasets
NMOF 2.4-1 (2021-04-10)
- the default value for option 'printBar' in all
optimisation routines is now 'interactive()', so
progress bars remain shown in interactive sessions,
but are suppressed otherwise. (For the old
behaviour, set 'printBar' to TRUE.)
NMOF 2.4-0 (2021-04-01)
- fixed: 'minCVaR' no longer ignores minimum and
maximum holding constraints; thanks to Peter Garnry
for reporting on GitHub. Group constraints are
supported, too. See
https://github.com/enricoschumann/NMOF/issues/3 .
- 'randomReturns': argument 'rho' may now be a
correlation matrix
- 'callHestoncf' gains a '...' argument, for passing
settings to integrate
- 'French' supports more datasets
NMOF 2.3-1 (2021-01-19)
- 'minCVaR' gains an argument 'min.return' for
specifying a minimum required return (and another
argument 'm' for specifying expected returns)
- 'Shiller' includes additional columns, such as bond
returns
NMOF 2.2-0
- New function 'minCVaR' for computing minimum CVaR
portfolios, as described in Rockafellar/Uryasev
(2000; http://doi.org/10.21314/JOR.2000.038 ).
For details on implementation, see
http://enricoschumann.net/notes/minimising-conditional-var.html
- New function 'trackingPortfolio'. For details, see
http://enricoschumann.net/notes/return-based-tracking-portfolios.html
- New vignette 'Functions for portfolio selection'.
- 'TAopt' gains a new option 'drop0' (to be passed
via 'algo): if TRUE, zero values are dropped from
the sample of objective-function values during the
computation of the threshold sequence. See
https://stackoverflow.com/questions/63377180/finding-ideal-filter-setting-to-maximize-target-function
- 'French' supports more datasets. For industry
portfolios, the function now also provides "Sum of
BE/Sum of ME". The data are attached as an
attribute "sumBE.sumME". All data-frames attached
as attributes now have the timestamps as rownames.
- The setting-up of constraints matrices in
portfolio-selection functions such as 'minvar' is
now fixed; thanks to 'clcsar' for reporting on
GitHub. Also, the functions now allow group labels
for specifying constraints.
See https://github.com/enricoschumann/NMOF/issues/2 .
NMOF 2.1-0 (2020-04-06)
- 'Shiller': adapt function to new file format
- 'French'/'Shiller': if download fails, the
functions now return NULL (invisibly). Also,
'French' supports additional datasets.
- 'minvar', 'mvFrontier', 'mvPortfolio': the
functions gain arguments 'groups', 'groups.wmin'
and 'groups.wmax', which allow to specify group
constraints
- 'mvPortfolio': new argument 'lambda' for specifying
a risk--reward trade-off
NMOF 2.0-1 (2019-10-20)
- The package now includes the code examples from the
second edition of 'Numerical Methods and Optimization
in Finance". 'showExample' has been updated as well:
it gains an argument 'edition', which defaults to 2.
Also, the default for 'ignore.case' was changed
to TRUE. (To get back the old behaviour of the
function, set 'edition' to 1 and 'ignore.case' to
FALSE.)
- 'French' supports more datasets, e.g. for
momentum. Invoking 'French()' lists the supported
files. Also supported are datasets "market" and
"rf", which provide the market return and the
(so-called) risk-free rate.
- 'resampleC': 'cormat' can be a single number (the
correlation), which is then expanded into a
correlation matrix (this has worked before, but only
for the case of two series)
- new functions 'greedySearch' and 'randomReturns'
- 'DEopt' and 'PSopt' gain a 'drop' option. If FALSE,
the dimension attribute of a solution is kept when
the population is evaluated via a loop,
i.e. functions receive a one-column matrix. Note
that the defaults differ for both functions, so as
to keep both functions' behaviour unchanged.
- a tutorial on optimisation heuristics is
available at https://ssrn.com/abstract=3391756
- a tutorial on backtesting, which makes
much use of the NMOF package, is available
at https://ssrn.com/abstract=3374195
- various documentation updates; new features are
now described at
http://enricoschumann.net/notes/NMOF/
- manual has been updated:
http://enricoschumann.net/NMOF.htm#NMOFmanual
NMOF 1.6-0 (2019-04-01)
- 'French' supports more datasets; invoking
'French()' lists the supported files
NMOF 1.5-0
- new function 'mvPortfolio', for computing efficient
frontiers, with or without cash
- new function 'mvFrontier', for computing
mean--variance efficient portfolios
- new functions 'French' and 'Shiller', for
downloading research datasets
- 'TAopt' gains an option 'thresholds.only': if TRUE,
'TAopt' only computes the threshold sequence and
then exits
- optimisation functions 'LSopt', 'SAopt' and 'TAopt'
gain an option 'nI' (total number of iterations)
NMOF 1.4-0
NMOF 1.3-0
- new vignette 'Solving the N-Queens Problem with
Local Search'
NMOF 1.2-0
- new functions 'bundFuture' and
'bundFutureImpliedRate', for computing theoretical
futures prices and implied repo rates, respectively
NMOF 1.1-0
- new function 'divRatio', for computing the
diversification ratio
NMOF 1.0-0
- 'LSopt' gains an option 'OF.target', which lets the
algorithm stop when a desired objective-function
value is reached
- 'minvar' allows Inf and -Inf as maximum/minimum
weights; the function now also returns the
portfolio's variance
- 'resampleC': if only two series are passed,
'cormat' can be a single number (the correlation)
- various small updates in documentation
NMOF 0.99-0
- new function 'CPPI': simulate a constant-proportion
portfolio-insurance strategy
- new function 'SAopt': optimisation with
Simulated Annealing
- new function 'minvar': compute minimum-variance
portfolios
- manual has been updated:
http://enricoschumann.net/NMOF.htm#NMOFmanual
NMOF 0.40-0 (2016-10-20)
- new function 'xtTickValue', which computes the tick
value for of Australian government-bond futures
NMOF 0.39-0
- new function 'xtContractValue', for computing
contract values of Australian government-bond
futures
NMOF 0.38-0
- fixed: LSopt did not switch off 'printBar' in cases
when 'printDetail > 1'
- updates to documentation of LSopt/TAopt
NMOF 0.37-6
- fixed: 'gbb' failed when only a single path was to
be computed
NMOF 0.37-5
NMOF 0.37-4
- fixed: 'DEopt' did not work for univariate
optimisation models. (Thanks to Torsten von
Bartenwerffer for reporting.)
NMOF 0.37-3
- TAopt: new option 'OF.target', which lets the
algorithm stop when a desired objective-function
value is reached
NMOF 0.37-2
- TA.info: the best solution ('xbest') is now also
provided
NMOF 0.37-1
- new test function 'tfEggholder'
NMOF 0.37-0
- TAopt: experimental/rudimentary plot and print
methods. The methods are invoked if 'algo$classify'
is TRUE (default is FALSE in order to keep old
behaviour)
- there is now a public Git repository at
https://github.com/enricoschumann/NMOF
NMOF 0.36-5
- repairMatrix: new argument 'eps', which specifies
the replacement value for negative eigenvalues
NMOF 0.36-4
- bracketing: the resulting matrix's columns are
named 'lower' and 'upper'
NMOF 0.36-3
- restartOpt: when 'cl' is specified and 'method' is
identical to 'loop', the function will now issue a
warning before changing method to 'snow'
NMOF 0.36-2 (2015-10-20)
- functions from packages other than 'base' are now
explicity imported: 'grDevices', 'graphics',
'stats', 'utils'
NMOF 0.36-1
- TAopt: more informative error message when
objective function evaluates to NA during
computation of thresholds
NMOF 0.36-0
- experimental: new function 'LS.info' for accessing
information during optimisation run (eg, current
iteration)
NMOF 0.35-1
- small correction in parameter description in
'callMerton' (suggested by Laurs Leth)
NMOF 0.35-0
- new function 'pm' for computing partial moments
NMOF 0.34-2 (2015-05-07)
- fixed: 'DEopt' did not properly handle the
'minmaxConstr' option, which could result in
solutions that violated the box constraints.
(Thanks to David Ashear for reporting.)
NMOF 0.34-1 (2015-02-03)
- no user-visible changes (see ChangeLog for non-visible changes)
NMOF 0.34-0 (2014-11-05)
- Functions such as 'mclapply' from package 'parallel' are imported;
'parallel' is no longer attached when these functions are used
(ie, the package is not added to the user's search path). [Please
note that the CRAN version of NMOF has required R (>= 2.14) for
some time now, and since that R-version package 'parallel' has
been available anyway.]
- report 'Distributed computations with the NMOF package' was
updated
NMOF 0.33-0
- updates in documentation and vignettes
NMOF 0.32-1
- argument 'offset' in 'ytm' can be a vector (that worked before as
well, but is now documented)
- several small updates in documentation
NMOF 0.32-0
- new function 'colSubset'
- experimental: new function 'TA.info' for accessing information
during optimisation run (eg, current iteration)
- rewrote example in 'Asset selection with Local Search'
NMOF 0.31-2
- various small updates in documentation and
vignettes (e.g. links to mailing lists)
NMOF 0.31-1
- expanded vignette 'Overview of the NMOF package'
NMOF 0.31-0
- new function 'callMerton' for European calls under Merton's
jump--diffusion model
- new vignette 'Overview of the NMOF package'
- smaller changes/updates in documentation
NMOF 0.30-0
NMOF 0.29-2
- function 'ytm' has an argument 'offset' now; see ?ytm for examples
NMOF 0.29-1
- function 'ytm' is slightly faster now
- small additions to documentation
NMOF 0.29-0
- added function 'drawdown'
- Code examples in subdirectory 'NMOFex' (manual)
updated.
- small updates in documentation
NMOF 0.28-2 (2013-09-06)
- vignettes are now all placed in vignettes, again [see NEWS entries
v0.27-5 (2013-04-26) and v0.26-0 (2012-09-19)]; small changes in
vignettes
NMOF 0.28-1
- 'snow' was removed from 'Suggested'. Whenever distribution of
computations is done via method 'snow', package 'parallel' is now
used. Note that this is currently experimental and little-tested;
feedback is thus much appreciated.
- in 'callHestoncf' and 'callCF', the upper integration limit is now
'Inf' (suggested by Wolfgang H\"ormann). This may make it easier
to compare different numerical implementations (but accuracy with
the old cutoff value was sufficient: numeric differences in prices
are of the order of a few hundredths of one cent).
NMOF 0.28-0 (2013-06-10)
- 'multicore' was removed from the 'Suggested' packages. (Package
'parallel' had already been used -- if possible -- since version
0.25-6; see the NEWS entry.)
- the package now 'Depends' on R version >= 2.14 (because of
'parallel')
- new functions 'gbm' and 'gbb' added (geometric Brownian
motion/bridge)
NMOF 0.27-5
- since vignettes are built offline, the number of restarts was
increased again; cf. NEWS entry for v0.26-0 (2012-09-19)
- fixed a small error in help page for 'vanillaBond'
- internal changes in option pricing functions; more tests added for
dividend handling
NMOF 0.27-4
- function 'putCallParity' added
- for 'vanillaOptionEuropean', a parameter 'vol' can be passed via
'...' (which is translated into 'v' by squaring and ignored if 'v'
is already specified)
- a few internal changes and doc changes
NMOF 0.27-3
- Experimental: 'vanillaOptionEuropean' has arguments 'model'
(default is NULL which corresponds to Black-Scholes-Merton)
and '...'. This allows to pass other models; for
example, 'heston'. With 'greeks' set to TRUE, the function
also returns (some) derivatives. More will be added over
time, so the results should be extracted by name, not by
position (eg, x[["delta"]], but not x[[2L]]).
(Adding derivatives for non-BSM models was suggested by
Nitesh Kumar.)
NMOF 0.27-2
- Small corrections in docs for 'ytm' and
'vanillaOptionEuropean'.
NMOF 0.27-1
- Added functions 'ytm' and 'vanillaBond': compute
yield-to-maturity and price of plain-vanilla bond.
NMOF 0.27-0 (2012-11-29)
- Function 'qTable' has new arguments 'funs', 'tabular.format'
and 'skip'; see vignette 'qTableEx' and ?qTable.
The function now (correctly) adds more space at the end of
the tabular (unless 'skip' is FALSE, which corresponds to the
previous behaviour).
NMOF 0.26-4
- Minor changes in documentation and examples.
- Code examples in subdirectory 'NMOFex' (manual)
updated.
NMOF 0.26-3
- Important: all option pricing functions that return lists of
named elements (callCF, vanillaOptionE/A, callHestoncf)
now call the theoretical option value just 'value'. Before,
they returned 'price' or 'callPrice', which could be confusing
for instance in case of implied vol calculations.
- DEopt, GAopt and PSopt now also return the initial populations
(but only if 'algo$storeSolutions' is TRUE)
- More unit tests added.
NMOF 0.26-2
- Changes in documentation and unit tests.
NMOF 0.26-1
- Small changes in documentation (option pricing
functions).
- Code examples in subdirectory 'NMOFex' (manual)
updated.
NMOF 0.26-0
- Vignettes (except for one) are now built offline
to reduce build/check time for R-Forge/CRAN.
(As suggested by Kasper Daniel Hansen in this post:
https://stat.ethz.ch/pipermail/r-devel/2012-September/064810.html )
- Small changes in documentation.
NMOF 0.25-9
- Added functions 'vanillaOptionEuropean',
'VanillaOptionAmerican' and 'vanillaOptionImpliedVol'.
- Test files have been reorganised (there are now about
700 unit tests; they all can be run from
/unitTests/runTests.R).
- New maintainer e-mail address.
NMOF 0.25-8
- all opt-functions now return 'initial.state' (which is
the value of '.Random.seed' when the function is
called). All the warnings of '?Random' apply (in
particular, see section 'Note'); the preferred way
is still to set a seed explicitly with 'set.seed'.
NMOF 0.25-7
- minor internal changes (the only visible update are small
changes in some of the examples)
NMOF 0.25-6
- Package 'parallel' is now suggested. In functions gridSearch,
restartOpt, bracket: with method 'multicore' the functions
first check if package 'parallel' is available; if not, they
look for package 'multicore'
- 'restartOpt' has a new argument 'best.only': if TRUE,
only the best run is reported. Default is FALSE.
NMOF 0.25-5
- Added checks in DEopt that vectorised functions
return objects of correct size (will be added to PSopt
and GAopt as well).
- Removed NEWS.Rd (NEWS now back to plain text).
NMOF 0.25-4 (2012-07-08)
- Added checks on the parameters for 'callCF'; added
new arguments 'uniroot.control', which allows to pass
the settings for 'uniroot' (to compute implied vol),
and 'uniroot.info'.
(Computation of implied vol would fail when spot equalled
strike and r equalled q; thanks to Douglas McLean for
reporting this case.)
NMOF 0.25-3
- Small changes in the vignettes (mostly layout).
- Code examples in subdirectory 'NMOFex' updated.
NMOF 0.25-2
- Small changes in the vignettes (mostly layout).
- In 'TAopt', 'LSopt': if 'x0' is not a function, it is
initialised with 'eval(x0)'; thus, it can be an expression.
- Several minor internal changes.
NMOF 0.25-1
- Edited some of the examples in the documentation; minor
modifications in docs.
- Code examples in subdirectory 'NMOFex' updated.
NMOF 0.25-0
- All the R-code examples from the book are now available
in the package through function 'showExample'; eg,
'showExample("equations.R")'
(The scripts are stored in subdirectory 'book'.)
- A first draft of the 'NMOF Manual' is available from
http://enricoschumann.net/NMOF.htm . The manual's code
examples are collected in file 'NMOFman.R' (in subdirectory
'NMOFex'). The manual supersedes 'Examples and Extensions for
the NMOF package'.
- The tests on specific TA applications (minimum variance,
tangency portfolio) have been removed; the code was added to
the manual.
NMOF 0.24-1
- Small changes in vignettes.
- Re-organised existing/added new unit tests.
NMOF 0.24-0
- Added function 'resampleC': allows to sample with replacement from
arbitrary numeric vectors (ie, samples) and making the samples (rank)
correlated.
- 'DEopt' and 'PSopt' now have an argument 'algo$minmaxConstr'. If
TRUE, 'algo$min' and 'algo$max' are become constraints. These
constraints are implemented through an internal repair function that
is called before any user-defined repair function.
NMOF 0.23-3
- fixed: 'restartOpt' could not take an argument named 'X'
via the '...' argument.
- Unit tests added in unitTests1.R.
NMOF 0.23-2
- fixed: with 'algo$storeSolutions==TRUE', functions 'LSopt'
and 'TAopt' only returned the current (=accepted) solution
in a given iteration, but not the candidate solution.
(These data can be found in 'xlist'. See ?TAopt and
?LSopt, under 'Value'.)
- Unit tests added in unitTests1.R.
NMOF 0.23-1 (2012-03-04)
- Added 'Depends: R (>= 2.10)' to DESCRIPTION (necessary
because of file compression).
NMOF 0.23-0
- Dataset 'optionData' was added.
- More tests were added for function 'callCF'; and its
documentation was updated.
NMOF 0.22-3
- with 'algo$printDetail = TRUE', functions DEopt, GAopt and
PSopt give more information
- vignette 'DEnss.Rnw' was shortened to reduce build-time of
the package (removed parts are now in 'Examples and
Extensions for the NMOF package')
- code examples in subdirectory 'NMOFex' updated
NMOF 0.22-2
- minor changes in vignettes/documentation
- code examples in subdirectory 'NMOFex' updated
NMOF 0.22-1
- tests for distributed computing have been organised into a
report, 'Distributed computations with the NMOF package',
available as a pdf-file from
http://enricoschumann.net/files/NMOFdist_Windows.pdf
and
http://enricoschumann.net/files/NMOFdist_Linux.pdf
(package 'multicore' is only available on Linux)
- the code for 'Distributed computations with the NMOF package'
is available in file 'NMOFdist.R', stored in subdirectory
'NMOFex' (the file 'multicore.R' has been removed from
subdirectory 'unitTests')
- unit tests updated
NMOF 0.22-0 (2011-12-10)
- documentation updated
- slight changes in vignette 'DEnss.Rnw' (to reduce time
to build package)
NMOF 0.21-5
- fixed: in 'GAopt', optional arguments for 'mclapply'
(multicore) were not passed. An example for passing an
argument was added to file 'unitTests/multicore.R'.
- documentation for 'GAopt' updated
- code examples in subdirectory 'NMOFex' updated
NMOF 0.21-4
- 'GAopt' now has an argument 'algo$methodOF' that supports
'loop' (default) but also 'snow' or 'multicore'. See
'Examples and Extensions for the NMOF package' (with code
in subdirectory 'NMOFex') for an example.
- vignette 'TAportfolio' updated (now with example for
rank-deficient matrix)
NMOF 0.21-3
- fixed: 'gridSearch' with 'printDetail=TRUE' did not give
a meaningful message
- experimental: 'GAopt' now has an argument 'algo$methodOF'
that can be 'loop' (default) but also 'snow' or 'multicore'
(currently, only 'snow' is operational). If 'algo$methodOF'
is not 'loop', the evaluation of the objective function will
be distributed. See 'Examples and Extensions for the NMOF
package'(with code in subdirectory 'NMOFex') for an example.
NMOF 0.21-2
- fixed: with 'printDetail' greater than zero, 'TAopt' did
not print the best solution, but the current solution
(but internal book keeping worked correctly, and the best
solution was returned)
- 'bracketing', 'gridSearch', 'restartOpt': when 'cl' argument
is not NULL, then argument 'method' is set to 'snow' (but as
before it is checked whether package 'snow' is available)
- the latest pdf-version of 'Examples and Extensions
for the NMOF package' is now available from
http://enricoschumann.net/files/NMOFex.pdf
- code examples in subdirectory 'NMOFex' updated
NMOF 0.21-1
- the 'printDetail' option for opt-functions is now more consistent:
a positive integer 'i' greater than one means that information
is printed at every 'i'th iteration
- minor changes in vignettes
- unit tests for 'callCF' added (in file 'unitTests/unitTests5.R')
NMOF 0.21-0
- added function 'callCF' as a wrapper for pricing
European calls with the characteristic function;
characteristic functions for BSM, Merton, Bates, Heston
and Variance-Gamma were also added
- when 'algo$q' in 'TAopt' is zero, all thresholds are set
to zero
- code examples in subdirectory 'NMOFex' updated
- CITATION file now points to the book's homepage http://nmof.net
NMOF 0.20-1
- the 'keepNames' argument of function 'gridSearch' is now
supported
- more examples added for 'gridSearch' (and corresponding tests
in 'unitTests/unitTests2.R')
- fixed: some typos in vignette 'Vectorised objective functions'
NMOF 0.20-0 (2011-10-20)
- *first CRAN release*
- the 'printDetail' argument for 'LSopt' now recognises
TRUE and FALSE (as before), but also an integer 'i'
greater than 1. In the latter case, information on the best
solution is printed at every 'i'th step.
- minor cleanups in documentation
NMOF 0.19-4
- small changes in vignette 'Repairing solutions'
- small internal changes in 'GAopt' and 'DEopt' (auxiliary functions
like 'switch' and 'shift' have been inlined)
- code examples in subdirectory 'NMOFex' updated
NMOF 0.19-3
- fixed: a bug had been introduced into 'GAopt' in version 0.19-2
(revision 88), which let the population grow to algo$nP+1
- minor changes in documentation/examples
NMOF 0.19-2
- minor cleanups in documentation
NMOF 0.19-1
- minor cleanups in documentation
- minor internal changes in 'restartOpt' (passing of the '...' arguments
for method 'snow')
NMOF 0.19-0
- 'bracketing', 'gridSearch' and 'restartOpt' now support distributed
evaluation of 'fun' via 'clusterApply' from the 'snow' package. As a
side effect, the interface of 'gridSearch' and 'restartOpt' has
changed: instead of an option 'multicore', they now have an argument
'method', which can be 'loop', 'multicore' or 'snow'. See the
documentation of these functions.
- for consistency, the 'method' argument of 'bracketing' expects 'vectorised'
rather than 'vectorise' (but both work, and also the '-ize' spellings)
- substantial revision of documentation/examples
- more intelligible error/warning messages in 'bracketing' added
- small changes in vignettes 'Robust Regression with Particle Swarm
Optimisation and Differential Evolution' and 'Repairing solutions'
- file 'multicore.R' was moved to subdirectory inst/unitTests;
thus, it is installed with the package. Some tests for package 'snow'
were added.
- more tests added (subdirectory unitTests); in particular, tests are
more comprehensively commented now
NMOF 0.18-1
- fixed: 'restartOpt' with 'multicore = TRUE' did not correctly
pass '...' arguments to 'fun'
- fixed: typo in message issued by 'gridSearch'
- new file 'multicore.R' added in subdirectory tests; it contains a number
of timing tests to see if the 'multicore' option works. (The tests are
not run when the package is built.)
- minor updates in documentation
NMOF 0.18-0
- 'restartOpt' now has option 'multicore'
- the 'method' option of function 'xwGauss' can now take on values
'hermite' and 'laguerre'
- documentation updated
- new examples added in 'Examples and Extensions for the NMOF package'
(see subdirectory NMOFex)
- test cases added for 'restartOpt' and 'xwGauss'
(see subdirectory unitTests)
NMOF 0.17-0
- functions for Gaussian integration added: 'xwGauss' computes nodes and
weights; 'changeInterval' transforms the nodes/weights to arbitrary
intervals. Currently, only method 'legendre' is supported.
- documentation updated
- more tests added for opt-functions (for returned objects 'Fmat'
and 'xlist')
NMOF 0.16-2
- all opt-functions now have arguments 'storeF' and 'storeSolutions'
(passed through 'algo'). If the latter is TRUE, intermediary results
will be stored in a list 'xlist' that is returned by the function
(what exactly 'xlist' contains, depends on the specific function)
- minor revision in vignette 'Robust Regression with
Particle Swarm Optimisation and Differential Evolution'
- NEWS file can now be found under inst/NEWS.Rd
- internal changes: a number of test utilities have been added
(not exported); see, for instance, ?checkList
NMOF 0.16-1
- fixed: 'bracketing' had not been added to the NAMESPACE file (now it is)
- tests for 'bracketing' added (see directory unitTests)
NMOF 0.16-0
- function 'bracketing' added
- minor changes in function 'MA' (added checks)
NMOF 0.15-6
- vignette for 'qTable' added/corrected
NMOF 0.15-5
- 'qTable' revised (user-specified labels are now possible)
- (very) short vignette for 'qTable' added
- minor changes in code/documentation/examples
NMOF 0.15-4
- experimental: 'DEopt' takes further arguments 'storeF' and 'storeSolutions'
(through list 'algo'). If 'storeF' is FALSE, objective function values are
not stored ('Fmat' is set to NA; see ?DEopt). If 'storeSolutions' is TRUE,
all population matrices are stored for every generation. This should be
helpful for diagnostic checking (and demonstration purposes), but may use
up a lot of memory for larger problems; hence default is FALSE.
(These settings will either be removed from 'DEopt' or be added to all
opt-functions in one of the next package versions.)
NMOF 0.15-3
- new vignette ('Vectorised objective functions') added
- more safeguards added to 'gridSearch'
NMOF 0.15-2
- function 'gridSearch' now takes a list 'mc.control' as an argument;
it allows to pass settings to 'mclapply'
- more tests were added (see unitTests.R)
- minor changes in code/documentation/examples
NMOF 0.15-1
- more tests were added (see unitTests.R)
- minor changes in code/documentation/examples
NMOF 0.15-0
- function 'gridSearch' can now evaluate a function that expects
a list or a vector as its first argument
- test cases for 'gridSearch' added (in unitTests/unitTests.R)
- 'DEopt' can take a vector 'F' to set specific step sizes for each
decision variable (this actually worked before but is now documented
and tested)
- 'PSopt' can take a function 'changeV' and a logical 'loopChangeV'
(passed via the list 'algo'); 'changeV' allows to impose restrictions
on the velocity (see the code in directory NMOFex for an example)
- more checks were added in opt-functions
- small changes in the vignettes (in particular, seeds are set now)
- minor changes in documentation/examples
NMOF 0.14-2
- experimental: 'gridSearch' now an has argument 'multicore'; if TRUE,
the function calls 'mclapply' (from the multicore package) to
evaluate argument 'fun'. Currently added only for cross-platform
testing (in particular, to see how R CMD check reacts under Windows).
- directory NMOFex was updated
- small correction in output of 'TAopt'
NMOF 0.14-1
- test cases for portfolio optimisation added (in unitTests/unitTests.R)
NMOF 0.14-0
- function 'gridSearch' was added
NMOF 0.13-6
- an initial population in 'DEopt', 'GAopt' and 'PSopt' is now passed
through 'algo$initP' (before, a population could be passed via 'algo$mP')
- directory NMOFex was updated
- documentation was updated
NMOF 0.13-5
- directory NMOFex was updated
- internal changes in several functions
- GAopt.Rd was updated
NMOF 0.13-4
- directory NMOFex was updated
- minor internal changes in several functions
NMOF 0.13-3
- directory NMOFex was added; it contains the code for
'Examples and Extensions for the NMOF package'
- documentation updated; minor changes in examples and vignettes
NMOF 0.13-2
- documentation, checks, unit tests added for function 'GAopt'
NMOF 0.13-1
- the population in 'GAopt' is now of mode logical (mistaking a logical
vector for a numeric one is less harmful than the other way around)
NMOF 0.13-0
- function 'GAopt' added (minimisation by a Genetic Algorithm)
- several unit tests added
- documentation revised (thanks to Manfred Gilli for comments)
NMOF 0.12-9
- fewer simulation runs in vignettes to reduce build time
NMOF 0.12-1
- documentation has been revised
NMOF 0.11-1
- a number of test functions have been added (see ?testFunctions)
- new examples added for 'DEopt' and 'TAopt'
- vignettes have been revised
NMOF 0.10-1
- opt-functions now have 'printBar' and 'printDetail' option
(set via 'algo')