FUNCTION derive_elementary_function_domain

(* SCHEMA FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF; *)
 
FUNCTION derive_elementary_function_domain(ef_val : 
  elementary_function_enumerators) : tuple_space;
  IF NOT EXISTS(ef_val) THEN
    RETURN (?);
  END_IF;
  CASE ef_val OF 
     ef_and : 
    RETURN (make_extended_tuple_space(the_zero_tuple_space, the_logicals));
     ef_or : 
    RETURN (make_extended_tuple_space(the_zero_tuple_space, the_logicals));
     ef_not : 
    RETURN (make_uniform_product_space(the_logicals, 1));
     ef_xor : 
    RETURN (make_uniform_product_space(the_logicals, 2));
     ef_negate_i : 
    RETURN (make_uniform_product_space(the_integers, 1));
     ef_add_i : 
    RETURN (the_integer_tuples);
     ef_subtract_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_multiply_i : 
    RETURN (the_integer_tuples);
     ef_divide_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_mod_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_exponentiate_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_eq_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_ne_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_gt_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_lt_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_ge_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_le_i : 
    RETURN (make_uniform_product_space(the_integers, 2));
     ef_abs_i : 
    RETURN (make_uniform_product_space(the_integers, 1));
     ef_if_i : 
    RETURN (make_listed_product_space([the_logicals, the_integers, the_integers
    ]));
     ef_negate_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_reciprocal_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_add_r : 
    RETURN (the_real_tuples);
     ef_subtract_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_multiply_r : 
    RETURN (the_real_tuples);
     ef_divide_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_mod_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_exponentiate_r : 
    RETURN (make_listed_product_space([the_nonnegative_reals, the_reals]));
     ef_exponentiate_ri : 
    RETURN (make_listed_product_space([the_reals, the_integers]));
     ef_eq_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_ne_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_gt_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_lt_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_ge_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_le_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_abs_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_acos_r : 
    RETURN (make_uniform_product_space(the_neg1_one_interval, 1));
     ef_asin_r : 
    RETURN (make_uniform_product_space(the_neg1_one_interval, 1));
     ef_atan2_r : 
    RETURN (make_uniform_product_space(the_reals, 2));
     ef_cos_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_exp_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_ln_r : 
    RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
     ef_log2_r : 
    RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
     ef_log10_r : 
    RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
     ef_sin_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_sqrt_r : 
    RETURN (make_uniform_product_space(the_nonnegative_reals, 1));
     ef_tan_r : 
    RETURN (make_uniform_product_space(the_reals, 1));
     ef_if_r : 
    RETURN (make_listed_product_space([the_logicals, the_reals, the_reals]));
     ef_negate_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_reciprocal_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_add_c : 
    RETURN (the_complex_tuples);
     ef_subtract_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 2));
     ef_multiply_c : 
    RETURN (the_complex_tuples);
     ef_divide_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 2));
     ef_exponentiate_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 2));
     ef_exponentiate_ci : 
    RETURN (make_listed_product_space([the_complex_numbers, the_integers]));
     ef_eq_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 2));
     ef_ne_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 2));
     ef_conjugate_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_abs_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_arg_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_cos_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_exp_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_ln_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_sin_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_sqrt_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_tan_c : 
    RETURN (make_uniform_product_space(the_complex_numbers, 1));
     ef_if_c : 
    RETURN (make_listed_product_space([the_logicals, the_complex_numbers, 
    the_complex_numbers]));
     ef_subscript_s : 
    RETURN (make_listed_product_space([the_strings, the_integers]));
     ef_eq_s : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_ne_s : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_gt_s : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_lt_s : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_ge_s : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_le_s : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_subsequence_s : 
    RETURN (make_listed_product_space([the_strings, the_integers, the_integers]
    ));
     ef_concat_s : 
    RETURN (make_extended_tuple_space(the_zero_tuple_space, the_strings));
     ef_size_s : 
    RETURN (make_uniform_product_space(the_strings, 1));
     ef_format : 
    RETURN (make_listed_product_space([the_numbers, the_strings]));
     ef_value : 
    RETURN (make_uniform_product_space(the_strings, 1));
     ef_like : 
    RETURN (make_uniform_product_space(the_strings, 2));
     ef_if_s : 
    RETURN (make_listed_product_space([the_logicals, the_strings, the_strings])
    );
     ef_subscript_b : 
    RETURN (make_listed_product_space([the_binarys, the_integers]));
     ef_eq_b : 
    RETURN (make_uniform_product_space(the_binarys, 2));
     ef_ne_b : 
    RETURN (make_uniform_product_space(the_binarys, 2));
     ef_gt_b : 
    RETURN (make_uniform_product_space(the_binarys, 2));
     ef_lt_b : 
    RETURN (make_uniform_product_space(the_binarys, 2));
     ef_ge_b : 
    RETURN (make_uniform_product_space(the_binarys, 2));
     ef_le_b : 
    RETURN (make_uniform_product_space(the_binarys, 2));
     ef_subsequence_b : 
    RETURN (make_listed_product_space([the_binarys, the_integers, the_integers]
    ));
     ef_concat_b : 
    RETURN (make_extended_tuple_space(the_zero_tuple_space, the_binarys));
     ef_size_b : 
    RETURN (make_uniform_product_space(the_binarys, 1));
     ef_if_b : 
    RETURN (make_listed_product_space([the_logicals, the_binarys, the_binarys])
    );
     ef_subscript_t : 
    RETURN (make_listed_product_space([the_tuples, the_integers]));
     ef_eq_t : 
    RETURN (make_uniform_product_space(the_tuples, 2));
     ef_ne_t : 
    RETURN (make_uniform_product_space(the_tuples, 2));
     ef_concat_t : 
    RETURN (make_extended_tuple_space(the_zero_tuple_space, the_tuples));
     ef_size_t : 
    RETURN (make_uniform_product_space(the_tuples, 1));
     ef_entuple : 
    RETURN (the_tuples);
     ef_detuple : 
    RETURN (make_uniform_product_space(the_generics, 1));
     ef_insert : 
    RETURN (make_listed_product_space([the_tuples, the_generics, the_integers])
    );
     ef_remove : 
    RETURN (make_listed_product_space([the_tuples, the_integers]));
     ef_if_t : 
    RETURN (make_listed_product_space([the_logicals, the_tuples, the_tuples]));
     ef_sum_it : 
    RETURN (make_uniform_product_space(the_integer_tuples, 1));
     ef_product_it : 
    RETURN (make_uniform_product_space(the_integer_tuples, 1));
     ef_add_it : 
    RETURN (make_extended_tuple_space(the_integer_tuples, the_integer_tuples));
     ef_subtract_it : 
    RETURN (make_uniform_product_space(the_integer_tuples, 2));
     ef_scalar_mult_it : 
    RETURN (make_listed_product_space([the_integers, the_integer_tuples]));
     ef_dot_prod_it : 
    RETURN (make_uniform_product_space(the_integer_tuples, 2));
     ef_sum_rt : 
    RETURN (make_uniform_product_space(the_real_tuples, 1));
     ef_product_rt : 
    RETURN (make_uniform_product_space(the_real_tuples, 1));
     ef_add_rt : 
    RETURN (make_extended_tuple_space(the_real_tuples, the_real_tuples));
     ef_subtract_rt : 
    RETURN (make_uniform_product_space(the_real_tuples, 2));
     ef_scalar_mult_rt : 
    RETURN (make_listed_product_space([the_reals, the_real_tuples]));
     ef_dot_prod_rt : 
    RETURN (make_uniform_product_space(the_real_tuples, 2));
     ef_norm_rt : 
    RETURN (make_uniform_product_space(the_real_tuples, 1));
     ef_sum_ct : 
    RETURN (make_uniform_product_space(the_complex_tuples, 1));
     ef_product_ct : 
    RETURN (make_uniform_product_space(the_complex_tuples, 1));
     ef_add_ct : 
    RETURN (make_extended_tuple_space(the_complex_tuples, the_complex_tuples));
     ef_subtract_ct : 
    RETURN (make_uniform_product_space(the_complex_tuples, 2));
     ef_scalar_mult_ct : 
    RETURN (make_listed_product_space([the_complex_numbers, the_complex_tuples]
    ));
     ef_dot_prod_ct : 
    RETURN (make_uniform_product_space(the_complex_tuples, 2));
     ef_norm_ct : 
    RETURN (make_uniform_product_space(the_complex_tuples, 1));
     ef_if : 
    RETURN (make_listed_product_space([the_logicals, the_generics, the_generics
    ]));
     ef_ensemble : 
    RETURN (the_tuples);
     ef_member_of : 
    RETURN (make_listed_product_space([the_generics, the_maths_spaces]));
    OTHERWISE  : RETURN (?);
  END_CASE;
END_FUNCTION;

Referenced By

Defintion derive_elementary_function_domain is references by the following definitions:
DefinitionType
 derive_function_domain FUNCTION


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:17:33-04:00