FUNCTION derive_elementary_function_domain
(* SCHEMA mathematical_functions_schema; *)
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; -- derive_elementary_function_domain
Referenced By
Defintion derive_elementary_function_domain is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:13:59-04:00