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 };
},
> = ...