Overview Schemas Index

MATHEMATICAL_FUNCTIONS_SCHEMA (jsdai.SMathematical_functions_schema)


FUNCTION compatible_complex_number_regions
          (sp1 : maths_space, sp2 : maths_space) : BOOLEAN;

 LOCAL typenames : SET OF STRING := stripped_typeof ( sp1 ) ; crgn1 , crgn2 : cartesian_complex_number_region ; prgn1 , prgn2 , prgn1c2 , prgn2c1 : polar_complex_number_region ; sp1_is_crgn , sp2_is_crgn : BOOLEAN ; END_LOCAL ; IF  'cartesian_complex_number_region' IN  typenames THEN  sp1_is_crgn := TRUE  ; crgn1 := sp1 ; ELSE  IF  'polar_complex_number_region' IN  typenames THEN  sp1_is_crgn := FALSE  ; prgn1 := sp1 ; ELSE  RETURN  ( TRUE  ) ; END_IF  ; END_IF  ; typenames := stripped_typeof ( sp2 ) ; IF  'cartesian_complex_number_region' IN  typenames THEN  sp2_is_crgn := TRUE  ; crgn2 := sp2 ; ELSE  IF  'polar_complex_number_region' IN typenames THEN  sp2_is_crgn := FALSE  ; prgn2 := sp2 ; ELSE RETURN  ( TRUE  ) ; END_IF  ; END_IF  ; IF  sp1_is_crgn AND  sp2_is_crgn THEN  RETURN  ( compatible_intervals ( crgn1 . real_constraint , crgn2 . real_constraint ) AND  compatible_intervals ( crgn1 . imag_constraint , crgn2 . imag_constraint ) ) ; END_IF  ; IF  NOT  sp1_is_crgn AND  NOT  sp2_is_crgn AND  ( prgn1 . centre . real_part = prgn2 . centre . real_part ) AND  ( prgn1 . centre . imag_part = prgn2 . centre . imag_part ) THEN  IF  NOT  compatible_intervals ( prgn1 . distance_constraint , prgn2 . distance_constraint ) THEN  RETURN  ( FALSE  ) ; END_IF  ; IF  compatible_intervals ( prgn1 . direction_constraint , prgn2 . direction_constraint ) THEN  RETURN  ( TRUE ) ; END_IF  ; IF  ( prgn1 . direction_constraint . max > PI  ) AND  ( prgn2 . direction_constraint . max < PI  ) THEN  RETURN  ( compatible_intervals ( prgn2 . direction_constraint , make_finite_real_interval ( - PI  , open , prgn1 . direction_constraint . max - 2.0 * PI  , prgn1 . direction_constraint . max_closure ) ) ) ; END_IF  ; IF  ( prgn2 . direction_constraint . max > PI  ) AND  ( prgn1 . direction_constraint . max < PI  ) THEN  RETURN  ( compatible_intervals ( prgn1 . direction_constraint , make_finite_real_interval ( - PI  , open , prgn2 . direction_constraint . max - 2.0 * PI , prgn2 . direction_constraint . max_closure ) ) ) ; END_IF  ; RETURN  ( FALSE ) ; END_IF  ; IF  sp1_is_crgn AND  NOT  sp2_is_crgn THEN  crgn2 := enclose_pregion_in_cregion ( prgn2 ) ; prgn1 := enclose_cregion_in_pregion ( crgn1 , prgn2 . centre ) ; RETURN  ( compatible_complex_number_regions ( crgn1 , crgn2 ) AND  compatible_complex_number_regions ( prgn1 , prgn2 ) ) ; END_IF  ; IF NOT sp1_is_crgn AND  sp2_is_crgn THEN crgn1 := enclose_pregion_in_cregion ( prgn1 ) ; prgn2 := enclose_cregion_in_pregion ( crgn2 , prgn1 . centre ) ; RETURN  ( compatible_complex_number_regions ( crgn1 , crgn2 ) AND  compatible_complex_number_regions ( prgn1 , prgn2 ) ) ; END_IF ; prgn1c2 := enclose_pregion_in_pregion ( prgn1 , prgn2 . centre ) ; prgn2c1 := enclose_pregion_in_pregion ( prgn2 , prgn1 . centre ) ; RETURN ( compatible_complex_number_regions ( prgn1 , prgn2c1 ) AND compatible_complex_number_regions ( prgn1c2 , prgn2 ) ) ; 

END_FUNCTION; -- compatible_complex_number_regions

public class FCompatible_complex_number_regions
          public static Value run(SdaiContext _context, Value sp1, Value sp2)