namespace po = boost::program_options;
+std::vector<Real> calcDists( const vector<Factor> &x, const vector<Factor> &y ) {
+ vector<Real> errs;
+ errs.reserve( x.size() );
+ DAI_ASSERT( x.size() == y.size() );
+ for( size_t i = 0; i < x.size(); i++ )
+ errs.push_back( dist( x[i], y[i], DISTTV ) );
+ return errs;
+}
+
+
/// Wrapper class for DAI approximate inference algorithms
class TestDAI {
protected:
/// Stores the name of the InfAlg algorithm
string name;
/// Stores the total variation distances of the variable marginals
- vector<Real> err;
+ vector<Real> varErr;
+ /// Stores the total variation distances of the factor marginals
+ vector<Real> facErr;
public:
/// Stores the variable marginals
vector<Factor> varMarginals;
+ /// Stores the factor marginals
+ vector<Factor> facMarginals;
/// Stores all marginals
vector<Factor> allMarginals;
/// Stores the logarithm of the partition sum
bool has_iters;
/// Construct from factor graph \a fg, name \a _name, and set of properties \a opts
- TestDAI( const FactorGraph &fg, const string &_name, const PropertySet &opts ) : obj(NULL), name(_name), err(), varMarginals(), allMarginals(), logZ(0.0), maxdiff(0.0), time(0), iters(0U), has_logZ(false), has_maxdiff(false), has_iters(false) {
+ TestDAI( const FactorGraph &fg, const string &_name, const PropertySet &opts ) : obj(NULL), name(_name), varErr(), facErr(), varMarginals(), facMarginals(), allMarginals(), logZ(0.0), maxdiff(0.0), time(0), iters(0U), has_logZ(false), has_maxdiff(false), has_iters(false) {
double tic = toc();
if( name == "LDPC" ) {
for( size_t i = 0; i < obj->fg().nrVars(); i++ )
varMarginals.push_back( obj->beliefV( i ) );
+ // Store factor marginals
+ facMarginals.clear();
+ for( size_t I = 0; I < obj->fg().nrFactors(); I++ )
+ try {
+ facMarginals.push_back( obj->beliefF( I ) );
+ } catch( Exception &e ) {
+ if( e.code() == Exception::BELIEF_NOT_AVAILABLE )
+ facMarginals.push_back( Factor( obj->fg().factor(I).vars(), INFINITY ) );
+ else
+ throw;
+ }
+
// Store all marginals calculated by the method
allMarginals = obj->beliefs();
};
}
- /// Calculate total variation distance of variable marginals with respect to those in \a x
- void calcErrs( const TestDAI &x ) {
- err.clear();
- err.reserve( varMarginals.size() );
- for( size_t i = 0; i < varMarginals.size(); i++ )
- err.push_back( dist( varMarginals[i], x.varMarginals[i], DISTTV ) );
+ /// Calculate total variation distance of variable and factor marginals with respect to those in \a varMargs and \a facMargs
+ void calcErrors( const vector<Factor>& varMargs, const vector<Factor>& facMargs ) {
+ varErr = calcDists( varMarginals, varMargs );
+ facErr = calcDists( facMarginals, facMargs );
+ }
+
+ /// Return maximum variable error
+ Real maxVarErr() {
+ return( *max_element( varErr.begin(), varErr.end() ) );
}
- /// Calculate total variation distance of variable marginals with respect to those in \a x
- void calcErrs( const vector<Factor> &x ) {
- err.clear();
- err.reserve( varMarginals.size() );
- for( size_t i = 0; i < varMarginals.size(); i++ )
- err.push_back( dist( varMarginals[i], x[i], DISTTV ) );
+ /// Return average variable error
+ Real avgVarErr() {
+ return( accumulate( varErr.begin(), varErr.end(), 0.0 ) / varErr.size() );
}
- /// Return maximum error
- Real maxErr() {
- return( *max_element( err.begin(), err.end() ) );
+ /// Return maximum factor error
+ Real maxFacErr() {
+ return( *max_element( facErr.begin(), facErr.end() ) );
}
- /// Return average error
- Real avgErr() {
- return( accumulate( err.begin(), err.end(), 0.0 ) / err.size() );
+ /// Return average factor error
+ Real avgFacErr() {
+ return( accumulate( facErr.begin(), facErr.end(), 0.0 ) / facErr.size() );
}
};
}
-/// Whether to output no marginals, only variable marginals, or all calculated marginals
-DAI_ENUM(MarginalsOutputType,NONE,VAR,ALL);
+/// Which marginals to outpu (none, only variable, only factor, variable and factor, all)
+DAI_ENUM(MarginalsOutputType,NONE,VAR,FAC,VARFAC,ALL);
/// Main function
opts_optional.add_options()
("help", "Produce help message")
("aliases", po::value< string >(&aliases), "Filename for aliases")
- ("marginals", po::value< MarginalsOutputType >(&marginals), "Output marginals? (NONE/VAR/ALL, default=NONE)")
+ ("marginals", po::value< MarginalsOutputType >(&marginals), "Output marginals? (NONE/VAR/FAC/VARFAC/ALL, default=NONE)")
("report-time", po::value< bool >(&report_time), "Output calculation time (default==1)?")
("report-iters", po::value< bool >(&report_iters), "Output iterations needed (default==1)?")
;
cout << " o the number of iterations needed (if report-iters == 1);" << endl;
cout << " o the maximum (over all variables) total variation error in the variable marginals;" << endl;
cout << " o the average (over all variables) total variation error in the variable marginals;" << endl;
+ cout << " o the maximum (over all factors) total variation error in the factor marginals;" << endl;
+ cout << " o the average (over all factors) total variation error in the factor marginals;" << endl;
cout << " o the error (difference) of the logarithm of the partition sums;" << endl << endl;
cout << "All errors are calculated by comparing the results of the current method with" << endl;
cout << "the results of the first method (the base method). If marginals==VAR, additional" << endl;
- cout << "output consists of the variable marginals, and if marginals==ALL, all marginals" << endl;
- cout << "calculated by the method are reported." << endl << endl;
+ cout << "output consists of the variable marginals, if marginals==FAC, the factor marginals" << endl;
+ cout << "if marginals==VARFAC, both variable and factor marginals, and if marginals==ALL, all" << endl;
+ cout << "marginals calculated by the method are reported." << endl << endl;
cout << "<method*> should be a list of one or more methods, seperated by spaces, in the format:" << endl << endl;
cout << " name[key1=val1,key2=val2,key3=val3,...,keyn=valn]" << endl << endl;
cout << "where name should be the name of an algorithm in libDAI (or an alias, if an alias" << endl;
FactorGraph fg;
fg.ReadFromFile( filename.c_str() );
- // Declare variables used for storing variable marginals and log partition sum of base method
+ // Declare variables used for storing variable factor marginals and log partition sum of base method
vector<Factor> varMarginals0;
+ vector<Factor> facMarginals0;
Real logZ0 = 0.0;
// Output header
cout << right << "SECONDS " << "\t";
if( report_iters )
cout << "ITERS" << "\t";
- cout << "MAX ERROR" << "\t";
- cout << "AVG ERROR" << "\t";
+ cout << "MAX VAR ERR" << "\t";
+ cout << "AVG VAR ERR" << "\t";
+ cout << "MAX FAC ERR" << "\t";
+ cout << "AVG FAC ERR" << "\t";
cout << "LOGZ ERROR" << "\t";
cout << "MAXDIFF" << "\t";
cout << endl;
// For the base method, store its variable marginals and logarithm of the partition sum
if( m == 0 ) {
varMarginals0 = testdai.varMarginals;
+ facMarginals0 = testdai.facMarginals;
logZ0 = testdai.logZ;
}
// Calculate errors relative to base method
- testdai.calcErrs( varMarginals0 );
+ testdai.calcErrors( varMarginals0, facMarginals0 );
// Output method name
cout.width( 39 );
cout.precision( 3 );
// Output maximum error in variable marginals
- Real me = clipReal( testdai.maxErr(), 1e-9 );
- cout << me << "\t";
+ Real mev = clipReal( testdai.maxVarErr(), 1e-9 );
+ cout << mev << "\t";
// Output average error in variable marginals
- Real ae = clipReal( testdai.avgErr(), 1e-9 );
- cout << ae << "\t";
+ Real aev = clipReal( testdai.avgVarErr(), 1e-9 );
+ cout << aev << "\t";
+
+ // Output maximum error in factor marginals
+ Real mef = clipReal( testdai.maxFacErr(), 1e-9 );
+ if( mef == INFINITY )
+ cout << "N/A \t";
+ else
+ cout << mef << "\t";
+
+ // Output average error in factor marginals
+ Real aef = clipReal( testdai.avgFacErr(), 1e-9 );
+ if( aef == INFINITY )
+ cout << "N/A \t";
+ else
+ cout << aef << "\t";
// Output error in log partition sum
if( testdai.has_logZ ) {
// Output maximum difference in last iteration
if( testdai.has_maxdiff ) {
Real md = clipReal( testdai.maxdiff, 1e-9 );
- if( isnan( me ) )
- md = me;
- if( isnan( ae ) )
- md = ae;
+ if( isnan( mev ) )
+ md = mev;
+ if( isnan( aev ) )
+ md = aev;
if( md == INFINITY )
md = 1.0;
cout << md << "\t";
cout << endl;
// Output marginals, if requested
- if( marginals == MarginalsOutputType::VAR ) {
+ if( marginals == MarginalsOutputType::VAR || marginals == MarginalsOutputType::VARFAC )
for( size_t i = 0; i < testdai.varMarginals.size(); i++ )
cout << "# " << testdai.varMarginals[i] << endl;
- } else if( marginals == MarginalsOutputType::ALL ) {
+ if( marginals == MarginalsOutputType::FAC || marginals == MarginalsOutputType::VARFAC )
+ for( size_t I = 0; I < testdai.facMarginals.size(); I++ )
+ cout << "# " << testdai.facMarginals[I] << endl;
+ if( marginals == MarginalsOutputType::ALL )
for( size_t I = 0; I < testdai.allMarginals.size(); I++ )
cout << "# " << testdai.allMarginals[I] << endl;
- }
}
return 0;
# testfast.fg
-# METHOD MAX ERROR AVG ERROR LOGZ ERROR MAXDIFF
+# METHOD MAX VAR ERR AVG VAR ERR MAX FAC ERR AVG FAC ERR LOGZ ERROR MAXDIFF
EXACT
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.556e-01, 4.444e-01))
# ({x13}, (5.348e-01, 4.652e-01))
# ({x14}, (6.291e-01, 3.709e-01))
# ({x15}, (1.357e-01, 8.643e-01))
-JTREE_HUGIN 1.000e-09 1.000e-09 +1.000e-09 1.000e-09
+JTREE_HUGIN 1.000e-09 1.000e-09 1.000e-09 1.000e-09 +1.000e-09 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.556e-01, 4.444e-01))
# ({x2}, (4.587e-01, 5.413e-01))
# ({x13}, (5.348e-01, 4.652e-01))
# ({x14}, (6.291e-01, 3.709e-01))
# ({x15}, (1.357e-01, 8.643e-01))
-JTREE_SHSH 1.000e-09 1.000e-09 +1.000e-09 1.000e-09
+JTREE_SHSH 1.000e-09 1.000e-09 1.000e-09 1.000e-09 +1.000e-09 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.556e-01, 4.444e-01))
# ({x2}, (4.587e-01, 5.413e-01))
# ({x13}, (5.348e-01, 4.652e-01))
# ({x14}, (6.291e-01, 3.709e-01))
# ({x15}, (1.357e-01, 8.643e-01))
-BP_SEQFIX 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_SEQFIX 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_SEQRND 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_SEQRND 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_SEQMAX 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_SEQMAX 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_PARALL 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_PARALL 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_SEQFIX_LOG 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_SEQFIX_LOG 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_SEQRND_LOG 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_SEQRND_LOG 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_SEQMAX_LOG 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_SEQMAX_LOG 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BP_PARALL_LOG 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+BP_PARALL_LOG 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-FBP 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+FBP 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-TRWBP 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+TRWBP 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-MF_SEQRND 3.607e-01 1.904e-01 -1.608e+00 1.000e-09
+MF_SEQRND 3.607e-01 1.904e-01 N/A N/A -1.608e+00 1.000e-09
# ({x0}, (2.053e-01, 7.947e-01))
# ({x1}, (9.163e-01, 8.373e-02))
# ({x2}, (1.579e-01, 8.421e-01))
# ({x13}, (8.148e-01, 1.852e-01))
# ({x14}, (8.338e-01, 1.662e-01))
# ({x15}, (5.661e-03, 9.943e-01))
-TREEEP 3.268e-02 8.023e-03 +1.084e-02 1.000e-09
+TREEEP 3.268e-02 8.023e-03 N/A N/A +1.084e-02 1.000e-09
# ({x0}, (3.980e-01, 6.020e-01))
# ({x1}, (5.520e-01, 4.480e-01))
# ({x2}, (4.620e-01, 5.380e-01))
# ({x13}, (5.293e-01, 4.707e-01))
# ({x14}, (6.409e-01, 3.591e-01))
# ({x15}, (1.364e-01, 8.636e-01))
-TREEEPWC 2.356e-02 1.026e-02 +8.334e-02 1.000e-09
+TREEEPWC 2.356e-02 1.026e-02 N/A N/A +8.334e-02 1.000e-09
# ({x0}, (4.091e-01, 5.909e-01))
# ({x1}, (5.429e-01, 4.571e-01))
# ({x2}, (4.697e-01, 5.303e-01))
# ({x13}, (5.298e-01, 4.702e-01))
# ({x14}, (6.299e-01, 3.701e-01))
# ({x15}, (1.384e-01, 8.616e-01))
-GBP_MIN 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+GBP_MIN 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-GBP_BETHE 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+GBP_BETHE 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-GBP_DELTA 6.291e-01 3.350e-01 -5.645e+00 1.000e-09
+GBP_DELTA 6.291e-01 3.350e-01 8.273e-01 4.628e-01 -5.645e+00 1.000e-09
# ({x0}, (0.000e+00, 1.000e+00))
# ({x1}, (1.000e+00, 0.000e+00))
# ({x2}, (0.000e+00, 1.000e+00))
# ({x13}, (0.000e+00, 1.000e+00))
# ({x14}, (0.000e+00, 1.000e+00))
# ({x15}, (0.000e+00, 1.000e+00))
-GBP_LOOP3 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+GBP_LOOP3 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-GBP_LOOP4 7.893e-01 3.728e-01 -9.954e+00 1.000e-09
+GBP_LOOP4 7.893e-01 3.728e-01 9.324e-01 5.220e-01 -9.954e+00 1.000e-09
# ({x0}, (0.000e+00, 1.000e+00))
# ({x1}, (1.000e+00, 0.000e+00))
# ({x2}, (0.000e+00, 1.000e+00))
# ({x13}, (1.000e+00, 0.000e+00))
# ({x14}, (0.000e+00, 1.000e+00))
# ({x15}, (0.000e+00, 1.000e+00))
-GBP_LOOP5 7.893e-01 3.728e-01 -9.954e+00 1.000e-09
+GBP_LOOP5 7.893e-01 3.728e-01 9.324e-01 5.220e-01 -9.954e+00 1.000e-09
# ({x0}, (0.000e+00, 1.000e+00))
# ({x1}, (1.000e+00, 0.000e+00))
# ({x2}, (0.000e+00, 1.000e+00))
# ({x13}, (1.000e+00, 0.000e+00))
# ({x14}, (0.000e+00, 1.000e+00))
# ({x15}, (0.000e+00, 1.000e+00))
-GBP_LOOP6 7.948e-01 4.458e-01 -7.000e+00 1.000e-09
+GBP_LOOP6 7.948e-01 4.458e-01 9.321e-01 5.838e-01 -7.000e+00 1.000e-09
# ({x0}, (1.000e+00, 0.000e+00))
# ({x1}, (0.000e+00, 1.000e+00))
# ({x2}, (1.000e+00, 0.000e+00))
# ({x13}, (1.000e+00, 0.000e+00))
# ({x14}, (0.000e+00, 1.000e+00))
# ({x15}, (0.000e+00, 1.000e+00))
-GBP_LOOP7 7.948e-01 4.458e-01 -7.000e+00 1.000e-09
+GBP_LOOP7 7.948e-01 4.458e-01 9.321e-01 5.838e-01 -7.000e+00 1.000e-09
# ({x0}, (1.000e+00, 0.000e+00))
# ({x1}, (0.000e+00, 1.000e+00))
# ({x2}, (1.000e+00, 0.000e+00))
# ({x13}, (1.000e+00, 0.000e+00))
# ({x14}, (0.000e+00, 1.000e+00))
# ({x15}, (0.000e+00, 1.000e+00))
-HAK_MIN 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+HAK_MIN 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-HAK_BETHE 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+HAK_BETHE 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-HAK_DELTA 3.684e-01 1.892e-01 +1.654e+01 1.000e-09
+HAK_DELTA 3.684e-01 1.892e-01 8.157e-01 3.459e-01 +1.654e+01 1.000e-09
# ({x0}, (4.902e-01, 5.098e-01))
# ({x1}, (5.098e-01, 4.902e-01))
# ({x2}, (4.902e-01, 5.098e-01))
# ({x13}, (5.098e-01, 4.902e-01))
# ({x14}, (5.098e-01, 4.902e-01))
# ({x15}, (4.902e-01, 5.098e-01))
-HAK_LOOP3 9.483e-02 3.078e-02 +2.969e-01 1.000e-09
+HAK_LOOP3 9.483e-02 3.078e-02 1.308e-01 4.806e-02 +2.969e-01 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-HAK_LOOP4 4.970e-03 1.486e-03 -4.277e-03 1.000e-09
+HAK_LOOP4 4.970e-03 1.486e-03 8.511e-03 2.899e-03 -4.277e-03 1.000e-09
# ({x0}, (3.909e-01, 6.091e-01))
# ({x1}, (5.556e-01, 4.444e-01))
# ({x2}, (4.585e-01, 5.415e-01))
# ({x13}, (5.351e-01, 4.649e-01))
# ({x14}, (6.319e-01, 3.681e-01))
# ({x15}, (1.307e-01, 8.693e-01))
-HAK_LOOP5 4.970e-03 1.486e-03 -4.277e-03 1.000e-09
+HAK_LOOP5 4.970e-03 1.486e-03 8.511e-03 2.899e-03 -4.277e-03 1.000e-09
# ({x0}, (3.909e-01, 6.091e-01))
# ({x1}, (5.556e-01, 4.444e-01))
# ({x2}, (4.585e-01, 5.415e-01))
# ({x13}, (5.351e-01, 4.649e-01))
# ({x14}, (6.319e-01, 3.681e-01))
# ({x15}, (1.307e-01, 8.693e-01))
-MR_RESPPROP_FULL 1.676e-02 4.933e-03 N/A 1.000e-09
+MR_RESPPROP_FULL 1.676e-02 4.933e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.941e-01, 6.059e-01))
# ({x1}, (5.534e-01, 4.466e-01))
# ({x2}, (4.602e-01, 5.398e-01))
# ({x13}, (5.407e-01, 4.593e-01))
# ({x14}, (6.252e-01, 3.748e-01))
# ({x15}, (1.346e-01, 8.654e-01))
-MR_CLAMPING_FULL 6.060e-03 1.754e-03 N/A 1.000e-09
+MR_CLAMPING_FULL 6.060e-03 1.754e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.872e-01, 6.128e-01))
# ({x1}, (5.585e-01, 4.415e-01))
# ({x2}, (4.575e-01, 5.425e-01))
# ({x13}, (5.409e-01, 4.591e-01))
# ({x14}, (6.292e-01, 3.708e-01))
# ({x15}, (1.338e-01, 8.662e-01))
-MR_EXACT_FULL 3.527e-03 1.038e-03 N/A 1.000e-09
+MR_EXACT_FULL 3.527e-03 1.038e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.867e-01, 6.133e-01))
# ({x1}, (5.572e-01, 4.428e-01))
# ({x2}, (4.585e-01, 5.415e-01))
# ({x13}, (5.384e-01, 4.616e-01))
# ({x14}, (6.296e-01, 3.704e-01))
# ({x15}, (1.344e-01, 8.656e-01))
-MR_RESPPROP_LINEAR 1.932e-02 5.506e-03 N/A 1.000e-09
+MR_RESPPROP_LINEAR 1.932e-02 5.506e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.923e-01, 6.077e-01))
# ({x1}, (5.529e-01, 4.471e-01))
# ({x2}, (4.608e-01, 5.392e-01))
# ({x13}, (5.388e-01, 4.612e-01))
# ({x14}, (6.239e-01, 3.761e-01))
# ({x15}, (1.369e-01, 8.631e-01))
-MR_CLAMPING_LINEAR 5.992e-03 1.960e-03 N/A 1.000e-09
+MR_CLAMPING_LINEAR 5.992e-03 1.960e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.856e-01, 6.144e-01))
# ({x1}, (5.573e-01, 4.427e-01))
# ({x2}, (4.586e-01, 5.414e-01))
# ({x13}, (5.388e-01, 4.612e-01))
# ({x14}, (6.275e-01, 3.725e-01))
# ({x15}, (1.366e-01, 8.634e-01))
-MR_EXACT_LINEAR 5.617e-03 1.742e-03 N/A 1.000e-09
+MR_EXACT_LINEAR 5.617e-03 1.742e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.853e-01, 6.147e-01))
# ({x1}, (5.560e-01, 4.440e-01))
# ({x2}, (4.596e-01, 5.404e-01))
# ({x13}, (5.362e-01, 4.638e-01))
# ({x14}, (6.279e-01, 3.721e-01))
# ({x15}, (1.372e-01, 8.628e-01))
-LCBP_FULLCAV_SEQFIX 1.225e-03 5.589e-04 N/A 1.000e-09
+LCBP_FULLCAV_SEQFIX 1.225e-03 5.589e-04 N/A N/A N/A 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.559e-01, 4.441e-01))
# ({x2}, (4.583e-01, 5.417e-01))
# ({x13}, (5.358e-01, 4.642e-01))
# ({x14}, (6.285e-01, 3.715e-01))
# ({x15}, (1.359e-01, 8.641e-01))
-LCBP_FULLCAVin_SEQFIX 1.225e-03 5.589e-04 N/A 1.000e-09
+LCBP_FULLCAVin_SEQFIX 1.225e-03 5.589e-04 N/A N/A N/A 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.559e-01, 4.441e-01))
# ({x2}, (4.583e-01, 5.417e-01))
# ({x13}, (5.358e-01, 4.642e-01))
# ({x14}, (6.285e-01, 3.715e-01))
# ({x15}, (1.359e-01, 8.641e-01))
-LCBP_FULLCAV_SEQRND 1.225e-03 5.589e-04 N/A 1.000e-09
+LCBP_FULLCAV_SEQRND 1.225e-03 5.589e-04 N/A N/A N/A 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.559e-01, 4.441e-01))
# ({x2}, (4.583e-01, 5.417e-01))
# ({x13}, (5.358e-01, 4.642e-01))
# ({x14}, (6.285e-01, 3.715e-01))
# ({x15}, (1.359e-01, 8.641e-01))
-LCBP_FULLCAVin_SEQRND 1.225e-03 5.589e-04 N/A 1.000e-09
+LCBP_FULLCAVin_SEQRND 1.225e-03 5.589e-04 N/A N/A N/A 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.559e-01, 4.441e-01))
# ({x2}, (4.583e-01, 5.417e-01))
# ({x13}, (5.358e-01, 4.642e-01))
# ({x14}, (6.285e-01, 3.715e-01))
# ({x15}, (1.359e-01, 8.641e-01))
-LCBP_FULLCAV_NONE 1.318e-02 2.644e-03 N/A 1.000e+00
+LCBP_FULLCAV_NONE 1.318e-02 2.644e-03 N/A N/A N/A 1.000e+00
# ({x0}, (3.859e-01, 6.141e-01))
# ({x1}, (5.569e-01, 4.431e-01))
# ({x2}, (4.719e-01, 5.281e-01))
# ({x13}, (5.350e-01, 4.650e-01))
# ({x14}, (6.290e-01, 3.710e-01))
# ({x15}, (1.364e-01, 8.636e-01))
-LCBP_FULLCAVin_NONE 1.318e-02 2.644e-03 N/A 1.000e+00
+LCBP_FULLCAVin_NONE 1.318e-02 2.644e-03 N/A N/A N/A 1.000e+00
# ({x0}, (3.859e-01, 6.141e-01))
# ({x1}, (5.569e-01, 4.431e-01))
# ({x2}, (4.719e-01, 5.281e-01))
# ({x13}, (5.350e-01, 4.650e-01))
# ({x14}, (6.290e-01, 3.710e-01))
# ({x15}, (1.364e-01, 8.636e-01))
-LCBP_PAIRCAV_SEQFIX 1.564e-02 5.284e-03 N/A 1.000e-09
+LCBP_PAIRCAV_SEQFIX 1.564e-02 5.284e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.872e-01, 6.128e-01))
# ({x1}, (5.540e-01, 4.460e-01))
# ({x2}, (4.596e-01, 5.404e-01))
# ({x13}, (5.282e-01, 4.718e-01))
# ({x14}, (6.240e-01, 3.760e-01))
# ({x15}, (1.409e-01, 8.591e-01))
-LCBP_PAIRCAVin_SEQFIX 1.564e-02 5.284e-03 N/A 1.000e-09
+LCBP_PAIRCAVin_SEQFIX 1.564e-02 5.284e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.872e-01, 6.128e-01))
# ({x1}, (5.540e-01, 4.460e-01))
# ({x2}, (4.596e-01, 5.404e-01))
# ({x13}, (5.282e-01, 4.718e-01))
# ({x14}, (6.240e-01, 3.760e-01))
# ({x15}, (1.409e-01, 8.591e-01))
-LCBP_PAIRCAV_SEQRND 1.564e-02 5.284e-03 N/A 1.000e-09
+LCBP_PAIRCAV_SEQRND 1.564e-02 5.284e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.872e-01, 6.128e-01))
# ({x1}, (5.540e-01, 4.460e-01))
# ({x2}, (4.596e-01, 5.404e-01))
# ({x13}, (5.282e-01, 4.718e-01))
# ({x14}, (6.240e-01, 3.760e-01))
# ({x15}, (1.409e-01, 8.591e-01))
-LCBP_PAIRCAVin_SEQRND 1.564e-02 5.284e-03 N/A 1.000e-09
+LCBP_PAIRCAVin_SEQRND 1.564e-02 5.284e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.872e-01, 6.128e-01))
# ({x1}, (5.540e-01, 4.460e-01))
# ({x2}, (4.596e-01, 5.404e-01))
# ({x13}, (5.282e-01, 4.718e-01))
# ({x14}, (6.240e-01, 3.760e-01))
# ({x15}, (1.409e-01, 8.591e-01))
-LCBP_PAIRCAV_NONE 1.869e-01 6.816e-02 N/A 1.000e+00
+LCBP_PAIRCAV_NONE 1.869e-01 6.816e-02 N/A N/A N/A 1.000e+00
# ({x0}, (3.558e-01, 6.442e-01))
# ({x1}, (5.320e-01, 4.680e-01))
# ({x2}, (4.581e-01, 5.419e-01))
# ({x13}, (6.323e-01, 3.677e-01))
# ({x14}, (8.161e-01, 1.839e-01))
# ({x15}, (1.676e-01, 8.324e-01))
-LCBP_PAIRCAVin_NONE 1.869e-01 6.816e-02 N/A 1.000e+00
+LCBP_PAIRCAVin_NONE 1.869e-01 6.816e-02 N/A N/A N/A 1.000e+00
# ({x0}, (3.558e-01, 6.442e-01))
# ({x1}, (5.320e-01, 4.680e-01))
# ({x2}, (4.581e-01, 5.419e-01))
# ({x13}, (6.323e-01, 3.677e-01))
# ({x14}, (8.161e-01, 1.839e-01))
# ({x15}, (1.676e-01, 8.324e-01))
-LCBP_PAIR2CAV_SEQFIX 1.535e-02 4.445e-03 N/A 1.000e-09
+LCBP_PAIR2CAV_SEQFIX 1.535e-02 4.445e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.844e-01, 6.156e-01))
# ({x1}, (5.557e-01, 4.443e-01))
# ({x2}, (4.588e-01, 5.412e-01))
# ({x13}, (5.280e-01, 4.720e-01))
# ({x14}, (6.250e-01, 3.750e-01))
# ({x15}, (1.411e-01, 8.589e-01))
-LCBP_PAIR2CAVin_SEQFIX 1.535e-02 4.445e-03 N/A 1.000e-09
+LCBP_PAIR2CAVin_SEQFIX 1.535e-02 4.445e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.844e-01, 6.156e-01))
# ({x1}, (5.557e-01, 4.443e-01))
# ({x2}, (4.588e-01, 5.412e-01))
# ({x13}, (5.280e-01, 4.720e-01))
# ({x14}, (6.250e-01, 3.750e-01))
# ({x15}, (1.411e-01, 8.589e-01))
-LCBP_PAIR2CAV_SEQRND 1.535e-02 4.445e-03 N/A 1.000e-09
+LCBP_PAIR2CAV_SEQRND 1.535e-02 4.445e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.844e-01, 6.156e-01))
# ({x1}, (5.557e-01, 4.443e-01))
# ({x2}, (4.588e-01, 5.412e-01))
# ({x13}, (5.280e-01, 4.720e-01))
# ({x14}, (6.250e-01, 3.750e-01))
# ({x15}, (1.411e-01, 8.589e-01))
-LCBP_PAIR2CAVin_SEQRND 1.535e-02 4.445e-03 N/A 1.000e-09
+LCBP_PAIR2CAVin_SEQRND 1.535e-02 4.445e-03 N/A N/A N/A 1.000e-09
# ({x0}, (3.844e-01, 6.156e-01))
# ({x1}, (5.557e-01, 4.443e-01))
# ({x2}, (4.588e-01, 5.412e-01))
# ({x13}, (5.280e-01, 4.720e-01))
# ({x14}, (6.250e-01, 3.750e-01))
# ({x15}, (1.411e-01, 8.589e-01))
-LCBP_PAIR2CAV_NONE 1.894e-01 7.196e-02 N/A 1.000e+00
+LCBP_PAIR2CAV_NONE 1.894e-01 7.196e-02 N/A N/A N/A 1.000e+00
# ({x0}, (3.525e-01, 6.475e-01))
# ({x1}, (5.395e-01, 4.605e-01))
# ({x2}, (4.567e-01, 5.433e-01))
# ({x13}, (6.444e-01, 3.556e-01))
# ({x14}, (8.185e-01, 1.815e-01))
# ({x15}, (1.841e-01, 8.159e-01))
-LCBP_PAIR2CAVin_NONE 1.894e-01 7.196e-02 N/A 1.000e+00
+LCBP_PAIR2CAVin_NONE 1.894e-01 7.196e-02 N/A N/A N/A 1.000e+00
# ({x0}, (3.525e-01, 6.475e-01))
# ({x1}, (5.395e-01, 4.605e-01))
# ({x2}, (4.567e-01, 5.433e-01))
# ({x13}, (6.444e-01, 3.556e-01))
# ({x14}, (8.185e-01, 1.815e-01))
# ({x15}, (1.841e-01, 8.159e-01))
-LCBP_UNICAV_SEQFIX 9.483e-02 3.078e-02 N/A 1.000e-09
+LCBP_UNICAV_SEQFIX 9.483e-02 3.078e-02 N/A N/A N/A 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-LCBP_UNICAV_SEQRND 9.483e-02 3.078e-02 N/A 1.000e-09
+LCBP_UNICAV_SEQRND 9.483e-02 3.078e-02 N/A N/A N/A 1.000e-09
# ({x0}, (4.233e-01, 5.767e-01))
# ({x1}, (5.422e-01, 4.578e-01))
# ({x2}, (4.662e-01, 5.338e-01))
# ({x13}, (5.266e-01, 4.734e-01))
# ({x14}, (6.033e-01, 3.967e-01))
# ({x15}, (1.558e-01, 8.442e-01))
-BBP 7.049e-04 2.319e-04 +1.209e-03 1.000e-09
+BBP 7.049e-04 2.319e-04 2.813e-03 4.214e-04 +1.209e-03 1.000e-09
# ({x0}, (3.890e-01, 6.110e-01))
# ({x1}, (5.555e-01, 4.445e-01))
# ({x2}, (4.587e-01, 5.413e-01))
# ({x13}, (5.351e-01, 4.649e-01))
# ({x14}, (6.284e-01, 3.716e-01))
# ({x15}, (1.355e-01, 8.645e-01))
-CBP 5.336e-06 2.335e-06 -6.764e-06 1.000e-09
+CBP 5.336e-06 2.335e-06 1.154e-05 3.541e-06 -6.764e-06 1.000e-09
# ({x0}, (3.888e-01, 6.112e-01))
# ({x1}, (5.556e-01, 4.444e-01))
# ({x2}, (4.587e-01, 5.413e-01))