Changes in GPArotation version 2026.8-2:

  o Changes to tests only. No new functionality.

Changes in GPArotation version 2026.8-1:

  o Changes to tests only. No new functionality.

  o Correction to Cureton-Mulaik normalization. Added a note in Vignette.

  o Updated default k in simplimax to nrow(A) * (ncol(A) - 1).

Changes in GPArotation version 2026.7-1:

  o Changes to tests only. No new functionality.

  o box20 restored to package data (Thurstone). It was inadvertently
    removed in 2027.1-1 and has been reinstated for backward compatibility.
    
Changes in GPArotation version 2026.6-1:

  o Barzilai-Borwein step size (algorithm = "bb") with non-monotone line search 
    (fwindow = 10) is now the default for all rotation criteria. The Cayley 
    transform retraction (algorithm = "cayley") is available for orthogonal 
    rotations as an alternative to the SVD projection. Set 
    algorithm = "legacy" for exact reproducibility of older version results.
  
  o updated print summary functions to be more aligned with factanal print.
    Loadings matrices now are class loadings to use base R print.loadings 
    functionality. Output includes AUC and FSI per factor, and summary() 
    adds hyperplane counts and Hoffman, Gini, and Bentler simplicity indices.
    
  o Output of rotations now include correlation matrix and number of 
    observations if available from factanal. Factor correlation matrix
    included as attr-object attribute to loadings matrix, and unrotated 
    factor loadings are included as attr to the GPArotation object.
  
  o Cureton-Mulaik normalization added as normalize = "CM" option in all
    rotation functions. Kaiser normalization can now also be specified
    explicitly as normalize = "Kaiser" in addition to normalize = TRUE.
    
  o GriffithMulaik dataset added: 24-variable interpersonal personality
    trait correlation matrix (n = 523) as reported in Mulaik (2018). 
    
  o box20 has been removed from the package data; box20 is retained internally 
    in tests/Jennrich2002.R for exact reproducibility of Jennrich (2002) examples.

Changes in GPArotation version 2026.4-1:

  o Comprehensive code cleanup across all functions including GPForth,
    GPFoblq, GPFRSorth, GPFRSoblq, .GPA_RS_engine, vgQ rotation
    criterion functions, Random.Start, and S3 print/summary methods.
    All existing code should run without modification.

  o GPForth and GPFoblq: pre-allocated iteration Table replaces rbind
    growth; step size variable renamed from 'al' to 'alpha'; Table
    column names set at allocation. Legacy implementations retained as
    unexported GPForth.legacy and GPFoblq.legacy for historical
    reference.

  o print.GPArotation and summary.GPArotation: factor sorting and sign
    correction now handled by internal helper .sortGPALoadings, adapted
    from factanal:::sortLoadings (R Core Team). This ensures print and
    summary produce consistent sorted output. The sign correction
    criterion has changed from sign(colSums(L^3)) to colSums(L) < 0,
    matching factanal convention. Results are numerically equivalent
    in all tested cases.

  o print.GPArotation and print.summary.GPArotation: digits argument
    now correctly controls decimal places in loadings and structure
    matrices.
    
  o print.summary.GPArotation: structure matrix now correctly displays
    factor names as column headers rather than [,1] [,2] [,3].

  o vgQ criterion functions: the Method string has been improved for
    consistency in selected cases (e.g. "Simplimax (k=8)", "Varimax",
    "Varimin", "Bentler"). The criterion value (f) and gradient (Gq)
    are unaffected.

  o Documentation: clarifications throughout, expanded references 
    with doi throughout; improved examples including two-step vs 
    single-step factanal comparison.

 o  Added dataset CCAI: 14x14 correlation matrix (CCAI_R), factor pattern matrix
    (CCAI_pattern), and factor intercorrelations (CCAI_Phi) for the
    Climate-Friendly Purchasing Choices domain of the Climate Change
    Action Inventory.
    
  o Three vignettes: GPA1guide (main guide, restructured),
    GPA2local (local minima diagnostics), GPA3bifactor (bifactor
    rotation and reliability coefficients). 

  o Unit tests added and expanded: Table structure, single-factor error
    handling, random starts, factor sorting, factanal R >= 4.5.1
    regression, numerical equivalence of updated vs legacy GPForth and
    GPFoblq, and vgQ criterion function regression tests.
    
  o box20 deprecated. Use box26 instead. box20 will be removed in a
    future version.

  o Removed defunct SourceForge URL from DESCRIPTION.
  
Changes in GPArotation version 2025.3-1:

  o Added Lp rotation (via Xinyi Liu), including examples, help file,
    and tests.

  o Added automated tests for error messages.

  o Edits to the manual pages.

Changes in GPArotation version 2024.3-1:

  o Added tests for use in automated validation systems.

  o Added correct class to echelon and eiv rotation.

Changes in GPArotation version 2024.2-1:

  o Improved Random.Start for orthonormal matrix generation.

  o Added Bi-Geomin rotation criterion.

  o Edits to the manual pages.

Changes in GPArotation version 2023.11-1:

  o Updated NormalizingWeight to handle cases with a row of zeroes.

Changes in GPArotation version 2023.8-1:

  o Added L argument to target rotation and pst to better handle
    backward compatibility.

Changes in GPArotation version 2023.3-1:

  o January 2023: GPArotation turns 18 years old.

  o Included GPFRSorth and GPFRSoblq functions, and set rotation routines
    to call GPFRSorth instead of GPForth, GPFRSoblq instead of GPFoblq.

  o GPFRSorth and GPFRSoblq include randomStarts = 0 as default.

  o Included equamax, parsimax and varimin (added vgQ.varimin).

  o Cleaned up print.GPArotation to account for random starts.

  o Cleaned up vgQ.bifactor.

  o Expanded vignette GPAguide.

  o Added vignette on derivative-free GPA: the GPArotateDF package.

Changes in GPArotation version 2022.10-1:

  o Changed maintainer from Paul Gilbert to Coen Bernaards.

Changes in GPArotation version 2022.4-1:

  o Switched URL from defunct http://www.stat.ucla.edu/research/gpa
    to https://optimizer.r-forge.r-project.org/GPArotation_www/

  o Added importFrom("stats", "rnorm") to NAMESPACE file.

  o Fixed Rbuildignore so that files from building vignettes are
    not omitted in the package build.

Changes in GPArotation version 2015.7-1:

  o Added default package imports as now required by CRAN.

Changes in GPArotation version 2014.11-1:

  o Minor format and cleanup required by CRAN checks, no real changes.

Changes in GPArotation version 2012.3-1:

  o No real changes, but bumping version for new CRAN suitability check.

Changes in GPArotation version 2011.11-1:

  o Updated maintainer email address.

Changes in GPArotation version 2011.10-1:

  o Modification to vgQ.target to allow NA in target, which is replaced
    by 0.0 (from William Revelle).

  o Added bifactorT and bifactorQ (biquartimin) from William Revelle.

Changes in GPArotation version 2010.07-1:

  o Fixed an error caused by an exact initial setting (from William
    Revelle).

Changes in GPArotation version 2009.02-2:

  o Standardized NEWS format for new function news().

Changes in GPArotation version 2009.02-1:

  o Minor documentation corrections as found by a new R-devel.

Changes in GPArotation version 2008.05-1:

  o Added echelon rotation.

  o Added gradient Gq to result list from GPForth and GPFoblq.

  o Changed license from "GPL-2" to "GPL-2 or later".

Changes in GPArotation version 2007.06-1:

  o Fixed a couple of lingering $Lh (in print and summary methods)
    that should have been changed to $loadings.

Changes in GPArotation version 2007.04-1:

  o Removed an extra comma in c() that caused a test failure with
    R-2.5.0.

  o Added eiv rotation.

  o Renamed $Lh in the result from GPForth and GPFoblq to $loadings.
    As a result, rotation methods calling these functions no longer need
    to rename this element in order to work with factanal and other
    programs. It is good practice to use the extractor function
    loadings() rather than refer directly to object structure.

  o Changed rotation method functions to return all elements of GPFoblq
    and GPForth.

  o Fixed the documentation file primary alias for all rotations (which
    was being called oblimin).

Changes in GPArotation version 2006.2-2:

  o Extra argument (...) to invisible in print.GPArotation was removed.

Changes in GPArotation version 2006.2-1:

  o Broken references in documentation were fixed and updated.

Changes in GPArotation version 2005.10-1:

  o Warning message about non-convergence expanded to indicate function.

Changes in GPArotation version 2005.4-1:

  o First released version.