/* harmony export (binding) */

/* harmony import */

/**
   * Calculates the inverse PCA transform
   * @param {Matrix} dataset
   * @return {Matrix} dataset projected in the PCA space
   */

/**
   * Export the current model to a JSON object
   * @return {Object} model
   */

/**
   * Load a PCA model from JSON
   * @param {Object} model
   * @return {PCA}
   */

/**
   * Project the dataset into the PCA space
   * @param {Matrix} dataset
   * @param {Object} options
   * @return {Matrix} dataset projected in the PCA space
   */

/**
   * Returns the Eigenvalues (on the diagonal)
   * @returns {[number]}
   */

/**
   * Returns the Eigenvectors of the covariance matrix
   * @returns {Matrix}
   */

/**
   * Returns the cumulative proportion of variance
   * @return {[number]}
   */

/**
   * Returns the loadings matrix
   * @return {Matrix}
   */

/**
   * Returns the proportion of variance for each component
   * @return {[number]}
   */

/**
   * Returns the standard deviations of the principal components
   * @returns {[number]}
   */

/**
 * Creates new PCA (Principal Component Analysis) from the dataset
 * @param {Matrix} dataset - dataset or covariance matrix.
 * @param {Object} [options]
 * @param {boolean} [options.isCovarianceMatrix=false] - true if the dataset is a covariance matrix.
 * @param {string} [options.method='SVD'] - select which method to use: SVD (default), covarianceMatrirx or NIPALS.
 * @param {number} [options.nCompNIPALS=2] - number of components to be computed with NIPALS.
 * @param {boolean} [options.center=true] - should the data be centered (subtract the mean).
 * @param {boolean} [options.scale=false] - should the data be scaled (divide by the standard deviation).
 * @param {boolean} [options.ignoreZeroVariance=false] - ignore columns with zero variance if `scale` is `true`.
 * */

/***/

// User provided a covariance matrix instead of dataset.

// User provided a dataset but wants us to compute and use the covariance matrix.

// eslint-disable-next-line no-console

// no default
