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 <weiliang.qiu@gmail.com>

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 
#    '<stwxq@channing.harvard.edu>' 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 (<suraj@wingedfootcapital.com>) for this suggestion!
#
v1.2.9 >>>> April 2, 2012
#  (1) fixed a bug pointed by Dr. Anton Korobeynikov 
# <anton@korobeynikov.info>
# 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(<matrix>) is deprecated.
# Warning: sd(<matrix>) is deprecated.
# Warning: sd(<matrix>) is deprecated.
# Warning: sd(<matrix>) 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(<matrix>) is deprecated.
# Warning: sd(<matrix>) is deprecated.
# Warning: sd(<matrix>) is deprecated.
# Warning: sd(<matrix>) 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.

