Overview Schemas Index

MATHEMATICAL_FUNCTIONS_SCHEMA (jsdai.SMathematical_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

public class FDerive_elementary_function_domain
          public static Value run(SdaiContext _context, Value ef_val)