?? utility.cpp
字號:
// UniformDist.cpp: implementation of the UniformDist class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Utility.h"
#include <string.h>
#include <math.h>
#include <stdio.h>
#define VERSION "Version dated July 22, 1997"
extern char data_file[];
extern char pat_file[];
extern char tax_file[];
static bool userfile = false;
void err_msg(char *str)
{
cerr << str << flush;
exit(1);
}
void print_version(void)
{
cerr << VERSION << endl;
}
void command_line(TaxPar &par)
{
par.calc_values();
cerr << "Command Line Options:\n";
cerr << " -ntrans number_of_transactions_in_000s (default: "
<< par.ntrans/1000 << ")\n";
cerr << " -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";
cerr << " -nitems number_of_different_items_in_000s (default: "
<< par.nitems/1000 << ")\n";
cerr << " -nroots number_of_roots (default: " << par.nroots << ")\n";
cerr << " -nlevels number_of_different_levels (default: " << par.nlevels
<< ")\n";
cerr << " -fanout average_fanout (default: " << par.fanout << ")\n";
cerr << " -depth affects_average_depth_of_items_in_itemsets (default: "
<< par.depth_ratio << ")\n";
cerr << endl;
cerr << " -npats number_of_patterns (default: " << par.lits.npats << ")\n";
cerr << " -patlen avg_length_of_maximal_pattern (default: "
<< par.lits.patlen << ")\n";
cerr << " -corr correlation_between_patterns (default: " << par.lits.corr
<< ")\n";
cerr << " -conf avg_confidence_in_a_rule (default: " << par.lits.conf
<< ")\n";
cerr << endl;
cerr << " -fname <filename> (write to filename.data and filename.pat)\n";
cerr << " -ascii (Write data in ASCII format; default: " << (par.ascii? "True": "False") << ")\n";
cerr << " -randseed # (reset seed used generate to x-acts; must be negative)\n";
cerr << " -version (to print out version info)\n";
exit(1);
}
void command_line(TransPar &par)
{
cerr << "Command Line Options:\n";
cerr << " -ntrans number_of_transactions_in_000s (default: "
<< par.ntrans/1000 << ")\n";
cerr << " -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";
cerr << " -nitems number_of_different_items_in_000s) (default: "
<< par.nitems/1000 << ")\n";
cerr << endl;
cerr << " -npats number_of_patterns (default: " << par.lits.npats << ")\n";
cerr << " -patlen avg_length_of_maximal_pattern (default: "
<< par.lits.patlen << ")\n";
cerr << " -corr correlation_between_patterns (default: " << par.lits.corr
<< ")\n";
cerr << " -conf avg_confidence_in_a_rule (default: " << par.lits.conf
<< ")\n";
cerr << endl;
cerr << " -fname <filename> (write to filename.data and filename.pat)\n";
cerr << " -ascii (default: " << (par.ascii? "True": "False") << ")\n";
cerr << " -randseed # (reset seed used generate to x-acts; must be negative)\n";
cerr << " -version (to print out version info)\n";
exit(1);
}
void command_line(SeqPar &par)
{
cerr << "Command Line Options:\n";
cerr << " -ncust number_of_customers_in_000s (default: "
<< par.ncust/1000 << ")\n";
cerr << " -slen avg_trans_per_customer (default: " << par.slen << ")\n";
cerr << " -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";
cerr << " -nitems number_of_different_items_in_000s (default: "
<< par.nitems/1000 << ")\n";
cerr << " -rept repetition-level (default: " << par.rept << ")\n";
cerr << endl;
cerr << " -seq.npats number_of_seq_patterns (default: " << par.lseq.npats
<< ")\n";
cerr << " -seq.patlen avg_length_of_maximal_pattern (default: "
<< par.lseq.patlen << ")\n";
cerr << " -seq.corr correlation_between_patterns (default: "
<< par.lseq.corr << ")\n";
cerr << " -seq.conf avg_confidence_in_a_rule (default: " << par.lseq.conf
<< ")\n";
cerr << endl;
cerr << " -lit.npats number_of_patterns (default: " << par.lits.npats
<< ")\n";
cerr << " -lit.patlen avg_length_of_maximal_pattern (default: "
<< par.lits.patlen << ")\n";
cerr << " -lit.corr correlation_between_patterns (default: "
<< par.lits.corr << ")\n";
cerr << " -lit.conf avg_confidence_in_a_rule (default: " << par.lits.conf
<< ")\n";
cerr << endl;
cerr << " -fname <filename> (write to filename.data and filename.pat)\n";
cerr << " -ascii (Write data in ASCII format; default: " << (par.ascii? "True": "False") << ")\n";
cerr << " -version (to print out version info)\n";
exit(1);
}
void cat_fname(char *str1, char *str2)
{
if (userfile) return;
strcat(data_file, str1);
strcat(pat_file, str1);
strcat(tax_file, str1);
strcat(data_file, str2);
strcat(pat_file, str2);
strcat(tax_file, str2);
}
void get_args(TransPar &par, int argc, char **argv)
{
int arg_pos = 2;
strcpy(data_file, "data");
strcpy(pat_file, "pat");
strcpy(tax_file, "tax");
while (arg_pos < argc)
{
if (strcmp(argv[arg_pos], "-ntrans") == 0) {
par.ntrans = 1000 * atof(argv[++arg_pos]);
cat_fname(".ntrans_", argv[arg_pos]);
arg_pos++;
if (par.ntrans < 1) err_msg("ntrans must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-tlen") == 0) {
par.tlen = atof(argv[++arg_pos]);
cat_fname(".tlen_", argv[arg_pos]);
arg_pos++;
if (par.tlen < 1) err_msg("tlen must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-nitems") == 0) {
par.nitems = 1000 * atof(argv[++arg_pos]);
cat_fname(".nitems_", argv[arg_pos]);
arg_pos++;
if (par.nitems < 1) err_msg("nitems must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-npats") == 0) {
par.lits.npats = atoi(argv[++arg_pos]);
cat_fname(".npats_", argv[arg_pos]);
arg_pos++;
if (par.lits.npats < 1) err_msg("npats must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-patlen") == 0) {
par.lits.patlen = atof(argv[++arg_pos]);
cat_fname(".patlen_", argv[arg_pos]);
arg_pos++;
if (par.lits.patlen <= 0) err_msg("patlen must be > 0\n");
continue;
}
else if (strcmp(argv[arg_pos], "-corr") == 0) {
par.lits.corr = atof(argv[++arg_pos]);
cat_fname(".corr_", argv[arg_pos]);
arg_pos++;
continue;
}
else if (strcmp(argv[arg_pos], "-conf") == 0) {
par.lits.conf = atof(argv[++arg_pos]);
cat_fname(".conf_", argv[arg_pos]);
arg_pos++;
if (par.lits.conf > 1 || par.lits.conf < 0)
err_msg("conf must be between 0 and 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-fname") == 0) {
strcpy(data_file, argv[++arg_pos]);
strcat(data_file, ".data");
strcpy(pat_file, argv[arg_pos++]);
strcat(pat_file, ".pat");
userfile = true;
continue;
}
else if (strcmp(argv[arg_pos], "-ascii") == 0) {
par.ascii = true;
cat_fname(".ascii", "");
arg_pos++;
continue;
}
else if (strcmp(argv[arg_pos], "-randseed") == 0) {
par.seed = atoi(argv[++arg_pos]);
arg_pos++;
if (par.seed >= 0)
err_msg("randseed must be negative.\n");
continue;
}
else if (strcmp(argv[arg_pos], "-version") == 0) {
cout << VERSION << endl;
exit(0);
}
else {
command_line(par);
}
} // end while
}
void get_args(TaxPar &par, int argc, char **argv)
{
int arg_pos = 2;
strcpy(data_file, "data");
strcpy(pat_file, "pat");
strcpy(tax_file, "tax");
while (arg_pos < argc)
{
if (strcmp(argv[arg_pos], "-ntrans") == 0) {
par.ntrans = 1000 * atof(argv[++arg_pos]);
cat_fname(".ntrans_", argv[arg_pos]);
arg_pos++;
if (par.ntrans < 1) err_msg("ntrans must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-tlen") == 0) {
par.tlen = atof(argv[++arg_pos]);
cat_fname(".tlen_", argv[arg_pos]);
arg_pos++;
if (par.tlen < 1) err_msg("tlen must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-nitems") == 0) {
par.nitems = 1000 * atof(argv[++arg_pos]);
cat_fname(".nitems_", argv[arg_pos]);
arg_pos++;
if (par.nitems < 1) err_msg("nitems must be >= 1\n");
continue;
}
else if (strcmp(argv[arg_pos], "-nroots") == 0) {
par.nroots = atoi(argv[++arg_pos]);
cat_fname(".nroots_", argv[arg_pos]);
arg_pos++;
if (par.nroots < 1) err_msg("nroots must be >= 1\n");
continue;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -