version 0.4-17 (30-11-2023): - fixing JSS links - fixing two compiler warnings version 0.4-16 (08-05-2023): - fixing warnings version 0.4-15 (22-01-2023): - replaced sprintf with snprintf - removed "register" keyword, as it has no effect in modern compilers but the solution before with a "define" could lead to a warning on some systems. - user everywhere the same MAXFLOAT definition, and use a custom one as the one from float.h can lead to a warning on MAC. - fixed many many clang-14 warnings. Some functionality is now effectively untested. If things don't work for you, revert to the previous version (and please let me know). - fixed a class comparison to use "inherits" version 0.4-14 (13-08-2021): version 0.4-13 (08-08-2021): - fixed warnings: Clang: kr_pat_scan.cpp:1472:12: warning: function 'yyinput' is not needed and will not be emitted [-Wunneeded-internal-declaration] 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] 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.