version 0.4-14 (13-08-2021):
-   Clang: kr_pat_scan.cpp:1472:12: warning: function 'yyinput' is not needed and will not be emitted [-Wunneeded-internal-declaration] 

version 0.4-13 (08-08-2021):

- fixed warnings:
  kr_io.cpp:891:9: warning: 'char* strcat(char*, const char*)' accessing 631 or more bytes at offsets 6719 and 7349 may overlap 1 byte at offset 7349 [-Wrestrict]
  kr_io.cpp:868:9: warning: 'char* strcat(char*, const char*)' accessing 631 or more bytes at offsets 6719 and 7349 may overlap 1 byte at offset 7349 [-Wrestrict]
- fixed webpage links (http --> https)

version 0.4-12 (16-09-2019):

- made C++11 a requirement, to use C99 code in C++
- fixed useDynLib roxygen issue
- fixed original SNNS url
- fixed strcat warnings and some insignificant gcc9 warnings

version 0.4-11 (10-08-2018):

- removed unreliable web link in documentation
- fixes for warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
- fix for kr_funcs.cpp:301:32: warning: 'functionDescr.FuncInfoDescriptor::number' may be used uninitialized in this function [-Wmaybe-uninitialized]
   return( functionDescr.number );

version 0.4-10 (08-12-2017):

- changed title as requested by CRAN
- added all original SNNS authors as authors of the package, as requested by CRAN
- fixed the Found no calls to: ‘R_registerRoutines’, ‘R_useDynamicSymbols’ note
- changed size of some name buffers from 10 to 100, to get rid of "-Wformat-overflow" warnings
- speedups for data normalization
- SnnsRObjectFactory now has an optional parameter to deep-copy objects

version 0.4-9 (16-12-2016):

- added demos kindly provided by Seymour Shlien
- single quoted 'RSNNS' in DESCRIPTION (required by CRAN maintainer)
- added a check for NULL in the unit sorting introduced in 0.4-7, to prevent a warning for architectures with no output.
- now checking if the input is numeric, after a conversion to matrix. Before, string input yielded an error in the C++ code and R stopped.
- fixed a bug in the rbfDDA algorithm, related to memory allocation. This will have affected every network architecture that is growing in size of units.
- reimplemented SnnsR__genericPredictCurrPatSet and parts of SnnsR__createPatSet in C++, to get general speed-ups.
- fixed handling of the target variable in DLVQ. Was only working for numeric values starting from 0. Now converting to factor
- added outputActFunc as a parameter to mlp()
- bugfix: changed "package" to "PACKAGE" in .Call calls

version 0.4-8: --

version 0.4-7 (05-06-2015):

- fixed a problem occurring with pruned networks, that order of units was not preserved, so that predictions given were wrong (columns changed)
- put NeuralNetTools in suggests field and now mentioning it in the documentation

version 0.4-6 (22-12-2014):

- fixing more memory access issues, discovered by valgrind
- included a bugfix by Tamer Rizk from github, slightly modified
- fixed some "dangling else" warnings
- fixed warnings for misuse of abs() function for floating point values; fabs has to be used in that case
- removed @S3method keywords to fix warnings in roxygen2-4
- now using R's random number generator instead of the system's one

version 0.4-5 (22-05-2014):

- fixing memory access issues, discovered by valgrind and AddressSanitizer
- actually freeing memory now in the destructor
- switch to roxygen2
- elman, jordan: shufflePatterns is now FALSE by default; also changes this in the low-level demo
- included changes of Vitalie Spinu from github
- changed in demos using iris the shuffling to: 
  irisShuffled <- iris[sample(nrow(iris)),]
- fixed bug in iris demo: plotRegressionError was called with targets and fits the wrong way around
- mentioned javaNNS in the documentation
- mentioned the "plot.nnet" function in the documentation
- added some missing wrappers to make pruning work, and included pruning into the mlp function, 
  and two demos for pruning (with the help of Max Greene)
- added imports for methods and Rcpp to NAMESPACE, to comply to new CRAN rules
- fixes for "-Wformat-security", to comply to CRAN rules

version 0.4-4 (04-12-2013):

- fixing a bug for solaris

version 0.4-3 (09-1-2012):

- included a citation to the JSS article about RSNNS in the documentation and the CITATION file
- recompressed example data to fix a warning in CRAN checks
- fixed the jordan and elman examples: "decay=0.1" was given as parameter, instead of the correct "learnFuncParams=c(0.1)" 
- added an example for training an MLP for the iris data, using the low-level api (mlp_irisSnnsR.R)
- fixed the decodeClassLables() function, which didn't correctly translate factor level names to column names  

version 0.4-2 (29-9-2011):

- removed original SNNS manual, to avoid license confusions, as it states an outdated license

version 0.4-1 (28-7-2011):

- fixed a bug that prevented savePatFile to work
- fixed a bug that prevented compilation on Mac OSX
- fixed the "variable set but not used" warnings that occur in the most recent gcc versions

version 0.4-0 (21-6-2011):

- The art2 demo was fixed
- changed package encoding to UTF-8
- wrapping of some of the missing functions was added
- artmap was added in the high-level interface
- initialization to zero was added for all former static variables 
  (this was not always performed before, but it turned out that some
  SNNS functions rely on this and crash otherwise, e.g. dlvq and artmap)
- segfaults related to Rcpp wrapping of (const char*) NULL were fixed
- an object serializaton mechanism was implemented that now allows for rsnns
  objects being saved and loaded through R's normal save/load mechanism
- new normalization functions were added that allow for denormalization,
  and norm of the test set with the parameters obtained on the training set
- some new high-level functions were implemented to extract internals of 
  the neural networks (getWeights, getUnitDefinitions)
- documentation of the high-level functions was greatly improved with references
  to original literature and some descriptions
- original SNNS 4.2 User Manual was added to inst/doc

version 0.3-1 (17-11-2010): 

fixes to make it run on Solaris

version 0.3 (15-11-2010): 

port of the relevant SNNS parts to C++, 
resulting in an SNNS fork named SnnsCLib.

version 0.1 and 0.2 were unpublished. 

version 0.2: 

used nearly unchanged SNNS code. In order to train various networks and 
use them later for prediction, different ways seem possible: After training, 
the model could be saved as a temporary .net file to disk or even to memory 
using e.g. the C function fmemopen. For prediction, the net could be loaded 
into the SNNS kernel again. Another potential possibility is to load the SNNS 
library various times to memory. However, all these methods have mayor drawbacks 
in stability, performance, and are not parallelizable. 

version 0.1: 

used swig instead of Rcpp to wrap the SNNS code. This has the advantage, 
that the wrapper functions are automatically generated. However, it turned 
out that some of the interfaces of SNNS functions are quite complicated 
and the support of swig for R is not as advanced as for other programming 
languages. Extending swig in order to get the needed functionality seemed 
quite difficult, so that we chose to implement the wrapping manually using Rcpp.

