This function is used to specify the `pg_settings`

argument
in the `moma_*pca`

, `moma_*cca`

, and `moma_*lda`

family of functions.

moma_pg_settings(..., EPS = 1e-10, MAX_ITER = 1000,
EPS_inner = 1e-10, MAX_ITER_inner = 1e+05, solver = c("ista",
"fista", "onestepista"))

## Arguments

... |
To force users to specify arguments by names. |

EPS |
Precision for outer loop. |

MAX_ITER |
The maximum number of iterations for outer loop. |

EPS_inner |
Precision for inner loop. |

MAX_ITER_inner |
The maximum number of iterations for inner loop. |

solver |
A string in `c("ista", "fista", "onestepista")` , representing ISTA (Iterative Shrinkage-Thresholding Algorithm),
FISTA (Fast
Iterative Shrinkage-Thresholding Algorithm) and One-step ISTA (an approximated
version of ISTA) respectively. |

## Value

A `moma_pg_settings`

object, which is a list containing the above parameters.

## Details

To find an (approximate) solution to a penalized SVD (Singular Value Decomposition) problem is to solve two
penalized regression problems iteratively (outer loop). Each penalized regression (inner loop)
is solved using one of the three algorithms: ISTA (Iterative Shrinkage-Thresholding Algorithm),
FISTA (Fast Iterative Shrinkage-Thresholding Algorithm) and
One-step ISTA (an approximated version of ISTA).