37 #include <o2scl/misc.h> 38 #include <o2scl/cli.h> 39 #include <o2scl/fit_nonlin.h> 40 #include <o2scl/table_units.h> 41 #include <o2scl/table3d.h> 42 #include <o2scl/format_float.h> 43 #include <o2scl/hdf_file.h> 44 #include <o2scl/hdf_io.h> 45 #include <o2scl/lib_settings.h> 46 #include <o2scl/contour.h> 49 #include <o2scl/cli_readline.h> 51 #include <o2scl/cli.h> 95 #ifndef DOXYGEN_INTERNAL 241 virtual int run(
int argv,
char *argc[]);
260 virtual int comm_assign(std::vector<std::string> &sv,
bool itive_com);
263 virtual int comm_calc(std::vector<std::string> &sv,
bool itive_com);
266 virtual int comm_create(std::vector<std::string> &sv,
bool itive_com);
269 virtual int comm_create3(std::vector<std::string> &sv,
bool itive_com);
272 virtual int comm_delete_col(std::vector<std::string> &sv,
bool itive_com);
278 virtual int comm_deriv(std::vector<std::string> &sv,
bool itive_com);
281 virtual int comm_deriv2(std::vector<std::string> &sv,
bool itive_com);
294 const H5L_info_t *inf,
void *op_data);
298 const H5L_info_t *inf,
void *op_data);
301 virtual int comm_read(std::vector<std::string> &sv,
bool itive_com);
304 virtual int comm_filelist(std::vector<std::string> &sv,
bool itive_com);
307 virtual int comm_nlines(std::vector<std::string> &sv,
bool itive_com);
310 virtual int comm_to_hist(std::vector<std::string> &sv,
bool itive_com);
313 virtual int comm_type(std::vector<std::string> &sv,
bool itive_com);
316 virtual int comm_find_row(std::vector<std::string> &sv,
bool itive_com);
319 virtual int comm_function(std::vector<std::string> &sv,
bool itive_com);
322 virtual int comm_generic(std::vector<std::string> &sv,
bool itive_com);
325 virtual int comm_gen3_list(std::vector<std::string> &sv,
bool itive_com);
328 virtual int comm_get_row(std::vector<std::string> &sv,
bool itive_com);
331 virtual int comm_slice(std::vector<std::string> &sv,
bool itive_com);
334 virtual int comm_fit(std::vector<std::string> &sv,
bool itive_com);
336 #ifdef O2SCL_NEVER_DEFINED 342 virtual int comm_insert(std::vector<std::string> &sv,
bool itive_com);
348 virtual int comm_integ(std::vector<std::string> &sv,
bool itive_com);
354 virtual int comm_internal(std::vector<std::string> &sv,
bool itive_com);
357 virtual int comm_interp(std::vector<std::string> &sv,
bool itive_com);
360 virtual int comm_list(std::vector<std::string> &sv,
bool itive_com);
363 virtual int comm_max(std::vector<std::string> &sv,
bool itive_com);
366 virtual int comm_min(std::vector<std::string> &sv,
bool itive_com);
369 virtual int comm_index(std::vector<std::string> &sv,
bool itive_com);
372 virtual int comm_output(std::vector<std::string> &sv,
bool itive_com);
375 virtual int comm_preview(std::vector<std::string> &sv,
bool itive_com);
378 virtual int comm_cat(std::vector<std::string> &sv,
bool itive_com);
381 virtual int comm_sum(std::vector<std::string> &sv,
bool itive_com);
384 virtual int comm_rename(std::vector<std::string> &sv,
bool itive_com);
387 virtual int comm_select(std::vector<std::string> &sv,
bool itive_com);
393 virtual int comm_set(std::vector<std::string> &sv,
bool itive_com);
396 virtual int comm_set_data(std::vector<std::string> &sv,
bool itive_com);
399 virtual int comm_set_unit(std::vector<std::string> &sv,
bool itive_com);
402 virtual int comm_contours(std::vector<std::string> &sv,
bool itive_com);
405 virtual int comm_show_units(std::vector<std::string> &sv,
bool itive_com);
408 virtual int comm_get_unit(std::vector<std::string> &sv,
bool itive_com);
415 virtual int comm_sort(std::vector<std::string> &sv,
bool itive_com);
418 virtual int comm_stats(std::vector<std::string> &sv,
bool itive_com);
421 virtual int comm_version(std::vector<std::string> &sv,
bool itive_com);
424 virtual int comm_get_conv(std::vector<std::string> &sv,
bool itive_com);
432 virtual int comm_none(std::vector<std::string> &sv,
bool itive_com) {
439 int get_input(std::vector<std::string> &sv,
440 std::vector<std::string> &directions,
441 std::vector<std::string> &in, std::string comm_name,
445 int get_input_one(std::vector<std::string> &sv, std::string directions,
446 std::string &in, std::string comm_name,
453 std::vector<double> xtemp;
454 std::vector<double> ytemp;
455 std::vector<double> stemp;
474 std::string cmap, xtitle, ytitle;
475 double xlo, xhi, ylo, yhi, zlo, zhi;
476 bool xset, yset, zset, colbar, logx, logy;
505 (
int n_entries,
int *sizes,
char *str) {
506 std::vector<std::string> list;
508 for(
int i=0;i<n_entries;i++) {
510 for(
int j=0;j<sizes[i];j++) {
526 std::vector<o2scl::cmd_line_arg> ca;
527 amp->
cl->process_args(args,ca,0);
528 amp->
cl->call_args(ca);
536 int &n,
double *&ptr) {
538 if (amp->
type==
"table3d") {
539 std::cout <<
"Cannot get column for table3d object." 543 if (amp->
type!=
"table") {
544 std::cerr <<
"No table loaded." << std::endl;
548 std::string stmp=col_name;
549 const std::vector<double> &col=amp->
table_obj.get_column(stmp);
550 ptr=(
double *)&col[0];
560 amp->xtemp.resize(n);
561 for(
size_t i=0;i<n;i++) amp->xtemp[i]=amp->
hist_obj.get_rep_i(i);
562 ptr=&(amp->xtemp[0]);
572 amp->ytemp.resize(n);
573 for(
size_t i=0;i<n;i++) amp->ytemp[i]=amp->
hist_obj.get_wgt_i(i);
574 ptr=&(amp->ytemp[0]);
601 n=amp->
type.length();
603 str=(
char *)(amp->
type.c_str());
614 int &nx,
double *&xptr,
615 int &ny,
double *&yptr,
618 if (amp->
type!=
"table3d") {
619 std::cout <<
"No table3d object loaded." 625 amp->xtemp.resize(nx);
627 xptr=(
double *)&->xtemp[0];
630 amp->ytemp.resize(ny);
632 yptr=(
double *)&->ytemp[0];
634 amp->stemp.resize(nx*ny);
635 std::string stmp=slice_name;
637 const ubmatrix &m=amp->
table3d_obj.get_slice(stmp);
638 for(
size_t i=0;i<nx;i++) {
639 for(
size_t j=0;j<ny;j++) {
640 amp->stemp[i*ny+j]=m(i,j);
643 data=(
double *)&->stemp[0];
647 int o2scl_acol_get_hist_2d(
void *vp,
648 int &nx,
double *&xptr,
649 int &ny,
double *&yptr,
652 if (amp->
type!=
"hist_2d") {
653 std::cout <<
"No hist_2d object loaded." 659 amp->xtemp.resize(nx);
660 for(
int i=0;i<nx;i++) {
663 xptr=(
double *)&->xtemp[0];
666 amp->ytemp.resize(ny);
667 for(
int i=0;i<ny;i++) {
670 yptr=(
double *)&->ytemp[0];
672 amp->stemp.resize(nx*ny);
675 for(
size_t i=0;i<nx;i++) {
676 for(
size_t j=0;j<ny;j++) {
677 amp->stemp[i*ny+j]=m(i,j);
680 data=(
double *)&->stemp[0];
virtual int comm_function(std::vector< std::string > &sv, bool itive_com)
Create a column from a function.
virtual int comm_to_hist(std::vector< std::string > &sv, bool itive_com)
Desc.
virtual int comm_sort(std::vector< std::string > &sv, bool itive_com)
Sort the table by a column.
Parameters for iterate_func()
virtual int comm_internal(std::vector< std::string > &sv, bool itive_com)
Output to a file in internal format.
virtual int comm_integ(std::vector< std::string > &sv, bool itive_com)
Create a column which is the integral of another.
A namespace for objects associated with the command-line utility 'acol'.
Double parameter for o2scl::cli.
The driver for 'acol' command-line utility.
void * o2scl_create_acol_manager()
Create an o2scl_acol::acol_manager object.
virtual int comm_gen3_list(std::vector< std::string > &sv, bool itive_com)
Read a generic data file.
virtual int comm_delete_col(std::vector< std::string > &sv, bool itive_com)
Delete a column.
virtual int run_o2graph()
For o2graph in o2sclpy.
virtual int comm_cat(std::vector< std::string > &sv, bool itive_com)
Concatenate two table/table3d objects.
virtual int comm_sum(std::vector< std::string > &sv, bool itive_com)
Sum two table/table3d objects.
String parameter for o2scl::cli.
virtual int comm_preview(std::vector< std::string > &sv, bool itive_com)
Preview the table.
virtual int comm_get_conv(std::vector< std::string > &sv, bool itive_com)
Get a conversion factor.
std::map< std::string, std::string * > str_params
String parameters.
hist_2d hist_2d_obj
A pointer to the hist.
virtual int comm_contours(std::vector< std::string > &sv, bool itive_com)
Desc.
virtual int comm_calc(std::vector< std::string > &sv, bool itive_com)
Compute a scalar value.
virtual int comm_index(std::vector< std::string > &sv, bool itive_com)
Add a column for line numbers.
virtual int comm_stats(std::vector< std::string > &sv, bool itive_com)
Get column stats.
virtual int comm_slice(std::vector< std::string > &sv, bool itive_com)
Extract a slice from a table3d object to generate a table object.
virtual int comm_insert_full(std::vector< std::string > &sv, bool itive_com)
Insert an external table using interpolation.
int user_ncols
The number of columns requested by the user.
virtual int comm_nlines(std::vector< std::string > &sv, bool itive_com)
Desc.
virtual int setup_options()
Add the options to the cli object.
virtual int comm_filelist(std::vector< std::string > &sv, bool itive_com)
Read a file and list the O2scl objects.
format_float ffl
The number formatter for html output.
int ncols
Number of columns in screen.
int interp_type
The interpolation type.
A two-dimensional histogram class.
hist hist_obj
A pointer to the hist.
virtual int comm_find_row(std::vector< std::string > &sv, bool itive_com)
Find a row from a function.
virtual int comm_version(std::vector< std::string > &sv, bool itive_com)
Print version.
void o2scl_acol_parse(void *vp, int n_entries, int *sizes, char *str)
Parse the set of commands in n_entries, sizes and str.
virtual int comm_interp(std::vector< std::string > &sv, bool itive_com)
Create an html file.
table3d table3d_obj
Pointer to the three dimensional table.
std::vector< std::string > o2scl_acol_parse_arrays(int n_entries, int *sizes, char *str)
Construct a string vector from the data in n_entries, sizes, and str.
int prec
The output precision (default 6)
static herr_t filelist_func(hid_t loc, const char *name, const H5L_info_t *inf, void *op_data)
HDF object iteration function.
virtual int comm_interactive(std::vector< std::string > &sv, bool itive_com)
Toggle interactive mode.
int o2scl_acol_get_column(void *vp, char *col_name, int &n, double *&ptr)
Return the size and a pointer to the column named col_name in a table object.
A one-dimensional histogram class.
virtual int comm_set(std::vector< std::string > &sv, bool itive_com)
Post-processing for setting a value.
Configurable command-line interface.
cli * cl
Dummy cli object for cli::cli_gets()
bool post_interactive
True if we should run interactive mode after parsing the command-line.
std::string env_var_name
The environment variable to read from.
int o2scl_acol_contours_n(void *vp)
Desc.
virtual int comm_insert(std::vector< std::string > &sv, bool itive_com)
Insert a column from an external table using interpolation.
int get_input_one(std::vector< std::string > &sv, std::string directions, std::string &in, std::string comm_name, bool itive_com)
An internal command for prompting the user for one command argument.
virtual int comm_select(std::vector< std::string > &sv, bool itive_com)
Select several columns for a new table.
static herr_t iterate_func(hid_t loc, const char *name, const H5L_info_t *inf, void *op_data)
HDF object iteration function.
std::string type
String designating the current type.
std::vector< o2scl::contour_line > cont_obj
Contour lines object.
virtual int comm_read(std::vector< std::string > &sv, bool itive_com)
Read a file.
void vector_copy(const vec_t &src, vec2_t &dest)
Simple vector copy.
virtual int comm_min(std::vector< std::string > &sv, bool itive_com)
Compute the minimum value of a colum.
std::map< std::string, int * > int_params
Integer parameters.
virtual int comm_select_rows(std::vector< std::string > &sv, bool itive_com)
Select several rows for a new table.
int set_swidth(int ncol)
Set screen witdth.
int o2scl_acol_get_hist_wgts(void *vp, int &n, double *&ptr)
Return the size and a pointer to the column named col_name in a table object.
bool names_out
True if we should output column names.
int o2scl_acol_get_hist_reps(void *vp, int &n, double *&ptr)
Return the size and a pointer to the column named col_name in a table object.
virtual int comm_get_row(std::vector< std::string > &sv, bool itive_com)
Print out an entire row.
int verbose
The verbosity level (default 1)
std::string obj_name
The name of the table.
String parameter for o2scl::cli.
virtual int comm_show_units(std::vector< std::string > &sv, bool itive_com)
Set units of a column.
virtual int comm_deriv(std::vector< std::string > &sv, bool itive_com)
Create a column which is the derivative of another.
bool scientific
True for scientific output mode.
int get_input(std::vector< std::string > &sv, std::vector< std::string > &directions, std::vector< std::string > &in, std::string comm_name, bool itive_com)
An internal command for prompting the user for command arguments.
void clear_obj()
Clear memory associated with the current object and set type to "".
table_units table_obj
A pointer to the table.
o2scl::convert_units & cng
Convert units object (initialized by constructor to global object)
virtual int comm_list(std::vector< std::string > &sv, bool itive_com)
List columns in table 'tp' named 'tname' assuming screen size 'ncol'.
virtual int setup_help()
Add the help text to the cli object.
virtual int comm_generic(std::vector< std::string > &sv, bool itive_com)
Read a generic data file.
Integer parameter for o2scl::cli.
virtual int comm_output(std::vector< std::string > &sv, bool itive_com)
Output to screen or file.
void o2scl_acol_get_type(void *vp, int &n, char *&str)
Desc.
double o2scl_acol_contours_line(void *vp, int i, int &n, double *&ptrx, double *&ptry)
Desc.
virtual int run(int argv, char *argc[])
Main run function.
virtual int comm_deriv2(std::vector< std::string > &sv, bool itive_com)
Create a column which is the second derivative of another.
Data table table class with units.
virtual int setup_cli()
Create the cli object (with readline support if available)
virtual int comm_type(std::vector< std::string > &sv, bool itive_com)
Desc.
A data structure containing many slices of two-dimensional data points defined on a grid...
void o2scl_free_acol_manager(void *vp)
Free memory associated with a o2scl_acol::acol_manager object.
std::string def_args
Default arguments from environment.
virtual int comm_assign(std::vector< std::string > &sv, bool itive_com)
Assign a constant.
virtual int comm_convert_unit(std::vector< std::string > &sv, bool itive_com)
Convert units of a column.
Store data in an O<span style='position: relative; top: 0.3em; font-size: 0.8em'>2</span>scl O$_2$sc...
virtual int comm_fit(std::vector< std::string > &sv, bool itive_com)
Fit two columns to a function.
virtual int comm_rename(std::vector< std::string > &sv, bool itive_com)
Rename a column.
std::string unit_fname
Filename for units command.
virtual int setup_parameters()
Add the parameters for 'set' to the cli object.
bool pretty
True if we should make the output into neat columns (default true)
virtual int comm_max(std::vector< std::string > &sv, bool itive_com)
Compute the maximum value of a colum.
virtual int comm_get_unit(std::vector< std::string > &sv, bool itive_com)
Get units of a column.
virtual int comm_delete_rows(std::vector< std::string > &sv, bool itive_com)
Delete rows specified by a function.
virtual int comm_create(std::vector< std::string > &sv, bool itive_com)
Create a table from a column of equally spaced values.
int o2scl_acol_get_slice(void *vp, char *slice_name, int &nx, double *&xptr, int &ny, double *&yptr, double *&data)
Return the size and a pointer to the column named col_name in a table object.
virtual int comm_set_data(std::vector< std::string > &sv, bool itive_com)
Set an individual data point at a specified row and column.
virtual int comm_set_unit(std::vector< std::string > &sv, bool itive_com)
Set units of a column.
virtual int comm_create3(std::vector< std::string > &sv, bool itive_com)
Create a table3d object.