From 135e07e6ea0edf8dda14c41f08353cb3f5a52c6c Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Wed, 17 Dec 2014 18:14:29 +0100 Subject: [PATCH] Rename zentry->slice. Update some doxygen comments. --- pub/lib/CMakeLists.txt | 6 +- pub/lib/Doxyfile | 133 ++++++++++++++++++++---------- pub/lib/axis.cpp | 56 ++++++------- pub/lib/axis.hpp | 21 ++--- pub/lib/coord.cpp | 2 +- pub/lib/coord.hpp | 28 +++++-- pub/lib/curve.cpp | 3 +- pub/lib/dualplot.cpp | 4 +- pub/lib/edif.cpp | 2 +- pub/lib/expr.cpp | 70 +++++++++------- pub/lib/expr.hpp | 54 ++++++------ pub/lib/file_in.cpp | 2 +- pub/lib/file_out.cpp | 2 +- pub/lib/fit.cpp | 2 +- pub/lib/import.cpp | 2 +- pub/lib/manip.cpp | 18 ++-- pub/lib/node.cpp | 8 +- pub/lib/olf.cpp | 16 ++-- pub/lib/olf.hpp | 8 +- pub/lib/opr.cpp | 4 +- pub/lib/plot.cpp | 6 +- pub/lib/ptr.hpp | 2 +- pub/lib/rssm.cpp | 2 +- pub/lib/{zentry.cpp => slice.cpp} | 14 ++-- pub/lib/{zentry.hpp => slice.hpp} | 20 ++--- pub/lib/special.cpp | 2 +- 26 files changed, 284 insertions(+), 203 deletions(-) rename pub/lib/{zentry.cpp => slice.cpp} (95%) rename pub/lib/{zentry.hpp => slice.hpp} (75%) diff --git a/pub/lib/CMakeLists.txt b/pub/lib/CMakeLists.txt index ebc355f6..1973aed2 100644 --- a/pub/lib/CMakeLists.txt +++ b/pub/lib/CMakeLists.txt @@ -39,10 +39,10 @@ opr.cpp plot.cpp reg.cpp rssm.cpp +slice.cpp special.cpp toplevel.cpp var.cpp -zentry.cpp ) SET(inc_files @@ -73,11 +73,11 @@ plot.hpp ptr.hpp reg.hpp rssm.hpp +slice.hpp special.hpp toplevel.hpp var.hpp xax_lex.hpp -zentry.hpp ) ADD_LIBRARY(libfrida SHARED @@ -99,4 +99,4 @@ ${YAMLCPP_LIBRARY} ${LIBLMFIT_LIBS} ) -INSTALL(TARGETS libfrida DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) \ No newline at end of file +INSTALL(TARGETS libfrida DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) diff --git a/pub/lib/Doxyfile b/pub/lib/Doxyfile index e71e986b..91ace4c7 100644 --- a/pub/lib/Doxyfile +++ b/pub/lib/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.6 +# Doxyfile 1.8.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -70,6 +70,14 @@ OUTPUT_DIRECTORY = ../../ CREATE_SUBDIRS = NO +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. @@ -261,9 +269,12 @@ OPTIMIZE_OUTPUT_VHDL = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note For files without extension you can use no_extension as a placeholder. # @@ -669,8 +680,7 @@ LAYOUT_FILE = # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. +# search path. See also \cite for info how to create references. CITE_BIB_FILES = @@ -970,6 +980,25 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES +# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# compiled with the --with-libclang option. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1062,13 +1091,15 @@ HTML_FOOTER = HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra stylesheet files is of importance (e.g. the last +# stylesheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1233,7 +1264,8 @@ GENERATE_CHI = NO CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1473,11 +1505,11 @@ SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There -# are two flavours of web server based searching depending on the -# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for -# searching and an index file used by the script. When EXTERNAL_SEARCH is -# enabled the indexing and searching needs to be provided by external tools. See -# the section "External Indexing and Searching" for details. +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1605,17 +1637,19 @@ EXTRA_PACKAGES = # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will -# replace them by respectively the title of the page, the current date and time, -# only the current date, the version number of doxygen, the project name (see -# PROJECT_NAME), or the project number (see PROJECT_NUMBER). +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, +# for the replacement values of the other commands the user is refered to +# HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. # # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1639,7 +1673,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate # the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. @@ -1765,6 +1799,13 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without @@ -1792,18 +1833,6 @@ GENERATE_XML = NO XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify a XML DTD, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_DTD = - # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size @@ -1831,6 +1860,15 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook +# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -1950,9 +1988,9 @@ PREDEFINED = EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all refrences to function-like macros that are alone on a line, have an -# all uppercase name, and do not end with a semicolon. Such function macros are -# typically used for boiler-plate code, and will confuse the parser if not +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -1972,7 +2010,7 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have an unique name (where the name does NOT include +# Note: Each tag file must have a unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. @@ -2050,7 +2088,7 @@ HIDE_UNDOC_RELATIONS = YES # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO -# The default value is: NO. +# The default value is: YES. HAVE_DOT = YES @@ -2064,7 +2102,7 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# When you want a differently looking font n the dot files that doxygen +# When you want a differently looking font in the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by @@ -2072,7 +2110,7 @@ DOT_NUM_THREADS = 0 # The default value is: Helvetica. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = +DOT_FONTNAME = # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of # dot graphs. @@ -2202,7 +2240,9 @@ DIRECTORY_GRAPH = YES # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, jpg, gif and svg. +# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, +# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, +# gif:cairo:gd, gif:gd, gif:gd:gd and svg. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2245,6 +2285,15 @@ MSCFILE_DIRS = DIAFILE_DIRS = +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. +# This tag requires that the tag HAVE_DOT is set to YES. + +PLANTUML_JAR_PATH = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized diff --git a/pub/lib/axis.cpp b/pub/lib/axis.cpp index 81f9597b..0ed9a8bb 100644 --- a/pub/lib/axis.cpp +++ b/pub/lib/axis.cpp @@ -5,7 +5,7 @@ //***************************************************************************// //! \file axis.cpp -//! \brief CAxis: one axis of a coordinate frame +//! \brief CAxis: One axis of a coordinate frame. #include <cmath> #include <iostream> @@ -18,9 +18,7 @@ #include "axis.hpp" - -//! Set invalid limits. -// This means: next plot call will automatically recalculate them. +//! Sets infinite limits so that next plot call will recompute them. void CAxis::setAuto() { @@ -29,22 +27,20 @@ void CAxis::setAuto() } -//! Check and set limits. +//! Sets limits to arguments. -void CAxis::setLimits( string axnam, double _inf, double _sup ) +void CAxis::setLimits( double _inf, double _sup ) { if( _inf>=_sup ) - throw "Cannot set " + axnam + " plot range " + - S(_inf) + " .. " + S(_sup); + throw "Invalid limits "+S(_inf)+" .. "+S(_sup)+" for axis "+name; if( logflag && _inf<=0 ) - throw "Cannot set log " + axnam + " plot range " + - S(_inf) + " .. " + S(_sup); + throw "Invalid nonpositive limit "+S(_inf)+" for axis " + name; inf = _inf; sup = _sup; } -//! Set lin or log, reset ranges to auto. +//! Sets log flag to argument, resets limits to infinite defaults. void CAxis::setLog( bool _log ) { @@ -53,7 +49,7 @@ void CAxis::setLog( bool _log ) } -//! Parse string to set bounds. +//! Asks for new limits. void CAxis::ask_and_set( const string& quest ) { @@ -117,20 +113,20 @@ void CAxis::ask_and_set( const string& quest ) } -//! Replace limits by rounded values. +//! Sets limits to rounded values of arguments. -void CAxis::setRoundedLimits( string axnam, double _inf, double _sup ) +void CAxis::setRoundedLimits( double _inf, double _sup ) { static double relmargin = 0.05; static double digits = 2; if ( _inf==-INFINITY || _sup==+INFINITY ) - throw "BUG: rounding " + axnam + " limits: unexpected inf limits"; + throw "BUG: rounding " + name + " limits: unexpected inf limits"; if( _inf>_sup ) - throw "BUG: rounding " + axnam + " limits: invalid plot range " + + throw "BUG: rounding " + name + " limits: invalid plot range " + S(_inf) + " > " + S(_sup); if( logflag && _inf<=0 ) - throw "BUG: rounding " + axnam + " limits: nonpositive log inf " + + throw "BUG: rounding " + name + " limits: nonpositive log inf " + S(_inf); inf = _inf; @@ -175,11 +171,11 @@ void CAxis::setRoundedLimits( string axnam, double _inf, double _sup ) mydigits += 0.5; } while ( !((inf2<inf) && (sup<sup2)) ); } - setLimits( axnam, inf2, sup2 ); + setLimits( inf2, sup2 ); } -//! Have finite limits been set ? +//! Are both limits finite ? bool CAxis::finite() const { @@ -187,7 +183,7 @@ bool CAxis::finite() const } -//! Is value val contained in this range? +//! Is argument val contained in present plot range? bool CAxis::contains(double val) const { @@ -195,7 +191,7 @@ bool CAxis::contains(double val) const } -//! Do values v1 and v2 agree within tolerance tol, relative to axis span? +//! Do arguments v1 and v2 agree within tolerance tol, relative to plot range? bool CAxis::close_enough( double v1, double v2, double tol ) const { @@ -211,7 +207,7 @@ bool CAxis::close_enough( double v1, double v2, double tol ) const } -//! Map application scale (inf..sup) to linear plot scale (0..1). +//! Returns plot coordinate (between 0 and 1) of argument. double CAxis::value2plotcoord( double v ) const { @@ -227,7 +223,7 @@ double CAxis::value2plotcoord( double v ) const } -//! Error bar in plot coords. +//! Returns half length of error bar (in plot coordinates 0..1). double CAxis::value2ploterror( double v, double dv ) const { @@ -247,7 +243,7 @@ double CAxis::value2ploterror( double v, double dv ) const } -//! Map linear plot scale (0..n-1) to application scale (inf..sup). +//! Sets vector x such that its plot coordinates form an equidistent grid. void CAxis::set_xgrid( vector<double>& x, int n ) const { @@ -271,7 +267,7 @@ void CAxis::set_xgrid( vector<double>& x, int n ) const } -//! String representation. +//! Returns string representation of plot range. string CAxis::str() const { @@ -282,7 +278,7 @@ string CAxis::str() const } -//! Describe range, for use in table of plot frames. +//! Returns summary (log flag, plot limits) for use in table of plot frames. string CAxis::info() const { @@ -294,7 +290,7 @@ string CAxis::info() const } -//! Convert value -> plot_coordinate (my PostScript units 0..10). +//! Returns argument converted to my PostScript units (0..10). double CAxis::pc( double v ) const { @@ -302,7 +298,7 @@ double CAxis::pc( double v ) const } -//! Error bar in my PostScript units 0..10. +//! Returns half length of error bar (in my Postscript coordinates 0..10). double CAxis::pcerr( double v, double dv ) const { @@ -310,9 +306,7 @@ double CAxis::pcerr( double v, double dv ) const } -//! Calculate appropriate division of plot axis. - -// All three arguments are for output only. +//! Sets Tacks, *ntpt, *ticklim to a nice division of the plot range. void CAxis::calc_ticks( vector<double>& Tacks, int *ntpt, double *ticklim) const diff --git a/pub/lib/axis.hpp b/pub/lib/axis.hpp index ec0bdbc2..1482711a 100644 --- a/pub/lib/axis.hpp +++ b/pub/lib/axis.hpp @@ -5,24 +5,26 @@ //**************************************************************************// //! \file axis.hpp -//! \brief CAxis: one axis of a coordinate frame +//! \brief CAxis: One axis of a coordinate frame. -//! One axis of a coordinate system, for use in plotting. +//! One axis of a coordinate frame, for use in plotting. class CAxis { public: - double inf, sup; // defining plot range [inf..sup] - bool logflag; // use logarithmic axis ? - bool force; // force points into range [inf..sup] ? + string name; //!< usually "x" or "y" + double inf; //!< infimum: lower plot limit + double sup; //!< supremum: upper plot limit + bool logflag; //!< is logarithmic ? + bool force; //!< force points into range ? - CAxis( bool _log ) : - logflag(_log), force(false) { setAuto(); } + CAxis( const string _name, bool _log ) : + name(_name), logflag(_log), force(false) { setAuto(); } void setLog( bool _log ); void setAuto(); - void setLimits( string axnam, double _inf, double _sup ); - void setRoundedLimits( string axnam, double _inf, double _sup ); + void setLimits( double _inf, double _sup ); + void setRoundedLimits( double _inf, double _sup ); void ask_and_set( const string& quest ); string str() const; @@ -35,7 +37,6 @@ class CAxis { void set_xgrid( vector<double>& x, int n ) const; double pc( double v ) const; double pcerr( double v, double dv ) const; - double inf_pos() const; void calc_ticks( vector<double>& Tacks, int *ntpt, double *ticklim ) const; }; diff --git a/pub/lib/coord.cpp b/pub/lib/coord.cpp index 0415bee0..e13a1e5b 100644 --- a/pub/lib/coord.cpp +++ b/pub/lib/coord.cpp @@ -5,7 +5,7 @@ //***************************************************************************// //! \file coord.cpp -//! \brief coordinates CCoord, numeric parameters CParam +//! \brief Coordinates CCoord, numeric parameters CParam. #include <cstring> #include <iostream> diff --git a/pub/lib/coord.hpp b/pub/lib/coord.hpp index 72531d9c..e0854b3b 100644 --- a/pub/lib/coord.hpp +++ b/pub/lib/coord.hpp @@ -5,17 +5,22 @@ //***************************************************************************// //! \file coord.hpp -//! \brief coordinates CCoord, numeric parameters CParam +//! \brief Coordinates CCoord, numeric parameters CParam. + //! A coordinate, consisting of a name and a unit. class CCoord { public: - string name, unit; + string name; + string unit; + //! Creates empty instance. CCoord() {}; + //! Creates instance with given name and unit. CCoord( const string _name, const string _unit ) : name(_name), unit(_unit) {} + //! Creates instance. Given string will be parsed into name and unit. CCoord( const string in ); void ask_and_set( const string& quest ); @@ -25,26 +30,33 @@ class CCoord { string str_compact( int maxlen=0 ) const; string str_ps() const; string to_a01() const; - bool defined() { return name!=""; } string load_a01(string); + //! Has this instance nonvoid contents? + bool defined() { return name!=""; } + //! Are two instances equal? bool operator== (const CCoord& Co2) const { return (name==Co2.name) && (unit==Co2.unit); } + //! Returns negation of operator==. bool operator!= (const CCoord& Co2) const { return !(*this==Co2); } }; + //! A file-wide parameter, consisting of a coordinate and a value. class CParam { public: CCoord Co; double val; - - CParam() {} - CParam( CCoord _Co, double _val=0 ) : Co(_Co), val(_val) {} - CParam( string _name, string _unit="", double _val=0 ) : - Co( CCoord(_name, _unit) ), val(_val) {} + double dval; //!< Error of val. Still unused. + + //! Creates instance with fully given contents. + CParam( CCoord _Co, double _val=0, double _dval=0 ) + : Co(_Co), val(_val), dval(_dval) {} + //! Creates instance with fully given, partly unparsed contents. + CParam( string _name, string _unit="", double _val=0, double _dval=0 ) : + Co( CCoord(_name, _unit) ), val(_val), dval(_dval) {} }; diff --git a/pub/lib/curve.cpp b/pub/lib/curve.cpp index 2758c5ac..cdb9ade1 100644 --- a/pub/lib/curve.cpp +++ b/pub/lib/curve.cpp @@ -8,6 +8,7 @@ //! \brief NCurveFile: create, inspect, modify curve files. #include <iostream> +#include <cmath> #include <boost/format.hpp> #include <readplus/ask.hpp> @@ -16,7 +17,7 @@ #include "list.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "curve.hpp" #include "expr.hpp" #include "opr.hpp" diff --git a/pub/lib/dualplot.cpp b/pub/lib/dualplot.cpp index 61feafa7..1236a9e0 100644 --- a/pub/lib/dualplot.cpp +++ b/pub/lib/dualplot.cpp @@ -7,6 +7,8 @@ //! \file dualplot.cpp //! \brief collection NPlot of plot frames CPlot +#include <cstdio> +#include <cmath> #include <cstring> #include <fcntl.h> #include <errno.h> @@ -27,7 +29,7 @@ static const int mLin = 80; // max num of chars in PostScript line //! Constructor for plot window: setup for gnuplot and postscript. CPlot::CPlot( int _iPlot, bool _logx, bool _logy ) : - iPlot( _iPlot ), X( _logx ), Y( _logy ), + iPlot( _iPlot ), X( "x", _logx ), Y( "y", _logy ), maxpoints(20000), with_errors(true), equipoints(49), refine(true) { // == Initialization for Gnuplot == diff --git a/pub/lib/edif.cpp b/pub/lib/edif.cpp index a14176a6..2c03ca2a 100644 --- a/pub/lib/edif.cpp +++ b/pub/lib/edif.cpp @@ -18,7 +18,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "var.hpp" #include "edif.hpp" diff --git a/pub/lib/expr.cpp b/pub/lib/expr.cpp index 2e139a55..ef50565b 100644 --- a/pub/lib/expr.cpp +++ b/pub/lib/expr.cpp @@ -15,14 +15,16 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "expr.hpp" + //***************************************************************************// //* CContext *// //***************************************************************************// -//! Constructor. Set k,j,i, checking validity. Set other par's to default. + +//! Constructor. Sets k,j,i to arguments. Sets other members to defaults. CContext::CContext( int _k, int _j, int _i ) : k(_k), j(_j), i(_i), // set from arguments @@ -55,7 +57,8 @@ CContext::CContext( int _k, int _j, int _i ) S(i)+">=ni="+S(ni); } -//! Request a vector of doubles, and set an input vector of points 't'. + +//! Sets request of a vector of doubles, corresponding to input points 't'. void CContext::request_VT( const vector<double> *_vt ) { @@ -66,7 +69,7 @@ void CContext::request_VT( const vector<double> *_vt ) vt_step = 0; } -//! Request a vector of indices. +//! Sets request of a vector of _nv indices. void CContext::request_VI( int _nv ) { @@ -74,7 +77,7 @@ void CContext::request_VI( int _nv ) nv = _nv; } -//! Introspection, for debugging. +//! Returns textual representation of the class instance. string CContext::context_info() const { @@ -102,7 +105,8 @@ string CContext::context_info() const //* CResult *// //***************************************************************************// -//! Introspection, for debugging. + +//! Returns textual representation of the class instance, for debugging. string CResult::result_info() const { @@ -119,23 +123,7 @@ string CResult::result_info() const //***************************************************************************// -string CRef::ref_info() const -{ - string out = "ref: "; - if ( tk ) - out += "tk[" + tk->tree_info() + "], "; - else - out += "tk=0, "; - if ( tj ) - out += "tj[" + tj->tree_info() + "], "; - else - out += "tj=0, "; - if ( ti ) - out += "ti[" + ti->tree_info() + "]"; - else - out += "ti=0"; - return out; -} +//! Returns file index k in given context. int CRef::get_k( const CContext& ctx ) const { @@ -155,6 +143,9 @@ int CRef::get_k( const CContext& ctx ) const return k; } + +//! Returns spectrum index j in given context. + int CRef::get_j( const CContext& ctx, int nj ) const { try { @@ -180,12 +171,32 @@ int CRef::get_j( const CContext& ctx, int nj ) const } } +//! Returns string representation of the class instance. + +string CRef::ref_info() const +{ + string out = "ref: "; + if ( tk ) + out += "tk[" + tk->tree_info() + "], "; + else + out += "tk=0, "; + if ( tj ) + out += "tj[" + tj->tree_info() + "], "; + else + out += "tj=0, "; + if ( ti ) + out += "ti[" + ti->tree_info() + "]"; + else + out += "ti=0"; + return out; +} //***************************************************************************// //* CNode: status requests *// //***************************************************************************// -//! How many curve parameters are contained in the tree? + +//! Returns number of curve parameters used in node and below. int CNode::npar() const { @@ -194,7 +205,8 @@ int CNode::npar() const return np; } -//! Does the result depend on k? + +//! Does the node depend on k? bool CNode::k_dependent() const { @@ -208,7 +220,8 @@ bool CNode::k_dependent() const //* CNode: low-level tree evaluation *// //***************************************************************************// -//! Evaluate tree and convert result to integer, for use as index. + +//! Evaluates the node, and sets *ret to the result, rounded for use as index. void CNode::tree_uival( int *ret, const CContext& ctx ) const { @@ -226,7 +239,8 @@ void CNode::tree_uival( int *ret, const CContext& ctx ) const //* CNode: public interface to tree evaluation *// //***************************************************************************// -//! Evaluate tree. Public API. + +//! Evaluates the node, and sets *ret and *dret according to the result. void CNode::tree_point_val( double *ret, double *dret, int k, int j, int i ) const @@ -242,7 +256,7 @@ void CNode::tree_point_val( *dret = val.dr; } -//! Evaluate tree. Public API. +//! Evaluates the node, and sets vectors *ret and *dret according to the result. void CNode::tree_vec_val( vector<double> *ret, vector<double> *dret, int k, int j ) const diff --git a/pub/lib/expr.hpp b/pub/lib/expr.hpp index cc2eda35..a1d0a8d7 100644 --- a/pub/lib/expr.hpp +++ b/pub/lib/expr.hpp @@ -5,7 +5,7 @@ //***************************************************************************// //! \file expr.hpp -//! \brief Parse expressions using CRef, CContext, CResult, virtual CNode +//! \brief Expressions are parsed into CRef, CContext, CResult, virtual CNode #include <boost/shared_ptr.hpp> @@ -15,16 +15,18 @@ typedef boost::shared_ptr<class CRef> PRef; typedef boost::shared_ptr<class CRegRef> PRgr; -//! A Context specifies how a tree shall be evaluated. +//! The context in which a CNode shall be evaluated. class CContext { public: - int k, j, i; // file,scan,point we are refering to - const vector<double> *vt; // a vector we may refer to - double vt_step; // step of equidistant vt, otherwise 0 - enum TDim { _1, _VI, _VT } dim; // kind of requested output - bool want_error; // errors requested? - int nv; // number of requested vector elements + int k; //!< Index of file we are refering to + int j; //!< Index of scan we are refering to + int i; //!< Index of point we are refering to + const vector<double> *vt; //!< A vector we may refer to + double vt_step; //!< Step of equidistant vt, otherwise 0 + enum TDim { _1, _VI, _VT } dim;//!< Kind of requested output + bool want_error; //!< Are errors requested? + int nv; //!< Number of requested vector elements CContext( int _k=-1, int _j=-1, int _i=-1 ); @@ -35,29 +37,36 @@ class CContext { }; -//! Return value for tree evaluation. +//! The return-value container for tree evaluation. class CResult { public: - bool vectorial; - double r; - double dr; - vector<double> v; - vector<double> dv; + bool vectorial; //!< Is it a vector? + double r; //!< Scalar value of result. + double dr; //!< Error of scalar result. + vector<double> v; //!< Resulting vector. + vector<double> dv; //!< Errors of vectorial result. + //! Creates meaningless defaut instance. CResult() : vectorial(false), dr(0) {} + //! Sets scalar result without error. void set_r( double _r ) { vectorial = false; r = _r; } + //! Prepares for vectorial result. void preset_v( int n, bool has_dv ) { vectorial = true; v.resize(n); dv.resize( has_dv ? n : 0 ); } + //! Sets result vector, copying from argument. void set_v( const vector<double>& _v ) { vectorial = true; v = _v; } + //! Returns result for given i. double to_r( int i ) const { return vectorial ? v[i] : r; } + //! Returns error of result for given i. double to_dr( int i ) const { return vectorial ? ( dv.size() ? dv[i] : 0 ) : dr; } + //! Is there a nonzero error? bool has_err() const { return vectorial ? dv.size() : dr; } @@ -65,13 +74,13 @@ class CResult { }; -//! References to data points, indices, ...; used as endpoints of CNode's. +//! A tuple of nodes that yield indices k,j,i. class CRef { public: - PNode tk; - PNode tj; - PNode ti; + PNode tk; //!< A node yielding the workspace index k. + PNode tj; //!< A node yielding the spectrum index j. + PNode ti; //!< A node yielding the point index i. CRef( PNode _tk=PNode(), PNode _tj=PNode(), PNode _ti=PNode() ) : tk(_tk), tj(_tj), ti(_ti) {} @@ -89,12 +98,12 @@ class CNode { virtual ~CNode() {} virtual void npar_exec( int *np ) const =0; //! Recursive: set *kd=true if a subnode is K dependent - virtual void kdep_exec( bool *kd ) const {;} // default: do nothing + virtual void kdep_exec( bool *kd ) const {;} //!< default: do nothing int npar() const; bool k_dependent() const; - virtual bool has_dummy() const =0; // does node depend on t ? - virtual bool has_conv() const =0; // does node depend on resolution ? + virtual bool has_dummy() const =0; //!< does node depend on t ? + virtual bool has_conv() const =0; //!< does node depend on resolution ? //! Evaluate tree. Private. User calls pass through API implemented below. virtual void tree_val( CResult& ret, const CContext& ctx ) const =0; @@ -109,6 +118,5 @@ class CNode { int k=-1, int j=-1 ) const; virtual void set_coord( CCoord& ret, int k=-1 ) const =0; - virtual string tree_info() const =0; // introspection, for debugging + virtual string tree_info() const =0; //!< introspection, for debugging }; - diff --git a/pub/lib/file_in.cpp b/pub/lib/file_in.cpp index 878ad821..dd93710a 100644 --- a/pub/lib/file_in.cpp +++ b/pub/lib/file_in.cpp @@ -26,7 +26,7 @@ #include "olf.hpp" #include "mem.hpp" #include "var.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "expr.hpp" #include "file_in.hpp" diff --git a/pub/lib/file_out.cpp b/pub/lib/file_out.cpp index b7b94e45..38fa0361 100644 --- a/pub/lib/file_out.cpp +++ b/pub/lib/file_out.cpp @@ -15,7 +15,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "file_out.hpp" namespace NFileOut { diff --git a/pub/lib/fit.cpp b/pub/lib/fit.cpp index f1d4e498..1ab32e11 100644 --- a/pub/lib/fit.cpp +++ b/pub/lib/fit.cpp @@ -17,7 +17,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "fit.hpp" #include "expr.hpp" diff --git a/pub/lib/import.cpp b/pub/lib/import.cpp index 6f48ba47..b9f53bb9 100644 --- a/pub/lib/import.cpp +++ b/pub/lib/import.cpp @@ -18,7 +18,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "import.hpp" //****************************************************************************// diff --git a/pub/lib/manip.cpp b/pub/lib/manip.cpp index e5b2319d..e01b931d 100644 --- a/pub/lib/manip.cpp +++ b/pub/lib/manip.cpp @@ -18,7 +18,7 @@ #include "olf.hpp" #include "mem.hpp" #include "jsel.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "expr.hpp" // for sort, symmetrize #include "manip.hpp" #include "xax_lex.hpp" @@ -442,7 +442,7 @@ void NManip::ScaSelect( bool sel_del ) + " " + JSel.str()); for ( int j=0; j<fin->nJ(); ++j ) { if ( sel_del ^ JSel.contains( j ) ) { - fout->V.push_back( fin->new_zentry( j ) ); + fout->V.push_back( fin->new_slice( j ) ); } } ScaRemoveConstantZ( fout ); @@ -596,7 +596,7 @@ void NManip::ScaSpawn() for ( int jj=0; jj<njj; ++jj ) { for ( int j=0; j<fin->nJ(); j++ ) { - PZentry eout = fin->new_zentry( j ); + PSlice eout = fin->new_slice( j ); eout->z.insert( eout->z.begin(), jj ); fout->V.push_back( eout ); } @@ -704,7 +704,7 @@ void NManip::ScaSortByExpr() vector<size_t> P = triv::sorted_indices( v ); for (int j=0; j<nj; j++) - fout->V.push_back( fin->new_zentry( P[j] ) ); + fout->V.push_back( fin->new_slice( P[j] ) ); NOlm::mem_store( fout, fiter.k() ); } @@ -719,7 +719,7 @@ void NManip::ScaSortByZ() while ( POlo fin = fiter() ) { POlo fout( fin->new_olo() ); for (int j=0; j<fin->nJ(); j++) - fout->V.push_back( fin->new_zentry( j ) ); + fout->V.push_back( fin->new_slice( j ) ); sort( fout->V.begin(), fout->V.end(), CompareZ ); NOlm::mem_store( fout, fiter.k() ); } @@ -784,7 +784,7 @@ void NManip::ZExchange() POlo fout( fin->new_olo() ); fout->lDoc.push_back( com ); for (int j=0; j<fin->nJ(); j++) - fout->V.push_back( fin->new_zentry( j ) ); + fout->V.push_back( fin->new_slice( j ) ); int nz = fout->ZCo.size(); if ( nz<nzmin ) { @@ -845,7 +845,7 @@ void NManip::ZDelete() if ( !fin->nJ() ) throw "BUG: no spectra"; for ( int j=0; j<fin->nJ(); j++ ) - fout->V.push_back( fin->new_zentry( j ) ); + fout->V.push_back( fin->new_slice( j ) ); CList lis( sel, 0, fin->ZCo.size()-1 ); lis.sortReverse(); @@ -889,7 +889,7 @@ void NManip::ScaBreak() double zval = ftmp->z(j,0); fout->RPar.push_back( CParam( zco, zval ) ); do { - PZentry eout( fin->new_zentry(j) ); + PSlice eout( fin->new_slice(j) ); eout->z.erase( eout->z.begin() ); fout->V.push_back( eout ); } while ( ++j<fin->nJ() && fin->z(j,0)==zval ); @@ -1041,7 +1041,7 @@ void NManip::FilMerge( const string& opts ) fiter.reset(); while ( fin = fiter() ) { for ( int j=0; j<fin->nJ(); j++ ) { - PZentry eout( fin->new_zentry(j) ); + PSlice eout( fin->new_slice(j) ); auto zinsert=eout->z.begin(); for ( int i=0; i<nR; ++i ) if ( RParDiff[i] ) diff --git a/pub/lib/node.cpp b/pub/lib/node.cpp index cc3015bd..f394f708 100644 --- a/pub/lib/node.cpp +++ b/pub/lib/node.cpp @@ -13,7 +13,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "reg.hpp" #include "func.hpp" #include "geni.hpp" @@ -32,7 +32,7 @@ extern bool allow_slow_conv; // set in curve.cpp //* CNodeFun: function/operator node //****************************************************************************** -CNodeFun::CNodeFun( const CFunc* _fun, PNode _a0 ) +CNodeFun::CNodeFun( const class CFunc* _fun, PNode _a0 ) : fun(_fun), narg(1) { if ( fun->narg!=1 ) @@ -40,7 +40,7 @@ CNodeFun::CNodeFun( const CFunc* _fun, PNode _a0 ) S(fun->narg) + " arguments, not 1"; arg[0] = _a0; } -CNodeFun::CNodeFun( const CFunc* _fun, PNode _a0, PNode _a1 ) +CNodeFun::CNodeFun( const class CFunc* _fun, PNode _a0, PNode _a1 ) : fun(_fun), narg(2) { if ( fun->narg!=2 ) @@ -49,7 +49,7 @@ CNodeFun::CNodeFun( const CFunc* _fun, PNode _a0, PNode _a1 ) arg[0] = _a0; arg[1] = _a1; } -CNodeFun::CNodeFun( const CFunc* _fun, PNode _a0, PNode _a1, PNode _a2 ) +CNodeFun::CNodeFun( const class CFunc* _fun, PNode _a0, PNode _a1, PNode _a2 ) : fun(_fun), narg(3) { if ( fun->narg!=3 ) diff --git a/pub/lib/olf.cpp b/pub/lib/olf.cpp index 1b0a0403..d5dcfe1a 100644 --- a/pub/lib/olf.cpp +++ b/pub/lib/olf.cpp @@ -20,7 +20,7 @@ #include "defs.hpp" #include "olf.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "var.hpp" #include "expr.hpp" #include "xax_lex.hpp" @@ -52,7 +52,7 @@ string COlo::infoLine( int j ) const return out; } -//! Return value of iz-th z-variable for zentry j. +//! Return value of iz-th z-variable for slice j. double COlo::z( int j, int iz ) const { @@ -65,16 +65,16 @@ double COlo::z( int j, int iz ) const //! Duplicate spectrum j, and return new shared pointer. -PZentry COld::new_zentry( int j ) const +PSlice COld::new_slice( int j ) const { - return PZentry( new CSpec( *(VS(j)) ) ); + return PSlice( new CSpec( *(VS(j)) ) ); } //! Duplicate curve j, and return new shared pointer. -PZentry COlc::new_zentry( int j ) const +PSlice COlc::new_slice( int j ) const { - return PZentry( new CCurve( *(VC(j)) ) ); + return PSlice( new CCurve( *(VC(j)) ) ); } //! New shared pointer to copied online file (but without copying main vector). @@ -112,7 +112,7 @@ void COld::copy_mainvec( POlo fin ) POld fd = boost::dynamic_pointer_cast<class COld>( fin ); V.resize( fin->nJ() ); for( int j=0; j<fin->nJ(); ++j ) - V[j] = PZentry( new CSpec( *(fd->VS(j)) ) ); + V[j] = PSlice( new CSpec( *(fd->VS(j)) ) ); } //! Set main vector by copying from fin. @@ -122,7 +122,7 @@ void COlc::copy_mainvec( POlo fin ) POlc fc = boost::dynamic_pointer_cast<class COlc>( fin ); V.resize( fin->nJ() ); for( int j=0; j<fin->nJ(); ++j ) - V[j] = PZentry( new CCurve( *(fc->VC(j)) ) ); + V[j] = PSlice( new CCurve( *(fc->VC(j)) ) ); } diff --git a/pub/lib/olf.hpp b/pub/lib/olf.hpp index dafd8be6..28dfd9d0 100644 --- a/pub/lib/olf.hpp +++ b/pub/lib/olf.hpp @@ -16,7 +16,7 @@ class COlo { public: // Data records: - vector<PZentry> V; + vector<PSlice> V; string name; vector<string> lDoc; CCoord xco, yco; @@ -39,7 +39,7 @@ class COlo { int nJ() const { return V.size(); } int nZ() const { return ZCo.size(); } double z( int j, int iz ) const; - virtual PZentry new_zentry( int j ) const = 0; + virtual PSlice new_slice( int j ) const = 0; virtual POlo new_olo( bool modified=true ) const = 0; virtual CCoord coord( class CVar* var ) const = 0; virtual void setCoord( class CVar* var, CCoord& co ) = 0; @@ -55,7 +55,7 @@ class COld : public COlo { // Trivially duplicated functions: PSpec VS( int j ) const; - PZentry new_zentry( int j ) const; + PSlice new_slice( int j ) const; POlo new_olo( bool modified=true ) const; POld new_old( bool modified=true ) const; void copy_mainvec( POlo fin ); @@ -103,7 +103,7 @@ class COlc : public COlo { // Trivially duplicated functions: PCurve VC( int j ) const; - PZentry new_zentry( int j ) const; + PSlice new_slice( int j ) const; POlo new_olo( bool modified=true ) const; POlc new_olc( bool modified=true ) const; void copy_mainvec( POlo fin ); diff --git a/pub/lib/opr.cpp b/pub/lib/opr.cpp index ef7c5835..3ef3e56a 100644 --- a/pub/lib/opr.cpp +++ b/pub/lib/opr.cpp @@ -16,7 +16,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "reg.hpp" #include "var.hpp" #include "expr.hpp" @@ -211,7 +211,7 @@ void NOperate::Pointwise( string llabel ) } else { fout->V.resize( fin->nJ() ); for( int j=0; j<fin->nJ(); j++ ){ - fout->V[j] = fin->new_zentry( j ); + fout->V[j] = fin->new_slice( j ); if ( fin->V[j]->frozen ) continue; if ( lref.pointwise() ) { diff --git a/pub/lib/plot.cpp b/pub/lib/plot.cpp index f86c4c73..aeee6122 100644 --- a/pub/lib/plot.cpp +++ b/pub/lib/plot.cpp @@ -18,7 +18,7 @@ #include "olf.hpp" #include "mem.hpp" #include "jsel.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "dualplot.hpp" #include "plot.hpp" #include "curve.hpp" @@ -56,7 +56,7 @@ void determine_Xrange( CPlot* plot, CList* JSel ) } if ( first ) throw "x range is empty"; - plot->X.setRoundedLimits( "x", inf, sup ); + plot->X.setRoundedLimits( inf, sup ); } //! Loop over selected files to determine y range for current x range. @@ -95,7 +95,7 @@ void determine_Yrange( CPlot* plot, CList* JSel ) } if ( inf==INFINITY || sup==-INFINITY ) throw "y range is empty"; - plot->Y.setRoundedLimits( "y", inf, sup ); + plot->Y.setRoundedLimits( inf, sup ); } diff --git a/pub/lib/ptr.hpp b/pub/lib/ptr.hpp index 96fc0a8d..6b74b85c 100644 --- a/pub/lib/ptr.hpp +++ b/pub/lib/ptr.hpp @@ -15,7 +15,7 @@ typedef boost::shared_ptr<class COlc> POlc; typedef boost::shared_ptr<class CNode> PNode; -typedef boost::shared_ptr<class CZentry> PZentry; +typedef boost::shared_ptr<class CSlice> PSlice; typedef boost::shared_ptr<class CSpec> PSpec; typedef boost::shared_ptr<class CCurve> PCurve; diff --git a/pub/lib/rssm.cpp b/pub/lib/rssm.cpp index 95f8419a..b8ed145e 100644 --- a/pub/lib/rssm.cpp +++ b/pub/lib/rssm.cpp @@ -20,7 +20,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "rssm.hpp" diff --git a/pub/lib/zentry.cpp b/pub/lib/slice.cpp similarity index 95% rename from pub/lib/zentry.cpp rename to pub/lib/slice.cpp index 45d2fc97..99a52ae0 100644 --- a/pub/lib/zentry.cpp +++ b/pub/lib/slice.cpp @@ -5,7 +5,7 @@ //***************************************************************************// //! \file zentry.cpp -//! \brief z-dependent entries CZentry < CCurve, CSpec +//! \brief z-dependent entries CSlice < CCurve, CSpec #include <vector> #include <string> @@ -16,20 +16,20 @@ #include "defs.hpp" #include "ptr.hpp" -#include "zentry.hpp" +#include "slice.hpp" //***************************************************************************// -//* class Zentry *// +//* class Slice *// //***************************************************************************// -CZentry::CZentry() : +CSlice::CSlice() : frozen(false) {} -//! Partial copy, to initialize a new Zentry from an existing one. +//! Partial copy, to initialize a new Slice from an existing one. -void CZentry::copy_z_base( PZentry ein ) +void CSlice::copy_z_base( PSlice ein ) { z = ein->z; dz = ein->dz; @@ -38,7 +38,7 @@ void CZentry::copy_z_base( PZentry ein ) //! Compare z vectors of two zentries, for use within sort routine. -bool CompareZ( const PZentry& E1, const PZentry& E2 ) +bool CompareZ( const PSlice& E1, const PSlice& E2 ) { if( E1->z.size()!=E2->z.size() ) throw "BUG: inconsistent z.size in CompareZ"; diff --git a/pub/lib/zentry.hpp b/pub/lib/slice.hpp similarity index 75% rename from pub/lib/zentry.hpp rename to pub/lib/slice.hpp index 59260d53..6773b588 100644 --- a/pub/lib/zentry.hpp +++ b/pub/lib/slice.hpp @@ -5,26 +5,26 @@ //***************************************************************************// //! \file zentry.hpp -//! \brief z-dependent entries CZentry < CCurve, CSpec +//! \brief z-dependent entries CSlice < CCurve, CSpec //! Virtual base class for CCurve and CSpec, holds a z vector and more. -class CZentry { +class CSlice { public: vector<double> z, dz; bool frozen; - CZentry(); - virtual ~CZentry() {}; // magic: makes dynamic_cast possible + CSlice(); + virtual ~CSlice() {}; // magic: makes dynamic_cast possible - void copy_z_base( boost::shared_ptr<class CZentry> ein ); + void copy_z_base( boost::shared_ptr<class CSlice> ein ); virtual string infoLine() const = 0; }; -//! A CZentry within a curve file, holds parameters and fit outcome. +//! A CSlice within a curve file, holds parameters and fit outcome. -class CCurve: public CZentry { +class CCurve: public CSlice { public: vector<double> P; vector<bool> fixed; @@ -37,9 +37,9 @@ class CCurve: public CZentry { }; -//! A CZentry within a data file, holds a x-y-dy data set. +//! A CSlice within a data file, holds a x-y-dy data set. -class CSpec: public CZentry { +class CSpec: public CSlice { public: vector<double> x, y, dy; @@ -64,5 +64,5 @@ class CSpec: public CZentry { //! at global scope, for use in sorting. -bool CompareZ( const PZentry& E1, const PZentry& E2 ); +bool CompareZ( const PSlice& E1, const PSlice& E2 ); diff --git a/pub/lib/special.cpp b/pub/lib/special.cpp index c0847921..bfdfec91 100644 --- a/pub/lib/special.cpp +++ b/pub/lib/special.cpp @@ -16,7 +16,7 @@ #include "defs.hpp" #include "olf.hpp" #include "mem.hpp" -#include "zentry.hpp" +#include "slice.hpp" #include "special.hpp" namespace NSpecial { -- GitLab