|
FUNCTION equal_cregion_pregion (crgn : cartesian_complex_number_region, prgn : polar_complex_number_region) : LOGICAL; LOCAL arng , amin , xc , yc : REAL ; aitv , xitv , yitv : real_interval ; c_in : BOOLEAN ; END_LOCAL ; IF NOT EXISTS ( crgn ) OR NOT EXISTS ( prgn ) THEN RETURN ( FALSE ) ; END_IF ; IF max_exists ( prgn . distance_constraint ) THEN RETURN ( FALSE ) ; END_IF ; IF real_min ( prgn . distance_constraint ) <> 0.0 THEN RETURN ( FALSE ) ; END_IF ; c_in := min_included ( prgn . distance_constraint ) ; aitv := prgn . direction_constraint ; amin := aitv . min ; arng := aitv . max - amin ; xc := prgn . centre . real_part ; yc := prgn . centre . imag_part ; xitv := crgn . real_constraint ; yitv := crgn . imag_constraint ; IF arng = 0.5 * PI THEN IF amin = 0.0 THEN RETURN ( NOT max_exists ( xitv ) AND NOT max_exists ( yitv ) AND min_exists ( xitv ) AND min_exists ( yitv ) AND ( real_min ( xitv ) = xc ) AND ( real_min ( yitv ) = yc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND min_included ( xitv ) AND min_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND max_included ( aitv ) AND min_included ( xitv ) AND NOT min_included ( yitv ) ) OR ( NOT c_in AND min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT min_included ( xitv ) AND min_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT min_included ( xitv ) AND NOT min_included ( yitv ) ) ) ) ; END_IF ; IF amin = 0.5 * PI THEN RETURN ( max_exists ( xitv ) AND NOT max_exists ( yitv ) AND NOT min_exists ( xitv ) AND min_exists ( yitv ) AND ( real_max ( xitv ) = xc ) AND ( real_min ( yitv ) = yc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND max_included ( xitv ) AND min_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND max_included ( aitv ) AND max_included ( xitv ) AND NOT min_included ( yitv ) ) OR ( NOT c_in AND min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT max_included ( xitv ) AND min_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT max_included ( xitv ) AND NOT min_included ( yitv ) ) ) ) ; END_IF ; IF amin = - PI THEN RETURN ( max_exists ( xitv ) AND max_exists ( yitv ) AND NOT min_exists ( xitv ) AND NOT min_exists ( yitv ) AND ( real_max ( xitv ) = xc ) AND ( real_max ( yitv ) = yc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND max_included ( xitv ) AND max_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND max_included ( aitv ) AND max_included ( xitv ) AND NOT max_included ( yitv ) ) OR ( NOT c_in AND min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT max_included ( xitv ) AND max_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT max_included ( xitv ) AND NOT max_included ( yitv ) ) ) ) ; END_IF ; IF amin = - 0.5 * PI THEN RETURN ( NOT max_exists ( xitv ) AND max_exists ( yitv ) AND min_exists ( xitv ) AND NOT min_exists ( yitv ) AND ( real_min ( xitv ) = xc ) AND ( real_max ( yitv ) = yc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND min_included ( xitv ) AND max_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND max_included ( aitv ) AND min_included ( xitv ) AND NOT max_included ( yitv ) ) OR ( NOT c_in AND min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT min_included ( xitv ) AND max_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT min_included ( xitv ) AND NOT max_included ( yitv ) ) ) ) ; END_IF ; END_IF ; IF arng = PI THEN IF amin = 0.0 THEN RETURN ( NOT max_exists ( xitv ) AND NOT max_exists ( yitv ) AND NOT min_exists ( xitv ) AND min_exists ( yitv ) AND ( real_min ( yitv ) = yc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND min_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT min_included ( yitv ) ) ) ) ; END_IF ; IF amin = 0.5 * PI THEN RETURN ( max_exists ( xitv ) AND NOT max_exists ( yitv ) AND NOT min_exists ( xitv ) AND NOT min_exists ( yitv ) AND ( real_max ( xitv ) = xc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND max_included ( xitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT max_included ( xitv ) ) ) ) ; END_IF ; IF amin = - PI THEN RETURN ( NOT max_exists ( xitv ) AND max_exists ( yitv ) AND NOT min_exists ( xitv ) AND NOT min_exists ( yitv ) AND ( real_max ( yitv ) = yc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND max_included ( yitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT max_included ( yitv ) ) ) ) ; END_IF ; IF amin = - 0.5 * PI THEN RETURN ( NOT max_exists ( xitv ) AND NOT max_exists ( yitv ) AND min_exists ( xitv ) AND NOT min_exists ( yitv ) AND ( real_min ( xitv ) = xc ) AND ( ( c_in AND min_included ( aitv ) AND max_included ( aitv ) AND min_included ( xitv ) ) OR ( NOT c_in AND NOT min_included ( aitv ) AND NOT max_included ( aitv ) AND NOT min_included ( xitv ) ) ) ) ; END_IF ; END_IF ; RETURN ( FALSE ) ; END_FUNCTION; -- equal_cregion_pregion |
|
public class FEqual_cregion_pregion public static Value run(SdaiContext _context, Value crgn, Value prgn) |