K i2 ddlmZmZddlmZddlmZddlmZddl m Z ddl m Z m Z ed\ZZedZed Zej%eed Zej%e e d Zej%eed Zej%e e d Zej%eedZej%eedZej%e e dZej%e e dZy))BasicExpr)oo)symbols) Dispatcher)set_mul)IntervalSetzx y_set_mul_set_divcyNxys ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/sets/handlers/mul.py_r cyrrrs rrrrrc ||zSrrrs rrr Q3Jrc2|j|jzt|jxs |jf|j|jzt|jxs |jf|j|jzt|jxs |jf|j|jzt|jxs |jff}t |\}}t |\}}t||||S)zf Multiplications in interval arithmetic https://en.wikipedia.org/wiki/Interval_arithmetic )startbool left_openend right_openminmaxr )rrcomvalsminvalminopenmaxvalmaxopens rrrs 177 D!; <= 155$q{{:all;< $q||:q{{;< Q\\9Q\\:; G'lOFG'lOFG   rcyrrrs rrr3rrc ||z Srrrs rrr7rrcyrrrs rrr;rrc `|j|jzjrtt tS|jdk(rt}nd|jz }|jdk(rt }nd|jz }t |t|||j |jS)z` Divisions in interval arithmetic https://en.wikipedia.org/wiki/Interval_arithmetic r)rr is_negativer rrrr)rrs2s1s rrr?s  ""R  ww!|  qwwYuuzS quuW 1hr2q||Q[[A BBrN) sympy.corerrsympy.core.numbersrsympy.core.symbolrsympy.multipledispatchrsympy.sets.setexprrsympy.sets.setsr r _x_yr r registerrrrrr8sF"!%-&) B j ! j ! 5% ! 3 4 8X&', 5% ! 4 3 8X&C'Cr