#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <math.h>#include <fcntl.h>#include "svdlib.h"#include "svdutil.h"
Go to the source code of this file.
Defines | |
| #define | MAXLL 2 |
| #define | LMTNW 100000000 |
Enumerations | |
| enum | storeVals { STORQ = 1, RETRQ, STORP, RETRP } |
Functions | |
| void | purge (long n, long ll, double *r, double *q, double *ra, double *qa, double *wrk, double *eta, double *oldeta, long step, double *rnmp, double tol) |
| void | ortbnd (double *alf, double *eta, double *oldeta, double *bet, long step, double rnm) |
| double | startv (SMat A, double *wptr[], long step, long n) |
| void | store (long, long, long, double *) |
| void | imtql2 (long, long, double *, double *, double *) |
| void | imtqlb (long n, double d[], double e[], double bnd[]) |
| void | write_header (long, long, double, double, long, double, long, long, long) |
| long | check_parameters (SMat A, long dimensions, long iterations, double endl, double endr, long vectors) |
| int | lanso (SMat A, long iterations, long dimensions, double endl, double endr, double *ritz, double *bnd, double *wptr[], long *neigp, long n) |
| long | ritvec (long n, SMat A, SVDRec R, double kappa, double *ritz, double *bnd, double *alf, double *bet, double *w2, long steps, long neig) |
| long | lanczos_step (SMat A, long first, long last, double *wptr[], double *alf, double *eta, double *oldeta, double *bet, long *ll, long *enough, double *rnmp, double *tolp, long n) |
| void | stpone (SMat A, double *wrkptr[], double *rnmp, double *tolp, long n) |
| long | error_bound (long *, double, double, double *, double *, long step, double tol) |
| void | machar (long *ibeta, long *it, long *irnd, long *machep, long *negep) |
| SVDRec | svdLAS2A (SMat A, long dimensions) |
| SVDRec | svdLAS2 (SMat A, long dimensions, long iterations, double end[2], double kappa) |
| void | rotateArray (double *a, int size, int x) |
| void | imtql2 (long nm, long n, double d[], double e[], double z[]) |
Variables | |
| static char * | error_msg [] |
| double ** | LanStore |
| double * | OPBTemp |
| double | eps |
| double | eps1 |
| double | reps |
| double | eps34 |
| long | ierr |
| #define MAXLL 2 |
Definition at line 20 of file las2.c.
Referenced by lanczos_step(), store(), and svdLAS2().
| long check_parameters | ( | SMat | A, |
| long | dimensions, | ||
| long | iterations, | ||
| double | endl, | ||
| double | endr, | ||
| long | vectors | ||
| ) |
Definition at line 199 of file las2.c.
References smat::cols, error_msg, smat::rows, and svd_error().
Referenced by svdLAS2().
| long error_bound | ( | long * | enough, |
| double | endl, | ||
| double | endr, | ||
| double * | ritz, | ||
| double * | bnd, | ||
| long | step, | ||
| double | tol | ||
| ) |
Definition at line 1230 of file las2.c.
References eps, eps34, svd_dmin(), and svd_idamax().
Referenced by lanso().
| void imtql2 | ( | long | , |
| long | , | ||
| double * | , | ||
| double * | , | ||
| double * | |||
| ) |
Referenced by ritvec().
| void imtql2 | ( | long | nm, |
| long | n, | ||
| double | d[], | ||
| double | e[], | ||
| double | z[] | ||
| ) |
Definition at line 1471 of file las2.c.
References FALSE, ierr, svd_fsign(), svd_pythag(), and TRUE.
| void imtqlb | ( | long | n, |
| double | d[], | ||
| double | e[], | ||
| double | bnd[] | ||
| ) |
Definition at line 1315 of file las2.c.
References FALSE, ierr, svd_fsign(), svd_pythag(), and TRUE.
Referenced by lanso().
| long lanczos_step | ( | SMat | A, |
| long | first, | ||
| long | last, | ||
| double * | wptr[], | ||
| double * | alf, | ||
| double * | eta, | ||
| double * | oldeta, | ||
| double * | bet, | ||
| long * | ll, | ||
| long * | enough, | ||
| double * | rnmp, | ||
| double * | tolp, | ||
| long | n | ||
| ) |
Definition at line 817 of file las2.c.
References eps1, ierr, MAXLL, OPBTemp, ortbnd(), purge(), reps, RETRP, RETRQ, startv(), store(), STORP, STORQ, svd_datx(), svd_daxpy(), svd_dcopy(), svd_ddot(), svd_dscal(), svd_imin(), svd_opb(), and TRUE.
Referenced by lanso().
| int lanso | ( | SMat | A, |
| long | iterations, | ||
| long | dimensions, | ||
| double | endl, | ||
| double | endr, | ||
| double * | ritz, | ||
| double * | bnd, | ||
| double * | wptr[], | ||
| long * | neigp, | ||
| long | n | ||
| ) |
Definition at line 692 of file las2.c.
References eps1, error_bound(), FALSE, ierr, imtqlb(), lanczos_step(), store(), STORQ, stpone(), svd_dcopy(), svd_dsort2(), svd_error(), svd_imax(), svd_imin(), and TRUE.
Referenced by svdLAS2().
| void machar | ( | long * | ibeta, |
| long * | it, | ||
| long * | irnd, | ||
| long * | machep, | ||
| long * | negep | ||
| ) |
| void ortbnd | ( | double * | alf, |
| double * | eta, | ||
| double * | oldeta, | ||
| double * | bet, | ||
| long | step, | ||
| double | rnm | ||
| ) |
Definition at line 935 of file las2.c.
References eps1, and svd_dswap().
Referenced by lanczos_step().
| void purge | ( | long | n, |
| long | ll, | ||
| double * | r, | ||
| double * | q, | ||
| double * | ra, | ||
| double * | qa, | ||
| double * | wrk, | ||
| double * | eta, | ||
| double * | oldeta, | ||
| long | step, | ||
| double * | rnmp, | ||
| double | tol | ||
| ) |
Definition at line 998 of file las2.c.
References eps1, FALSE, reps, RETRQ, store(), svd_daxpy(), svd_dcopy(), svd_ddot(), svd_idamax(), and TRUE.
Referenced by lanczos_step().
| long ritvec | ( | long | n, |
| SMat | A, | ||
| SVDRec | R, | ||
| double | kappa, | ||
| double * | ritz, | ||
| double * | bnd, | ||
| double * | alf, | ||
| double * | bet, | ||
| double * | w2, | ||
| long | steps, | ||
| long | neig | ||
| ) |
Definition at line 552 of file las2.c.
References dmat::cols, svdrec::d, FALSE, ierr, imtql2(), OPBTemp, RETRQ, rotateArray(), smat::rows, dmat::rows, svdrec::S, SAFE_FREE, store(), svd_daxpy(), svd_dcopy(), svd_ddot(), svd_doubleArray(), svd_dscal(), svd_imin(), svd_opa(), svd_opb(), TRUE, svdrec::Ut, dmat::value, and svdrec::Vt.
Referenced by svdLAS2().
| void rotateArray | ( | double * | a, |
| int | size, | ||
| int | x | ||
| ) |
| double startv | ( | SMat | A, |
| double * | wptr[], | ||
| long | step, | ||
| long | n | ||
| ) |
Definition at line 1152 of file las2.c.
References eps, ierr, OPBTemp, RETRQ, store(), svd_daxpy(), svd_dcopy(), svd_ddot(), svd_opb(), and svd_random2().
Referenced by lanczos_step(), and stpone().
| void store | ( | long | n, |
| long | isw, | ||
| long | j, | ||
| double * | s | ||
| ) |
Definition at line 1735 of file las2.c.
References FALSE, LanStore, MAXLL, RETRP, RETRQ, STORP, STORQ, svd_dcopy(), svd_doubleArray(), svd_error(), and svd_fatalError().
Referenced by lanczos_step(), lanso(), purge(), ritvec(), and startv().
| void stpone | ( | SMat | A, |
| double * | wrkptr[], | ||
| double * | rnmp, | ||
| double * | tolp, | ||
| long | n | ||
| ) |
Definition at line 1086 of file las2.c.
References ierr, OPBTemp, reps, startv(), svd_datx(), svd_daxpy(), svd_dcopy(), svd_ddot(), svd_dscal(), and svd_opb().
Referenced by lanso().
Definition at line 326 of file las2.c.
References check_parameters(), smat::cols, svdrec::d, eps, eps1, eps34, FALSE, lanso(), LanStore, machar(), MAXLL, OPBTemp, reps, ritvec(), smat::rows, svdrec::S, SAFE_FREE, svd_dmax(), svd_doubleArray(), svd_error(), SVD_F_DT, svd_imin(), svdFreeSMat(), svdNewDMat(), svdNewSVDRec(), svdResetCounters(), svdTransposeS(), SVDVerbosity, svdWriteDenseArray(), svdWriteDenseMatrix(), TRUE, svdrec::Ut, smat::vals, svdrec::Vt, and write_header().
Referenced by CovIntra(), main(), and svdLAS2A().
Definition at line 315 of file las2.c.
References svd_error(), and svdLAS2().
| void write_header | ( | long | iterations, |
| long | dimensions, | ||
| double | endl, | ||
| double | endr, | ||
| long | vectors, | ||
| double | kappa, | ||
| long | nrow, | ||
| long | ncol, | ||
| long | vals | ||
| ) |
| double eps |
Definition at line 39 of file las2.c.
Referenced by error_bound(), machar(), multiclass_probability(), sigmoid_train(), startv(), and svdLAS2().
| double eps1 |
| double eps34 |
Definition at line 39 of file las2.c.
Referenced by error_bound(), and svdLAS2().
char* error_msg[] [static] |
{
NULL,
"",
"ENDL MUST BE LESS THAN ENDR",
"REQUESTED DIMENSIONS CANNOT EXCEED NUM ITERATIONS",
"ONE OF YOUR DIMENSIONS IS LESS THAN OR EQUAL TO ZERO",
"NUM ITERATIONS (NUMBER OF LANCZOS STEPS) IS INVALID",
"REQUESTED DIMENSIONS (NUMBER OF EIGENPAIRS DESIRED) IS INVALID",
"6*N+4*ITERATIONS+1 + ITERATIONS*ITERATIONS CANNOT EXCEED NW",
"6*N+4*ITERATIONS+1 CANNOT EXCEED NW", NULL}
Definition at line 26 of file las2.c.
Referenced by check_parameters(), and svmTrain().
| long ierr |
| double * OPBTemp |
1.7.2