mlx-bun library API
    Preparing search index...
    C: ConvertFns<
        {
            mlx_abs: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_add: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_addmm: { args: (uint64_t | float | ptr)[]; returns: int32_t };
            mlx_all: { args: (uint64_t | bool | ptr)[]; returns: int32_t };
            mlx_any_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_arange: {
                args: (int32_t | uint64_t | double | ptr)[];
                returns: int32_t;
            };
            mlx_argmax_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_argpartition_axis: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_argsort_axis: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_array_data_bfloat16: { args: uint64_t[]; returns: ptr };
            mlx_array_data_float16: { args: uint64_t[]; returns: ptr };
            mlx_array_data_float32: { args: uint64_t[]; returns: ptr };
            mlx_array_data_int32: { args: uint64_t[]; returns: ptr };
            mlx_array_data_int8: { args: uint64_t[]; returns: ptr };
            mlx_array_data_uint32: { args: uint64_t[]; returns: ptr };
            mlx_array_data_uint8: { args: uint64_t[]; returns: ptr };
            mlx_array_dim: { args: (int32_t | uint64_t)[]; returns: int32_t };
            mlx_array_dtype: { args: uint64_t[]; returns: int32_t };
            mlx_array_eval: { args: uint64_t[]; returns: int32_t };
            mlx_array_free: { args: uint64_t[]; returns: int32_t };
            mlx_array_item_float32: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_array_item_int32: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_array_item_uint32: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_array_itemsize: { args: uint64_t[]; returns: uint64_t };
            mlx_array_nbytes: { args: uint64_t[]; returns: uint64_t };
            mlx_array_ndim: { args: uint64_t[]; returns: uint64_t };
            mlx_array_new: { args: never[]; returns: uint64_t };
            mlx_array_new_data: { args: (int32_t | ptr)[]; returns: uint64_t };
            mlx_array_new_data_managed_payload: {
                args: (int32_t | ptr)[];
                returns: uint64_t;
            };
            mlx_array_shape: { args: uint64_t[]; returns: ptr };
            mlx_array_size: { args: uint64_t[]; returns: uint64_t };
            mlx_array_strides: { args: uint64_t[]; returns: ptr };
            mlx_as_strided: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_astype: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_async_eval: { args: uint64_t[]; returns: int32_t };
            mlx_bitwise_and: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_bitwise_or: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_broadcast_to: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_checkpoint: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_clear_cache: { args: never[]; returns: int32_t };
            mlx_clip: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_closure_apply: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_closure_custom_free: { args: uint64_t[]; returns: int32_t };
            mlx_closure_custom_new_func_payload: { args: ptr[]; returns: uint64_t };
            mlx_closure_free: { args: uint64_t[]; returns: int32_t };
            mlx_closure_new: { args: never[]; returns: uint64_t };
            mlx_closure_new_func_payload: { args: ptr[]; returns: uint64_t };
            mlx_closure_value_and_grad_apply: {
                args: (uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_closure_value_and_grad_free: { args: uint64_t[]; returns: int32_t };
            mlx_closure_value_and_grad_new: { args: never[]; returns: uint64_t };
            mlx_compile: { args: (uint64_t | bool | ptr)[]; returns: int32_t };
            mlx_concatenate_axis: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_contiguous: { args: (uint64_t | bool | ptr)[]; returns: int32_t };
            mlx_conv1d: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_conv2d: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_conv3d: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_copy: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_cos: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_cummax_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_cumsum_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_custom_vjp: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_default_cpu_stream_new: { args: never[]; returns: uint64_t };
            mlx_default_gpu_stream_new: { args: never[]; returns: uint64_t };
            mlx_dequantize: { args: (uint64_t | ptr | cstring)[]; returns: int32_t };
            mlx_device_free: { args: uint64_t[]; returns: int32_t };
            mlx_device_info_free: { args: uint64_t[]; returns: int32_t };
            mlx_device_info_get: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_device_info_get_size: {
                args: (uint64_t | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_device_info_get_string: {
                args: (uint64_t | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_device_info_new: { args: never[]; returns: uint64_t };
            mlx_divide: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_equal: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_erf: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_eval: { args: uint64_t[]; returns: int32_t };
            mlx_exp: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_expand_dims: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_fast_layer_norm: {
                args: (uint64_t | float | ptr)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_apply: {
                args: (uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_config_add_output_arg: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_config_add_template_arg_dtype: {
                args: (int32_t | uint64_t | cstring)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_config_add_template_arg_int: {
                args: (int32_t | uint64_t | cstring)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_config_free: { args: uint64_t[]; returns: void };
            mlx_fast_metal_kernel_config_new: { args: never[]; returns: uint64_t };
            mlx_fast_metal_kernel_config_set_grid: {
                args: (int32_t | uint64_t)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_config_set_init_value: {
                args: (uint64_t | float)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_config_set_thread_group: {
                args: (int32_t | uint64_t)[];
                returns: int32_t;
            };
            mlx_fast_metal_kernel_free: { args: uint64_t[]; returns: void };
            mlx_fast_metal_kernel_new: {
                args: (uint64_t | bool | cstring)[];
                returns: uint64_t;
            };
            mlx_fast_rms_norm: { args: (uint64_t | float | ptr)[]; returns: int32_t };
            mlx_fast_rope: {
                args: (int32_t | uint64_t | float | bool | ptr)[];
                returns: int32_t;
            };
            mlx_fast_rope_dynamic: {
                args: (int32_t | uint64_t | float | bool | ptr)[];
                returns: int32_t;
            };
            mlx_fast_scaled_dot_product_attention: {
                args: (uint64_t | float | bool | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_fft_rfft: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_floor_divide: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_gather_qmm: {
                args: (uint64_t | bool | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_get_active_memory: { args: ptr[]; returns: int32_t };
            mlx_get_cache_memory: { args: ptr[]; returns: int32_t };
            mlx_get_default_device: { args: ptr[]; returns: int32_t };
            mlx_get_peak_memory: { args: ptr[]; returns: int32_t };
            mlx_greater: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_greater_equal: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_hadamard_transform: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_left_shift: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_less: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_less_equal: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_load_safetensors: {
                args: (uint64_t | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_log: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_log10: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_logaddexp: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_logical_and: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_logical_not: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_logical_or: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_logsumexp_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_map_string_to_array_free: { args: uint64_t[]; returns: int32_t };
            mlx_map_string_to_array_get: {
                args: (uint64_t | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_map_string_to_array_insert: {
                args: (uint64_t | cstring)[];
                returns: int32_t;
            };
            mlx_map_string_to_array_new: { args: never[]; returns: uint64_t };
            mlx_map_string_to_string_free: { args: uint64_t[]; returns: int32_t };
            mlx_map_string_to_string_insert: {
                args: (uint64_t | cstring)[];
                returns: int32_t;
            };
            mlx_map_string_to_string_new: { args: never[]; returns: uint64_t };
            mlx_matmul: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_max: { args: (uint64_t | bool | ptr)[]; returns: int32_t };
            mlx_max_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_maximum: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_mean: { args: (uint64_t | bool | ptr)[]; returns: int32_t };
            mlx_mean_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_metal_start_capture: { args: cstring[]; returns: int32_t };
            mlx_metal_stop_capture: { args: never[]; returns: int32_t };
            mlx_min_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_minimum: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_multiply: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_negative: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_pad: { args: (uint64_t | ptr | cstring)[]; returns: int32_t };
            mlx_power: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_put_along_axis: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_quantize: { args: (uint64_t | ptr | cstring)[]; returns: int32_t };
            mlx_quantized_matmul: {
                args: (uint64_t | bool | ptr | cstring)[];
                returns: int32_t;
            };
            mlx_random_categorical: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_random_key: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_random_normal: {
                args: (int32_t | uint64_t | float | ptr)[];
                returns: int32_t;
            };
            mlx_random_randint: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_random_seed: { args: uint64_t[]; returns: int32_t };
            mlx_random_split_num: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_random_uniform: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_reset_peak_memory: { args: never[]; returns: int32_t };
            mlx_reshape: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_right_shift: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_round: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_rsqrt: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_save_safetensors: { args: (uint64_t | cstring)[]; returns: int32_t };
            mlx_set_compile_mode: { args: int32_t[]; returns: int32_t };
            mlx_set_memory_limit: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_set_wired_limit: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_sigmoid: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_sin: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_slice: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_slice_dynamic: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_slice_update: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_slice_update_dynamic: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_softmax_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_sqrt: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_square: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_stack_axis: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_stop_gradient: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_stream_free: { args: uint64_t[]; returns: int32_t };
            mlx_string_data: { args: uint64_t[]; returns: cstring };
            mlx_string_free: { args: uint64_t[]; returns: int32_t };
            mlx_string_new: { args: never[]; returns: uint64_t };
            mlx_subtract: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_sum_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_synchronize: { args: uint64_t[]; returns: int32_t };
            mlx_take: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_take_along_axis: {
                args: (int32_t | uint64_t | ptr)[];
                returns: int32_t;
            };
            mlx_take_axis: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_tanh: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_topk_axis: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
            mlx_transpose_axes: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_value_and_grad: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_var_axis: {
                args: (int32_t | uint64_t | bool | ptr)[];
                returns: int32_t;
            };
            mlx_vector_array_free: { args: uint64_t[]; returns: int32_t };
            mlx_vector_array_get: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_vector_array_new: { args: never[]; returns: uint64_t };
            mlx_vector_array_new_data: { args: (uint64_t | ptr)[]; returns: uint64_t };
            mlx_vector_array_set_data: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_vector_array_size: { args: uint64_t[]; returns: uint64_t };
            mlx_vector_string_free: { args: uint64_t[]; returns: int32_t };
            mlx_vector_string_new_data: {
                args: (uint64_t | ptr)[];
                returns: uint64_t;
            };
            mlx_version: { args: ptr[]; returns: int32_t };
            mlx_vjp: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_where: { args: (uint64_t | ptr)[]; returns: int32_t };
            mlx_zeros: { args: (int32_t | uint64_t | ptr)[]; returns: int32_t };
        },
    > = ...