SLIM  1.0
Sparse Linear Methods (SLIM) for top-n recommender systems
 All Data Structures Files Functions Variables Typedefs Macros Pages
Functions
cmd.c File Reference

This file contains all the routines for parameter setup from the user. More...

#include <slim.h>

Go to the source code of this file.

Functions

void parse_cmdline (ctrl_t *ctrl, int argc, char *argv[])
 Entry point of the command-line argument parsing.
 

Detailed Description

This file contains all the routines for parameter setup from the user.

Definition in file cmd.c.

Function Documentation

void parse_cmdline ( ctrl_t ctrl,
int  argc,
char *  argv[] 
)

Entry point of the command-line argument parsing.

Parameters
[out]ctrlA ctrl structure to be filled out
[in]argcNumber of arguments
[in]argvA list of arguments

Definition at line 146 of file cmd.c.

References ctrl_t::beta, ctrl_t::bsize, CMD_BETA, CMD_BSIZE, CMD_DBGLVL, CMD_ENDI, CMD_FS, CMD_FS_FILE, CMD_HELP, CMD_K, CMD_LAMBDA, CMD_MAX_BCLS_NITERS, CMD_MODEL_FILE, CMD_NRATINGS, CMD_OPTTOL, CMD_PRED_FILE, CMD_STARTI, CMD_TEST_FILE, CMD_TOPN, CMD_TRAIN_FILE, CMD_TRANSPOSE, create_ctrl(), ctrl_t::dbglvl, ctrl_t::endi, ctrl_t::fs, ctrl_t::fs_file, ctrl_t::k, ctrl_t::lambda, ctrl_t::max_bcls_niters, ctrl_t::model_file, ctrl_t::nratings, ctrl_t::optTol, ctrl_t::pred_file, ctrl_t::starti, ctrl_t::test_file, ctrl_t::topn, ctrl_t::train_file, and ctrl_t::transpose.

Referenced by main().

{
int c = -1, option_index = -1;
if (ctrl == NULL)
ctrl = create_ctrl();
while((c = gk_getopt_long_only(argc, argv, "", slim_options, &option_index)) != -1){
switch(c){
ctrl->train_file = gk_strdup(gk_optarg);
break;
ctrl->test_file = gk_strdup(gk_optarg);
break;
ctrl->model_file = gk_strdup(gk_optarg);
break;
ctrl->pred_file = gk_strdup(gk_optarg);
break;
case CMD_DBGLVL:
ctrl->dbglvl = atoi(gk_optarg);
break;
case CMD_LAMBDA:
ctrl->lambda = atof(gk_optarg);
break;
case CMD_BETA:
ctrl->beta = atof(gk_optarg);
break;
case CMD_STARTI:
ctrl->starti = atoi(gk_optarg);
break;
case CMD_ENDI:
ctrl->endi = atoi(gk_optarg);
break;
case CMD_OPTTOL:
ctrl->optTol = atof(gk_optarg);
break;
ctrl->max_bcls_niters = atoi(gk_optarg);
break;
case CMD_FS:
ctrl->fs = 1;
break;
ctrl->fs_file = gk_strdup(gk_optarg);
break;
case CMD_K:
ctrl->k = atoi(gk_optarg);
break;
case CMD_BSIZE:
ctrl->bsize = atoi(gk_optarg);
break;
ctrl->nratings = atoi(gk_optarg);
break;
case CMD_TOPN:
ctrl->topn = atoi(gk_optarg);
break;
ctrl->transpose = 1;
break;
case CMD_HELP:
for (int i=0; strlen(helpstr[i]) > 0; i++)
printf("%s\n", helpstr[i]);
exit(0);
case '?':
default:
printf("Illegal command-line option(s) %s\n", gk_optarg);
exit(0);
}
}
if (argc-gk_optind != 0 || argc == 1) {
for (int i=0; strlen(shorthelpstr[i]) > 0; i++)
printf("%s\n", shorthelpstr[i]);
exit(0);
}
}