diff --git a/Makefile b/Makefile index e3292ce..54ff177 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ endif all : $(TARGETS) echo -e "\a" -examples : examples/example$(EE) examples/example_bipgraph$(EE) +examples : examples/example$(EE) examples/example_bipgraph$(EE) examples/example_varset$(EE) matlabs : matlab/dai$(ME) matlab/dai_readfg$(ME) matlab/dai_writefg$(ME) matlab/dai_potstrength$(ME) @@ -146,7 +146,7 @@ doc : $(INC)/*.h $(SRC)/*.cpp examples/*.cpp doxygen.conf clean : -rm *$(OE) -rm matlab/*$(ME) - -rm examples/example$(EE) examples/example_bipgraph$(EE) + -rm examples/example$(EE) examples/example_bipgraph$(EE) examples/example_varset$(EE) -rm tests/testdai$(EE) -rm utils/fg2dot$(EE) utils/createfg$(EE) utils/fginfo$(EE) -rm -R doc diff --git a/Makefile.shared b/Makefile.shared index 7dabbd6..2a35307 100644 --- a/Makefile.shared +++ b/Makefile.shared @@ -83,6 +83,9 @@ examples/example$(EE) : examples/example.cpp $(HEADERS) $(LIB)/libdai$(LE) examples/example_bipgraph$(EE) : examples/example_bipgraph.cpp $(HEADERS) $(LIB)/libdai$(LE) $(CC) $(CCFLAGS) $(CCO)examples/example_bipgraph$(EE) examples/example_bipgraph.cpp $(LIBS) +examples/example_varset$(EE) : examples/example_varset.cpp $(HEADERS) $(LIB)/libdai$(LE) + $(CC) $(CCFLAGS) $(CCO)examples/example_varset$(EE) examples/example_varset.cpp $(LIBS) + # TESTS ######## diff --git a/Makefile.win b/Makefile.win index af2879d..ab088e4 100755 --- a/Makefile.win +++ b/Makefile.win @@ -123,7 +123,7 @@ TARGETS = $(TARGETS) matlabs !ENDIF all : $(TARGETS) -examples : examples/example$(EE) examples/example_bipgraph$(EE) +examples : examples/example$(EE) examples/example_bipgraph$(EE) examples/example_varset$(EE) matlabs : matlab/dai$(ME) matlab/dai_readfg$(ME) matlab/dai_writefg$(ME) matlab/dai_potstrength$(ME) diff --git a/examples/example.cpp b/examples/example.cpp index 47c83f3..eba3630 100644 --- a/examples/example.cpp +++ b/examples/example.cpp @@ -21,7 +21,7 @@ #include -#include +#include // Include main libDAI header file using namespace dai; @@ -35,43 +35,64 @@ int main( int argc, char *argv[] ) { cout << "Belief Propagation and JunctionTree on it." << endl << endl; return 1; } else { + // Read FactorGraph from the file specified by the first command line argument FactorGraph fg; fg.ReadFromFile(argv[1]); + // Set some constants size_t maxiter = 10000; double tol = 1e-9; size_t verb = 1; + // Store the constants in a PropertySet object PropertySet opts; - opts.Set("maxiter",maxiter); - opts.Set("tol",tol); - opts.Set("verbose",verb); + opts.Set("maxiter",maxiter); // Maximum number of iterations + opts.Set("tol",tol); // Tolerance for convergence + opts.Set("verbose",verb); // Verbosity (amount of output generated) + // Construct a JTree (junction tree) object from the FactorGraph fg + // using the parameters specified by opts and an additional property + // that specifies the type of updates the JTree algorithm should perform JTree jt( fg, opts("updates",string("HUGIN")) ); + // Initialize junction tree algoritm jt.init(); + // Run junction tree algorithm jt.run(); + // Construct a BP (belief propagation) object from the FactorGraph fg + // using the parameters specified by opts and two additional properties, + // specifying the type of updates the BP algorithm should perform and + // whether they should be done in the real or in the logdomain BP bp(fg, opts("updates",string("SEQFIX"))("logdomain",false)); + // Initialize belief propagation algorithm bp.init(); + // Run belief propagation algorithm bp.run(); - cout << "Exact single node marginals:" << endl; - for( size_t i = 0; i < fg.nrVars(); i++ ) - cout << jt.belief(fg.var(i)) << endl; + // Report single-variable marginals for fg, calculated by the junction tree algorithm + cout << "Exact single-variable marginals:" << endl; + for( size_t i = 0; i < fg.nrVars(); i++ ) // iterate over all variables in fg + cout << jt.belief(fg.var(i)) << endl; // display the "belief" of jt for that variable - cout << "Approximate (loopy belief propagation) single node marginals:" << endl; - for( size_t i = 0; i < fg.nrVars(); i++ ) - cout << bp.belief(fg.var(i)) << endl; + // Report single-variable marginals for fg, calculated by the belief propagation algorithm + cout << "Approximate (loopy belief propagation) single-variable marginals:" << endl; + for( size_t i = 0; i < fg.nrVars(); i++ ) // iterate over all variables in fg + cout << bp.belief(fg.var(i)) << endl; // display the belief of bp for that variable + // Report factor marginals for fg, calculated by the junction tree algorithm cout << "Exact factor marginals:" << endl; - for( size_t I = 0; I < fg.nrFactors(); I++ ) - cout << jt.belief(fg.factor(I).vars()) << endl; + for( size_t I = 0; I < fg.nrFactors(); I++ ) // iterate over all factors in fg + cout << jt.belief(fg.factor(I).vars()) << endl; // display the "belief" of jt for the variables in that factor + // Report factor marginals for fg, calculated by the belief propagation algorithm cout << "Approximate (loopy belief propagation) factor marginals:" << endl; - for( size_t I = 0; I < fg.nrFactors(); I++ ) - cout << bp.belief(fg.factor(I).vars()) << "=" << bp.beliefF(I) << endl; + for( size_t I = 0; I < fg.nrFactors(); I++ ) // iterate over all factors in fg + cout << bp.belief(fg.factor(I).vars()) << endl; // display the belief of bp for the variables in that factor + // Report log partition sum (normalizing constant) of fg, calculated by the junction tree algorithm cout << "Exact log partition sum: " << jt.logZ() << endl; + + // Report log partition sum of fg, approximated by the belief propagation algorithm cout << "Approximate (loopy belief propagation) log partition sum: " << bp.logZ() << endl; } diff --git a/examples/example_bipgraph.cpp b/examples/example_bipgraph.cpp index beca451..c12b733 100644 --- a/examples/example_bipgraph.cpp +++ b/examples/example_bipgraph.cpp @@ -4,6 +4,7 @@ using namespace std; using namespace dai; int main() { + // Create a list of edges vector edges; edges.reserve( 5 ); edges.push_back( BipartiteGraph::Edge(0, 0) ); @@ -11,23 +12,29 @@ int main() { edges.push_back( BipartiteGraph::Edge(2, 0) ); edges.push_back( BipartiteGraph::Edge(1, 1) ); edges.push_back( BipartiteGraph::Edge(2, 1) ); + + // Create a bipartite graph with 3 nodes of type 1, + // 2 nodes of type 2 and edge list edges. BipartiteGraph G( 3, 2, edges.begin(), edges.end() ); + // Display some information about G cout << "G has " << G.nr1() << " nodes of type 1, " << G.nr2() << " nodes of type 2 and " << G.nrEdges() << " edges." << endl << endl; + // Iterate over all nodes n1 of type 1 for( size_t n1 = 0; n1 < G.nr1(); n1++ ) { cout << "Node " << n1 << " of type 1 has " << G.nb1(n1).size() << " neighbors:" << endl; + // Iterate over all neighbors n2 of n1 foreach( const BipartiteGraph::Neighbor &n2, G.nb1(n1) ) { - size_t _n2 = n2.iter; - size_t _n1 = n2.dual; - cout << " the " << n2.iter << "'th neighbor is node " << n2 << " of type 2" << endl; + // The n2.iter'th neighbor of n1 is n2: + assert( G.nb1(n1)[n2.iter] == n2 ); + + // The n2.dual'th neighbor of n2 is n1: + assert( G.nb2(n2)[n2.dual] == n1 ); - // The _n2'th neighbor of n1 is n2: - assert( G.nb1(n1)[_n2] == n2 ); - // The _n1'th neighbor of n2 is n1: - assert( G.nb2(n2)[_n1] == n1 ); // n2 can be used as an abbreviation of n2.node: assert( static_cast(n2) == n2.node ); + + cout << " the " << n2.iter << "'th neighbor is node " << n2 << " of type 2" << endl; } cout << endl; } diff --git a/examples/example_varset.cpp b/examples/example_varset.cpp new file mode 100644 index 0000000..fc2145f --- /dev/null +++ b/examples/example_varset.cpp @@ -0,0 +1,52 @@ +#include +#include + +using namespace std; +using namespace dai; + +int main() { + Var x0(0, 2); // Define binary variable x0 (with label 0) + Var x1(1, 3); // Define ternary variable x1 (with label 1) + + // Define set X = {x0, x1} + VarSet X; // empty + X |= x1; // X = {x1} + X |= x0; // X = {x1, x0} + cout << "X = " << X << endl << endl; // Note that the elements of X are ordered according to their labels + + // Output some information about x0, x1 and X + cout << "Var " << x0 << " has " << x0.states() << " states (possible values)." << endl; + cout << "Var " << x1 << " has " << x1.states() << " states." << endl << endl; + cout << "VarSet " << X << " has " << X.nrStates() << " states (joint assignments of its variables)." << endl << endl; + + cout << "States of VarSets correspond to states of their constituent Vars:" << endl; + cout << " state of x0: state of x1: state of X:" << endl; + for( size_t s1 = 0; s1 < x1.states(); s1++ ) // for all states s1 of x1 + for( size_t s0 = 0; s0 < x0.states(); s0++ ) { // for all states s0 of x0 + // store s0 and s1 in a map "states" + map states; + states[x0] = s0; + states[x1] = s1; + + // output states of x0, x1 and corresponding state of X + cout << " " << s0 << " " << s1 << " " << X.calcState(states) << endl; + + // VarSet::calcStates is the inverse of VarSet::calcState + assert( X.calcStates(X.calcState(states)) == states ); + } + + cout << endl << "And vice versa:" << endl; + cout << " state of x0: state of x1: state of X:" << endl; + for( size_t S = 0; S < X.nrStates(); S++ ) { // for all (joint) states of X + // calculate states of x0 and x1 corresponding to state S of X + map states = X.calcStates(S); + + // output state of X and corresponding states of x0, x1 + cout << " " << states[x0] << " " << states[x1] << " " << S << endl; + + // VarSet::calcState is the inverse of VarSet::calcStates + assert( X.calcState(X.calcStates(S)) == S ); + } + + return 0; +} diff --git a/examples/example_varset.out b/examples/example_varset.out new file mode 100644 index 0000000..f618046 --- /dev/null +++ b/examples/example_varset.out @@ -0,0 +1,24 @@ +X = {x0,x1} + +Var x0 has 2 states (possible values). +Var x1 has 3 states. + +VarSet {x0,x1} has 6 states (joint assignments of its variables). + +States of VarSets correspond to states of their constituent Vars: + state of x0: state of x1: state of X: + 0 0 0 + 1 0 1 + 0 1 2 + 1 1 3 + 0 2 4 + 1 2 5 + +And vice versa: + state of x0: state of x1: state of X: + 0 0 0 + 1 0 1 + 0 1 2 + 1 1 3 + 0 2 4 + 1 2 5 diff --git a/include/dai/alldai.h b/include/dai/alldai.h index ed22aa6..ed86774 100644 --- a/include/dai/alldai.h +++ b/include/dai/alldai.h @@ -23,7 +23,6 @@ /// \file /// \brief Main libDAI header file /// \todo Improve documentation -/// \todo Improve documentation of examples/example #ifndef __defined_libdai_alldai_h diff --git a/include/dai/bipgraph.h b/include/dai/bipgraph.h index 998c639..4812e16 100644 --- a/include/dai/bipgraph.h +++ b/include/dai/bipgraph.h @@ -22,7 +22,6 @@ /// \file /// \brief Defines BipartiteGraph class -/// \todo Improve documentation of examples_bipgraph #ifndef __defined_libdai_bipgraph_h diff --git a/include/dai/factor.h b/include/dai/factor.h index e7a9f9f..d618a3f 100644 --- a/include/dai/factor.h +++ b/include/dai/factor.h @@ -246,11 +246,13 @@ template class TFactor { return *this; } - /// Returns inverse of *this - TFactor inverse() const { + /// Returns inverse of *this. + /** If zero == true, uses 1 / 0 == 0; otherwise 1 / 0 == Inf. + */ + TFactor inverse(bool zero=true) const { TFactor inv; inv._vs = _vs; - inv._p = _p.inverse(true); // FIXME + inv._p = _p.inverse(zero); return inv; } @@ -290,21 +292,15 @@ template class TFactor { } /// Returns logarithm of *this - TFactor log() const { + /** If zero==true, uses log(0)==0; otherwise, log(0)=-Inf. + */ + TFactor log(bool zero=false) const { TFactor l; l._vs = _vs; - l._p = _p.log(); + l._p = _p.log(zero); return l; } - /// Returns logarithm of *this (defining log(0)=0) - TFactor log0() const { - TFactor l0; - l0._vs = _vs; - l0._p = _p.log0(); - return l0; - } - /// Normalizes *this Factor T normalize( typename Prob::NormType norm = Prob::NORMPROB ) { return _p.normalize( norm ); } diff --git a/include/dai/prob.h b/include/dai/prob.h index 96e5763..82af64f 100644 --- a/include/dai/prob.h +++ b/include/dai/prob.h @@ -22,7 +22,7 @@ /// \file /// \brief Defines TProb and Prob classes -/// \todo Improve documentation +/// \todo Rename to Vector #ifndef __defined_libdai_prob_h @@ -42,23 +42,25 @@ namespace dai { -/// Real number (alias for double, could be changed to long double if necessary) -typedef double Real; +/// Real number (alias for double, which could be changed to long double if necessary) +typedef double Real; -template class TProb; +// Predefine class +template class TProb; /// Represents a probability measure, with entries of type Real. -typedef TProb Prob; +typedef TProb Prob; -/// Represents a probability measure on a finite outcome space (i.e., corresponding to a discrete random variable). -/** It is implemented as a std::vector but adds a convenient interface. - * It is not necessarily normalized at all times. - * \tparam T Should be castable from and to double. +/// Represents a vector with entries of type \a T. +/** A TProb is a std::vector with an interface designed for dealing with probability mass functions. + * It is mainly used for representing measures on a finite outcome space, e.g., the probability + * distribution of a discrete random variable. + * \tparam T Should be a scalar that is castable from and to double and should support elementary arithmetic operations. */ template class TProb { private: - /// The probability measure + /// The vector std::vector _p; public: @@ -80,22 +82,22 @@ template class TProb { /// Default constructor TProb() : _p() {} - /// Construct uniform distribution of given length + /// Construct uniform distribution over n outcomes, i.e., a vector of length n with each entry set to 1/n explicit TProb( size_t n ) : _p(std::vector(n, 1.0 / n)) {} - /// Construct from given length and initial value - TProb( size_t n, Real p ) : _p(n, (T)p) {} + /// Construct vector of length n with each entry set to p + explicit TProb( size_t n, Real p ) : _p(n, (T)p) {} - /// Construct from given length and initial array + /// Construct vector of length n by copying the elements between p and p+n TProb( size_t n, const Real* p ) : _p(p, p + n ) {} - /// Returns a const reference to the probability vector + /// Returns a const reference to the vector const std::vector & p() const { return _p; } - /// Returns a reference to the probability vector + /// Returns a reference to the vector std::vector & p() { return _p; } - /// Returns a copy of the i'th probability entry + /// Returns a copy of the i'th entry T operator[]( size_t i ) const { #ifdef DAI_DEBUG return _p.at(i); @@ -104,27 +106,27 @@ template class TProb { #endif } - /// Returns a reference to the i'th probability entry + /// Returns reference to the i'th entry T& operator[]( size_t i ) { return _p[i]; } - /// Sets all elements to x + /// Sets all entries to x TProb & fill(T x) { std::fill( _p.begin(), _p.end(), x ); return *this; } - /// Sets all elements to i.i.d. random numbers from a uniform[0,1) distribution + /// Sets all entries to i.i.d. random numbers from a uniform[0,1) distribution TProb & randomize() { std::generate(_p.begin(), _p.end(), rnd_uniform); return *this; } - /// Returns number of elements + /// Returns length of the vector, i.e., the number of entries size_t size() const { return _p.size(); } - /// Sets entries that are smaller than epsilon to zero + /// Sets entries that are smaller than epsilon to 0 TProb& makeZero( Real epsilon ) { for( size_t i = 0; i < size(); i++ ) if( fabs(_p[i]) < epsilon ) @@ -133,27 +135,27 @@ template class TProb { } /// Sets entries that are smaller than epsilon to epsilon - TProb& makePositive (Real epsilon) { + TProb& makePositive( Real epsilon ) { for( size_t i = 0; i < size(); i++ ) if( (0 < (Real)_p[i]) && ((Real)_p[i] < epsilon) ) _p[i] = epsilon; return *this; } - /// Multiplies each entry with x + /// Multiplies each entry with scalar x TProb& operator*= (T x) { std::transform( _p.begin(), _p.end(), _p.begin(), std::bind2nd( std::multiplies(), x) ); return *this; } - /// Returns product of *this with x + /// Returns product of *this with scalar x TProb operator* (T x) const { TProb prod( *this ); prod *= x; return prod; } - /// Divides each entry by x + /// Divides each entry by scalar x TProb& operator/= (T x) { #ifdef DAI_DEBUG assert( x != 0.0 ); @@ -162,40 +164,40 @@ template class TProb { return *this; } - /// Returns quotient of *this and x + /// Returns quotient of *this and scalar x TProb operator/ (T x) const { TProb quot( *this ); quot /= x; return quot; } - /// Adds x to each entry + /// Adds scalar x to each entry TProb& operator+= (T x) { std::transform( _p.begin(), _p.end(), _p.begin(), std::bind2nd( std::plus(), x ) ); return *this; } - /// Returns sum of *this and x + /// Returns sum of *this and scalar x TProb operator+ (T x) const { TProb sum( *this ); sum += x; return sum; } - /// Subtracts x from each entry + /// Subtracts scalar x from each entry TProb& operator-= (T x) { std::transform( _p.begin(), _p.end(), _p.begin(), std::bind2nd( std::minus(), x ) ); return *this; } - /// Returns difference of *this and x + /// Returns difference of *this and scalar x TProb operator- (T x) const { TProb diff( *this ); diff -= x; return diff; } - /// Pointwise comparison + /// Lexicographical comparison (sizes should be identical) bool operator<= (const TProb & q) const { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -206,7 +208,7 @@ template class TProb { return true; } - /// Pointwise multiplication with q + /// Pointwise multiplication with q (sizes should be identical) TProb& operator*= (const TProb & q) { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -215,7 +217,7 @@ template class TProb { return *this; } - /// Return product of *this with q + /// Return product of *this with q (sizes should be identical) TProb operator* (const TProb & q) const { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -225,7 +227,7 @@ template class TProb { return prod; } - /// Pointwise addition with q + /// Pointwise addition with q (sizes should be identical) TProb& operator+= (const TProb & q) { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -234,7 +236,7 @@ template class TProb { return *this; } - /// Return sum of *this and q + /// Returns sum of *this and q (sizes should be identical) TProb operator+ (const TProb & q) const { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -244,7 +246,7 @@ template class TProb { return sum; } - /// Pointwise subtraction of q + /// Pointwise subtraction of q (sizes should be identical) TProb& operator-= (const TProb & q) { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -253,7 +255,7 @@ template class TProb { return *this; } - /// Return *this minus q + /// Return *this minus q (sizes should be identical) TProb operator- (const TProb & q) const { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -263,7 +265,7 @@ template class TProb { return diff; } - /// Pointwise division by q, where division by zero yields zero + /// Pointwise division by q, where division by 0 yields 0 (sizes should be identical) TProb& operator/= (const TProb & q) { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -277,7 +279,7 @@ template class TProb { return *this; } - /// Pointwise division by q, where division by zero yields infinity + /// Pointwise division by q, where division by 0 yields +Inf (sizes should be identical) TProb& divide (const TProb & q) { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -286,7 +288,7 @@ template class TProb { return *this; } - /// Returns quotient of *this with q + /// Returns quotient of *this with q (sizes should be identical) TProb operator/ (const TProb & q) const { #ifdef DAI_DEBUG assert( size() == q.size() ); @@ -297,23 +299,21 @@ template class TProb { } /// Returns pointwise inverse - TProb inverse(bool zero = false) const { + /** If zero==true; uses 1/0==0, otherwise 1/0==Inf. + */ + TProb inverse(bool zero=true) const { TProb inv; inv._p.reserve( size() ); if( zero ) for( size_t i = 0; i < size(); i++ ) inv._p.push_back( _p[i] == 0.0 ? 0.0 : 1.0 / _p[i] ); else - for( size_t i = 0; i < size(); i++ ) { -#ifdef DAI_DEBUG - assert( _p[i] != 0.0 ); -#endif + for( size_t i = 0; i < size(); i++ ) inv._p.push_back( 1.0 / _p[i] ); - } return inv; } - /// Raises elements to the power a + /// Raises entries to the power a TProb& operator^= (Real a) { if( a != 1.0 ) std::transform( _p.begin(), _p.end(), _p.begin(), std::bind2nd( std::ptr_fun(std::pow), a) ); @@ -358,15 +358,14 @@ template class TProb { } /// Applies log pointwise - const TProb& takeLog() { - std::transform( _p.begin(), _p.end(), _p.begin(), std::ptr_fun(std::log) ); - return *this; - } - - /// Applies log pointwise (defining log(0)=0) - const TProb& takeLog0() { - for( size_t i = 0; i < size(); i++ ) - _p[i] = ( (_p[i] == 0.0) ? 0.0 : std::log( _p[i] ) ); + /** If zero==true, uses log(0)==0; otherwise, log(0)==-Inf. + */ + const TProb& takeLog(bool zero=false) { + if( zero ) { + for( size_t i = 0; i < size(); i++ ) + _p[i] = ( (_p[i] == 0.0) ? 0.0 : std::log( _p[i] ) ); + } else + std::transform( _p.begin(), _p.end(), _p.begin(), std::ptr_fun(std::log) ); return *this; } @@ -378,61 +377,21 @@ template class TProb { } /// Returns pointwise log - TProb log() const { + /** If zero==true, uses log(0)==0; otherwise, log(0)==-Inf. + */ + TProb log(bool zero=false) const { TProb l(*this); - l.takeLog(); + l.takeLog(zero); return l; } - /// Returns pointwise log (defining log(0)=0) - TProb log0() const { - TProb l0(*this); - l0.takeLog0(); - return l0; - } - - /// Returns distance of p and q, measured using dt - friend Real dist( const TProb &p, const TProb &q, DistType dt ) { -#ifdef DAI_DEBUG - assert( p.size() == q.size() ); -#endif - Real result = 0.0; - switch( dt ) { - case DISTL1: - for( size_t i = 0; i < p.size(); i++ ) - result += fabs((Real)p[i] - (Real)q[i]); - break; - - case DISTLINF: - for( size_t i = 0; i < p.size(); i++ ) { - Real z = fabs((Real)p[i] - (Real)q[i]); - if( z > result ) - result = z; - } - break; - - case DISTTV: - for( size_t i = 0; i < p.size(); i++ ) - result += fabs((Real)p[i] - (Real)q[i]); - result *= 0.5; - break; - - case DISTKL: - for( size_t i = 0; i < p.size(); i++ ) { - if( p[i] != 0.0 ) - result += p[i] * (std::log(p[i]) - std::log(q[i])); - } - } - return result; - } - /// Returns sum of all entries T totalSum() const { T Z = std::accumulate( _p.begin(), _p.end(), (T)0 ); return Z; } - /// Returns maximum absolute value of entries + /// Returns maximum absolute value of all entries T maxAbs() const { T Z = 0; for( size_t i = 0; i < size(); i++ ) { @@ -443,20 +402,20 @@ template class TProb { return Z; } - /// Returns maximum value of entries + /// Returns maximum value of all entries T maxVal() const { T Z = *std::max_element( _p.begin(), _p.end() ); return Z; } - /// Returns minimum value of entries + /// Returns minimum value of all entries T minVal() const { T Z = *std::min_element( _p.begin(), _p.end() ); return Z; } - /// Normalizes using the specified norm - T normalize( NormType norm = NORMPROB ) { + /// Normalizes vector using the specified norm + T normalize( NormType norm=NORMPROB ) { T Z = 0.0; if( norm == NORMPROB ) Z = totalSum(); @@ -486,34 +445,68 @@ template class TProb { return (std::find_if( _p.begin(), _p.end(), std::bind2nd( std::less(), 0.0 ) ) != _p.end()); } - /// Returns true if one or more entries are non-positive (causes problems with logscale) - bool hasNonPositives() const { - return (std::find_if( _p.begin(), _p.end(), std::bind2nd( std::less_equal(), 0.0 ) ) != _p.end()); - } - - /// Returns entropy + /// Returns entropy of *this Real entropy() const { Real S = 0.0; for( size_t i = 0; i < size(); i++ ) - S -= xlogx(_p[i]); + S -= (_p[i] == 0 ? 0 : _p[i] * std::log(_p[i])); return S; } +}; - /// Writes a TProb to an output stream - friend std::ostream& operator<< (std::ostream& os, const TProb& P) { - os << "["; - std::copy( P._p.begin(), P._p.end(), std::ostream_iterator(os, " ") ); - os << "]"; - return os; - } - private: - /// Returns x*log(x), or 0 if x == 0 - Real xlogx( Real x ) const { return( x == 0.0 ? 0.0 : x * std::log(x)); } -}; +/// Returns distance of p and q (sizes should be identical), measured using distance measure dt +/** \relates TProb + */ +template Real dist( const TProb &p, const TProb &q, typename TProb::DistType dt ) { +#ifdef DAI_DEBUG + assert( p.size() == q.size() ); +#endif + Real result = 0.0; + switch( dt ) { + case TProb::DISTL1: + for( size_t i = 0; i < p.size(); i++ ) + result += fabs((Real)p[i] - (Real)q[i]); + break; + + case TProb::DISTLINF: + for( size_t i = 0; i < p.size(); i++ ) { + Real z = fabs((Real)p[i] - (Real)q[i]); + if( z > result ) + result = z; + } + break; + + case TProb::DISTTV: + for( size_t i = 0; i < p.size(); i++ ) + result += fabs((Real)p[i] - (Real)q[i]); + result *= 0.5; + break; + + case TProb::DISTKL: + for( size_t i = 0; i < p.size(); i++ ) { + if( p[i] != 0.0 ) + result += p[i] * (std::log(p[i]) - std::log(q[i])); + } + } + return result; +} -/// Returns TProb containing the pointwise minimum of a and b (which should have equal size) +/// Writes a TProb to an output stream +/** \relates TProb + */ +template std::ostream& operator<< (std::ostream& os, const TProb& P) { + os << "["; + std::copy( P.p().begin(), P.p().end(), std::ostream_iterator(os, " ") ); + os << "]"; + return os; +} + + +/// Returns the TProb containing the pointwise minimum of a and b (which should have equal size) +/** \relates TProb + */ template TProb min( const TProb &a, const TProb &b ) { assert( a.size() == b.size() ); TProb result( a.size() ); @@ -526,7 +519,9 @@ template TProb min( const TProb &a, const TProb &b ) { } -/// Returns TProb containing the pointwise maximum of a and b (which should have equal size) +/// Returns the TProb containing the pointwise maximum of a and b (which should have equal size) +/** \relates TProb + */ template TProb max( const TProb &a, const TProb &b ) { assert( a.size() == b.size() ); TProb result( a.size() ); diff --git a/include/dai/smallset.h b/include/dai/smallset.h index e1c4c35..227b1aa 100644 --- a/include/dai/smallset.h +++ b/include/dai/smallset.h @@ -24,8 +24,7 @@ /// \file -/// \brief Defines smallSet class -/// \todo Improve documentation +/// \brief Defines SmallSet class #ifndef __defined_libdai_smallset_h @@ -39,46 +38,46 @@ namespace dai { -/// Represents a set (optimized for a small number of elements). -/** For sets consisting of a small number of elements, an implementation using - * an ordered std::vector is faster than an implementation using std::set. - * The elements should be less-than-comparable. +/// Represents a set; the implementation is optimized for a small number of elements. +/** SmallSet uses an ordered std::vector to represent a set; this is faster than + * using a std::set if the number of elements is small. + * \tparam T Should be less-than-comparable. */ template -class smallSet { +class SmallSet { private: /// The elements in this set std::vector _elements; public: - /// Default constructor - smallSet() : _elements() {} - - /// Construct a smallSet with one element - smallSet( const T &n ) : _elements() { - _elements.push_back( n ); - } - - /// Construct a smallSet with two elements - smallSet( const T &n1, const T &n2 ) { - if( n1 < n2 ) { - _elements.push_back( n1 ); - _elements.push_back( n2 ); - } else if( n2 < n1 ) { - _elements.push_back( n2 ); - _elements.push_back( n1 ); + /// Default constructor (construct an empty set) + SmallSet() : _elements() {} + + /// Construct a set with one element + SmallSet( const T &t ) : _elements() { + _elements.push_back( t ); + } + + /// Construct a set with two elements + SmallSet( const T &t1, const T &t2 ) { + if( t1 < t2 ) { + _elements.push_back( t1 ); + _elements.push_back( t2 ); + } else if( t2 < t1 ) { + _elements.push_back( t2 ); + _elements.push_back( t1 ); } else - _elements.push_back( n1 ); + _elements.push_back( t1 ); } - /// Construct a smallSet from a range of iterators. - /** \tparam Iterator Iterator with value_type T. + /// Construct a SmallSet from a range of elements. + /** \tparam TIterator Iterates over instances of type T. * \param begin Points to first element to be added. * \param end Points just beyond last element to be added. * \param sizeHint For efficiency, the number of elements can be speficied by sizeHint. */ - template - smallSet( Iterator begin, Iterator end, size_t sizeHint=0 ) { + template + SmallSet( TIterator begin, TIterator end, size_t sizeHint=0 ) { _elements.reserve( sizeHint ); _elements.insert( _elements.begin(), begin, end ); std::sort( _elements.begin(), _elements.end() ); @@ -87,87 +86,87 @@ class smallSet { } /// Copy constructor - smallSet( const smallSet &x ) : _elements( x._elements ) {} + SmallSet( const SmallSet &x ) : _elements( x._elements ) {} /// Assignment operator - smallSet & operator=( const smallSet &x ) { + SmallSet & operator=( const SmallSet &x ) { if( this != &x ) { _elements = x._elements; } return *this; } - /// Setminus operator: returns all elements in *this, except those in ns - smallSet operator/ ( const smallSet& ns ) const { - smallSet res; - std::set_difference( _elements.begin(), _elements.end(), ns._elements.begin(), ns._elements.end(), inserter( res._elements, res._elements.begin() ) ); + /// Set-minus operator: returns all elements in *this, except those in x + SmallSet operator/ ( const SmallSet& x ) const { + SmallSet res; + std::set_difference( _elements.begin(), _elements.end(), x._elements.begin(), x._elements.end(), inserter( res._elements, res._elements.begin() ) ); return res; } - /// Set-union operator: returns all elements in *this, plus those in ns - smallSet operator| ( const smallSet& ns ) const { - smallSet res; - std::set_union( _elements.begin(), _elements.end(), ns._elements.begin(), ns._elements.end(), inserter( res._elements, res._elements.begin() ) ); + /// Set-union operator: returns all elements in *this, plus those in x + SmallSet operator| ( const SmallSet& x ) const { + SmallSet res; + std::set_union( _elements.begin(), _elements.end(), x._elements.begin(), x._elements.end(), inserter( res._elements, res._elements.begin() ) ); return res; } - /// Set-intersection operator: returns all elements in *this that are also contained in ns - smallSet operator& ( const smallSet& ns ) const { - smallSet res; - std::set_intersection( _elements.begin(), _elements.end(), ns._elements.begin(), ns._elements.end(), inserter( res._elements, res._elements.begin() ) ); + /// Set-intersection operator: returns all elements in *this that are also contained in x + SmallSet operator& ( const SmallSet& x ) const { + SmallSet res; + std::set_intersection( _elements.begin(), _elements.end(), x._elements.begin(), x._elements.end(), inserter( res._elements, res._elements.begin() ) ); return res; } - /// Erases from *this all elements in ns - smallSet& operator/= ( const smallSet& ns ) { - return (*this = (*this / ns)); + /// Erases from *this all elements in x + SmallSet& operator/= ( const SmallSet& x ) { + return (*this = (*this / x)); } /// Erases one element - smallSet& operator/= ( const T& n ) { - typename std::vector::iterator pos = lower_bound( _elements.begin(), _elements.end(), n ); + SmallSet& operator/= ( const T &t ) { + typename std::vector::iterator pos = lower_bound( _elements.begin(), _elements.end(), t ); if( pos != _elements.end() ) - if( *pos == n ) // found element, delete it + if( *pos == t ) // found element, delete it _elements.erase( pos ); return *this; } - /// Adds to *this all elements in ns - smallSet& operator|= ( const smallSet& ns ) { - return( *this = (*this | ns) ); + /// Adds to *this all elements in x + SmallSet& operator|= ( const SmallSet& x ) { + return( *this = (*this | x) ); } /// Adds one element - smallSet& operator|= ( const T& n ) { - typename std::vector::iterator pos = lower_bound( _elements.begin(), _elements.end(), n ); - if( pos == _elements.end() || *pos != n ) // insert it - _elements.insert( pos, n ); + SmallSet& operator|= ( const T& t ) { + typename std::vector::iterator pos = lower_bound( _elements.begin(), _elements.end(), t ); + if( pos == _elements.end() || *pos != t ) // insert it + _elements.insert( pos, t ); return *this; } - /// Erases from *this all elements not in ns - smallSet& operator&= ( const smallSet& ns ) { - return (*this = (*this & ns)); + /// Erases from *this all elements not in x + SmallSet& operator&= ( const SmallSet& x ) { + return (*this = (*this & x)); } - /// Returns true if *this is a subset of ns - bool operator<< ( const smallSet& ns ) const { - return std::includes( ns._elements.begin(), ns._elements.end(), _elements.begin(), _elements.end() ); + /// Returns true if *this is a subset of x + bool operator<< ( const SmallSet& x ) const { + return std::includes( x._elements.begin(), x._elements.end(), _elements.begin(), _elements.end() ); } - /// Returns true if ns is a subset of *this - bool operator>> ( const smallSet& ns ) const { - return std::includes( _elements.begin(), _elements.end(), ns._elements.begin(), ns._elements.end() ); + /// Returns true if x is a subset of *this + bool operator>> ( const SmallSet& x ) const { + return std::includes( _elements.begin(), _elements.end(), x._elements.begin(), x._elements.end() ); } - /// Returns true if *this and ns contain common elements - bool intersects( const smallSet& ns ) const { - return( (*this & ns).size() > 0 ); + /// Returns true if *this and x have elements in common + bool intersects( const SmallSet& x ) const { + return( (*this & x).size() > 0 ); } - /// Returns true if *this contains the element n - bool contains( const T& n ) const { - return std::binary_search( _elements.begin(), _elements.end(), n ); + /// Returns true if *this contains the element t + bool contains( const T &t ) const { + return std::binary_search( _elements.begin(), _elements.end(), t ); } /// Constant iterator over the elements @@ -202,21 +201,21 @@ class smallSet { /// Returns number of elements typename std::vector::size_type size() const { return _elements.size(); } - /// Returns whether the smallSet is empty + /// Returns whether the SmallSet is empty bool empty() const { return _elements.size() == 0; } - /// Returns true if the two sets are identical - friend bool operator==( const smallSet &a, const smallSet &b ) { + /// Returns true if a and b are identical + friend bool operator==( const SmallSet &a, const SmallSet &b ) { return (a._elements == b._elements); } - /// Returns true if the two sets are not identical - friend bool operator!=( const smallSet &a, const smallSet &b ) { + /// Returns true if a and b are not identical + friend bool operator!=( const SmallSet &a, const SmallSet &b ) { return !(a._elements == b._elements); } /// Lexicographical comparison of elements - friend bool operator<( const smallSet &a, const smallSet &b ) { + friend bool operator<( const SmallSet &a, const SmallSet &b ) { return a._elements < b._elements; } }; diff --git a/include/dai/var.h b/include/dai/var.h index 4134de5..042a246 100644 --- a/include/dai/var.h +++ b/include/dai/var.h @@ -25,7 +25,6 @@ /// \file /// \brief Defines class Var -/// \todo Improve documentation #ifndef __defined_libdai_var_h @@ -39,8 +38,15 @@ namespace dai { /// Represents a discrete random variable. -/** It contains the \a label of the variable (an integer-valued unique ID) - * and the number of possible values (\a states) of the variable. +/** A Var stores the \a label of the variable (an integer-valued unique ID) + * and the number of possible values (\a states) of that variable. Two + * Var objects with the same label are assumed to be identical (i.e., it + * is assumed that their states are also the same). + * + * In this manual, we use the following notational conventions. The discrete + * random variable with label \f$l\f$ is denoted as \f$x_l\f$, and the number + * of possible values of this variable as \f$S_l\f$; this is represented in + * code by the object Var(\f$l\f$,\f$S_l\f$). */ class Var { private: @@ -66,22 +72,22 @@ class Var { /// Returns reference to number of states size_t& states () { return _states; } - /// Smaller-than operator (only compares labels) + /// Smaller-than operator (compares only labels) bool operator < ( const Var& n ) const { return( _label < n._label ); } - /// Larger-than operator (only compares labels) + /// Larger-than operator (compares only labels) bool operator > ( const Var& n ) const { return( _label > n._label ); } - /// Smaller-than-or-equal-to operator (only compares labels) + /// Smaller-than-or-equal-to operator (compares only labels) bool operator <= ( const Var& n ) const { return( _label <= n._label ); } - /// Larger-than-or-equal-to operator (only compares labels) + /// Larger-than-or-equal-to operator (compares only labels) bool operator >= ( const Var& n ) const { return( _label >= n._label ); } - /// Not-equal-to operator (only compares labels) + /// Not-equal-to operator (compares only labels) bool operator != ( const Var& n ) const { return( _label != n._label ); } - /// Equal-to operator (only compares labels) + /// Equal-to operator (compares only labels) bool operator == ( const Var& n ) const { return( _label == n._label ); } /// Writes a Var to an output stream friend std::ostream& operator << ( std::ostream& os, const Var& n ) { - return( os << "[" << n.label() << "]" ); + return( os << "x" << n.label() ); } }; diff --git a/include/dai/varset.h b/include/dai/varset.h index a981a04..9a25775 100644 --- a/include/dai/varset.h +++ b/include/dai/varset.h @@ -25,7 +25,6 @@ /// \file /// \brief Defines VarSet class -/// \todo Improve documentation #ifndef __defined_libdai_varset_h @@ -34,6 +33,7 @@ #include #include +#include #include #include #include @@ -44,29 +44,35 @@ namespace dai { /// Represents a set of variables. -/** \note A VarSet is implemented using a std::vector instead +/** \note A VarSet is implemented using a SmallSet instead * of the more natural std::set because of efficiency reasons. */ -class VarSet : public smallSet { +class VarSet : public SmallSet { public: /// Default constructor - VarSet() : smallSet() {} + VarSet() : SmallSet() {} /// Copy constructor - VarSet( const VarSet &x ) : smallSet(x) {} + VarSet( const VarSet &x ) : SmallSet(x) {} /// Assignment operator VarSet& operator=( const VarSet &x ) { if( this != &x ) { - smallSet::operator=( x ); + SmallSet::operator=( x ); } return *this; } - /// Construct from smallSet - VarSet( const smallSet &x ) : smallSet(x) {} + /// Construct from SmallSet + VarSet( const SmallSet &x ) : SmallSet(x) {} /// Calculates the product of the number of states of all variables in this VarSet. + /** This is equal to the number of joint configurations of the variables. + * If *this corresponds with the set \f$\{x_{l(0)},x_{l(1)},\dots,x_{l(n-1)}\}\f$, + * where variable \f$x_l\f$ has label \f$l\f$, and denoting by \f$S_l\f$ the number of possible values + * ("states") of variable \f$x_l\f$, the number of joint configurations + * of the variables in this set is given by \f[N := \prod_{i=0}^{n-1} S_{l(i)}.\f] + */ size_t nrStates() { size_t states = 1; for( VarSet::const_iterator n = begin(); n != end(); n++ ) @@ -75,25 +81,40 @@ class VarSet : public smallSet { } /// Construct a VarSet with one element - VarSet( const Var &n ) : smallSet(n) {} + VarSet( const Var &n ) : SmallSet(n) {} /// Construct a VarSet with two elements - VarSet( const Var &n1, const Var &n2 ) : smallSet(n1,n2) {} + VarSet( const Var &n1, const Var &n2 ) : SmallSet(n1,n2) {} - /// Construct a VarSet from a range of iterators. - /** \tparam VarIterator Iterator with value_type Var. + /// Construct a VarSet from a range. + /** \tparam VarIterator Iterates over instances of type Var. * \param begin Points to first Var to be added. * \param end Points just beyond last Var to be added. * \param sizeHint For efficiency, the number of elements can be speficied by sizeHint. */ template - VarSet( VarIterator begin, VarIterator end, size_t sizeHint=0 ) : smallSet(begin,end,sizeHint) {} + VarSet( VarIterator begin, VarIterator end, size_t sizeHint=0 ) : SmallSet(begin,end,sizeHint) {} - /// Calculates the linear index in the cartesian product of the variables in *this, which corresponds to a particular joint assignment of the variables. + /// Calculates the linear index in the cartesian product of the variables in *this, which corresponds to a particular joint assignment of the variables specified by \a states. /** \param states Specifies the states of some variables. * \return The linear index in the cartesian product of the variables in *this - * corresponding with the joint assignment specified by \c states (where it is - * assumed that states[m] == 0 for all m in vars which are not in states). + * corresponding with the joint assignment specified by \a states, where it is + * assumed that \a states[\a m]==0 for all \a m in *this which are not in \a states. + * + * The linear index is calculated as follows. The variables in *this are + * ordered according to their label (in ascending order); say *this corresponds with + * the set \f$\{x_{l(0)},x_{l(1)},\dots,x_{l(n-1)}\}\f$ with \f$l(0) < l(1) < \dots < l(n-1)\f$, + * where variable \f$x_l\f$ has label \a l. Denote by \f$S_l\f$ the number of possible values + * ("states") of variable \f$x_l\f$. The argument \a states corresponds + * with a mapping \a s that assigns to each variable \f$x_l\f$ a state \f$s(x_l) \in \{0,1,\dots,S_l-1\}\f$, + * where \f$s(x_l)=0\f$ if \f$x_l\f$ is not specified in \a states. The linear index \a S corresponding + * with \a states is now calculated as: + * \f{eqnarray*} + * S &:=& \sum_{i=0}^{n-1} s(x_{l(i)}) \prod_{j=0}^{i-1} S_{l(j)} \\ + * &= & s(x_{l(0)}) + s(x_{l(1)}) S_{l(0)} + s(x_{l(2)}) S_{l(0)} S_{l(1)} + \dots + s(x_{l(n-1)}) S_{l(0)} \cdots S_{l(n-2)}. + * \f} + * + * \note This function is the inverse of calcStates( size_t ). */ size_t calcState( const std::map &states ) { size_t prod = 1; @@ -107,10 +128,37 @@ class VarSet : public smallSet { return state; } + /// Calculates the joint assignment of the variables in *this corresponding to the linear index \a linearState. + /** \param linearState should be smaller than nrStates(). + * \return A mapping \f$s\f$ that maps each Var \f$x_l\f$ in *this to its state \f$s(x_l)\f$, as specified by \a linearState. + * + * The variables in *this are ordered according to their label (in ascending order); say *this corresponds with + * the set \f$\{x_{l(0)},x_{l(1)},\dots,x_{l(n-1)}\}\f$ with \f$l(0) < l(1) < \dots < l(n-1)\f$, + * where variable \f$x_l\f$ has label \a l. Denote by \f$S_l\f$ the number of possible values + * ("states") of variable \f$x_l\f$ with label \a l. + * The mapping \a s returned by this function is defined as: + * \f{eqnarray*} + * s(x_{l(i)}) = \left[\frac{S \mbox { mod } \prod_{j=0}^{i} S_{l(j)}}{\prod_{j=0}^{i-1} S_{l(j)}}\right] \qquad \mbox{for all $i=0,\dots,n-1$}. + * \f} + * where \f$S\f$ denotes the value of \a linearState. + * \note This function is the inverse of calcState( const std::map &). + */ + std::map calcStates( size_t linearState ) { + std::map states; + for( VarSet::const_iterator n = begin(); n != end(); n++ ) { + states[*n] = linearState % n->states(); + linearState /= n->states(); + } + assert( linearState == 0 ); + return states; + } + /// Writes a VarSet to an output stream friend std::ostream& operator<< (std::ostream &os, const VarSet& ns) { + os << "{"; for( VarSet::const_iterator n = ns.begin(); n != ns.end(); n++ ) - os << *n; + os << (n != ns.begin() ? "," : "") << *n; + os << "}"; return( os ); } }; @@ -119,4 +167,14 @@ class VarSet : public smallSet { } // end of namespace dai +/** \example example_varset.cpp + * This example shows how to use the Var and VarSet classes. It also explains the concept of "states" for VarSets. + * + * \section Output + * \verbinclude examples/example_varset.out + * + * \section Source + */ + + #endif diff --git a/src/hak.cpp b/src/hak.cpp index e1a33d3..d323e8e 100644 --- a/src/hak.cpp +++ b/src/hak.cpp @@ -478,7 +478,7 @@ Real HAK::logZ() const { sum += IR(beta).c() * Qb(beta).entropy(); for( size_t alpha = 0; alpha < nrORs(); alpha++ ) { sum += OR(alpha).c() * Qa(alpha).entropy(); - sum += (OR(alpha).log0() * Qa(alpha)).totalSum(); + sum += (OR(alpha).log(true) * Qa(alpha)).totalSum(); } return sum; } diff --git a/src/jtree.cpp b/src/jtree.cpp index 16ae300..f112c48 100644 --- a/src/jtree.cpp +++ b/src/jtree.cpp @@ -313,7 +313,7 @@ Real JTree::logZ() const { sum += IR(beta).c() * Qb[beta].entropy(); for( size_t alpha = 0; alpha < nrORs(); alpha++ ) { sum += OR(alpha).c() * Qa[alpha].entropy(); - sum += (OR(alpha).log0() * Qa[alpha]).totalSum(); + sum += (OR(alpha).log(true) * Qa[alpha]).totalSum(); } return sum; } diff --git a/src/mf.cpp b/src/mf.cpp index 766acc7..17ee2d6 100644 --- a/src/mf.cpp +++ b/src/mf.cpp @@ -116,7 +116,7 @@ double MF::run() { foreach( const Neighbor &j, nbF(I) ) // for all j in I \ i if( j != i ) henk *= _beliefs[j]; - piet = factor(I).log0(); + piet = factor(I).log(true); piet *= henk; piet = piet.partSum(var(i)); piet = piet.exp(); @@ -199,7 +199,7 @@ Real MF::logZ() const { henk *= _beliefs[j]; henk.normalize(); Factor piet; - piet = factor(I).log0(); + piet = factor(I).log(true); piet *= henk; sum -= piet.totalSum(); } diff --git a/src/treeep.cpp b/src/treeep.cpp index a473e9e..f5938d0 100644 --- a/src/treeep.cpp +++ b/src/treeep.cpp @@ -190,9 +190,9 @@ void TreeEP::TreeEPSubTree::HUGIN_with_I( std::vector &Qa, std::vector &Qa, const std::vector &Qb ) const { double sum = 0.0; for( size_t alpha = 0; alpha < _Qa.size(); alpha++ ) - sum += (Qa[_a[alpha]] * _Qa[alpha].log0()).totalSum(); + sum += (Qa[_a[alpha]] * _Qa[alpha].log(true)).totalSum(); for( size_t beta = 0; beta < _Qb.size(); beta++ ) - sum -= (Qb[_b[beta]] * _Qb[beta].log0()).totalSum(); + sum -= (Qb[_b[beta]] * _Qb[beta].log(true)).totalSum(); return sum + _logZ; } @@ -441,7 +441,7 @@ Real TreeEP::logZ() const { // energy of the on-tree factors for( size_t alpha = 0; alpha < nrORs(); alpha++ ) - sum += (OR(alpha).log0() * Qa[alpha]).totalSum(); + sum += (OR(alpha).log(true) * Qa[alpha]).totalSum(); // energy of the off-tree factors for( size_t I = 0; I < nrFactors(); I++ ) diff --git a/tests/testfast.out b/tests/testfast.out index e800289..9628bcb 100644 --- a/tests/testfast.out +++ b/tests/testfast.out @@ -1,886 +1,886 @@ # testfast.fg # METHOD MAX ERROR AVG ERROR LOGZ ERROR MAXDIFF EXACT[verbose=0] -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.556e-01 4.444e-01 >) -# ([2] <4.587e-01 5.413e-01 >) -# ([3] <5.480e-01 4.520e-01 >) -# ([4] <6.660e-01 3.340e-01 >) -# ([5] <2.107e-01 7.893e-01 >) -# ([6] <8.178e-01 1.822e-01 >) -# ([7] <2.327e-01 7.673e-01 >) -# ([8] <2.171e-01 7.829e-01 >) -# ([9] <2.052e-01 7.948e-01 >) -# ([10] <7.665e-01 2.335e-01 >) -# ([11] <1.217e-01 8.783e-01 >) -# ([12] <4.214e-01 5.786e-01 >) -# ([13] <5.348e-01 4.652e-01 >) -# ([14] <6.291e-01 3.709e-01 >) -# ([15] <1.357e-01 8.643e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.556e-01 4.444e-01 >) +# ({x2} <4.587e-01 5.413e-01 >) +# ({x3} <5.480e-01 4.520e-01 >) +# ({x4} <6.660e-01 3.340e-01 >) +# ({x5} <2.107e-01 7.893e-01 >) +# ({x6} <8.178e-01 1.822e-01 >) +# ({x7} <2.327e-01 7.673e-01 >) +# ({x8} <2.171e-01 7.829e-01 >) +# ({x9} <2.052e-01 7.948e-01 >) +# ({x10} <7.665e-01 2.335e-01 >) +# ({x11} <1.217e-01 8.783e-01 >) +# ({x12} <4.214e-01 5.786e-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 -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.556e-01 4.444e-01 >) -# ([2] <4.587e-01 5.413e-01 >) -# ([3] <5.480e-01 4.520e-01 >) -# ([4] <6.660e-01 3.340e-01 >) -# ([5] <2.107e-01 7.893e-01 >) -# ([6] <8.178e-01 1.822e-01 >) -# ([7] <2.327e-01 7.673e-01 >) -# ([8] <2.171e-01 7.829e-01 >) -# ([9] <2.052e-01 7.948e-01 >) -# ([10] <7.665e-01 2.335e-01 >) -# ([11] <1.217e-01 8.783e-01 >) -# ([12] <4.214e-01 5.786e-01 >) -# ([13] <5.348e-01 4.652e-01 >) -# ([14] <6.291e-01 3.709e-01 >) -# ([15] <1.357e-01 8.643e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.556e-01 4.444e-01 >) +# ({x2} <4.587e-01 5.413e-01 >) +# ({x3} <5.480e-01 4.520e-01 >) +# ({x4} <6.660e-01 3.340e-01 >) +# ({x5} <2.107e-01 7.893e-01 >) +# ({x6} <8.178e-01 1.822e-01 >) +# ({x7} <2.327e-01 7.673e-01 >) +# ({x8} <2.171e-01 7.829e-01 >) +# ({x9} <2.052e-01 7.948e-01 >) +# ({x10} <7.665e-01 2.335e-01 >) +# ({x11} <1.217e-01 8.783e-01 >) +# ({x12} <4.214e-01 5.786e-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 -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.556e-01 4.444e-01 >) -# ([2] <4.587e-01 5.413e-01 >) -# ([3] <5.480e-01 4.520e-01 >) -# ([4] <6.660e-01 3.340e-01 >) -# ([5] <2.107e-01 7.893e-01 >) -# ([6] <8.178e-01 1.822e-01 >) -# ([7] <2.327e-01 7.673e-01 >) -# ([8] <2.171e-01 7.829e-01 >) -# ([9] <2.052e-01 7.948e-01 >) -# ([10] <7.665e-01 2.335e-01 >) -# ([11] <1.217e-01 8.783e-01 >) -# ([12] <4.214e-01 5.786e-01 >) -# ([13] <5.348e-01 4.652e-01 >) -# ([14] <6.291e-01 3.709e-01 >) -# ([15] <1.357e-01 8.643e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.556e-01 4.444e-01 >) +# ({x2} <4.587e-01 5.413e-01 >) +# ({x3} <5.480e-01 4.520e-01 >) +# ({x4} <6.660e-01 3.340e-01 >) +# ({x5} <2.107e-01 7.893e-01 >) +# ({x6} <8.178e-01 1.822e-01 >) +# ({x7} <2.327e-01 7.673e-01 >) +# ({x8} <2.171e-01 7.829e-01 >) +# ({x9} <2.052e-01 7.948e-01 >) +# ({x10} <7.665e-01 2.335e-01 >) +# ({x11} <1.217e-01 8.783e-01 >) +# ({x12} <4.214e-01 5.786e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 -9.409e-02 1.000e-09 -# ([0] <2.053e-01 7.947e-01 >) -# ([1] <9.163e-01 8.373e-02 >) -# ([2] <1.579e-01 8.421e-01 >) -# ([3] <6.986e-01 3.014e-01 >) -# ([4] <8.982e-01 1.018e-01 >) -# ([5] <1.830e-01 8.170e-01 >) -# ([6] <9.597e-01 4.033e-02 >) -# ([7] <1.841e-01 8.159e-01 >) -# ([8] <4.385e-03 9.956e-01 >) -# ([9] <5.075e-02 9.492e-01 >) -# ([10] <9.685e-01 3.149e-02 >) -# ([11] <2.957e-02 9.704e-01 >) -# ([12] <9.632e-02 9.037e-01 >) -# ([13] <8.148e-01 1.852e-01 >) -# ([14] <8.338e-01 1.662e-01 >) -# ([15] <5.661e-03 9.943e-01 >) +# ({x0} <2.053e-01 7.947e-01 >) +# ({x1} <9.163e-01 8.373e-02 >) +# ({x2} <1.579e-01 8.421e-01 >) +# ({x3} <6.986e-01 3.014e-01 >) +# ({x4} <8.982e-01 1.018e-01 >) +# ({x5} <1.830e-01 8.170e-01 >) +# ({x6} <9.597e-01 4.033e-02 >) +# ({x7} <1.841e-01 8.159e-01 >) +# ({x8} <4.385e-03 9.956e-01 >) +# ({x9} <5.075e-02 9.492e-01 >) +# ({x10} <9.685e-01 3.149e-02 >) +# ({x11} <2.957e-02 9.704e-01 >) +# ({x12} <9.632e-02 9.037e-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 6.340e-04 1.000e-09 -# ([0] <3.980e-01 6.020e-01 >) -# ([1] <5.520e-01 4.480e-01 >) -# ([2] <4.620e-01 5.380e-01 >) -# ([3] <5.472e-01 4.528e-01 >) -# ([4] <6.643e-01 3.357e-01 >) -# ([5] <1.781e-01 8.219e-01 >) -# ([6] <8.442e-01 1.558e-01 >) -# ([7] <2.224e-01 7.776e-01 >) -# ([8] <2.154e-01 7.846e-01 >) -# ([9] <2.067e-01 7.933e-01 >) -# ([10] <7.742e-01 2.258e-01 >) -# ([11] <1.207e-01 8.793e-01 >) -# ([12] <4.318e-01 5.682e-01 >) -# ([13] <5.293e-01 4.707e-01 >) -# ([14] <6.409e-01 3.591e-01 >) -# ([15] <1.364e-01 8.636e-01 >) +# ({x0} <3.980e-01 6.020e-01 >) +# ({x1} <5.520e-01 4.480e-01 >) +# ({x2} <4.620e-01 5.380e-01 >) +# ({x3} <5.472e-01 4.528e-01 >) +# ({x4} <6.643e-01 3.357e-01 >) +# ({x5} <1.781e-01 8.219e-01 >) +# ({x6} <8.442e-01 1.558e-01 >) +# ({x7} <2.224e-01 7.776e-01 >) +# ({x8} <2.154e-01 7.846e-01 >) +# ({x9} <2.067e-01 7.933e-01 >) +# ({x10} <7.742e-01 2.258e-01 >) +# ({x11} <1.207e-01 8.793e-01 >) +# ({x12} <4.318e-01 5.682e-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 4.876e-03 1.000e-09 -# ([0] <4.091e-01 5.909e-01 >) -# ([1] <5.429e-01 4.571e-01 >) -# ([2] <4.697e-01 5.303e-01 >) -# ([3] <5.451e-01 4.549e-01 >) -# ([4] <6.509e-01 3.491e-01 >) -# ([5] <1.890e-01 8.110e-01 >) -# ([6] <8.298e-01 1.702e-01 >) -# ([7] <2.273e-01 7.727e-01 >) -# ([8] <2.407e-01 7.593e-01 >) -# ([9] <2.153e-01 7.847e-01 >) -# ([10] <7.660e-01 2.340e-01 >) -# ([11] <1.252e-01 8.748e-01 >) -# ([12] <4.383e-01 5.617e-01 >) -# ([13] <5.298e-01 4.702e-01 >) -# ([14] <6.299e-01 3.701e-01 >) -# ([15] <1.384e-01 8.616e-01 >) +# ({x0} <4.091e-01 5.909e-01 >) +# ({x1} <5.429e-01 4.571e-01 >) +# ({x2} <4.697e-01 5.303e-01 >) +# ({x3} <5.451e-01 4.549e-01 >) +# ({x4} <6.509e-01 3.491e-01 >) +# ({x5} <1.890e-01 8.110e-01 >) +# ({x6} <8.298e-01 1.702e-01 >) +# ({x7} <2.273e-01 7.727e-01 >) +# ({x8} <2.407e-01 7.593e-01 >) +# ({x9} <2.153e-01 7.847e-01 >) +# ({x10} <7.660e-01 2.340e-01 >) +# ({x11} <1.252e-01 8.748e-01 >) +# ({x12} <4.383e-01 5.617e-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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 -3.303e-01 1.000e-09 -# ([0] <0.000e+00 1.000e+00 >) -# ([1] <1.000e+00 0.000e+00 >) -# ([2] <0.000e+00 1.000e+00 >) -# ([3] <1.000e+00 0.000e+00 >) -# ([4] <1.000e+00 0.000e+00 >) -# ([5] <0.000e+00 1.000e+00 >) -# ([6] <1.000e+00 0.000e+00 >) -# ([7] <0.000e+00 1.000e+00 >) -# ([8] <0.000e+00 1.000e+00 >) -# ([9] <0.000e+00 1.000e+00 >) -# ([10] <1.000e+00 0.000e+00 >) -# ([11] <0.000e+00 1.000e+00 >) -# ([12] <1.000e+00 0.000e+00 >) -# ([13] <0.000e+00 1.000e+00 >) -# ([14] <0.000e+00 1.000e+00 >) -# ([15] <0.000e+00 1.000e+00 >) +# ({x0} <0.000e+00 1.000e+00 >) +# ({x1} <1.000e+00 0.000e+00 >) +# ({x2} <0.000e+00 1.000e+00 >) +# ({x3} <1.000e+00 0.000e+00 >) +# ({x4} <1.000e+00 0.000e+00 >) +# ({x5} <0.000e+00 1.000e+00 >) +# ({x6} <1.000e+00 0.000e+00 >) +# ({x7} <0.000e+00 1.000e+00 >) +# ({x8} <0.000e+00 1.000e+00 >) +# ({x9} <0.000e+00 1.000e+00 >) +# ({x10} <1.000e+00 0.000e+00 >) +# ({x11} <0.000e+00 1.000e+00 >) +# ({x12} <1.000e+00 0.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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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.408e-01 -2.745e-01 1.000e-09 -# ([0] <0.000e+00 1.000e+00 >) -# ([1] <1.000e+00 0.000e+00 >) -# ([2] <0.000e+00 1.000e+00 >) -# ([3] <1.000e+00 4.777e-212 >) -# ([4] <1.000e+00 0.000e+00 >) -# ([5] <1.000e+00 7.579e-78 >) -# ([6] <1.000e+00 0.000e+00 >) -# ([7] <0.000e+00 1.000e+00 >) -# ([8] <0.000e+00 1.000e+00 >) -# ([9] <0.000e+00 1.000e+00 >) -# ([10] <1.000e+00 0.000e+00 >) -# ([11] <0.000e+00 1.000e+00 >) -# ([12] <1.338e-115 1.000e+00 >) -# ([13] <1.000e+00 3.513e-118 >) -# ([14] <1.000e+00 0.000e+00 >) -# ([15] <0.000e+00 1.000e+00 >) +# ({x0} <0.000e+00 1.000e+00 >) +# ({x1} <1.000e+00 0.000e+00 >) +# ({x2} <0.000e+00 1.000e+00 >) +# ({x3} <1.000e+00 4.777e-212 >) +# ({x4} <1.000e+00 0.000e+00 >) +# ({x5} <1.000e+00 7.579e-78 >) +# ({x6} <1.000e+00 0.000e+00 >) +# ({x7} <0.000e+00 1.000e+00 >) +# ({x8} <0.000e+00 1.000e+00 >) +# ({x9} <0.000e+00 1.000e+00 >) +# ({x10} <1.000e+00 0.000e+00 >) +# ({x11} <0.000e+00 1.000e+00 >) +# ({x12} <1.338e-115 1.000e+00 >) +# ({x13} <1.000e+00 3.513e-118 >) +# ({x14} <1.000e+00 0.000e+00 >) +# ({x15} <0.000e+00 1.000e+00 >) GBP_LOOP5 7.893e-01 3.408e-01 -2.745e-01 1.000e-09 -# ([0] <0.000e+00 1.000e+00 >) -# ([1] <1.000e+00 0.000e+00 >) -# ([2] <0.000e+00 1.000e+00 >) -# ([3] <1.000e+00 4.777e-212 >) -# ([4] <1.000e+00 0.000e+00 >) -# ([5] <1.000e+00 7.579e-78 >) -# ([6] <1.000e+00 0.000e+00 >) -# ([7] <0.000e+00 1.000e+00 >) -# ([8] <0.000e+00 1.000e+00 >) -# ([9] <0.000e+00 1.000e+00 >) -# ([10] <1.000e+00 0.000e+00 >) -# ([11] <0.000e+00 1.000e+00 >) -# ([12] <1.338e-115 1.000e+00 >) -# ([13] <1.000e+00 3.513e-118 >) -# ([14] <1.000e+00 0.000e+00 >) -# ([15] <0.000e+00 1.000e+00 >) +# ({x0} <0.000e+00 1.000e+00 >) +# ({x1} <1.000e+00 0.000e+00 >) +# ({x2} <0.000e+00 1.000e+00 >) +# ({x3} <1.000e+00 4.777e-212 >) +# ({x4} <1.000e+00 0.000e+00 >) +# ({x5} <1.000e+00 7.579e-78 >) +# ({x6} <1.000e+00 0.000e+00 >) +# ({x7} <0.000e+00 1.000e+00 >) +# ({x8} <0.000e+00 1.000e+00 >) +# ({x9} <0.000e+00 1.000e+00 >) +# ({x10} <1.000e+00 0.000e+00 >) +# ({x11} <0.000e+00 1.000e+00 >) +# ({x12} <1.338e-115 1.000e+00 >) +# ({x13} <1.000e+00 3.513e-118 >) +# ({x14} <1.000e+00 0.000e+00 >) +# ({x15} <0.000e+00 1.000e+00 >) GBP_LOOP6 7.948e-01 4.458e-01 -4.096e-01 1.000e-09 -# ([0] <1.000e+00 0.000e+00 >) -# ([1] <0.000e+00 1.000e+00 >) -# ([2] <1.000e+00 0.000e+00 >) -# ([3] <0.000e+00 1.000e+00 >) -# ([4] <0.000e+00 1.000e+00 >) -# ([5] <0.000e+00 1.000e+00 >) -# ([6] <1.000e+00 0.000e+00 >) -# ([7] <0.000e+00 1.000e+00 >) -# ([8] <1.000e+00 0.000e+00 >) -# ([9] <1.000e+00 0.000e+00 >) -# ([10] <1.000e+00 0.000e+00 >) -# ([11] <0.000e+00 1.000e+00 >) -# ([12] <0.000e+00 1.000e+00 >) -# ([13] <1.000e+00 0.000e+00 >) -# ([14] <0.000e+00 1.000e+00 >) -# ([15] <0.000e+00 1.000e+00 >) +# ({x0} <1.000e+00 0.000e+00 >) +# ({x1} <0.000e+00 1.000e+00 >) +# ({x2} <1.000e+00 0.000e+00 >) +# ({x3} <0.000e+00 1.000e+00 >) +# ({x4} <0.000e+00 1.000e+00 >) +# ({x5} <0.000e+00 1.000e+00 >) +# ({x6} <1.000e+00 0.000e+00 >) +# ({x7} <0.000e+00 1.000e+00 >) +# ({x8} <1.000e+00 0.000e+00 >) +# ({x9} <1.000e+00 0.000e+00 >) +# ({x10} <1.000e+00 0.000e+00 >) +# ({x11} <0.000e+00 1.000e+00 >) +# ({x12} <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_LOOP7 7.948e-01 4.458e-01 -4.096e-01 1.000e-09 -# ([0] <1.000e+00 0.000e+00 >) -# ([1] <0.000e+00 1.000e+00 >) -# ([2] <1.000e+00 0.000e+00 >) -# ([3] <0.000e+00 1.000e+00 >) -# ([4] <0.000e+00 1.000e+00 >) -# ([5] <0.000e+00 1.000e+00 >) -# ([6] <1.000e+00 0.000e+00 >) -# ([7] <0.000e+00 1.000e+00 >) -# ([8] <1.000e+00 0.000e+00 >) -# ([9] <1.000e+00 0.000e+00 >) -# ([10] <1.000e+00 0.000e+00 >) -# ([11] <0.000e+00 1.000e+00 >) -# ([12] <0.000e+00 1.000e+00 >) -# ([13] <1.000e+00 0.000e+00 >) -# ([14] <0.000e+00 1.000e+00 >) -# ([15] <0.000e+00 1.000e+00 >) +# ({x0} <1.000e+00 0.000e+00 >) +# ({x1} <0.000e+00 1.000e+00 >) +# ({x2} <1.000e+00 0.000e+00 >) +# ({x3} <0.000e+00 1.000e+00 >) +# ({x4} <0.000e+00 1.000e+00 >) +# ({x5} <0.000e+00 1.000e+00 >) +# ({x6} <1.000e+00 0.000e+00 >) +# ({x7} <0.000e+00 1.000e+00 >) +# ({x8} <1.000e+00 0.000e+00 >) +# ({x9} <1.000e+00 0.000e+00 >) +# ({x10} <1.000e+00 0.000e+00 >) +# ({x11} <0.000e+00 1.000e+00 >) +# ({x12} <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 >) HAK_MIN 9.483e-02 3.078e-02 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 9.675e-01 1.000e-09 -# ([0] <4.902e-01 5.098e-01 >) -# ([1] <5.098e-01 4.902e-01 >) -# ([2] <4.902e-01 5.098e-01 >) -# ([3] <5.098e-01 4.902e-01 >) -# ([4] <5.098e-01 4.902e-01 >) -# ([5] <5.098e-01 4.902e-01 >) -# ([6] <4.902e-01 5.098e-01 >) -# ([7] <5.098e-01 4.902e-01 >) -# ([8] <4.902e-01 5.098e-01 >) -# ([9] <4.902e-01 5.098e-01 >) -# ([10] <5.098e-01 4.902e-01 >) -# ([11] <4.902e-01 5.098e-01 >) -# ([12] <4.902e-01 5.098e-01 >) -# ([13] <5.098e-01 4.902e-01 >) -# ([14] <5.098e-01 4.902e-01 >) -# ([15] <4.902e-01 5.098e-01 >) +# ({x0} <4.902e-01 5.098e-01 >) +# ({x1} <5.098e-01 4.902e-01 >) +# ({x2} <4.902e-01 5.098e-01 >) +# ({x3} <5.098e-01 4.902e-01 >) +# ({x4} <5.098e-01 4.902e-01 >) +# ({x5} <5.098e-01 4.902e-01 >) +# ({x6} <4.902e-01 5.098e-01 >) +# ({x7} <5.098e-01 4.902e-01 >) +# ({x8} <4.902e-01 5.098e-01 >) +# ({x9} <4.902e-01 5.098e-01 >) +# ({x10} <5.098e-01 4.902e-01 >) +# ({x11} <4.902e-01 5.098e-01 >) +# ({x12} <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 1.737e-02 1.000e-09 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 -2.503e-04 1.000e-09 -# ([0] <3.909e-01 6.091e-01 >) -# ([1] <5.556e-01 4.444e-01 >) -# ([2] <4.585e-01 5.415e-01 >) -# ([3] <5.490e-01 4.510e-01 >) -# ([4] <6.663e-01 3.337e-01 >) -# ([5] <2.089e-01 7.911e-01 >) -# ([6] <8.197e-01 1.803e-01 >) -# ([7] <2.321e-01 7.679e-01 >) -# ([8] <2.160e-01 7.840e-01 >) -# ([9] <2.054e-01 7.946e-01 >) -# ([10] <7.685e-01 2.315e-01 >) -# ([11] <1.182e-01 8.818e-01 >) -# ([12] <4.206e-01 5.794e-01 >) -# ([13] <5.351e-01 4.649e-01 >) -# ([14] <6.319e-01 3.681e-01 >) -# ([15] <1.307e-01 8.693e-01 >) +# ({x0} <3.909e-01 6.091e-01 >) +# ({x1} <5.556e-01 4.444e-01 >) +# ({x2} <4.585e-01 5.415e-01 >) +# ({x3} <5.490e-01 4.510e-01 >) +# ({x4} <6.663e-01 3.337e-01 >) +# ({x5} <2.089e-01 7.911e-01 >) +# ({x6} <8.197e-01 1.803e-01 >) +# ({x7} <2.321e-01 7.679e-01 >) +# ({x8} <2.160e-01 7.840e-01 >) +# ({x9} <2.054e-01 7.946e-01 >) +# ({x10} <7.685e-01 2.315e-01 >) +# ({x11} <1.182e-01 8.818e-01 >) +# ({x12} <4.206e-01 5.794e-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 -2.503e-04 1.000e-09 -# ([0] <3.909e-01 6.091e-01 >) -# ([1] <5.556e-01 4.444e-01 >) -# ([2] <4.585e-01 5.415e-01 >) -# ([3] <5.490e-01 4.510e-01 >) -# ([4] <6.663e-01 3.337e-01 >) -# ([5] <2.089e-01 7.911e-01 >) -# ([6] <8.197e-01 1.803e-01 >) -# ([7] <2.321e-01 7.679e-01 >) -# ([8] <2.160e-01 7.840e-01 >) -# ([9] <2.054e-01 7.946e-01 >) -# ([10] <7.685e-01 2.315e-01 >) -# ([11] <1.182e-01 8.818e-01 >) -# ([12] <4.206e-01 5.794e-01 >) -# ([13] <5.351e-01 4.649e-01 >) -# ([14] <6.319e-01 3.681e-01 >) -# ([15] <1.307e-01 8.693e-01 >) +# ({x0} <3.909e-01 6.091e-01 >) +# ({x1} <5.556e-01 4.444e-01 >) +# ({x2} <4.585e-01 5.415e-01 >) +# ({x3} <5.490e-01 4.510e-01 >) +# ({x4} <6.663e-01 3.337e-01 >) +# ({x5} <2.089e-01 7.911e-01 >) +# ({x6} <8.197e-01 1.803e-01 >) +# ({x7} <2.321e-01 7.679e-01 >) +# ({x8} <2.160e-01 7.840e-01 >) +# ({x9} <2.054e-01 7.946e-01 >) +# ({x10} <7.685e-01 2.315e-01 >) +# ({x11} <1.182e-01 8.818e-01 >) +# ({x12} <4.206e-01 5.794e-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 -# ([0] <3.941e-01 6.059e-01 >) -# ([1] <5.534e-01 4.466e-01 >) -# ([2] <4.602e-01 5.398e-01 >) -# ([3] <5.477e-01 4.523e-01 >) -# ([4] <6.557e-01 3.443e-01 >) -# ([5] <2.084e-01 7.916e-01 >) -# ([6] <8.163e-01 1.837e-01 >) -# ([7] <2.332e-01 7.668e-01 >) -# ([8] <2.334e-01 7.666e-01 >) -# ([9] <2.220e-01 7.780e-01 >) -# ([10] <7.583e-01 2.417e-01 >) -# ([11] <1.221e-01 8.779e-01 >) -# ([12] <4.190e-01 5.810e-01 >) -# ([13] <5.407e-01 4.593e-01 >) -# ([14] <6.252e-01 3.748e-01 >) -# ([15] <1.346e-01 8.654e-01 >) +# ({x0} <3.941e-01 6.059e-01 >) +# ({x1} <5.534e-01 4.466e-01 >) +# ({x2} <4.602e-01 5.398e-01 >) +# ({x3} <5.477e-01 4.523e-01 >) +# ({x4} <6.557e-01 3.443e-01 >) +# ({x5} <2.084e-01 7.916e-01 >) +# ({x6} <8.163e-01 1.837e-01 >) +# ({x7} <2.332e-01 7.668e-01 >) +# ({x8} <2.334e-01 7.666e-01 >) +# ({x9} <2.220e-01 7.780e-01 >) +# ({x10} <7.583e-01 2.417e-01 >) +# ({x11} <1.221e-01 8.779e-01 >) +# ({x12} <4.190e-01 5.810e-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 8.359e-03 2.508e-03 N/A 1.000e-09 -# ([0] <3.900e-01 6.100e-01 >) -# ([1] <5.560e-01 4.440e-01 >) -# ([2] <4.589e-01 5.411e-01 >) -# ([3] <5.480e-01 4.520e-01 >) -# ([4] <6.626e-01 3.374e-01 >) -# ([5] <2.105e-01 7.895e-01 >) -# ([6] <8.168e-01 1.832e-01 >) -# ([7] <2.332e-01 7.668e-01 >) -# ([8] <2.242e-01 7.758e-01 >) -# ([9] <2.136e-01 7.864e-01 >) -# ([10] <7.621e-01 2.379e-01 >) -# ([11] <1.206e-01 8.794e-01 >) -# ([12] <4.180e-01 5.820e-01 >) -# ([13] <5.404e-01 4.596e-01 >) -# ([14] <6.273e-01 3.727e-01 >) -# ([15] <1.344e-01 8.656e-01 >) +# ({x0} <3.900e-01 6.100e-01 >) +# ({x1} <5.560e-01 4.440e-01 >) +# ({x2} <4.589e-01 5.411e-01 >) +# ({x3} <5.480e-01 4.520e-01 >) +# ({x4} <6.626e-01 3.374e-01 >) +# ({x5} <2.105e-01 7.895e-01 >) +# ({x6} <8.168e-01 1.832e-01 >) +# ({x7} <2.332e-01 7.668e-01 >) +# ({x8} <2.242e-01 7.758e-01 >) +# ({x9} <2.136e-01 7.864e-01 >) +# ({x10} <7.621e-01 2.379e-01 >) +# ({x11} <1.206e-01 8.794e-01 >) +# ({x12} <4.180e-01 5.820e-01 >) +# ({x13} <5.404e-01 4.596e-01 >) +# ({x14} <6.273e-01 3.727e-01 >) +# ({x15} <1.344e-01 8.656e-01 >) MR_EXACT_FULL 3.527e-03 1.038e-03 N/A 1.000e-09 -# ([0] <3.867e-01 6.133e-01 >) -# ([1] <5.572e-01 4.428e-01 >) -# ([2] <4.585e-01 5.415e-01 >) -# ([3] <5.478e-01 4.522e-01 >) -# ([4] <6.681e-01 3.319e-01 >) -# ([5] <2.101e-01 7.899e-01 >) -# ([6] <8.179e-01 1.821e-01 >) -# ([7] <2.329e-01 7.671e-01 >) -# ([8] <2.166e-01 7.834e-01 >) -# ([9] <2.053e-01 7.947e-01 >) -# ([10] <7.666e-01 2.334e-01 >) -# ([11] <1.201e-01 8.799e-01 >) -# ([12] <4.194e-01 5.806e-01 >) -# ([13] <5.384e-01 4.616e-01 >) -# ([14] <6.296e-01 3.704e-01 >) -# ([15] <1.344e-01 8.656e-01 >) +# ({x0} <3.867e-01 6.133e-01 >) +# ({x1} <5.572e-01 4.428e-01 >) +# ({x2} <4.585e-01 5.415e-01 >) +# ({x3} <5.478e-01 4.522e-01 >) +# ({x4} <6.681e-01 3.319e-01 >) +# ({x5} <2.101e-01 7.899e-01 >) +# ({x6} <8.179e-01 1.821e-01 >) +# ({x7} <2.329e-01 7.671e-01 >) +# ({x8} <2.166e-01 7.834e-01 >) +# ({x9} <2.053e-01 7.947e-01 >) +# ({x10} <7.666e-01 2.334e-01 >) +# ({x11} <1.201e-01 8.799e-01 >) +# ({x12} <4.194e-01 5.806e-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 -# ([0] <3.923e-01 6.077e-01 >) -# ([1] <5.529e-01 4.471e-01 >) -# ([2] <4.608e-01 5.392e-01 >) -# ([3] <5.467e-01 4.533e-01 >) -# ([4] <6.546e-01 3.454e-01 >) -# ([5] <2.071e-01 7.929e-01 >) -# ([6] <8.175e-01 1.825e-01 >) -# ([7] <2.325e-01 7.675e-01 >) -# ([8] <2.364e-01 7.636e-01 >) -# ([9] <2.228e-01 7.772e-01 >) -# ([10] <7.577e-01 2.423e-01 >) -# ([11] <1.240e-01 8.760e-01 >) -# ([12] <4.258e-01 5.742e-01 >) -# ([13] <5.388e-01 4.612e-01 >) -# ([14] <6.239e-01 3.761e-01 >) -# ([15] <1.369e-01 8.631e-01 >) +# ({x0} <3.923e-01 6.077e-01 >) +# ({x1} <5.529e-01 4.471e-01 >) +# ({x2} <4.608e-01 5.392e-01 >) +# ({x3} <5.467e-01 4.533e-01 >) +# ({x4} <6.546e-01 3.454e-01 >) +# ({x5} <2.071e-01 7.929e-01 >) +# ({x6} <8.175e-01 1.825e-01 >) +# ({x7} <2.325e-01 7.675e-01 >) +# ({x8} <2.364e-01 7.636e-01 >) +# ({x9} <2.228e-01 7.772e-01 >) +# ({x10} <7.577e-01 2.423e-01 >) +# ({x11} <1.240e-01 8.760e-01 >) +# ({x12} <4.258e-01 5.742e-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 1.089e-02 3.076e-03 N/A 1.000e-09 -# ([0] <3.884e-01 6.116e-01 >) -# ([1] <5.551e-01 4.449e-01 >) -# ([2] <4.598e-01 5.402e-01 >) -# ([3] <5.469e-01 4.531e-01 >) -# ([4] <6.610e-01 3.390e-01 >) -# ([5] <2.089e-01 7.911e-01 >) -# ([6] <8.182e-01 1.818e-01 >) -# ([7] <2.325e-01 7.675e-01 >) -# ([8] <2.280e-01 7.720e-01 >) -# ([9] <2.148e-01 7.852e-01 >) -# ([10] <7.613e-01 2.387e-01 >) -# ([11] <1.228e-01 8.772e-01 >) -# ([12] <4.254e-01 5.746e-01 >) -# ([13] <5.383e-01 4.617e-01 >) -# ([14] <6.257e-01 3.743e-01 >) -# ([15] <1.370e-01 8.630e-01 >) +# ({x0} <3.884e-01 6.116e-01 >) +# ({x1} <5.551e-01 4.449e-01 >) +# ({x2} <4.598e-01 5.402e-01 >) +# ({x3} <5.469e-01 4.531e-01 >) +# ({x4} <6.610e-01 3.390e-01 >) +# ({x5} <2.089e-01 7.911e-01 >) +# ({x6} <8.182e-01 1.818e-01 >) +# ({x7} <2.325e-01 7.675e-01 >) +# ({x8} <2.280e-01 7.720e-01 >) +# ({x9} <2.148e-01 7.852e-01 >) +# ({x10} <7.613e-01 2.387e-01 >) +# ({x11} <1.228e-01 8.772e-01 >) +# ({x12} <4.254e-01 5.746e-01 >) +# ({x13} <5.383e-01 4.617e-01 >) +# ({x14} <6.257e-01 3.743e-01 >) +# ({x15} <1.370e-01 8.630e-01 >) MR_EXACT_LINEAR 5.617e-03 1.742e-03 N/A 1.000e-09 -# ([0] <3.853e-01 6.147e-01 >) -# ([1] <5.560e-01 4.440e-01 >) -# ([2] <4.596e-01 5.404e-01 >) -# ([3] <5.466e-01 4.534e-01 >) -# ([4] <6.661e-01 3.339e-01 >) -# ([5] <2.083e-01 7.917e-01 >) -# ([6] <8.194e-01 1.806e-01 >) -# ([7] <2.320e-01 7.680e-01 >) -# ([8] <2.210e-01 7.790e-01 >) -# ([9] <2.069e-01 7.931e-01 >) -# ([10] <7.657e-01 2.343e-01 >) -# ([11] <1.225e-01 8.775e-01 >) -# ([12] <4.270e-01 5.730e-01 >) -# ([13] <5.362e-01 4.638e-01 >) -# ([14] <6.279e-01 3.721e-01 >) -# ([15] <1.372e-01 8.628e-01 >) +# ({x0} <3.853e-01 6.147e-01 >) +# ({x1} <5.560e-01 4.440e-01 >) +# ({x2} <4.596e-01 5.404e-01 >) +# ({x3} <5.466e-01 4.534e-01 >) +# ({x4} <6.661e-01 3.339e-01 >) +# ({x5} <2.083e-01 7.917e-01 >) +# ({x6} <8.194e-01 1.806e-01 >) +# ({x7} <2.320e-01 7.680e-01 >) +# ({x8} <2.210e-01 7.790e-01 >) +# ({x9} <2.069e-01 7.931e-01 >) +# ({x10} <7.657e-01 2.343e-01 >) +# ({x11} <1.225e-01 8.775e-01 >) +# ({x12} <4.270e-01 5.730e-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 -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.559e-01 4.441e-01 >) -# ([2] <4.583e-01 5.417e-01 >) -# ([3] <5.482e-01 4.518e-01 >) -# ([4] <6.657e-01 3.343e-01 >) -# ([5] <2.113e-01 7.887e-01 >) -# ([6] <8.172e-01 1.828e-01 >) -# ([7] <2.329e-01 7.671e-01 >) -# ([8] <2.182e-01 7.818e-01 >) -# ([9] <2.062e-01 7.938e-01 >) -# ([10] <7.652e-01 2.348e-01 >) -# ([11] <1.214e-01 8.786e-01 >) -# ([12] <4.205e-01 5.795e-01 >) -# ([13] <5.358e-01 4.642e-01 >) -# ([14] <6.285e-01 3.715e-01 >) -# ([15] <1.359e-01 8.641e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.559e-01 4.441e-01 >) +# ({x2} <4.583e-01 5.417e-01 >) +# ({x3} <5.482e-01 4.518e-01 >) +# ({x4} <6.657e-01 3.343e-01 >) +# ({x5} <2.113e-01 7.887e-01 >) +# ({x6} <8.172e-01 1.828e-01 >) +# ({x7} <2.329e-01 7.671e-01 >) +# ({x8} <2.182e-01 7.818e-01 >) +# ({x9} <2.062e-01 7.938e-01 >) +# ({x10} <7.652e-01 2.348e-01 >) +# ({x11} <1.214e-01 8.786e-01 >) +# ({x12} <4.205e-01 5.795e-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 -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.559e-01 4.441e-01 >) -# ([2] <4.583e-01 5.417e-01 >) -# ([3] <5.482e-01 4.518e-01 >) -# ([4] <6.657e-01 3.343e-01 >) -# ([5] <2.113e-01 7.887e-01 >) -# ([6] <8.172e-01 1.828e-01 >) -# ([7] <2.329e-01 7.671e-01 >) -# ([8] <2.182e-01 7.818e-01 >) -# ([9] <2.062e-01 7.938e-01 >) -# ([10] <7.652e-01 2.348e-01 >) -# ([11] <1.214e-01 8.786e-01 >) -# ([12] <4.205e-01 5.795e-01 >) -# ([13] <5.358e-01 4.642e-01 >) -# ([14] <6.285e-01 3.715e-01 >) -# ([15] <1.359e-01 8.641e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.559e-01 4.441e-01 >) +# ({x2} <4.583e-01 5.417e-01 >) +# ({x3} <5.482e-01 4.518e-01 >) +# ({x4} <6.657e-01 3.343e-01 >) +# ({x5} <2.113e-01 7.887e-01 >) +# ({x6} <8.172e-01 1.828e-01 >) +# ({x7} <2.329e-01 7.671e-01 >) +# ({x8} <2.182e-01 7.818e-01 >) +# ({x9} <2.062e-01 7.938e-01 >) +# ({x10} <7.652e-01 2.348e-01 >) +# ({x11} <1.214e-01 8.786e-01 >) +# ({x12} <4.205e-01 5.795e-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 -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.559e-01 4.441e-01 >) -# ([2] <4.583e-01 5.417e-01 >) -# ([3] <5.482e-01 4.518e-01 >) -# ([4] <6.657e-01 3.343e-01 >) -# ([5] <2.113e-01 7.887e-01 >) -# ([6] <8.172e-01 1.828e-01 >) -# ([7] <2.329e-01 7.671e-01 >) -# ([8] <2.182e-01 7.818e-01 >) -# ([9] <2.062e-01 7.938e-01 >) -# ([10] <7.652e-01 2.348e-01 >) -# ([11] <1.214e-01 8.786e-01 >) -# ([12] <4.205e-01 5.795e-01 >) -# ([13] <5.358e-01 4.642e-01 >) -# ([14] <6.285e-01 3.715e-01 >) -# ([15] <1.359e-01 8.641e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.559e-01 4.441e-01 >) +# ({x2} <4.583e-01 5.417e-01 >) +# ({x3} <5.482e-01 4.518e-01 >) +# ({x4} <6.657e-01 3.343e-01 >) +# ({x5} <2.113e-01 7.887e-01 >) +# ({x6} <8.172e-01 1.828e-01 >) +# ({x7} <2.329e-01 7.671e-01 >) +# ({x8} <2.182e-01 7.818e-01 >) +# ({x9} <2.062e-01 7.938e-01 >) +# ({x10} <7.652e-01 2.348e-01 >) +# ({x11} <1.214e-01 8.786e-01 >) +# ({x12} <4.205e-01 5.795e-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 -# ([0] <3.888e-01 6.112e-01 >) -# ([1] <5.559e-01 4.441e-01 >) -# ([2] <4.583e-01 5.417e-01 >) -# ([3] <5.482e-01 4.518e-01 >) -# ([4] <6.657e-01 3.343e-01 >) -# ([5] <2.113e-01 7.887e-01 >) -# ([6] <8.172e-01 1.828e-01 >) -# ([7] <2.329e-01 7.671e-01 >) -# ([8] <2.182e-01 7.818e-01 >) -# ([9] <2.062e-01 7.938e-01 >) -# ([10] <7.652e-01 2.348e-01 >) -# ([11] <1.214e-01 8.786e-01 >) -# ([12] <4.205e-01 5.795e-01 >) -# ([13] <5.358e-01 4.642e-01 >) -# ([14] <6.285e-01 3.715e-01 >) -# ([15] <1.359e-01 8.641e-01 >) +# ({x0} <3.888e-01 6.112e-01 >) +# ({x1} <5.559e-01 4.441e-01 >) +# ({x2} <4.583e-01 5.417e-01 >) +# ({x3} <5.482e-01 4.518e-01 >) +# ({x4} <6.657e-01 3.343e-01 >) +# ({x5} <2.113e-01 7.887e-01 >) +# ({x6} <8.172e-01 1.828e-01 >) +# ({x7} <2.329e-01 7.671e-01 >) +# ({x8} <2.182e-01 7.818e-01 >) +# ({x9} <2.062e-01 7.938e-01 >) +# ({x10} <7.652e-01 2.348e-01 >) +# ({x11} <1.214e-01 8.786e-01 >) +# ({x12} <4.205e-01 5.795e-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 -# ([0] <3.859e-01 6.141e-01 >) -# ([1] <5.569e-01 4.431e-01 >) -# ([2] <4.719e-01 5.281e-01 >) -# ([3] <5.491e-01 4.509e-01 >) -# ([4] <6.629e-01 3.371e-01 >) -# ([5] <2.119e-01 7.881e-01 >) -# ([6] <8.245e-01 1.755e-01 >) -# ([7] <2.313e-01 7.687e-01 >) -# ([8] <2.191e-01 7.809e-01 >) -# ([9] <2.058e-01 7.942e-01 >) -# ([10] <7.698e-01 2.302e-01 >) -# ([11] <1.207e-01 8.793e-01 >) -# ([12] <4.179e-01 5.821e-01 >) -# ([13] <5.350e-01 4.650e-01 >) -# ([14] <6.290e-01 3.710e-01 >) -# ([15] <1.364e-01 8.636e-01 >) +# ({x0} <3.859e-01 6.141e-01 >) +# ({x1} <5.569e-01 4.431e-01 >) +# ({x2} <4.719e-01 5.281e-01 >) +# ({x3} <5.491e-01 4.509e-01 >) +# ({x4} <6.629e-01 3.371e-01 >) +# ({x5} <2.119e-01 7.881e-01 >) +# ({x6} <8.245e-01 1.755e-01 >) +# ({x7} <2.313e-01 7.687e-01 >) +# ({x8} <2.191e-01 7.809e-01 >) +# ({x9} <2.058e-01 7.942e-01 >) +# ({x10} <7.698e-01 2.302e-01 >) +# ({x11} <1.207e-01 8.793e-01 >) +# ({x12} <4.179e-01 5.821e-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 -# ([0] <3.859e-01 6.141e-01 >) -# ([1] <5.569e-01 4.431e-01 >) -# ([2] <4.719e-01 5.281e-01 >) -# ([3] <5.491e-01 4.509e-01 >) -# ([4] <6.629e-01 3.371e-01 >) -# ([5] <2.119e-01 7.881e-01 >) -# ([6] <8.245e-01 1.755e-01 >) -# ([7] <2.313e-01 7.687e-01 >) -# ([8] <2.191e-01 7.809e-01 >) -# ([9] <2.058e-01 7.942e-01 >) -# ([10] <7.698e-01 2.302e-01 >) -# ([11] <1.207e-01 8.793e-01 >) -# ([12] <4.179e-01 5.821e-01 >) -# ([13] <5.350e-01 4.650e-01 >) -# ([14] <6.290e-01 3.710e-01 >) -# ([15] <1.364e-01 8.636e-01 >) +# ({x0} <3.859e-01 6.141e-01 >) +# ({x1} <5.569e-01 4.431e-01 >) +# ({x2} <4.719e-01 5.281e-01 >) +# ({x3} <5.491e-01 4.509e-01 >) +# ({x4} <6.629e-01 3.371e-01 >) +# ({x5} <2.119e-01 7.881e-01 >) +# ({x6} <8.245e-01 1.755e-01 >) +# ({x7} <2.313e-01 7.687e-01 >) +# ({x8} <2.191e-01 7.809e-01 >) +# ({x9} <2.058e-01 7.942e-01 >) +# ({x10} <7.698e-01 2.302e-01 >) +# ({x11} <1.207e-01 8.793e-01 >) +# ({x12} <4.179e-01 5.821e-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 -# ([0] <3.872e-01 6.128e-01 >) -# ([1] <5.540e-01 4.460e-01 >) -# ([2] <4.596e-01 5.404e-01 >) -# ([3] <5.460e-01 4.540e-01 >) -# ([4] <6.601e-01 3.399e-01 >) -# ([5] <2.050e-01 7.950e-01 >) -# ([6] <8.200e-01 1.800e-01 >) -# ([7] <2.314e-01 7.686e-01 >) -# ([8] <2.327e-01 7.673e-01 >) -# ([9] <2.095e-01 7.905e-01 >) -# ([10] <7.621e-01 2.379e-01 >) -# ([11] <1.283e-01 8.717e-01 >) -# ([12] <4.367e-01 5.633e-01 >) -# ([13] <5.282e-01 4.718e-01 >) -# ([14] <6.240e-01 3.760e-01 >) -# ([15] <1.409e-01 8.591e-01 >) +# ({x0} <3.872e-01 6.128e-01 >) +# ({x1} <5.540e-01 4.460e-01 >) +# ({x2} <4.596e-01 5.404e-01 >) +# ({x3} <5.460e-01 4.540e-01 >) +# ({x4} <6.601e-01 3.399e-01 >) +# ({x5} <2.050e-01 7.950e-01 >) +# ({x6} <8.200e-01 1.800e-01 >) +# ({x7} <2.314e-01 7.686e-01 >) +# ({x8} <2.327e-01 7.673e-01 >) +# ({x9} <2.095e-01 7.905e-01 >) +# ({x10} <7.621e-01 2.379e-01 >) +# ({x11} <1.283e-01 8.717e-01 >) +# ({x12} <4.367e-01 5.633e-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 -# ([0] <3.872e-01 6.128e-01 >) -# ([1] <5.540e-01 4.460e-01 >) -# ([2] <4.596e-01 5.404e-01 >) -# ([3] <5.460e-01 4.540e-01 >) -# ([4] <6.601e-01 3.399e-01 >) -# ([5] <2.050e-01 7.950e-01 >) -# ([6] <8.200e-01 1.800e-01 >) -# ([7] <2.314e-01 7.686e-01 >) -# ([8] <2.327e-01 7.673e-01 >) -# ([9] <2.095e-01 7.905e-01 >) -# ([10] <7.621e-01 2.379e-01 >) -# ([11] <1.283e-01 8.717e-01 >) -# ([12] <4.367e-01 5.633e-01 >) -# ([13] <5.282e-01 4.718e-01 >) -# ([14] <6.240e-01 3.760e-01 >) -# ([15] <1.409e-01 8.591e-01 >) +# ({x0} <3.872e-01 6.128e-01 >) +# ({x1} <5.540e-01 4.460e-01 >) +# ({x2} <4.596e-01 5.404e-01 >) +# ({x3} <5.460e-01 4.540e-01 >) +# ({x4} <6.601e-01 3.399e-01 >) +# ({x5} <2.050e-01 7.950e-01 >) +# ({x6} <8.200e-01 1.800e-01 >) +# ({x7} <2.314e-01 7.686e-01 >) +# ({x8} <2.327e-01 7.673e-01 >) +# ({x9} <2.095e-01 7.905e-01 >) +# ({x10} <7.621e-01 2.379e-01 >) +# ({x11} <1.283e-01 8.717e-01 >) +# ({x12} <4.367e-01 5.633e-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 -# ([0] <3.872e-01 6.128e-01 >) -# ([1] <5.540e-01 4.460e-01 >) -# ([2] <4.596e-01 5.404e-01 >) -# ([3] <5.460e-01 4.540e-01 >) -# ([4] <6.601e-01 3.399e-01 >) -# ([5] <2.050e-01 7.950e-01 >) -# ([6] <8.200e-01 1.800e-01 >) -# ([7] <2.314e-01 7.686e-01 >) -# ([8] <2.327e-01 7.673e-01 >) -# ([9] <2.095e-01 7.905e-01 >) -# ([10] <7.621e-01 2.379e-01 >) -# ([11] <1.283e-01 8.717e-01 >) -# ([12] <4.367e-01 5.633e-01 >) -# ([13] <5.282e-01 4.718e-01 >) -# ([14] <6.240e-01 3.760e-01 >) -# ([15] <1.409e-01 8.591e-01 >) +# ({x0} <3.872e-01 6.128e-01 >) +# ({x1} <5.540e-01 4.460e-01 >) +# ({x2} <4.596e-01 5.404e-01 >) +# ({x3} <5.460e-01 4.540e-01 >) +# ({x4} <6.601e-01 3.399e-01 >) +# ({x5} <2.050e-01 7.950e-01 >) +# ({x6} <8.200e-01 1.800e-01 >) +# ({x7} <2.314e-01 7.686e-01 >) +# ({x8} <2.327e-01 7.673e-01 >) +# ({x9} <2.095e-01 7.905e-01 >) +# ({x10} <7.621e-01 2.379e-01 >) +# ({x11} <1.283e-01 8.717e-01 >) +# ({x12} <4.367e-01 5.633e-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 -# ([0] <3.872e-01 6.128e-01 >) -# ([1] <5.540e-01 4.460e-01 >) -# ([2] <4.596e-01 5.404e-01 >) -# ([3] <5.460e-01 4.540e-01 >) -# ([4] <6.601e-01 3.399e-01 >) -# ([5] <2.050e-01 7.950e-01 >) -# ([6] <8.200e-01 1.800e-01 >) -# ([7] <2.314e-01 7.686e-01 >) -# ([8] <2.327e-01 7.673e-01 >) -# ([9] <2.095e-01 7.905e-01 >) -# ([10] <7.621e-01 2.379e-01 >) -# ([11] <1.283e-01 8.717e-01 >) -# ([12] <4.367e-01 5.633e-01 >) -# ([13] <5.282e-01 4.718e-01 >) -# ([14] <6.240e-01 3.760e-01 >) -# ([15] <1.409e-01 8.591e-01 >) +# ({x0} <3.872e-01 6.128e-01 >) +# ({x1} <5.540e-01 4.460e-01 >) +# ({x2} <4.596e-01 5.404e-01 >) +# ({x3} <5.460e-01 4.540e-01 >) +# ({x4} <6.601e-01 3.399e-01 >) +# ({x5} <2.050e-01 7.950e-01 >) +# ({x6} <8.200e-01 1.800e-01 >) +# ({x7} <2.314e-01 7.686e-01 >) +# ({x8} <2.327e-01 7.673e-01 >) +# ({x9} <2.095e-01 7.905e-01 >) +# ({x10} <7.621e-01 2.379e-01 >) +# ({x11} <1.283e-01 8.717e-01 >) +# ({x12} <4.367e-01 5.633e-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 -# ([0] <3.558e-01 6.442e-01 >) -# ([1] <5.320e-01 4.680e-01 >) -# ([2] <4.581e-01 5.419e-01 >) -# ([3] <5.768e-01 4.232e-01 >) -# ([4] <7.724e-01 2.276e-01 >) -# ([5] <2.314e-01 7.686e-01 >) -# ([6] <9.366e-01 6.343e-02 >) -# ([7] <1.862e-01 8.138e-01 >) -# ([8] <1.145e-01 8.855e-01 >) -# ([9] <1.196e-01 8.804e-01 >) -# ([10] <8.803e-01 1.197e-01 >) -# ([11] <5.173e-02 9.483e-01 >) -# ([12] <4.454e-01 5.546e-01 >) -# ([13] <6.323e-01 3.677e-01 >) -# ([14] <8.161e-01 1.839e-01 >) -# ([15] <1.676e-01 8.324e-01 >) +# ({x0} <3.558e-01 6.442e-01 >) +# ({x1} <5.320e-01 4.680e-01 >) +# ({x2} <4.581e-01 5.419e-01 >) +# ({x3} <5.768e-01 4.232e-01 >) +# ({x4} <7.724e-01 2.276e-01 >) +# ({x5} <2.314e-01 7.686e-01 >) +# ({x6} <9.366e-01 6.343e-02 >) +# ({x7} <1.862e-01 8.138e-01 >) +# ({x8} <1.145e-01 8.855e-01 >) +# ({x9} <1.196e-01 8.804e-01 >) +# ({x10} <8.803e-01 1.197e-01 >) +# ({x11} <5.173e-02 9.483e-01 >) +# ({x12} <4.454e-01 5.546e-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 -# ([0] <3.558e-01 6.442e-01 >) -# ([1] <5.320e-01 4.680e-01 >) -# ([2] <4.581e-01 5.419e-01 >) -# ([3] <5.768e-01 4.232e-01 >) -# ([4] <7.724e-01 2.276e-01 >) -# ([5] <2.314e-01 7.686e-01 >) -# ([6] <9.366e-01 6.343e-02 >) -# ([7] <1.862e-01 8.138e-01 >) -# ([8] <1.145e-01 8.855e-01 >) -# ([9] <1.196e-01 8.804e-01 >) -# ([10] <8.803e-01 1.197e-01 >) -# ([11] <5.173e-02 9.483e-01 >) -# ([12] <4.454e-01 5.546e-01 >) -# ([13] <6.323e-01 3.677e-01 >) -# ([14] <8.161e-01 1.839e-01 >) -# ([15] <1.676e-01 8.324e-01 >) +# ({x0} <3.558e-01 6.442e-01 >) +# ({x1} <5.320e-01 4.680e-01 >) +# ({x2} <4.581e-01 5.419e-01 >) +# ({x3} <5.768e-01 4.232e-01 >) +# ({x4} <7.724e-01 2.276e-01 >) +# ({x5} <2.314e-01 7.686e-01 >) +# ({x6} <9.366e-01 6.343e-02 >) +# ({x7} <1.862e-01 8.138e-01 >) +# ({x8} <1.145e-01 8.855e-01 >) +# ({x9} <1.196e-01 8.804e-01 >) +# ({x10} <8.803e-01 1.197e-01 >) +# ({x11} <5.173e-02 9.483e-01 >) +# ({x12} <4.454e-01 5.546e-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 -# ([0] <3.844e-01 6.156e-01 >) -# ([1] <5.557e-01 4.443e-01 >) -# ([2] <4.588e-01 5.412e-01 >) -# ([3] <5.461e-01 4.539e-01 >) -# ([4] <6.648e-01 3.352e-01 >) -# ([5] <2.057e-01 7.943e-01 >) -# ([6] <8.205e-01 1.795e-01 >) -# ([7] <2.312e-01 7.688e-01 >) -# ([8] <2.282e-01 7.718e-01 >) -# ([9] <2.029e-01 7.971e-01 >) -# ([10] <7.643e-01 2.357e-01 >) -# ([11] <1.286e-01 8.714e-01 >) -# ([12] <4.368e-01 5.632e-01 >) -# ([13] <5.280e-01 4.720e-01 >) -# ([14] <6.250e-01 3.750e-01 >) -# ([15] <1.411e-01 8.589e-01 >) +# ({x0} <3.844e-01 6.156e-01 >) +# ({x1} <5.557e-01 4.443e-01 >) +# ({x2} <4.588e-01 5.412e-01 >) +# ({x3} <5.461e-01 4.539e-01 >) +# ({x4} <6.648e-01 3.352e-01 >) +# ({x5} <2.057e-01 7.943e-01 >) +# ({x6} <8.205e-01 1.795e-01 >) +# ({x7} <2.312e-01 7.688e-01 >) +# ({x8} <2.282e-01 7.718e-01 >) +# ({x9} <2.029e-01 7.971e-01 >) +# ({x10} <7.643e-01 2.357e-01 >) +# ({x11} <1.286e-01 8.714e-01 >) +# ({x12} <4.368e-01 5.632e-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 -# ([0] <3.844e-01 6.156e-01 >) -# ([1] <5.557e-01 4.443e-01 >) -# ([2] <4.588e-01 5.412e-01 >) -# ([3] <5.461e-01 4.539e-01 >) -# ([4] <6.648e-01 3.352e-01 >) -# ([5] <2.057e-01 7.943e-01 >) -# ([6] <8.205e-01 1.795e-01 >) -# ([7] <2.312e-01 7.688e-01 >) -# ([8] <2.282e-01 7.718e-01 >) -# ([9] <2.029e-01 7.971e-01 >) -# ([10] <7.643e-01 2.357e-01 >) -# ([11] <1.286e-01 8.714e-01 >) -# ([12] <4.368e-01 5.632e-01 >) -# ([13] <5.280e-01 4.720e-01 >) -# ([14] <6.250e-01 3.750e-01 >) -# ([15] <1.411e-01 8.589e-01 >) +# ({x0} <3.844e-01 6.156e-01 >) +# ({x1} <5.557e-01 4.443e-01 >) +# ({x2} <4.588e-01 5.412e-01 >) +# ({x3} <5.461e-01 4.539e-01 >) +# ({x4} <6.648e-01 3.352e-01 >) +# ({x5} <2.057e-01 7.943e-01 >) +# ({x6} <8.205e-01 1.795e-01 >) +# ({x7} <2.312e-01 7.688e-01 >) +# ({x8} <2.282e-01 7.718e-01 >) +# ({x9} <2.029e-01 7.971e-01 >) +# ({x10} <7.643e-01 2.357e-01 >) +# ({x11} <1.286e-01 8.714e-01 >) +# ({x12} <4.368e-01 5.632e-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 -# ([0] <3.844e-01 6.156e-01 >) -# ([1] <5.557e-01 4.443e-01 >) -# ([2] <4.588e-01 5.412e-01 >) -# ([3] <5.461e-01 4.539e-01 >) -# ([4] <6.648e-01 3.352e-01 >) -# ([5] <2.057e-01 7.943e-01 >) -# ([6] <8.205e-01 1.795e-01 >) -# ([7] <2.312e-01 7.688e-01 >) -# ([8] <2.282e-01 7.718e-01 >) -# ([9] <2.029e-01 7.971e-01 >) -# ([10] <7.643e-01 2.357e-01 >) -# ([11] <1.286e-01 8.714e-01 >) -# ([12] <4.368e-01 5.632e-01 >) -# ([13] <5.280e-01 4.720e-01 >) -# ([14] <6.250e-01 3.750e-01 >) -# ([15] <1.411e-01 8.589e-01 >) +# ({x0} <3.844e-01 6.156e-01 >) +# ({x1} <5.557e-01 4.443e-01 >) +# ({x2} <4.588e-01 5.412e-01 >) +# ({x3} <5.461e-01 4.539e-01 >) +# ({x4} <6.648e-01 3.352e-01 >) +# ({x5} <2.057e-01 7.943e-01 >) +# ({x6} <8.205e-01 1.795e-01 >) +# ({x7} <2.312e-01 7.688e-01 >) +# ({x8} <2.282e-01 7.718e-01 >) +# ({x9} <2.029e-01 7.971e-01 >) +# ({x10} <7.643e-01 2.357e-01 >) +# ({x11} <1.286e-01 8.714e-01 >) +# ({x12} <4.368e-01 5.632e-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 -# ([0] <3.844e-01 6.156e-01 >) -# ([1] <5.557e-01 4.443e-01 >) -# ([2] <4.588e-01 5.412e-01 >) -# ([3] <5.461e-01 4.539e-01 >) -# ([4] <6.648e-01 3.352e-01 >) -# ([5] <2.057e-01 7.943e-01 >) -# ([6] <8.205e-01 1.795e-01 >) -# ([7] <2.312e-01 7.688e-01 >) -# ([8] <2.282e-01 7.718e-01 >) -# ([9] <2.029e-01 7.971e-01 >) -# ([10] <7.643e-01 2.357e-01 >) -# ([11] <1.286e-01 8.714e-01 >) -# ([12] <4.368e-01 5.632e-01 >) -# ([13] <5.280e-01 4.720e-01 >) -# ([14] <6.250e-01 3.750e-01 >) -# ([15] <1.411e-01 8.589e-01 >) +# ({x0} <3.844e-01 6.156e-01 >) +# ({x1} <5.557e-01 4.443e-01 >) +# ({x2} <4.588e-01 5.412e-01 >) +# ({x3} <5.461e-01 4.539e-01 >) +# ({x4} <6.648e-01 3.352e-01 >) +# ({x5} <2.057e-01 7.943e-01 >) +# ({x6} <8.205e-01 1.795e-01 >) +# ({x7} <2.312e-01 7.688e-01 >) +# ({x8} <2.282e-01 7.718e-01 >) +# ({x9} <2.029e-01 7.971e-01 >) +# ({x10} <7.643e-01 2.357e-01 >) +# ({x11} <1.286e-01 8.714e-01 >) +# ({x12} <4.368e-01 5.632e-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 -# ([0] <3.525e-01 6.475e-01 >) -# ([1] <5.395e-01 4.605e-01 >) -# ([2] <4.567e-01 5.433e-01 >) -# ([3] <5.786e-01 4.214e-01 >) -# ([4] <7.797e-01 2.203e-01 >) -# ([5] <2.350e-01 7.650e-01 >) -# ([6] <9.358e-01 6.415e-02 >) -# ([7] <1.860e-01 8.140e-01 >) -# ([8] <1.133e-01 8.867e-01 >) -# ([9] <1.167e-01 8.833e-01 >) -# ([10] <8.886e-01 1.114e-01 >) -# ([11] <4.668e-02 9.533e-01 >) -# ([12] <4.484e-01 5.516e-01 >) -# ([13] <6.444e-01 3.556e-01 >) -# ([14] <8.185e-01 1.815e-01 >) -# ([15] <1.841e-01 8.159e-01 >) +# ({x0} <3.525e-01 6.475e-01 >) +# ({x1} <5.395e-01 4.605e-01 >) +# ({x2} <4.567e-01 5.433e-01 >) +# ({x3} <5.786e-01 4.214e-01 >) +# ({x4} <7.797e-01 2.203e-01 >) +# ({x5} <2.350e-01 7.650e-01 >) +# ({x6} <9.358e-01 6.415e-02 >) +# ({x7} <1.860e-01 8.140e-01 >) +# ({x8} <1.133e-01 8.867e-01 >) +# ({x9} <1.167e-01 8.833e-01 >) +# ({x10} <8.886e-01 1.114e-01 >) +# ({x11} <4.668e-02 9.533e-01 >) +# ({x12} <4.484e-01 5.516e-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 -# ([0] <3.525e-01 6.475e-01 >) -# ([1] <5.395e-01 4.605e-01 >) -# ([2] <4.567e-01 5.433e-01 >) -# ([3] <5.786e-01 4.214e-01 >) -# ([4] <7.797e-01 2.203e-01 >) -# ([5] <2.350e-01 7.650e-01 >) -# ([6] <9.358e-01 6.415e-02 >) -# ([7] <1.860e-01 8.140e-01 >) -# ([8] <1.133e-01 8.867e-01 >) -# ([9] <1.167e-01 8.833e-01 >) -# ([10] <8.886e-01 1.114e-01 >) -# ([11] <4.668e-02 9.533e-01 >) -# ([12] <4.484e-01 5.516e-01 >) -# ([13] <6.444e-01 3.556e-01 >) -# ([14] <8.185e-01 1.815e-01 >) -# ([15] <1.841e-01 8.159e-01 >) +# ({x0} <3.525e-01 6.475e-01 >) +# ({x1} <5.395e-01 4.605e-01 >) +# ({x2} <4.567e-01 5.433e-01 >) +# ({x3} <5.786e-01 4.214e-01 >) +# ({x4} <7.797e-01 2.203e-01 >) +# ({x5} <2.350e-01 7.650e-01 >) +# ({x6} <9.358e-01 6.415e-02 >) +# ({x7} <1.860e-01 8.140e-01 >) +# ({x8} <1.133e-01 8.867e-01 >) +# ({x9} <1.167e-01 8.833e-01 >) +# ({x10} <8.886e-01 1.114e-01 >) +# ({x11} <4.668e-02 9.533e-01 >) +# ({x12} <4.484e-01 5.516e-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 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-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 -# ([0] <4.233e-01 5.767e-01 >) -# ([1] <5.422e-01 4.578e-01 >) -# ([2] <4.662e-01 5.338e-01 >) -# ([3] <5.424e-01 4.576e-01 >) -# ([4] <6.042e-01 3.958e-01 >) -# ([5] <1.845e-01 8.155e-01 >) -# ([6] <8.203e-01 1.797e-01 >) -# ([7] <2.292e-01 7.708e-01 >) -# ([8] <3.119e-01 6.881e-01 >) -# ([9] <2.975e-01 7.025e-01 >) -# ([10] <7.268e-01 2.732e-01 >) -# ([11] <1.485e-01 8.515e-01 >) -# ([12] <4.512e-01 5.488e-01 >) -# ([13] <5.266e-01 4.734e-01 >) -# ([14] <6.033e-01 3.967e-01 >) -# ([15] <1.558e-01 8.442e-01 >) +# ({x0} <4.233e-01 5.767e-01 >) +# ({x1} <5.422e-01 4.578e-01 >) +# ({x2} <4.662e-01 5.338e-01 >) +# ({x3} <5.424e-01 4.576e-01 >) +# ({x4} <6.042e-01 3.958e-01 >) +# ({x5} <1.845e-01 8.155e-01 >) +# ({x6} <8.203e-01 1.797e-01 >) +# ({x7} <2.292e-01 7.708e-01 >) +# ({x8} <3.119e-01 6.881e-01 >) +# ({x9} <2.975e-01 7.025e-01 >) +# ({x10} <7.268e-01 2.732e-01 >) +# ({x11} <1.485e-01 8.515e-01 >) +# ({x12} <4.512e-01 5.488e-01 >) +# ({x13} <5.266e-01 4.734e-01 >) +# ({x14} <6.033e-01 3.967e-01 >) +# ({x15} <1.558e-01 8.442e-01 >)