1292 lines
84 KiB
HTML
1292 lines
84 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>musrfit: PFunction Class Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">musrfit<span id="projectnumber"> 1.9.9</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',false,false,'search.php','Search',true);
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('classPFunction.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pro-methods">Protected Member Functions</a> |
|
|
<a href="#pri-methods">Private Member Functions</a> |
|
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
<a href="classPFunction-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">PFunction Class Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Class for parsing and evaluating mathematical functions from msr-file FUNCTIONS blocks.
|
|
<a href="#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="PFunction_8h_source.html">PFunction.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Collaboration diagram for PFunction:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="classPFunction__coll__graph.png" border="0" usemap="#aPFunction_coll__map" alt="Collaboration graph"/></div>
|
|
<map name="aPFunction_coll__map" id="aPFunction_coll__map">
|
|
<area shape="rect" title="Class for parsing and evaluating mathematical functions from msr-file FUNCTIONS blocks." alt="" coords="85,98,167,126"/>
|
|
<area shape="rect" href="structfunc__tree__node.html" title="Tree node structure for efficient function evaluation." alt="" coords="5,5,122,33"/>
|
|
<area shape="poly" title=" " alt="" coords="83,44,119,96,115,99,79,47"/>
|
|
<area shape="rect" href="structPMetaData.html" title=" " alt="" coords="145,5,232,33"/>
|
|
<area shape="poly" title=" " alt="" coords="173,47,137,99,133,96,169,44"/>
|
|
</map>
|
|
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:aa611e795d0591e42c79ca2a6cbfe771d" id="r_aa611e795d0591e42c79ca2a6cbfe771d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#aa611e795d0591e42c79ca2a6cbfe771d">PFunction</a> (tree_parse_info<> info)</td></tr>
|
|
<tr class="memdesc:aa611e795d0591e42c79ca2a6cbfe771d"><td class="mdescLeft"> </td><td class="mdescRight">Constructor that parses and prepares a function for evaluation. <br /></td></tr>
|
|
<tr class="separator:aa611e795d0591e42c79ca2a6cbfe771d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac93c8e541a5add6fbc51419e2b0b96fb" id="r_ac93c8e541a5add6fbc51419e2b0b96fb"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac93c8e541a5add6fbc51419e2b0b96fb">~PFunction</a> ()</td></tr>
|
|
<tr class="memdesc:ac93c8e541a5add6fbc51419e2b0b96fb"><td class="mdescLeft"> </td><td class="mdescRight">Destructor that cleans up the evaluation tree. <br /></td></tr>
|
|
<tr class="separator:ac93c8e541a5add6fbc51419e2b0b96fb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1bb132f2f34fa694e383fcd9007ca5ee" id="r_a1bb132f2f34fa694e383fcd9007ca5ee"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1bb132f2f34fa694e383fcd9007ca5ee">IsValid</a> ()</td></tr>
|
|
<tr class="memdesc:a1bb132f2f34fa694e383fcd9007ca5ee"><td class="mdescLeft"> </td><td class="mdescRight">Checks if the function was successfully parsed and initialized. <br /></td></tr>
|
|
<tr class="separator:a1bb132f2f34fa694e383fcd9007ca5ee"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2aa767fc5e642fbbf4926289594f5a8f" id="r_a2aa767fc5e642fbbf4926289594f5a8f"><td class="memItemLeft" align="right" valign="top">virtual Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2aa767fc5e642fbbf4926289594f5a8f">GetFuncNo</a> ()</td></tr>
|
|
<tr class="memdesc:a2aa767fc5e642fbbf4926289594f5a8f"><td class="mdescLeft"> </td><td class="mdescRight">Returns the function number extracted from the function label. <br /></td></tr>
|
|
<tr class="separator:a2aa767fc5e642fbbf4926289594f5a8f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5043e5f026f8b40c633ed238ab092cd3" id="r_a5043e5f026f8b40c633ed238ab092cd3"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5043e5f026f8b40c633ed238ab092cd3">CheckMapAndParamRange</a> (UInt_t mapSize, UInt_t paramSize)</td></tr>
|
|
<tr class="memdesc:a5043e5f026f8b40c633ed238ab092cd3"><td class="mdescLeft"> </td><td class="mdescRight">Validates that all parameter and map references are within valid ranges. <br /></td></tr>
|
|
<tr class="separator:a5043e5f026f8b40c633ed238ab092cd3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af563cd8b5f0ecfe77eba6e1b726d56ff" id="r_af563cd8b5f0ecfe77eba6e1b726d56ff"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#af563cd8b5f0ecfe77eba6e1b726d56ff">Eval</a> (std::vector< Double_t > param, <a class="el" href="structPMetaData.html">PMetaData</a> metaData)</td></tr>
|
|
<tr class="memdesc:af563cd8b5f0ecfe77eba6e1b726d56ff"><td class="mdescLeft"> </td><td class="mdescRight">Evaluates the function with given parameters and metadata. <br /></td></tr>
|
|
<tr class="separator:af563cd8b5f0ecfe77eba6e1b726d56ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9b1368054630cd5b0934d1918f8c484d" id="r_a9b1368054630cd5b0934d1918f8c484d"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9b1368054630cd5b0934d1918f8c484d">SetMap</a> (std::vector< Int_t > map)</td></tr>
|
|
<tr class="memdesc:a9b1368054630cd5b0934d1918f8c484d"><td class="mdescLeft"> </td><td class="mdescRight">Sets the map vector for parameter indirection. <br /></td></tr>
|
|
<tr class="separator:a9b1368054630cd5b0934d1918f8c484d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a13c31d1e38013f2a4d92372af0bc3156" id="r_a13c31d1e38013f2a4d92372af0bc3156"><td class="memItemLeft" align="right" valign="top">virtual TString * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a13c31d1e38013f2a4d92372af0bc3156">GetFuncString</a> ()</td></tr>
|
|
<tr class="memdesc:a13c31d1e38013f2a4d92372af0bc3156"><td class="mdescLeft"> </td><td class="mdescRight">Returns the human-readable string representation of the function. <br /></td></tr>
|
|
<tr class="separator:a13c31d1e38013f2a4d92372af0bc3156"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
|
|
Protected Member Functions</h2></td></tr>
|
|
<tr class="memitem:aff9f899466471781a81a98853e4edb81" id="r_aff9f899466471781a81a98853e4edb81"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#aff9f899466471781a81a98853e4edb81">InitNode</a> (<a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &node)</td></tr>
|
|
<tr class="memdesc:aff9f899466471781a81a98853e4edb81"><td class="mdescLeft"> </td><td class="mdescRight">Initializes all fields of an evaluation tree node to default values. <br /></td></tr>
|
|
<tr class="separator:aff9f899466471781a81a98853e4edb81"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adcef1afc8e5dcf15f1d1b556eb94876b" id="r_adcef1afc8e5dcf15f1d1b556eb94876b"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#adcef1afc8e5dcf15f1d1b556eb94876b">SetFuncNo</a> ()</td></tr>
|
|
<tr class="memdesc:adcef1afc8e5dcf15f1d1b556eb94876b"><td class="mdescLeft"> </td><td class="mdescRight">Extracts the function number from the AST. <br /></td></tr>
|
|
<tr class="separator:adcef1afc8e5dcf15f1d1b556eb94876b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0023bc1ce7bc8207b2c686b5b4ea9045" id="r_a0023bc1ce7bc8207b2c686b5b4ea9045"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0023bc1ce7bc8207b2c686b5b4ea9045">FindAndCheckMapAndParamRange</a> (<a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &node, UInt_t mapSize, UInt_t paramSize)</td></tr>
|
|
<tr class="memdesc:a0023bc1ce7bc8207b2c686b5b4ea9045"><td class="mdescLeft"> </td><td class="mdescRight">Recursively validates parameter and map references in the tree. <br /></td></tr>
|
|
<tr class="separator:a0023bc1ce7bc8207b2c686b5b4ea9045"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aaf412e496f0f762aa08ce80b6b228499" id="r_aaf412e496f0f762aa08ce80b6b228499"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#aaf412e496f0f762aa08ce80b6b228499">GenerateFuncEvalTree</a> ()</td></tr>
|
|
<tr class="memdesc:aaf412e496f0f762aa08ce80b6b228499"><td class="mdescLeft"> </td><td class="mdescRight">Initiates the conversion from AST to evaluation tree. <br /></td></tr>
|
|
<tr class="separator:aaf412e496f0f762aa08ce80b6b228499"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab7afbaea18c8dcac4853cf2a906f48d1" id="r_ab7afbaea18c8dcac4853cf2a906f48d1"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab7afbaea18c8dcac4853cf2a906f48d1">FillFuncEvalTree</a> (<a class="el" href="PFunctionGrammar_8h.html#aa42264bce8eaff22bca8db5e859716e5">iter_t</a> const &i, <a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &node)</td></tr>
|
|
<tr class="memdesc:ab7afbaea18c8dcac4853cf2a906f48d1"><td class="mdescLeft"> </td><td class="mdescRight">Recursively builds the evaluation tree from the AST. <br /></td></tr>
|
|
<tr class="separator:ab7afbaea18c8dcac4853cf2a906f48d1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aff99ef37c4a96447c12d79a2ff964638" id="r_aff99ef37c4a96447c12d79a2ff964638"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#aff99ef37c4a96447c12d79a2ff964638">EvalNode</a> (<a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &node)</td></tr>
|
|
<tr class="memdesc:aff99ef37c4a96447c12d79a2ff964638"><td class="mdescLeft"> </td><td class="mdescRight">Recursively evaluates an evaluation tree node. <br /></td></tr>
|
|
<tr class="separator:aff99ef37c4a96447c12d79a2ff964638"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a029ed1160509dbbabafa5e7290b3f1c3" id="r_a029ed1160509dbbabafa5e7290b3f1c3"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a029ed1160509dbbabafa5e7290b3f1c3">CleanupFuncEvalTree</a> ()</td></tr>
|
|
<tr class="memdesc:a029ed1160509dbbabafa5e7290b3f1c3"><td class="mdescLeft"> </td><td class="mdescRight">Initiates cleanup of the evaluation tree. <br /></td></tr>
|
|
<tr class="separator:a029ed1160509dbbabafa5e7290b3f1c3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7911687b722c6e9c67d74c31b747db4b" id="r_a7911687b722c6e9c67d74c31b747db4b"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7911687b722c6e9c67d74c31b747db4b">CleanupNode</a> (<a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &node)</td></tr>
|
|
<tr class="memdesc:a7911687b722c6e9c67d74c31b747db4b"><td class="mdescLeft"> </td><td class="mdescRight">Recursively cleans up evaluation tree nodes and their children. <br /></td></tr>
|
|
<tr class="separator:a7911687b722c6e9c67d74c31b747db4b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
|
|
Private Member Functions</h2></td></tr>
|
|
<tr class="memitem:a5d245def67cc39775df2b2d95a13f6bb" id="r_a5d245def67cc39775df2b2d95a13f6bb"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5d245def67cc39775df2b2d95a13f6bb">EvalTreeForString</a> (tree_parse_info<> info)</td></tr>
|
|
<tr class="memdesc:a5d245def67cc39775df2b2d95a13f6bb"><td class="mdescLeft"> </td><td class="mdescRight">Initiates generation of human-readable function string. <br /></td></tr>
|
|
<tr class="separator:a5d245def67cc39775df2b2d95a13f6bb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab0694db84fd0f2c03e8f144fbccd2a7b" id="r_ab0694db84fd0f2c03e8f144fbccd2a7b"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab0694db84fd0f2c03e8f144fbccd2a7b">EvalTreeForStringExpression</a> (<a class="el" href="PFunctionGrammar_8h.html#aa42264bce8eaff22bca8db5e859716e5">iter_t</a> const &i, bool funcFlag=false)</td></tr>
|
|
<tr class="memdesc:ab0694db84fd0f2c03e8f144fbccd2a7b"><td class="mdescLeft"> </td><td class="mdescRight">Recursively generates formatted function string from AST. <br /></td></tr>
|
|
<tr class="separator:ab0694db84fd0f2c03e8f144fbccd2a7b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
|
|
Private Attributes</h2></td></tr>
|
|
<tr class="memitem:aaabed7ce5a93857c6480bbe975830e3b" id="r_aaabed7ce5a93857c6480bbe975830e3b"><td class="memItemLeft" align="right" valign="top">tree_parse_info </td><td class="memItemRight" valign="bottom"><a class="el" href="#aaabed7ce5a93857c6480bbe975830e3b">fInfo</a></td></tr>
|
|
<tr class="memdesc:aaabed7ce5a93857c6480bbe975830e3b"><td class="mdescLeft"> </td><td class="mdescRight">AST parse tree from Boost.Spirit parser. <br /></td></tr>
|
|
<tr class="separator:aaabed7ce5a93857c6480bbe975830e3b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad357729df47ef5d2fcd78652f56ba0bf" id="r_ad357729df47ef5d2fcd78652f56ba0bf"><td class="memItemLeft" align="right" valign="top">std::vector< Double_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad357729df47ef5d2fcd78652f56ba0bf">fParam</a></td></tr>
|
|
<tr class="memdesc:ad357729df47ef5d2fcd78652f56ba0bf"><td class="mdescLeft"> </td><td class="mdescRight">Current fit parameter values for evaluation. <br /></td></tr>
|
|
<tr class="separator:ad357729df47ef5d2fcd78652f56ba0bf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af80edee8699b8666c77336c0e2a46baa" id="r_af80edee8699b8666c77336c0e2a46baa"><td class="memItemLeft" align="right" valign="top">std::vector< Int_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="#af80edee8699b8666c77336c0e2a46baa">fMap</a></td></tr>
|
|
<tr class="memdesc:af80edee8699b8666c77336c0e2a46baa"><td class="mdescLeft"> </td><td class="mdescRight">Map vector for indirect parameter references. <br /></td></tr>
|
|
<tr class="separator:af80edee8699b8666c77336c0e2a46baa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4772da14485b37086dba588a3e8b49cd" id="r_a4772da14485b37086dba588a3e8b49cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4772da14485b37086dba588a3e8b49cd">fFunc</a></td></tr>
|
|
<tr class="memdesc:a4772da14485b37086dba588a3e8b49cd"><td class="mdescLeft"> </td><td class="mdescRight">Root node of the evaluation tree. <br /></td></tr>
|
|
<tr class="separator:a4772da14485b37086dba588a3e8b49cd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a323a06e5b4e7673d0fde120c0dc1a6ac" id="r_a323a06e5b4e7673d0fde120c0dc1a6ac"><td class="memItemLeft" align="right" valign="top">Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a323a06e5b4e7673d0fde120c0dc1a6ac">fValid</a></td></tr>
|
|
<tr class="memdesc:a323a06e5b4e7673d0fde120c0dc1a6ac"><td class="mdescLeft"> </td><td class="mdescRight">Validity flag: true if function parsed and initialized successfully. <br /></td></tr>
|
|
<tr class="separator:a323a06e5b4e7673d0fde120c0dc1a6ac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2204cf0fa5b66e03634928a753d293a6" id="r_a2204cf0fa5b66e03634928a753d293a6"><td class="memItemLeft" align="right" valign="top">Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2204cf0fa5b66e03634928a753d293a6">fFuncNo</a></td></tr>
|
|
<tr class="memdesc:a2204cf0fa5b66e03634928a753d293a6"><td class="mdescLeft"> </td><td class="mdescRight">Function number extracted from label (x in FUNx) <br /></td></tr>
|
|
<tr class="separator:a2204cf0fa5b66e03634928a753d293a6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a94f0732e367ff6066a53b2189397478b" id="r_a94f0732e367ff6066a53b2189397478b"><td class="memItemLeft" align="right" valign="top">TString </td><td class="memItemRight" valign="bottom"><a class="el" href="#a94f0732e367ff6066a53b2189397478b">fFuncString</a></td></tr>
|
|
<tr class="memdesc:a94f0732e367ff6066a53b2189397478b"><td class="mdescLeft"> </td><td class="mdescRight">Formatted, human-readable function representation. <br /></td></tr>
|
|
<tr class="separator:a94f0732e367ff6066a53b2189397478b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1a5c27e1bb628cd40dcac1157fe1a29b" id="r_a1a5c27e1bb628cd40dcac1157fe1a29b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structPMetaData.html">PMetaData</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1a5c27e1bb628cd40dcac1157fe1a29b">fMetaData</a></td></tr>
|
|
<tr class="memdesc:a1a5c27e1bb628cd40dcac1157fe1a29b"><td class="mdescLeft"> </td><td class="mdescRight">Metadata from experimental data (field, energy, temperature, etc.) <br /></td></tr>
|
|
<tr class="separator:a1a5c27e1bb628cd40dcac1157fe1a29b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Class for parsing and evaluating mathematical functions from msr-file FUNCTIONS blocks. </p>
|
|
<p>This class handles the complete lifecycle of a function definition:</p><ol type="1">
|
|
<li>Parses the function string using <a class="el" href="structPFunctionGrammar.html" title="EBNF-like grammar definition for parsing function entries in msr-file FUNCTION blocks.">PFunctionGrammar</a> into an AST</li>
|
|
<li>Converts the AST into an efficient evaluation tree</li>
|
|
<li>Validates parameter and map references</li>
|
|
<li>Evaluates the function with given parameters and metadata</li>
|
|
</ol>
|
|
<p>Functions can reference:</p><ul>
|
|
<li>Fit parameters (PAR1, PAR2, ...)</li>
|
|
<li>Map values (MAP1, MAP2, ...)</li>
|
|
<li>Constants (PI, GAMMA_MU)</li>
|
|
<li>Metadata (magnetic field B, energy EN, temperature T)</li>
|
|
<li>Other functions (FUN1, FUN2, ...)</li>
|
|
</ul>
|
|
<p>Example function definition: </p><div class="fragment"><div class="line">FUN1 = PAR1 * COS(2.0 * <a class="code hl_define" href="PFourier_8cpp.html#a598a3330b3c21701223ee0ca14316eca">PI</a> * GAMMA_MU * B * PAR2)</div>
|
|
<div class="ttc" id="aPFourier_8cpp_html_a598a3330b3c21701223ee0ca14316eca"><div class="ttname"><a href="PFourier_8cpp.html#a598a3330b3c21701223ee0ca14316eca">PI</a></div><div class="ttdeci">#define PI</div><div class="ttdef"><b>Definition</b> <a href="PFourier_8cpp_source.html#l00045">PFourier.cpp:45</a></div></div>
|
|
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="structPFunctionGrammar.html" title="EBNF-like grammar definition for parsing function entries in msr-file FUNCTION blocks.">PFunctionGrammar</a> for the grammar definition </dd>
|
|
<dd>
|
|
<a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0" title="Tree node structure for efficient function evaluation.">PFuncTreeNode</a> for the evaluation tree structure </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00131">131</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="aa611e795d0591e42c79ca2a6cbfe771d" name="aa611e795d0591e42c79ca2a6cbfe771d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa611e795d0591e42c79ca2a6cbfe771d">◆ </a></span>PFunction()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">PFunction::PFunction </td>
|
|
<td>(</td>
|
|
<td class="paramtype">tree_parse_info<></td> <td class="paramname"><span class="paramname"><em>info</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constructor that parses and prepares a function for evaluation. </p>
|
|
<p>Constructor that initializes the function from a parsed AST.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">info</td><td>Abstract syntax tree (AST) from parsing a function expression</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>This constructor performs the following steps:</p><ol type="1">
|
|
<li>Stores the AST generated by the Boost.Spirit parser</li>
|
|
<li>Extracts the function number from the function label (FUNx)</li>
|
|
<li>Converts the AST into an efficient evaluation tree structure</li>
|
|
<li>Generates a human-readable string representation of the function</li>
|
|
</ol>
|
|
<p>The input AST has the following structure: </p><pre class="fragment">* assignment (root node)
|
|
* |_ 'FUNx' (function label)
|
|
* |_ '=' (assignment operator)
|
|
* |_ expression (mathematical expression tree)
|
|
* |_ term
|
|
* |_ factor
|
|
* |_ ...
|
|
* </pre><p>Direct evaluation of the AST would be inefficient due to its verbose structure. Therefore, it is converted to a more compact evaluation tree (fFunc) optimized for repeated evaluation with different parameter values during fitting.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">info</td><td>AST parse tree from Boost.Spirit containing a parsed msr-function</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#adcef1afc8e5dcf15f1d1b556eb94876b" title="Extracts the function number from the AST.">SetFuncNo</a> for function number extraction </dd>
|
|
<dd>
|
|
<a class="el" href="#aaf412e496f0f762aa08ce80b6b228499" title="Initiates the conversion from AST to evaluation tree.">GenerateFuncEvalTree</a> for AST to evaluation tree conversion </dd>
|
|
<dd>
|
|
<a class="el" href="#a5d245def67cc39775df2b2d95a13f6bb" title="Initiates generation of human-readable function string.">EvalTreeForString</a> for string representation generation </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00072">72</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8cpp_source.html#l00710">EvalTreeForString()</a>, <a class="el" href="PFunction_8h_source.html#l00279">fFuncNo</a>, <a class="el" href="PFunction_8h_source.html#l00273">fInfo</a>, <a class="el" href="PFunction_8h_source.html#l00278">fValid</a>, <a class="el" href="PFunction_8cpp_source.html#l00178">GenerateFuncEvalTree()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00139">SetFuncNo()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac93c8e541a5add6fbc51419e2b0b96fb" name="ac93c8e541a5add6fbc51419e2b0b96fb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac93c8e541a5add6fbc51419e2b0b96fb">◆ </a></span>~PFunction()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">PFunction::~PFunction </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Destructor that cleans up the evaluation tree. </p>
|
|
<p>Destructor that releases all resources.</p>
|
|
<p>Cleans up:</p><ul>
|
|
<li>Parameter vector</li>
|
|
<li>Map vector</li>
|
|
<li>Evaluation tree (recursively frees all nodes and their children) </li>
|
|
</ul>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00100">100</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8cpp_source.html#l00668">CleanupFuncEvalTree()</a>, <a class="el" href="PFunction_8h_source.html#l00275">fMap</a>, and <a class="el" href="PFunction_8h_source.html#l00274">fParam</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a5043e5f026f8b40c633ed238ab092cd3" name="a5043e5f026f8b40c633ed238ab092cd3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5043e5f026f8b40c633ed238ab092cd3">◆ </a></span>CheckMapAndParamRange()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Bool_t PFunction::CheckMapAndParamRange </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UInt_t</td> <td class="paramname"><span class="paramname"><em>mapSize</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">UInt_t</td> <td class="paramname"><span class="paramname"><em>paramSize</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Validates that all parameter and map references are within valid ranges. </p>
|
|
<p>Validates all map and parameter references in the function.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">mapSize</td><td>Number of available map entries </td></tr>
|
|
<tr><td class="paramname">paramSize</td><td>Number of available fit parameters </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if all references are valid, false otherwise</dd></dl>
|
|
<p>Initiates a recursive traversal of the evaluation tree to verify that all MAP# and PAR# references fall within valid ranges. This prevents runtime errors during evaluation caused by out-of-bounds array access.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">mapSize</td><td>Number of available map entries (MAP1 to MAP<mapSize>) </td></tr>
|
|
<tr><td class="paramname">paramSize</td><td>Number of available fit parameters (PAR1 to PAR<paramSize>) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if all references are valid, false if any are out of range</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a0023bc1ce7bc8207b2c686b5b4ea9045" title="Recursively validates parameter and map references in the tree.">FindAndCheckMapAndParamRange</a> for the recursive validation algorithm </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00395">395</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00276">fFunc</a>, and <a class="el" href="PFunction_8cpp_source.html#l00419">FindAndCheckMapAndParamRange()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a029ed1160509dbbabafa5e7290b3f1c3" name="a029ed1160509dbbabafa5e7290b3f1c3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a029ed1160509dbbabafa5e7290b3f1c3">◆ </a></span>CleanupFuncEvalTree()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFunction::CleanupFuncEvalTree </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initiates cleanup of the evaluation tree. </p>
|
|
<p>Starts the recursive cleanup process from the root node to free all dynamically allocated child nodes in the tree.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a7911687b722c6e9c67d74c31b747db4b" title="Recursively cleans up evaluation tree nodes and their children.">CleanupNode</a> for the recursive cleanup algorithm </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00668">668</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8cpp_source.html#l00686">CleanupNode()</a>, and <a class="el" href="PFunction_8h_source.html#l00276">fFunc</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00100">~PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7911687b722c6e9c67d74c31b747db4b" name="a7911687b722c6e9c67d74c31b747db4b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7911687b722c6e9c67d74c31b747db4b">◆ </a></span>CleanupNode()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFunction::CleanupNode </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &</td> <td class="paramname"><span class="paramname"><em>node</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Recursively cleans up evaluation tree nodes and their children. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Node to clean up</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Performs depth-first traversal to clean up all child nodes before clearing the current node's children vector. This ensures proper resource deallocation and prevents memory leaks.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Current evaluation tree node to clean up </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00686">686</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00103">func_tree_node::children</a>, and <a class="el" href="PFunction_8cpp_source.html#l00686">CleanupNode()</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00668">CleanupFuncEvalTree()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00686">CleanupNode()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af563cd8b5f0ecfe77eba6e1b726d56ff" name="af563cd8b5f0ecfe77eba6e1b726d56ff"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af563cd8b5f0ecfe77eba6e1b726d56ff">◆ </a></span>Eval()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Double_t PFunction::Eval </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::vector< Double_t ></td> <td class="paramname"><span class="paramname"><em>param</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structPMetaData.html">PMetaData</a></td> <td class="paramname"><span class="paramname"><em>metaData</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Evaluates the function with given parameters and metadata. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">param</td><td>Vector of fit parameter values </td></tr>
|
|
<tr><td class="paramname">metaData</td><td>Metadata containing field, energy, temperature, etc. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Computed function value</dd></dl>
|
|
<p>This is the main evaluation entry point. It:</p><ol type="1">
|
|
<li>Stores the current parameter values and metadata</li>
|
|
<li>Initiates recursive evaluation of the tree</li>
|
|
<li>Returns the computed result</li>
|
|
</ol>
|
|
<p>The function can be evaluated multiple times with different parameter values without re-parsing or rebuilding the evaluation tree, making it efficient for iterative fitting algorithms.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">param</td><td>Vector of fit parameter values (PAR1, PAR2, ...) </td></tr>
|
|
<tr><td class="paramname">metaData</td><td>Experimental metadata (field, energy, temperature, etc.) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Computed function value</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#aff99ef37c4a96447c12d79a2ff964638" title="Recursively evaluates an evaluation tree node.">EvalNode</a> for the recursive evaluation algorithm</dd></dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>Ensure CheckMapAndParamRange has been called before evaluation to prevent out-of-bounds access </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00495">495</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>, <a class="el" href="PFunction_8h_source.html#l00276">fFunc</a>, <a class="el" href="PFunction_8h_source.html#l00300">fMetaData</a>, and <a class="el" href="PFunction_8h_source.html#l00274">fParam</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aff99ef37c4a96447c12d79a2ff964638" name="aff99ef37c4a96447c12d79a2ff964638"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aff99ef37c4a96447c12d79a2ff964638">◆ </a></span>EvalNode()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Double_t PFunction::EvalNode </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &</td> <td class="paramname"><span class="paramname"><em>node</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Recursively evaluates an evaluation tree node. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Node to evaluate </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Computed value for this node and its subtree</dd></dl>
|
|
<p>This is the core evaluation algorithm that computes the function value by recursively processing the tree structure. Each node type is handled appropriately:</p>
|
|
<ul>
|
|
<li>Leaf nodes (constants, parameters, maps): Return their values directly</li>
|
|
<li>Operator nodes (+, -, *, /): Evaluate children and apply operation</li>
|
|
<li>Function nodes (cos, sin, exp, etc.): Evaluate argument and apply function</li>
|
|
<li>Power nodes: Evaluate base and exponent, compute power</li>
|
|
</ul>
|
|
<p>Special handling:</p><ul>
|
|
<li>Division by zero: Triggers an error and assertion</li>
|
|
<li>Negative bases in power: Takes absolute value if exponent is non-integer</li>
|
|
<li>Logarithms and square roots: Use absolute value to avoid complex numbers</li>
|
|
<li>Maps: Returns 0 if map value is 0, otherwise returns the mapped parameter</li>
|
|
</ul>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Current evaluation tree node to evaluate </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Computed value for this node</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#af563cd8b5f0ecfe77eba6e1b726d56ff" title="Evaluates the function with given parameters and metadata.">Eval</a> for the public evaluation entry point </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00529">529</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00103">func_tree_node::children</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00093">PFunctionGrammar::constEnergyID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00092">PFunctionGrammar::constFieldID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00091">PFunctionGrammar::constGammaMuID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00090">PFunctionGrammar::constPiID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00094">PFunctionGrammar::constTempID</a>, <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00102">PFunctionGrammar::expressionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00100">PFunctionGrammar::factorID</a>, <a class="el" href="PFunction_8h_source.html#l00102">func_tree_node::fDvalue</a>, <a class="el" href="PFunction_8h_source.html#l00298">fFuncString</a>, <a class="el" href="PFunction_8h_source.html#l00099">func_tree_node::fFunctionTag</a>, <a class="el" href="PFunction_8h_source.html#l00097">func_tree_node::fID</a>, <a class="el" href="PFunction_8h_source.html#l00100">func_tree_node::fIvalue</a>, <a class="el" href="PFunction_8h_source.html#l00275">fMap</a>, <a class="el" href="PFunction_8h_source.html#l00300">fMetaData</a>, <a class="el" href="PFunction_8h_source.html#l00098">func_tree_node::fOperatorTag</a>, <a class="el" href="PFunction_8h_source.html#l00274">fParam</a>, <a class="el" href="PFunction_8h_source.html#l00101">func_tree_node::fSign</a>, <a class="el" href="PFunction_8h_source.html#l00067">FUN_ACOS</a>, <a class="el" href="PFunction_8h_source.html#l00070">FUN_ACOSH</a>, <a class="el" href="PFunction_8h_source.html#l00068">FUN_ASIN</a>, <a class="el" href="PFunction_8h_source.html#l00071">FUN_ASINH</a>, <a class="el" href="PFunction_8h_source.html#l00069">FUN_ATAN</a>, <a class="el" href="PFunction_8h_source.html#l00072">FUN_ATANH</a>, <a class="el" href="PFunction_8h_source.html#l00061">FUN_COS</a>, <a class="el" href="PFunction_8h_source.html#l00064">FUN_COSH</a>, <a class="el" href="PFunction_8h_source.html#l00075">FUN_EXP</a>, <a class="el" href="PFunction_8h_source.html#l00074">FUN_LN</a>, <a class="el" href="PFunction_8h_source.html#l00073">FUN_LOG</a>, <a class="el" href="PFunction_8h_source.html#l00077">FUN_POW</a>, <a class="el" href="PFunction_8h_source.html#l00062">FUN_SIN</a>, <a class="el" href="PFunction_8h_source.html#l00065">FUN_SINH</a>, <a class="el" href="PFunction_8h_source.html#l00076">FUN_SQRT</a>, <a class="el" href="PFunction_8h_source.html#l00063">FUN_TAN</a>, <a class="el" href="PFunction_8h_source.html#l00066">FUN_TANH</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00098">PFunctionGrammar::functionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00097">PFunctionGrammar::mapID</a>, <a class="el" href="PFunction_8h_source.html#l00053">OP_ADD</a>, <a class="el" href="PFunction_8h_source.html#l00055">OP_MUL</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00096">PFunctionGrammar::parameterID</a>, <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00099">PFunctionGrammar::powerID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00089">PFunctionGrammar::realID</a>, and <a class="el" href="PFunctionGrammar_8h_source.html#l00101">PFunctionGrammar::termID</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00495">Eval()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5d245def67cc39775df2b2d95a13f6bb" name="a5d245def67cc39775df2b2d95a13f6bb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5d245def67cc39775df2b2d95a13f6bb">◆ </a></span>EvalTreeForString()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFunction::EvalTreeForString </td>
|
|
<td>(</td>
|
|
<td class="paramtype">tree_parse_info<></td> <td class="paramname"><span class="paramname"><em>info</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initiates generation of human-readable function string. </p>
|
|
<p>Initiates generation of human-readable function string from AST.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">info</td><td>AST parse tree to convert to string</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Creates a formatted, readable string representation of the function by traversing the AST. The resulting string is stored in fFuncString and can be used for display, logging, or debugging purposes.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">info</td><td>AST parse tree to convert to string</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ab0694db84fd0f2c03e8f144fbccd2a7b" title="Recursively generates formatted function string from AST.">EvalTreeForStringExpression</a> for the recursive string generation algorithm </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00710">710</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8cpp_source.html#l00739">EvalTreeForStringExpression()</a>, and <a class="el" href="PFunction_8h_source.html#l00298">fFuncString</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00072">PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab0694db84fd0f2c03e8f144fbccd2a7b" name="ab0694db84fd0f2c03e8f144fbccd2a7b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab0694db84fd0f2c03e8f144fbccd2a7b">◆ </a></span>EvalTreeForStringExpression()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFunction::EvalTreeForStringExpression </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="PFunctionGrammar_8h.html#aa42264bce8eaff22bca8db5e859716e5">iter_t</a> const &</td> <td class="paramname"><span class="paramname"><em>i</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>funcFlag</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Recursively generates formatted function string from AST. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">i</td><td>Iterator pointing to current AST node </td></tr>
|
|
<tr><td class="paramname">funcFlag</td><td>Flag indicating if currently inside a function call</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Traverses the AST and builds a human-readable string representation. The function handles:</p><ul>
|
|
<li>Proper parenthesization to maintain operator precedence</li>
|
|
<li>Formatting of constants (PI -> Pi, GAMMA_MU -> gamma_mu)</li>
|
|
<li>Proper spacing around operators</li>
|
|
<li>Special handling for division denominators (adds parentheses if needed)</li>
|
|
<li>Function call formatting with arguments</li>
|
|
</ul>
|
|
<p>The resulting string is formatted for readability while maintaining mathematical correctness.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">i</td><td>Iterator pointing to current AST node </td></tr>
|
|
<tr><td class="paramname">funcFlag</td><td>Flag indicating if currently processing inside a function argument (affects parenthesization rules)</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Uses a static variable termOp to track operator nesting depth </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00739">739</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunctionGrammar_8h_source.html#l00103">PFunctionGrammar::assignmentID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00093">PFunctionGrammar::constEnergyID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00092">PFunctionGrammar::constFieldID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00091">PFunctionGrammar::constGammaMuID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00090">PFunctionGrammar::constPiID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00094">PFunctionGrammar::constTempID</a>, <a class="el" href="PFunction_8cpp_source.html#l00739">EvalTreeForStringExpression()</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00102">PFunctionGrammar::expressionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00100">PFunctionGrammar::factorID</a>, <a class="el" href="PFunction_8h_source.html#l00298">fFuncString</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00098">PFunctionGrammar::functionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00095">PFunctionGrammar::funLabelID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00097">PFunctionGrammar::mapID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00096">PFunctionGrammar::parameterID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00099">PFunctionGrammar::powerID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00089">PFunctionGrammar::realID</a>, and <a class="el" href="PFunctionGrammar_8h_source.html#l00101">PFunctionGrammar::termID</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00710">EvalTreeForString()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00739">EvalTreeForStringExpression()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab7afbaea18c8dcac4853cf2a906f48d1" name="ab7afbaea18c8dcac4853cf2a906f48d1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab7afbaea18c8dcac4853cf2a906f48d1">◆ </a></span>FillFuncEvalTree()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFunction::FillFuncEvalTree </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="PFunctionGrammar_8h.html#aa42264bce8eaff22bca8db5e859716e5">iter_t</a> const &</td> <td class="paramname"><span class="paramname"><em>i</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &</td> <td class="paramname"><span class="paramname"><em>node</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Recursively builds the evaluation tree from the AST. </p>
|
|
<p>Recursively converts AST nodes to evaluation tree nodes.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">i</td><td>Iterator pointing to current AST node </td></tr>
|
|
<tr><td class="paramname">node</td><td>Evaluation tree node to fill</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>This function traverses the AST and builds a corresponding evaluation tree. It handles all node types defined in <a class="el" href="structPFunctionGrammar.html" title="EBNF-like grammar definition for parsing function entries in msr-file FUNCTION blocks.">PFunctionGrammar</a>:</p><ul>
|
|
<li>Leaf nodes: real numbers, constants (PI, GAMMA_MU, B, EN, T), parameters, maps</li>
|
|
<li>Operator nodes: arithmetic operations (+, -, *, /)</li>
|
|
<li>Function nodes: mathematical functions (cos, sin, exp, etc.)</li>
|
|
<li>Power nodes: POW(base, exponent)</li>
|
|
<li>Composite nodes: factors, terms, expressions</li>
|
|
</ul>
|
|
<p>The resulting tree structure is optimized for efficient evaluation.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">i</td><td>Iterator pointing to the current AST node to process </td></tr>
|
|
<tr><td class="paramname">node</td><td>Evaluation tree node to populate with data from the AST</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPFunctionGrammar.html" title="EBNF-like grammar definition for parsing function entries in msr-file FUNCTION blocks.">PFunctionGrammar</a> for AST node type definitions </dd>
|
|
<dd>
|
|
<a class="el" href="#aff99ef37c4a96447c12d79a2ff964638" title="Recursively evaluates an evaluation tree node.">EvalNode</a> for the evaluation algorithm that uses this tree </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00208">208</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunctionGrammar_8h_source.html#l00103">PFunctionGrammar::assignmentID</a>, <a class="el" href="PFunction_8h_source.html#l00103">func_tree_node::children</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00093">PFunctionGrammar::constEnergyID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00092">PFunctionGrammar::constFieldID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00091">PFunctionGrammar::constGammaMuID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00090">PFunctionGrammar::constPiID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00094">PFunctionGrammar::constTempID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00102">PFunctionGrammar::expressionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00100">PFunctionGrammar::factorID</a>, <a class="el" href="PFunction_8h_source.html#l00102">func_tree_node::fDvalue</a>, <a class="el" href="PFunction_8h_source.html#l00099">func_tree_node::fFunctionTag</a>, <a class="el" href="PFunction_8h_source.html#l00097">func_tree_node::fID</a>, <a class="el" href="PFunction_8cpp_source.html#l00208">FillFuncEvalTree()</a>, <a class="el" href="PFunction_8h_source.html#l00100">func_tree_node::fIvalue</a>, <a class="el" href="PFunction_8h_source.html#l00098">func_tree_node::fOperatorTag</a>, <a class="el" href="PFunction_8h_source.html#l00101">func_tree_node::fSign</a>, <a class="el" href="PFunction_8h_source.html#l00067">FUN_ACOS</a>, <a class="el" href="PFunction_8h_source.html#l00070">FUN_ACOSH</a>, <a class="el" href="PFunction_8h_source.html#l00068">FUN_ASIN</a>, <a class="el" href="PFunction_8h_source.html#l00071">FUN_ASINH</a>, <a class="el" href="PFunction_8h_source.html#l00069">FUN_ATAN</a>, <a class="el" href="PFunction_8h_source.html#l00072">FUN_ATANH</a>, <a class="el" href="PFunction_8h_source.html#l00061">FUN_COS</a>, <a class="el" href="PFunction_8h_source.html#l00064">FUN_COSH</a>, <a class="el" href="PFunction_8h_source.html#l00075">FUN_EXP</a>, <a class="el" href="PFunction_8h_source.html#l00074">FUN_LN</a>, <a class="el" href="PFunction_8h_source.html#l00073">FUN_LOG</a>, <a class="el" href="PFunction_8h_source.html#l00077">FUN_POW</a>, <a class="el" href="PFunction_8h_source.html#l00062">FUN_SIN</a>, <a class="el" href="PFunction_8h_source.html#l00065">FUN_SINH</a>, <a class="el" href="PFunction_8h_source.html#l00076">FUN_SQRT</a>, <a class="el" href="PFunction_8h_source.html#l00063">FUN_TAN</a>, <a class="el" href="PFunction_8h_source.html#l00066">FUN_TANH</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00098">PFunctionGrammar::functionID</a>, <a class="el" href="PMusr_8h_source.html#l00138">GAMMA_BAR_MUON</a>, <a class="el" href="PFunction_8cpp_source.html#l00116">InitNode()</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00097">PFunctionGrammar::mapID</a>, <a class="el" href="PFunction_8h_source.html#l00053">OP_ADD</a>, <a class="el" href="PFunction_8h_source.html#l00056">OP_DIV</a>, <a class="el" href="PFunction_8h_source.html#l00055">OP_MUL</a>, <a class="el" href="PFunction_8h_source.html#l00054">OP_SUB</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00096">PFunctionGrammar::parameterID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00099">PFunctionGrammar::powerID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00089">PFunctionGrammar::realID</a>, <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>, and <a class="el" href="PFunctionGrammar_8h_source.html#l00101">PFunctionGrammar::termID</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00208">FillFuncEvalTree()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00178">GenerateFuncEvalTree()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0023bc1ce7bc8207b2c686b5b4ea9045" name="a0023bc1ce7bc8207b2c686b5b4ea9045"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0023bc1ce7bc8207b2c686b5b4ea9045">◆ </a></span>FindAndCheckMapAndParamRange()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Bool_t PFunction::FindAndCheckMapAndParamRange </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &</td> <td class="paramname"><span class="paramname"><em>node</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">UInt_t</td> <td class="paramname"><span class="paramname"><em>mapSize</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">UInt_t</td> <td class="paramname"><span class="paramname"><em>paramSize</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Recursively validates parameter and map references in the tree. </p>
|
|
<p>Recursively validates map and parameter references in the tree.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Current node being checked </td></tr>
|
|
<tr><td class="paramname">mapSize</td><td>Number of available map entries </td></tr>
|
|
<tr><td class="paramname">paramSize</td><td>Number of available fit parameters </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if all references are valid, false otherwise</dd></dl>
|
|
<p>Traverses the evaluation tree depth-first, checking each node:</p><ul>
|
|
<li>For parameter nodes (PAR#): verifies # <= paramSize</li>
|
|
<li>For map nodes (MAP#): verifies # <= mapSize</li>
|
|
<li>For other nodes: recursively checks all children</li>
|
|
</ul>
|
|
<p>The validation ensures that array indices will be valid during evaluation, preventing potential segmentation faults or undefined behavior.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Current evaluation tree node being checked </td></tr>
|
|
<tr><td class="paramname">mapSize</td><td>Number of available map entries </td></tr>
|
|
<tr><td class="paramname">paramSize</td><td>Number of available fit parameters </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if this node and all descendants have valid references, false otherwise </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00419">419</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00103">func_tree_node::children</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00093">PFunctionGrammar::constEnergyID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00092">PFunctionGrammar::constFieldID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00091">PFunctionGrammar::constGammaMuID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00090">PFunctionGrammar::constPiID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00094">PFunctionGrammar::constTempID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00102">PFunctionGrammar::expressionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00100">PFunctionGrammar::factorID</a>, <a class="el" href="PFunction_8h_source.html#l00097">func_tree_node::fID</a>, <a class="el" href="PFunction_8cpp_source.html#l00419">FindAndCheckMapAndParamRange()</a>, <a class="el" href="PFunction_8h_source.html#l00100">func_tree_node::fIvalue</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00098">PFunctionGrammar::functionID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00097">PFunctionGrammar::mapID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00096">PFunctionGrammar::parameterID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00099">PFunctionGrammar::powerID</a>, <a class="el" href="PFunctionGrammar_8h_source.html#l00089">PFunctionGrammar::realID</a>, and <a class="el" href="PFunctionGrammar_8h_source.html#l00101">PFunctionGrammar::termID</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00395">CheckMapAndParamRange()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00419">FindAndCheckMapAndParamRange()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aaf412e496f0f762aa08ce80b6b228499" name="aaf412e496f0f762aa08ce80b6b228499"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaf412e496f0f762aa08ce80b6b228499">◆ </a></span>GenerateFuncEvalTree()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Bool_t PFunction::GenerateFuncEvalTree </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initiates the conversion from AST to evaluation tree. </p>
|
|
<p>Initiates conversion of AST to evaluation tree.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if successful, false otherwise</dd></dl>
|
|
<p>This function initializes the root node and triggers the recursive conversion process. The evaluation tree is a more efficient representation than the AST for repeated function evaluations during fitting.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>true (currently always successful)</dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ab7afbaea18c8dcac4853cf2a906f48d1" title="Recursively builds the evaluation tree from the AST.">FillFuncEvalTree</a> for the recursive conversion algorithm </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00178">178</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00276">fFunc</a>, <a class="el" href="PFunction_8cpp_source.html#l00208">FillFuncEvalTree()</a>, <a class="el" href="PFunction_8h_source.html#l00273">fInfo</a>, and <a class="el" href="PFunction_8cpp_source.html#l00116">InitNode()</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00072">PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2aa767fc5e642fbbf4926289594f5a8f" name="a2aa767fc5e642fbbf4926289594f5a8f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2aa767fc5e642fbbf4926289594f5a8f">◆ </a></span>GetFuncNo()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual Int_t PFunction::GetFuncNo </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the function number extracted from the function label. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>Function number (x from FUNx), or -1 if invalid </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00161">161</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00279">fFuncNo</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a13c31d1e38013f2a4d92372af0bc3156" name="a13c31d1e38013f2a4d92372af0bc3156"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a13c31d1e38013f2a4d92372af0bc3156">◆ </a></span>GetFuncString()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual TString * PFunction::GetFuncString </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the human-readable string representation of the function. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to formatted function string </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00200">200</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00298">fFuncString</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aff9f899466471781a81a98853e4edb81" name="aff9f899466471781a81a98853e4edb81"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aff9f899466471781a81a98853e4edb81">◆ </a></span>InitNode()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void PFunction::InitNode </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> &</td> <td class="paramname"><span class="paramname"><em>node</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initializes all fields of an evaluation tree node to default values. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>Node to initialize</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Initializes the node of the evaluation function tree.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">node</td><td>to be initialized </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00116">116</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00102">func_tree_node::fDvalue</a>, <a class="el" href="PFunction_8h_source.html#l00099">func_tree_node::fFunctionTag</a>, <a class="el" href="PFunction_8h_source.html#l00097">func_tree_node::fID</a>, <a class="el" href="PFunction_8h_source.html#l00100">func_tree_node::fIvalue</a>, <a class="el" href="PFunction_8h_source.html#l00098">func_tree_node::fOperatorTag</a>, and <a class="el" href="PFunction_8h_source.html#l00101">func_tree_node::fSign</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00208">FillFuncEvalTree()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00178">GenerateFuncEvalTree()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1bb132f2f34fa694e383fcd9007ca5ee" name="a1bb132f2f34fa694e383fcd9007ca5ee"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1bb132f2f34fa694e383fcd9007ca5ee">◆ </a></span>IsValid()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual Bool_t PFunction::IsValid </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Checks if the function was successfully parsed and initialized. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if the function is valid, false otherwise </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00153">153</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00278">fValid</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adcef1afc8e5dcf15f1d1b556eb94876b" name="adcef1afc8e5dcf15f1d1b556eb94876b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adcef1afc8e5dcf15f1d1b556eb94876b">◆ </a></span>SetFuncNo()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Bool_t PFunction::SetFuncNo </td>
|
|
<td>(</td>
|
|
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Extracts the function number from the AST. </p>
|
|
<p>Extracts the function number from the AST tree.</p>
|
|
<p>Parses the function label (FUN#) to extract the numeric identifier.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if successful, false otherwise</dd></dl>
|
|
<p>Navigates to the function label node in the AST and parses the numeric identifier from the "FUNx" label. For example, "FUN3" yields 3.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if the function number was successfully extracted, false otherwise</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The function number is stored in the member variable fFuncNo </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8cpp_source.html#l00139">139</a> of file <a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00279">fFuncNo</a>, <a class="el" href="PFunction_8h_source.html#l00273">fInfo</a>, and <a class="el" href="PStartupHandler_8cpp_source.html#l00106">status</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00072">PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9b1368054630cd5b0934d1918f8c484d" name="a9b1368054630cd5b0934d1918f8c484d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9b1368054630cd5b0934d1918f8c484d">◆ </a></span>SetMap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">virtual void PFunction::SetMap </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::vector< Int_t ></td> <td class="paramname"><span class="paramname"><em>map</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel virtual">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the map vector for parameter indirection. </p>
|
|
<p>Maps allow indirect parameter references. MAP# references fMap[#-1], which then indexes into the parameter vector.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">map</td><td>Vector of parameter indices (1-based) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00192">192</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="PFunction_8h_source.html#l00275">fMap</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="a4772da14485b37086dba588a3e8b49cd" name="a4772da14485b37086dba588a3e8b49cd"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4772da14485b37086dba588a3e8b49cd">◆ </a></span>fFunc</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="PFunction_8h.html#adad7fab19d2366e476098872e973f5e0">PFuncTreeNode</a> PFunction::fFunc</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Root node of the evaluation tree. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00276">276</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00395">CheckMapAndParamRange()</a>, <a class="el" href="PFunction_8cpp_source.html#l00668">CleanupFuncEvalTree()</a>, <a class="el" href="PFunction_8cpp_source.html#l00495">Eval()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00178">GenerateFuncEvalTree()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2204cf0fa5b66e03634928a753d293a6" name="a2204cf0fa5b66e03634928a753d293a6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2204cf0fa5b66e03634928a753d293a6">◆ </a></span>fFuncNo</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Int_t PFunction::fFuncNo</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Function number extracted from label (x in FUNx) </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00279">279</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8h_source.html#l00161">GetFuncNo()</a>, <a class="el" href="PFunction_8cpp_source.html#l00072">PFunction()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00139">SetFuncNo()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a94f0732e367ff6066a53b2189397478b" name="a94f0732e367ff6066a53b2189397478b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a94f0732e367ff6066a53b2189397478b">◆ </a></span>fFuncString</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">TString PFunction::fFuncString</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Formatted, human-readable function representation. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00298">298</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>, <a class="el" href="PFunction_8cpp_source.html#l00710">EvalTreeForString()</a>, <a class="el" href="PFunction_8cpp_source.html#l00739">EvalTreeForStringExpression()</a>, and <a class="el" href="PFunction_8h_source.html#l00200">GetFuncString()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aaabed7ce5a93857c6480bbe975830e3b" name="aaabed7ce5a93857c6480bbe975830e3b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaabed7ce5a93857c6480bbe975830e3b">◆ </a></span>fInfo</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">tree_parse_info PFunction::fInfo</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>AST parse tree from Boost.Spirit parser. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00273">273</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00178">GenerateFuncEvalTree()</a>, <a class="el" href="PFunction_8cpp_source.html#l00072">PFunction()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00139">SetFuncNo()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af80edee8699b8666c77336c0e2a46baa" name="af80edee8699b8666c77336c0e2a46baa"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af80edee8699b8666c77336c0e2a46baa">◆ </a></span>fMap</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::vector<Int_t> PFunction::fMap</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Map vector for indirect parameter references. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00275">275</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>, <a class="el" href="PFunction_8h_source.html#l00192">SetMap()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00100">~PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1a5c27e1bb628cd40dcac1157fe1a29b" name="a1a5c27e1bb628cd40dcac1157fe1a29b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1a5c27e1bb628cd40dcac1157fe1a29b">◆ </a></span>fMetaData</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structPMetaData.html">PMetaData</a> PFunction::fMetaData</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Metadata from experimental data (field, energy, temperature, etc.) </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00300">300</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00495">Eval()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad357729df47ef5d2fcd78652f56ba0bf" name="ad357729df47ef5d2fcd78652f56ba0bf"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad357729df47ef5d2fcd78652f56ba0bf">◆ </a></span>fParam</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::vector<Double_t> PFunction::fParam</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Current fit parameter values for evaluation. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00274">274</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8cpp_source.html#l00495">Eval()</a>, <a class="el" href="PFunction_8cpp_source.html#l00529">EvalNode()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00100">~PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a323a06e5b4e7673d0fde120c0dc1a6ac" name="a323a06e5b4e7673d0fde120c0dc1a6ac"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a323a06e5b4e7673d0fde120c0dc1a6ac">◆ </a></span>fValid</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">Bool_t PFunction::fValid</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Validity flag: true if function parsed and initialized successfully. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="PFunction_8h_source.html#l00278">278</a> of file <a class="el" href="PFunction_8h_source.html">PFunction.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="PFunction_8h_source.html#l00153">IsValid()</a>, and <a class="el" href="PFunction_8cpp_source.html#l00072">PFunction()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>/workspace/LMU/musrfit/src/include/<a class="el" href="PFunction_8h_source.html">PFunction.h</a></li>
|
|
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PFunction_8cpp_source.html">PFunction.cpp</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="classPFunction.html">PFunction</a></li>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|