v1.3.7 >>>> Dec. 12, 2020
# (1) added function "genOrthogonal" to export list
#
v1.3.6 >>>> Nov. 21, 2020
# (1) added "na.rm=TRUE" when calling 'sum', 'max'
# (2) when call a function, explicitly call its input
# (3) fixed a bub in function 'genMeanCov': when calling 'genPositiveDefMat', the input 'eigenvalue' was missing.
# (4) added input argument 'eigenvalue' to function 'genMeanCov' and 'genRandomClust' and 'genNoisyMeanCov' and 'simClustDesign'
v1.3.5 >>>> Oct. 3, 2020
# (1) add new argument "eigenvalue" so that user can supply own eigenvalues for algorithm covMethod=c("eigen")
# (2) in genPositiveDefMat, using crossprod(Q * sqrt(egvalues)) instead of Sigma <- Q %*% u %*% t(Q) leads to nice improvements (3-4 times faster) when simulating large matrices (dim>500). Reason is that the new code does not require to form the u matrix, and that crossprod() is quite faster when used with a single argument (exploiting that output will be symmetric)
#
# Thanks Dr. Matthieu Stigler (matthieu.stigler@gmail.com) for these 2 suggestions!
#
# (3) change maintainer's email address to
v1.3.2 >>>> Feb 14, 2015
# (1) fixed a few bugs in function 'getSepProjData':
# 'u.cl <- unique(cl)' should be
# 'u.cl <- sort(unique(cl)'
# 'yi <- y[cl == u.cl[i], , drop = FALSE]'
# should be
# 'yi <- y[which(cl == u.cl[i]), , drop = FALSE]'
v1.3.1 >>>> Jan 7, 2013
# (1) added a space between 'Weiliang Qiu' and
# '' in the 'Maintainer' slot
# in the DESCRIPTION file
# Thank Dr. Kurt Hornik for his kind help!
#
v1.3.0 >>>> Jan 6, 2013
# (1) rename 'log.txt' file to 'NEWS'.
# Thanks for Mr. Suraj Gupta () for this suggestion!
#
v1.2.9 >>>> April 2, 2012
# (1) fixed a bug pointed by Dr. Anton Korobeynikov
#
# Dear Dr. Weiliang Qiu,
#
# Recently we tried to used your package clusterGeneration but found
# that the behavior of genRandomClust() with clustszind == 3 is
# definitely wrong compared to the one documented.
# After looking into the implementation it became obvious that
# genMemSize() function does wrong things: it tries to sample from 1:G
# using provided clusterSizes as weights. Surely the output clusters
# have wrong sizes (not the ones specified).
#
# The fix is pretty simple: change the code for clustszind == 3 to
# something like this:
#
# mem <- sample(unlist(lapply(1:G, function(x) rep.int(x, times =
# clustSizes[x]))))
# N <- sum(clustSizes)
#
# Or, maybe if you want to keep the current behavior it'd be better to
# introduce new clustszind variant.
# #
#
# (2) add 'clustSizes<-as.integer(clustSizes)' before checking
# '!is.integer(clustSizes[i])'
#
v1.2.8 >>>> March 19, 2012
(1) fixed a few warning messages:
# (a)>>
#* checking R code for possible problems ... NOTE
#genNoisyMeanCov: warning in eigen(Sigma.noisy, sym = TRUE): partial
# argument match of 'sym' to 'symmetric'
#
# (b)>>>
#** running examples for arch 'i386' ... WARNING
#Found the following significant warnings:
#
# Warning: sd() is deprecated.
# Warning: sd() is deprecated.
# Warning: sd() is deprecated.
# Warning: sd() is deprecated.
#Deprecated functions may be defunct as soon as of the next release of
#R.
#See ?Deprecated.
#** running examples for arch 'x64' ... WARNING
#Found the following significant warnings:
#
# Warning: sd() is deprecated.
# Warning: sd() is deprecated.
# Warning: sd() is deprecated.
# Warning: sd() is deprecated.
#Deprecated functions may be defunct as soon as of the next release of
#R.
#See ?Deprecated.
#
(2) add 'na.rm=TRUE' to functions 'min', 'max', 'sum', 'mean', 'median', etc.