FUNCTION values_space_of

(* SCHEMA step_merged_ap_schema; *)
-- IN AP242
FUNCTION values_space_of
      (expr : generic_expression ) : maths_space;
   LOCAL
      e_prefix : STRING := 'STEP_MERGED_AP_SCHEMA.';
      typenames : SET OF STRING := TYPEOF(expr);
   END_LOCAL;
      IF schema_prefix + 'MATHS_VARIABLE' IN typenames THEN
         RETURN (expr\maths_variable.values_space);
      END_IF;
      IF e_prefix + 'EXPRESSION' IN typenames THEN
         IF e_prefix + 'NUMERIC_EXPRESSION' IN typenames THEN
            IF expr\numeric_expression.is_int THEN
               IF e_prefix + 'INT_LITERAL' IN typenames THEN
                  RETURN (make_finite_space([ expr\int_literal.the_value ]));
               ELSE
                  RETURN (the_integers);
               END_IF;
            ELSE
               IF e_prefix + 'REAL_LITERAL' IN typenames THEN
                  RETURN (make_finite_space([ expr\real_literal.the_value ]));
               ELSE
                  RETURN (the_reals);
               END_IF;
            END_IF;
         END_IF;
         IF e_prefix + 'BOOLEAN_EXPRESSION' IN typenames THEN
            IF e_prefix + 'BOOLEAN_LITERAL' IN typenames THEN
               RETURN (make_finite_space([ expr\boolean_literal.the_value ]));
            ELSE
               RETURN (the_booleans);
            END_IF;
         END_IF;
         IF e_prefix + 'STRING_EXPRESSION' IN typenames THEN
            IF e_prefix + 'STRING_LITERAL' IN typenames THEN
               RETURN (make_finite_space([ expr\string_literal.the_value ]));
            ELSE
               RETURN (the_strings);
            END_IF;
         END_IF;
         RETURN (?);
      END_IF;
      IF schema_prefix + 'MATHS_FUNCTION' IN typenames THEN
         IF expression_is_constant(expr) THEN
            RETURN (make_finite_space([ expr ]));
         ELSE
            RETURN (make_function_space(sc_equal, expr\maths_function.domain, sc_equal, expr\maths_function.range));
         END_IF;
      END_IF;
      IF schema_prefix + 'FUNCTION_APPLICATION' IN typenames THEN
         RETURN (expr\function_application.func.range);
      END_IF;
      IF schema_prefix + 'MATHS_SPACE' IN typenames THEN
         IF expression_is_constant(expr) THEN
            RETURN (make_finite_space([ expr ]));
         ELSE
            RETURN (make_elementary_space(es_maths_spaces));
         END_IF;
      END_IF;
      IF schema_prefix + 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN
         RETURN (values_space_of(expr\unary_generic_expression.operand));
      END_IF;
      IF schema_prefix + 'COMPLEX_NUMBER_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr ]));
      END_IF;
      IF schema_prefix + 'LOGICAL_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\logical_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'BINARY_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\binary_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'MATHS_ENUM_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\maths_enum_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'REAL_TUPLE_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\real_tuple_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'INTEGER_TUPLE_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\integer_tuple_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'ATOM_BASED_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\atom_based_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'MATHS_TUPLE_LITERAL' IN typenames THEN
         RETURN (make_finite_space([ expr\maths_tuple_literal.lit_value ]));
      END_IF;
      IF schema_prefix + 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN
         RETURN (drop_numeric_constraints(values_space_of(expr\partial_derivative_expression.derivand)));
      END_IF;
      IF schema_prefix + 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN
         RETURN (drop_numeric_constraints(values_space_of(expr\definite_integral_expression.integrand)));
      END_IF;
      RETURN (?);
END_FUNCTION;

Referenced By

Defintion values_space_of is references by the following definitions:
DefinitionType
 all_members_of_es FUNCTION
 definite_integral_expression ENTITY
 definite_integral_expr_check FUNCTION
 derive_function_domain FUNCTION
 derive_function_range FUNCTION
 equal_maths_values FUNCTION
 expression_denoted_function ENTITY
 free_form_assignment ENTITY
 function_applicability FUNCTION
 member_of FUNCTION
 partial_derivative_expression ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2017-01-19T11:17:24-05:00