acolm.h
Go to the documentation of this file.
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2006-2020, Andrew W. Steiner
5 
6  This file is part of O2scl.
7 
8  O2scl is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 3 of the License, or
11  (at your option) any later version.
12 
13  O2scl is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with O2scl. If not, see <http://www.gnu.org/licenses/>.
20 
21  -------------------------------------------------------------------
22 */
23 #ifndef O2SCL_ACOLM_H
24 #define O2SCL_ACOLM_H
25 
26 /** \file acolm.h
27  \brief The \ref o2scl_acol::acol_manager class header
28 */
29 #ifdef HAVE_CONFIG_H
30 #include <config.h>
31 #endif
32 
33 #include <iostream>
34 #include <string>
35 #include <vector>
36 #include <fnmatch.h>
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>
47 #include <o2scl/tensor_grid.h>
48 #include <o2scl/uniform_grid.h>
49 #include <o2scl/slack_messenger.h>
50 
51 #ifdef O2SCL_READLINE
52 #include <o2scl/cli_readline.h>
53 #else
54 #include <o2scl/cli.h>
55 #endif
56 
57 /// A namespace for objects associated with the command-line utility 'acol'
58 namespace o2scl_acol {
59 
60  /** \brief The driver for 'acol' command-line utility
61  \nothing
62 
63  \future There is quite a bit of code duplication in
64  comm_autocorr() between the "table" and "other" types.
65  This could be streamlined.
66 
67  \future sum/max/min/output/interp/deriv/integ/deriv2
68  for hist, hist_2d, and v<c>
69 
70  \future Commands xindex and yindex for table3d.
71 
72  \future Enable set_grid() for table3d similar to tensor_grid.
73 
74  \future Fix fit for table.
75 
76  \future Use swap instead of copy in 'select' for table objects.
77 
78  \future Make sure get_input() is used more consistently.
79 
80  \future Make sure preview, output, internal, generic, and create
81  work consistently across all types.
82 
83  \future Stack-like operations (push, pop, swap,
84  stack-list, etc.)?
85 
86  \future Add functionality to ensure that three digit exponents
87  are still handled gracefully (do this by creating a new boolean
88  setting which, if true, always makes three spaces for
89  exponents?)
90 
91  \future Fix insert and insert_full so that it automatically
92  renames columns
93 
94  \future Allow "insert" commands to be restrictive, avoiding
95  extrapolation
96 
97  \hline
98  */
99  class acol_manager {
100 
101 #ifndef DOXYGEN_INTERNAL
102 
103  protected:
104 
105  /// The object which sends Slack messages
107 
108  /** \brief A list of all type-specific commands for each type
109  */
110  std::map<std::string,std::vector<std::string> > type_comm_list;
111 
112  /** \brief A list of all types
113  */
114  std::vector<std::string> type_list;
115 
116  /** \brief If true, then run in o2graph mode
117  */
119 
120  /** \brief The object for the set function
121  */
123 
124  /** \brief Add new commands for type \c new_type
125  */
126  void command_add(std::string new_type);
127 
128 #ifdef DOXYGEN
129  /// The number formatter for html output
130  format_float ffl;
131 #else
133 #endif
134 
135  /// Convert units object (initialized by constructor to global object)
137 
138  /// \name Parameters modifiable by the user
139  //@{
140  /// The output precision (default 6)
141  int prec;
142 
143  /// The verbosity level (default 1)
144  int verbose;
145 
146  /// True if we should make the output into neat columns (default true)
147  bool pretty;
148 
149  /// True if we should output column names
150  bool names_out;
151 
152  /// The name of the table
153  std::string obj_name;
154 
155  /// Filename for units command
156  std::string unit_fname;
157 
158  /// Default arguments from environment
159  std::string def_args;
160 
161  /// The number of columns requested by the user
163 
164  /// The interpolation type
166 
167  /// If set, try to compress
168  int compress;
169 
170  /// True for scientific output mode
172  //@}
173 
174  /// \name The parameter objects
175  //@{
176  o2scl::cli::parameter_string p_obj_name;
177  o2scl::cli::parameter_string p_unit_fname;
178  o2scl::cli::parameter_string p_def_args;
179  o2scl::cli::parameter_int p_verbose;
180  o2scl::cli::parameter_int p_compress;
183  o2scl::cli::parameter_int p_interp_type;
184  o2scl::cli::parameter_bool p_scientific;
186  o2scl::cli::parameter_bool p_names_out;
187  //@}
188 
189  /// Number of columns in screen
190  int ncols;
191 
192 #endif
193 
194  public:
195 
196  acol_manager();
197 
198  virtual ~acol_manager() {}
199 
200  /// String designating the current type
201  std::string type;
202 
203  /// Dummy cli object for cli::cli_gets()
204 #ifdef DOXYGEN
205  cli *cl;
206 #else
207  o2scl::cli *cl;
208 #endif
209 
210  /// \name Object storage
211  //@{
212  o2scl::table_units<> table_obj;
213  o2scl::table3d table3d_obj;
214  o2scl::hist hist_obj;
215  o2scl::hist_2d hist_2d_obj;
216 
217  int int_obj;
218  char char_obj;
219  double double_obj;
220  size_t size_t_obj;
221  std::string string_obj;
222 
223  std::vector<o2scl::contour_line> cont_obj;
225 
226  std::vector<int> intv_obj;
227  std::vector<double> doublev_obj;
228  std::vector<size_t> size_tv_obj;
229  std::vector<std::string> stringv_obj;
230 
231  o2scl::tensor<> tensor_obj;
232  o2scl::tensor<int> tensor_int_obj;
233  o2scl::tensor<size_t> tensor_size_t_obj;
234  o2scl::tensor_grid<> tensor_grid_obj;
235 
237  //@}
238 
239  /** \brief True if we should run interactive mode after parsing
240  the command-line
241  */
243 
244  /// The environment variable to read from
245  std::string env_var_name;
246 
247  /// Integer parameters
248  std::map<std::string,int *> int_params;
249 
250  protected:
251 
252  /** \brief Clear memory associated with the current object and set
253  type to ""
254  */
255  void clear_obj();
256 
257  /** \brief Remove the type-specific commands
258  */
259  void command_del(std::string ltype);
260 
261  // Ensure \c col is unique from entries in \c cnames
262  //int make_unique_name(std::string &col, std::vector<std::string> &cnames);
263 
264  public:
265 
266  /** \brief Get the verbose parameter
267 
268  This function is used in \ref o2scl_acol_mult_vectors_to_conts() .
269  */
270  int get_verbose() {
271  return verbose;
272  }
273 
274  /** \brief Main run function
275 
276  Process command-line options using cli object, interface with
277  the operating system via getenv(), instantiate and call the
278  acol_manager object.
279  */
280  virtual int run(int argv, char *argc[], bool full_process=true);
281 
282  /// Create the cli object (with readline support if available)
283  virtual int setup_cli();
284 
285  /// Add the options to the cli object
286  virtual int setup_options();
287 
288  /// Add the help text to the cli object
289  virtual int setup_help();
290 
291  /// Add the parameters for 'set' to the cli object
292  virtual int setup_parameters();
293 
294  /// Assign a constant
295  virtual int comm_assign(std::vector<std::string> &sv, bool itive_com);
296 
297  /// Refine an object
298  virtual int comm_refine(std::vector<std::string> &sv, bool itive_com);
299 
300  /// Compute a scalar value
301  virtual int comm_calc(std::vector<std::string> &sv, bool itive_com);
302 
303  /// Clear the current object
304  virtual int comm_clear(std::vector<std::string> &sv, bool itive_com);
305 
306  /** \brief Output the help text
307  */
308  virtual int comm_help(std::vector<std::string> &sv, bool itive_com);
309 
310  /** \brief List commands, with an optional type argument
311  */
312  virtual int comm_commands(std::vector<std::string> &sv, bool itive_com);
313 
314  /// Create a table from a column of equally spaced values
315  virtual int comm_create(std::vector<std::string> &sv, bool itive_com);
316 
317  /** \brief Set the grid for a \ref o2scl::tensor_grid object
318  */
319  virtual int comm_set_grid(std::vector<std::string> &sv, bool itive_com);
320 
321  /** \brief Get the grid for a \ref o2scl::tensor_grid object
322  */
323  virtual int comm_get_grid(std::vector<std::string> &sv, bool itive_com);
324 
325  /// Download a file from a specified URL
326  virtual int comm_download(std::vector<std::string> &sv, bool itive_com);
327 
328  /// Delete a column
329  virtual int comm_delete_col(std::vector<std::string> &sv, bool itive_com);
330 
331  /// Delete rows specified by a function
332  virtual int comm_delete_rows(std::vector<std::string> &sv, bool itive_com);
333 
334  /// Delete rows which match to within a specified tolerance
335  virtual int comm_delete_rows_tol(std::vector<std::string> &sv,
336  bool itive_com);
337 
338  /// Create a column which is the derivative of another
339  virtual int comm_deriv(std::vector<std::string> &sv, bool itive_com);
340 
341  /** \brief Convert object to a \ref o2scl::table object
342  */
343  virtual int comm_to_table(std::vector<std::string> &sv, bool itive_com);
344 
345  /** \brief For tensor object, get entries along the main diagonal
346  */
347  virtual int comm_diag(std::vector<std::string> &sv, bool itive_com);
348 
349  /** \brief Convert object to a \ref o2scl::table3d object
350  */
351  virtual int comm_to_table3d(std::vector<std::string> &sv, bool itive_com);
352 
353  /** \brief Convert object to a \ref o2scl::tensor_grid object
354  */
355  virtual int comm_to_tensor_grid(std::vector<std::string> &sv,
356  bool itive_com);
357 
358  /** \brief Convert object to a \ref o2scl::tensor object
359  */
360  virtual int comm_to_tensor(std::vector<std::string> &sv,
361  bool itive_com);
362 
363  /** \brief Convert object to a \ref o2scl::table3d object
364  by summing over tensor indices
365  */
366  virtual int comm_to_table3d_sum(std::vector<std::string> &sv,
367  bool itive_com);
368 
369  /** \brief Compute the autocorrelation coefficient
370  */
371  virtual int comm_autocorr(std::vector<std::string> &sv, bool itive_com);
372 
373  /// Create a slice which is the derivative wrt x of another
374  virtual int comm_deriv_x(std::vector<std::string> &sv, bool itive_com);
375 
376  /// Create a slice which is the derivative wrt y of another
377  virtual int comm_deriv_y(std::vector<std::string> &sv, bool itive_com);
378 
379  /// Create a column which is the second derivative of another
380  virtual int comm_deriv2(std::vector<std::string> &sv, bool itive_com);
381 
382  /// Read a file and list the O2scl objects
383  virtual int comm_filelist(std::vector<std::string> &sv, bool itive_com);
384 
385  /// Read an object from a file
386  virtual int comm_read(std::vector<std::string> &sv, bool itive_com);
387 
388  /// Add 'nlines' as a constant to a \ref o2scl::table object
389  virtual int comm_nlines(std::vector<std::string> &sv, bool itive_com);
390 
391  /// Convert a \ref o2scl::table object to a \ref o2scl::hist object
392  virtual int comm_to_hist(std::vector<std::string> &sv, bool itive_com);
393 
394  /// Convert a \ref o2scl::table object to a \ref o2scl::hist object
395  virtual int comm_to_hist_2d(std::vector<std::string> &sv, bool itive_com);
396 
397  /// Output the type of the current object to the screen
398  virtual int comm_type(std::vector<std::string> &sv, bool itive_com);
399 
400  /// Find a row from a function
401  virtual int comm_find_row(std::vector<std::string> &sv, bool itive_com);
402 
403  /// Create a column from a function
404  virtual int comm_function(std::vector<std::string> &sv, bool itive_com);
405 
406  /// Read a generic data file
407  virtual int comm_generic(std::vector<std::string> &sv, bool itive_com);
408 
409  /// Print out an entire row
410  virtual int comm_get_row(std::vector<std::string> &sv, bool itive_com);
411 
412  /** \brief Extract a slice from a table3d object to generate a
413  \ref o2scl::table object
414  */
415  virtual int comm_slice(std::vector<std::string> &sv, bool itive_com);
416 
417  /// Fit two columns to a function
418  virtual int comm_fit(std::vector<std::string> &sv, bool itive_com);
419 
420  /// Insert a column from an external table using interpolation
421  virtual int comm_insert(std::vector<std::string> &sv, bool itive_com);
422 
423  /// Insert an external table using interpolation
424  virtual int comm_insert_full(std::vector<std::string> &sv, bool itive_com);
425 
426  /// Create a column which is the integral of another
427  virtual int comm_integ(std::vector<std::string> &sv, bool itive_com);
428 
429  /// Toggle interactive mode
430  virtual int comm_interactive(std::vector<std::string> &sv, bool itive_com);
431 
432  /// Output to a file in internal format
433  virtual int comm_internal(std::vector<std::string> &sv, bool itive_com);
434 
435  /// Create an html file
436  virtual int comm_interp(std::vector<std::string> &sv, bool itive_com);
437 
438  /// List columns in table 'tp' named 'tname' assuming screen size 'ncol'
439  virtual int comm_list(std::vector<std::string> &sv, bool itive_com);
440 
441  /// Compute the maximum value of a colum
442  virtual int comm_max(std::vector<std::string> &sv, bool itive_com);
443 
444  /// Compute the minimum value of a colum
445  virtual int comm_min(std::vector<std::string> &sv, bool itive_com);
446 
447  /// Set the name of the x grid
448  virtual int comm_x_name(std::vector<std::string> &sv, bool itive_com);
449 
450  /// Set the name of the y grid
451  virtual int comm_y_name(std::vector<std::string> &sv, bool itive_com);
452 
453  /// Add a column for line numbers
454  virtual int comm_index(std::vector<std::string> &sv, bool itive_com);
455 
456  /// Output to screen or file
457  virtual int comm_output(std::vector<std::string> &sv, bool itive_com);
458 
459  /// Process arguments for rearrange
460  void rearrange_arg_process(std::string str,
461  std::vector<std::string> &sv);
462 
463  /// Rearrange a tensor
464  virtual int comm_rearrange(std::vector<std::string> &sv, bool itive_com);
465 
466  /// Preview the table
467  virtual int comm_preview(std::vector<std::string> &sv, bool itive_com);
468 
469  /// Send a slack message
470  virtual int comm_slack(std::vector<std::string> &sv, bool itive_com);
471 
472  /** \brief Get or set the value
473  */
474  virtual int comm_value(std::vector<std::string> &sv, bool itive_com);
475 
476  /// Concatenate two table/table3d objects
477  virtual int comm_cat(std::vector<std::string> &sv, bool itive_com);
478 
479  /// Sum two table/table3d objects
480  virtual int comm_sum(std::vector<std::string> &sv, bool itive_com);
481 
482  /// Rename a column
483  virtual int comm_rename(std::vector<std::string> &sv, bool itive_com);
484 
485  /// Select several columns for a new table
486  virtual int comm_select(std::vector<std::string> &sv, bool itive_com);
487 
488  /// Select several rows for a new table
489  virtual int comm_select_rows(std::vector<std::string> &sv,
490  bool itive_com);
491 
492  /** \brief A faster form of select rows which requires one to specify
493  the columns needed for the selection criteria first
494  */
495  virtual int comm_select_rows2(std::vector<std::string> &sv,
496  bool itive_com);
497 
498  /// Post-processing for setting a value
499  virtual int comm_set(std::vector<std::string> &sv, bool itive_com);
500 
501  /// Set an individual data point at a specified row and column
502  virtual int comm_set_data(std::vector<std::string> &sv, bool itive_com);
503 
504  /// Set units of a column
505  virtual int comm_set_unit(std::vector<std::string> &sv, bool itive_com);
506 
507  /// Compute contour lines
508  virtual int comm_contours(std::vector<std::string> &sv, bool itive_com);
509 
510  /// Set units of a column
511  virtual int comm_show_units(std::vector<std::string> &sv, bool itive_com);
512 
513  /// Get units of a column
514  virtual int comm_get_unit(std::vector<std::string> &sv, bool itive_com);
515 
516  /// Get an entry
517  virtual int comm_entry(std::vector<std::string> &sv, bool itive_com);
518 
519  /// Get an entry by grid point
520  virtual int comm_entry_grid(std::vector<std::string> &sv, bool itive_com);
521 
522  /// Convert units of a column
523  virtual int comm_convert_unit(std::vector<std::string> &sv,
524  bool itive_com);
525 
526  /// Sort the table by a column
527  virtual int comm_sort(std::vector<std::string> &sv, bool itive_com);
528 
529  /// Get column stats
530  virtual int comm_stats(std::vector<std::string> &sv, bool itive_com);
531 
532  /// Get column stats with weights specified in a second column
533  virtual int comm_wstats(std::vector<std::string> &sv, bool itive_com);
534 
535  /// Print version
536  virtual int comm_version(std::vector<std::string> &sv, bool itive_com);
537 
538  /// Get a conversion factor
539  virtual int comm_get_conv(std::vector<std::string> &sv, bool itive_com);
540 
541  /// Set screen width
542  int set_swidth(int ncol) {
543  ncols=ncol;
544  return 0;
545  }
546 
547  protected:
548 
549  /// An internal command for prompting the user for command arguments
550  int get_input(std::vector<std::string> &sv,
551  std::vector<std::string> &directions,
552  std::vector<std::string> &in, std::string comm_name,
553  bool itive_com);
554 
555  /// An internal command for prompting the user for one command argument
556  int get_input_one(std::vector<std::string> &sv, std::string directions,
557  std::string &in, std::string comm_name,
558  bool itive_com);
559 
560  public:
561 
562  /// \name Temporary storage for \ref o2scl_acol_get_slice()
563  //@{
564  std::vector<double> xtemp;
565  std::vector<double> ytemp;
566  std::vector<double> stemp;
567  //@}
568 
569  // End of class acol_manager
570  };
571 
572 }
573 
574 extern "C" {
575 
576  // (remember that \ref's don't work in \name groups)
577  /// \name Functions to integrate o2scl_acol::acol_manager with python
578  //@{
579  /** \brief Create an \ref o2scl_acol::acol_manager object
580 
581  This function creates an object of type
582  \ref o2scl_acol::acol_manager with the <tt>new</tt>
583  operator and then calls the function
584  \ref o2scl_acol::acol_manager::run() .
585  */
587 
588  /** \brief Free memory associated with a \ref
589  o2scl_acol::acol_manager object
590 
591  This function uses <tt>delete</tt> to free the
592  memory associated with an object of type
593  \ref o2scl_acol::acol_manager .
594  */
595  void o2scl_free_acol_manager(void *vp);
596 
597  /** \brief Using the commands stored in
598  <tt>(n_entries,sizes,str)</tt>, apply the aliases stored in the
599  \ref o2scl::cli object and return the counts
600  <tt>(n_new,s_new)</tt> for memory allocation
601 
602  This function is used in \o2y in
603  <tt>o2graph_plotter::parse_argv()</tt> to process aliases in the
604  \c o2graph executable. It converts the input data to a
605  <tt>vector&lt;string&gt;</tt> object, applies any aliases stored
606  in the \ref o2scl::cli (or \ref o2scl::cli_readline) object, and
607  then counts the new number of arguments (\c n_new) and string
608  length for all arguments (\c s_new). These counts are used to
609  allocate memory in Python in
610  <tt>o2graph_plotter::parse_argv()</tt> in order to prepare for a
611  call to \ref o2scl_acol_apply_aliases() .
612  */
613  void o2scl_acol_alias_counts(void *vp, int n_entries, int *sizes,
614  char *str, int &n_new, int &s_new);
615 
616  /** \brief \brief Using the commands stored in
617  <tt>(n_entries,sizes,str)</tt>, apply the aliases stored in the
618  \ref o2scl::cli object and place them in the pre-allocated
619  arrays \c sizes_new and \c str_new
620 
621  This function is used in \o2y in
622  <tt>o2graph_plotter::parse_argv()</tt> to process aliases in the
623  \c o2graph executable. It converts the input data to a
624  <tt>vector&lt;string&gt;</tt> object, applies any aliases stored
625  in the \ref o2scl::cli (or \ref o2scl::cli_readline) object, and
626  then stores the results in \c sizes_new and \c str_new (which
627  are allocated beforehand in Python.
628  */
629  void o2scl_acol_apply_aliases(void *vp, int n_entries, int *sizes,
630  char *str, int *sizes_new, char *str_new);
631 
632  /** \brief Set the command name, the short description,
633  and the environment variable name
634 
635  This function is used in \o2y in
636  <tt>o2graph_plotter::parse_argv()</tt> to communicate three
637  strings which are used in the \ref o2scl_acol::acol_manager class.
638  */
639  void o2scl_acol_set_names(void *vp, int n1, char *cmd_name,
640  int n2, char *short_desc, int n3,
641  char *env_var);
642 
643  /** \brief Convert a rank 2 \ref o2scl::tensor (with data types
644  \c double, \c int, or \c size_t) or \ref o2scl::tensor_grid
645  object to a \ref o2scl::table3d object
646 
647  There are two sets of values for \c i1 and \c i2 which are
648  allowed, either <tt>i1=0, i2=1</tt> or <tt>i1=1, i2=0</tt>, the
649  latter of which corresponds to transposing the two indices.
650 
651  This function is used in o2graph_plotter::den_plot().
652  */
653  int o2scl_acol_tensor_to_table3d(void *vp, int i1, int i2);
654 
655  /** \brief Construct a string vector from the data in
656  \c n_entries, \c sizes, and \c str
657 
658  This function operates on an integer \c n_entries, an array \c
659  sizes (which has length \c n_entries) and an array of characters
660  \c str which has a length equal to the sum of the entries in the
661  array \c sizes. The \c sizes array contains the length of each
662  string, and the \c str array contains the characters in multiple
663  strings, concatenated together to form a single combined string.
664  This function takes the data in these three objects and creates
665  an object of type <tt>vector&lt;string&gt;</tt> from it, similar
666  to the way that \ref o2scl_hdf::hdf_file::gets_vec() reads a string
667  array from an HDF5 file.
668 
669  This function is used in \ref o2scl_acol_parse(), \ref
670  o2scl_acol_alias_counts() and \ref o2scl_acol_apply_aliases() .
671  */
672  std::vector<std::string> o2scl_acol_parse_arrays
673  (int n_entries, int *sizes, char *str);
674 
675  /** \brief Parse the set of commands in \c n_entries, \c sizes
676  and \c str
677 
678  This function uses the executes the commands stored \c
679  n_entries, \c sizes, and \c str using the \ref o2scl::cli object
680  in \ref o2scl_acol::acol_manager as if they were typed on the command
681  line.
682 
683  This function is used in \o2y in o2graph_plotter::set_wrapper(),
684  o2graph_plotter::get_wrapper(), and o2graph_plotter::gen_acol().
685  */
686  void o2scl_acol_parse(void *vp, int n_entries, int *sizes,
687  char *str);
688 
689  /** \brief Return the size and a pointer to the column
690  named \c col_name in a \ref o2scl::table object
691 
692  This function is used in o2graph_plotter::plot(),
693  o2graph_plotter::plot1(), o2graph_plotter::rplot(),
694  o2graph_plotter::scatter(), o2graph_plotter::histplot(),
695  o2graph_plotter::hist2dplot(), and o2graph_plotter::errorbar().
696  */
697  int o2scl_acol_get_column(void *vp, char *col_name,
698  int &n, double *&ptr);
699 
700  /** \brief Return the size and a pointer to the row
701  with index \c row_index in a \ref o2scl::table object
702 
703  \note This function is currently unused. It may have been a
704  precursor for a mult-vector-spec?
705  */
706  int o2scl_acol_get_row_ser(void *vp, char *parttern, int row_index,
707  int &n, double *&ptr);
708 
709  /** \brief Return the size and a pointer to a double array
710  corresponding to a <tt>int[]</tt>, <tt>size_t[]</tt>, or
711  <tt>double[]</tt> object
712 
713  This function is used in o2graph_plotter::plot1().
714  */
715  int o2scl_acol_get_double_arr(void *vp, int &n, double *&ptr);
716 
717  /** \brief Return the sizes, grid, and data pointer for
718  a rank 3 \ref o2scl::tensor_grid object
719 
720  This function is used in <tt>o2graph_plotter</tt> for
721  <tt>yt-add-vol</tt>.
722  */
723  int o2scl_acol_get_tensor_grid3(void *vp, int &nx, int &ny,
724  int &nz, const double *&xg,
725  const double *&yg,
726  const double *&zg, const double *&data);
727 
728  /** \brief Return the size and a pointer to the column
729  named \c col_name in a \ref o2scl::table object
730 
731  This function is used in o2graph_plotter::plot().
732  */
733  int o2scl_acol_get_hist_reps(void *vp, int &n, double *&ptr);
734 
735  /** \brief Return the size and a pointer to the column
736  named \c col_name in a \ref o2scl::table object
737 
738  This function is used in o2graph_plotter::plot().
739  */
740  int o2scl_acol_get_hist_wgts(void *vp, int &n, double *&ptr);
741 
742  /** \brief Return the dimensionality, mesh size, and
743  lower and upper limits for a \ref o2scl::prob_dens_mdim_amr
744  object.
745 
746  This function is used in o2graph_plotter::plot().
747  */
748  int o2scl_acol_pdma_get_base(void *vp, int &ndim, int &n,
749  double *&low, double *&high);
750 
751  /** \brief Return the lower and upper limits, fractional volume, and
752  weight for the \ref o2scl::prob_dens_mdim_amr::hypercube object
753  of index \c ix
754 
755  This function is used in o2graph_plotter::plot().
756  */
757  int o2scl_acol_pdma_get_cube(void *vp, int ix,
758  double *&low, double *&high,
759  double &frac_vol, double &weight);
760 
761  /** \brief Return the number of contour lines associated with
762  the current contour line vector object
763 
764  This function is used in o2graph_plotter::plot() and
765  o2graph_plotter::plotv().
766  */
767  int o2scl_acol_contours_n(void *vp);
768 
769  /** \brief For the current contour line vector object, set the
770  pointers to the x- and y-values in the contour lines and return
771  the contour level
772  */
773  double o2scl_acol_contours_line(void *vp, int i, int &n, double *&ptrx,
774  double *&ptry);
775 
776  /** \brief Return the type of the current object
777 
778  This function is used in o2graph_plotter::get_type(),
779  o2graph_plotter::den_plot(), o2graph_plotter::plot(),
780  o2graph_plotter::rplot(), o2graph_plotter::scatter(),
781  o2graph_plotter::histplot(), o2graph_plotter::hist2dplot(),
782  o2graph_plotter::errorbar(), o2graph_plotter::plot1(),
783  and o2graph_plotter::parse_string_list().
784  */
785  void o2scl_acol_get_type(void *vp, int &n, char *&str);
786 
787  /** \brief Return the size and a pointer to the slice
788  named \c sl_name in a \ref o2scl::table object
789 
790  This function is used in o2graph_plotter::den_plot().
791  */
792  int o2scl_acol_get_slice(void *vp, char *slice_name,
793  int &nx, double *&xptr,
794  int &ny, double *&yptr,
795  double *&data);
796 
797  /** \brief For a two-dimensional histogram, return the bin edges,
798  number of bins in both directions, and the weights in each bin
799 
800  This function is used in o2graph_plotter::den_plot().
801  */
802  int o2scl_acol_get_hist_2d(void *vp,
803  int &nx, double *&xptr,
804  int &ny, double *&yptr,
805  double *&data);
806 
807  /** \brief Convert two multiple vector specifications to
808  the a list of \ref o2scl::contour_line objects
809 
810  This function is used in o2graph_plotter::plotv().
811  */
812  int o2scl_acol_mult_vectors_to_conts(void *vp, char *str1,
813  char *str2);
814  //@}
815 
816 }
817 
818 #endif
o2scl::tensor
Tensor class with arbitrary dimensions.
Definition: tensor.h:226
o2scl::hist
A one-dimensional histogram class.
Definition: hist.h:113
o2scl_acol::acol_manager::type
std::string type
String designating the current type.
Definition: acolm.h:201
o2scl_acol::acol_manager::comm_index
virtual int comm_index(std::vector< std::string > &sv, bool itive_com)
Add a column for line numbers.
o2scl_acol_get_row_ser
int o2scl_acol_get_row_ser(void *vp, char *parttern, int row_index, int &n, double *&ptr)
Return the size and a pointer to the row with index row_index in a o2scl::table object.
o2scl_acol::acol_manager::run
virtual int run(int argv, char *argc[], bool full_process=true)
Main run function.
o2scl_acol_set_names
void o2scl_acol_set_names(void *vp, int n1, char *cmd_name, int n2, char *short_desc, int n3, char *env_var)
Set the command name, the short description, and the environment variable name.
o2scl_acol::acol_manager::comm_autocorr
virtual int comm_autocorr(std::vector< std::string > &sv, bool itive_com)
Compute the autocorrelation coefficient.
o2scl_acol::acol_manager::type_comm_list
std::map< std::string, std::vector< std::string > > type_comm_list
A list of all type-specific commands for each type.
Definition: acolm.h:110
o2scl_acol::acol_manager::int_params
std::map< std::string, int * > int_params
Integer parameters.
Definition: acolm.h:248
o2scl_acol::acol_manager::comm_deriv
virtual int comm_deriv(std::vector< std::string > &sv, bool itive_com)
Create a column which is the derivative of another.
o2scl_acol::acol_manager::comm_refine
virtual int comm_refine(std::vector< std::string > &sv, bool itive_com)
Refine an object.
o2scl_acol::acol_manager::comm_max
virtual int comm_max(std::vector< std::string > &sv, bool itive_com)
Compute the maximum value of a colum.
o2scl_acol::acol_manager::comm_slice
virtual int comm_slice(std::vector< std::string > &sv, bool itive_com)
Extract a slice from a table3d object to generate a o2scl::table object.
o2scl_acol::acol_manager::comm_delete_rows_tol
virtual int comm_delete_rows_tol(std::vector< std::string > &sv, bool itive_com)
Delete rows which match to within a specified tolerance.
o2scl_acol::acol_manager::comm_to_tensor
virtual int comm_to_tensor(std::vector< std::string > &sv, bool itive_com)
Convert object to a o2scl::tensor object.
o2scl_acol::acol_manager::unit_fname
std::string unit_fname
Filename for units command.
Definition: acolm.h:156
o2scl_acol::acol_manager::command_del
void command_del(std::string ltype)
Remove the type-specific commands.
o2scl_acol::acol_manager::comm_list
virtual int comm_list(std::vector< std::string > &sv, bool itive_com)
List columns in table 'tp' named 'tname' assuming screen size 'ncol'.
o2scl_acol::acol_manager::comm_read
virtual int comm_read(std::vector< std::string > &sv, bool itive_com)
Read an object from a file.
o2scl_acol::acol_manager::prec
int prec
The output precision (default 6)
Definition: acolm.h:141
o2scl_acol_get_hist_wgts
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 o2scl::table object.
o2scl_acol::acol_manager::setup_parameters
virtual int setup_parameters()
Add the parameters for 'set' to the cli object.
o2scl_acol::acol_manager::comm_to_table
virtual int comm_to_table(std::vector< std::string > &sv, bool itive_com)
Convert object to a o2scl::table object.
o2scl_acol::acol_manager::comm_set_data
virtual int comm_set_data(std::vector< std::string > &sv, bool itive_com)
Set an individual data point at a specified row and column.
o2scl_acol_contours_line
double o2scl_acol_contours_line(void *vp, int i, int &n, double *&ptrx, double *&ptry)
For the current contour line vector object, set the pointers to the x- and y-values in the contour li...
o2scl_acol::acol_manager::comm_deriv_x
virtual int comm_deriv_x(std::vector< std::string > &sv, bool itive_com)
Create a slice which is the derivative wrt x of another.
o2scl_acol_alias_counts
void o2scl_acol_alias_counts(void *vp, int n_entries, int *sizes, char *str, int &n_new, int &s_new)
Using the commands stored in (n_entries,sizes,str), apply the aliases stored in the o2scl::cli object...
o2scl_acol::acol_manager::comm_deriv2
virtual int comm_deriv2(std::vector< std::string > &sv, bool itive_com)
Create a column which is the second derivative of another.
o2scl_acol::acol_manager::comm_get_row
virtual int comm_get_row(std::vector< std::string > &sv, bool itive_com)
Print out an entire row.
o2scl::slack_messenger
Object to send messages to Slack using curl.
Definition: slack_messenger.h:37
o2scl_acol::acol_manager::def_args
std::string def_args
Default arguments from environment.
Definition: acolm.h:159
o2scl_acol_get_hist_2d
int o2scl_acol_get_hist_2d(void *vp, int &nx, double *&xptr, int &ny, double *&yptr, double *&data)
For a two-dimensional histogram, return the bin edges, number of bins in both directions,...
o2scl_acol::acol_manager::comm_convert_unit
virtual int comm_convert_unit(std::vector< std::string > &sv, bool itive_com)
Convert units of a column.
o2scl_acol::acol_manager::comm_get_grid
virtual int comm_get_grid(std::vector< std::string > &sv, bool itive_com)
Get the grid for a o2scl::tensor_grid object.
o2scl_acol::acol_manager::cl
cli * cl
Dummy cli object for cli::cli_gets()
Definition: acolm.h:205
o2scl_acol::acol_manager::comm_diag
virtual int comm_diag(std::vector< std::string > &sv, bool itive_com)
For tensor object, get entries along the main diagonal.
o2scl_acol::acol_manager::comm_delete_rows
virtual int comm_delete_rows(std::vector< std::string > &sv, bool itive_com)
Delete rows specified by a function.
o2scl_acol_mult_vectors_to_conts
int o2scl_acol_mult_vectors_to_conts(void *vp, char *str1, char *str2)
Convert two multiple vector specifications to the a list of o2scl::contour_line objects.
o2scl_acol::acol_manager::get_verbose
int get_verbose()
Get the verbose parameter.
Definition: acolm.h:270
o2scl_acol_tensor_to_table3d
int o2scl_acol_tensor_to_table3d(void *vp, int i1, int i2)
Convert a rank 2 o2scl::tensor (with data types double, int, or size_t) or o2scl::tensor_grid object ...
o2scl_acol::acol_manager::env_var_name
std::string env_var_name
The environment variable to read from.
Definition: acolm.h:245
o2scl_acol::acol_manager::comm_integ
virtual int comm_integ(std::vector< std::string > &sv, bool itive_com)
Create a column which is the integral of another.
o2scl_acol::acol_manager::comm_output
virtual int comm_output(std::vector< std::string > &sv, bool itive_com)
Output to screen or file.
o2scl_acol::acol_manager::comm_y_name
virtual int comm_y_name(std::vector< std::string > &sv, bool itive_com)
Set the name of the y grid.
o2scl_acol::acol_manager::comm_value
virtual int comm_value(std::vector< std::string > &sv, bool itive_com)
Get or set the value.
o2scl_acol::acol_manager::rearrange_arg_process
void rearrange_arg_process(std::string str, std::vector< std::string > &sv)
Process arguments for rearrange.
o2scl_acol::acol_manager::get_input
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.
o2scl_acol::acol_manager::comm_create
virtual int comm_create(std::vector< std::string > &sv, bool itive_com)
Create a table from a column of equally spaced values.
o2scl_acol::acol_manager::comm_assign
virtual int comm_assign(std::vector< std::string > &sv, bool itive_com)
Assign a constant.
o2scl::cli::parameter_bool
String parameter for o2scl::cli.
Definition: cli.h:276
o2scl_acol::acol_manager::comm_insert
virtual int comm_insert(std::vector< std::string > &sv, bool itive_com)
Insert a column from an external table using interpolation.
o2scl_acol::acol_manager::comm_function
virtual int comm_function(std::vector< std::string > &sv, bool itive_com)
Create a column from a function.
o2scl_acol::acol_manager::setup_cli
virtual int setup_cli()
Create the cli object (with readline support if available)
o2scl_acol::acol_manager::command_add
void command_add(std::string new_type)
Add new commands for type new_type.
o2scl_acol_get_slice
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 slice named sl_name in a o2scl::table object.
o2scl_acol_apply_aliases
void o2scl_acol_apply_aliases(void *vp, int n_entries, int *sizes, char *str, int *sizes_new, char *str_new)
Using the commands stored in (n_entries,sizes,str), apply the aliases stored in the o2scl::cli object...
o2scl::cli::parameter_string
String parameter for o2scl::cli.
Definition: cli.h:253
o2scl_acol::acol_manager::verbose
int verbose
The verbosity level (default 1)
Definition: acolm.h:144
o2scl_acol::acol_manager::obj_name
std::string obj_name
The name of the table.
Definition: acolm.h:153
o2scl::table_units
Data table table class with units.
Definition: table_units.h:42
o2scl_acol::acol_manager::comm_nlines
virtual int comm_nlines(std::vector< std::string > &sv, bool itive_com)
Add 'nlines' as a constant to a o2scl::table object.
o2scl_acol::acol_manager::comm_deriv_y
virtual int comm_deriv_y(std::vector< std::string > &sv, bool itive_com)
Create a slice which is the derivative wrt y of another.
o2scl_acol_get_tensor_grid3
int o2scl_acol_get_tensor_grid3(void *vp, int &nx, int &ny, int &nz, const double *&xg, const double *&yg, const double *&zg, const double *&data)
Return the sizes, grid, and data pointer for a rank 3 o2scl::tensor_grid object.
o2scl_acol::acol_manager::comm_interp
virtual int comm_interp(std::vector< std::string > &sv, bool itive_com)
Create an html file.
o2scl_acol::acol_manager::comm_set_grid
virtual int comm_set_grid(std::vector< std::string > &sv, bool itive_com)
Set the grid for a o2scl::tensor_grid object.
o2scl_acol::acol_manager::comm_select_rows
virtual int comm_select_rows(std::vector< std::string > &sv, bool itive_com)
Select several rows for a new table.
o2scl_acol::acol_manager::names_out
bool names_out
True if we should output column names.
Definition: acolm.h:150
o2scl_acol::acol_manager::comm_get_conv
virtual int comm_get_conv(std::vector< std::string > &sv, bool itive_com)
Get a conversion factor.
o2scl_acol::acol_manager::comm_preview
virtual int comm_preview(std::vector< std::string > &sv, bool itive_com)
Preview the table.
o2scl_acol::acol_manager::comm_entry
virtual int comm_entry(std::vector< std::string > &sv, bool itive_com)
Get an entry.
o2scl_acol::acol_manager::smess
o2scl::slack_messenger smess
The object which sends Slack messages.
Definition: acolm.h:106
o2scl_acol::acol_manager::cset
o2scl::comm_option_mfptr< acol_manager > cset
The object for the set function.
Definition: acolm.h:122
o2scl_acol::acol_manager::pretty
bool pretty
True if we should make the output into neat columns (default true)
Definition: acolm.h:147
o2scl_acol_parse_arrays
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.
o2scl_acol::acol_manager::comm_contours
virtual int comm_contours(std::vector< std::string > &sv, bool itive_com)
Compute contour lines.
o2scl_acol::acol_manager::scientific
bool scientific
True for scientific output mode.
Definition: acolm.h:171
o2scl_acol::acol_manager::comm_x_name
virtual int comm_x_name(std::vector< std::string > &sv, bool itive_com)
Set the name of the x grid.
o2scl_acol::acol_manager::comm_get_unit
virtual int comm_get_unit(std::vector< std::string > &sv, bool itive_com)
Get units of a column.
o2scl::cli::parameter_int
Integer parameter for o2scl::cli.
Definition: cli.h:326
o2scl_acol::acol_manager::comm_set
virtual int comm_set(std::vector< std::string > &sv, bool itive_com)
Post-processing for setting a value.
o2scl_acol::acol_manager::comm_to_table3d_sum
virtual int comm_to_table3d_sum(std::vector< std::string > &sv, bool itive_com)
Convert object to a o2scl::table3d object by summing over tensor indices.
o2scl_acol::acol_manager::comm_generic
virtual int comm_generic(std::vector< std::string > &sv, bool itive_com)
Read a generic data file.
o2scl_acol::acol_manager::comm_slack
virtual int comm_slack(std::vector< std::string > &sv, bool itive_com)
Send a slack message.
o2scl::tensor_grid
Tensor class with arbitrary dimensions with a grid.
Definition: tensor_grid.h:46
o2scl_acol::acol_manager::cng
o2scl::convert_units< double > & cng
Convert units object (initialized by constructor to global object)
Definition: acolm.h:136
o2scl_acol::acol_manager::comm_download
virtual int comm_download(std::vector< std::string > &sv, bool itive_com)
Download a file from a specified URL.
o2scl_acol::acol_manager::comm_fit
virtual int comm_fit(std::vector< std::string > &sv, bool itive_com)
Fit two columns to a function.
o2scl::cli
Configurable command-line interface.
Definition: cli.h:230
o2scl_acol::acol_manager::comm_interactive
virtual int comm_interactive(std::vector< std::string > &sv, bool itive_com)
Toggle interactive mode.
o2scl_acol_get_type
void o2scl_acol_get_type(void *vp, int &n, char *&str)
Return the type of the current object.
o2scl::uniform_grid< double >
o2scl_acol::acol_manager::setup_help
virtual int setup_help()
Add the help text to the cli object.
o2scl_create_acol_manager
void * o2scl_create_acol_manager()
Create an o2scl_acol::acol_manager object.
o2scl_acol_get_column
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 o2scl::table object.
o2scl_acol::acol_manager::comm_sort
virtual int comm_sort(std::vector< std::string > &sv, bool itive_com)
Sort the table by a column.
o2scl_acol::acol_manager::comm_wstats
virtual int comm_wstats(std::vector< std::string > &sv, bool itive_com)
Get column stats with weights specified in a second column.
o2scl_acol::acol_manager::comm_delete_col
virtual int comm_delete_col(std::vector< std::string > &sv, bool itive_com)
Delete a column.
o2scl_acol::acol_manager::comm_type
virtual int comm_type(std::vector< std::string > &sv, bool itive_com)
Output the type of the current object to the screen.
o2scl_acol::acol_manager
The driver for 'acol' command-line utility.
Definition: acolm.h:99
o2scl::comm_option_mfptr
Member function pointer for o2scl::cli command function.
Definition: cli.h:100
o2scl_acol::acol_manager::comm_sum
virtual int comm_sum(std::vector< std::string > &sv, bool itive_com)
Sum two table/table3d objects.
o2scl_acol::acol_manager::comm_select
virtual int comm_select(std::vector< std::string > &sv, bool itive_com)
Select several columns for a new table.
o2scl::prob_dens_mdim_amr
Probability distribution from an adaptive mesh created using a matrix of points.
Definition: prob_dens_mdim_amr.h:51
o2scl_acol::acol_manager::comm_filelist
virtual int comm_filelist(std::vector< std::string > &sv, bool itive_com)
Read a file and list the O2scl objects.
o2scl_acol::acol_manager::comm_calc
virtual int comm_calc(std::vector< std::string > &sv, bool itive_com)
Compute a scalar value.
o2scl_acol::acol_manager::o2graph_mode
bool o2graph_mode
If true, then run in o2graph mode.
Definition: acolm.h:118
o2scl_acol::acol_manager::comm_find_row
virtual int comm_find_row(std::vector< std::string > &sv, bool itive_com)
Find a row from a function.
o2scl::format_float
Format a floating point number into a Latex or HTML string.
Definition: format_float.h:113
o2scl_acol::acol_manager::comm_insert_full
virtual int comm_insert_full(std::vector< std::string > &sv, bool itive_com)
Insert an external table using interpolation.
o2scl_acol::acol_manager::comm_cat
virtual int comm_cat(std::vector< std::string > &sv, bool itive_com)
Concatenate two table/table3d objects.
o2scl_acol::acol_manager::comm_stats
virtual int comm_stats(std::vector< std::string > &sv, bool itive_com)
Get column stats.
o2scl_acol::acol_manager::comm_to_hist_2d
virtual int comm_to_hist_2d(std::vector< std::string > &sv, bool itive_com)
Convert a o2scl::table object to a o2scl::hist object.
o2scl_acol_parse
void o2scl_acol_parse(void *vp, int n_entries, int *sizes, char *str)
Parse the set of commands in n_entries, sizes and str.
o2scl::convert_units< double >
o2scl_acol::acol_manager::comm_to_tensor_grid
virtual int comm_to_tensor_grid(std::vector< std::string > &sv, bool itive_com)
Convert object to a o2scl::tensor_grid object.
o2scl_acol::acol_manager::clear_obj
void clear_obj()
Clear memory associated with the current object and set type to "".
o2scl_acol::acol_manager::ffl
format_float ffl
The number formatter for html output.
Definition: acolm.h:130
o2scl_acol_contours_n
int o2scl_acol_contours_n(void *vp)
Return the number of contour lines associated with the current contour line vector object.
o2scl_acol::acol_manager::setup_options
virtual int setup_options()
Add the options to the cli object.
o2scl_acol::acol_manager::comm_commands
virtual int comm_commands(std::vector< std::string > &sv, bool itive_com)
List commands, with an optional type argument.
o2scl_acol::acol_manager::comm_show_units
virtual int comm_show_units(std::vector< std::string > &sv, bool itive_com)
Set units of a column.
o2scl_acol::acol_manager::interp_type
int interp_type
The interpolation type.
Definition: acolm.h:165
o2scl_acol::acol_manager::comm_help
virtual int comm_help(std::vector< std::string > &sv, bool itive_com)
Output the help text.
o2scl_acol::acol_manager::comm_select_rows2
virtual int comm_select_rows2(std::vector< std::string > &sv, bool itive_com)
A faster form of select rows which requires one to specify the columns needed for the selection crite...
o2scl_acol::acol_manager::user_ncols
int user_ncols
The number of columns requested by the user.
Definition: acolm.h:162
o2scl_acol_get_hist_reps
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 o2scl::table object.
o2scl_acol_pdma_get_base
int o2scl_acol_pdma_get_base(void *vp, int &ndim, int &n, double *&low, double *&high)
Return the dimensionality, mesh size, and lower and upper limits for a o2scl::prob_dens_mdim_amr obje...
o2scl_acol::acol_manager::comm_rename
virtual int comm_rename(std::vector< std::string > &sv, bool itive_com)
Rename a column.
o2scl_acol::acol_manager::comm_to_hist
virtual int comm_to_hist(std::vector< std::string > &sv, bool itive_com)
Convert a o2scl::table object to a o2scl::hist object.
o2scl_acol_pdma_get_cube
int o2scl_acol_pdma_get_cube(void *vp, int ix, double *&low, double *&high, double &frac_vol, double &weight)
Return the lower and upper limits, fractional volume, and weight for the o2scl::prob_dens_mdim_amr::h...
o2scl_free_acol_manager
void o2scl_free_acol_manager(void *vp)
Free memory associated with a o2scl_acol::acol_manager object.
o2scl_acol::acol_manager::get_input_one
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.
o2scl_acol::acol_manager::compress
int compress
If set, try to compress.
Definition: acolm.h:168
o2scl_acol
A namespace for objects associated with the command-line utility 'acol'.
Definition: acolm.h:58
o2scl_acol::acol_manager::type_list
std::vector< std::string > type_list
A list of all types.
Definition: acolm.h:114
o2scl_acol::acol_manager::ncols
int ncols
Number of columns in screen.
Definition: acolm.h:190
o2scl_acol::acol_manager::comm_version
virtual int comm_version(std::vector< std::string > &sv, bool itive_com)
Print version.
o2scl_acol::acol_manager::comm_rearrange
virtual int comm_rearrange(std::vector< std::string > &sv, bool itive_com)
Rearrange a tensor.
o2scl_acol::acol_manager::comm_to_table3d
virtual int comm_to_table3d(std::vector< std::string > &sv, bool itive_com)
Convert object to a o2scl::table3d object.
o2scl_acol::acol_manager::comm_entry_grid
virtual int comm_entry_grid(std::vector< std::string > &sv, bool itive_com)
Get an entry by grid point.
o2scl_acol::acol_manager::comm_clear
virtual int comm_clear(std::vector< std::string > &sv, bool itive_com)
Clear the current object.
o2scl_acol::acol_manager::post_interactive
bool post_interactive
True if we should run interactive mode after parsing the command-line.
Definition: acolm.h:242
o2scl_acol::acol_manager::comm_set_unit
virtual int comm_set_unit(std::vector< std::string > &sv, bool itive_com)
Set units of a column.
o2scl::table3d
A data structure containing one or more slices of two-dimensional data points defined on a grid.
Definition: table3d.h:78
o2scl_acol::acol_manager::comm_min
virtual int comm_min(std::vector< std::string > &sv, bool itive_com)
Compute the minimum value of a colum.
o2scl_acol_get_double_arr
int o2scl_acol_get_double_arr(void *vp, int &n, double *&ptr)
Return the size and a pointer to a double array corresponding to a int[], size_t[],...
o2scl::hist_2d
A two-dimensional histogram class.
Definition: hist_2d.h:103
o2scl_acol::acol_manager::set_swidth
int set_swidth(int ncol)
Set screen width.
Definition: acolm.h:542
o2scl_acol::acol_manager::comm_internal
virtual int comm_internal(std::vector< std::string > &sv, bool itive_com)
Output to a file in internal format.

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).