def test_encountered_bugs(self): lb, ub = interval._inverse_power1(88893.4225, 88893.4225, 2, 2, 298.15, 298.15, feasibility_tol=1e-8) self.assertAlmostEqual(lb, 298.15) self.assertAlmostEqual(ub, 298.15) lb, ub = interval._inverse_power1(2.56e-6, 2.56e-6, 2, 2, -0.0016, -0.0016, 1e-12) self.assertAlmostEqual(lb, -0.0016) self.assertAlmostEqual(ub, -0.0016) lb, ub = interval._inverse_power1(-1, -1e-12, 2, 2, -interval.inf, interval.inf, feasibility_tol=1e-8) self.assertAlmostEqual(lb, 0) self.assertAlmostEqual(ub, 0)
def _prop_bnds_root_to_leaf_PowExpression(node, bnds_dict): """ Parameters ---------- node: pyomo.core.expr.numeric_expr.ProductExpression bnds_dict: ComponentMap """ assert len(node.args) == 2 arg1, arg2 = node.args lb0, ub0 = bnds_dict[node] lb1, ub1 = bnds_dict[arg1] lb2, ub2 = bnds_dict[arg2] _lb1, _ub1 = interval._inverse_power1(lb0, ub0, lb2, ub2, orig_xl=lb1, orig_xu=ub1) _lb2, _ub2 = interval._inverse_power2(lb0, ub0, lb1, ub1) if _lb1 > lb1: lb1 = _lb1 if _ub1 < ub1: ub1 = _ub1 if _lb2 > lb2: lb2 = _lb2 if _ub2 < ub2: ub2 = _ub2 bnds_dict[arg1] = (lb1, ub1) bnds_dict[arg2] = (lb2, ub2)
def _prop_bnds_root_to_leaf_PowExpression(node, bnds_dict): """ Parameters ---------- node: pyomo.core.expr.numeric_expr.ProductExpression bnds_dict: ComponentMap """ assert len(node.args) == 2 arg1, arg2 = node.args lb0, ub0 = bnds_dict[node] lb1, ub1 = bnds_dict[arg1] lb2, ub2 = bnds_dict[arg2] _lb1, _ub1 = interval._inverse_power1(lb0, ub0, lb2, ub2, orig_xl=lb1, orig_xu=ub1) _lb2, _ub2 = interval._inverse_power2(lb0, ub0, lb1, ub1) if _lb1 > lb1: lb1 = _lb1 if _ub1 < ub1: ub1 = _ub1 if _lb2 > lb2: lb2 = _lb2 if _ub2 < ub2: ub2 = _ub2 bnds_dict[arg1] = (lb1, ub1) bnds_dict[arg2] = (lb2, ub2)
def test_encountered_bugs(self): lb, ub = interval._inverse_power1(88893.4225, 88893.4225, 2, 2, 298.15, 298.15, feasibility_tol=1e-8) self.assertAlmostEqual(lb, 298.15) self.assertAlmostEqual(ub, 298.15)
def _prop_bnds_root_to_leaf_sqrt(node, bnds_dict): """ Parameters ---------- node: pyomo.core.expr.numeric_expr.UnaryFunctionExpression bnds_dict: ComponentMap """ assert len(node.args) == 1 arg1 = node.args[0] lb0, ub0 = bnds_dict[node] lb1, ub1 = bnds_dict[arg1] lb2, ub2 = (0.5, 0.5) _lb1, _ub1 = interval._inverse_power1(lb0, ub0, lb2, ub2, orig_xl=lb1, orig_xu=ub1) if _lb1 > lb1: lb1 = _lb1 if _ub1 < ub1: ub1 = _ub1 bnds_dict[arg1] = (lb1, ub1)
def _prop_bnds_root_to_leaf_sqrt(node, bnds_dict): """ Parameters ---------- node: pyomo.core.expr.numeric_expr.UnaryFunctionExpression bnds_dict: ComponentMap """ assert len(node.args) == 1 arg1 = node.args[0] lb0, ub0 = bnds_dict[node] lb1, ub1 = bnds_dict[arg1] lb2, ub2 = (0.5, 0.5) _lb1, _ub1 = interval._inverse_power1(lb0, ub0, lb2, ub2, orig_xl=lb1, orig_xu=ub1) if _lb1 > lb1: lb1 = _lb1 if _ub1 < ub1: ub1 = _ub1 bnds_dict[arg1] = (lb1, ub1)