|
| static bool | try_extract_scalar_constant (const nlohmann::json &node, scalar_value &out) |
| static bool | is_complex_annotated_constant (const nlohmann::json &node) |
| static nlohmann::json | to_json_constant (const scalar_value &v) |
| static scalar_value | apply_complex_binary (const std::string &function, const scalar_value &lhs, const scalar_value &rhs) |
| static bool | numpy_constant_folding_enabled () |
| static bool | is_numpy_string_literal (const nlohmann::json &node) |
| static bool | is_literal_full_fill (const nlohmann::json &fill) |
| static exprt | filled_array (const typet &shape, const exprt &value) |
| static void | reject_array_full_fill (const nlohmann::json &fill) |
| static BigInt | pow_bigint_non_negative (BigInt base, BigInt exponent) |
| static bool | try_exact_integer_power (int64_t base, int64_t exponent, BigInt &result) |
| static void | throw_negative_integer_power_error () |
| static bool | overflow_checks_enabled () |
| static void | emit_numpy_overflow_assertion (python_converter &converter, const nlohmann::json &call, const symbol_id &function_id) |
| static bool | is_numpy_literal_int_node (const nlohmann::json &node) |
| static bool | is_concrete_transpose_axes (const nlohmann::json &node) |
| static void | reject_symbolic_transpose_axes (const std::string &function, const nlohmann::json &call) |
| static std::optional< nlohmann::json > | try_build_numpy_arange_list (const nlohmann::json &call) |
| static scalar_value | make_real_scalar (double value) |
| static scalar_value | make_complex_scalar (double real, double imag) |
| static bool | try_extract_scalar_binary (const nlohmann::json &node, scalar_value &out) |
| static bool | try_extract_scalar_1d_list (const nlohmann::json &list_node, std::vector< scalar_value > &values) |
| static bool | try_extract_scalar_2d_list (const nlohmann::json &list_node, std::vector< std::vector< scalar_value > > &values) |
| static bool | is_square_matrix (const std::vector< std::vector< scalar_value > > &values, std::size_t &n) |
| static scalar_value | determinant_2x2 (const std::vector< std::vector< scalar_value > > &m) |
| static scalar_value | determinant_3x3 (const std::vector< std::vector< scalar_value > > &m) |
| static bool | inverse_2x2 (const std::vector< std::vector< scalar_value > > &m, std::vector< std::vector< scalar_value > > &inv) |
| static bool | inverse_3x3 (const std::vector< std::vector< scalar_value > > &m, std::vector< std::vector< scalar_value > > &inv) |
| static bool | solve_linear_system (const std::vector< std::vector< scalar_value > > &A, const std::vector< scalar_value > &b, std::vector< scalar_value > &x) |
| static std::vector< std::vector< double > > | real_matrix (const std::vector< std::vector< scalar_value > > &m) |
| static double | max_abs (const std::vector< std::vector< double > > &m) |
| static double | infinity_norm (const std::vector< std::vector< double > > &m) |
| static bool | structurally_singular (const std::vector< std::vector< double > > &m) |
| static bool | is_power_of_two (double value) |
| static std::optional< double > | exact_update (double a, double b, double c) |
| static std::optional< exact_lu_factors > | exact_lu (const std::vector< std::vector< double > > &m) |
| static std::optional< double > | exact_det (const std::vector< std::vector< double > > &m) |
| static std::optional< std::vector< double > > | exact_solve (const std::vector< std::vector< double > > &m, std::vector< double > b) |
| static double | cofactor_det (const std::vector< std::vector< double > > &m) |
| static double | det_radius (const std::vector< std::vector< double > > &m, double determinant) |
| static double | solve_radius (const std::vector< std::vector< double > > &a, const std::vector< std::vector< double > > &inverse, double largest) |
| static bool | literal_list_contains_bool (const nlohmann::json &node) |
| static scalar_value | dot_product_value (const std::vector< scalar_value > &lhs, const std::vector< scalar_value > &rhs) |
| static bool | fold_literal_dot (const nlohmann::json &lhs, const nlohmann::json &rhs, nlohmann::json &out) |
| static bool | is_complex_function (const std::string &function) |
| static bool | is_complex_annotated_scalar_node (const nlohmann::json &node) |
| static scalar_value | apply_complex_unary (const std::string &function, const scalar_value &in) |
| static bool | has_complex (const std::vector< scalar_value > &values) |
| static bool | has_complex (const std::vector< std::vector< scalar_value > > &values) |
| static bool | is_list_node (const nlohmann::json &node) |
| static std::string | format_shape (const std::vector< std::size_t > &shape) |
| static void | flatten_json_list (const nlohmann::json &node, std::vector< nlohmann::json > &flat) |
| static nlohmann::json | reshape_flat_to_json (const std::vector< nlohmann::json > &flat, const std::vector< std::size_t > &shape, std::size_t dim, std::size_t &offset) |
| static bool | get_literal_shape (const nlohmann::json &node, std::vector< std::size_t > &shape) |
| static std::optional< std::size_t > | normalize_numpy_axis (long long axis, std::size_t rank, bool insertion_axis) |
| static std::optional< std::vector< std::size_t > > | parse_numpy_literal_shape_arg (const nlohmann::json &shape_arg) |
| static scalar_kind | get_scalar_kind (const nlohmann::json &node) |
| static std::string | promote_numpy_dtype (const std::string &lhs_dtype, const std::string &rhs_dtype) |
| static std::string | scalar_kind_to_dtype (scalar_kind kind) |
| static nlohmann::json | make_numeric_constant_json (const scalar_value &value, scalar_kind kind, bool force_float) |
| static bool | apply_numpy_binary_to_scalars (const std::string &function, const nlohmann::json &lhs, const nlohmann::json &rhs, nlohmann::json &out) |
| static bool | compute_broadcast_shape (const std::vector< std::size_t > &lhs_shape, const std::vector< std::size_t > &rhs_shape, std::vector< std::size_t > &result_shape) |
| static bool | fetch_broadcast_leaf (const nlohmann::json &node, const std::vector< std::size_t > &shape, const std::vector< std::size_t > &result_indices, nlohmann::json &leaf) |
| static bool | build_broadcast_literal_result (const std::string &function, const nlohmann::json &lhs, const std::vector< std::size_t > &lhs_shape, const nlohmann::json &rhs, const std::vector< std::size_t > &rhs_shape, const std::vector< std::size_t > &result_shape, std::vector< std::size_t > &indices, std::size_t depth, nlohmann::json &out) |
| static bool | build_broadcast_to_literal_result (const nlohmann::json &source, const std::vector< std::size_t > &source_shape, const std::vector< std::size_t > &target_shape, std::vector< std::size_t > &indices, std::size_t depth, nlohmann::json &out) |
| static bool | try_extract_numeric_1d_list (const nlohmann::json &list_node, std::vector< numeric_value > &values) |
| static bool | try_extract_numeric_2d_list (const nlohmann::json &list_node, std::vector< std::vector< numeric_value > > &values) |
| static bool | is_finite_numeric_value (const numeric_value &value) |
| static double | numeric_to_key (const nlohmann::json &node, const std::string &diagnostic) |
| static double | numeric_to_sort_key (const nlohmann::json &node) |
| static nlohmann::json | make_sorted_numeric_list (std::vector< nlohmann::json > elements) |
| static nlohmann::json | make_unique_numeric_list (std::vector< nlohmann::json > elements, const std::string &diagnostic) |
| static double | median_of_numeric_elements (std::vector< nlohmann::json > elements, const std::string &diagnostic) |
| static double | percentile_of_numeric_elements (std::vector< nlohmann::json > elements, double q, const std::string &diagnostic) |
| static nlohmann::json | make_integer_list (const std::vector< std::size_t > &values) |
| static std::optional< nlohmann::json > | get_literal_numpy_array_arg (const nlohmann::json &node) |
| static std::optional< int64_t > | parse_literal_signed_index (const nlohmann::json &node) |
| static std::optional< nlohmann::json > | resolve_literal_2d_array_rows (nlohmann::json base, python_converter &converter) |
| static std::optional< nlohmann::json > | resolve_literal_numpy_row_view (nlohmann::json arg, python_converter &converter) |
| static bool | is_bare_slice (const nlohmann::json &node) |
| static std::optional< nlohmann::json > | extract_numpy_literal_column (const nlohmann::json &rows, int64_t col_index) |
| static std::optional< nlohmann::json > | resolve_literal_numpy_col_view (nlohmann::json arg, python_converter &converter) |
| static bool | resolve_literal_numpy_row_or_col_view (nlohmann::json &arg, python_converter &converter) |
| static bool | is_sorted_numeric_list (const nlohmann::json &list, const std::string &diagnostic) |
| static bool | is_1d_json_list (const nlohmann::json &list) |
| static std::size_t | searchsorted_position (const nlohmann::json &list, const nlohmann::json &value_node, bool right) |
| static bool | is_numpy_inf_attr (const nlohmann::json &node) |
| static norm_order | parse_norm_order (const nlohmann::json &node) |
| static bool | is_supported_numpy_unary_math (const std::string &function) |
| static double | apply_numpy_unary_math (const std::string &function, double value) |
| static bool | should_fallback_to_numpy_model (const std::string &function) |
| static exprt | fold_numpy_unary_constant_list (python_converter &converter, const std::string &function, const nlohmann::json &arg) |
| static nlohmann::json | build_constant_node (const numeric_value &value) |
| static nlohmann::json | build_filled_array_literal (const std::vector< std::size_t > &dims, std::size_t dim_index, const numeric_value &fill) |
| static std::vector< std::size_t > | extract_constructor_shape_dims (const nlohmann::json &shape_node) |
| static std::optional< nlohmann::json > | materialize_zeros_ones (const std::string &ctor, const nlohmann::json &args) |
| static std::optional< nlohmann::json > | materialize_array (const nlohmann::json &args) |
| static std::optional< nlohmann::json > | materialize_full (const nlohmann::json &args) |
| static std::optional< nlohmann::json > | materialize_eye_identity (const std::string &ctor, const nlohmann::json &args) |
| static std::vector< double > | linspace_points (double start, double stop, std::size_t num, bool endpoint) |
| static std::size_t | linspace_num (const nlohmann::json &num_node) |
| static bool | linspace_endpoint (const nlohmann::json &call_node) |
| static std::optional< nlohmann::json > | materialize_linspace (const nlohmann::json &args, bool endpoint) |
| static nlohmann::json | materialize_arange_int (int64_t start, int64_t stop, int64_t step) |
| static nlohmann::json | materialize_arange_float (double start, double stop, double step) |
| static arange_materialize_result | materialize_arange_ex (const nlohmann::json &args) |
| static std::optional< nlohmann::json > | materialize_arange (const nlohmann::json &args) |
| static bool | is_numpy_integer_dtype (const std::string &dtype) |
| static bool | is_numpy_float_dtype (const std::string &dtype) |
| static nlohmann::json | make_numpy_typed_constant (const scalar_value &value, const std::string &dtype, bool integral) |
| static nlohmann::json | wrap_to_numpy_integer (uint64_t value, const std::string &dtype) |
| static nlohmann::json | arange_in_dtype (const nlohmann::json &args, std::size_t count, const std::string &dtype) |
| static std::optional< nlohmann::json > | materialize_arange_dtype (const nlohmann::json &args, const std::string &dtype) |
| static nlohmann::json | cast_numpy_literal_to_dtype (const nlohmann::json &node, const std::string &dtype) |
| static nlohmann::json | cast_numpy_linspace_literal_to_dtype (const nlohmann::json &node, const std::string &dtype) |
| static std::string | constructor_dtype_name (const nlohmann::json &call_node, const nlohmann::json &ast) |
| static bool | has_only_dtype_or_endpoint_keywords (const nlohmann::json &call_node) |
| static bool | is_recognized_numpy_constructor_call_shape (const nlohmann::json &call_node, const nlohmann::json &ast_json) |
| static std::optional< nlohmann::json > | materialize_numpy_constructor_array (const nlohmann::json &call_node, const nlohmann::json &ast_json) |
| static bool | is_numpy_constructor_call_by_name (const nlohmann::json &call_node) |
| static void | materialize_inline_numpy_constructor_call (nlohmann::json &node, const nlohmann::json &ast_json) |
| static bool | is_numpy_logical_comparison_call (const nlohmann::json &call_node, const nlohmann::json &ast_json) |
| static nlohmann::json | make_bool_constant_node (bool value) |
| static nlohmann::json | make_list_node (const std::vector< nlohmann::json > &elts) |
| static bool | numpy_logical_as_bool (const nlohmann::json &node) |
| static double | numpy_logical_as_double (const nlohmann::json &node) |
| static nlohmann::json | numpy_compare_scalar (const std::string &op, const nlohmann::json &lhs, const nlohmann::json &rhs) |
| template<typename ElementFn> |
| static nlohmann::json | numpy_broadcast_binary (const nlohmann::json &lhs, const nlohmann::json &rhs, ElementFn element_fn) |
| static void | check_numpy_logical_chain_depth (int next_depth) |
| static std::optional< nlohmann::json > | evaluate_numpy_logical_call (const nlohmann::json &call_node, python_converter &converter, int depth) |
| static nlohmann::json | resolve_numpy_logical_arg (nlohmann::json arg, python_converter &converter, int depth) |
| static std::optional< nlohmann::json > | evaluate_numpy_compare_call (const std::string &function, const nlohmann::json &args, python_converter &converter, int depth) |
| static std::optional< nlohmann::json > | evaluate_numpy_logical_and_or_call (const std::string &function, const nlohmann::json &args, python_converter &converter, int depth) |
| static std::optional< nlohmann::json > | evaluate_numpy_logical_not_call (const nlohmann::json &args, python_converter &converter, int depth) |
| static nlohmann::json | numpy_where_select (const nlohmann::json &cond, const nlohmann::json &x, const nlohmann::json &y) |
| static std::optional< nlohmann::json > | evaluate_numpy_where_call (const nlohmann::json &args, python_converter &converter, int depth) |
| static bool | is_dynamic_list_backed_numpy_constructor (const nlohmann::json &call_node) |
| static bool | numeric_2d_list_is_rectangular (const nlohmann::json &elts, std::size_t col_count) |
| static std::optional< nlohmann::json > | build_transposed_literal (const nlohmann::json &elts, std::size_t row_count, std::size_t col_count) |
| static std::optional< exprt > | try_fold_transpose_literal_2d (const nlohmann::json &list_arg, python_converter &converter) |
| static nlohmann::json | unwrap_list_like_node (const nlohmann::json &node) |
| static std::optional< nlohmann::json > | materialize_literal_diagonal (const nlohmann::json &array_node, long long offset) |
| static typet | get_nested_array_element_type (typet type) |
| static typet | build_nested_array_type (const type_handler &type_handler, const typet &element_type, const std::vector< int > &shape, std::size_t depth=0) |
| static exprt | index_nested_array_expr (const exprt &source_expr, const std::vector< exprt > &indices) |
| static exprt | build_numpy_axis_permuted_expr_rec (const type_handler &type_handler, const exprt &source_expr, const std::vector< int > &source_shape, const std::vector< std::size_t > &axes, const typet &result_type, std::vector< exprt > &output_indices, std::size_t depth) |
| static std::vector< std::size_t > | reversed_numpy_axes (std::size_t rank) |
| static exprt | build_numpy_axis_permuted_expr (const type_handler &type_handler, const exprt &source_expr, const std::vector< int > &source_shape, const std::vector< std::size_t > &axes) |
| static exprt | build_numpy_axis_swapped_2d_expr (const type_handler &type_handler, const exprt &source_expr, const std::vector< int > &source_shape) |
| static int64_t | parse_reshape_dim (const nlohmann::json &node) |
| static int64_t | require_reshape_dim (const nlohmann::json &node, const char *msg) |
| static std::vector< int64_t > | raw_reshape_dims (const nlohmann::json &call) |
| static std::vector< std::size_t > | resolve_reshape_dims (const std::vector< int64_t > &raw_shape, std::optional< std::size_t > total) |
| static std::vector< long long > | row_major_element_strides (const std::vector< std::size_t > &shape) |
| static bool | drop_unit_axes (const std::vector< long long > &old_shape, const std::vector< long long > &old_strides, std::vector< long long > &dims, std::vector< long long > &strides) |
| static std::optional< std::vector< long long > > | nocopy_reshape_strides (const std::vector< long long > &old_shape, const std::vector< long long > &old_strides, const std::vector< std::size_t > &new_shape) |
| static std::optional< long long > | literal_int (const nlohmann::json &node) |
| static std::optional< long long > | literal_axis (const nlohmann::json &node, long long rank) |
| static std::optional< std::vector< long long > > | transpose_axes_order (const nlohmann::json &axes, long long rank) |
| static std::optional< std::vector< long long > > | axis_permutation_order (const std::string &function, const nlohmann::json &args, long long rank) |
| static std::optional< std::vector< python_list::strided_axis > > | squeeze_view_axes (const std::vector< python_list::strided_axis > &axes, const nlohmann::json &args) |
| static std::optional< std::vector< python_list::strided_axis > > | expand_dims_view_axes (std::vector< python_list::strided_axis > axes, const nlohmann::json &args) |
| static std::optional< std::vector< long long > > | literal_broadcast_shape (const nlohmann::json &target) |
| static std::optional< std::vector< python_list::strided_axis > > | broadcast_view_axes (const std::vector< python_list::strided_axis > &axes, const nlohmann::json &args) |
| static bool | numpy_reducer_has_unsupported_keywords (const nlohmann::json &call) |
| static exprt | numpy_cast_to_double (const exprt &value) |
| static exprt | reduce_numpy_descriptor_values (const std::string &function, const std::vector< exprt > &elems) |
| static exprt | reduce_numpy_descriptor_values_along_axis (const std::string &function, const std::vector< std::size_t > &shape, const std::vector< exprt > &elems, long long axis, const type_handler &th) |
| static std::optional< long long > | extract_literal_axis_keyword (const nlohmann::json *axis_kw, const std::string &function) |
| static std::size_t | argmin_argmax_axis_best_index (const std::string &function, const std::vector< std::vector< numeric_value > > &values_2d, long long normalized_axis, std::size_t k, std::size_t inner_len) |
| template<typename T> |
| static auto | create_list (int size, T default_value) |
| static auto | create_list (int size, const nlohmann::json &default_value) |
| template<typename T> |
| static auto | create_list (const std::vector< T > &vector) |
| static typet | build_ndarray_type (const type_handler &type_handler, const typet &elem_type, long long dim) |
| static typet | build_ndarray_type (const type_handler &type_handler, const typet &elem_type, const std::vector< long long > &dims, std::size_t dim_idx) |
| static exprt | make_nondet_ndarray (const type_handler &type_handler, const typet &elem_type, const std::vector< long long > &dims, std::size_t dim_idx, const locationt &location) |
| static exprt | make_filled_ndarray (const type_handler &type_handler, const typet &elem_type, const std::vector< long long > &dims, std::size_t dim_idx, const exprt &fill) |
| static exprt | make_numpy_one (const typet &type) |
| template<typename T> |
| static auto | create_binary_op (const std::string &op, const std::string &type, const T &lhs, const T &rhs) |
| static std::string | normalize_numpy_dtype_name (const std::string &dtype) |
| static bool | is_named_numpy_dtype (const std::string &dtype) |
| static void | reject_numpy_dtype_call (const nlohmann::json &call) |
| static std::vector< int > | literal_shape_dims (const nlohmann::json &elts, const std::string &function) |
| std::string | extract_numpy_dtype_name (const nlohmann::json &dtype_node, const nlohmann::json &ast) |
| | The normalized scalar dtype a dtype= argument names, or a specific rejection when it names none.
|
| static bool | is_numpy_complex_dtype (const std::string &dtype) |
| static bool | numpy_integer_dtype_holds (long double value, const std::string &dtype) |
| static void | check_numpy_integer_cast (long double truncated, bool integral, const std::string &dtype) |
| nlohmann::json | numpy_literal_with_dtype (const nlohmann::json &call, const nlohmann::json &ast) |
| | The literal np.array(literal, dtype=...) stores, cast to its dtype.
|
| static nlohmann::json | make_numpy_linspace_constant (double value, const std::string &dtype) |
| size_t | count_effective_bits (const std::string &binary) |
| static bool | is_diagonal (const std::vector< std::vector< double > > &m) |
| static double | frobenius_norm (const std::vector< std::vector< double > > &m) |
| static double | eigenvalue_radius (const std::vector< std::vector< double > > &m, double square) |
| static bool | only_noop_ufunc_keywords (const nlohmann::json &call) |
| static bool | is_number_type (const typet &t) |
| static const typet & | array_leaf_type (const typet &t) |
| static typet | double_shaped (const typet &t) |
| static std::optional< std::size_t > | numpy_string_width (const nlohmann::json &list) |
| static bool | has_complex_leaf (const nlohmann::json &list) |
| static nlohmann::json | as_complex_leaves (const nlohmann::json &list) |
| static std::optional< nlohmann::json > | complex_literal_leaves (const nlohmann::json &list) |
| bool | is_broadcastable (const std::vector< int > &shape1, const std::vector< int > &shape2) |
| bool | is_broadcastable (const std::vector< std::size_t > &shape1, const std::vector< std::size_t > &shape2) |
| template<typename T> |
| T | get_constant_value (const nlohmann::json &node) |
| static nlohmann::json | resolve_arange_call_args (const nlohmann::json &args, const std::string &function, const nlohmann::json &ast) |
| static void | parse_argsort_axis_keyword (const nlohmann::json *axis_kw, bool &flatten, long long &axis) |
| static bool | parse_searchsorted_side_value (const nlohmann::json &value) |
| static bool | parse_searchsorted_keywords (const nlohmann::json &call, const nlohmann::json *&sorter_kw) |
| static bool | is_argsort_call (const nlohmann::json &node) |
| static std::vector< std::size_t > | stable_argsort_of (const nlohmann::json &arr, const std::string &diagnostic) |
| static nlohmann::json | resolve_single_assignment_name (nlohmann::json node, python_converter &converter) |
| static bool | argsort_call_targets_array (const nlohmann::json &node, const std::string &array_name, const nlohmann::json &ast) |
| static std::vector< std::size_t > | resolve_searchsorted_sorter (nlohmann::json sorter_arg, const nlohmann::json &arr_arg, const std::string &array_name, python_converter &converter) |
| static std::optional< std::vector< std::size_t > > | resolve_searchsorted_literal_sorter_indices (nlohmann::json sorter_arg, python_converter &converter) |
| static nlohmann::json | apply_searchsorted_sorter (const nlohmann::json &arr_arg, const std::vector< std::size_t > &sorter) |
| static std::vector< exprt > | apply_searchsorted_descriptor_sorter (const std::vector< exprt > &values, const std::vector< std::size_t > &sorter) |
| static std::optional< nlohmann::json > | resolve_searchsorted_value_vector (nlohmann::json value_arg, python_converter &converter) |
| static nlohmann::json | build_hoist_temp_name_node (const nlohmann::json &loc_source, const std::string &id, const char *ctx) |
| static bool | is_user_function_call (const nlohmann::json &node) |
| static exprt | build_searchsorted_position_expr (python_converter &converter, const std::vector< exprt > &values, const exprt &target, bool right) |
| static exprt | build_literal_searchsorted_position_expr (python_converter &converter, const nlohmann::json &search_space, const nlohmann::json &value_node, bool right) |
| static std::optional< exprt > | try_build_literal_searchsorted_position (python_converter &converter, const nlohmann::json &search_space, const nlohmann::json &value_node, bool right) |
| static exprt | build_searchsorted_index_constant (python_converter &converter, std::size_t index) |
| static exprt | build_is_sorted_expr (const std::vector< exprt > &values) |
| static double | numpy_round (double x, double decimals) |
| static std::optional< double > | fold_double (const std::string &function, double left, double right) |
| static std::optional< BigInt > | fold_integer (const std::string &function, int64_t left, int64_t right) |
| static BigInt | wrap_integer (BigInt value, std::size_t bits, bool is_unsigned) |