Exemplo n.º 1
0
 def test_asin(self):
     yl, yu = interval.asin(-0.5, 0.5, -math.inf, math.inf)
     self.assertEqual(yl, -math.inf)
     self.assertEqual(yu, math.inf)
     yl, yu = interval.asin(-0.5, 0.5, -math.pi, math.pi)
     self.assertAlmostEqual(yl, -math.pi, 12)
     self.assertAlmostEqual(yu, math.pi, 12)
     yl, yu = interval.asin(-0.5, 0.5, -math.pi / 2, math.pi / 2)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5, 0.5, -math.pi / 2 - 0.1,
                            math.pi / 2 + 0.1)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5, 0.5, -math.pi / 2 + 0.1,
                            math.pi / 2 - 0.1)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5, 0.5, -1.5 * math.pi, 1.5 * math.pi)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
     yl, yu = interval.asin(-0.5, 0.5, -1.5 * math.pi - 0.1,
                            1.5 * math.pi + 0.1)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
     yl, yu = interval.asin(-0.5, 0.5, -1.5 * math.pi + 0.1,
                            1.5 * math.pi - 0.1)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
Exemplo n.º 2
0
 def test_asin(self):
     yl, yu = interval.asin(-0.5, 0.5, -math.inf, math.inf)
     self.assertEqual(yl, -math.inf)
     self.assertEqual(yu, math.inf)
     yl, yu = interval.asin(-0.5, 0.5, -math.pi, math.pi)
     self.assertAlmostEqual(yl, -math.pi, 12)
     self.assertAlmostEqual(yu, math.pi, 12)
     yl, yu = interval.asin(-0.5, 0.5, -math.pi/2, math.pi/2)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5, 0.5, -math.pi/2-0.1, math.pi/2+0.1)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5, 0.5, -math.pi/2+0.1, math.pi/2-0.1)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5, 0.5, -1.5*math.pi, 1.5*math.pi)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
     yl, yu = interval.asin(-0.5, 0.5, -1.5*math.pi-0.1, 1.5*math.pi+0.1)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
     yl, yu = interval.asin(-0.5, 0.5, -1.5*math.pi+0.1, 1.5*math.pi-0.1)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
Exemplo n.º 3
0
 def test_asin(self):
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -interval.inf,
                            interval.inf,
                            feasibility_tol=1e-8)
     self.assertEqual(yl, -interval.inf)
     self.assertEqual(yu, interval.inf)
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -math.pi,
                            math.pi,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, -math.pi, 12)
     self.assertAlmostEqual(yu, math.pi, 12)
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -math.pi / 2,
                            math.pi / 2,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -math.pi / 2 - 0.1,
                            math.pi / 2 + 0.1,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -math.pi / 2 + 0.1,
                            math.pi / 2 - 0.1,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, math.asin(-0.5))
     self.assertAlmostEqual(yu, math.asin(0.5))
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -1.5 * math.pi,
                            1.5 * math.pi,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -1.5 * math.pi - 0.1,
                            1.5 * math.pi + 0.1,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
     yl, yu = interval.asin(-0.5,
                            0.5,
                            -1.5 * math.pi + 0.1,
                            1.5 * math.pi - 0.1,
                            feasibility_tol=1e-8)
     self.assertAlmostEqual(yl, -3.6651914291880920, 12)
     self.assertAlmostEqual(yu, 3.6651914291880920, 12)
Exemplo n.º 4
0
def _prop_bnds_leaf_to_root_asin(node, bnds_dict):
    """

    Parameters
    ----------
    node: pyomo.core.expr.expr_pyomo5.UnaryFunctionExpression
    bnds_dict: ComponentMap
    """
    assert len(node.args) == 1
    arg = node.args[0]
    lb1, ub1 = bnds_dict[arg]
    bnds_dict[node] = interval.asin(lb1, ub1, -math.inf, math.inf)
Exemplo n.º 5
0
def _prop_bnds_leaf_to_root_asin(node, bnds_dict):
    """

    Parameters
    ----------
    node: pyomo.core.expr.numeric_expr.UnaryFunctionExpression
    bnds_dict: ComponentMap
    """
    assert len(node.args) == 1
    arg = node.args[0]
    lb1, ub1 = bnds_dict[arg]
    bnds_dict[node] = interval.asin(lb1, ub1, -math.inf, math.inf)
Exemplo n.º 6
0
def _prop_bnds_root_to_leaf_sin(node, bnds_dict):
    """

    Parameters
    ----------
    node: pyomo.core.expr.expr_pyomo5.UnaryFunctionExpression
    bnds_dict: ComponentMap
    """
    assert len(node.args) == 1
    arg = node.args[0]
    lb0, ub0 = bnds_dict[node]
    lb1, ub1 = bnds_dict[arg]
    _lb1, _ub1 = interval.asin(lb0, ub0, lb1, ub1)
    if _lb1 > lb1:
        lb1 = _lb1
    if _ub1 < ub1:
        ub1 = _ub1
    bnds_dict[arg] = (lb1, ub1)
Exemplo n.º 7
0
def _prop_bnds_root_to_leaf_sin(node, bnds_dict):
    """

    Parameters
    ----------
    node: pyomo.core.expr.numeric_expr.UnaryFunctionExpression
    bnds_dict: ComponentMap
    """
    assert len(node.args) == 1
    arg = node.args[0]
    lb0, ub0 = bnds_dict[node]
    lb1, ub1 = bnds_dict[arg]
    _lb1, _ub1 = interval.asin(lb0, ub0, lb1, ub1)
    if _lb1 > lb1:
        lb1 = _lb1
    if _ub1 < ub1:
        ub1 = _ub1
    bnds_dict[arg] = (lb1, ub1)