From 129e0ac206d1f65faef771cadf9a8e8b4a3bd98b Mon Sep 17 00:00:00 2001 From: CircleCI Docs Date: Fri, 25 Oct 2024 20:23:45 +0000 Subject: [PATCH] rebase --- docs/build/html/.buildinfo | 2 +- docs/build/html/_sources/install.rst | 4 +- .../_autosummary/mlx.core.linalg.eigh.rst | 6 + .../_autosummary/mlx.core.linalg.eigvalsh.rst | 6 + .../mlx.core.metal.set_wired_limit.rst | 6 + docs/build/html/_sources/python/linalg.rst | 2 + docs/build/html/_sources/python/metal.rst | 1 + docs/build/html/_sources/usage/compile.rst | 23 +- .../_sources/usage/function_transforms.rst | 12 +- docs/build/html/_sources/usage/indexing.rst | 4 +- .../html/_sources/usage/lazy_evaluation.rst | 4 +- docs/build/html/_sources/usage/numpy.rst | 8 +- .../build/html/_sources/usage/quick_start.rst | 2 +- .../_sources/usage/saving_and_loading.rst | 28 +- .../html/_sources/usage/unified_memory.rst | 2 +- .../html/_static/documentation_options.js | 2 +- .../html/_static/scripts/bootstrap.js.map | 2 +- .../build/html/_static/scripts/fontawesome.js | 3 + .../fontawesome.js.LICENSE.txt} | 0 .../html/_static/scripts/fontawesome.js.map | 1 + .../_static/scripts/pydata-sphinx-theme.js | 2 +- .../scripts/pydata-sphinx-theme.js.map | 2 +- docs/build/html/_static/styles/bootstrap.css | 6 - .../html/_static/styles/bootstrap.css.map | 1 - .../_static/styles/pydata-sphinx-theme.css | 32 +- .../styles/pydata-sphinx-theme.css.map | 2 +- .../vendor/fontawesome/6.5.2/LICENSE.txt | 165 - .../vendor/fontawesome/6.5.2/css/all.min.css | 5 - .../vendor/fontawesome/6.5.2/js/all.min.js | 2 - .../6.5.2/webfonts/fa-v4compatibility.ttf | Bin 10832 -> 0 bytes .../6.5.2/webfonts/fa-v4compatibility.woff2 | Bin 4792 -> 0 bytes .../{6.5.2 => }/webfonts/fa-brands-400.ttf | Bin .../{6.5.2 => }/webfonts/fa-brands-400.woff2 | Bin .../{6.5.2 => }/webfonts/fa-regular-400.ttf | Bin .../{6.5.2 => }/webfonts/fa-regular-400.woff2 | Bin .../{6.5.2 => }/webfonts/fa-solid-900.ttf | Bin .../{6.5.2 => }/webfonts/fa-solid-900.woff2 | Bin docs/build/html/_static/webpack-macros.html | 23 +- docs/build/html/annotated.html | 154 +- .../html/backend_2metal_2allocator_8h.html | 1 + .../backend_2metal_2allocator_8h_source.html | 212 +- .../build/html/backend_2metal_2device_8h.html | 4 + .../backend_2metal_2device_8h_source.html | 325 +- .../html/backend_2metal_2kernels_2fft_8h.html | 2 +- ...ackend_2metal_2kernels_2fft_8h_source.html | 2 +- .../backend_2metal_2kernels_2utils_8h.html | 392 ++ ...kend_2metal_2kernels_2utils_8h_source.html | 89 +- docs/build/html/backend_2metal_2utils_8h.html | 2 + .../html/backend_2metal_2utils_8h_source.html | 74 +- docs/build/html/classes.html | 8 +- .../classmlx_1_1core_1_1_eigh-members.html | 121 + .../build/html/classmlx_1_1core_1_1_eigh.html | 389 ++ docs/build/html/classmlx_1_1core_1_1_eigh.png | Bin 0 -> 535 bytes .../html/classmlx_1_1core_1_1_primitive.html | 27 +- .../html/classmlx_1_1core_1_1_primitive.png | Bin 4997 -> 5378 bytes ...x_1_1core_1_1metal_1_1_device-members.html | 5 +- .../classmlx_1_1core_1_1metal_1_1_device.html | 65 + ..._1_1metal_1_1_metal_allocator-members.html | 5 +- ..._1_1core_1_1metal_1_1_metal_allocator.html | 19 + ...re_1_1metal_1_1_residency_set-members.html | 112 + ...lx_1_1core_1_1metal_1_1_residency_set.html | 291 ++ docs/build/html/common_2arange_8h_source.html | 2 +- docs/build/html/cpp/ops.html | 113 +- docs/build/html/dev/custom_metal_kernels.html | 105 +- docs/build/html/dev/extensions.html | 105 +- docs/build/html/dev/metal_debugger.html | 105 +- .../dir_4336740ec0075891704443b417fef6cb.html | 2 - .../dir_70a37effa88bcbd6b791977fa1e64356.html | 2 +- .../dir_d0c977ea65824390717cdb7efc36c157.html | 2 + .../dir_f149b24a1b5be11cd70151abe517e3f8.html | 2 +- docs/build/html/doxygen_crawl.html | 146 +- .../html/examples/linear_regression.html | 102 +- docs/build/html/examples/llama-inference.html | 105 +- docs/build/html/examples/mlp.html | 102 +- docs/build/html/files.html | 94 +- docs/build/html/functions_a.html | 2 + docs/build/html/functions_b.html | 3 +- docs/build/html/functions_d.html | 1 + docs/build/html/functions_e.html | 7 +- docs/build/html/functions_f.html | 3 + docs/build/html/functions_func_a.html | 2 + docs/build/html/functions_func_d.html | 1 + docs/build/html/functions_func_e.html | 6 +- docs/build/html/functions_func_f.html | 1 + docs/build/html/functions_func_i.html | 5 +- docs/build/html/functions_func_m.html | 1 + docs/build/html/functions_func_o.html | 8 +- docs/build/html/functions_func_p.html | 2 +- docs/build/html/functions_func_r.html | 3 +- docs/build/html/functions_func_s.html | 6 +- docs/build/html/functions_func_v.html | 2 +- docs/build/html/functions_func_~.html | 3 + docs/build/html/functions_i.html | 7 +- docs/build/html/functions_m.html | 1 + docs/build/html/functions_o.html | 8 +- docs/build/html/functions_p.html | 2 +- docs/build/html/functions_q.html | 1 + docs/build/html/functions_r.html | 3 +- docs/build/html/functions_s.html | 6 +- docs/build/html/functions_t.html | 1 + docs/build/html/functions_v.html | 2 +- docs/build/html/functions_vars_b.html | 3 +- docs/build/html/functions_vars_e.html | 1 + docs/build/html/functions_vars_f.html | 2 + docs/build/html/functions_vars_i.html | 2 +- docs/build/html/functions_vars_o.html | 1 + docs/build/html/functions_vars_q.html | 1 + docs/build/html/functions_vars_t.html | 1 + docs/build/html/functions_~.html | 3 + docs/build/html/genindex.html | 118 +- docs/build/html/globals_a.html | 2 +- docs/build/html/globals_b.html | 10 +- docs/build/html/globals_c.html | 2 +- docs/build/html/globals_d.html | 2 + docs/build/html/globals_defs.html | 4 +- docs/build/html/globals_func.html | 2 +- docs/build/html/globals_func_b.html | 10 +- docs/build/html/globals_func_c.html | 2 +- docs/build/html/globals_func_l.html | 4 +- docs/build/html/globals_func_q.html | 18 +- docs/build/html/globals_func_s.html | 5 +- docs/build/html/globals_func_w.html | 4 +- docs/build/html/globals_l.html | 4 +- docs/build/html/globals_m.html | 2 +- docs/build/html/globals_q.html | 19 +- docs/build/html/globals_s.html | 6 +- docs/build/html/globals_vars.html | 6 +- docs/build/html/globals_w.html | 4 +- docs/build/html/group__ops.html | 18 +- docs/build/html/hierarchy.html | 588 +-- docs/build/html/includes_8h_source.html | 2 +- docs/build/html/index.html | 102 +- docs/build/html/install.html | 109 +- docs/build/html/jit_2scan_8h.html | 158 - docs/build/html/jit_2scan_8h_source.html | 128 - docs/build/html/kernels_8h_source.html | 10 +- ...{lapack__helper_8h.html => lapack_8h.html} | 9 +- ...r_8h_source.html => lapack_8h_source.html} | 40 +- docs/build/html/linalg_8h.html | 4 + docs/build/html/linalg_8h_source.html | 9 +- docs/build/html/matmul_8h_source.html | 92 +- docs/build/html/menudata.js | 1 + .../metal_2kernels_2hadamard_8h_source.html | 2 +- docs/build/html/metal_2reduce_8h_source.html | 2 +- docs/build/html/metal_8h.html | 2 + docs/build/html/metal_8h_source.html | 30 +- docs/build/html/metal__impl_8h_source.html | 2 +- docs/build/html/namespacemembers_e.html | 2 + docs/build/html/namespacemembers_func_e.html | 2 + docs/build/html/namespacemembers_func_q.html | 2 +- docs/build/html/namespacemembers_func_s.html | 1 + docs/build/html/namespacemembers_q.html | 2 +- docs/build/html/namespacemembers_s.html | 1 + docs/build/html/namespacemlx_1_1core.html | 38 +- .../html/namespacemlx_1_1core_1_1linalg.html | 56 + .../html/namespacemlx_1_1core_1_1metal.html | 25 + docs/build/html/objects.inv | Bin 26561 -> 26630 bytes docs/build/html/ops_8h.html | 6 +- docs/build/html/ops_8h_source.html | 12 +- docs/build/html/pocketfft_8h_source.html | 2 +- docs/build/html/primitives_8h.html | 2 + docs/build/html/primitives_8h_source.html | 55 +- .../python/_autosummary/mlx.core.Device.html | 105 +- .../python/_autosummary/mlx.core.Dtype.html | 105 +- .../_autosummary/mlx.core.DtypeCategory.html | 105 +- .../python/_autosummary/mlx.core.abs.html | 105 +- .../python/_autosummary/mlx.core.add.html | 105 +- .../python/_autosummary/mlx.core.addmm.html | 105 +- .../python/_autosummary/mlx.core.all.html | 105 +- .../_autosummary/mlx.core.allclose.html | 105 +- .../python/_autosummary/mlx.core.any.html | 105 +- .../python/_autosummary/mlx.core.arange.html | 105 +- .../python/_autosummary/mlx.core.arccos.html | 105 +- .../python/_autosummary/mlx.core.arccosh.html | 105 +- .../python/_autosummary/mlx.core.arcsin.html | 105 +- .../python/_autosummary/mlx.core.arcsinh.html | 105 +- .../python/_autosummary/mlx.core.arctan.html | 105 +- .../python/_autosummary/mlx.core.arctan2.html | 105 +- .../python/_autosummary/mlx.core.arctanh.html | 105 +- .../python/_autosummary/mlx.core.argmax.html | 105 +- .../python/_autosummary/mlx.core.argmin.html | 105 +- .../_autosummary/mlx.core.argpartition.html | 105 +- .../python/_autosummary/mlx.core.argsort.html | 105 +- .../python/_autosummary/mlx.core.array.T.html | 105 +- .../_autosummary/mlx.core.array.abs.html | 105 +- .../_autosummary/mlx.core.array.all.html | 105 +- .../_autosummary/mlx.core.array.any.html | 105 +- .../_autosummary/mlx.core.array.argmax.html | 105 +- .../_autosummary/mlx.core.array.argmin.html | 105 +- .../_autosummary/mlx.core.array.astype.html | 105 +- .../_autosummary/mlx.core.array.at.html | 105 +- .../_autosummary/mlx.core.array.conj.html | 105 +- .../_autosummary/mlx.core.array.cos.html | 105 +- .../_autosummary/mlx.core.array.cummax.html | 105 +- .../_autosummary/mlx.core.array.cummin.html | 105 +- .../_autosummary/mlx.core.array.cumprod.html | 105 +- .../_autosummary/mlx.core.array.cumsum.html | 105 +- .../_autosummary/mlx.core.array.diag.html | 105 +- .../_autosummary/mlx.core.array.diagonal.html | 105 +- .../_autosummary/mlx.core.array.dtype.html | 105 +- .../_autosummary/mlx.core.array.exp.html | 105 +- .../_autosummary/mlx.core.array.flatten.html | 105 +- .../python/_autosummary/mlx.core.array.html | 105 +- .../_autosummary/mlx.core.array.item.html | 105 +- .../_autosummary/mlx.core.array.itemsize.html | 105 +- .../_autosummary/mlx.core.array.log.html | 105 +- .../_autosummary/mlx.core.array.log10.html | 105 +- .../_autosummary/mlx.core.array.log1p.html | 105 +- .../_autosummary/mlx.core.array.log2.html | 105 +- .../mlx.core.array.logsumexp.html | 105 +- .../_autosummary/mlx.core.array.max.html | 105 +- .../_autosummary/mlx.core.array.mean.html | 105 +- .../_autosummary/mlx.core.array.min.html | 105 +- .../_autosummary/mlx.core.array.moveaxis.html | 105 +- .../_autosummary/mlx.core.array.nbytes.html | 105 +- .../_autosummary/mlx.core.array.ndim.html | 105 +- .../_autosummary/mlx.core.array.prod.html | 105 +- .../mlx.core.array.reciprocal.html | 105 +- .../_autosummary/mlx.core.array.reshape.html | 105 +- .../_autosummary/mlx.core.array.round.html | 105 +- .../_autosummary/mlx.core.array.rsqrt.html | 105 +- .../_autosummary/mlx.core.array.shape.html | 105 +- .../_autosummary/mlx.core.array.sin.html | 105 +- .../_autosummary/mlx.core.array.size.html | 105 +- .../_autosummary/mlx.core.array.split.html | 105 +- .../_autosummary/mlx.core.array.sqrt.html | 105 +- .../_autosummary/mlx.core.array.square.html | 105 +- .../_autosummary/mlx.core.array.squeeze.html | 105 +- .../_autosummary/mlx.core.array.std.html | 105 +- .../_autosummary/mlx.core.array.sum.html | 105 +- .../_autosummary/mlx.core.array.swapaxes.html | 105 +- .../_autosummary/mlx.core.array.tolist.html | 105 +- .../mlx.core.array.transpose.html | 105 +- .../_autosummary/mlx.core.array.var.html | 105 +- .../_autosummary/mlx.core.array.view.html | 105 +- .../_autosummary/mlx.core.array_equal.html | 105 +- .../_autosummary/mlx.core.as_strided.html | 105 +- .../_autosummary/mlx.core.atleast_1d.html | 105 +- .../_autosummary/mlx.core.atleast_2d.html | 105 +- .../_autosummary/mlx.core.atleast_3d.html | 105 +- .../_autosummary/mlx.core.bitwise_and.html | 105 +- .../_autosummary/mlx.core.bitwise_or.html | 105 +- .../_autosummary/mlx.core.bitwise_xor.html | 105 +- .../mlx.core.block_masked_mm.html | 105 +- .../_autosummary/mlx.core.broadcast_to.html | 105 +- .../python/_autosummary/mlx.core.ceil.html | 105 +- .../python/_autosummary/mlx.core.clip.html | 105 +- .../python/_autosummary/mlx.core.compile.html | 105 +- .../_autosummary/mlx.core.concatenate.html | 105 +- .../python/_autosummary/mlx.core.conj.html | 105 +- .../_autosummary/mlx.core.conjugate.html | 105 +- .../python/_autosummary/mlx.core.conv1d.html | 105 +- .../python/_autosummary/mlx.core.conv2d.html | 105 +- .../python/_autosummary/mlx.core.conv3d.html | 105 +- .../_autosummary/mlx.core.conv_general.html | 105 +- .../mlx.core.conv_transpose1d.html | 105 +- .../mlx.core.conv_transpose2d.html | 105 +- .../mlx.core.conv_transpose3d.html | 105 +- .../_autosummary/mlx.core.convolve.html | 105 +- .../python/_autosummary/mlx.core.cos.html | 105 +- .../python/_autosummary/mlx.core.cosh.html | 105 +- .../python/_autosummary/mlx.core.cummax.html | 105 +- .../python/_autosummary/mlx.core.cummin.html | 105 +- .../python/_autosummary/mlx.core.cumprod.html | 105 +- .../python/_autosummary/mlx.core.cumsum.html | 105 +- .../mlx.core.custom_function.html | 105 +- .../_autosummary/mlx.core.default_device.html | 105 +- .../_autosummary/mlx.core.default_stream.html | 105 +- .../python/_autosummary/mlx.core.degrees.html | 105 +- .../_autosummary/mlx.core.dequantize.html | 105 +- .../python/_autosummary/mlx.core.diag.html | 105 +- .../_autosummary/mlx.core.diagonal.html | 105 +- .../mlx.core.disable_compile.html | 105 +- .../mlx.core.distributed.Group.html | 105 +- .../mlx.core.distributed.all_gather.html | 105 +- .../mlx.core.distributed.all_sum.html | 105 +- .../mlx.core.distributed.init.html | 105 +- .../mlx.core.distributed.is_available.html | 105 +- .../mlx.core.distributed.recv.html | 105 +- .../mlx.core.distributed.recv_like.html | 105 +- .../mlx.core.distributed.send.html | 105 +- .../python/_autosummary/mlx.core.divide.html | 105 +- .../python/_autosummary/mlx.core.divmod.html | 105 +- .../python/_autosummary/mlx.core.einsum.html | 105 +- .../_autosummary/mlx.core.einsum_path.html | 105 +- .../_autosummary/mlx.core.enable_compile.html | 105 +- .../python/_autosummary/mlx.core.equal.html | 105 +- .../python/_autosummary/mlx.core.erf.html | 105 +- .../python/_autosummary/mlx.core.erfinv.html | 105 +- .../python/_autosummary/mlx.core.eval.html | 105 +- .../python/_autosummary/mlx.core.exp.html | 105 +- .../_autosummary/mlx.core.expand_dims.html | 105 +- .../python/_autosummary/mlx.core.expm1.html | 105 +- .../python/_autosummary/mlx.core.eye.html | 105 +- .../mlx.core.fast.affine_quantize.html | 105 +- .../mlx.core.fast.layer_norm.html | 105 +- .../mlx.core.fast.metal_kernel.html | 105 +- .../_autosummary/mlx.core.fast.rms_norm.html | 105 +- .../_autosummary/mlx.core.fast.rope.html | 105 +- ...ore.fast.scaled_dot_product_attention.html | 105 +- .../python/_autosummary/mlx.core.fft.fft.html | 105 +- .../_autosummary/mlx.core.fft.fft2.html | 105 +- .../_autosummary/mlx.core.fft.fftn.html | 105 +- .../_autosummary/mlx.core.fft.ifft.html | 105 +- .../_autosummary/mlx.core.fft.ifft2.html | 105 +- .../_autosummary/mlx.core.fft.ifftn.html | 105 +- .../_autosummary/mlx.core.fft.irfft.html | 105 +- .../_autosummary/mlx.core.fft.irfft2.html | 105 +- .../_autosummary/mlx.core.fft.irfftn.html | 105 +- .../_autosummary/mlx.core.fft.rfft.html | 105 +- .../_autosummary/mlx.core.fft.rfft2.html | 105 +- .../_autosummary/mlx.core.fft.rfftn.html | 105 +- .../python/_autosummary/mlx.core.flatten.html | 105 +- .../python/_autosummary/mlx.core.floor.html | 105 +- .../_autosummary/mlx.core.floor_divide.html | 105 +- .../python/_autosummary/mlx.core.full.html | 105 +- .../_autosummary/mlx.core.gather_mm.html | 105 +- .../_autosummary/mlx.core.gather_qmm.html | 105 +- .../python/_autosummary/mlx.core.grad.html | 105 +- .../python/_autosummary/mlx.core.greater.html | 105 +- .../_autosummary/mlx.core.greater_equal.html | 105 +- .../mlx.core.hadamard_transform.html | 105 +- .../_autosummary/mlx.core.identity.html | 105 +- .../python/_autosummary/mlx.core.imag.html | 105 +- .../python/_autosummary/mlx.core.inner.html | 105 +- .../python/_autosummary/mlx.core.isclose.html | 105 +- .../_autosummary/mlx.core.isfinite.html | 105 +- .../python/_autosummary/mlx.core.isinf.html | 105 +- .../python/_autosummary/mlx.core.isnan.html | 105 +- .../_autosummary/mlx.core.isneginf.html | 105 +- .../_autosummary/mlx.core.isposinf.html | 105 +- .../_autosummary/mlx.core.issubdtype.html | 105 +- .../python/_autosummary/mlx.core.jvp.html | 105 +- .../_autosummary/mlx.core.left_shift.html | 105 +- .../python/_autosummary/mlx.core.less.html | 105 +- .../_autosummary/mlx.core.less_equal.html | 105 +- .../mlx.core.linalg.cholesky.html | 105 +- .../mlx.core.linalg.cholesky_inv.html | 105 +- .../_autosummary/mlx.core.linalg.cross.html | 105 +- .../_autosummary/mlx.core.linalg.eigh.html | 1013 +++++ .../mlx.core.linalg.eigvalsh.html | 1007 +++++ .../_autosummary/mlx.core.linalg.inv.html | 105 +- .../_autosummary/mlx.core.linalg.norm.html | 105 +- .../_autosummary/mlx.core.linalg.qr.html | 105 +- .../_autosummary/mlx.core.linalg.svd.html | 111 +- .../_autosummary/mlx.core.linalg.tri_inv.html | 105 +- .../_autosummary/mlx.core.linspace.html | 105 +- .../python/_autosummary/mlx.core.load.html | 105 +- .../python/_autosummary/mlx.core.log.html | 105 +- .../python/_autosummary/mlx.core.log10.html | 105 +- .../python/_autosummary/mlx.core.log1p.html | 105 +- .../python/_autosummary/mlx.core.log2.html | 105 +- .../_autosummary/mlx.core.logaddexp.html | 105 +- .../_autosummary/mlx.core.logical_and.html | 105 +- .../_autosummary/mlx.core.logical_not.html | 105 +- .../_autosummary/mlx.core.logical_or.html | 105 +- .../_autosummary/mlx.core.logsumexp.html | 105 +- .../python/_autosummary/mlx.core.matmul.html | 105 +- .../python/_autosummary/mlx.core.max.html | 105 +- .../python/_autosummary/mlx.core.maximum.html | 105 +- .../python/_autosummary/mlx.core.mean.html | 105 +- .../_autosummary/mlx.core.meshgrid.html | 105 +- .../mlx.core.metal.clear_cache.html | 111 +- .../mlx.core.metal.device_info.html | 105 +- .../mlx.core.metal.get_active_memory.html | 105 +- .../mlx.core.metal.get_cache_memory.html | 105 +- .../mlx.core.metal.get_peak_memory.html | 105 +- .../mlx.core.metal.is_available.html | 105 +- .../mlx.core.metal.reset_peak_memory.html | 105 +- .../mlx.core.metal.set_cache_limit.html | 111 +- .../mlx.core.metal.set_memory_limit.html | 105 +- .../mlx.core.metal.set_wired_limit.html | 1003 +++++ .../mlx.core.metal.start_capture.html | 105 +- .../mlx.core.metal.stop_capture.html | 105 +- .../python/_autosummary/mlx.core.min.html | 105 +- .../python/_autosummary/mlx.core.minimum.html | 105 +- .../_autosummary/mlx.core.moveaxis.html | 105 +- .../_autosummary/mlx.core.multiply.html | 105 +- .../_autosummary/mlx.core.nan_to_num.html | 105 +- .../_autosummary/mlx.core.negative.html | 105 +- .../_autosummary/mlx.core.new_stream.html | 105 +- .../_autosummary/mlx.core.not_equal.html | 105 +- .../python/_autosummary/mlx.core.ones.html | 105 +- .../_autosummary/mlx.core.ones_like.html | 105 +- .../python/_autosummary/mlx.core.outer.html | 105 +- .../python/_autosummary/mlx.core.pad.html | 105 +- .../_autosummary/mlx.core.partition.html | 105 +- .../python/_autosummary/mlx.core.power.html | 105 +- .../python/_autosummary/mlx.core.prod.html | 105 +- .../_autosummary/mlx.core.put_along_axis.html | 105 +- .../_autosummary/mlx.core.quantize.html | 105 +- .../mlx.core.quantized_matmul.html | 105 +- .../python/_autosummary/mlx.core.radians.html | 105 +- .../mlx.core.random.bernoulli.html | 105 +- .../mlx.core.random.categorical.html | 105 +- .../_autosummary/mlx.core.random.gumbel.html | 105 +- .../_autosummary/mlx.core.random.key.html | 105 +- .../_autosummary/mlx.core.random.laplace.html | 105 +- .../mlx.core.random.multivariate_normal.html | 105 +- .../_autosummary/mlx.core.random.normal.html | 105 +- .../mlx.core.random.permutation.html | 105 +- .../_autosummary/mlx.core.random.randint.html | 105 +- .../_autosummary/mlx.core.random.seed.html | 105 +- .../_autosummary/mlx.core.random.split.html | 105 +- .../mlx.core.random.truncated_normal.html | 105 +- .../_autosummary/mlx.core.random.uniform.html | 105 +- .../python/_autosummary/mlx.core.real.html | 105 +- .../_autosummary/mlx.core.reciprocal.html | 105 +- .../_autosummary/mlx.core.remainder.html | 105 +- .../python/_autosummary/mlx.core.repeat.html | 105 +- .../python/_autosummary/mlx.core.reshape.html | 105 +- .../_autosummary/mlx.core.right_shift.html | 105 +- .../python/_autosummary/mlx.core.roll.html | 105 +- .../python/_autosummary/mlx.core.round.html | 105 +- .../python/_autosummary/mlx.core.rsqrt.html | 105 +- .../python/_autosummary/mlx.core.save.html | 105 +- .../_autosummary/mlx.core.save_gguf.html | 105 +- .../mlx.core.save_safetensors.html | 105 +- .../python/_autosummary/mlx.core.savez.html | 105 +- .../mlx.core.savez_compressed.html | 105 +- .../mlx.core.set_default_device.html | 105 +- .../mlx.core.set_default_stream.html | 105 +- .../python/_autosummary/mlx.core.sigmoid.html | 105 +- .../python/_autosummary/mlx.core.sign.html | 105 +- .../python/_autosummary/mlx.core.sin.html | 105 +- .../python/_autosummary/mlx.core.sinh.html | 105 +- .../python/_autosummary/mlx.core.softmax.html | 105 +- .../python/_autosummary/mlx.core.sort.html | 105 +- .../python/_autosummary/mlx.core.split.html | 105 +- .../python/_autosummary/mlx.core.sqrt.html | 105 +- .../python/_autosummary/mlx.core.square.html | 105 +- .../python/_autosummary/mlx.core.squeeze.html | 105 +- .../python/_autosummary/mlx.core.stack.html | 105 +- .../python/_autosummary/mlx.core.std.html | 105 +- .../_autosummary/mlx.core.stop_gradient.html | 105 +- .../python/_autosummary/mlx.core.stream.html | 105 +- .../_autosummary/mlx.core.subtract.html | 105 +- .../python/_autosummary/mlx.core.sum.html | 105 +- .../_autosummary/mlx.core.swapaxes.html | 105 +- .../_autosummary/mlx.core.synchronize.html | 105 +- .../python/_autosummary/mlx.core.take.html | 105 +- .../mlx.core.take_along_axis.html | 105 +- .../python/_autosummary/mlx.core.tan.html | 105 +- .../python/_autosummary/mlx.core.tanh.html | 105 +- .../_autosummary/mlx.core.tensordot.html | 105 +- .../python/_autosummary/mlx.core.tile.html | 105 +- .../python/_autosummary/mlx.core.topk.html | 105 +- .../python/_autosummary/mlx.core.trace.html | 105 +- .../_autosummary/mlx.core.transpose.html | 105 +- .../python/_autosummary/mlx.core.tri.html | 105 +- .../python/_autosummary/mlx.core.tril.html | 105 +- .../python/_autosummary/mlx.core.triu.html | 105 +- .../_autosummary/mlx.core.value_and_grad.html | 105 +- .../python/_autosummary/mlx.core.var.html | 105 +- .../python/_autosummary/mlx.core.view.html | 105 +- .../python/_autosummary/mlx.core.vjp.html | 105 +- .../python/_autosummary/mlx.core.vmap.html | 105 +- .../python/_autosummary/mlx.core.where.html | 105 +- .../python/_autosummary/mlx.core.zeros.html | 105 +- .../_autosummary/mlx.core.zeros_like.html | 105 +- .../python/_autosummary/mlx.nn.quantize.html | 105 +- .../_autosummary/mlx.nn.value_and_grad.html | 105 +- .../mlx.optimizers.clip_grad_norm.html | 105 +- .../_autosummary/mlx.utils.tree_flatten.html | 105 +- .../_autosummary/mlx.utils.tree_map.html | 105 +- .../mlx.utils.tree_map_with_path.html | 105 +- .../_autosummary/mlx.utils.tree_reduce.html | 105 +- .../mlx.utils.tree_unflatten.html | 105 +- .../python/_autosummary/stream_class.html | 105 +- docs/build/html/python/array.html | 102 +- docs/build/html/python/data_types.html | 102 +- .../html/python/devices_and_streams.html | 102 +- docs/build/html/python/distributed.html | 102 +- docs/build/html/python/fast.html | 102 +- docs/build/html/python/fft.html | 102 +- docs/build/html/python/linalg.html | 108 +- docs/build/html/python/metal.html | 117 +- docs/build/html/python/nn.html | 105 +- .../python/nn/_autosummary/mlx.nn.ALiBi.html | 105 +- .../nn/_autosummary/mlx.nn.AvgPool1d.html | 105 +- .../nn/_autosummary/mlx.nn.AvgPool2d.html | 105 +- .../nn/_autosummary/mlx.nn.BatchNorm.html | 105 +- .../python/nn/_autosummary/mlx.nn.CELU.html | 105 +- .../python/nn/_autosummary/mlx.nn.Conv1d.html | 105 +- .../python/nn/_autosummary/mlx.nn.Conv2d.html | 105 +- .../python/nn/_autosummary/mlx.nn.Conv3d.html | 105 +- .../_autosummary/mlx.nn.ConvTranspose1d.html | 105 +- .../_autosummary/mlx.nn.ConvTranspose2d.html | 105 +- .../_autosummary/mlx.nn.ConvTranspose3d.html | 105 +- .../nn/_autosummary/mlx.nn.Dropout.html | 105 +- .../nn/_autosummary/mlx.nn.Dropout2d.html | 105 +- .../nn/_autosummary/mlx.nn.Dropout3d.html | 105 +- .../python/nn/_autosummary/mlx.nn.ELU.html | 105 +- .../nn/_autosummary/mlx.nn.Embedding.html | 105 +- .../python/nn/_autosummary/mlx.nn.GELU.html | 105 +- .../python/nn/_autosummary/mlx.nn.GLU.html | 105 +- .../python/nn/_autosummary/mlx.nn.GRU.html | 105 +- .../nn/_autosummary/mlx.nn.GroupNorm.html | 105 +- .../nn/_autosummary/mlx.nn.HardShrink.html | 105 +- .../nn/_autosummary/mlx.nn.HardTanh.html | 105 +- .../nn/_autosummary/mlx.nn.Hardswish.html | 105 +- .../nn/_autosummary/mlx.nn.InstanceNorm.html | 105 +- .../python/nn/_autosummary/mlx.nn.LSTM.html | 105 +- .../nn/_autosummary/mlx.nn.LayerNorm.html | 105 +- .../nn/_autosummary/mlx.nn.LeakyReLU.html | 105 +- .../python/nn/_autosummary/mlx.nn.Linear.html | 105 +- .../nn/_autosummary/mlx.nn.LogSigmoid.html | 105 +- .../nn/_autosummary/mlx.nn.LogSoftmax.html | 105 +- .../nn/_autosummary/mlx.nn.MaxPool1d.html | 105 +- .../nn/_autosummary/mlx.nn.MaxPool2d.html | 105 +- .../python/nn/_autosummary/mlx.nn.Mish.html | 105 +- .../nn/_autosummary/mlx.nn.Module.apply.html | 105 +- .../mlx.nn.Module.apply_to_modules.html | 105 +- .../_autosummary/mlx.nn.Module.children.html | 105 +- .../nn/_autosummary/mlx.nn.Module.eval.html | 105 +- .../mlx.nn.Module.filter_and_map.html | 105 +- .../nn/_autosummary/mlx.nn.Module.freeze.html | 105 +- .../mlx.nn.Module.leaf_modules.html | 105 +- .../mlx.nn.Module.load_weights.html | 105 +- .../_autosummary/mlx.nn.Module.modules.html | 105 +- .../mlx.nn.Module.named_modules.html | 105 +- .../mlx.nn.Module.parameters.html | 105 +- .../mlx.nn.Module.save_weights.html | 105 +- .../_autosummary/mlx.nn.Module.set_dtype.html | 105 +- .../nn/_autosummary/mlx.nn.Module.state.html | 105 +- .../nn/_autosummary/mlx.nn.Module.train.html | 105 +- .../mlx.nn.Module.trainable_parameters.html | 105 +- .../_autosummary/mlx.nn.Module.training.html | 105 +- .../_autosummary/mlx.nn.Module.unfreeze.html | 105 +- .../nn/_autosummary/mlx.nn.Module.update.html | 105 +- .../mlx.nn.Module.update_modules.html | 105 +- .../mlx.nn.MultiHeadAttention.html | 105 +- .../python/nn/_autosummary/mlx.nn.PReLU.html | 105 +- .../mlx.nn.QuantizedEmbedding.html | 105 +- .../_autosummary/mlx.nn.QuantizedLinear.html | 105 +- .../nn/_autosummary/mlx.nn.RMSNorm.html | 105 +- .../python/nn/_autosummary/mlx.nn.RNN.html | 105 +- .../python/nn/_autosummary/mlx.nn.ReLU.html | 105 +- .../python/nn/_autosummary/mlx.nn.ReLU6.html | 105 +- .../python/nn/_autosummary/mlx.nn.RoPE.html | 105 +- .../python/nn/_autosummary/mlx.nn.SELU.html | 105 +- .../nn/_autosummary/mlx.nn.Sequential.html | 105 +- .../python/nn/_autosummary/mlx.nn.SiLU.html | 105 +- .../nn/_autosummary/mlx.nn.Sigmoid.html | 105 +- .../mlx.nn.SinusoidalPositionalEncoding.html | 105 +- .../nn/_autosummary/mlx.nn.Softmax.html | 105 +- .../nn/_autosummary/mlx.nn.Softmin.html | 105 +- .../nn/_autosummary/mlx.nn.Softplus.html | 105 +- .../nn/_autosummary/mlx.nn.Softshrink.html | 105 +- .../nn/_autosummary/mlx.nn.Softsign.html | 105 +- .../python/nn/_autosummary/mlx.nn.Step.html | 105 +- .../python/nn/_autosummary/mlx.nn.Tanh.html | 105 +- .../nn/_autosummary/mlx.nn.Transformer.html | 105 +- .../nn/_autosummary/mlx.nn.Upsample.html | 105 +- .../nn/_autosummary/mlx.nn.init.constant.html | 105 +- .../mlx.nn.init.glorot_normal.html | 105 +- .../mlx.nn.init.glorot_uniform.html | 105 +- .../_autosummary/mlx.nn.init.he_normal.html | 105 +- .../_autosummary/mlx.nn.init.he_uniform.html | 105 +- .../nn/_autosummary/mlx.nn.init.identity.html | 105 +- .../nn/_autosummary/mlx.nn.init.normal.html | 105 +- .../nn/_autosummary/mlx.nn.init.uniform.html | 105 +- .../_autosummary_functions/mlx.nn.celu.html | 105 +- .../nn/_autosummary_functions/mlx.nn.elu.html | 105 +- .../_autosummary_functions/mlx.nn.gelu.html | 105 +- .../mlx.nn.gelu_approx.html | 105 +- .../mlx.nn.gelu_fast_approx.html | 105 +- .../nn/_autosummary_functions/mlx.nn.glu.html | 105 +- .../mlx.nn.hard_shrink.html | 105 +- .../mlx.nn.hard_tanh.html | 105 +- .../mlx.nn.hardswish.html | 105 +- .../mlx.nn.leaky_relu.html | 105 +- .../mlx.nn.log_sigmoid.html | 105 +- .../mlx.nn.log_softmax.html | 105 +- .../mlx.nn.losses.binary_cross_entropy.html | 105 +- .../mlx.nn.losses.cosine_similarity_loss.html | 105 +- .../mlx.nn.losses.cross_entropy.html | 105 +- .../mlx.nn.losses.gaussian_nll_loss.html | 105 +- .../mlx.nn.losses.hinge_loss.html | 105 +- .../mlx.nn.losses.huber_loss.html | 105 +- .../mlx.nn.losses.kl_div_loss.html | 105 +- .../mlx.nn.losses.l1_loss.html | 105 +- .../mlx.nn.losses.log_cosh_loss.html | 105 +- .../mlx.nn.losses.margin_ranking_loss.html | 105 +- .../mlx.nn.losses.mse_loss.html | 105 +- .../mlx.nn.losses.nll_loss.html | 105 +- .../mlx.nn.losses.smooth_l1_loss.html | 105 +- .../mlx.nn.losses.triplet_loss.html | 105 +- .../_autosummary_functions/mlx.nn.mish.html | 105 +- .../_autosummary_functions/mlx.nn.prelu.html | 105 +- .../_autosummary_functions/mlx.nn.relu.html | 105 +- .../_autosummary_functions/mlx.nn.relu6.html | 105 +- .../_autosummary_functions/mlx.nn.selu.html | 105 +- .../mlx.nn.sigmoid.html | 105 +- .../_autosummary_functions/mlx.nn.silu.html | 105 +- .../mlx.nn.softmax.html | 105 +- .../mlx.nn.softmin.html | 105 +- .../mlx.nn.softplus.html | 105 +- .../mlx.nn.softshrink.html | 105 +- .../_autosummary_functions/mlx.nn.step.html | 105 +- .../_autosummary_functions/mlx.nn.tanh.html | 105 +- docs/build/html/python/nn/functions.html | 102 +- docs/build/html/python/nn/init.html | 102 +- docs/build/html/python/nn/layers.html | 102 +- docs/build/html/python/nn/losses.html | 102 +- docs/build/html/python/nn/module.html | 105 +- docs/build/html/python/ops.html | 102 +- docs/build/html/python/optimizers.html | 105 +- .../_autosummary/mlx.optimizers.AdaDelta.html | 105 +- .../mlx.optimizers.Adafactor.html | 105 +- .../_autosummary/mlx.optimizers.Adagrad.html | 105 +- .../_autosummary/mlx.optimizers.Adam.html | 105 +- .../_autosummary/mlx.optimizers.AdamW.html | 105 +- .../_autosummary/mlx.optimizers.Adamax.html | 105 +- .../_autosummary/mlx.optimizers.Lion.html | 105 +- ....optimizers.Optimizer.apply_gradients.html | 105 +- .../mlx.optimizers.Optimizer.init.html | 105 +- .../mlx.optimizers.Optimizer.state.html | 105 +- .../mlx.optimizers.Optimizer.update.html | 105 +- .../_autosummary/mlx.optimizers.RMSprop.html | 105 +- .../_autosummary/mlx.optimizers.SGD.html | 105 +- .../mlx.optimizers.cosine_decay.html | 105 +- .../mlx.optimizers.exponential_decay.html | 105 +- .../mlx.optimizers.join_schedules.html | 105 +- .../mlx.optimizers.linear_schedule.html | 105 +- .../mlx.optimizers.step_decay.html | 105 +- .../python/optimizers/common_optimizers.html | 102 +- .../html/python/optimizers/optimizer.html | 105 +- .../html/python/optimizers/schedulers.html | 102 +- docs/build/html/python/random.html | 102 +- docs/build/html/python/transforms.html | 102 +- docs/build/html/python/tree_utils.html | 102 +- docs/build/html/quantized_8h.html | 1019 +++-- docs/build/html/quantized_8h_source.html | 3555 +++++++++-------- docs/build/html/readwrite_8h_source.html | 2 +- ...cum_prod-members.html => resident_8h.html} | 38 +- docs/build/html/resident_8h_source.html | 149 + .../{kernels_2scan_8h.html => scan_8h.html} | 114 +- ...can_8h_source.html => scan_8h_source.html} | 1034 ++--- docs/build/html/search.html | 103 +- docs/build/html/search/all_1.js | 198 +- docs/build/html/search/all_10.js | 2 +- docs/build/html/search/all_11.js | 42 +- docs/build/html/search/all_12.js | 74 +- docs/build/html/search/all_13.js | 353 +- docs/build/html/search/all_14.js | 149 +- docs/build/html/search/all_16.js | 2 +- docs/build/html/search/all_17.js | 4 +- docs/build/html/search/all_1a.js | 29 +- docs/build/html/search/all_2.js | 19 +- docs/build/html/search/all_3.js | 2 +- docs/build/html/search/all_4.js | 81 +- docs/build/html/search/all_5.js | 113 +- docs/build/html/search/all_6.js | 83 +- docs/build/html/search/all_7.js | 2 +- docs/build/html/search/all_9.js | 101 +- docs/build/html/search/all_c.js | 6 +- docs/build/html/search/all_d.js | 15 +- docs/build/html/search/all_f.js | 8 +- docs/build/html/search/classes_11.js | 19 +- docs/build/html/search/classes_4.js | 9 +- docs/build/html/search/classes_5.js | 21 +- docs/build/html/search/classes_6.js | 15 +- docs/build/html/search/defines_4.js | 6 +- docs/build/html/search/defines_8.js | 2 +- docs/build/html/search/files_10.js | 2 +- docs/build/html/search/files_a.js | 2 +- docs/build/html/search/files_f.js | 3 +- docs/build/html/search/functions_1.js | 146 +- docs/build/html/search/functions_10.js | 2 +- docs/build/html/search/functions_11.js | 36 +- docs/build/html/search/functions_12.js | 61 +- docs/build/html/search/functions_13.js | 206 +- docs/build/html/search/functions_16.js | 2 +- docs/build/html/search/functions_17.js | 4 +- docs/build/html/search/functions_19.js | 29 +- docs/build/html/search/functions_2.js | 10 +- docs/build/html/search/functions_3.js | 2 +- docs/build/html/search/functions_4.js | 27 +- docs/build/html/search/functions_5.js | 82 +- docs/build/html/search/functions_6.js | 53 +- docs/build/html/search/functions_7.js | 2 +- docs/build/html/search/functions_9.js | 57 +- docs/build/html/search/functions_c.js | 4 +- docs/build/html/search/functions_d.js | 9 +- docs/build/html/search/functions_f.js | 8 +- docs/build/html/search/variables_1.js | 5 +- docs/build/html/search/variables_10.js | 4 +- docs/build/html/search/variables_12.js | 67 +- docs/build/html/search/variables_13.js | 49 +- docs/build/html/search/variables_4.js | 3 +- docs/build/html/search/variables_5.js | 18 +- docs/build/html/search/variables_8.js | 2 +- docs/build/html/search/variables_e.js | 3 +- docs/build/html/searchindex.js | 2 +- docs/build/html/struct_cum_max.html | 4 +- docs/build/html/struct_cum_min.html | 4 +- docs/build/html/struct_cum_prod.html | 137 +- .../html/struct_cum_prod_3_01bool_01_4.html | 4 +- docs/build/html/struct_cum_sum.html | 137 +- .../html/struct_quantized_block_loader.html | 2 +- ..._1_1metal_1_1_command_encoder-members.html | 6 +- ..._1_1core_1_1metal_1_1_command_encoder.html | 54 + ...re_1_1metal_1_1_device_stream-members.html | 114 + ...lx_1_1core_1_1metal_1_1_device_stream.html | 301 ++ ...x_1_1core_1_1metal_1_1_fence-members.html} | 15 +- .../structmlx_1_1core_1_1metal_1_1_fence.html | 189 + docs/build/html/usage/compile.html | 111 +- docs/build/html/usage/distributed.html | 105 +- .../build/html/usage/function_transforms.html | 105 +- docs/build/html/usage/indexing.html | 105 +- docs/build/html/usage/lazy_evaluation.html | 105 +- docs/build/html/usage/numpy.html | 105 +- docs/build/html/usage/quick_start.html | 105 +- docs/build/html/usage/saving_and_loading.html | 102 +- docs/build/html/usage/unified_memory.html | 105 +- docs/build/html/usage/using_streams.html | 105 +- 717 files changed, 33254 insertions(+), 34561 deletions(-) create mode 100644 docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigh.rst create mode 100644 docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigvalsh.rst create mode 100644 docs/build/html/_sources/python/_autosummary/mlx.core.metal.set_wired_limit.rst create mode 100644 docs/build/html/_static/scripts/fontawesome.js rename docs/build/html/_static/{vendor/fontawesome/6.5.2/js/all.min.js.LICENSE.txt => scripts/fontawesome.js.LICENSE.txt} (100%) create mode 100644 docs/build/html/_static/scripts/fontawesome.js.map delete mode 100644 docs/build/html/_static/styles/bootstrap.css delete mode 100644 docs/build/html/_static/styles/bootstrap.css.map delete mode 100644 docs/build/html/_static/vendor/fontawesome/6.5.2/LICENSE.txt delete mode 100644 docs/build/html/_static/vendor/fontawesome/6.5.2/css/all.min.css delete mode 100644 docs/build/html/_static/vendor/fontawesome/6.5.2/js/all.min.js delete mode 100644 docs/build/html/_static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.ttf delete mode 100644 docs/build/html/_static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.woff2 rename docs/build/html/_static/vendor/fontawesome/{6.5.2 => }/webfonts/fa-brands-400.ttf (100%) rename docs/build/html/_static/vendor/fontawesome/{6.5.2 => }/webfonts/fa-brands-400.woff2 (100%) rename docs/build/html/_static/vendor/fontawesome/{6.5.2 => }/webfonts/fa-regular-400.ttf (100%) rename docs/build/html/_static/vendor/fontawesome/{6.5.2 => }/webfonts/fa-regular-400.woff2 (100%) rename docs/build/html/_static/vendor/fontawesome/{6.5.2 => }/webfonts/fa-solid-900.ttf (100%) rename docs/build/html/_static/vendor/fontawesome/{6.5.2 => }/webfonts/fa-solid-900.woff2 (100%) create mode 100644 docs/build/html/classmlx_1_1core_1_1_eigh-members.html create mode 100644 docs/build/html/classmlx_1_1core_1_1_eigh.html create mode 100644 docs/build/html/classmlx_1_1core_1_1_eigh.png create mode 100644 docs/build/html/classmlx_1_1core_1_1metal_1_1_residency_set-members.html create mode 100644 docs/build/html/classmlx_1_1core_1_1metal_1_1_residency_set.html delete mode 100644 docs/build/html/jit_2scan_8h.html delete mode 100644 docs/build/html/jit_2scan_8h_source.html rename docs/build/html/{lapack__helper_8h.html => lapack_8h.html} (93%) rename docs/build/html/{lapack__helper_8h_source.html => lapack_8h_source.html} (78%) create mode 100644 docs/build/html/python/_autosummary/mlx.core.linalg.eigh.html create mode 100644 docs/build/html/python/_autosummary/mlx.core.linalg.eigvalsh.html create mode 100644 docs/build/html/python/_autosummary/mlx.core.metal.set_wired_limit.html rename docs/build/html/{struct_cum_prod-members.html => resident_8h.html} (59%) create mode 100644 docs/build/html/resident_8h_source.html rename docs/build/html/{kernels_2scan_8h.html => scan_8h.html} (69%) rename docs/build/html/{kernels_2scan_8h_source.html => scan_8h_source.html} (52%) create mode 100644 docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream-members.html create mode 100644 docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream.html rename docs/build/html/{struct_cum_sum-members.html => structmlx_1_1core_1_1metal_1_1_fence-members.html} (70%) create mode 100644 docs/build/html/structmlx_1_1core_1_1metal_1_1_fence.html diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 5968ca412..50696688e 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 19a532605596267974106a744b1b96b3 +config: c431be841be9331fc029403834cef1bf tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/install.rst b/docs/build/html/_sources/install.rst index 225ecfd62..7c68942f4 100644 --- a/docs/build/html/_sources/install.rst +++ b/docs/build/html/_sources/install.rst @@ -240,7 +240,7 @@ x86 Shell .. _build shell: -If the ouptut of ``uname -p`` is ``x86`` then your shell is running as x86 via +If the output of ``uname -p`` is ``x86`` then your shell is running as x86 via Rosetta instead of natively. To fix this, find the application in Finder (``/Applications`` for iTerm, @@ -264,4 +264,4 @@ Also check that cmake is using the correct architecture: If you see ``"x86_64"``, try re-installing ``cmake``. If you see ``"arm64"`` but the build errors out with "Building for x86_64 on macOS is not supported." -wipe your build cahce with ``rm -rf build/`` and try again. +wipe your build cache with ``rm -rf build/`` and try again. diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigh.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigh.rst new file mode 100644 index 000000000..dab90d942 --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigh.rst @@ -0,0 +1,6 @@ +mlx.core.linalg.eigh +==================== + +.. currentmodule:: mlx.core.linalg + +.. autofunction:: eigh \ No newline at end of file diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigvalsh.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigvalsh.rst new file mode 100644 index 000000000..b3c900ded --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.linalg.eigvalsh.rst @@ -0,0 +1,6 @@ +mlx.core.linalg.eigvalsh +======================== + +.. currentmodule:: mlx.core.linalg + +.. autofunction:: eigvalsh \ No newline at end of file diff --git a/docs/build/html/_sources/python/_autosummary/mlx.core.metal.set_wired_limit.rst b/docs/build/html/_sources/python/_autosummary/mlx.core.metal.set_wired_limit.rst new file mode 100644 index 000000000..297e45be1 --- /dev/null +++ b/docs/build/html/_sources/python/_autosummary/mlx.core.metal.set_wired_limit.rst @@ -0,0 +1,6 @@ +mlx.core.metal.set\_wired\_limit +================================ + +.. currentmodule:: mlx.core.metal + +.. autofunction:: set_wired_limit \ No newline at end of file diff --git a/docs/build/html/_sources/python/linalg.rst b/docs/build/html/_sources/python/linalg.rst index 227711c22..f6c51ed0b 100644 --- a/docs/build/html/_sources/python/linalg.rst +++ b/docs/build/html/_sources/python/linalg.rst @@ -16,3 +16,5 @@ Linear Algebra cross qr svd + eigvalsh + eigh diff --git a/docs/build/html/_sources/python/metal.rst b/docs/build/html/_sources/python/metal.rst index cb2cdb38e..4d6fb91d9 100644 --- a/docs/build/html/_sources/python/metal.rst +++ b/docs/build/html/_sources/python/metal.rst @@ -14,6 +14,7 @@ Metal get_cache_memory set_memory_limit set_cache_limit + set_wired_limit clear_cache start_capture stop_capture diff --git a/docs/build/html/_sources/usage/compile.rst b/docs/build/html/_sources/usage/compile.rst index 97d5503a3..091505fe4 100644 --- a/docs/build/html/_sources/usage/compile.rst +++ b/docs/build/html/_sources/usage/compile.rst @@ -33,12 +33,12 @@ Let's start with a simple example: # Compile the function compiled_fun = mx.compile(fun) - # Prints: array(2.36788, dtype=float32) + # Prints: array(2.36788, dtype=float32) print(compiled_fun(x, y)) The output of both the regular function and the compiled function is the same up to numerical precision. - + The first time you call a compiled function, MLX will build the compute graph, optimize it, and generate and compile code. This can be relatively slow. However, MLX will cache compiled functions, so calling a compiled @@ -96,7 +96,7 @@ element-wise operations: .. code-block:: python - def gelu(x): + def gelu(x): return x * (1 + mx.erf(x / math.sqrt(2))) / 2 If you use this function with small arrays, it will be overhead bound. If you @@ -136,13 +136,6 @@ Now make an array, and benchmark both functions: On an M1 Max the times are 15.5 and 3.1 milliseconds. The compiled ``gelu`` is five times faster. -.. note:: - - As of the latest MLX, CPU functions are not fully compiled. Compiling CPU - functions can still be helpful, but won't typically result in as large a - speedup as compiling operations that run on the GPU. - - Debugging --------- @@ -287,7 +280,7 @@ to the function. In some cases this can be pretty inconvenient. Hence, print(fun(mx.array(1.0))) -Compiling Training Graphs +Compiling Training Graphs ------------------------- This section will step through how to use :func:`compile` with a simple example @@ -297,7 +290,7 @@ full forward, backward, and update with :func:`compile`. To start, here is the simple example without any compilation: -.. code-block:: python +.. code-block:: python import mlx.core as mx import mlx.nn as nn @@ -330,7 +323,7 @@ To start, here is the simple example without any compilation: To compile the update we can put it all in a function and compile it with the appropriate input and output captures. Here's the same example but compiled: -.. code-block:: python +.. code-block:: python import mlx.core as mx import mlx.nn as nn @@ -355,7 +348,7 @@ appropriate input and output captures. Here's the same example but compiled: # The state that will be captured as input and output state = [model.state, optimizer.state] - + @partial(mx.compile, inputs=state, outputs=state) def step(x, y): loss_and_grad_fn = nn.value_and_grad(model, loss_fn) @@ -410,7 +403,7 @@ Compiling transformed functions works just as expected: In order to compile as much as possible, a transformation of a compiled function will not by default be compiled. To compile the transformed - function simply pass it through :func:`compile`. + function simply pass it through :func:`compile`. You can also compile functions which themselves call compiled functions. A good practice is to compile the outer most function to give :func:`compile` diff --git a/docs/build/html/_sources/usage/function_transforms.rst b/docs/build/html/_sources/usage/function_transforms.rst index 77e58058a..9a15bbf1c 100644 --- a/docs/build/html/_sources/usage/function_transforms.rst +++ b/docs/build/html/_sources/usage/function_transforms.rst @@ -25,7 +25,7 @@ Here is a simple example: The output of :func:`grad` on :func:`sin` is simply another function. In this case it is the gradient of the sine function which is exactly the cosine -function. To get the second derivative you can do: +function. To get the second derivative you can do: .. code-block:: shell @@ -50,7 +50,7 @@ Automatic Differentiation .. _auto diff: Automatic differentiation in MLX works on functions rather than on implicit -graphs. +graphs. .. note:: @@ -114,7 +114,7 @@ way to do that is the following: def loss_fn(params, x, y): w, b = params["weight"], params["bias"] - h = w * x + b + h = w * x + b return mx.mean(mx.square(h - y)) params = {"weight": mx.array(1.0), "bias": mx.array(0.0)} @@ -132,7 +132,7 @@ way to do that is the following: Notice the tree structure of the parameters is preserved in the gradients. -In some cases you may want to stop gradients from propagating through a +In some cases you may want to stop gradients from propagating through a part of the function. You can use the :func:`stop_gradient` for that. @@ -166,14 +166,14 @@ A naive way to add the elements from two sets of vectors is with a loop: Instead you can use :func:`vmap` to automatically vectorize the addition: .. code-block:: python - + # Vectorize over the second dimension of x and the # first dimension of y vmap_add = mx.vmap(lambda x, y: x + y, in_axes=(1, 0)) The ``in_axes`` parameter can be used to specify which dimensions of the corresponding input to vectorize over. Similarly, use ``out_axes`` to specify -where the vectorized axes should be in the outputs. +where the vectorized axes should be in the outputs. Let's time these two different versions: diff --git a/docs/build/html/_sources/usage/indexing.rst b/docs/build/html/_sources/usage/indexing.rst index 458541923..62994a0fb 100644 --- a/docs/build/html/_sources/usage/indexing.rst +++ b/docs/build/html/_sources/usage/indexing.rst @@ -51,7 +51,7 @@ You can also use an :obj:`array` to index another :obj:`array`: .. code-block:: shell >>> arr = mx.arange(10) - >>> idx = mx.array([5, 7]) + >>> idx = mx.array([5, 7]) >>> arr[idx] array([5, 7], dtype=int32) @@ -82,7 +82,7 @@ general, MLX has limited support for operations for which outputs operations which MLX does not yet support include :func:`numpy.nonzero` and the single input version of :func:`numpy.where`. -In Place Updates +In Place Updates ---------------- In place updates to indexed arrays are possible in MLX. For example: diff --git a/docs/build/html/_sources/usage/lazy_evaluation.rst b/docs/build/html/_sources/usage/lazy_evaluation.rst index bd64f919c..466edaaed 100644 --- a/docs/build/html/_sources/usage/lazy_evaluation.rst +++ b/docs/build/html/_sources/usage/lazy_evaluation.rst @@ -13,7 +13,7 @@ compute graph is recorded. The actual computation only happens if an :func:`eval` is performed. MLX uses lazy evaluation because it has some nice features, some of which we -describe below. +describe below. Transforming Compute Graphs ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -116,7 +116,7 @@ saving functions) will also evaluate the array. Calling :func:`array.item` on a scalar array will also evaluate it. In the example above, printing the loss (``print(loss)``) or adding the loss scalar to -a list (``losses.append(loss.item())``) would cause a graph evaluation. If +a list (``losses.append(loss.item())``) would cause a graph evaluation. If these lines are before ``mx.eval(loss, model.parameters())`` then this will be a partial evaluation, computing only the forward pass. diff --git a/docs/build/html/_sources/usage/numpy.rst b/docs/build/html/_sources/usage/numpy.rst index 6edb94b8b..c589f1887 100644 --- a/docs/build/html/_sources/usage/numpy.rst +++ b/docs/build/html/_sources/usage/numpy.rst @@ -3,10 +3,10 @@ Conversion to NumPy and Other Frameworks ======================================== -MLX array supports conversion between other frameworks with either: +MLX array supports conversion between other frameworks with either: -* The `Python Buffer Protocol `_. -* `DLPack `_. +* The `Python Buffer Protocol `_. +* `DLPack `_. Let's convert an array to NumPy and back. @@ -66,7 +66,7 @@ even though no in-place operations on MLX memory are executed. PyTorch ------- -.. warning:: +.. warning:: PyTorch Support for :obj:`memoryview` is experimental and can break for multi-dimensional arrays. Casting to NumPy first is advised for now. diff --git a/docs/build/html/_sources/usage/quick_start.rst b/docs/build/html/_sources/usage/quick_start.rst index 251f5344c..bc1d92ad6 100644 --- a/docs/build/html/_sources/usage/quick_start.rst +++ b/docs/build/html/_sources/usage/quick_start.rst @@ -64,4 +64,4 @@ Other gradient transformations include :func:`vjp` for vector-Jacobian products and :func:`jvp` for Jacobian-vector products. Use :func:`value_and_grad` to efficiently compute both a function's output and -gradient with respect to the function's input. +gradient with respect to the function's input. diff --git a/docs/build/html/_sources/usage/saving_and_loading.rst b/docs/build/html/_sources/usage/saving_and_loading.rst index c142bc776..43f2a7999 100644 --- a/docs/build/html/_sources/usage/saving_and_loading.rst +++ b/docs/build/html/_sources/usage/saving_and_loading.rst @@ -8,33 +8,33 @@ Saving and Loading Arrays MLX supports multiple array serialization formats. .. list-table:: Serialization Formats - :widths: 20 8 25 25 + :widths: 20 8 25 25 :header-rows: 1 - * - Format - - Extension + * - Format + - Extension - Function - - Notes - * - NumPy - - ``.npy`` + - Notes + * - NumPy + - ``.npy`` - :func:`save` - Single arrays only - * - NumPy archive - - ``.npz`` + * - NumPy archive + - ``.npz`` - :func:`savez` and :func:`savez_compressed` - - Multiple arrays + - Multiple arrays * - Safetensors - - ``.safetensors`` + - ``.safetensors`` - :func:`save_safetensors` - - Multiple arrays - * - GGUF - - ``.gguf`` + - Multiple arrays + * - GGUF + - ``.gguf`` - :func:`save_gguf` - Multiple arrays The :func:`load` function will load any of the supported serialization formats. It determines the format from the extensions. The output of -:func:`load` depends on the format. +:func:`load` depends on the format. Here's an example of saving a single array to a file: diff --git a/docs/build/html/_sources/usage/unified_memory.rst b/docs/build/html/_sources/usage/unified_memory.rst index a53477d65..57f54bc23 100644 --- a/docs/build/html/_sources/usage/unified_memory.rst +++ b/docs/build/html/_sources/usage/unified_memory.rst @@ -20,7 +20,7 @@ Both ``a`` and ``b`` live in unified memory. In MLX, rather than moving arrays to devices, you specify the device when you run the operation. Any device can perform any operation on ``a`` and ``b`` -without needing to move them from one memory location to another. For example: +without needing to move them from one memory location to another. For example: .. code-block:: python diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index e8b958b36..51bee6816 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '0.19.0', + VERSION: '0.19.1', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/build/html/_static/scripts/bootstrap.js.map b/docs/build/html/_static/scripts/bootstrap.js.map index e9e815891..4a3502aeb 100644 --- a/docs/build/html/_static/scripts/bootstrap.js.map +++ b/docs/build/html/_static/scripts/bootstrap.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts/bootstrap.js","mappings":";mBACA,IAAIA,EAAsB,CCA1BA,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDH,EAAwB,CAACS,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFV,EAAyBC,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,01BCLvD,IAAI,EAAM,MACNC,EAAS,SACTC,EAAQ,QACRC,EAAO,OACPC,EAAO,OACPC,EAAiB,CAAC,EAAKJ,EAAQC,EAAOC,GACtCG,EAAQ,QACRC,EAAM,MACNC,EAAkB,kBAClBC,EAAW,WACXC,EAAS,SACTC,EAAY,YACZC,EAAmCP,EAAeQ,QAAO,SAAUC,EAAKC,GACjF,OAAOD,EAAIE,OAAO,CAACD,EAAY,IAAMT,EAAOS,EAAY,IAAMR,GAChE,GAAG,IACQ,EAA0B,GAAGS,OAAOX,EAAgB,CAACD,IAAOS,QAAO,SAAUC,EAAKC,GAC3F,OAAOD,EAAIE,OAAO,CAACD,EAAWA,EAAY,IAAMT,EAAOS,EAAY,IAAMR,GAC3E,GAAG,IAEQU,EAAa,aACbC,EAAO,OACPC,EAAY,YAEZC,EAAa,aACbC,EAAO,OACPC,EAAY,YAEZC,EAAc,cACdC,EAAQ,QACRC,EAAa,aACbC,EAAiB,CAACT,EAAYC,EAAMC,EAAWC,EAAYC,EAAMC,EAAWC,EAAaC,EAAOC,GC9B5F,SAASE,EAAYC,GAClC,OAAOA,GAAWA,EAAQC,UAAY,IAAIC,cAAgB,IAC5D,CCFe,SAASC,EAAUC,GAChC,GAAY,MAARA,EACF,OAAOC,OAGT,GAAwB,oBAApBD,EAAKE,WAAkC,CACzC,IAAIC,EAAgBH,EAAKG,cACzB,OAAOA,GAAgBA,EAAcC,aAAwBH,MAC/D,CAEA,OAAOD,CACT,CCTA,SAASK,EAAUL,GAEjB,OAAOA,aADUD,EAAUC,GAAMM,SACIN,aAAgBM,OACvD,CAEA,SAASC,EAAcP,GAErB,OAAOA,aADUD,EAAUC,GAAMQ,aACIR,aAAgBQ,WACvD,CAEA,SAASC,EAAaT,GAEpB,MAA0B,oBAAfU,aAKJV,aADUD,EAAUC,GAAMU,YACIV,aAAgBU,WACvD,CCwDA,SACEC,KAAM,cACNC,SAAS,EACTC,MAAO,QACPC,GA5EF,SAAqBC,GACnB,IAAIC,EAAQD,EAAKC,MACjB3D,OAAO4D,KAAKD,EAAME,UAAUC,SAAQ,SAAUR,GAC5C,IAAIS,EAAQJ,EAAMK,OAAOV,IAAS,CAAC,EAC/BW,EAAaN,EAAMM,WAAWX,IAAS,CAAC,EACxCf,EAAUoB,EAAME,SAASP,GAExBJ,EAAcX,IAAaD,EAAYC,KAO5CvC,OAAOkE,OAAO3B,EAAQwB,MAAOA,GAC7B/D,OAAO4D,KAAKK,GAAYH,SAAQ,SAAUR,GACxC,IAAI3C,EAAQsD,EAAWX,IAET,IAAV3C,EACF4B,EAAQ4B,gBAAgBb,GAExBf,EAAQ6B,aAAad,GAAgB,IAAV3C,EAAiB,GAAKA,EAErD,IACF,GACF,EAoDE0D,OAlDF,SAAgBC,GACd,IAAIX,EAAQW,EAAMX,MACdY,EAAgB,CAClBlD,OAAQ,CACNmD,SAAUb,EAAMc,QAAQC,SACxB5D,KAAM,IACN6D,IAAK,IACLC,OAAQ,KAEVC,MAAO,CACLL,SAAU,YAEZlD,UAAW,CAAC,GASd,OAPAtB,OAAOkE,OAAOP,EAAME,SAASxC,OAAO0C,MAAOQ,EAAclD,QACzDsC,EAAMK,OAASO,EAEXZ,EAAME,SAASgB,OACjB7E,OAAOkE,OAAOP,EAAME,SAASgB,MAAMd,MAAOQ,EAAcM,OAGnD,WACL7E,OAAO4D,KAAKD,EAAME,UAAUC,SAAQ,SAAUR,GAC5C,IAAIf,EAAUoB,EAAME,SAASP,GACzBW,EAAaN,EAAMM,WAAWX,IAAS,CAAC,EAGxCS,EAFkB/D,OAAO4D,KAAKD,EAAMK,OAAOzD,eAAe+C,GAAQK,EAAMK,OAAOV,GAAQiB,EAAcjB,IAE7E9B,QAAO,SAAUuC,EAAOe,GAElD,OADAf,EAAMe,GAAY,GACXf,CACT,GAAG,CAAC,GAECb,EAAcX,IAAaD,EAAYC,KAI5CvC,OAAOkE,OAAO3B,EAAQwB,MAAOA,GAC7B/D,OAAO4D,KAAKK,GAAYH,SAAQ,SAAUiB,GACxCxC,EAAQ4B,gBAAgBY,EAC1B,IACF,GACF,CACF,EASEC,SAAU,CAAC,kBCjFE,SAASC,EAAiBvD,GACvC,OAAOA,EAAUwD,MAAM,KAAK,EAC9B,CCHO,IAAI,EAAMC,KAAKC,IACX,EAAMD,KAAKE,IACXC,EAAQH,KAAKG,MCFT,SAASC,IACtB,IAAIC,EAASC,UAAUC,cAEvB,OAAc,MAAVF,GAAkBA,EAAOG,QAAUC,MAAMC,QAAQL,EAAOG,QACnDH,EAAOG,OAAOG,KAAI,SAAUC,GACjC,OAAOA,EAAKC,MAAQ,IAAMD,EAAKE,OACjC,IAAGC,KAAK,KAGHT,UAAUU,SACnB,CCTe,SAASC,IACtB,OAAQ,iCAAiCC,KAAKd,IAChD,CCCe,SAASe,EAAsB/D,EAASgE,EAAcC,QAC9C,IAAjBD,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAIC,EAAalE,EAAQ+D,wBACrBI,EAAS,EACTC,EAAS,EAETJ,GAAgBrD,EAAcX,KAChCmE,EAASnE,EAAQqE,YAAc,GAAItB,EAAMmB,EAAWI,OAAStE,EAAQqE,aAAmB,EACxFD,EAASpE,EAAQuE,aAAe,GAAIxB,EAAMmB,EAAWM,QAAUxE,EAAQuE,cAAoB,GAG7F,IACIE,GADOhE,EAAUT,GAAWG,EAAUH,GAAWK,QAC3BoE,eAEtBC,GAAoBb,KAAsBI,EAC1CU,GAAKT,EAAW3F,MAAQmG,GAAoBD,EAAiBA,EAAeG,WAAa,IAAMT,EAC/FU,GAAKX,EAAW9B,KAAOsC,GAAoBD,EAAiBA,EAAeK,UAAY,IAAMV,EAC7FE,EAAQJ,EAAWI,MAAQH,EAC3BK,EAASN,EAAWM,OAASJ,EACjC,MAAO,CACLE,MAAOA,EACPE,OAAQA,EACRpC,IAAKyC,EACLvG,MAAOqG,EAAIL,EACXjG,OAAQwG,EAAIL,EACZjG,KAAMoG,EACNA,EAAGA,EACHE,EAAGA,EAEP,CCrCe,SAASE,EAAc/E,GACpC,IAAIkE,EAAaH,EAAsB/D,GAGnCsE,EAAQtE,EAAQqE,YAChBG,EAASxE,EAAQuE,aAUrB,OARI3B,KAAKoC,IAAId,EAAWI,MAAQA,IAAU,IACxCA,EAAQJ,EAAWI,OAGjB1B,KAAKoC,IAAId,EAAWM,OAASA,IAAW,IAC1CA,EAASN,EAAWM,QAGf,CACLG,EAAG3E,EAAQ4E,WACXC,EAAG7E,EAAQ8E,UACXR,MAAOA,EACPE,OAAQA,EAEZ,CCvBe,SAASS,EAASC,EAAQC,GACvC,IAAIC,EAAWD,EAAME,aAAeF,EAAME,cAE1C,GAAIH,EAAOD,SAASE,GAClB,OAAO,EAEJ,GAAIC,GAAYvE,EAAauE,GAAW,CACzC,IAAIE,EAAOH,EAEX,EAAG,CACD,GAAIG,GAAQJ,EAAOK,WAAWD,GAC5B,OAAO,EAITA,EAAOA,EAAKE,YAAcF,EAAKG,IACjC,OAASH,EACX,CAGF,OAAO,CACT,CCrBe,SAAS,EAAiBtF,GACvC,OAAOG,EAAUH,GAAS0F,iBAAiB1F,EAC7C,CCFe,SAAS2F,EAAe3F,GACrC,MAAO,CAAC,QAAS,KAAM,MAAM4F,QAAQ7F,EAAYC,KAAa,CAChE,CCFe,SAAS6F,EAAmB7F,GAEzC,QAASS,EAAUT,GAAWA,EAAQO,cACtCP,EAAQ8F,WAAazF,OAAOyF,UAAUC,eACxC,CCFe,SAASC,EAAchG,GACpC,MAA6B,SAAzBD,EAAYC,GACPA,EAMPA,EAAQiG,cACRjG,EAAQwF,aACR3E,EAAab,GAAWA,EAAQyF,KAAO,OAEvCI,EAAmB7F,EAGvB,CCVA,SAASkG,EAAoBlG,GAC3B,OAAKW,EAAcX,IACoB,UAAvC,EAAiBA,GAASiC,SAInBjC,EAAQmG,aAHN,IAIX,CAwCe,SAASC,EAAgBpG,GAItC,IAHA,IAAIK,EAASF,EAAUH,GACnBmG,EAAeD,EAAoBlG,GAEhCmG,GAAgBR,EAAeQ,IAA6D,WAA5C,EAAiBA,GAAclE,UACpFkE,EAAeD,EAAoBC,GAGrC,OAAIA,IAA+C,SAA9BpG,EAAYoG,IAA0D,SAA9BpG,EAAYoG,IAAwE,WAA5C,EAAiBA,GAAclE,UAC3H5B,EAGF8F,GAhDT,SAA4BnG,GAC1B,IAAIqG,EAAY,WAAWvC,KAAKd,KAGhC,GAFW,WAAWc,KAAKd,MAEfrC,EAAcX,IAII,UAFX,EAAiBA,GAEnBiC,SACb,OAAO,KAIX,IAAIqE,EAAcN,EAAchG,GAMhC,IAJIa,EAAayF,KACfA,EAAcA,EAAYb,MAGrB9E,EAAc2F,IAAgB,CAAC,OAAQ,QAAQV,QAAQ7F,EAAYuG,IAAgB,GAAG,CAC3F,IAAIC,EAAM,EAAiBD,GAI3B,GAAsB,SAAlBC,EAAIC,WAA4C,SAApBD,EAAIE,aAA0C,UAAhBF,EAAIG,UAAiF,IAA1D,CAAC,YAAa,eAAed,QAAQW,EAAII,aAAsBN,GAAgC,WAAnBE,EAAII,YAA2BN,GAAaE,EAAIK,QAAyB,SAAfL,EAAIK,OACjO,OAAON,EAEPA,EAAcA,EAAYd,UAE9B,CAEA,OAAO,IACT,CAgByBqB,CAAmB7G,IAAYK,CACxD,CCpEe,SAASyG,EAAyB3H,GAC/C,MAAO,CAAC,MAAO,UAAUyG,QAAQzG,IAAc,EAAI,IAAM,GAC3D,CCDO,SAAS4H,EAAOjE,EAAK1E,EAAOyE,GACjC,OAAO,EAAQC,EAAK,EAAQ1E,EAAOyE,GACrC,CCFe,SAASmE,EAAmBC,GACzC,OAAOxJ,OAAOkE,OAAO,CAAC,ECDf,CACLS,IAAK,EACL9D,MAAO,EACPD,OAAQ,EACRE,KAAM,GDHuC0I,EACjD,CEHe,SAASC,EAAgB9I,EAAOiD,GAC7C,OAAOA,EAAKpC,QAAO,SAAUkI,EAAS5J,GAEpC,OADA4J,EAAQ5J,GAAOa,EACR+I,CACT,GAAG,CAAC,EACN,CC4EA,SACEpG,KAAM,QACNC,SAAS,EACTC,MAAO,OACPC,GApEF,SAAeC,GACb,IAAIiG,EAEAhG,EAAQD,EAAKC,MACbL,EAAOI,EAAKJ,KACZmB,EAAUf,EAAKe,QACfmF,EAAejG,EAAME,SAASgB,MAC9BgF,EAAgBlG,EAAMmG,cAAcD,cACpCE,EAAgB9E,EAAiBtB,EAAMjC,WACvCsI,EAAOX,EAAyBU,GAEhCE,EADa,CAACnJ,EAAMD,GAAOsH,QAAQ4B,IAAkB,EAClC,SAAW,QAElC,GAAKH,GAAiBC,EAAtB,CAIA,IAAIL,EAxBgB,SAAyBU,EAASvG,GAItD,OAAO4F,EAAsC,iBAH7CW,EAA6B,mBAAZA,EAAyBA,EAAQlK,OAAOkE,OAAO,CAAC,EAAGP,EAAMwG,MAAO,CAC/EzI,UAAWiC,EAAMjC,aACbwI,GACkDA,EAAUT,EAAgBS,EAASlJ,GAC7F,CAmBsBoJ,CAAgB3F,EAAQyF,QAASvG,GACjD0G,EAAY/C,EAAcsC,GAC1BU,EAAmB,MAATN,EAAe,EAAMlJ,EAC/ByJ,EAAmB,MAATP,EAAepJ,EAASC,EAClC2J,EAAU7G,EAAMwG,MAAM7I,UAAU2I,GAAOtG,EAAMwG,MAAM7I,UAAU0I,GAAQH,EAAcG,GAAQrG,EAAMwG,MAAM9I,OAAO4I,GAC9GQ,EAAYZ,EAAcG,GAAQrG,EAAMwG,MAAM7I,UAAU0I,GACxDU,EAAoB/B,EAAgBiB,GACpCe,EAAaD,EAA6B,MAATV,EAAeU,EAAkBE,cAAgB,EAAIF,EAAkBG,aAAe,EAAI,EAC3HC,EAAoBN,EAAU,EAAIC,EAAY,EAG9CpF,EAAMmE,EAAcc,GACpBlF,EAAMuF,EAAaN,EAAUJ,GAAOT,EAAce,GAClDQ,EAASJ,EAAa,EAAIN,EAAUJ,GAAO,EAAIa,EAC/CE,EAAS1B,EAAOjE,EAAK0F,EAAQ3F,GAE7B6F,EAAWjB,EACfrG,EAAMmG,cAAcxG,KAASqG,EAAwB,CAAC,GAAyBsB,GAAYD,EAAQrB,EAAsBuB,aAAeF,EAASD,EAAQpB,EAnBzJ,CAoBF,EAkCEtF,OAhCF,SAAgBC,GACd,IAAIX,EAAQW,EAAMX,MAEdwH,EADU7G,EAAMG,QACWlC,QAC3BqH,OAAoC,IAArBuB,EAA8B,sBAAwBA,EAErD,MAAhBvB,IAKwB,iBAAjBA,IACTA,EAAejG,EAAME,SAASxC,OAAO+J,cAAcxB,MAOhDpC,EAAS7D,EAAME,SAASxC,OAAQuI,KAIrCjG,EAAME,SAASgB,MAAQ+E,EACzB,EASE5E,SAAU,CAAC,iBACXqG,iBAAkB,CAAC,oBCxFN,SAASC,EAAa5J,GACnC,OAAOA,EAAUwD,MAAM,KAAK,EAC9B,CCOA,IAAIqG,GAAa,CACf5G,IAAK,OACL9D,MAAO,OACPD,OAAQ,OACRE,KAAM,QAeD,SAAS0K,GAAYlH,GAC1B,IAAImH,EAEApK,EAASiD,EAAMjD,OACfqK,EAAapH,EAAMoH,WACnBhK,EAAY4C,EAAM5C,UAClBiK,EAAYrH,EAAMqH,UAClBC,EAAUtH,EAAMsH,QAChBpH,EAAWF,EAAME,SACjBqH,EAAkBvH,EAAMuH,gBACxBC,EAAWxH,EAAMwH,SACjBC,EAAezH,EAAMyH,aACrBC,EAAU1H,EAAM0H,QAChBC,EAAaL,EAAQ1E,EACrBA,OAAmB,IAAf+E,EAAwB,EAAIA,EAChCC,EAAaN,EAAQxE,EACrBA,OAAmB,IAAf8E,EAAwB,EAAIA,EAEhCC,EAAgC,mBAAjBJ,EAA8BA,EAAa,CAC5D7E,EAAGA,EACHE,IACG,CACHF,EAAGA,EACHE,GAGFF,EAAIiF,EAAMjF,EACVE,EAAI+E,EAAM/E,EACV,IAAIgF,EAAOR,EAAQrL,eAAe,KAC9B8L,EAAOT,EAAQrL,eAAe,KAC9B+L,EAAQxL,EACRyL,EAAQ,EACRC,EAAM5J,OAEV,GAAIkJ,EAAU,CACZ,IAAIpD,EAAeC,EAAgBtH,GAC/BoL,EAAa,eACbC,EAAY,cAEZhE,IAAiBhG,EAAUrB,IAGmB,WAA5C,EAFJqH,EAAeN,EAAmB/G,IAECmD,UAAsC,aAAbA,IAC1DiI,EAAa,eACbC,EAAY,gBAOZhL,IAAc,IAAQA,IAAcZ,GAAQY,IAAcb,IAAU8K,IAAczK,KACpFqL,EAAQ3L,EAGRwG,IAFc4E,GAAWtD,IAAiB8D,GAAOA,EAAIxF,eAAiBwF,EAAIxF,eAAeD,OACzF2B,EAAa+D,IACEf,EAAW3E,OAC1BK,GAAKyE,EAAkB,GAAK,GAG1BnK,IAAcZ,IAASY,IAAc,GAAOA,IAAcd,GAAW+K,IAAczK,KACrFoL,EAAQzL,EAGRqG,IAFc8E,GAAWtD,IAAiB8D,GAAOA,EAAIxF,eAAiBwF,EAAIxF,eAAeH,MACzF6B,EAAagE,IACEhB,EAAW7E,MAC1BK,GAAK2E,EAAkB,GAAK,EAEhC,CAEA,IAgBMc,EAhBFC,EAAe5M,OAAOkE,OAAO,CAC/BM,SAAUA,GACTsH,GAAYP,IAEXsB,GAAyB,IAAjBd,EAlFd,SAA2BrI,EAAM8I,GAC/B,IAAItF,EAAIxD,EAAKwD,EACTE,EAAI1D,EAAK0D,EACT0F,EAAMN,EAAIO,kBAAoB,EAClC,MAAO,CACL7F,EAAG5B,EAAM4B,EAAI4F,GAAOA,GAAO,EAC3B1F,EAAG9B,EAAM8B,EAAI0F,GAAOA,GAAO,EAE/B,CA0EsCE,CAAkB,CACpD9F,EAAGA,EACHE,GACC1E,EAAUrB,IAAW,CACtB6F,EAAGA,EACHE,GAMF,OAHAF,EAAI2F,EAAM3F,EACVE,EAAIyF,EAAMzF,EAENyE,EAGK7L,OAAOkE,OAAO,CAAC,EAAG0I,IAAeD,EAAiB,CAAC,GAAkBJ,GAASF,EAAO,IAAM,GAAIM,EAAeL,GAASF,EAAO,IAAM,GAAIO,EAAe5D,WAAayD,EAAIO,kBAAoB,IAAM,EAAI,aAAe7F,EAAI,OAASE,EAAI,MAAQ,eAAiBF,EAAI,OAASE,EAAI,SAAUuF,IAG5R3M,OAAOkE,OAAO,CAAC,EAAG0I,IAAenB,EAAkB,CAAC,GAAmBc,GAASF,EAAOjF,EAAI,KAAO,GAAIqE,EAAgBa,GAASF,EAAOlF,EAAI,KAAO,GAAIuE,EAAgB1C,UAAY,GAAI0C,GAC9L,CA4CA,UACEnI,KAAM,gBACNC,SAAS,EACTC,MAAO,cACPC,GA9CF,SAAuBwJ,GACrB,IAAItJ,EAAQsJ,EAAMtJ,MACdc,EAAUwI,EAAMxI,QAChByI,EAAwBzI,EAAQoH,gBAChCA,OAA4C,IAA1BqB,GAA0CA,EAC5DC,EAAoB1I,EAAQqH,SAC5BA,OAAiC,IAAtBqB,GAAsCA,EACjDC,EAAwB3I,EAAQsH,aAChCA,OAAyC,IAA1BqB,GAA0CA,EACzDR,EAAe,CACjBlL,UAAWuD,EAAiBtB,EAAMjC,WAClCiK,UAAWL,EAAa3H,EAAMjC,WAC9BL,OAAQsC,EAAME,SAASxC,OACvBqK,WAAY/H,EAAMwG,MAAM9I,OACxBwK,gBAAiBA,EACjBG,QAAoC,UAA3BrI,EAAMc,QAAQC,UAGgB,MAArCf,EAAMmG,cAAcD,gBACtBlG,EAAMK,OAAO3C,OAASrB,OAAOkE,OAAO,CAAC,EAAGP,EAAMK,OAAO3C,OAAQmK,GAAYxL,OAAOkE,OAAO,CAAC,EAAG0I,EAAc,CACvGhB,QAASjI,EAAMmG,cAAcD,cAC7BrF,SAAUb,EAAMc,QAAQC,SACxBoH,SAAUA,EACVC,aAAcA,OAIe,MAA7BpI,EAAMmG,cAAcjF,QACtBlB,EAAMK,OAAOa,MAAQ7E,OAAOkE,OAAO,CAAC,EAAGP,EAAMK,OAAOa,MAAO2G,GAAYxL,OAAOkE,OAAO,CAAC,EAAG0I,EAAc,CACrGhB,QAASjI,EAAMmG,cAAcjF,MAC7BL,SAAU,WACVsH,UAAU,EACVC,aAAcA,OAIlBpI,EAAMM,WAAW5C,OAASrB,OAAOkE,OAAO,CAAC,EAAGP,EAAMM,WAAW5C,OAAQ,CACnE,wBAAyBsC,EAAMjC,WAEnC,EAQE2L,KAAM,CAAC,GCrKT,IAAIC,GAAU,CACZA,SAAS,GAsCX,UACEhK,KAAM,iBACNC,SAAS,EACTC,MAAO,QACPC,GAAI,WAAe,EACnBY,OAxCF,SAAgBX,GACd,IAAIC,EAAQD,EAAKC,MACb4J,EAAW7J,EAAK6J,SAChB9I,EAAUf,EAAKe,QACf+I,EAAkB/I,EAAQgJ,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAkBjJ,EAAQkJ,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7C9K,EAASF,EAAUiB,EAAME,SAASxC,QAClCuM,EAAgB,GAAGjM,OAAOgC,EAAMiK,cAActM,UAAWqC,EAAMiK,cAAcvM,QAYjF,OAVIoM,GACFG,EAAc9J,SAAQ,SAAU+J,GAC9BA,EAAaC,iBAAiB,SAAUP,EAASQ,OAAQT,GAC3D,IAGEK,GACF/K,EAAOkL,iBAAiB,SAAUP,EAASQ,OAAQT,IAG9C,WACDG,GACFG,EAAc9J,SAAQ,SAAU+J,GAC9BA,EAAaG,oBAAoB,SAAUT,EAASQ,OAAQT,GAC9D,IAGEK,GACF/K,EAAOoL,oBAAoB,SAAUT,EAASQ,OAAQT,GAE1D,CACF,EASED,KAAM,CAAC,GC/CT,IAAIY,GAAO,CACTnN,KAAM,QACND,MAAO,OACPD,OAAQ,MACR+D,IAAK,UAEQ,SAASuJ,GAAqBxM,GAC3C,OAAOA,EAAUyM,QAAQ,0BAA0B,SAAUC,GAC3D,OAAOH,GAAKG,EACd,GACF,CCVA,IAAI,GAAO,CACTnN,MAAO,MACPC,IAAK,SAEQ,SAASmN,GAA8B3M,GACpD,OAAOA,EAAUyM,QAAQ,cAAc,SAAUC,GAC/C,OAAO,GAAKA,EACd,GACF,CCPe,SAASE,GAAgB3L,GACtC,IAAI6J,EAAM9J,EAAUC,GAGpB,MAAO,CACL4L,WAHe/B,EAAIgC,YAInBC,UAHcjC,EAAIkC,YAKtB,CCNe,SAASC,GAAoBpM,GAQ1C,OAAO+D,EAAsB8B,EAAmB7F,IAAUzB,KAAOwN,GAAgB/L,GAASgM,UAC5F,CCXe,SAASK,GAAerM,GAErC,IAAIsM,EAAoB,EAAiBtM,GACrCuM,EAAWD,EAAkBC,SAC7BC,EAAYF,EAAkBE,UAC9BC,EAAYH,EAAkBG,UAElC,MAAO,6BAA6B3I,KAAKyI,EAAWE,EAAYD,EAClE,CCLe,SAASE,GAAgBtM,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAawF,QAAQ7F,EAAYK,KAAU,EAEvDA,EAAKG,cAAcoM,KAGxBhM,EAAcP,IAASiM,GAAejM,GACjCA,EAGFsM,GAAgB1G,EAAc5F,GACvC,CCJe,SAASwM,GAAkB5M,EAAS6M,GACjD,IAAIC,OAES,IAATD,IACFA,EAAO,IAGT,IAAIvB,EAAeoB,GAAgB1M,GAC/B+M,EAASzB,KAAqE,OAAlDwB,EAAwB9M,EAAQO,oBAAyB,EAASuM,EAAsBH,MACpH1C,EAAM9J,EAAUmL,GAChB0B,EAASD,EAAS,CAAC9C,GAAK7K,OAAO6K,EAAIxF,gBAAkB,GAAI4H,GAAef,GAAgBA,EAAe,IAAMA,EAC7G2B,EAAcJ,EAAKzN,OAAO4N,GAC9B,OAAOD,EAASE,EAChBA,EAAY7N,OAAOwN,GAAkB5G,EAAcgH,IACrD,CCzBe,SAASE,GAAiBC,GACvC,OAAO1P,OAAOkE,OAAO,CAAC,EAAGwL,EAAM,CAC7B5O,KAAM4O,EAAKxI,EACXvC,IAAK+K,EAAKtI,EACVvG,MAAO6O,EAAKxI,EAAIwI,EAAK7I,MACrBjG,OAAQ8O,EAAKtI,EAAIsI,EAAK3I,QAE1B,CCqBA,SAAS4I,GAA2BpN,EAASqN,EAAgBlL,GAC3D,OAAOkL,IAAmBxO,EAAWqO,GCzBxB,SAAyBlN,EAASmC,GAC/C,IAAI8H,EAAM9J,EAAUH,GAChBsN,EAAOzH,EAAmB7F,GAC1ByE,EAAiBwF,EAAIxF,eACrBH,EAAQgJ,EAAKhF,YACb9D,EAAS8I,EAAKjF,aACd1D,EAAI,EACJE,EAAI,EAER,GAAIJ,EAAgB,CAClBH,EAAQG,EAAeH,MACvBE,EAASC,EAAeD,OACxB,IAAI+I,EAAiB1J,KAEjB0J,IAAmBA,GAA+B,UAAbpL,KACvCwC,EAAIF,EAAeG,WACnBC,EAAIJ,EAAeK,UAEvB,CAEA,MAAO,CACLR,MAAOA,EACPE,OAAQA,EACRG,EAAGA,EAAIyH,GAAoBpM,GAC3B6E,EAAGA,EAEP,CDDwD2I,CAAgBxN,EAASmC,IAAa1B,EAAU4M,GAdxG,SAAoCrN,EAASmC,GAC3C,IAAIgL,EAAOpJ,EAAsB/D,GAAS,EAAoB,UAAbmC,GASjD,OARAgL,EAAK/K,IAAM+K,EAAK/K,IAAMpC,EAAQyN,UAC9BN,EAAK5O,KAAO4O,EAAK5O,KAAOyB,EAAQ0N,WAChCP,EAAK9O,OAAS8O,EAAK/K,IAAMpC,EAAQqI,aACjC8E,EAAK7O,MAAQ6O,EAAK5O,KAAOyB,EAAQsI,YACjC6E,EAAK7I,MAAQtE,EAAQsI,YACrB6E,EAAK3I,OAASxE,EAAQqI,aACtB8E,EAAKxI,EAAIwI,EAAK5O,KACd4O,EAAKtI,EAAIsI,EAAK/K,IACP+K,CACT,CAG0HQ,CAA2BN,EAAgBlL,GAAY+K,GEtBlK,SAAyBlN,GACtC,IAAI8M,EAEAQ,EAAOzH,EAAmB7F,GAC1B4N,EAAY7B,GAAgB/L,GAC5B2M,EAA0D,OAAlDG,EAAwB9M,EAAQO,oBAAyB,EAASuM,EAAsBH,KAChGrI,EAAQ,EAAIgJ,EAAKO,YAAaP,EAAKhF,YAAaqE,EAAOA,EAAKkB,YAAc,EAAGlB,EAAOA,EAAKrE,YAAc,GACvG9D,EAAS,EAAI8I,EAAKQ,aAAcR,EAAKjF,aAAcsE,EAAOA,EAAKmB,aAAe,EAAGnB,EAAOA,EAAKtE,aAAe,GAC5G1D,GAAKiJ,EAAU5B,WAAaI,GAAoBpM,GAChD6E,GAAK+I,EAAU1B,UAMnB,MAJiD,QAA7C,EAAiBS,GAAQW,GAAMS,YACjCpJ,GAAK,EAAI2I,EAAKhF,YAAaqE,EAAOA,EAAKrE,YAAc,GAAKhE,GAGrD,CACLA,MAAOA,EACPE,OAAQA,EACRG,EAAGA,EACHE,EAAGA,EAEP,CFCkMmJ,CAAgBnI,EAAmB7F,IACrO,CG1Be,SAASiO,GAAe9M,GACrC,IAOIkI,EAPAtK,EAAYoC,EAAKpC,UACjBiB,EAAUmB,EAAKnB,QACfb,EAAYgC,EAAKhC,UACjBqI,EAAgBrI,EAAYuD,EAAiBvD,GAAa,KAC1DiK,EAAYjK,EAAY4J,EAAa5J,GAAa,KAClD+O,EAAUnP,EAAU4F,EAAI5F,EAAUuF,MAAQ,EAAItE,EAAQsE,MAAQ,EAC9D6J,EAAUpP,EAAU8F,EAAI9F,EAAUyF,OAAS,EAAIxE,EAAQwE,OAAS,EAGpE,OAAQgD,GACN,KAAK,EACH6B,EAAU,CACR1E,EAAGuJ,EACHrJ,EAAG9F,EAAU8F,EAAI7E,EAAQwE,QAE3B,MAEF,KAAKnG,EACHgL,EAAU,CACR1E,EAAGuJ,EACHrJ,EAAG9F,EAAU8F,EAAI9F,EAAUyF,QAE7B,MAEF,KAAKlG,EACH+K,EAAU,CACR1E,EAAG5F,EAAU4F,EAAI5F,EAAUuF,MAC3BO,EAAGsJ,GAEL,MAEF,KAAK5P,EACH8K,EAAU,CACR1E,EAAG5F,EAAU4F,EAAI3E,EAAQsE,MACzBO,EAAGsJ,GAEL,MAEF,QACE9E,EAAU,CACR1E,EAAG5F,EAAU4F,EACbE,EAAG9F,EAAU8F,GAInB,IAAIuJ,EAAW5G,EAAgBV,EAAyBU,GAAiB,KAEzE,GAAgB,MAAZ4G,EAAkB,CACpB,IAAI1G,EAAmB,MAAb0G,EAAmB,SAAW,QAExC,OAAQhF,GACN,KAAK1K,EACH2K,EAAQ+E,GAAY/E,EAAQ+E,IAAarP,EAAU2I,GAAO,EAAI1H,EAAQ0H,GAAO,GAC7E,MAEF,KAAK/I,EACH0K,EAAQ+E,GAAY/E,EAAQ+E,IAAarP,EAAU2I,GAAO,EAAI1H,EAAQ0H,GAAO,GAKnF,CAEA,OAAO2B,CACT,CC3De,SAASgF,GAAejN,EAAOc,QAC5B,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIoM,EAAWpM,EACXqM,EAAqBD,EAASnP,UAC9BA,OAAmC,IAAvBoP,EAAgCnN,EAAMjC,UAAYoP,EAC9DC,EAAoBF,EAASnM,SAC7BA,OAAiC,IAAtBqM,EAA+BpN,EAAMe,SAAWqM,EAC3DC,EAAoBH,EAASI,SAC7BA,OAAiC,IAAtBD,EAA+B7P,EAAkB6P,EAC5DE,EAAwBL,EAASM,aACjCA,OAAyC,IAA1BD,EAAmC9P,EAAW8P,EAC7DE,EAAwBP,EAASQ,eACjCA,OAA2C,IAA1BD,EAAmC/P,EAAS+P,EAC7DE,EAAuBT,EAASU,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBX,EAAS3G,QAC5BA,OAA+B,IAArBsH,EAA8B,EAAIA,EAC5ChI,EAAgBD,EAAsC,iBAAZW,EAAuBA,EAAUT,EAAgBS,EAASlJ,IACpGyQ,EAAaJ,IAAmBhQ,EAASC,EAAYD,EACrDqK,EAAa/H,EAAMwG,MAAM9I,OACzBkB,EAAUoB,EAAME,SAAS0N,EAAcE,EAAaJ,GACpDK,EJkBS,SAAyBnP,EAAS0O,EAAUE,EAAczM,GACvE,IAAIiN,EAAmC,oBAAbV,EAlB5B,SAA4B1O,GAC1B,IAAIpB,EAAkBgO,GAAkB5G,EAAchG,IAElDqP,EADoB,CAAC,WAAY,SAASzJ,QAAQ,EAAiB5F,GAASiC,WAAa,GACnDtB,EAAcX,GAAWoG,EAAgBpG,GAAWA,EAE9F,OAAKS,EAAU4O,GAKRzQ,EAAgBgI,QAAO,SAAUyG,GACtC,OAAO5M,EAAU4M,IAAmBpI,EAASoI,EAAgBgC,IAAmD,SAAhCtP,EAAYsN,EAC9F,IANS,EAOX,CAK6DiC,CAAmBtP,GAAW,GAAGZ,OAAOsP,GAC/F9P,EAAkB,GAAGQ,OAAOgQ,EAAqB,CAACR,IAClDW,EAAsB3Q,EAAgB,GACtC4Q,EAAe5Q,EAAgBK,QAAO,SAAUwQ,EAASpC,GAC3D,IAAIF,EAAOC,GAA2BpN,EAASqN,EAAgBlL,GAK/D,OAJAsN,EAAQrN,IAAM,EAAI+K,EAAK/K,IAAKqN,EAAQrN,KACpCqN,EAAQnR,MAAQ,EAAI6O,EAAK7O,MAAOmR,EAAQnR,OACxCmR,EAAQpR,OAAS,EAAI8O,EAAK9O,OAAQoR,EAAQpR,QAC1CoR,EAAQlR,KAAO,EAAI4O,EAAK5O,KAAMkR,EAAQlR,MAC/BkR,CACT,GAAGrC,GAA2BpN,EAASuP,EAAqBpN,IAK5D,OAJAqN,EAAalL,MAAQkL,EAAalR,MAAQkR,EAAajR,KACvDiR,EAAahL,OAASgL,EAAanR,OAASmR,EAAapN,IACzDoN,EAAa7K,EAAI6K,EAAajR,KAC9BiR,EAAa3K,EAAI2K,EAAapN,IACvBoN,CACT,CInC2BE,CAAgBjP,EAAUT,GAAWA,EAAUA,EAAQ2P,gBAAkB9J,EAAmBzE,EAAME,SAASxC,QAAS4P,EAAUE,EAAczM,GACjKyN,EAAsB7L,EAAsB3C,EAAME,SAASvC,WAC3DuI,EAAgB2G,GAAe,CACjClP,UAAW6Q,EACX5P,QAASmJ,EACThH,SAAU,WACVhD,UAAWA,IAET0Q,EAAmB3C,GAAiBzP,OAAOkE,OAAO,CAAC,EAAGwH,EAAY7B,IAClEwI,EAAoBhB,IAAmBhQ,EAAS+Q,EAAmBD,EAGnEG,EAAkB,CACpB3N,IAAK+M,EAAmB/M,IAAM0N,EAAkB1N,IAAM6E,EAAc7E,IACpE/D,OAAQyR,EAAkBzR,OAAS8Q,EAAmB9Q,OAAS4I,EAAc5I,OAC7EE,KAAM4Q,EAAmB5Q,KAAOuR,EAAkBvR,KAAO0I,EAAc1I,KACvED,MAAOwR,EAAkBxR,MAAQ6Q,EAAmB7Q,MAAQ2I,EAAc3I,OAExE0R,EAAa5O,EAAMmG,cAAckB,OAErC,GAAIqG,IAAmBhQ,GAAUkR,EAAY,CAC3C,IAAIvH,EAASuH,EAAW7Q,GACxB1B,OAAO4D,KAAK0O,GAAiBxO,SAAQ,SAAUhE,GAC7C,IAAI0S,EAAW,CAAC3R,EAAOD,GAAQuH,QAAQrI,IAAQ,EAAI,GAAK,EACpDkK,EAAO,CAAC,EAAKpJ,GAAQuH,QAAQrI,IAAQ,EAAI,IAAM,IACnDwS,EAAgBxS,IAAQkL,EAAOhB,GAAQwI,CACzC,GACF,CAEA,OAAOF,CACT,CCyEA,UACEhP,KAAM,OACNC,SAAS,EACTC,MAAO,OACPC,GA5HF,SAAcC,GACZ,IAAIC,EAAQD,EAAKC,MACbc,EAAUf,EAAKe,QACfnB,EAAOI,EAAKJ,KAEhB,IAAIK,EAAMmG,cAAcxG,GAAMmP,MAA9B,CAoCA,IAhCA,IAAIC,EAAoBjO,EAAQkM,SAC5BgC,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBnO,EAAQoO,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8BtO,EAAQuO,mBACtC9I,EAAUzF,EAAQyF,QAClB+G,EAAWxM,EAAQwM,SACnBE,EAAe1M,EAAQ0M,aACvBI,EAAc9M,EAAQ8M,YACtB0B,EAAwBxO,EAAQyO,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwB1O,EAAQ0O,sBAChCC,EAAqBzP,EAAMc,QAAQ/C,UACnCqI,EAAgB9E,EAAiBmO,GAEjCJ,EAAqBD,IADHhJ,IAAkBqJ,GACqCF,EAjC/E,SAAuCxR,GACrC,GAAIuD,EAAiBvD,KAAeX,EAClC,MAAO,GAGT,IAAIsS,EAAoBnF,GAAqBxM,GAC7C,MAAO,CAAC2M,GAA8B3M,GAAY2R,EAAmBhF,GAA8BgF,GACrG,CA0B6IC,CAA8BF,GAA3E,CAAClF,GAAqBkF,KAChHG,EAAa,CAACH,GAAoBzR,OAAOqR,GAAoBxR,QAAO,SAAUC,EAAKC,GACrF,OAAOD,EAAIE,OAAOsD,EAAiBvD,KAAeX,ECvCvC,SAA8B4C,EAAOc,QAClC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIoM,EAAWpM,EACX/C,EAAYmP,EAASnP,UACrBuP,EAAWJ,EAASI,SACpBE,EAAeN,EAASM,aACxBjH,EAAU2G,EAAS3G,QACnBgJ,EAAiBrC,EAASqC,eAC1BM,EAAwB3C,EAASsC,sBACjCA,OAAkD,IAA1BK,EAAmC,EAAgBA,EAC3E7H,EAAYL,EAAa5J,GACzB6R,EAAa5H,EAAYuH,EAAiB3R,EAAsBA,EAAoB4H,QAAO,SAAUzH,GACvG,OAAO4J,EAAa5J,KAAeiK,CACrC,IAAK3K,EACDyS,EAAoBF,EAAWpK,QAAO,SAAUzH,GAClD,OAAOyR,EAAsBhL,QAAQzG,IAAc,CACrD,IAEiC,IAA7B+R,EAAkBC,SACpBD,EAAoBF,GAItB,IAAII,EAAYF,EAAkBjS,QAAO,SAAUC,EAAKC,GAOtD,OANAD,EAAIC,GAAakP,GAAejN,EAAO,CACrCjC,UAAWA,EACXuP,SAAUA,EACVE,aAAcA,EACdjH,QAASA,IACRjF,EAAiBvD,IACbD,CACT,GAAG,CAAC,GACJ,OAAOzB,OAAO4D,KAAK+P,GAAWC,MAAK,SAAUC,EAAGC,GAC9C,OAAOH,EAAUE,GAAKF,EAAUG,EAClC,GACF,CDC6DC,CAAqBpQ,EAAO,CACnFjC,UAAWA,EACXuP,SAAUA,EACVE,aAAcA,EACdjH,QAASA,EACTgJ,eAAgBA,EAChBC,sBAAuBA,IACpBzR,EACP,GAAG,IACCsS,EAAgBrQ,EAAMwG,MAAM7I,UAC5BoK,EAAa/H,EAAMwG,MAAM9I,OACzB4S,EAAY,IAAIC,IAChBC,GAAqB,EACrBC,EAAwBb,EAAW,GAE9Bc,EAAI,EAAGA,EAAId,EAAWG,OAAQW,IAAK,CAC1C,IAAI3S,EAAY6R,EAAWc,GAEvBC,EAAiBrP,EAAiBvD,GAElC6S,EAAmBjJ,EAAa5J,KAAeT,EAC/CuT,EAAa,CAAC,EAAK5T,GAAQuH,QAAQmM,IAAmB,EACtDrK,EAAMuK,EAAa,QAAU,SAC7B1F,EAAW8B,GAAejN,EAAO,CACnCjC,UAAWA,EACXuP,SAAUA,EACVE,aAAcA,EACdI,YAAaA,EACbrH,QAASA,IAEPuK,EAAoBD,EAAaD,EAAmB1T,EAAQC,EAAOyT,EAAmB3T,EAAS,EAE/FoT,EAAc/J,GAAOyB,EAAWzB,KAClCwK,EAAoBvG,GAAqBuG,IAG3C,IAAIC,EAAmBxG,GAAqBuG,GACxCE,EAAS,GAUb,GARIhC,GACFgC,EAAOC,KAAK9F,EAASwF,IAAmB,GAGtCxB,GACF6B,EAAOC,KAAK9F,EAAS2F,IAAsB,EAAG3F,EAAS4F,IAAqB,GAG1EC,EAAOE,OAAM,SAAUC,GACzB,OAAOA,CACT,IAAI,CACFV,EAAwB1S,EACxByS,GAAqB,EACrB,KACF,CAEAF,EAAUc,IAAIrT,EAAWiT,EAC3B,CAEA,GAAIR,EAqBF,IAnBA,IAEIa,EAAQ,SAAeC,GACzB,IAAIC,EAAmB3B,EAAW4B,MAAK,SAAUzT,GAC/C,IAAIiT,EAASV,EAAU9T,IAAIuB,GAE3B,GAAIiT,EACF,OAAOA,EAAOS,MAAM,EAAGH,GAAIJ,OAAM,SAAUC,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAII,EAEF,OADAd,EAAwBc,EACjB,OAEX,EAESD,EAnBY/B,EAAiB,EAAI,EAmBZ+B,EAAK,GAGpB,UAFFD,EAAMC,GADmBA,KAOpCtR,EAAMjC,YAAc0S,IACtBzQ,EAAMmG,cAAcxG,GAAMmP,OAAQ,EAClC9O,EAAMjC,UAAY0S,EAClBzQ,EAAM0R,OAAQ,EA5GhB,CA8GF,EAQEhK,iBAAkB,CAAC,UACnBgC,KAAM,CACJoF,OAAO,IE7IX,SAAS6C,GAAexG,EAAUY,EAAM6F,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBrO,EAAG,EACHE,EAAG,IAIA,CACLzC,IAAKmK,EAASnK,IAAM+K,EAAK3I,OAASwO,EAAiBnO,EACnDvG,MAAOiO,EAASjO,MAAQ6O,EAAK7I,MAAQ0O,EAAiBrO,EACtDtG,OAAQkO,EAASlO,OAAS8O,EAAK3I,OAASwO,EAAiBnO,EACzDtG,KAAMgO,EAAShO,KAAO4O,EAAK7I,MAAQ0O,EAAiBrO,EAExD,CAEA,SAASsO,GAAsB1G,GAC7B,MAAO,CAAC,EAAKjO,EAAOD,EAAQE,GAAM2U,MAAK,SAAUC,GAC/C,OAAO5G,EAAS4G,IAAS,CAC3B,GACF,CA+BA,UACEpS,KAAM,OACNC,SAAS,EACTC,MAAO,OACP6H,iBAAkB,CAAC,mBACnB5H,GAlCF,SAAcC,GACZ,IAAIC,EAAQD,EAAKC,MACbL,EAAOI,EAAKJ,KACZ0Q,EAAgBrQ,EAAMwG,MAAM7I,UAC5BoK,EAAa/H,EAAMwG,MAAM9I,OACzBkU,EAAmB5R,EAAMmG,cAAc6L,gBACvCC,EAAoBhF,GAAejN,EAAO,CAC5C0N,eAAgB,cAEdwE,EAAoBjF,GAAejN,EAAO,CAC5C4N,aAAa,IAEXuE,EAA2BR,GAAeM,EAAmB5B,GAC7D+B,EAAsBT,GAAeO,EAAmBnK,EAAY6J,GACpES,EAAoBR,GAAsBM,GAC1CG,EAAmBT,GAAsBO,GAC7CpS,EAAMmG,cAAcxG,GAAQ,CAC1BwS,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBtS,EAAMM,WAAW5C,OAASrB,OAAOkE,OAAO,CAAC,EAAGP,EAAMM,WAAW5C,OAAQ,CACnE,+BAAgC2U,EAChC,sBAAuBC,GAE3B,GCJA,IACE3S,KAAM,SACNC,SAAS,EACTC,MAAO,OACPwB,SAAU,CAAC,iBACXvB,GA5BF,SAAgBa,GACd,IAAIX,EAAQW,EAAMX,MACdc,EAAUH,EAAMG,QAChBnB,EAAOgB,EAAMhB,KACb4S,EAAkBzR,EAAQuG,OAC1BA,OAA6B,IAApBkL,EAA6B,CAAC,EAAG,GAAKA,EAC/C7I,EAAO,EAAW7L,QAAO,SAAUC,EAAKC,GAE1C,OADAD,EAAIC,GA5BD,SAAiCA,EAAWyI,EAAOa,GACxD,IAAIjB,EAAgB9E,EAAiBvD,GACjCyU,EAAiB,CAACrV,EAAM,GAAKqH,QAAQ4B,IAAkB,GAAK,EAAI,EAEhErG,EAAyB,mBAAXsH,EAAwBA,EAAOhL,OAAOkE,OAAO,CAAC,EAAGiG,EAAO,CACxEzI,UAAWA,KACPsJ,EACFoL,EAAW1S,EAAK,GAChB2S,EAAW3S,EAAK,GAIpB,OAFA0S,EAAWA,GAAY,EACvBC,GAAYA,GAAY,GAAKF,EACtB,CAACrV,EAAMD,GAAOsH,QAAQ4B,IAAkB,EAAI,CACjD7C,EAAGmP,EACHjP,EAAGgP,GACD,CACFlP,EAAGkP,EACHhP,EAAGiP,EAEP,CASqBC,CAAwB5U,EAAWiC,EAAMwG,MAAOa,GAC1DvJ,CACT,GAAG,CAAC,GACA8U,EAAwBlJ,EAAK1J,EAAMjC,WACnCwF,EAAIqP,EAAsBrP,EAC1BE,EAAImP,EAAsBnP,EAEW,MAArCzD,EAAMmG,cAAcD,gBACtBlG,EAAMmG,cAAcD,cAAc3C,GAAKA,EACvCvD,EAAMmG,cAAcD,cAAczC,GAAKA,GAGzCzD,EAAMmG,cAAcxG,GAAQ+J,CAC9B,GC1BA,IACE/J,KAAM,gBACNC,SAAS,EACTC,MAAO,OACPC,GApBF,SAAuBC,GACrB,IAAIC,EAAQD,EAAKC,MACbL,EAAOI,EAAKJ,KAKhBK,EAAMmG,cAAcxG,GAAQkN,GAAe,CACzClP,UAAWqC,EAAMwG,MAAM7I,UACvBiB,QAASoB,EAAMwG,MAAM9I,OACrBqD,SAAU,WACVhD,UAAWiC,EAAMjC,WAErB,EAQE2L,KAAM,CAAC,GCgHT,IACE/J,KAAM,kBACNC,SAAS,EACTC,MAAO,OACPC,GA/HF,SAAyBC,GACvB,IAAIC,EAAQD,EAAKC,MACbc,EAAUf,EAAKe,QACfnB,EAAOI,EAAKJ,KACZoP,EAAoBjO,EAAQkM,SAC5BgC,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBnO,EAAQoO,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrD3B,EAAWxM,EAAQwM,SACnBE,EAAe1M,EAAQ0M,aACvBI,EAAc9M,EAAQ8M,YACtBrH,EAAUzF,EAAQyF,QAClBsM,EAAkB/R,EAAQgS,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBjS,EAAQkS,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtD5H,EAAW8B,GAAejN,EAAO,CACnCsN,SAAUA,EACVE,aAAcA,EACdjH,QAASA,EACTqH,YAAaA,IAEXxH,EAAgB9E,EAAiBtB,EAAMjC,WACvCiK,EAAYL,EAAa3H,EAAMjC,WAC/BkV,GAAmBjL,EACnBgF,EAAWtH,EAAyBU,GACpC8I,ECrCY,MDqCSlC,ECrCH,IAAM,IDsCxB9G,EAAgBlG,EAAMmG,cAAcD,cACpCmK,EAAgBrQ,EAAMwG,MAAM7I,UAC5BoK,EAAa/H,EAAMwG,MAAM9I,OACzBwV,EAA4C,mBAAjBF,EAA8BA,EAAa3W,OAAOkE,OAAO,CAAC,EAAGP,EAAMwG,MAAO,CACvGzI,UAAWiC,EAAMjC,aACbiV,EACFG,EAA2D,iBAAtBD,EAAiC,CACxElG,SAAUkG,EACVhE,QAASgE,GACP7W,OAAOkE,OAAO,CAChByM,SAAU,EACVkC,QAAS,GACRgE,GACCE,EAAsBpT,EAAMmG,cAAckB,OAASrH,EAAMmG,cAAckB,OAAOrH,EAAMjC,WAAa,KACjG2L,EAAO,CACTnG,EAAG,EACHE,EAAG,GAGL,GAAKyC,EAAL,CAIA,GAAI8I,EAAe,CACjB,IAAIqE,EAEAC,EAAwB,MAAbtG,EAAmB,EAAM7P,EACpCoW,EAAuB,MAAbvG,EAAmB/P,EAASC,EACtCoJ,EAAmB,MAAb0G,EAAmB,SAAW,QACpC3F,EAASnB,EAAc8G,GACvBtL,EAAM2F,EAAS8D,EAASmI,GACxB7R,EAAM4F,EAAS8D,EAASoI,GACxBC,EAAWV,GAAU/K,EAAWzB,GAAO,EAAI,EAC3CmN,EAASzL,IAAc1K,EAAQ+S,EAAc/J,GAAOyB,EAAWzB,GAC/DoN,EAAS1L,IAAc1K,GAASyK,EAAWzB,IAAQ+J,EAAc/J,GAGjEL,EAAejG,EAAME,SAASgB,MAC9BwF,EAAYoM,GAAU7M,EAAetC,EAAcsC,GAAgB,CACrE/C,MAAO,EACPE,OAAQ,GAENuQ,GAAqB3T,EAAMmG,cAAc,oBAAsBnG,EAAMmG,cAAc,oBAAoBI,QxBhFtG,CACLvF,IAAK,EACL9D,MAAO,EACPD,OAAQ,EACRE,KAAM,GwB6EFyW,GAAkBD,GAAmBL,GACrCO,GAAkBF,GAAmBJ,GAMrCO,GAAWnO,EAAO,EAAG0K,EAAc/J,GAAMI,EAAUJ,IACnDyN,GAAYd,EAAkB5C,EAAc/J,GAAO,EAAIkN,EAAWM,GAAWF,GAAkBT,EAA4BnG,SAAWyG,EAASK,GAAWF,GAAkBT,EAA4BnG,SACxMgH,GAAYf,GAAmB5C,EAAc/J,GAAO,EAAIkN,EAAWM,GAAWD,GAAkBV,EAA4BnG,SAAW0G,EAASI,GAAWD,GAAkBV,EAA4BnG,SACzMjG,GAAoB/G,EAAME,SAASgB,OAAS8D,EAAgBhF,EAAME,SAASgB,OAC3E+S,GAAelN,GAAiC,MAAbiG,EAAmBjG,GAAkBsF,WAAa,EAAItF,GAAkBuF,YAAc,EAAI,EAC7H4H,GAAwH,OAAjGb,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBpG,IAAqBqG,EAAwB,EAEvJc,GAAY9M,EAAS2M,GAAYE,GACjCE,GAAkBzO,EAAOmN,EAAS,EAAQpR,EAF9B2F,EAAS0M,GAAYG,GAAsBD,IAEKvS,EAAK2F,EAAQyL,EAAS,EAAQrR,EAAK0S,IAAa1S,GAChHyE,EAAc8G,GAAYoH,GAC1B1K,EAAKsD,GAAYoH,GAAkB/M,CACrC,CAEA,GAAI8H,EAAc,CAChB,IAAIkF,GAEAC,GAAyB,MAAbtH,EAAmB,EAAM7P,EAErCoX,GAAwB,MAAbvH,EAAmB/P,EAASC,EAEvCsX,GAAUtO,EAAcgJ,GAExBuF,GAAmB,MAAZvF,EAAkB,SAAW,QAEpCwF,GAAOF,GAAUrJ,EAASmJ,IAE1BK,GAAOH,GAAUrJ,EAASoJ,IAE1BK,IAAuD,IAAxC,CAAC,EAAKzX,GAAMqH,QAAQ4B,GAEnCyO,GAAyH,OAAjGR,GAAgD,MAAvBjB,OAA8B,EAASA,EAAoBlE,IAAoBmF,GAAyB,EAEzJS,GAAaF,GAAeF,GAAOF,GAAUnE,EAAcoE,IAAQ1M,EAAW0M,IAAQI,GAAuB1B,EAA4BjE,QAEzI6F,GAAaH,GAAeJ,GAAUnE,EAAcoE,IAAQ1M,EAAW0M,IAAQI,GAAuB1B,EAA4BjE,QAAUyF,GAE5IK,GAAmBlC,GAAU8B,G1BzH9B,SAAwBlT,EAAK1E,EAAOyE,GACzC,IAAIwT,EAAItP,EAAOjE,EAAK1E,EAAOyE,GAC3B,OAAOwT,EAAIxT,EAAMA,EAAMwT,CACzB,C0BsHoDC,CAAeJ,GAAYN,GAASO,IAAcpP,EAAOmN,EAASgC,GAAaJ,GAAMF,GAAS1B,EAASiC,GAAaJ,IAEpKzO,EAAcgJ,GAAW8F,GACzBtL,EAAKwF,GAAW8F,GAAmBR,EACrC,CAEAxU,EAAMmG,cAAcxG,GAAQ+J,CAvE5B,CAwEF,EAQEhC,iBAAkB,CAAC,WE1HN,SAASyN,GAAiBC,EAAyBrQ,EAAcsD,QAC9D,IAAZA,IACFA,GAAU,GAGZ,ICnBoCrJ,ECJOJ,EFuBvCyW,EAA0B9V,EAAcwF,GACxCuQ,EAAuB/V,EAAcwF,IAf3C,SAAyBnG,GACvB,IAAImN,EAAOnN,EAAQ+D,wBACfI,EAASpB,EAAMoK,EAAK7I,OAAStE,EAAQqE,aAAe,EACpDD,EAASrB,EAAMoK,EAAK3I,QAAUxE,EAAQuE,cAAgB,EAC1D,OAAkB,IAAXJ,GAA2B,IAAXC,CACzB,CAU4DuS,CAAgBxQ,GACtEJ,EAAkBF,EAAmBM,GACrCgH,EAAOpJ,EAAsByS,EAAyBE,EAAsBjN,GAC5EyB,EAAS,CACXc,WAAY,EACZE,UAAW,GAET7C,EAAU,CACZ1E,EAAG,EACHE,EAAG,GAkBL,OAfI4R,IAA4BA,IAA4BhN,MACxB,SAA9B1J,EAAYoG,IAChBkG,GAAetG,MACbmF,GCnCgC9K,EDmCT+F,KClCdhG,EAAUC,IAAUO,EAAcP,GCJxC,CACL4L,YAFyChM,EDQbI,GCNR4L,WACpBE,UAAWlM,EAAQkM,WDGZH,GAAgB3L,IDoCnBO,EAAcwF,KAChBkD,EAAUtF,EAAsBoC,GAAc,IACtCxB,GAAKwB,EAAauH,WAC1BrE,EAAQxE,GAAKsB,EAAasH,WACjB1H,IACTsD,EAAQ1E,EAAIyH,GAAoBrG,KAI7B,CACLpB,EAAGwI,EAAK5O,KAAO2M,EAAOc,WAAa3C,EAAQ1E,EAC3CE,EAAGsI,EAAK/K,IAAM8I,EAAOgB,UAAY7C,EAAQxE,EACzCP,MAAO6I,EAAK7I,MACZE,OAAQ2I,EAAK3I,OAEjB,CGvDA,SAASoS,GAAMC,GACb,IAAItT,EAAM,IAAIoO,IACVmF,EAAU,IAAIC,IACdC,EAAS,GAKb,SAAS3F,EAAK4F,GACZH,EAAQI,IAAID,EAASlW,MACN,GAAG3B,OAAO6X,EAASxU,UAAY,GAAIwU,EAASnO,kBAAoB,IACtEvH,SAAQ,SAAU4V,GACzB,IAAKL,EAAQM,IAAID,GAAM,CACrB,IAAIE,EAAc9T,EAAI3F,IAAIuZ,GAEtBE,GACFhG,EAAKgG,EAET,CACF,IACAL,EAAO3E,KAAK4E,EACd,CAQA,OAzBAJ,EAAUtV,SAAQ,SAAU0V,GAC1B1T,EAAIiP,IAAIyE,EAASlW,KAAMkW,EACzB,IAiBAJ,EAAUtV,SAAQ,SAAU0V,GACrBH,EAAQM,IAAIH,EAASlW,OAExBsQ,EAAK4F,EAET,IACOD,CACT,CCvBA,IAAIM,GAAkB,CACpBnY,UAAW,SACX0X,UAAW,GACX1U,SAAU,YAGZ,SAASoV,KACP,IAAK,IAAI1B,EAAO2B,UAAUrG,OAAQsG,EAAO,IAAIpU,MAAMwS,GAAO6B,EAAO,EAAGA,EAAO7B,EAAM6B,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzB,OAAQD,EAAKvE,MAAK,SAAUlT,GAC1B,QAASA,GAAoD,mBAAlCA,EAAQ+D,sBACrC,GACF,CAEO,SAAS4T,GAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAC,GAGtB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCV,GAAkBU,EAC3E,OAAO,SAAsBjZ,EAAWD,EAAQoD,QAC9B,IAAZA,IACFA,EAAU+V,GAGZ,ICxC6B/W,EAC3BgX,EDuCE9W,EAAQ,CACVjC,UAAW,SACXgZ,iBAAkB,GAClBjW,QAASzE,OAAOkE,OAAO,CAAC,EAAG2V,GAAiBW,GAC5C1Q,cAAe,CAAC,EAChBjG,SAAU,CACRvC,UAAWA,EACXD,OAAQA,GAEV4C,WAAY,CAAC,EACbD,OAAQ,CAAC,GAEP2W,EAAmB,GACnBC,GAAc,EACdrN,EAAW,CACb5J,MAAOA,EACPkX,WAAY,SAAoBC,GAC9B,IAAIrW,EAAsC,mBAArBqW,EAAkCA,EAAiBnX,EAAMc,SAAWqW,EACzFC,IACApX,EAAMc,QAAUzE,OAAOkE,OAAO,CAAC,EAAGsW,EAAgB7W,EAAMc,QAASA,GACjEd,EAAMiK,cAAgB,CACpBtM,UAAW0B,EAAU1B,GAAa6N,GAAkB7N,GAAaA,EAAU4Q,eAAiB/C,GAAkB7N,EAAU4Q,gBAAkB,GAC1I7Q,OAAQ8N,GAAkB9N,IAI5B,IElE4B+X,EAC9B4B,EFiEMN,EDhCG,SAAwBtB,GAErC,IAAIsB,EAAmBvB,GAAMC,GAE7B,OAAO/W,EAAeb,QAAO,SAAUC,EAAK+B,GAC1C,OAAO/B,EAAIE,OAAO+Y,EAAiBvR,QAAO,SAAUqQ,GAClD,OAAOA,EAAShW,QAAUA,CAC5B,IACF,GAAG,GACL,CCuB+ByX,EElEK7B,EFkEsB,GAAGzX,OAAO2Y,EAAkB3W,EAAMc,QAAQ2U,WEjE9F4B,EAAS5B,EAAU5X,QAAO,SAAUwZ,EAAQE,GAC9C,IAAIC,EAAWH,EAAOE,EAAQ5X,MAK9B,OAJA0X,EAAOE,EAAQ5X,MAAQ6X,EAAWnb,OAAOkE,OAAO,CAAC,EAAGiX,EAAUD,EAAS,CACrEzW,QAASzE,OAAOkE,OAAO,CAAC,EAAGiX,EAAS1W,QAASyW,EAAQzW,SACrD4I,KAAMrN,OAAOkE,OAAO,CAAC,EAAGiX,EAAS9N,KAAM6N,EAAQ7N,QAC5C6N,EACEF,CACT,GAAG,CAAC,GAEGhb,OAAO4D,KAAKoX,GAAQlV,KAAI,SAAUhG,GACvC,OAAOkb,EAAOlb,EAChB,MF4DM,OAJA6D,EAAM+W,iBAAmBA,EAAiBvR,QAAO,SAAUiS,GACzD,OAAOA,EAAE7X,OACX,IA+FFI,EAAM+W,iBAAiB5W,SAAQ,SAAUJ,GACvC,IAAIJ,EAAOI,EAAKJ,KACZ+X,EAAe3X,EAAKe,QACpBA,OAA2B,IAAjB4W,EAA0B,CAAC,EAAIA,EACzChX,EAASX,EAAKW,OAElB,GAAsB,mBAAXA,EAAuB,CAChC,IAAIiX,EAAYjX,EAAO,CACrBV,MAAOA,EACPL,KAAMA,EACNiK,SAAUA,EACV9I,QAASA,IAKXkW,EAAiB/F,KAAK0G,GAFT,WAAmB,EAGlC,CACF,IA/GS/N,EAASQ,QAClB,EAMAwN,YAAa,WACX,IAAIX,EAAJ,CAIA,IAAIY,EAAkB7X,EAAME,SACxBvC,EAAYka,EAAgBla,UAC5BD,EAASma,EAAgBna,OAG7B,GAAKyY,GAAiBxY,EAAWD,GAAjC,CAKAsC,EAAMwG,MAAQ,CACZ7I,UAAWwX,GAAiBxX,EAAWqH,EAAgBtH,GAAoC,UAA3BsC,EAAMc,QAAQC,UAC9ErD,OAAQiG,EAAcjG,IAOxBsC,EAAM0R,OAAQ,EACd1R,EAAMjC,UAAYiC,EAAMc,QAAQ/C,UAKhCiC,EAAM+W,iBAAiB5W,SAAQ,SAAU0V,GACvC,OAAO7V,EAAMmG,cAAc0P,EAASlW,MAAQtD,OAAOkE,OAAO,CAAC,EAAGsV,EAASnM,KACzE,IAEA,IAAK,IAAIoO,EAAQ,EAAGA,EAAQ9X,EAAM+W,iBAAiBhH,OAAQ+H,IACzD,IAAoB,IAAhB9X,EAAM0R,MAAV,CAMA,IAAIqG,EAAwB/X,EAAM+W,iBAAiBe,GAC/ChY,EAAKiY,EAAsBjY,GAC3BkY,EAAyBD,EAAsBjX,QAC/CoM,OAAsC,IAA3B8K,EAAoC,CAAC,EAAIA,EACpDrY,EAAOoY,EAAsBpY,KAEf,mBAAPG,IACTE,EAAQF,EAAG,CACTE,MAAOA,EACPc,QAASoM,EACTvN,KAAMA,EACNiK,SAAUA,KACN5J,EAdR,MAHEA,EAAM0R,OAAQ,EACdoG,GAAS,CAzBb,CATA,CAqDF,EAGA1N,QC1I2BtK,ED0IV,WACf,OAAO,IAAImY,SAAQ,SAAUC,GAC3BtO,EAASgO,cACTM,EAAQlY,EACV,GACF,EC7IG,WAUL,OATK8W,IACHA,EAAU,IAAImB,SAAQ,SAAUC,GAC9BD,QAAQC,UAAUC,MAAK,WACrBrB,OAAUsB,EACVF,EAAQpY,IACV,GACF,KAGKgX,CACT,GDmIIuB,QAAS,WACPjB,IACAH,GAAc,CAChB,GAGF,IAAKd,GAAiBxY,EAAWD,GAC/B,OAAOkM,EAmCT,SAASwN,IACPJ,EAAiB7W,SAAQ,SAAUL,GACjC,OAAOA,GACT,IACAkX,EAAmB,EACrB,CAEA,OAvCApN,EAASsN,WAAWpW,GAASqX,MAAK,SAAUnY,IACrCiX,GAAenW,EAAQwX,eAC1BxX,EAAQwX,cAActY,EAE1B,IAmCO4J,CACT,CACF,CACO,IAAI2O,GAA4BhC,KGzLnC,GAA4BA,GAAgB,CAC9CI,iBAFqB,CAAC6B,GAAgB,GAAe,GAAe,EAAa,GAAQ,GAAM,GAAiB,EAAO,MCJrH,GAA4BjC,GAAgB,CAC9CI,iBAFqB,CAAC6B,GAAgB,GAAe,GAAe,KCatE,MAAMC,GAAa,IAAIlI,IACjBmI,GAAO,CACX,GAAAtH,CAAIxS,EAASzC,EAAKyN,GACX6O,GAAWzC,IAAIpX,IAClB6Z,GAAWrH,IAAIxS,EAAS,IAAI2R,KAE9B,MAAMoI,EAAcF,GAAWjc,IAAIoC,GAI9B+Z,EAAY3C,IAAI7Z,IAA6B,IAArBwc,EAAYC,KAKzCD,EAAYvH,IAAIjV,EAAKyN,GAHnBiP,QAAQC,MAAM,+EAA+E7W,MAAM8W,KAAKJ,EAAY1Y,QAAQ,MAIhI,EACAzD,IAAG,CAACoC,EAASzC,IACPsc,GAAWzC,IAAIpX,IACV6Z,GAAWjc,IAAIoC,GAASpC,IAAIL,IAE9B,KAET,MAAA6c,CAAOpa,EAASzC,GACd,IAAKsc,GAAWzC,IAAIpX,GAClB,OAEF,MAAM+Z,EAAcF,GAAWjc,IAAIoC,GACnC+Z,EAAYM,OAAO9c,GAGM,IAArBwc,EAAYC,MACdH,GAAWQ,OAAOra,EAEtB,GAYIsa,GAAiB,gBAOjBC,GAAgBC,IAChBA,GAAYna,OAAOoa,KAAOpa,OAAOoa,IAAIC,SAEvCF,EAAWA,EAAS5O,QAAQ,iBAAiB,CAAC+O,EAAOC,IAAO,IAAIH,IAAIC,OAAOE,QAEtEJ,GA4CHK,GAAuB7a,IAC3BA,EAAQ8a,cAAc,IAAIC,MAAMT,IAAgB,EAE5C,GAAYU,MACXA,GAA4B,iBAAXA,UAGO,IAAlBA,EAAOC,SAChBD,EAASA,EAAO,SAEgB,IAApBA,EAAOE,UAEjBC,GAAaH,GAEb,GAAUA,GACLA,EAAOC,OAASD,EAAO,GAAKA,EAEf,iBAAXA,GAAuBA,EAAO7J,OAAS,EACzCrL,SAAS+C,cAAc0R,GAAcS,IAEvC,KAEHI,GAAYpb,IAChB,IAAK,GAAUA,IAAgD,IAApCA,EAAQqb,iBAAiBlK,OAClD,OAAO,EAET,MAAMmK,EAAgF,YAA7D5V,iBAAiB1F,GAASub,iBAAiB,cAE9DC,EAAgBxb,EAAQyb,QAAQ,uBACtC,IAAKD,EACH,OAAOF,EAET,GAAIE,IAAkBxb,EAAS,CAC7B,MAAM0b,EAAU1b,EAAQyb,QAAQ,WAChC,GAAIC,GAAWA,EAAQlW,aAAegW,EACpC,OAAO,EAET,GAAgB,OAAZE,EACF,OAAO,CAEX,CACA,OAAOJ,CAAgB,EAEnBK,GAAa3b,IACZA,GAAWA,EAAQkb,WAAaU,KAAKC,gBAGtC7b,EAAQ8b,UAAU7W,SAAS,mBAGC,IAArBjF,EAAQ+b,SACV/b,EAAQ+b,SAEV/b,EAAQgc,aAAa,aAAoD,UAArChc,EAAQic,aAAa,aAE5DC,GAAiBlc,IACrB,IAAK8F,SAASC,gBAAgBoW,aAC5B,OAAO,KAIT,GAAmC,mBAAxBnc,EAAQqF,YAA4B,CAC7C,MAAM+W,EAAOpc,EAAQqF,cACrB,OAAO+W,aAAgBtb,WAAasb,EAAO,IAC7C,CACA,OAAIpc,aAAmBc,WACdd,EAIJA,EAAQwF,WAGN0W,GAAelc,EAAQwF,YAFrB,IAEgC,EAErC6W,GAAO,OAUPC,GAAStc,IACbA,EAAQuE,YAAY,EAEhBgY,GAAY,IACZlc,OAAOmc,SAAW1W,SAAS6G,KAAKqP,aAAa,qBACxC3b,OAAOmc,OAET,KAEHC,GAA4B,GAgB5BC,GAAQ,IAAuC,QAAjC5W,SAASC,gBAAgB4W,IACvCC,GAAqBC,IAhBAC,QAiBN,KACjB,MAAMC,EAAIR,KAEV,GAAIQ,EAAG,CACL,MAAMhc,EAAO8b,EAAOG,KACdC,EAAqBF,EAAE7b,GAAGH,GAChCgc,EAAE7b,GAAGH,GAAQ8b,EAAOK,gBACpBH,EAAE7b,GAAGH,GAAMoc,YAAcN,EACzBE,EAAE7b,GAAGH,GAAMqc,WAAa,KACtBL,EAAE7b,GAAGH,GAAQkc,EACNJ,EAAOK,gBAElB,GA5B0B,YAAxBpX,SAASuX,YAENZ,GAA0BtL,QAC7BrL,SAASyF,iBAAiB,oBAAoB,KAC5C,IAAK,MAAMuR,KAAYL,GACrBK,GACF,IAGJL,GAA0BpK,KAAKyK,IAE/BA,GAkBA,EAEEQ,GAAU,CAACC,EAAkB9F,EAAO,GAAI+F,EAAeD,IACxB,mBAArBA,EAAkCA,KAAoB9F,GAAQ+F,EAExEC,GAAyB,CAACX,EAAUY,EAAmBC,GAAoB,KAC/E,IAAKA,EAEH,YADAL,GAAQR,GAGV,MACMc,EA/JiC5d,KACvC,IAAKA,EACH,OAAO,EAIT,IAAI,mBACF6d,EAAkB,gBAClBC,GACEzd,OAAOqF,iBAAiB1F,GAC5B,MAAM+d,EAA0BC,OAAOC,WAAWJ,GAC5CK,EAAuBF,OAAOC,WAAWH,GAG/C,OAAKC,GAA4BG,GAKjCL,EAAqBA,EAAmBlb,MAAM,KAAK,GACnDmb,EAAkBA,EAAgBnb,MAAM,KAAK,GAtDf,KAuDtBqb,OAAOC,WAAWJ,GAAsBG,OAAOC,WAAWH,KANzD,CAMoG,EA0IpFK,CAAiCT,GADlC,EAExB,IAAIU,GAAS,EACb,MAAMC,EAAU,EACdrR,aAEIA,IAAW0Q,IAGfU,GAAS,EACTV,EAAkBjS,oBAAoB6O,GAAgB+D,GACtDf,GAAQR,GAAS,EAEnBY,EAAkBnS,iBAAiB+O,GAAgB+D,GACnDC,YAAW,KACJF,GACHvD,GAAqB6C,EACvB,GACCE,EAAiB,EAYhBW,GAAuB,CAAC1R,EAAM2R,EAAeC,EAAeC,KAChE,MAAMC,EAAa9R,EAAKsE,OACxB,IAAI+H,EAAQrM,EAAKjH,QAAQ4Y,GAIzB,OAAe,IAAXtF,GACMuF,GAAiBC,EAAiB7R,EAAK8R,EAAa,GAAK9R,EAAK,IAExEqM,GAASuF,EAAgB,GAAK,EAC1BC,IACFxF,GAASA,EAAQyF,GAAcA,GAE1B9R,EAAKjK,KAAKC,IAAI,EAAGD,KAAKE,IAAIoW,EAAOyF,EAAa,KAAI,EAerDC,GAAiB,qBACjBC,GAAiB,OACjBC,GAAgB,SAChBC,GAAgB,CAAC,EACvB,IAAIC,GAAW,EACf,MAAMC,GAAe,CACnBC,WAAY,YACZC,WAAY,YAERC,GAAe,IAAIrI,IAAI,CAAC,QAAS,WAAY,UAAW,YAAa,cAAe,aAAc,iBAAkB,YAAa,WAAY,YAAa,cAAe,YAAa,UAAW,WAAY,QAAS,oBAAqB,aAAc,YAAa,WAAY,cAAe,cAAe,cAAe,YAAa,eAAgB,gBAAiB,eAAgB,gBAAiB,aAAc,QAAS,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,WAAY,OAAQ,SAAU,eAAgB,SAAU,OAAQ,mBAAoB,mBAAoB,QAAS,QAAS,WAM/lB,SAASsI,GAAarf,EAASsf,GAC7B,OAAOA,GAAO,GAAGA,MAAQN,QAAgBhf,EAAQgf,UAAYA,IAC/D,CACA,SAASO,GAAiBvf,GACxB,MAAMsf,EAAMD,GAAarf,GAGzB,OAFAA,EAAQgf,SAAWM,EACnBP,GAAcO,GAAOP,GAAcO,IAAQ,CAAC,EACrCP,GAAcO,EACvB,CAiCA,SAASE,GAAYC,EAAQC,EAAUC,EAAqB,MAC1D,OAAOliB,OAAOmiB,OAAOH,GAAQ7M,MAAKiN,GAASA,EAAMH,WAAaA,GAAYG,EAAMF,qBAAuBA,GACzG,CACA,SAASG,GAAoBC,EAAmB1B,EAAS2B,GACvD,MAAMC,EAAiC,iBAAZ5B,EAErBqB,EAAWO,EAAcD,EAAqB3B,GAAW2B,EAC/D,IAAIE,EAAYC,GAAaJ,GAI7B,OAHKX,GAAahI,IAAI8I,KACpBA,EAAYH,GAEP,CAACE,EAAaP,EAAUQ,EACjC,CACA,SAASE,GAAWpgB,EAAS+f,EAAmB1B,EAAS2B,EAAoBK,GAC3E,GAAiC,iBAAtBN,IAAmC/f,EAC5C,OAEF,IAAKigB,EAAaP,EAAUQ,GAAaJ,GAAoBC,EAAmB1B,EAAS2B,GAIzF,GAAID,KAAqBd,GAAc,CACrC,MAAMqB,EAAepf,GACZ,SAAU2e,GACf,IAAKA,EAAMU,eAAiBV,EAAMU,gBAAkBV,EAAMW,iBAAmBX,EAAMW,eAAevb,SAAS4a,EAAMU,eAC/G,OAAOrf,EAAGjD,KAAKwiB,KAAMZ,EAEzB,EAEFH,EAAWY,EAAaZ,EAC1B,CACA,MAAMD,EAASF,GAAiBvf,GAC1B0gB,EAAWjB,EAAOS,KAAeT,EAAOS,GAAa,CAAC,GACtDS,EAAmBnB,GAAYkB,EAAUhB,EAAUO,EAAc5B,EAAU,MACjF,GAAIsC,EAEF,YADAA,EAAiBN,OAASM,EAAiBN,QAAUA,GAGvD,MAAMf,EAAMD,GAAaK,EAAUK,EAAkBnU,QAAQgT,GAAgB,KACvE1d,EAAK+e,EA5Db,SAAoCjgB,EAASwa,EAAUtZ,GACrD,OAAO,SAASmd,EAAQwB,GACtB,MAAMe,EAAc5gB,EAAQ6gB,iBAAiBrG,GAC7C,IAAK,IAAI,OACPxN,GACE6S,EAAO7S,GAAUA,IAAWyT,KAAMzT,EAASA,EAAOxH,WACpD,IAAK,MAAMsb,KAAcF,EACvB,GAAIE,IAAe9T,EASnB,OANA+T,GAAWlB,EAAO,CAChBW,eAAgBxT,IAEdqR,EAAQgC,QACVW,GAAaC,IAAIjhB,EAAS6f,EAAMqB,KAAM1G,EAAUtZ,GAE3CA,EAAGigB,MAAMnU,EAAQ,CAAC6S,GAG/B,CACF,CAwC2BuB,CAA2BphB,EAASqe,EAASqB,GAvExE,SAA0B1f,EAASkB,GACjC,OAAO,SAASmd,EAAQwB,GAOtB,OANAkB,GAAWlB,EAAO,CAChBW,eAAgBxgB,IAEdqe,EAAQgC,QACVW,GAAaC,IAAIjhB,EAAS6f,EAAMqB,KAAMhgB,GAEjCA,EAAGigB,MAAMnhB,EAAS,CAAC6f,GAC5B,CACF,CA6DoFwB,CAAiBrhB,EAAS0f,GAC5Gxe,EAAGye,mBAAqBM,EAAc5B,EAAU,KAChDnd,EAAGwe,SAAWA,EACdxe,EAAGmf,OAASA,EACZnf,EAAG8d,SAAWM,EACdoB,EAASpB,GAAOpe,EAChBlB,EAAQuL,iBAAiB2U,EAAWhf,EAAI+e,EAC1C,CACA,SAASqB,GAActhB,EAASyf,EAAQS,EAAW7B,EAASsB,GAC1D,MAAMze,EAAKse,GAAYC,EAAOS,GAAY7B,EAASsB,GAC9Cze,IAGLlB,EAAQyL,oBAAoByU,EAAWhf,EAAIqgB,QAAQ5B,WAC5CF,EAAOS,GAAWhf,EAAG8d,UAC9B,CACA,SAASwC,GAAyBxhB,EAASyf,EAAQS,EAAWuB,GAC5D,MAAMC,EAAoBjC,EAAOS,IAAc,CAAC,EAChD,IAAK,MAAOyB,EAAY9B,KAAUpiB,OAAOmkB,QAAQF,GAC3CC,EAAWE,SAASJ,IACtBH,GAActhB,EAASyf,EAAQS,EAAWL,EAAMH,SAAUG,EAAMF,mBAGtE,CACA,SAASQ,GAAaN,GAGpB,OADAA,EAAQA,EAAMjU,QAAQiT,GAAgB,IAC/BI,GAAaY,IAAUA,CAChC,CACA,MAAMmB,GAAe,CACnB,EAAAc,CAAG9hB,EAAS6f,EAAOxB,EAAS2B,GAC1BI,GAAWpgB,EAAS6f,EAAOxB,EAAS2B,GAAoB,EAC1D,EACA,GAAA+B,CAAI/hB,EAAS6f,EAAOxB,EAAS2B,GAC3BI,GAAWpgB,EAAS6f,EAAOxB,EAAS2B,GAAoB,EAC1D,EACA,GAAAiB,CAAIjhB,EAAS+f,EAAmB1B,EAAS2B,GACvC,GAAiC,iBAAtBD,IAAmC/f,EAC5C,OAEF,MAAOigB,EAAaP,EAAUQ,GAAaJ,GAAoBC,EAAmB1B,EAAS2B,GACrFgC,EAAc9B,IAAcH,EAC5BN,EAASF,GAAiBvf,GAC1B0hB,EAAoBjC,EAAOS,IAAc,CAAC,EAC1C+B,EAAclC,EAAkBmC,WAAW,KACjD,QAAwB,IAAbxC,EAAX,CAQA,GAAIuC,EACF,IAAK,MAAME,KAAgB1kB,OAAO4D,KAAKoe,GACrC+B,GAAyBxhB,EAASyf,EAAQ0C,EAAcpC,EAAkBlN,MAAM,IAGpF,IAAK,MAAOuP,EAAavC,KAAUpiB,OAAOmkB,QAAQF,GAAoB,CACpE,MAAMC,EAAaS,EAAYxW,QAAQkT,GAAe,IACjDkD,IAAejC,EAAkB8B,SAASF,IAC7CL,GAActhB,EAASyf,EAAQS,EAAWL,EAAMH,SAAUG,EAAMF,mBAEpE,CAXA,KAPA,CAEE,IAAKliB,OAAO4D,KAAKqgB,GAAmBvQ,OAClC,OAEFmQ,GAActhB,EAASyf,EAAQS,EAAWR,EAAUO,EAAc5B,EAAU,KAE9E,CAYF,EACA,OAAAgE,CAAQriB,EAAS6f,EAAOpI,GACtB,GAAqB,iBAAVoI,IAAuB7f,EAChC,OAAO,KAET,MAAM+c,EAAIR,KAGV,IAAI+F,EAAc,KACdC,GAAU,EACVC,GAAiB,EACjBC,GAAmB,EAJH5C,IADFM,GAAaN,IAMZ9C,IACjBuF,EAAcvF,EAAEhC,MAAM8E,EAAOpI,GAC7BsF,EAAE/c,GAASqiB,QAAQC,GACnBC,GAAWD,EAAYI,uBACvBF,GAAkBF,EAAYK,gCAC9BF,EAAmBH,EAAYM,sBAEjC,MAAMC,EAAM9B,GAAW,IAAIhG,MAAM8E,EAAO,CACtC0C,UACAO,YAAY,IACVrL,GAUJ,OATIgL,GACFI,EAAIE,iBAEFP,GACFxiB,EAAQ8a,cAAc+H,GAEpBA,EAAIJ,kBAAoBH,GAC1BA,EAAYS,iBAEPF,CACT,GAEF,SAAS9B,GAAWljB,EAAKmlB,EAAO,CAAC,GAC/B,IAAK,MAAOzlB,EAAKa,KAAUX,OAAOmkB,QAAQoB,GACxC,IACEnlB,EAAIN,GAAOa,CACb,CAAE,MAAO6kB,GACPxlB,OAAOC,eAAeG,EAAKN,EAAK,CAC9B2lB,cAAc,EACdtlB,IAAG,IACMQ,GAGb,CAEF,OAAOP,CACT,CASA,SAASslB,GAAc/kB,GACrB,GAAc,SAAVA,EACF,OAAO,EAET,GAAc,UAAVA,EACF,OAAO,EAET,GAAIA,IAAU4f,OAAO5f,GAAOkC,WAC1B,OAAO0d,OAAO5f,GAEhB,GAAc,KAAVA,GAA0B,SAAVA,EAClB,OAAO,KAET,GAAqB,iBAAVA,EACT,OAAOA,EAET,IACE,OAAOglB,KAAKC,MAAMC,mBAAmBllB,GACvC,CAAE,MAAO6kB,GACP,OAAO7kB,CACT,CACF,CACA,SAASmlB,GAAiBhmB,GACxB,OAAOA,EAAIqO,QAAQ,UAAU4X,GAAO,IAAIA,EAAItjB,iBAC9C,CACA,MAAMujB,GAAc,CAClB,gBAAAC,CAAiB1jB,EAASzC,EAAKa,GAC7B4B,EAAQ6B,aAAa,WAAW0hB,GAAiBhmB,KAAQa,EAC3D,EACA,mBAAAulB,CAAoB3jB,EAASzC,GAC3ByC,EAAQ4B,gBAAgB,WAAW2hB,GAAiBhmB,KACtD,EACA,iBAAAqmB,CAAkB5jB,GAChB,IAAKA,EACH,MAAO,CAAC,EAEV,MAAM0B,EAAa,CAAC,EACdmiB,EAASpmB,OAAO4D,KAAKrB,EAAQ8jB,SAASld,QAAOrJ,GAAOA,EAAI2kB,WAAW,QAAU3kB,EAAI2kB,WAAW,cAClG,IAAK,MAAM3kB,KAAOsmB,EAAQ,CACxB,IAAIE,EAAUxmB,EAAIqO,QAAQ,MAAO,IACjCmY,EAAUA,EAAQC,OAAO,GAAG9jB,cAAgB6jB,EAAQlR,MAAM,EAAGkR,EAAQ5S,QACrEzP,EAAWqiB,GAAWZ,GAAcnjB,EAAQ8jB,QAAQvmB,GACtD,CACA,OAAOmE,CACT,EACAuiB,iBAAgB,CAACjkB,EAASzC,IACjB4lB,GAAcnjB,EAAQic,aAAa,WAAWsH,GAAiBhmB,QAgB1E,MAAM2mB,GAEJ,kBAAWC,GACT,MAAO,CAAC,CACV,CACA,sBAAWC,GACT,MAAO,CAAC,CACV,CACA,eAAWpH,GACT,MAAM,IAAIqH,MAAM,sEAClB,CACA,UAAAC,CAAWC,GAIT,OAHAA,EAAS9D,KAAK+D,gBAAgBD,GAC9BA,EAAS9D,KAAKgE,kBAAkBF,GAChC9D,KAAKiE,iBAAiBH,GACfA,CACT,CACA,iBAAAE,CAAkBF,GAChB,OAAOA,CACT,CACA,eAAAC,CAAgBD,EAAQvkB,GACtB,MAAM2kB,EAAa,GAAU3kB,GAAWyjB,GAAYQ,iBAAiBjkB,EAAS,UAAY,CAAC,EAE3F,MAAO,IACFygB,KAAKmE,YAAYT,WACM,iBAAfQ,EAA0BA,EAAa,CAAC,KAC/C,GAAU3kB,GAAWyjB,GAAYG,kBAAkB5jB,GAAW,CAAC,KAC7C,iBAAXukB,EAAsBA,EAAS,CAAC,EAE/C,CACA,gBAAAG,CAAiBH,EAAQM,EAAcpE,KAAKmE,YAAYR,aACtD,IAAK,MAAO7hB,EAAUuiB,KAAkBrnB,OAAOmkB,QAAQiD,GAAc,CACnE,MAAMzmB,EAAQmmB,EAAOhiB,GACfwiB,EAAY,GAAU3mB,GAAS,UAhiBrC4c,OADSA,EAiiB+C5c,GA/hBnD,GAAG4c,IAELvd,OAAOM,UAAUuC,SAASrC,KAAK+c,GAAQL,MAAM,eAAe,GAAGza,cA8hBlE,IAAK,IAAI8kB,OAAOF,GAAehhB,KAAKihB,GAClC,MAAM,IAAIE,UAAU,GAAGxE,KAAKmE,YAAY5H,KAAKkI,0BAA0B3iB,qBAA4BwiB,yBAAiCD,MAExI,CAriBW9J,KAsiBb,EAqBF,MAAMmK,WAAsBjB,GAC1B,WAAAU,CAAY5kB,EAASukB,GACnBa,SACAplB,EAAUmb,GAAWnb,MAIrBygB,KAAK4E,SAAWrlB,EAChBygB,KAAK6E,QAAU7E,KAAK6D,WAAWC,GAC/BzK,GAAKtH,IAAIiO,KAAK4E,SAAU5E,KAAKmE,YAAYW,SAAU9E,MACrD,CAGA,OAAA+E,GACE1L,GAAKM,OAAOqG,KAAK4E,SAAU5E,KAAKmE,YAAYW,UAC5CvE,GAAaC,IAAIR,KAAK4E,SAAU5E,KAAKmE,YAAYa,WACjD,IAAK,MAAMC,KAAgBjoB,OAAOkoB,oBAAoBlF,MACpDA,KAAKiF,GAAgB,IAEzB,CACA,cAAAE,CAAe9I,EAAU9c,EAAS6lB,GAAa,GAC7CpI,GAAuBX,EAAU9c,EAAS6lB,EAC5C,CACA,UAAAvB,CAAWC,GAIT,OAHAA,EAAS9D,KAAK+D,gBAAgBD,EAAQ9D,KAAK4E,UAC3Cd,EAAS9D,KAAKgE,kBAAkBF,GAChC9D,KAAKiE,iBAAiBH,GACfA,CACT,CAGA,kBAAOuB,CAAY9lB,GACjB,OAAO8Z,GAAKlc,IAAIud,GAAWnb,GAAUygB,KAAK8E,SAC5C,CACA,0BAAOQ,CAAoB/lB,EAASukB,EAAS,CAAC,GAC5C,OAAO9D,KAAKqF,YAAY9lB,IAAY,IAAIygB,KAAKzgB,EAA2B,iBAAXukB,EAAsBA,EAAS,KAC9F,CACA,kBAAWyB,GACT,MA5CY,OA6Cd,CACA,mBAAWT,GACT,MAAO,MAAM9E,KAAKzD,MACpB,CACA,oBAAWyI,GACT,MAAO,IAAIhF,KAAK8E,UAClB,CACA,gBAAOU,CAAUllB,GACf,MAAO,GAAGA,IAAO0f,KAAKgF,WACxB,EAUF,MAAMS,GAAclmB,IAClB,IAAIwa,EAAWxa,EAAQic,aAAa,kBACpC,IAAKzB,GAAyB,MAAbA,EAAkB,CACjC,IAAI2L,EAAgBnmB,EAAQic,aAAa,QAMzC,IAAKkK,IAAkBA,EAActE,SAAS,OAASsE,EAAcjE,WAAW,KAC9E,OAAO,KAILiE,EAActE,SAAS,OAASsE,EAAcjE,WAAW,OAC3DiE,EAAgB,IAAIA,EAAcxjB,MAAM,KAAK,MAE/C6X,EAAW2L,GAAmC,MAAlBA,EAAwBA,EAAcC,OAAS,IAC7E,CACA,OAAO5L,EAAWA,EAAS7X,MAAM,KAAKY,KAAI8iB,GAAO9L,GAAc8L,KAAM1iB,KAAK,KAAO,IAAI,EAEjF2iB,GAAiB,CACrB1T,KAAI,CAAC4H,EAAUxa,EAAU8F,SAASC,kBACzB,GAAG3G,UAAUsB,QAAQ3C,UAAU8iB,iBAAiB5iB,KAAK+B,EAASwa,IAEvE+L,QAAO,CAAC/L,EAAUxa,EAAU8F,SAASC,kBAC5BrF,QAAQ3C,UAAU8K,cAAc5K,KAAK+B,EAASwa,GAEvDgM,SAAQ,CAACxmB,EAASwa,IACT,GAAGpb,UAAUY,EAAQwmB,UAAU5f,QAAOzB,GAASA,EAAMshB,QAAQjM,KAEtE,OAAAkM,CAAQ1mB,EAASwa,GACf,MAAMkM,EAAU,GAChB,IAAIC,EAAW3mB,EAAQwF,WAAWiW,QAAQjB,GAC1C,KAAOmM,GACLD,EAAQrU,KAAKsU,GACbA,EAAWA,EAASnhB,WAAWiW,QAAQjB,GAEzC,OAAOkM,CACT,EACA,IAAAE,CAAK5mB,EAASwa,GACZ,IAAIqM,EAAW7mB,EAAQ8mB,uBACvB,KAAOD,GAAU,CACf,GAAIA,EAASJ,QAAQjM,GACnB,MAAO,CAACqM,GAEVA,EAAWA,EAASC,sBACtB,CACA,MAAO,EACT,EAEA,IAAAxhB,CAAKtF,EAASwa,GACZ,IAAIlV,EAAOtF,EAAQ+mB,mBACnB,KAAOzhB,GAAM,CACX,GAAIA,EAAKmhB,QAAQjM,GACf,MAAO,CAAClV,GAEVA,EAAOA,EAAKyhB,kBACd,CACA,MAAO,EACT,EACA,iBAAAC,CAAkBhnB,GAChB,MAAMinB,EAAa,CAAC,IAAK,SAAU,QAAS,WAAY,SAAU,UAAW,aAAc,4BAA4B1jB,KAAIiX,GAAY,GAAGA,2BAAiC7W,KAAK,KAChL,OAAO8c,KAAK7N,KAAKqU,EAAYjnB,GAAS4G,QAAOsgB,IAAOvL,GAAWuL,IAAO9L,GAAU8L,IAClF,EACA,sBAAAC,CAAuBnnB,GACrB,MAAMwa,EAAW0L,GAAYlmB,GAC7B,OAAIwa,GACK8L,GAAeC,QAAQ/L,GAAYA,EAErC,IACT,EACA,sBAAA4M,CAAuBpnB,GACrB,MAAMwa,EAAW0L,GAAYlmB,GAC7B,OAAOwa,EAAW8L,GAAeC,QAAQ/L,GAAY,IACvD,EACA,+BAAA6M,CAAgCrnB,GAC9B,MAAMwa,EAAW0L,GAAYlmB,GAC7B,OAAOwa,EAAW8L,GAAe1T,KAAK4H,GAAY,EACpD,GAUI8M,GAAuB,CAACC,EAAWC,EAAS,UAChD,MAAMC,EAAa,gBAAgBF,EAAU9B,YACvC1kB,EAAOwmB,EAAUvK,KACvBgE,GAAac,GAAGhc,SAAU2hB,EAAY,qBAAqB1mB,OAAU,SAAU8e,GAI7E,GAHI,CAAC,IAAK,QAAQgC,SAASpB,KAAKiH,UAC9B7H,EAAMkD,iBAEJpH,GAAW8E,MACb,OAEF,MAAMzT,EAASsZ,GAAec,uBAAuB3G,OAASA,KAAKhF,QAAQ,IAAI1a,KAC9DwmB,EAAUxB,oBAAoB/Y,GAGtCwa,IACX,GAAE,EAiBEG,GAAc,YACdC,GAAc,QAAQD,KACtBE,GAAe,SAASF,KAQ9B,MAAMG,WAAc3C,GAElB,eAAWnI,GACT,MAfW,OAgBb,CAGA,KAAA+K,GAEE,GADmB/G,GAAaqB,QAAQ5B,KAAK4E,SAAUuC,IACxCnF,iBACb,OAEFhC,KAAK4E,SAASvJ,UAAU1B,OAlBF,QAmBtB,MAAMyL,EAAapF,KAAK4E,SAASvJ,UAAU7W,SApBrB,QAqBtBwb,KAAKmF,gBAAe,IAAMnF,KAAKuH,mBAAmBvH,KAAK4E,SAAUQ,EACnE,CAGA,eAAAmC,GACEvH,KAAK4E,SAASjL,SACd4G,GAAaqB,QAAQ5B,KAAK4E,SAAUwC,IACpCpH,KAAK+E,SACP,CAGA,sBAAOtI,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOgd,GAAM/B,oBAAoBtF,MACvC,GAAsB,iBAAX8D,EAAX,CAGA,QAAqB/K,IAAjB1O,EAAKyZ,IAAyBA,EAAOrC,WAAW,MAAmB,gBAAXqC,EAC1D,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,GAAQ9D,KAJb,CAKF,GACF,EAOF6G,GAAqBQ,GAAO,SAM5BlL,GAAmBkL,IAcnB,MAKMI,GAAyB,4BAO/B,MAAMC,WAAehD,GAEnB,eAAWnI,GACT,MAfW,QAgBb,CAGA,MAAAoL,GAEE3H,KAAK4E,SAASxjB,aAAa,eAAgB4e,KAAK4E,SAASvJ,UAAUsM,OAjB3C,UAkB1B,CAGA,sBAAOlL,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOqd,GAAOpC,oBAAoBtF,MACzB,WAAX8D,GACFzZ,EAAKyZ,IAET,GACF,EAOFvD,GAAac,GAAGhc,SAjCe,2BAiCmBoiB,IAAwBrI,IACxEA,EAAMkD,iBACN,MAAMsF,EAASxI,EAAM7S,OAAOyO,QAAQyM,IACvBC,GAAOpC,oBAAoBsC,GACnCD,QAAQ,IAOfxL,GAAmBuL,IAcnB,MACMG,GAAc,YACdC,GAAmB,aAAaD,KAChCE,GAAkB,YAAYF,KAC9BG,GAAiB,WAAWH,KAC5BI,GAAoB,cAAcJ,KAClCK,GAAkB,YAAYL,KAK9BM,GAAY,CAChBC,YAAa,KACbC,aAAc,KACdC,cAAe,MAEXC,GAAgB,CACpBH,YAAa,kBACbC,aAAc,kBACdC,cAAe,mBAOjB,MAAME,WAAc/E,GAClB,WAAAU,CAAY5kB,EAASukB,GACnBa,QACA3E,KAAK4E,SAAWrlB,EACXA,GAAYipB,GAAMC,gBAGvBzI,KAAK6E,QAAU7E,KAAK6D,WAAWC,GAC/B9D,KAAK0I,QAAU,EACf1I,KAAK2I,sBAAwB7H,QAAQlhB,OAAOgpB,cAC5C5I,KAAK6I,cACP,CAGA,kBAAWnF,GACT,OAAOyE,EACT,CACA,sBAAWxE,GACT,OAAO4E,EACT,CACA,eAAWhM,GACT,MA/CW,OAgDb,CAGA,OAAAwI,GACExE,GAAaC,IAAIR,KAAK4E,SAAUiD,GAClC,CAGA,MAAAiB,CAAO1J,GACAY,KAAK2I,sBAIN3I,KAAK+I,wBAAwB3J,KAC/BY,KAAK0I,QAAUtJ,EAAM4J,SAJrBhJ,KAAK0I,QAAUtJ,EAAM6J,QAAQ,GAAGD,OAMpC,CACA,IAAAE,CAAK9J,GACCY,KAAK+I,wBAAwB3J,KAC/BY,KAAK0I,QAAUtJ,EAAM4J,QAAUhJ,KAAK0I,SAEtC1I,KAAKmJ,eACLtM,GAAQmD,KAAK6E,QAAQuD,YACvB,CACA,KAAAgB,CAAMhK,GACJY,KAAK0I,QAAUtJ,EAAM6J,SAAW7J,EAAM6J,QAAQvY,OAAS,EAAI,EAAI0O,EAAM6J,QAAQ,GAAGD,QAAUhJ,KAAK0I,OACjG,CACA,YAAAS,GACE,MAAME,EAAYlnB,KAAKoC,IAAIyb,KAAK0I,SAChC,GAAIW,GAnEgB,GAoElB,OAEF,MAAM/b,EAAY+b,EAAYrJ,KAAK0I,QACnC1I,KAAK0I,QAAU,EACVpb,GAGLuP,GAAQvP,EAAY,EAAI0S,KAAK6E,QAAQyD,cAAgBtI,KAAK6E,QAAQwD,aACpE,CACA,WAAAQ,GACM7I,KAAK2I,uBACPpI,GAAac,GAAGrB,KAAK4E,SAAUqD,IAAmB7I,GAASY,KAAK8I,OAAO1J,KACvEmB,GAAac,GAAGrB,KAAK4E,SAAUsD,IAAiB9I,GAASY,KAAKkJ,KAAK9J,KACnEY,KAAK4E,SAASvJ,UAAU5E,IAlFG,mBAoF3B8J,GAAac,GAAGrB,KAAK4E,SAAUkD,IAAkB1I,GAASY,KAAK8I,OAAO1J,KACtEmB,GAAac,GAAGrB,KAAK4E,SAAUmD,IAAiB3I,GAASY,KAAKoJ,MAAMhK,KACpEmB,GAAac,GAAGrB,KAAK4E,SAAUoD,IAAgB5I,GAASY,KAAKkJ,KAAK9J,KAEtE,CACA,uBAAA2J,CAAwB3J,GACtB,OAAOY,KAAK2I,wBA3FS,QA2FiBvJ,EAAMkK,aA5FrB,UA4FyDlK,EAAMkK,YACxF,CAGA,kBAAOb,GACL,MAAO,iBAAkBpjB,SAASC,iBAAmB7C,UAAU8mB,eAAiB,CAClF,EAeF,MAEMC,GAAc,eACdC,GAAiB,YACjBC,GAAmB,YACnBC,GAAoB,aAGpBC,GAAa,OACbC,GAAa,OACbC,GAAiB,OACjBC,GAAkB,QAClBC,GAAc,QAAQR,KACtBS,GAAa,OAAOT,KACpBU,GAAkB,UAAUV,KAC5BW,GAAqB,aAAaX,KAClCY,GAAqB,aAAaZ,KAClCa,GAAmB,YAAYb,KAC/Bc,GAAwB,OAAOd,KAAcC,KAC7Cc,GAAyB,QAAQf,KAAcC,KAC/Ce,GAAsB,WACtBC,GAAsB,SAMtBC,GAAkB,UAClBC,GAAgB,iBAChBC,GAAuBF,GAAkBC,GAKzCE,GAAmB,CACvB,CAACnB,IAAmBK,GACpB,CAACJ,IAAoBG,IAEjBgB,GAAY,CAChBC,SAAU,IACVC,UAAU,EACVC,MAAO,QACPC,MAAM,EACNC,OAAO,EACPC,MAAM,GAEFC,GAAgB,CACpBN,SAAU,mBAEVC,SAAU,UACVC,MAAO,mBACPC,KAAM,mBACNC,MAAO,UACPC,KAAM,WAOR,MAAME,WAAiB5G,GACrB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GACf9D,KAAKuL,UAAY,KACjBvL,KAAKwL,eAAiB,KACtBxL,KAAKyL,YAAa,EAClBzL,KAAK0L,aAAe,KACpB1L,KAAK2L,aAAe,KACpB3L,KAAK4L,mBAAqB/F,GAAeC,QArCjB,uBAqC8C9F,KAAK4E,UAC3E5E,KAAK6L,qBACD7L,KAAK6E,QAAQqG,OAASV,IACxBxK,KAAK8L,OAET,CAGA,kBAAWpI,GACT,OAAOoH,EACT,CACA,sBAAWnH,GACT,OAAO0H,EACT,CACA,eAAW9O,GACT,MAnFW,UAoFb,CAGA,IAAA1X,GACEmb,KAAK+L,OAAOnC,GACd,CACA,eAAAoC,IAIO3mB,SAAS4mB,QAAUtR,GAAUqF,KAAK4E,WACrC5E,KAAKnb,MAET,CACA,IAAAshB,GACEnG,KAAK+L,OAAOlC,GACd,CACA,KAAAoB,GACMjL,KAAKyL,YACPrR,GAAqB4F,KAAK4E,UAE5B5E,KAAKkM,gBACP,CACA,KAAAJ,GACE9L,KAAKkM,iBACLlM,KAAKmM,kBACLnM,KAAKuL,UAAYa,aAAY,IAAMpM,KAAKgM,mBAAmBhM,KAAK6E,QAAQkG,SAC1E,CACA,iBAAAsB,GACOrM,KAAK6E,QAAQqG,OAGdlL,KAAKyL,WACPlL,GAAae,IAAItB,KAAK4E,SAAUqF,IAAY,IAAMjK,KAAK8L,UAGzD9L,KAAK8L,QACP,CACA,EAAAQ,CAAG7T,GACD,MAAM8T,EAAQvM,KAAKwM,YACnB,GAAI/T,EAAQ8T,EAAM7b,OAAS,GAAK+H,EAAQ,EACtC,OAEF,GAAIuH,KAAKyL,WAEP,YADAlL,GAAae,IAAItB,KAAK4E,SAAUqF,IAAY,IAAMjK,KAAKsM,GAAG7T,KAG5D,MAAMgU,EAAczM,KAAK0M,cAAc1M,KAAK2M,cAC5C,GAAIF,IAAgBhU,EAClB,OAEF,MAAMtC,EAAQsC,EAAQgU,EAAc7C,GAAaC,GACjD7J,KAAK+L,OAAO5V,EAAOoW,EAAM9T,GAC3B,CACA,OAAAsM,GACM/E,KAAK2L,cACP3L,KAAK2L,aAAa5G,UAEpBJ,MAAMI,SACR,CAGA,iBAAAf,CAAkBF,GAEhB,OADAA,EAAO8I,gBAAkB9I,EAAOiH,SACzBjH,CACT,CACA,kBAAA+H,GACM7L,KAAK6E,QAAQmG,UACfzK,GAAac,GAAGrB,KAAK4E,SAAUsF,IAAiB9K,GAASY,KAAK6M,SAASzN,KAE9C,UAAvBY,KAAK6E,QAAQoG,QACf1K,GAAac,GAAGrB,KAAK4E,SAAUuF,IAAoB,IAAMnK,KAAKiL,UAC9D1K,GAAac,GAAGrB,KAAK4E,SAAUwF,IAAoB,IAAMpK,KAAKqM,uBAE5DrM,KAAK6E,QAAQsG,OAAS3C,GAAMC,eAC9BzI,KAAK8M,yBAET,CACA,uBAAAA,GACE,IAAK,MAAMC,KAAOlH,GAAe1T,KArIX,qBAqImC6N,KAAK4E,UAC5DrE,GAAac,GAAG0L,EAAK1C,IAAkBjL,GAASA,EAAMkD,mBAExD,MAmBM0K,EAAc,CAClB3E,aAAc,IAAMrI,KAAK+L,OAAO/L,KAAKiN,kBAAkBnD,KACvDxB,cAAe,IAAMtI,KAAK+L,OAAO/L,KAAKiN,kBAAkBlD,KACxD3B,YAtBkB,KACS,UAAvBpI,KAAK6E,QAAQoG,QAYjBjL,KAAKiL,QACDjL,KAAK0L,cACPwB,aAAalN,KAAK0L,cAEpB1L,KAAK0L,aAAe7N,YAAW,IAAMmC,KAAKqM,qBAjLjB,IAiL+DrM,KAAK6E,QAAQkG,UAAS,GAOhH/K,KAAK2L,aAAe,IAAInD,GAAMxI,KAAK4E,SAAUoI,EAC/C,CACA,QAAAH,CAASzN,GACP,GAAI,kBAAkB/b,KAAK+b,EAAM7S,OAAO0a,SACtC,OAEF,MAAM3Z,EAAYud,GAAiBzL,EAAMtiB,KACrCwQ,IACF8R,EAAMkD,iBACNtC,KAAK+L,OAAO/L,KAAKiN,kBAAkB3f,IAEvC,CACA,aAAAof,CAAcntB,GACZ,OAAOygB,KAAKwM,YAAYrnB,QAAQ5F,EAClC,CACA,0BAAA4tB,CAA2B1U,GACzB,IAAKuH,KAAK4L,mBACR,OAEF,MAAMwB,EAAkBvH,GAAeC,QAAQ4E,GAAiB1K,KAAK4L,oBACrEwB,EAAgB/R,UAAU1B,OAAO8Q,IACjC2C,EAAgBjsB,gBAAgB,gBAChC,MAAMksB,EAAqBxH,GAAeC,QAAQ,sBAAsBrN,MAAWuH,KAAK4L,oBACpFyB,IACFA,EAAmBhS,UAAU5E,IAAIgU,IACjC4C,EAAmBjsB,aAAa,eAAgB,QAEpD,CACA,eAAA+qB,GACE,MAAM5sB,EAAUygB,KAAKwL,gBAAkBxL,KAAK2M,aAC5C,IAAKptB,EACH,OAEF,MAAM+tB,EAAkB/P,OAAOgQ,SAAShuB,EAAQic,aAAa,oBAAqB,IAClFwE,KAAK6E,QAAQkG,SAAWuC,GAAmBtN,KAAK6E,QAAQ+H,eAC1D,CACA,MAAAb,CAAO5V,EAAO5W,EAAU,MACtB,GAAIygB,KAAKyL,WACP,OAEF,MAAM1N,EAAgBiC,KAAK2M,aACrBa,EAASrX,IAAUyT,GACnB6D,EAAcluB,GAAWue,GAAqBkC,KAAKwM,YAAazO,EAAeyP,EAAQxN,KAAK6E,QAAQuG,MAC1G,GAAIqC,IAAgB1P,EAClB,OAEF,MAAM2P,EAAmB1N,KAAK0M,cAAce,GACtCE,EAAenI,GACZjF,GAAaqB,QAAQ5B,KAAK4E,SAAUY,EAAW,CACpD1F,cAAe2N,EACfngB,UAAW0S,KAAK4N,kBAAkBzX,GAClCuD,KAAMsG,KAAK0M,cAAc3O,GACzBuO,GAAIoB,IAIR,GADmBC,EAAa3D,IACjBhI,iBACb,OAEF,IAAKjE,IAAkB0P,EAGrB,OAEF,MAAMI,EAAY/M,QAAQd,KAAKuL,WAC/BvL,KAAKiL,QACLjL,KAAKyL,YAAa,EAClBzL,KAAKmN,2BAA2BO,GAChC1N,KAAKwL,eAAiBiC,EACtB,MAAMK,EAAuBN,EA3OR,sBADF,oBA6ObO,EAAiBP,EA3OH,qBACA,qBA2OpBC,EAAYpS,UAAU5E,IAAIsX,GAC1BlS,GAAO4R,GACP1P,EAAc1C,UAAU5E,IAAIqX,GAC5BL,EAAYpS,UAAU5E,IAAIqX,GAQ1B9N,KAAKmF,gBAPoB,KACvBsI,EAAYpS,UAAU1B,OAAOmU,EAAsBC,GACnDN,EAAYpS,UAAU5E,IAAIgU,IAC1B1M,EAAc1C,UAAU1B,OAAO8Q,GAAqBsD,EAAgBD,GACpE9N,KAAKyL,YAAa,EAClBkC,EAAa1D,GAAW,GAEYlM,EAAeiC,KAAKgO,eACtDH,GACF7N,KAAK8L,OAET,CACA,WAAAkC,GACE,OAAOhO,KAAK4E,SAASvJ,UAAU7W,SAhQV,QAiQvB,CACA,UAAAmoB,GACE,OAAO9G,GAAeC,QAAQ8E,GAAsB5K,KAAK4E,SAC3D,CACA,SAAA4H,GACE,OAAO3G,GAAe1T,KAAKwY,GAAe3K,KAAK4E,SACjD,CACA,cAAAsH,GACMlM,KAAKuL,YACP0C,cAAcjO,KAAKuL,WACnBvL,KAAKuL,UAAY,KAErB,CACA,iBAAA0B,CAAkB3f,GAChB,OAAI2O,KACK3O,IAAcwc,GAAiBD,GAAaD,GAE9Ctc,IAAcwc,GAAiBF,GAAaC,EACrD,CACA,iBAAA+D,CAAkBzX,GAChB,OAAI8F,KACK9F,IAAU0T,GAAaC,GAAiBC,GAE1C5T,IAAU0T,GAAaE,GAAkBD,EAClD,CAGA,sBAAOrN,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOihB,GAAShG,oBAAoBtF,KAAM8D,GAChD,GAAsB,iBAAXA,GAIX,GAAsB,iBAAXA,EAAqB,CAC9B,QAAqB/K,IAAjB1O,EAAKyZ,IAAyBA,EAAOrC,WAAW,MAAmB,gBAAXqC,EAC1D,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IACP,OAREzZ,EAAKiiB,GAAGxI,EASZ,GACF,EAOFvD,GAAac,GAAGhc,SAAUklB,GAvSE,uCAuS2C,SAAUnL,GAC/E,MAAM7S,EAASsZ,GAAec,uBAAuB3G,MACrD,IAAKzT,IAAWA,EAAO8O,UAAU7W,SAASgmB,IACxC,OAEFpL,EAAMkD,iBACN,MAAM4L,EAAW5C,GAAShG,oBAAoB/Y,GACxC4hB,EAAanO,KAAKxE,aAAa,oBACrC,OAAI2S,GACFD,EAAS5B,GAAG6B,QACZD,EAAS7B,qBAGyC,SAAhDrJ,GAAYQ,iBAAiBxD,KAAM,UACrCkO,EAASrpB,YACTqpB,EAAS7B,sBAGX6B,EAAS/H,YACT+H,EAAS7B,oBACX,IACA9L,GAAac,GAAGzhB,OAAQ0qB,IAAuB,KAC7C,MAAM8D,EAAYvI,GAAe1T,KA5TR,6BA6TzB,IAAK,MAAM+b,KAAYE,EACrB9C,GAAShG,oBAAoB4I,EAC/B,IAOF/R,GAAmBmP,IAcnB,MAEM+C,GAAc,eAEdC,GAAe,OAAOD,KACtBE,GAAgB,QAAQF,KACxBG,GAAe,OAAOH,KACtBI,GAAiB,SAASJ,KAC1BK,GAAyB,QAAQL,cACjCM,GAAoB,OACpBC,GAAsB,WACtBC,GAAwB,aAExBC,GAA6B,WAAWF,OAAwBA,KAKhEG,GAAyB,8BACzBC,GAAY,CAChBvqB,OAAQ,KACRkjB,QAAQ,GAEJsH,GAAgB,CACpBxqB,OAAQ,iBACRkjB,OAAQ,WAOV,MAAMuH,WAAiBxK,GACrB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GACf9D,KAAKmP,kBAAmB,EACxBnP,KAAKoP,cAAgB,GACrB,MAAMC,EAAaxJ,GAAe1T,KAAK4c,IACvC,IAAK,MAAMO,KAAQD,EAAY,CAC7B,MAAMtV,EAAW8L,GAAea,uBAAuB4I,GACjDC,EAAgB1J,GAAe1T,KAAK4H,GAAU5T,QAAOqpB,GAAgBA,IAAiBxP,KAAK4E,WAChF,OAAb7K,GAAqBwV,EAAc7e,QACrCsP,KAAKoP,cAAcxd,KAAK0d,EAE5B,CACAtP,KAAKyP,sBACAzP,KAAK6E,QAAQpgB,QAChBub,KAAK0P,0BAA0B1P,KAAKoP,cAAepP,KAAK2P,YAEtD3P,KAAK6E,QAAQ8C,QACf3H,KAAK2H,QAET,CAGA,kBAAWjE,GACT,OAAOsL,EACT,CACA,sBAAWrL,GACT,OAAOsL,EACT,CACA,eAAW1S,GACT,MA9DW,UA+Db,CAGA,MAAAoL,GACM3H,KAAK2P,WACP3P,KAAK4P,OAEL5P,KAAK6P,MAET,CACA,IAAAA,GACE,GAAI7P,KAAKmP,kBAAoBnP,KAAK2P,WAChC,OAEF,IAAIG,EAAiB,GAQrB,GALI9P,KAAK6E,QAAQpgB,SACfqrB,EAAiB9P,KAAK+P,uBAhEH,wCAgE4C5pB,QAAO5G,GAAWA,IAAYygB,KAAK4E,WAAU9hB,KAAIvD,GAAW2vB,GAAS5J,oBAAoB/lB,EAAS,CAC/JooB,QAAQ,OAGRmI,EAAepf,QAAUof,EAAe,GAAGX,iBAC7C,OAGF,GADmB5O,GAAaqB,QAAQ5B,KAAK4E,SAAU0J,IACxCtM,iBACb,OAEF,IAAK,MAAMgO,KAAkBF,EAC3BE,EAAeJ,OAEjB,MAAMK,EAAYjQ,KAAKkQ,gBACvBlQ,KAAK4E,SAASvJ,UAAU1B,OAAOiV,IAC/B5O,KAAK4E,SAASvJ,UAAU5E,IAAIoY,IAC5B7O,KAAK4E,SAAS7jB,MAAMkvB,GAAa,EACjCjQ,KAAK0P,0BAA0B1P,KAAKoP,eAAe,GACnDpP,KAAKmP,kBAAmB,EACxB,MAQMgB,EAAa,SADUF,EAAU,GAAGxL,cAAgBwL,EAAU7d,MAAM,KAE1E4N,KAAKmF,gBATY,KACfnF,KAAKmP,kBAAmB,EACxBnP,KAAK4E,SAASvJ,UAAU1B,OAAOkV,IAC/B7O,KAAK4E,SAASvJ,UAAU5E,IAAImY,GAAqBD,IACjD3O,KAAK4E,SAAS7jB,MAAMkvB,GAAa,GACjC1P,GAAaqB,QAAQ5B,KAAK4E,SAAU2J,GAAc,GAItBvO,KAAK4E,UAAU,GAC7C5E,KAAK4E,SAAS7jB,MAAMkvB,GAAa,GAAGjQ,KAAK4E,SAASuL,MACpD,CACA,IAAAP,GACE,GAAI5P,KAAKmP,mBAAqBnP,KAAK2P,WACjC,OAGF,GADmBpP,GAAaqB,QAAQ5B,KAAK4E,SAAU4J,IACxCxM,iBACb,OAEF,MAAMiO,EAAYjQ,KAAKkQ,gBACvBlQ,KAAK4E,SAAS7jB,MAAMkvB,GAAa,GAAGjQ,KAAK4E,SAASthB,wBAAwB2sB,OAC1EpU,GAAOmE,KAAK4E,UACZ5E,KAAK4E,SAASvJ,UAAU5E,IAAIoY,IAC5B7O,KAAK4E,SAASvJ,UAAU1B,OAAOiV,GAAqBD,IACpD,IAAK,MAAM/M,KAAW5B,KAAKoP,cAAe,CACxC,MAAM7vB,EAAUsmB,GAAec,uBAAuB/E,GAClDriB,IAAYygB,KAAK2P,SAASpwB,IAC5BygB,KAAK0P,0BAA0B,CAAC9N,IAAU,EAE9C,CACA5B,KAAKmP,kBAAmB,EAOxBnP,KAAK4E,SAAS7jB,MAAMkvB,GAAa,GACjCjQ,KAAKmF,gBAPY,KACfnF,KAAKmP,kBAAmB,EACxBnP,KAAK4E,SAASvJ,UAAU1B,OAAOkV,IAC/B7O,KAAK4E,SAASvJ,UAAU5E,IAAImY,IAC5BrO,GAAaqB,QAAQ5B,KAAK4E,SAAU6J,GAAe,GAGvBzO,KAAK4E,UAAU,EAC/C,CACA,QAAA+K,CAASpwB,EAAUygB,KAAK4E,UACtB,OAAOrlB,EAAQ8b,UAAU7W,SAASmqB,GACpC,CAGA,iBAAA3K,CAAkBF,GAGhB,OAFAA,EAAO6D,OAAS7G,QAAQgD,EAAO6D,QAC/B7D,EAAOrf,OAASiW,GAAWoJ,EAAOrf,QAC3Bqf,CACT,CACA,aAAAoM,GACE,OAAOlQ,KAAK4E,SAASvJ,UAAU7W,SA3IL,uBAChB,QACC,QA0Ib,CACA,mBAAAirB,GACE,IAAKzP,KAAK6E,QAAQpgB,OAChB,OAEF,MAAMshB,EAAW/F,KAAK+P,uBAAuBhB,IAC7C,IAAK,MAAMxvB,KAAWwmB,EAAU,CAC9B,MAAMqK,EAAWvK,GAAec,uBAAuBpnB,GACnD6wB,GACFpQ,KAAK0P,0BAA0B,CAACnwB,GAAUygB,KAAK2P,SAASS,GAE5D,CACF,CACA,sBAAAL,CAAuBhW,GACrB,MAAMgM,EAAWF,GAAe1T,KAAK2c,GAA4B9O,KAAK6E,QAAQpgB,QAE9E,OAAOohB,GAAe1T,KAAK4H,EAAUiG,KAAK6E,QAAQpgB,QAAQ0B,QAAO5G,IAAYwmB,EAAS3E,SAAS7hB,IACjG,CACA,yBAAAmwB,CAA0BW,EAAcC,GACtC,GAAKD,EAAa3f,OAGlB,IAAK,MAAMnR,KAAW8wB,EACpB9wB,EAAQ8b,UAAUsM,OArKK,aAqKyB2I,GAChD/wB,EAAQ6B,aAAa,gBAAiBkvB,EAE1C,CAGA,sBAAO7T,CAAgBqH,GACrB,MAAMe,EAAU,CAAC,EAIjB,MAHsB,iBAAXf,GAAuB,YAAYzgB,KAAKygB,KACjDe,EAAQ8C,QAAS,GAEZ3H,KAAKwH,MAAK,WACf,MAAMnd,EAAO6kB,GAAS5J,oBAAoBtF,KAAM6E,GAChD,GAAsB,iBAAXf,EAAqB,CAC9B,QAA4B,IAAjBzZ,EAAKyZ,GACd,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IACP,CACF,GACF,EAOFvD,GAAac,GAAGhc,SAAUqpB,GAAwBK,IAAwB,SAAU3P,IAErD,MAAzBA,EAAM7S,OAAO0a,SAAmB7H,EAAMW,gBAAmD,MAAjCX,EAAMW,eAAekH,UAC/E7H,EAAMkD,iBAER,IAAK,MAAM/iB,KAAWsmB,GAAee,gCAAgC5G,MACnEkP,GAAS5J,oBAAoB/lB,EAAS,CACpCooB,QAAQ,IACPA,QAEP,IAMAxL,GAAmB+S,IAcnB,MAAMqB,GAAS,WAETC,GAAc,eACdC,GAAiB,YAGjBC,GAAiB,UACjBC,GAAmB,YAGnBC,GAAe,OAAOJ,KACtBK,GAAiB,SAASL,KAC1BM,GAAe,OAAON,KACtBO,GAAgB,QAAQP,KACxBQ,GAAyB,QAAQR,KAAcC,KAC/CQ,GAAyB,UAAUT,KAAcC,KACjDS,GAAuB,QAAQV,KAAcC,KAC7CU,GAAoB,OAMpBC,GAAyB,4DACzBC,GAA6B,GAAGD,MAA0BD,KAC1DG,GAAgB,iBAIhBC,GAAgBtV,KAAU,UAAY,YACtCuV,GAAmBvV,KAAU,YAAc,UAC3CwV,GAAmBxV,KAAU,aAAe,eAC5CyV,GAAsBzV,KAAU,eAAiB,aACjD0V,GAAkB1V,KAAU,aAAe,cAC3C2V,GAAiB3V,KAAU,cAAgB,aAG3C4V,GAAY,CAChBC,WAAW,EACX7jB,SAAU,kBACV8jB,QAAS,UACT/pB,OAAQ,CAAC,EAAG,GACZgqB,aAAc,KACd1zB,UAAW,UAEP2zB,GAAgB,CACpBH,UAAW,mBACX7jB,SAAU,mBACV8jB,QAAS,SACT/pB,OAAQ,0BACRgqB,aAAc,yBACd1zB,UAAW,2BAOb,MAAM4zB,WAAiBxN,GACrB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GACf9D,KAAKmS,QAAU,KACfnS,KAAKoS,QAAUpS,KAAK4E,SAAS7f,WAE7Bib,KAAKqS,MAAQxM,GAAehhB,KAAKmb,KAAK4E,SAAU0M,IAAe,IAAMzL,GAAeM,KAAKnG,KAAK4E,SAAU0M,IAAe,IAAMzL,GAAeC,QAAQwL,GAAetR,KAAKoS,SACxKpS,KAAKsS,UAAYtS,KAAKuS,eACxB,CAGA,kBAAW7O,GACT,OAAOmO,EACT,CACA,sBAAWlO,GACT,OAAOsO,EACT,CACA,eAAW1V,GACT,OAAOgU,EACT,CAGA,MAAA5I,GACE,OAAO3H,KAAK2P,WAAa3P,KAAK4P,OAAS5P,KAAK6P,MAC9C,CACA,IAAAA,GACE,GAAI3U,GAAW8E,KAAK4E,WAAa5E,KAAK2P,WACpC,OAEF,MAAM7P,EAAgB,CACpBA,cAAeE,KAAK4E,UAGtB,IADkBrE,GAAaqB,QAAQ5B,KAAK4E,SAAUkM,GAAchR,GACtDkC,iBAAd,CASA,GANAhC,KAAKwS,gBAMD,iBAAkBntB,SAASC,kBAAoB0a,KAAKoS,QAAQpX,QAzExC,eA0EtB,IAAK,MAAMzb,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAK6Z,UAC/CxF,GAAac,GAAG9hB,EAAS,YAAaqc,IAG1CoE,KAAK4E,SAAS6N,QACdzS,KAAK4E,SAASxjB,aAAa,iBAAiB,GAC5C4e,KAAKqS,MAAMhX,UAAU5E,IAAI0a,IACzBnR,KAAK4E,SAASvJ,UAAU5E,IAAI0a,IAC5B5Q,GAAaqB,QAAQ5B,KAAK4E,SAAUmM,GAAejR,EAhBnD,CAiBF,CACA,IAAA8P,GACE,GAAI1U,GAAW8E,KAAK4E,YAAc5E,KAAK2P,WACrC,OAEF,MAAM7P,EAAgB,CACpBA,cAAeE,KAAK4E,UAEtB5E,KAAK0S,cAAc5S,EACrB,CACA,OAAAiF,GACM/E,KAAKmS,SACPnS,KAAKmS,QAAQnZ,UAEf2L,MAAMI,SACR,CACA,MAAAha,GACEiV,KAAKsS,UAAYtS,KAAKuS,gBAClBvS,KAAKmS,SACPnS,KAAKmS,QAAQpnB,QAEjB,CAGA,aAAA2nB,CAAc5S,GAEZ,IADkBS,GAAaqB,QAAQ5B,KAAK4E,SAAUgM,GAAc9Q,GACtDkC,iBAAd,CAMA,GAAI,iBAAkB3c,SAASC,gBAC7B,IAAK,MAAM/F,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAK6Z,UAC/CxF,GAAaC,IAAIjhB,EAAS,YAAaqc,IAGvCoE,KAAKmS,SACPnS,KAAKmS,QAAQnZ,UAEfgH,KAAKqS,MAAMhX,UAAU1B,OAAOwX,IAC5BnR,KAAK4E,SAASvJ,UAAU1B,OAAOwX,IAC/BnR,KAAK4E,SAASxjB,aAAa,gBAAiB,SAC5C4hB,GAAYE,oBAAoBlD,KAAKqS,MAAO,UAC5C9R,GAAaqB,QAAQ5B,KAAK4E,SAAUiM,GAAgB/Q,EAhBpD,CAiBF,CACA,UAAA+D,CAAWC,GAET,GAAgC,iBADhCA,EAASa,MAAMd,WAAWC,IACRxlB,YAA2B,GAAUwlB,EAAOxlB,YAAgE,mBAA3CwlB,EAAOxlB,UAAUgF,sBAElG,MAAM,IAAIkhB,UAAU,GAAG+L,GAAO9L,+GAEhC,OAAOX,CACT,CACA,aAAA0O,GACE,QAAsB,IAAX,EACT,MAAM,IAAIhO,UAAU,gEAEtB,IAAImO,EAAmB3S,KAAK4E,SACG,WAA3B5E,KAAK6E,QAAQvmB,UACfq0B,EAAmB3S,KAAKoS,QACf,GAAUpS,KAAK6E,QAAQvmB,WAChCq0B,EAAmBjY,GAAWsF,KAAK6E,QAAQvmB,WACA,iBAA3B0hB,KAAK6E,QAAQvmB,YAC7Bq0B,EAAmB3S,KAAK6E,QAAQvmB,WAElC,MAAM0zB,EAAehS,KAAK4S,mBAC1B5S,KAAKmS,QAAU,GAAoBQ,EAAkB3S,KAAKqS,MAAOL,EACnE,CACA,QAAArC,GACE,OAAO3P,KAAKqS,MAAMhX,UAAU7W,SAAS2sB,GACvC,CACA,aAAA0B,GACE,MAAMC,EAAiB9S,KAAKoS,QAC5B,GAAIU,EAAezX,UAAU7W,SArKN,WAsKrB,OAAOmtB,GAET,GAAImB,EAAezX,UAAU7W,SAvKJ,aAwKvB,OAAOotB,GAET,GAAIkB,EAAezX,UAAU7W,SAzKA,iBA0K3B,MA5JsB,MA8JxB,GAAIsuB,EAAezX,UAAU7W,SA3KE,mBA4K7B,MA9JyB,SAkK3B,MAAMuuB,EAAkF,QAA1E9tB,iBAAiB+a,KAAKqS,OAAOvX,iBAAiB,iBAAiB6K,OAC7E,OAAImN,EAAezX,UAAU7W,SArLP,UAsLbuuB,EAAQvB,GAAmBD,GAE7BwB,EAAQrB,GAAsBD,EACvC,CACA,aAAAc,GACE,OAAkD,OAA3CvS,KAAK4E,SAAS5J,QAnLD,UAoLtB,CACA,UAAAgY,GACE,MAAM,OACJhrB,GACEgY,KAAK6E,QACT,MAAsB,iBAAX7c,EACFA,EAAO9F,MAAM,KAAKY,KAAInF,GAAS4f,OAAOgQ,SAAS5vB,EAAO,MAEzC,mBAAXqK,EACFirB,GAAcjrB,EAAOirB,EAAYjT,KAAK4E,UAExC5c,CACT,CACA,gBAAA4qB,GACE,MAAMM,EAAwB,CAC5Bx0B,UAAWshB,KAAK6S,gBAChBzc,UAAW,CAAC,CACV9V,KAAM,kBACNmB,QAAS,CACPwM,SAAU+R,KAAK6E,QAAQ5W,WAExB,CACD3N,KAAM,SACNmB,QAAS,CACPuG,OAAQgY,KAAKgT,iBAanB,OAPIhT,KAAKsS,WAAsC,WAAzBtS,KAAK6E,QAAQkN,WACjC/O,GAAYC,iBAAiBjD,KAAKqS,MAAO,SAAU,UACnDa,EAAsB9c,UAAY,CAAC,CACjC9V,KAAM,cACNC,SAAS,KAGN,IACF2yB,KACArW,GAAQmD,KAAK6E,QAAQmN,aAAc,CAACkB,IAE3C,CACA,eAAAC,EAAgB,IACdr2B,EAAG,OACHyP,IAEA,MAAMggB,EAAQ1G,GAAe1T,KAhOF,8DAgO+B6N,KAAKqS,OAAOlsB,QAAO5G,GAAWob,GAAUpb,KAC7FgtB,EAAM7b,QAMXoN,GAAqByO,EAAOhgB,EAAQzP,IAAQ6zB,IAAmBpE,EAAMnL,SAAS7U,IAASkmB,OACzF,CAGA,sBAAOhW,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAO6nB,GAAS5M,oBAAoBtF,KAAM8D,GAChD,GAAsB,iBAAXA,EAAX,CAGA,QAA4B,IAAjBzZ,EAAKyZ,GACd,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IAJL,CAKF,GACF,CACA,iBAAOsP,CAAWhU,GAChB,GA5QuB,IA4QnBA,EAAMwI,QAAgD,UAAfxI,EAAMqB,MA/QnC,QA+QuDrB,EAAMtiB,IACzE,OAEF,MAAMu2B,EAAcxN,GAAe1T,KAAKkf,IACxC,IAAK,MAAM1J,KAAU0L,EAAa,CAChC,MAAMC,EAAUpB,GAAS7M,YAAYsC,GACrC,IAAK2L,IAAyC,IAA9BA,EAAQzO,QAAQiN,UAC9B,SAEF,MAAMyB,EAAenU,EAAMmU,eACrBC,EAAeD,EAAanS,SAASkS,EAAQjB,OACnD,GAAIkB,EAAanS,SAASkS,EAAQ1O,WAA2C,WAA9B0O,EAAQzO,QAAQiN,YAA2B0B,GAA8C,YAA9BF,EAAQzO,QAAQiN,WAA2B0B,EACnJ,SAIF,GAAIF,EAAQjB,MAAM7tB,SAAS4a,EAAM7S,UAA2B,UAAf6S,EAAMqB,MA/RvC,QA+R2DrB,EAAMtiB,KAAqB,qCAAqCuG,KAAK+b,EAAM7S,OAAO0a,UACvJ,SAEF,MAAMnH,EAAgB,CACpBA,cAAewT,EAAQ1O,UAEN,UAAfxF,EAAMqB,OACRX,EAAckH,WAAa5H,GAE7BkU,EAAQZ,cAAc5S,EACxB,CACF,CACA,4BAAO2T,CAAsBrU,GAI3B,MAAMsU,EAAU,kBAAkBrwB,KAAK+b,EAAM7S,OAAO0a,SAC9C0M,EAjTW,WAiTKvU,EAAMtiB,IACtB82B,EAAkB,CAAClD,GAAgBC,IAAkBvP,SAAShC,EAAMtiB,KAC1E,IAAK82B,IAAoBD,EACvB,OAEF,GAAID,IAAYC,EACd,OAEFvU,EAAMkD,iBAGN,MAAMuR,EAAkB7T,KAAKgG,QAAQoL,IAA0BpR,KAAO6F,GAAeM,KAAKnG,KAAMoR,IAAwB,IAAMvL,GAAehhB,KAAKmb,KAAMoR,IAAwB,IAAMvL,GAAeC,QAAQsL,GAAwBhS,EAAMW,eAAehb,YACpPwF,EAAW2nB,GAAS5M,oBAAoBuO,GAC9C,GAAID,EAIF,OAHAxU,EAAM0U,kBACNvpB,EAASslB,YACTtlB,EAAS4oB,gBAAgB/T,GAGvB7U,EAASolB,aAEXvQ,EAAM0U,kBACNvpB,EAASqlB,OACTiE,EAAgBpB,QAEpB,EAOFlS,GAAac,GAAGhc,SAAU4rB,GAAwBG,GAAwBc,GAASuB,uBACnFlT,GAAac,GAAGhc,SAAU4rB,GAAwBK,GAAeY,GAASuB,uBAC1ElT,GAAac,GAAGhc,SAAU2rB,GAAwBkB,GAASkB,YAC3D7S,GAAac,GAAGhc,SAAU6rB,GAAsBgB,GAASkB,YACzD7S,GAAac,GAAGhc,SAAU2rB,GAAwBI,IAAwB,SAAUhS,GAClFA,EAAMkD,iBACN4P,GAAS5M,oBAAoBtF,MAAM2H,QACrC,IAMAxL,GAAmB+V,IAcnB,MAAM6B,GAAS,WAETC,GAAoB,OACpBC,GAAkB,gBAAgBF,KAClCG,GAAY,CAChBC,UAAW,iBACXC,cAAe,KACfhP,YAAY,EACZzK,WAAW,EAEX0Z,YAAa,QAETC,GAAgB,CACpBH,UAAW,SACXC,cAAe,kBACfhP,WAAY,UACZzK,UAAW,UACX0Z,YAAa,oBAOf,MAAME,WAAiB9Q,GACrB,WAAAU,CAAYL,GACVa,QACA3E,KAAK6E,QAAU7E,KAAK6D,WAAWC,GAC/B9D,KAAKwU,aAAc,EACnBxU,KAAK4E,SAAW,IAClB,CAGA,kBAAWlB,GACT,OAAOwQ,EACT,CACA,sBAAWvQ,GACT,OAAO2Q,EACT,CACA,eAAW/X,GACT,OAAOwX,EACT,CAGA,IAAAlE,CAAKxT,GACH,IAAK2D,KAAK6E,QAAQlK,UAEhB,YADAkC,GAAQR,GAGV2D,KAAKyU,UACL,MAAMl1B,EAAUygB,KAAK0U,cACjB1U,KAAK6E,QAAQO,YACfvJ,GAAOtc,GAETA,EAAQ8b,UAAU5E,IAAIud,IACtBhU,KAAK2U,mBAAkB,KACrB9X,GAAQR,EAAS,GAErB,CACA,IAAAuT,CAAKvT,GACE2D,KAAK6E,QAAQlK,WAIlBqF,KAAK0U,cAAcrZ,UAAU1B,OAAOqa,IACpChU,KAAK2U,mBAAkB,KACrB3U,KAAK+E,UACLlI,GAAQR,EAAS,KANjBQ,GAAQR,EAQZ,CACA,OAAA0I,GACO/E,KAAKwU,cAGVjU,GAAaC,IAAIR,KAAK4E,SAAUqP,IAChCjU,KAAK4E,SAASjL,SACdqG,KAAKwU,aAAc,EACrB,CAGA,WAAAE,GACE,IAAK1U,KAAK4E,SAAU,CAClB,MAAMgQ,EAAWvvB,SAASwvB,cAAc,OACxCD,EAAST,UAAYnU,KAAK6E,QAAQsP,UAC9BnU,KAAK6E,QAAQO,YACfwP,EAASvZ,UAAU5E,IApFD,QAsFpBuJ,KAAK4E,SAAWgQ,CAClB,CACA,OAAO5U,KAAK4E,QACd,CACA,iBAAAZ,CAAkBF,GAGhB,OADAA,EAAOuQ,YAAc3Z,GAAWoJ,EAAOuQ,aAChCvQ,CACT,CACA,OAAA2Q,GACE,GAAIzU,KAAKwU,YACP,OAEF,MAAMj1B,EAAUygB,KAAK0U,cACrB1U,KAAK6E,QAAQwP,YAAYS,OAAOv1B,GAChCghB,GAAac,GAAG9hB,EAAS00B,IAAiB,KACxCpX,GAAQmD,KAAK6E,QAAQuP,cAAc,IAErCpU,KAAKwU,aAAc,CACrB,CACA,iBAAAG,CAAkBtY,GAChBW,GAAuBX,EAAU2D,KAAK0U,cAAe1U,KAAK6E,QAAQO,WACpE,EAeF,MAEM2P,GAAc,gBACdC,GAAkB,UAAUD,KAC5BE,GAAoB,cAAcF,KAGlCG,GAAmB,WACnBC,GAAY,CAChBC,WAAW,EACXC,YAAa,MAETC,GAAgB,CACpBF,UAAW,UACXC,YAAa,WAOf,MAAME,WAAkB9R,GACtB,WAAAU,CAAYL,GACVa,QACA3E,KAAK6E,QAAU7E,KAAK6D,WAAWC,GAC/B9D,KAAKwV,WAAY,EACjBxV,KAAKyV,qBAAuB,IAC9B,CAGA,kBAAW/R,GACT,OAAOyR,EACT,CACA,sBAAWxR,GACT,OAAO2R,EACT,CACA,eAAW/Y,GACT,MArCW,WAsCb,CAGA,QAAAmZ,GACM1V,KAAKwV,YAGLxV,KAAK6E,QAAQuQ,WACfpV,KAAK6E,QAAQwQ,YAAY5C,QAE3BlS,GAAaC,IAAInb,SAAU0vB,IAC3BxU,GAAac,GAAGhc,SAAU2vB,IAAiB5V,GAASY,KAAK2V,eAAevW,KACxEmB,GAAac,GAAGhc,SAAU4vB,IAAmB7V,GAASY,KAAK4V,eAAexW,KAC1EY,KAAKwV,WAAY,EACnB,CACA,UAAAK,GACO7V,KAAKwV,YAGVxV,KAAKwV,WAAY,EACjBjV,GAAaC,IAAInb,SAAU0vB,IAC7B,CAGA,cAAAY,CAAevW,GACb,MAAM,YACJiW,GACErV,KAAK6E,QACT,GAAIzF,EAAM7S,SAAWlH,UAAY+Z,EAAM7S,SAAW8oB,GAAeA,EAAY7wB,SAAS4a,EAAM7S,QAC1F,OAEF,MAAM1L,EAAWglB,GAAeU,kBAAkB8O,GAC1B,IAApBx0B,EAAS6P,OACX2kB,EAAY5C,QACHzS,KAAKyV,uBAAyBP,GACvCr0B,EAASA,EAAS6P,OAAS,GAAG+hB,QAE9B5xB,EAAS,GAAG4xB,OAEhB,CACA,cAAAmD,CAAexW,GAzED,QA0ERA,EAAMtiB,MAGVkjB,KAAKyV,qBAAuBrW,EAAM0W,SAAWZ,GA5EzB,UA6EtB,EAeF,MAAMa,GAAyB,oDACzBC,GAA0B,cAC1BC,GAAmB,gBACnBC,GAAkB,eAMxB,MAAMC,GACJ,WAAAhS,GACEnE,KAAK4E,SAAWvf,SAAS6G,IAC3B,CAGA,QAAAkqB,GAEE,MAAMC,EAAgBhxB,SAASC,gBAAgBuC,YAC/C,OAAO1F,KAAKoC,IAAI3E,OAAO02B,WAAaD,EACtC,CACA,IAAAzG,GACE,MAAM/rB,EAAQmc,KAAKoW,WACnBpW,KAAKuW,mBAELvW,KAAKwW,sBAAsBxW,KAAK4E,SAAUqR,IAAkBQ,GAAmBA,EAAkB5yB,IAEjGmc,KAAKwW,sBAAsBT,GAAwBE,IAAkBQ,GAAmBA,EAAkB5yB,IAC1Gmc,KAAKwW,sBAAsBR,GAAyBE,IAAiBO,GAAmBA,EAAkB5yB,GAC5G,CACA,KAAAwO,GACE2N,KAAK0W,wBAAwB1W,KAAK4E,SAAU,YAC5C5E,KAAK0W,wBAAwB1W,KAAK4E,SAAUqR,IAC5CjW,KAAK0W,wBAAwBX,GAAwBE,IACrDjW,KAAK0W,wBAAwBV,GAAyBE,GACxD,CACA,aAAAS,GACE,OAAO3W,KAAKoW,WAAa,CAC3B,CAGA,gBAAAG,GACEvW,KAAK4W,sBAAsB5W,KAAK4E,SAAU,YAC1C5E,KAAK4E,SAAS7jB,MAAM+K,SAAW,QACjC,CACA,qBAAA0qB,CAAsBzc,EAAU8c,EAAexa,GAC7C,MAAMya,EAAiB9W,KAAKoW,WAS5BpW,KAAK+W,2BAA2Bhd,GARHxa,IAC3B,GAAIA,IAAYygB,KAAK4E,UAAYhlB,OAAO02B,WAAa/2B,EAAQsI,YAAcivB,EACzE,OAEF9W,KAAK4W,sBAAsBr3B,EAASs3B,GACpC,MAAMJ,EAAkB72B,OAAOqF,iBAAiB1F,GAASub,iBAAiB+b,GAC1Et3B,EAAQwB,MAAMi2B,YAAYH,EAAe,GAAGxa,EAASkB,OAAOC,WAAWiZ,QAAsB,GAGjG,CACA,qBAAAG,CAAsBr3B,EAASs3B,GAC7B,MAAMI,EAAc13B,EAAQwB,MAAM+Z,iBAAiB+b,GAC/CI,GACFjU,GAAYC,iBAAiB1jB,EAASs3B,EAAeI,EAEzD,CACA,uBAAAP,CAAwB3c,EAAU8c,GAWhC7W,KAAK+W,2BAA2Bhd,GAVHxa,IAC3B,MAAM5B,EAAQqlB,GAAYQ,iBAAiBjkB,EAASs3B,GAEtC,OAAVl5B,GAIJqlB,GAAYE,oBAAoB3jB,EAASs3B,GACzCt3B,EAAQwB,MAAMi2B,YAAYH,EAAel5B,IAJvC4B,EAAQwB,MAAMm2B,eAAeL,EAIgB,GAGnD,CACA,0BAAAE,CAA2Bhd,EAAUod,GACnC,GAAI,GAAUpd,GACZod,EAASpd,QAGX,IAAK,MAAM6L,KAAOC,GAAe1T,KAAK4H,EAAUiG,KAAK4E,UACnDuS,EAASvR,EAEb,EAeF,MAEMwR,GAAc,YAGdC,GAAe,OAAOD,KACtBE,GAAyB,gBAAgBF,KACzCG,GAAiB,SAASH,KAC1BI,GAAe,OAAOJ,KACtBK,GAAgB,QAAQL,KACxBM,GAAiB,SAASN,KAC1BO,GAAsB,gBAAgBP,KACtCQ,GAA0B,oBAAoBR,KAC9CS,GAA0B,kBAAkBT,KAC5CU,GAAyB,QAAQV,cACjCW,GAAkB,aAElBC,GAAoB,OACpBC,GAAoB,eAKpBC,GAAY,CAChBtD,UAAU,EACVnC,OAAO,EACPzH,UAAU,GAENmN,GAAgB,CACpBvD,SAAU,mBACVnC,MAAO,UACPzH,SAAU,WAOZ,MAAMoN,WAAc1T,GAClB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GACf9D,KAAKqY,QAAUxS,GAAeC,QArBV,gBAqBmC9F,KAAK4E,UAC5D5E,KAAKsY,UAAYtY,KAAKuY,sBACtBvY,KAAKwY,WAAaxY,KAAKyY,uBACvBzY,KAAK2P,UAAW,EAChB3P,KAAKmP,kBAAmB,EACxBnP,KAAK0Y,WAAa,IAAIvC,GACtBnW,KAAK6L,oBACP,CAGA,kBAAWnI,GACT,OAAOwU,EACT,CACA,sBAAWvU,GACT,OAAOwU,EACT,CACA,eAAW5b,GACT,MA1DW,OA2Db,CAGA,MAAAoL,CAAO7H,GACL,OAAOE,KAAK2P,SAAW3P,KAAK4P,OAAS5P,KAAK6P,KAAK/P,EACjD,CACA,IAAA+P,CAAK/P,GACCE,KAAK2P,UAAY3P,KAAKmP,kBAGR5O,GAAaqB,QAAQ5B,KAAK4E,SAAU4S,GAAc,CAClE1X,kBAEYkC,mBAGdhC,KAAK2P,UAAW,EAChB3P,KAAKmP,kBAAmB,EACxBnP,KAAK0Y,WAAW9I,OAChBvqB,SAAS6G,KAAKmP,UAAU5E,IAAIshB,IAC5B/X,KAAK2Y,gBACL3Y,KAAKsY,UAAUzI,MAAK,IAAM7P,KAAK4Y,aAAa9Y,KAC9C,CACA,IAAA8P,GACO5P,KAAK2P,WAAY3P,KAAKmP,mBAGT5O,GAAaqB,QAAQ5B,KAAK4E,SAAUyS,IACxCrV,mBAGdhC,KAAK2P,UAAW,EAChB3P,KAAKmP,kBAAmB,EACxBnP,KAAKwY,WAAW3C,aAChB7V,KAAK4E,SAASvJ,UAAU1B,OAAOqe,IAC/BhY,KAAKmF,gBAAe,IAAMnF,KAAK6Y,cAAc7Y,KAAK4E,SAAU5E,KAAKgO,gBACnE,CACA,OAAAjJ,GACExE,GAAaC,IAAI5gB,OAAQw3B,IACzB7W,GAAaC,IAAIR,KAAKqY,QAASjB,IAC/BpX,KAAKsY,UAAUvT,UACf/E,KAAKwY,WAAW3C,aAChBlR,MAAMI,SACR,CACA,YAAA+T,GACE9Y,KAAK2Y,eACP,CAGA,mBAAAJ,GACE,OAAO,IAAIhE,GAAS,CAClB5Z,UAAWmG,QAAQd,KAAK6E,QAAQ+P,UAEhCxP,WAAYpF,KAAKgO,eAErB,CACA,oBAAAyK,GACE,OAAO,IAAIlD,GAAU,CACnBF,YAAarV,KAAK4E,UAEtB,CACA,YAAAgU,CAAa9Y,GAENza,SAAS6G,KAAK1H,SAASwb,KAAK4E,WAC/Bvf,SAAS6G,KAAK4oB,OAAO9U,KAAK4E,UAE5B5E,KAAK4E,SAAS7jB,MAAMgxB,QAAU,QAC9B/R,KAAK4E,SAASzjB,gBAAgB,eAC9B6e,KAAK4E,SAASxjB,aAAa,cAAc,GACzC4e,KAAK4E,SAASxjB,aAAa,OAAQ,UACnC4e,KAAK4E,SAASnZ,UAAY,EAC1B,MAAMstB,EAAYlT,GAAeC,QA7GT,cA6GsC9F,KAAKqY,SAC/DU,IACFA,EAAUttB,UAAY,GAExBoQ,GAAOmE,KAAK4E,UACZ5E,KAAK4E,SAASvJ,UAAU5E,IAAIuhB,IAU5BhY,KAAKmF,gBATsB,KACrBnF,KAAK6E,QAAQ4N,OACfzS,KAAKwY,WAAW9C,WAElB1V,KAAKmP,kBAAmB,EACxB5O,GAAaqB,QAAQ5B,KAAK4E,SAAU6S,GAAe,CACjD3X,iBACA,GAEoCE,KAAKqY,QAASrY,KAAKgO,cAC7D,CACA,kBAAAnC,GACEtL,GAAac,GAAGrB,KAAK4E,SAAUiT,IAAyBzY,IAhJvC,WAiJXA,EAAMtiB,MAGNkjB,KAAK6E,QAAQmG,SACfhL,KAAK4P,OAGP5P,KAAKgZ,6BAA4B,IAEnCzY,GAAac,GAAGzhB,OAAQ83B,IAAgB,KAClC1X,KAAK2P,WAAa3P,KAAKmP,kBACzBnP,KAAK2Y,eACP,IAEFpY,GAAac,GAAGrB,KAAK4E,SAAUgT,IAAyBxY,IAEtDmB,GAAae,IAAItB,KAAK4E,SAAU+S,IAAqBsB,IAC/CjZ,KAAK4E,WAAaxF,EAAM7S,QAAUyT,KAAK4E,WAAaqU,EAAO1sB,SAGjC,WAA1ByT,KAAK6E,QAAQ+P,SAIb5U,KAAK6E,QAAQ+P,UACf5U,KAAK4P,OAJL5P,KAAKgZ,6BAKP,GACA,GAEN,CACA,UAAAH,GACE7Y,KAAK4E,SAAS7jB,MAAMgxB,QAAU,OAC9B/R,KAAK4E,SAASxjB,aAAa,eAAe,GAC1C4e,KAAK4E,SAASzjB,gBAAgB,cAC9B6e,KAAK4E,SAASzjB,gBAAgB,QAC9B6e,KAAKmP,kBAAmB,EACxBnP,KAAKsY,UAAU1I,MAAK,KAClBvqB,SAAS6G,KAAKmP,UAAU1B,OAAOoe,IAC/B/X,KAAKkZ,oBACLlZ,KAAK0Y,WAAWrmB,QAChBkO,GAAaqB,QAAQ5B,KAAK4E,SAAU2S,GAAe,GAEvD,CACA,WAAAvJ,GACE,OAAOhO,KAAK4E,SAASvJ,UAAU7W,SAjLT,OAkLxB,CACA,0BAAAw0B,GAEE,GADkBzY,GAAaqB,QAAQ5B,KAAK4E,SAAU0S,IACxCtV,iBACZ,OAEF,MAAMmX,EAAqBnZ,KAAK4E,SAASvX,aAAehI,SAASC,gBAAgBsC,aAC3EwxB,EAAmBpZ,KAAK4E,SAAS7jB,MAAMiL,UAEpB,WAArBotB,GAAiCpZ,KAAK4E,SAASvJ,UAAU7W,SAASyzB,MAGjEkB,IACHnZ,KAAK4E,SAAS7jB,MAAMiL,UAAY,UAElCgU,KAAK4E,SAASvJ,UAAU5E,IAAIwhB,IAC5BjY,KAAKmF,gBAAe,KAClBnF,KAAK4E,SAASvJ,UAAU1B,OAAOse,IAC/BjY,KAAKmF,gBAAe,KAClBnF,KAAK4E,SAAS7jB,MAAMiL,UAAYotB,CAAgB,GAC/CpZ,KAAKqY,QAAQ,GACfrY,KAAKqY,SACRrY,KAAK4E,SAAS6N,QAChB,CAMA,aAAAkG,GACE,MAAMQ,EAAqBnZ,KAAK4E,SAASvX,aAAehI,SAASC,gBAAgBsC,aAC3EkvB,EAAiB9W,KAAK0Y,WAAWtC,WACjCiD,EAAoBvC,EAAiB,EAC3C,GAAIuC,IAAsBF,EAAoB,CAC5C,MAAMr3B,EAAWma,KAAU,cAAgB,eAC3C+D,KAAK4E,SAAS7jB,MAAMe,GAAY,GAAGg1B,KACrC,CACA,IAAKuC,GAAqBF,EAAoB,CAC5C,MAAMr3B,EAAWma,KAAU,eAAiB,cAC5C+D,KAAK4E,SAAS7jB,MAAMe,GAAY,GAAGg1B,KACrC,CACF,CACA,iBAAAoC,GACElZ,KAAK4E,SAAS7jB,MAAMu4B,YAAc,GAClCtZ,KAAK4E,SAAS7jB,MAAMw4B,aAAe,EACrC,CAGA,sBAAO9c,CAAgBqH,EAAQhE,GAC7B,OAAOE,KAAKwH,MAAK,WACf,MAAMnd,EAAO+tB,GAAM9S,oBAAoBtF,KAAM8D,GAC7C,GAAsB,iBAAXA,EAAX,CAGA,QAA4B,IAAjBzZ,EAAKyZ,GACd,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,GAAQhE,EAJb,CAKF,GACF,EAOFS,GAAac,GAAGhc,SAAUyyB,GA9OK,4BA8O2C,SAAU1Y,GAClF,MAAM7S,EAASsZ,GAAec,uBAAuB3G,MACjD,CAAC,IAAK,QAAQoB,SAASpB,KAAKiH,UAC9B7H,EAAMkD,iBAER/B,GAAae,IAAI/U,EAAQirB,IAAcgC,IACjCA,EAAUxX,kBAIdzB,GAAae,IAAI/U,EAAQgrB,IAAgB,KACnC5c,GAAUqF,OACZA,KAAKyS,OACP,GACA,IAIJ,MAAMgH,EAAc5T,GAAeC,QAnQb,eAoQlB2T,GACFrB,GAAM/S,YAAYoU,GAAa7J,OAEpBwI,GAAM9S,oBAAoB/Y,GAClCob,OAAO3H,KACd,IACA6G,GAAqBuR,IAMrBjc,GAAmBic,IAcnB,MAEMsB,GAAc,gBACdC,GAAiB,YACjBC,GAAwB,OAAOF,KAAcC,KAE7CE,GAAoB,OACpBC,GAAuB,UACvBC,GAAoB,SAEpBC,GAAgB,kBAChBC,GAAe,OAAOP,KACtBQ,GAAgB,QAAQR,KACxBS,GAAe,OAAOT,KACtBU,GAAuB,gBAAgBV,KACvCW,GAAiB,SAASX,KAC1BY,GAAe,SAASZ,KACxBa,GAAyB,QAAQb,KAAcC,KAC/Ca,GAAwB,kBAAkBd,KAE1Ce,GAAY,CAChB7F,UAAU,EACV5J,UAAU,EACVvgB,QAAQ,GAEJiwB,GAAgB,CACpB9F,SAAU,mBACV5J,SAAU,UACVvgB,OAAQ,WAOV,MAAMkwB,WAAkBjW,GACtB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GACf9D,KAAK2P,UAAW,EAChB3P,KAAKsY,UAAYtY,KAAKuY,sBACtBvY,KAAKwY,WAAaxY,KAAKyY,uBACvBzY,KAAK6L,oBACP,CAGA,kBAAWnI,GACT,OAAO+W,EACT,CACA,sBAAW9W,GACT,OAAO+W,EACT,CACA,eAAWne,GACT,MApDW,WAqDb,CAGA,MAAAoL,CAAO7H,GACL,OAAOE,KAAK2P,SAAW3P,KAAK4P,OAAS5P,KAAK6P,KAAK/P,EACjD,CACA,IAAA+P,CAAK/P,GACCE,KAAK2P,UAGSpP,GAAaqB,QAAQ5B,KAAK4E,SAAUqV,GAAc,CAClEna,kBAEYkC,mBAGdhC,KAAK2P,UAAW,EAChB3P,KAAKsY,UAAUzI,OACV7P,KAAK6E,QAAQpa,SAChB,IAAI0rB,IAAkBvG,OAExB5P,KAAK4E,SAASxjB,aAAa,cAAc,GACzC4e,KAAK4E,SAASxjB,aAAa,OAAQ,UACnC4e,KAAK4E,SAASvJ,UAAU5E,IAAIqjB,IAW5B9Z,KAAKmF,gBAVoB,KAClBnF,KAAK6E,QAAQpa,SAAUuV,KAAK6E,QAAQ+P,UACvC5U,KAAKwY,WAAW9C,WAElB1V,KAAK4E,SAASvJ,UAAU5E,IAAIojB,IAC5B7Z,KAAK4E,SAASvJ,UAAU1B,OAAOmgB,IAC/BvZ,GAAaqB,QAAQ5B,KAAK4E,SAAUsV,GAAe,CACjDpa,iBACA,GAEkCE,KAAK4E,UAAU,GACvD,CACA,IAAAgL,GACO5P,KAAK2P,WAGQpP,GAAaqB,QAAQ5B,KAAK4E,SAAUuV,IACxCnY,mBAGdhC,KAAKwY,WAAW3C,aAChB7V,KAAK4E,SAASgW,OACd5a,KAAK2P,UAAW,EAChB3P,KAAK4E,SAASvJ,UAAU5E,IAAIsjB,IAC5B/Z,KAAKsY,UAAU1I,OAUf5P,KAAKmF,gBAToB,KACvBnF,KAAK4E,SAASvJ,UAAU1B,OAAOkgB,GAAmBE,IAClD/Z,KAAK4E,SAASzjB,gBAAgB,cAC9B6e,KAAK4E,SAASzjB,gBAAgB,QACzB6e,KAAK6E,QAAQpa,SAChB,IAAI0rB,IAAkB9jB,QAExBkO,GAAaqB,QAAQ5B,KAAK4E,SAAUyV,GAAe,GAEfra,KAAK4E,UAAU,IACvD,CACA,OAAAG,GACE/E,KAAKsY,UAAUvT,UACf/E,KAAKwY,WAAW3C,aAChBlR,MAAMI,SACR,CAGA,mBAAAwT,GACE,MASM5d,EAAYmG,QAAQd,KAAK6E,QAAQ+P,UACvC,OAAO,IAAIL,GAAS,CAClBJ,UA3HsB,qBA4HtBxZ,YACAyK,YAAY,EACZiP,YAAarU,KAAK4E,SAAS7f,WAC3BqvB,cAAezZ,EAfK,KACU,WAA1BqF,KAAK6E,QAAQ+P,SAIjB5U,KAAK4P,OAHHrP,GAAaqB,QAAQ5B,KAAK4E,SAAUwV,GAG3B,EAUgC,MAE/C,CACA,oBAAA3B,GACE,OAAO,IAAIlD,GAAU,CACnBF,YAAarV,KAAK4E,UAEtB,CACA,kBAAAiH,GACEtL,GAAac,GAAGrB,KAAK4E,SAAU4V,IAAuBpb,IA5IvC,WA6ITA,EAAMtiB,MAGNkjB,KAAK6E,QAAQmG,SACfhL,KAAK4P,OAGPrP,GAAaqB,QAAQ5B,KAAK4E,SAAUwV,IAAqB,GAE7D,CAGA,sBAAO3d,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOswB,GAAUrV,oBAAoBtF,KAAM8D,GACjD,GAAsB,iBAAXA,EAAX,CAGA,QAAqB/K,IAAjB1O,EAAKyZ,IAAyBA,EAAOrC,WAAW,MAAmB,gBAAXqC,EAC1D,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,GAAQ9D,KAJb,CAKF,GACF,EAOFO,GAAac,GAAGhc,SAAUk1B,GA7JK,gCA6J2C,SAAUnb,GAClF,MAAM7S,EAASsZ,GAAec,uBAAuB3G,MAIrD,GAHI,CAAC,IAAK,QAAQoB,SAASpB,KAAKiH,UAC9B7H,EAAMkD,iBAEJpH,GAAW8E,MACb,OAEFO,GAAae,IAAI/U,EAAQ8tB,IAAgB,KAEnC1f,GAAUqF,OACZA,KAAKyS,OACP,IAIF,MAAMgH,EAAc5T,GAAeC,QAAQkU,IACvCP,GAAeA,IAAgBltB,GACjCouB,GAAUtV,YAAYoU,GAAa7J,OAExB+K,GAAUrV,oBAAoB/Y,GACtCob,OAAO3H,KACd,IACAO,GAAac,GAAGzhB,OAAQg6B,IAAuB,KAC7C,IAAK,MAAM7f,KAAY8L,GAAe1T,KAAK6nB,IACzCW,GAAUrV,oBAAoBvL,GAAU8V,MAC1C,IAEFtP,GAAac,GAAGzhB,OAAQ06B,IAAc,KACpC,IAAK,MAAM/6B,KAAWsmB,GAAe1T,KAAK,gDACG,UAAvClN,iBAAiB1F,GAASiC,UAC5Bm5B,GAAUrV,oBAAoB/lB,GAASqwB,MAE3C,IAEF/I,GAAqB8T,IAMrBxe,GAAmBwe,IAUnB,MACME,GAAmB,CAEvB,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAHP,kBAI7BhqB,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/BiqB,KAAM,GACNhqB,EAAG,GACHiqB,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,GAAI,GACJC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJxqB,EAAG,GACH0b,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChD+O,GAAI,GACJC,GAAI,GACJC,EAAG,GACHC,IAAK,GACLC,EAAG,GACHC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACRC,EAAG,GACHC,GAAI,IAIAC,GAAgB,IAAIpmB,IAAI,CAAC,aAAc,OAAQ,OAAQ,WAAY,WAAY,SAAU,MAAO,eAShGqmB,GAAmB,0DACnBC,GAAmB,CAAC76B,EAAW86B,KACnC,MAAMC,EAAgB/6B,EAAUvC,SAASC,cACzC,OAAIo9B,EAAqBzb,SAAS0b,IAC5BJ,GAAc/lB,IAAImmB,IACbhc,QAAQ6b,GAAiBt5B,KAAKtB,EAAUg7B,YAM5CF,EAAqB12B,QAAO62B,GAAkBA,aAA0BzY,SAAQ9R,MAAKwqB,GAASA,EAAM55B,KAAKy5B,IAAe,EA0C3HI,GAAY,CAChBC,UAAWtC,GACXuC,QAAS,CAAC,EAEVC,WAAY,GACZxwB,MAAM,EACNywB,UAAU,EACVC,WAAY,KACZC,SAAU,eAENC,GAAgB,CACpBN,UAAW,SACXC,QAAS,SACTC,WAAY,oBACZxwB,KAAM,UACNywB,SAAU,UACVC,WAAY,kBACZC,SAAU,UAENE,GAAqB,CACzBC,MAAO,iCACP5jB,SAAU,oBAOZ,MAAM6jB,WAAwBna,GAC5B,WAAAU,CAAYL,GACVa,QACA3E,KAAK6E,QAAU7E,KAAK6D,WAAWC,EACjC,CAGA,kBAAWJ,GACT,OAAOwZ,EACT,CACA,sBAAWvZ,GACT,OAAO8Z,EACT,CACA,eAAWlhB,GACT,MA3CW,iBA4Cb,CAGA,UAAAshB,GACE,OAAO7gC,OAAOmiB,OAAOa,KAAK6E,QAAQuY,SAASt6B,KAAIghB,GAAU9D,KAAK8d,yBAAyBha,KAAS3d,OAAO2a,QACzG,CACA,UAAAid,GACE,OAAO/d,KAAK6d,aAAantB,OAAS,CACpC,CACA,aAAAstB,CAAcZ,GAMZ,OALApd,KAAKie,cAAcb,GACnBpd,KAAK6E,QAAQuY,QAAU,IAClBpd,KAAK6E,QAAQuY,WACbA,GAEEpd,IACT,CACA,MAAAke,GACE,MAAMC,EAAkB94B,SAASwvB,cAAc,OAC/CsJ,EAAgBC,UAAYpe,KAAKqe,eAAere,KAAK6E,QAAQ2Y,UAC7D,IAAK,MAAOzjB,EAAUukB,KAASthC,OAAOmkB,QAAQnB,KAAK6E,QAAQuY,SACzDpd,KAAKue,YAAYJ,EAAiBG,EAAMvkB,GAE1C,MAAMyjB,EAAWW,EAAgBpY,SAAS,GACpCsX,EAAard,KAAK8d,yBAAyB9d,KAAK6E,QAAQwY,YAI9D,OAHIA,GACFG,EAASniB,UAAU5E,OAAO4mB,EAAWn7B,MAAM,MAEtCs7B,CACT,CAGA,gBAAAvZ,CAAiBH,GACfa,MAAMV,iBAAiBH,GACvB9D,KAAKie,cAAcna,EAAOsZ,QAC5B,CACA,aAAAa,CAAcO,GACZ,IAAK,MAAOzkB,EAAUqjB,KAAYpgC,OAAOmkB,QAAQqd,GAC/C7Z,MAAMV,iBAAiB,CACrBlK,WACA4jB,MAAOP,GACNM,GAEP,CACA,WAAAa,CAAYf,EAAUJ,EAASrjB,GAC7B,MAAM0kB,EAAkB5Y,GAAeC,QAAQ/L,EAAUyjB,GACpDiB,KAGLrB,EAAUpd,KAAK8d,yBAAyBV,IAKpC,GAAUA,GACZpd,KAAK0e,sBAAsBhkB,GAAW0iB,GAAUqB,GAG9Cze,KAAK6E,QAAQhY,KACf4xB,EAAgBL,UAAYpe,KAAKqe,eAAejB,GAGlDqB,EAAgBE,YAAcvB,EAX5BqB,EAAgB9kB,SAYpB,CACA,cAAA0kB,CAAeG,GACb,OAAOxe,KAAK6E,QAAQyY,SApJxB,SAAsBsB,EAAYzB,EAAW0B,GAC3C,IAAKD,EAAWluB,OACd,OAAOkuB,EAET,GAAIC,GAAgD,mBAArBA,EAC7B,OAAOA,EAAiBD,GAE1B,MACME,GADY,IAAIl/B,OAAOm/B,WACKC,gBAAgBJ,EAAY,aACxD/9B,EAAW,GAAGlC,UAAUmgC,EAAgB5yB,KAAKkU,iBAAiB,MACpE,IAAK,MAAM7gB,KAAWsB,EAAU,CAC9B,MAAMo+B,EAAc1/B,EAAQC,SAASC,cACrC,IAAKzC,OAAO4D,KAAKu8B,GAAW/b,SAAS6d,GAAc,CACjD1/B,EAAQoa,SACR,QACF,CACA,MAAMulB,EAAgB,GAAGvgC,UAAUY,EAAQ0B,YACrCk+B,EAAoB,GAAGxgC,OAAOw+B,EAAU,MAAQ,GAAIA,EAAU8B,IAAgB,IACpF,IAAK,MAAMl9B,KAAam9B,EACjBtC,GAAiB76B,EAAWo9B,IAC/B5/B,EAAQ4B,gBAAgBY,EAAUvC,SAGxC,CACA,OAAOs/B,EAAgB5yB,KAAKkyB,SAC9B,CA2HmCgB,CAAaZ,EAAKxe,KAAK6E,QAAQsY,UAAWnd,KAAK6E,QAAQ0Y,YAAciB,CACtG,CACA,wBAAAV,CAAyBU,GACvB,OAAO3hB,GAAQ2hB,EAAK,CAACxe,MACvB,CACA,qBAAA0e,CAAsBn/B,EAASk/B,GAC7B,GAAIze,KAAK6E,QAAQhY,KAGf,OAFA4xB,EAAgBL,UAAY,QAC5BK,EAAgB3J,OAAOv1B,GAGzBk/B,EAAgBE,YAAcp/B,EAAQo/B,WACxC,EAeF,MACMU,GAAwB,IAAI/oB,IAAI,CAAC,WAAY,YAAa,eAC1DgpB,GAAoB,OAEpBC,GAAoB,OACpBC,GAAyB,iBACzBC,GAAiB,SACjBC,GAAmB,gBACnBC,GAAgB,QAChBC,GAAgB,QAahBC,GAAgB,CACpBC,KAAM,OACNC,IAAK,MACLC,MAAO/jB,KAAU,OAAS,QAC1BgkB,OAAQ,SACRC,KAAMjkB,KAAU,QAAU,QAEtBkkB,GAAY,CAChBhD,UAAWtC,GACXuF,WAAW,EACXnyB,SAAU,kBACVoyB,WAAW,EACXC,YAAa,GACbC,MAAO,EACPvwB,mBAAoB,CAAC,MAAO,QAAS,SAAU,QAC/CnD,MAAM,EACN7E,OAAQ,CAAC,EAAG,GACZtJ,UAAW,MACXszB,aAAc,KACdsL,UAAU,EACVC,WAAY,KACZxjB,UAAU,EACVyjB,SAAU,+GACVgD,MAAO,GACP5e,QAAS,eAEL6e,GAAgB,CACpBtD,UAAW,SACXiD,UAAW,UACXnyB,SAAU,mBACVoyB,UAAW,2BACXC,YAAa,oBACbC,MAAO,kBACPvwB,mBAAoB,QACpBnD,KAAM,UACN7E,OAAQ,0BACRtJ,UAAW,oBACXszB,aAAc,yBACdsL,SAAU,UACVC,WAAY,kBACZxjB,SAAU,mBACVyjB,SAAU,SACVgD,MAAO,4BACP5e,QAAS,UAOX,MAAM8e,WAAgBhc,GACpB,WAAAP,CAAY5kB,EAASukB,GACnB,QAAsB,IAAX,EACT,MAAM,IAAIU,UAAU,+DAEtBG,MAAMplB,EAASukB,GAGf9D,KAAK2gB,YAAa,EAClB3gB,KAAK4gB,SAAW,EAChB5gB,KAAK6gB,WAAa,KAClB7gB,KAAK8gB,eAAiB,CAAC,EACvB9gB,KAAKmS,QAAU,KACfnS,KAAK+gB,iBAAmB,KACxB/gB,KAAKghB,YAAc,KAGnBhhB,KAAKihB,IAAM,KACXjhB,KAAKkhB,gBACAlhB,KAAK6E,QAAQ9K,UAChBiG,KAAKmhB,WAET,CAGA,kBAAWzd,GACT,OAAOyc,EACT,CACA,sBAAWxc,GACT,OAAO8c,EACT,CACA,eAAWlkB,GACT,MAxGW,SAyGb,CAGA,MAAA6kB,GACEphB,KAAK2gB,YAAa,CACpB,CACA,OAAAU,GACErhB,KAAK2gB,YAAa,CACpB,CACA,aAAAW,GACEthB,KAAK2gB,YAAc3gB,KAAK2gB,UAC1B,CACA,MAAAhZ,GACO3H,KAAK2gB,aAGV3gB,KAAK8gB,eAAeS,OAASvhB,KAAK8gB,eAAeS,MAC7CvhB,KAAK2P,WACP3P,KAAKwhB,SAGPxhB,KAAKyhB,SACP,CACA,OAAA1c,GACEmI,aAAalN,KAAK4gB,UAClBrgB,GAAaC,IAAIR,KAAK4E,SAAS5J,QAAQykB,IAAiBC,GAAkB1f,KAAK0hB,mBAC3E1hB,KAAK4E,SAASpJ,aAAa,2BAC7BwE,KAAK4E,SAASxjB,aAAa,QAAS4e,KAAK4E,SAASpJ,aAAa,2BAEjEwE,KAAK2hB,iBACLhd,MAAMI,SACR,CACA,IAAA8K,GACE,GAAoC,SAAhC7P,KAAK4E,SAAS7jB,MAAMgxB,QACtB,MAAM,IAAInO,MAAM,uCAElB,IAAM5D,KAAK4hB,mBAAoB5hB,KAAK2gB,WAClC,OAEF,MAAMnH,EAAYjZ,GAAaqB,QAAQ5B,KAAK4E,SAAU5E,KAAKmE,YAAYqB,UAlItD,SAoIXqc,GADapmB,GAAeuE,KAAK4E,WACL5E,KAAK4E,SAAS9kB,cAAcwF,iBAAiBd,SAASwb,KAAK4E,UAC7F,GAAI4U,EAAUxX,mBAAqB6f,EACjC,OAIF7hB,KAAK2hB,iBACL,MAAMV,EAAMjhB,KAAK8hB,iBACjB9hB,KAAK4E,SAASxjB,aAAa,mBAAoB6/B,EAAIzlB,aAAa,OAChE,MAAM,UACJ6kB,GACErgB,KAAK6E,QAYT,GAXK7E,KAAK4E,SAAS9kB,cAAcwF,gBAAgBd,SAASwb,KAAKihB,OAC7DZ,EAAUvL,OAAOmM,GACjB1gB,GAAaqB,QAAQ5B,KAAK4E,SAAU5E,KAAKmE,YAAYqB,UAhJpC,cAkJnBxF,KAAKmS,QAAUnS,KAAKwS,cAAcyO,GAClCA,EAAI5lB,UAAU5E,IAAI8oB,IAMd,iBAAkBl6B,SAASC,gBAC7B,IAAK,MAAM/F,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAK6Z,UAC/CxF,GAAac,GAAG9hB,EAAS,YAAaqc,IAU1CoE,KAAKmF,gBAPY,KACf5E,GAAaqB,QAAQ5B,KAAK4E,SAAU5E,KAAKmE,YAAYqB,UAhKrC,WAiKQ,IAApBxF,KAAK6gB,YACP7gB,KAAKwhB,SAEPxhB,KAAK6gB,YAAa,CAAK,GAEK7gB,KAAKihB,IAAKjhB,KAAKgO,cAC/C,CACA,IAAA4B,GACE,GAAK5P,KAAK2P,aAGQpP,GAAaqB,QAAQ5B,KAAK4E,SAAU5E,KAAKmE,YAAYqB,UA/KtD,SAgLHxD,iBAAd,CAQA,GALYhC,KAAK8hB,iBACbzmB,UAAU1B,OAAO4lB,IAIjB,iBAAkBl6B,SAASC,gBAC7B,IAAK,MAAM/F,IAAW,GAAGZ,UAAU0G,SAAS6G,KAAK6Z,UAC/CxF,GAAaC,IAAIjhB,EAAS,YAAaqc,IAG3CoE,KAAK8gB,eAA4B,OAAI,EACrC9gB,KAAK8gB,eAAelB,KAAiB,EACrC5f,KAAK8gB,eAAenB,KAAiB,EACrC3f,KAAK6gB,WAAa,KAYlB7gB,KAAKmF,gBAVY,KACXnF,KAAK+hB,yBAGJ/hB,KAAK6gB,YACR7gB,KAAK2hB,iBAEP3hB,KAAK4E,SAASzjB,gBAAgB,oBAC9Bof,GAAaqB,QAAQ5B,KAAK4E,SAAU5E,KAAKmE,YAAYqB,UAzMpC,WAyM8D,GAEnDxF,KAAKihB,IAAKjhB,KAAKgO,cA1B7C,CA2BF,CACA,MAAAjjB,GACMiV,KAAKmS,SACPnS,KAAKmS,QAAQpnB,QAEjB,CAGA,cAAA62B,GACE,OAAO9gB,QAAQd,KAAKgiB,YACtB,CACA,cAAAF,GAIE,OAHK9hB,KAAKihB,MACRjhB,KAAKihB,IAAMjhB,KAAKiiB,kBAAkBjiB,KAAKghB,aAAehhB,KAAKkiB,2BAEtDliB,KAAKihB,GACd,CACA,iBAAAgB,CAAkB7E,GAChB,MAAM6D,EAAMjhB,KAAKmiB,oBAAoB/E,GAASc,SAG9C,IAAK+C,EACH,OAAO,KAETA,EAAI5lB,UAAU1B,OAAO2lB,GAAmBC,IAExC0B,EAAI5lB,UAAU5E,IAAI,MAAMuJ,KAAKmE,YAAY5H,aACzC,MAAM6lB,EAvuGKC,KACb,GACEA,GAAUlgC,KAAKmgC,MA/BH,IA+BSngC,KAAKogC,gBACnBl9B,SAASm9B,eAAeH,IACjC,OAAOA,CAAM,EAmuGGI,CAAOziB,KAAKmE,YAAY5H,MAAM1c,WAK5C,OAJAohC,EAAI7/B,aAAa,KAAMghC,GACnBpiB,KAAKgO,eACPiT,EAAI5lB,UAAU5E,IAAI6oB,IAEb2B,CACT,CACA,UAAAyB,CAAWtF,GACTpd,KAAKghB,YAAc5D,EACfpd,KAAK2P,aACP3P,KAAK2hB,iBACL3hB,KAAK6P,OAET,CACA,mBAAAsS,CAAoB/E,GAYlB,OAXIpd,KAAK+gB,iBACP/gB,KAAK+gB,iBAAiB/C,cAAcZ,GAEpCpd,KAAK+gB,iBAAmB,IAAInD,GAAgB,IACvC5d,KAAK6E,QAGRuY,UACAC,WAAYrd,KAAK8d,yBAAyB9d,KAAK6E,QAAQyb,eAGpDtgB,KAAK+gB,gBACd,CACA,sBAAAmB,GACE,MAAO,CACL,CAAC1C,IAAyBxf,KAAKgiB,YAEnC,CACA,SAAAA,GACE,OAAOhiB,KAAK8d,yBAAyB9d,KAAK6E,QAAQ2b,QAAUxgB,KAAK4E,SAASpJ,aAAa,yBACzF,CAGA,4BAAAmnB,CAA6BvjB,GAC3B,OAAOY,KAAKmE,YAAYmB,oBAAoBlG,EAAMW,eAAgBC,KAAK4iB,qBACzE,CACA,WAAA5U,GACE,OAAOhO,KAAK6E,QAAQub,WAAapgB,KAAKihB,KAAOjhB,KAAKihB,IAAI5lB,UAAU7W,SAAS86B,GAC3E,CACA,QAAA3P,GACE,OAAO3P,KAAKihB,KAAOjhB,KAAKihB,IAAI5lB,UAAU7W,SAAS+6B,GACjD,CACA,aAAA/M,CAAcyO,GACZ,MAAMviC,EAAYme,GAAQmD,KAAK6E,QAAQnmB,UAAW,CAACshB,KAAMihB,EAAKjhB,KAAK4E,WAC7Die,EAAahD,GAAcnhC,EAAU+lB,eAC3C,OAAO,GAAoBzE,KAAK4E,SAAUqc,EAAKjhB,KAAK4S,iBAAiBiQ,GACvE,CACA,UAAA7P,GACE,MAAM,OACJhrB,GACEgY,KAAK6E,QACT,MAAsB,iBAAX7c,EACFA,EAAO9F,MAAM,KAAKY,KAAInF,GAAS4f,OAAOgQ,SAAS5vB,EAAO,MAEzC,mBAAXqK,EACFirB,GAAcjrB,EAAOirB,EAAYjT,KAAK4E,UAExC5c,CACT,CACA,wBAAA81B,CAAyBU,GACvB,OAAO3hB,GAAQ2hB,EAAK,CAACxe,KAAK4E,UAC5B,CACA,gBAAAgO,CAAiBiQ,GACf,MAAM3P,EAAwB,CAC5Bx0B,UAAWmkC,EACXzsB,UAAW,CAAC,CACV9V,KAAM,OACNmB,QAAS,CACPuO,mBAAoBgQ,KAAK6E,QAAQ7U,qBAElC,CACD1P,KAAM,SACNmB,QAAS,CACPuG,OAAQgY,KAAKgT,eAEd,CACD1yB,KAAM,kBACNmB,QAAS,CACPwM,SAAU+R,KAAK6E,QAAQ5W,WAExB,CACD3N,KAAM,QACNmB,QAAS,CACPlC,QAAS,IAAIygB,KAAKmE,YAAY5H,eAE/B,CACDjc,KAAM,kBACNC,SAAS,EACTC,MAAO,aACPC,GAAI4J,IAGF2V,KAAK8hB,iBAAiB1gC,aAAa,wBAAyBiJ,EAAK1J,MAAMjC,UAAU,KAIvF,MAAO,IACFw0B,KACArW,GAAQmD,KAAK6E,QAAQmN,aAAc,CAACkB,IAE3C,CACA,aAAAgO,GACE,MAAM4B,EAAW9iB,KAAK6E,QAAQjD,QAAQ1f,MAAM,KAC5C,IAAK,MAAM0f,KAAWkhB,EACpB,GAAgB,UAAZlhB,EACFrB,GAAac,GAAGrB,KAAK4E,SAAU5E,KAAKmE,YAAYqB,UAjVlC,SAiV4DxF,KAAK6E,QAAQ9K,UAAUqF,IAC/EY,KAAK2iB,6BAA6BvjB,GAC1CuI,QAAQ,SAEb,GA3VU,WA2VN/F,EAA4B,CACrC,MAAMmhB,EAAUnhB,IAAY+d,GAAgB3f,KAAKmE,YAAYqB,UAnV5C,cAmV0ExF,KAAKmE,YAAYqB,UArV5F,WAsVVwd,EAAWphB,IAAY+d,GAAgB3f,KAAKmE,YAAYqB,UAnV7C,cAmV2ExF,KAAKmE,YAAYqB,UArV5F,YAsVjBjF,GAAac,GAAGrB,KAAK4E,SAAUme,EAAS/iB,KAAK6E,QAAQ9K,UAAUqF,IAC7D,MAAMkU,EAAUtT,KAAK2iB,6BAA6BvjB,GAClDkU,EAAQwN,eAA8B,YAAf1hB,EAAMqB,KAAqBmf,GAAgBD,KAAiB,EACnFrM,EAAQmO,QAAQ,IAElBlhB,GAAac,GAAGrB,KAAK4E,SAAUoe,EAAUhjB,KAAK6E,QAAQ9K,UAAUqF,IAC9D,MAAMkU,EAAUtT,KAAK2iB,6BAA6BvjB,GAClDkU,EAAQwN,eAA8B,aAAf1hB,EAAMqB,KAAsBmf,GAAgBD,IAAiBrM,EAAQ1O,SAASpgB,SAAS4a,EAAMU,eACpHwT,EAAQkO,QAAQ,GAEpB,CAEFxhB,KAAK0hB,kBAAoB,KACnB1hB,KAAK4E,UACP5E,KAAK4P,MACP,EAEFrP,GAAac,GAAGrB,KAAK4E,SAAS5J,QAAQykB,IAAiBC,GAAkB1f,KAAK0hB,kBAChF,CACA,SAAAP,GACE,MAAMX,EAAQxgB,KAAK4E,SAASpJ,aAAa,SACpCglB,IAGAxgB,KAAK4E,SAASpJ,aAAa,eAAkBwE,KAAK4E,SAAS+Z,YAAYhZ,QAC1E3F,KAAK4E,SAASxjB,aAAa,aAAco/B,GAE3CxgB,KAAK4E,SAASxjB,aAAa,yBAA0Bo/B,GACrDxgB,KAAK4E,SAASzjB,gBAAgB,SAChC,CACA,MAAAsgC,GACMzhB,KAAK2P,YAAc3P,KAAK6gB,WAC1B7gB,KAAK6gB,YAAa,GAGpB7gB,KAAK6gB,YAAa,EAClB7gB,KAAKijB,aAAY,KACXjjB,KAAK6gB,YACP7gB,KAAK6P,MACP,GACC7P,KAAK6E,QAAQ0b,MAAM1Q,MACxB,CACA,MAAA2R,GACMxhB,KAAK+hB,yBAGT/hB,KAAK6gB,YAAa,EAClB7gB,KAAKijB,aAAY,KACVjjB,KAAK6gB,YACR7gB,KAAK4P,MACP,GACC5P,KAAK6E,QAAQ0b,MAAM3Q,MACxB,CACA,WAAAqT,CAAYrlB,EAASslB,GACnBhW,aAAalN,KAAK4gB,UAClB5gB,KAAK4gB,SAAW/iB,WAAWD,EAASslB,EACtC,CACA,oBAAAnB,GACE,OAAO/kC,OAAOmiB,OAAOa,KAAK8gB,gBAAgB1f,UAAS,EACrD,CACA,UAAAyC,CAAWC,GACT,MAAMqf,EAAiBngB,GAAYG,kBAAkBnD,KAAK4E,UAC1D,IAAK,MAAMwe,KAAiBpmC,OAAO4D,KAAKuiC,GAClC9D,GAAsB1oB,IAAIysB,WACrBD,EAAeC,GAU1B,OAPAtf,EAAS,IACJqf,KACmB,iBAAXrf,GAAuBA,EAASA,EAAS,CAAC,GAEvDA,EAAS9D,KAAK+D,gBAAgBD,GAC9BA,EAAS9D,KAAKgE,kBAAkBF,GAChC9D,KAAKiE,iBAAiBH,GACfA,CACT,CACA,iBAAAE,CAAkBF,GAchB,OAbAA,EAAOuc,WAAiC,IAArBvc,EAAOuc,UAAsBh7B,SAAS6G,KAAOwO,GAAWoJ,EAAOuc,WACtD,iBAAjBvc,EAAOyc,QAChBzc,EAAOyc,MAAQ,CACb1Q,KAAM/L,EAAOyc,MACb3Q,KAAM9L,EAAOyc,QAGW,iBAAjBzc,EAAO0c,QAChB1c,EAAO0c,MAAQ1c,EAAO0c,MAAM3gC,YAEA,iBAAnBikB,EAAOsZ,UAChBtZ,EAAOsZ,QAAUtZ,EAAOsZ,QAAQv9B,YAE3BikB,CACT,CACA,kBAAA8e,GACE,MAAM9e,EAAS,CAAC,EAChB,IAAK,MAAOhnB,EAAKa,KAAUX,OAAOmkB,QAAQnB,KAAK6E,SACzC7E,KAAKmE,YAAYT,QAAQ5mB,KAASa,IACpCmmB,EAAOhnB,GAAOa,GASlB,OANAmmB,EAAO/J,UAAW,EAClB+J,EAAOlC,QAAU,SAKVkC,CACT,CACA,cAAA6d,GACM3hB,KAAKmS,UACPnS,KAAKmS,QAAQnZ,UACbgH,KAAKmS,QAAU,MAEbnS,KAAKihB,MACPjhB,KAAKihB,IAAItnB,SACTqG,KAAKihB,IAAM,KAEf,CAGA,sBAAOxkB,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOq2B,GAAQpb,oBAAoBtF,KAAM8D,GAC/C,GAAsB,iBAAXA,EAAX,CAGA,QAA4B,IAAjBzZ,EAAKyZ,GACd,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IAJL,CAKF,GACF,EAOF3H,GAAmBukB,IAcnB,MACM2C,GAAiB,kBACjBC,GAAmB,gBACnBC,GAAY,IACb7C,GAAQhd,QACX0Z,QAAS,GACTp1B,OAAQ,CAAC,EAAG,GACZtJ,UAAW,QACX8+B,SAAU,8IACV5b,QAAS,SAEL4hB,GAAgB,IACjB9C,GAAQ/c,YACXyZ,QAAS,kCAOX,MAAMqG,WAAgB/C,GAEpB,kBAAWhd,GACT,OAAO6f,EACT,CACA,sBAAW5f,GACT,OAAO6f,EACT,CACA,eAAWjnB,GACT,MA7BW,SA8Bb,CAGA,cAAAqlB,GACE,OAAO5hB,KAAKgiB,aAAehiB,KAAK0jB,aAClC,CAGA,sBAAAxB,GACE,MAAO,CACL,CAACmB,IAAiBrjB,KAAKgiB,YACvB,CAACsB,IAAmBtjB,KAAK0jB,cAE7B,CACA,WAAAA,GACE,OAAO1jB,KAAK8d,yBAAyB9d,KAAK6E,QAAQuY,QACpD,CAGA,sBAAO3gB,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOo5B,GAAQne,oBAAoBtF,KAAM8D,GAC/C,GAAsB,iBAAXA,EAAX,CAGA,QAA4B,IAAjBzZ,EAAKyZ,GACd,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IAJL,CAKF,GACF,EAOF3H,GAAmBsnB,IAcnB,MAEME,GAAc,gBAEdC,GAAiB,WAAWD,KAC5BE,GAAc,QAAQF,KACtBG,GAAwB,OAAOH,cAE/BI,GAAsB,SAEtBC,GAAwB,SAExBC,GAAqB,YAGrBC,GAAsB,GAAGD,mBAA+CA,uBAGxEE,GAAY,CAChBn8B,OAAQ,KAERo8B,WAAY,eACZC,cAAc,EACd93B,OAAQ,KACR+3B,UAAW,CAAC,GAAK,GAAK,IAElBC,GAAgB,CACpBv8B,OAAQ,gBAERo8B,WAAY,SACZC,aAAc,UACd93B,OAAQ,UACR+3B,UAAW,SAOb,MAAME,WAAkB9f,GACtB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GAGf9D,KAAKykB,aAAe,IAAIvzB,IACxB8O,KAAK0kB,oBAAsB,IAAIxzB,IAC/B8O,KAAK2kB,aAA6D,YAA9C1/B,iBAAiB+a,KAAK4E,UAAU5Y,UAA0B,KAAOgU,KAAK4E,SAC1F5E,KAAK4kB,cAAgB,KACrB5kB,KAAK6kB,UAAY,KACjB7kB,KAAK8kB,oBAAsB,CACzBC,gBAAiB,EACjBC,gBAAiB,GAEnBhlB,KAAKilB,SACP,CAGA,kBAAWvhB,GACT,OAAOygB,EACT,CACA,sBAAWxgB,GACT,OAAO4gB,EACT,CACA,eAAWhoB,GACT,MAhEW,WAiEb,CAGA,OAAA0oB,GACEjlB,KAAKklB,mCACLllB,KAAKmlB,2BACDnlB,KAAK6kB,UACP7kB,KAAK6kB,UAAUO,aAEfplB,KAAK6kB,UAAY7kB,KAAKqlB,kBAExB,IAAK,MAAMC,KAAWtlB,KAAK0kB,oBAAoBvlB,SAC7Ca,KAAK6kB,UAAUU,QAAQD,EAE3B,CACA,OAAAvgB,GACE/E,KAAK6kB,UAAUO,aACfzgB,MAAMI,SACR,CAGA,iBAAAf,CAAkBF,GAShB,OAPAA,EAAOvX,OAASmO,GAAWoJ,EAAOvX,SAAWlH,SAAS6G,KAGtD4X,EAAOsgB,WAAatgB,EAAO9b,OAAS,GAAG8b,EAAO9b,oBAAsB8b,EAAOsgB,WAC3C,iBAArBtgB,EAAOwgB,YAChBxgB,EAAOwgB,UAAYxgB,EAAOwgB,UAAUpiC,MAAM,KAAKY,KAAInF,GAAS4f,OAAOC,WAAW7f,MAEzEmmB,CACT,CACA,wBAAAqhB,GACOnlB,KAAK6E,QAAQwf,eAKlB9jB,GAAaC,IAAIR,KAAK6E,QAAQtY,OAAQs3B,IACtCtjB,GAAac,GAAGrB,KAAK6E,QAAQtY,OAAQs3B,GAAaG,IAAuB5kB,IACvE,MAAMomB,EAAoBxlB,KAAK0kB,oBAAoBvnC,IAAIiiB,EAAM7S,OAAOtB,MACpE,GAAIu6B,EAAmB,CACrBpmB,EAAMkD,iBACN,MAAM3G,EAAOqE,KAAK2kB,cAAgB/kC,OAC5BmE,EAASyhC,EAAkBnhC,UAAY2b,KAAK4E,SAASvgB,UAC3D,GAAIsX,EAAK8pB,SAKP,YAJA9pB,EAAK8pB,SAAS,CACZ9jC,IAAKoC,EACL2hC,SAAU,WAMd/pB,EAAKlQ,UAAY1H,CACnB,KAEJ,CACA,eAAAshC,GACE,MAAM5jC,EAAU,CACdka,KAAMqE,KAAK2kB,aACXL,UAAWtkB,KAAK6E,QAAQyf,UACxBF,WAAYpkB,KAAK6E,QAAQuf,YAE3B,OAAO,IAAIuB,sBAAqBxkB,GAAWnB,KAAK4lB,kBAAkBzkB,IAAU1f,EAC9E,CAGA,iBAAAmkC,CAAkBzkB,GAChB,MAAM0kB,EAAgBlI,GAAS3d,KAAKykB,aAAatnC,IAAI,IAAIwgC,EAAMpxB,OAAO4N,MAChEub,EAAWiI,IACf3d,KAAK8kB,oBAAoBC,gBAAkBpH,EAAMpxB,OAAOlI,UACxD2b,KAAK8lB,SAASD,EAAclI,GAAO,EAE/BqH,GAAmBhlB,KAAK2kB,cAAgBt/B,SAASC,iBAAiBmG,UAClEs6B,EAAkBf,GAAmBhlB,KAAK8kB,oBAAoBE,gBACpEhlB,KAAK8kB,oBAAoBE,gBAAkBA,EAC3C,IAAK,MAAMrH,KAASxc,EAAS,CAC3B,IAAKwc,EAAMqI,eAAgB,CACzBhmB,KAAK4kB,cAAgB,KACrB5kB,KAAKimB,kBAAkBJ,EAAclI,IACrC,QACF,CACA,MAAMuI,EAA2BvI,EAAMpxB,OAAOlI,WAAa2b,KAAK8kB,oBAAoBC,gBAEpF,GAAIgB,GAAmBG,GAGrB,GAFAxQ,EAASiI,IAEJqH,EACH,YAMCe,GAAoBG,GACvBxQ,EAASiI,EAEb,CACF,CACA,gCAAAuH,GACEllB,KAAKykB,aAAe,IAAIvzB,IACxB8O,KAAK0kB,oBAAsB,IAAIxzB,IAC/B,MAAMi1B,EAActgB,GAAe1T,KAAK6xB,GAAuBhkB,KAAK6E,QAAQtY,QAC5E,IAAK,MAAM65B,KAAUD,EAAa,CAEhC,IAAKC,EAAOn7B,MAAQiQ,GAAWkrB,GAC7B,SAEF,MAAMZ,EAAoB3f,GAAeC,QAAQugB,UAAUD,EAAOn7B,MAAO+U,KAAK4E,UAG1EjK,GAAU6qB,KACZxlB,KAAKykB,aAAa1yB,IAAIs0B,UAAUD,EAAOn7B,MAAOm7B,GAC9CpmB,KAAK0kB,oBAAoB3yB,IAAIq0B,EAAOn7B,KAAMu6B,GAE9C,CACF,CACA,QAAAM,CAASv5B,GACHyT,KAAK4kB,gBAAkBr4B,IAG3ByT,KAAKimB,kBAAkBjmB,KAAK6E,QAAQtY,QACpCyT,KAAK4kB,cAAgBr4B,EACrBA,EAAO8O,UAAU5E,IAAIstB,IACrB/jB,KAAKsmB,iBAAiB/5B,GACtBgU,GAAaqB,QAAQ5B,KAAK4E,SAAUgf,GAAgB,CAClD9jB,cAAevT,IAEnB,CACA,gBAAA+5B,CAAiB/5B,GAEf,GAAIA,EAAO8O,UAAU7W,SA9LQ,iBA+L3BqhB,GAAeC,QArLc,mBAqLsBvZ,EAAOyO,QAtLtC,cAsLkEK,UAAU5E,IAAIstB,SAGtG,IAAK,MAAMwC,KAAa1gB,GAAeI,QAAQ1Z,EA9LnB,qBAiM1B,IAAK,MAAMxJ,KAAQ8iB,GAAeM,KAAKogB,EAAWrC,IAChDnhC,EAAKsY,UAAU5E,IAAIstB,GAGzB,CACA,iBAAAkC,CAAkBxhC,GAChBA,EAAO4W,UAAU1B,OAAOoqB,IACxB,MAAMyC,EAAc3gB,GAAe1T,KAAK,GAAG6xB,MAAyBD,KAAuBt/B,GAC3F,IAAK,MAAM9E,KAAQ6mC,EACjB7mC,EAAK0b,UAAU1B,OAAOoqB,GAE1B,CAGA,sBAAOtnB,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAOm6B,GAAUlf,oBAAoBtF,KAAM8D,GACjD,GAAsB,iBAAXA,EAAX,CAGA,QAAqB/K,IAAjB1O,EAAKyZ,IAAyBA,EAAOrC,WAAW,MAAmB,gBAAXqC,EAC1D,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IAJL,CAKF,GACF,EAOFvD,GAAac,GAAGzhB,OAAQkkC,IAAuB,KAC7C,IAAK,MAAM2C,KAAO5gB,GAAe1T,KApOT,0BAqOtBqyB,GAAUlf,oBAAoBmhB,EAChC,IAOFtqB,GAAmBqoB,IAcnB,MAEMkC,GAAc,UACdC,GAAe,OAAOD,KACtBE,GAAiB,SAASF,KAC1BG,GAAe,OAAOH,KACtBI,GAAgB,QAAQJ,KACxBK,GAAuB,QAAQL,KAC/BM,GAAgB,UAAUN,KAC1BO,GAAsB,OAAOP,KAC7BQ,GAAiB,YACjBC,GAAkB,aAClBC,GAAe,UACfC,GAAiB,YACjBC,GAAW,OACXC,GAAU,MACVC,GAAoB,SACpBC,GAAoB,OACpBC,GAAoB,OAEpBC,GAA2B,mBAE3BC,GAA+B,QAAQD,MAIvCE,GAAuB,2EACvBC,GAAsB,YAFOF,uBAAiDA,mBAA6CA,OAE/EC,KAC5CE,GAA8B,IAAIP,8BAA6CA,+BAA8CA,4BAMnI,MAAMQ,WAAYtjB,GAChB,WAAAP,CAAY5kB,GACVolB,MAAMplB,GACNygB,KAAKoS,QAAUpS,KAAK4E,SAAS5J,QAdN,uCAelBgF,KAAKoS,UAOVpS,KAAKioB,sBAAsBjoB,KAAKoS,QAASpS,KAAKkoB,gBAC9C3nB,GAAac,GAAGrB,KAAK4E,SAAUoiB,IAAe5nB,GAASY,KAAK6M,SAASzN,KACvE,CAGA,eAAW7C,GACT,MAnDW,KAoDb,CAGA,IAAAsT,GAEE,MAAMsY,EAAYnoB,KAAK4E,SACvB,GAAI5E,KAAKooB,cAAcD,GACrB,OAIF,MAAME,EAASroB,KAAKsoB,iBACdC,EAAYF,EAAS9nB,GAAaqB,QAAQymB,EAAQ1B,GAAc,CACpE7mB,cAAeqoB,IACZ,KACa5nB,GAAaqB,QAAQumB,EAAWtB,GAAc,CAC9D/mB,cAAeuoB,IAEHrmB,kBAAoBumB,GAAaA,EAAUvmB,mBAGzDhC,KAAKwoB,YAAYH,EAAQF,GACzBnoB,KAAKyoB,UAAUN,EAAWE,GAC5B,CAGA,SAAAI,CAAUlpC,EAASmpC,GACZnpC,IAGLA,EAAQ8b,UAAU5E,IAAI+wB,IACtBxnB,KAAKyoB,UAAU5iB,GAAec,uBAAuBpnB,IAcrDygB,KAAKmF,gBAZY,KACsB,QAAjC5lB,EAAQic,aAAa,SAIzBjc,EAAQ4B,gBAAgB,YACxB5B,EAAQ6B,aAAa,iBAAiB,GACtC4e,KAAK2oB,gBAAgBppC,GAAS,GAC9BghB,GAAaqB,QAAQriB,EAASunC,GAAe,CAC3ChnB,cAAe4oB,KAPfnpC,EAAQ8b,UAAU5E,IAAIixB,GAQtB,GAE0BnoC,EAASA,EAAQ8b,UAAU7W,SAASijC,KACpE,CACA,WAAAe,CAAYjpC,EAASmpC,GACdnpC,IAGLA,EAAQ8b,UAAU1B,OAAO6tB,IACzBjoC,EAAQq7B,OACR5a,KAAKwoB,YAAY3iB,GAAec,uBAAuBpnB,IAcvDygB,KAAKmF,gBAZY,KACsB,QAAjC5lB,EAAQic,aAAa,SAIzBjc,EAAQ6B,aAAa,iBAAiB,GACtC7B,EAAQ6B,aAAa,WAAY,MACjC4e,KAAK2oB,gBAAgBppC,GAAS,GAC9BghB,GAAaqB,QAAQriB,EAASqnC,GAAgB,CAC5C9mB,cAAe4oB,KAPfnpC,EAAQ8b,UAAU1B,OAAO+tB,GAQzB,GAE0BnoC,EAASA,EAAQ8b,UAAU7W,SAASijC,KACpE,CACA,QAAA5a,CAASzN,GACP,IAAK,CAAC8nB,GAAgBC,GAAiBC,GAAcC,GAAgBC,GAAUC,IAASnmB,SAAShC,EAAMtiB,KACrG,OAEFsiB,EAAM0U,kBACN1U,EAAMkD,iBACN,MAAMyD,EAAW/F,KAAKkoB,eAAe/hC,QAAO5G,IAAY2b,GAAW3b,KACnE,IAAIqpC,EACJ,GAAI,CAACtB,GAAUC,IAASnmB,SAAShC,EAAMtiB,KACrC8rC,EAAoB7iB,EAAS3G,EAAMtiB,MAAQwqC,GAAW,EAAIvhB,EAASrV,OAAS,OACvE,CACL,MAAM8c,EAAS,CAAC2Z,GAAiBE,IAAgBjmB,SAAShC,EAAMtiB,KAChE8rC,EAAoB9qB,GAAqBiI,EAAU3G,EAAM7S,OAAQihB,GAAQ,EAC3E,CACIob,IACFA,EAAkBnW,MAAM,CACtBoW,eAAe,IAEjBb,GAAI1iB,oBAAoBsjB,GAAmB/Y,OAE/C,CACA,YAAAqY,GAEE,OAAOriB,GAAe1T,KAAK21B,GAAqB9nB,KAAKoS,QACvD,CACA,cAAAkW,GACE,OAAOtoB,KAAKkoB,eAAe/1B,MAAKzN,GAASsb,KAAKooB,cAAc1jC,MAAW,IACzE,CACA,qBAAAujC,CAAsBxjC,EAAQshB,GAC5B/F,KAAK8oB,yBAAyBrkC,EAAQ,OAAQ,WAC9C,IAAK,MAAMC,KAASqhB,EAClB/F,KAAK+oB,6BAA6BrkC,EAEtC,CACA,4BAAAqkC,CAA6BrkC,GAC3BA,EAAQsb,KAAKgpB,iBAAiBtkC,GAC9B,MAAMukC,EAAWjpB,KAAKooB,cAAc1jC,GAC9BwkC,EAAYlpB,KAAKmpB,iBAAiBzkC,GACxCA,EAAMtD,aAAa,gBAAiB6nC,GAChCC,IAAcxkC,GAChBsb,KAAK8oB,yBAAyBI,EAAW,OAAQ,gBAE9CD,GACHvkC,EAAMtD,aAAa,WAAY,MAEjC4e,KAAK8oB,yBAAyBpkC,EAAO,OAAQ,OAG7Csb,KAAKopB,mCAAmC1kC,EAC1C,CACA,kCAAA0kC,CAAmC1kC,GACjC,MAAM6H,EAASsZ,GAAec,uBAAuBjiB,GAChD6H,IAGLyT,KAAK8oB,yBAAyBv8B,EAAQ,OAAQ,YAC1C7H,EAAMyV,IACR6F,KAAK8oB,yBAAyBv8B,EAAQ,kBAAmB,GAAG7H,EAAMyV,MAEtE,CACA,eAAAwuB,CAAgBppC,EAAS8pC,GACvB,MAAMH,EAAYlpB,KAAKmpB,iBAAiB5pC,GACxC,IAAK2pC,EAAU7tB,UAAU7W,SApKN,YAqKjB,OAEF,MAAMmjB,EAAS,CAAC5N,EAAUoa,KACxB,MAAM50B,EAAUsmB,GAAeC,QAAQ/L,EAAUmvB,GAC7C3pC,GACFA,EAAQ8b,UAAUsM,OAAOwM,EAAWkV,EACtC,EAEF1hB,EAAOggB,GAA0BH,IACjC7f,EA5K2B,iBA4KI+f,IAC/BwB,EAAU9nC,aAAa,gBAAiBioC,EAC1C,CACA,wBAAAP,CAAyBvpC,EAASwC,EAAWpE,GACtC4B,EAAQgc,aAAaxZ,IACxBxC,EAAQ6B,aAAaW,EAAWpE,EAEpC,CACA,aAAAyqC,CAAc9Y,GACZ,OAAOA,EAAKjU,UAAU7W,SAASgjC,GACjC,CAGA,gBAAAwB,CAAiB1Z,GACf,OAAOA,EAAKtJ,QAAQ8hB,IAAuBxY,EAAOzJ,GAAeC,QAAQgiB,GAAqBxY,EAChG,CAGA,gBAAA6Z,CAAiB7Z,GACf,OAAOA,EAAKtU,QA5LO,gCA4LoBsU,CACzC,CAGA,sBAAO7S,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAO29B,GAAI1iB,oBAAoBtF,MACrC,GAAsB,iBAAX8D,EAAX,CAGA,QAAqB/K,IAAjB1O,EAAKyZ,IAAyBA,EAAOrC,WAAW,MAAmB,gBAAXqC,EAC1D,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,IAJL,CAKF,GACF,EAOFvD,GAAac,GAAGhc,SAAU0hC,GAAsBc,IAAsB,SAAUzoB,GAC1E,CAAC,IAAK,QAAQgC,SAASpB,KAAKiH,UAC9B7H,EAAMkD,iBAEJpH,GAAW8E,OAGfgoB,GAAI1iB,oBAAoBtF,MAAM6P,MAChC,IAKAtP,GAAac,GAAGzhB,OAAQqnC,IAAqB,KAC3C,IAAK,MAAM1nC,KAAWsmB,GAAe1T,KAAK41B,IACxCC,GAAI1iB,oBAAoB/lB,EAC1B,IAMF4c,GAAmB6rB,IAcnB,MAEMhjB,GAAY,YACZskB,GAAkB,YAAYtkB,KAC9BukB,GAAiB,WAAWvkB,KAC5BwkB,GAAgB,UAAUxkB,KAC1BykB,GAAiB,WAAWzkB,KAC5B0kB,GAAa,OAAO1kB,KACpB2kB,GAAe,SAAS3kB,KACxB4kB,GAAa,OAAO5kB,KACpB6kB,GAAc,QAAQ7kB,KAEtB8kB,GAAkB,OAClBC,GAAkB,OAClBC,GAAqB,UACrBrmB,GAAc,CAClByc,UAAW,UACX6J,SAAU,UACV1J,MAAO,UAEH7c,GAAU,CACd0c,WAAW,EACX6J,UAAU,EACV1J,MAAO,KAOT,MAAM2J,WAAcxlB,GAClB,WAAAP,CAAY5kB,EAASukB,GACnBa,MAAMplB,EAASukB,GACf9D,KAAK4gB,SAAW,KAChB5gB,KAAKmqB,sBAAuB,EAC5BnqB,KAAKoqB,yBAA0B,EAC/BpqB,KAAKkhB,eACP,CAGA,kBAAWxd,GACT,OAAOA,EACT,CACA,sBAAWC,GACT,OAAOA,EACT,CACA,eAAWpH,GACT,MA/CS,OAgDX,CAGA,IAAAsT,GACoBtP,GAAaqB,QAAQ5B,KAAK4E,SAAUglB,IACxC5nB,mBAGdhC,KAAKqqB,gBACDrqB,KAAK6E,QAAQub,WACfpgB,KAAK4E,SAASvJ,UAAU5E,IA/CN,QAsDpBuJ,KAAK4E,SAASvJ,UAAU1B,OAAOmwB,IAC/BjuB,GAAOmE,KAAK4E,UACZ5E,KAAK4E,SAASvJ,UAAU5E,IAAIszB,GAAiBC,IAC7ChqB,KAAKmF,gBARY,KACfnF,KAAK4E,SAASvJ,UAAU1B,OAAOqwB,IAC/BzpB,GAAaqB,QAAQ5B,KAAK4E,SAAUilB,IACpC7pB,KAAKsqB,oBAAoB,GAKGtqB,KAAK4E,SAAU5E,KAAK6E,QAAQub,WAC5D,CACA,IAAAxQ,GACO5P,KAAKuqB,YAGQhqB,GAAaqB,QAAQ5B,KAAK4E,SAAU8kB,IACxC1nB,mBAQdhC,KAAK4E,SAASvJ,UAAU5E,IAAIuzB,IAC5BhqB,KAAKmF,gBANY,KACfnF,KAAK4E,SAASvJ,UAAU5E,IAAIqzB,IAC5B9pB,KAAK4E,SAASvJ,UAAU1B,OAAOqwB,GAAoBD,IACnDxpB,GAAaqB,QAAQ5B,KAAK4E,SAAU+kB,GAAa,GAGrB3pB,KAAK4E,SAAU5E,KAAK6E,QAAQub,YAC5D,CACA,OAAArb,GACE/E,KAAKqqB,gBACDrqB,KAAKuqB,WACPvqB,KAAK4E,SAASvJ,UAAU1B,OAAOowB,IAEjCplB,MAAMI,SACR,CACA,OAAAwlB,GACE,OAAOvqB,KAAK4E,SAASvJ,UAAU7W,SAASulC,GAC1C,CAIA,kBAAAO,GACOtqB,KAAK6E,QAAQolB,WAGdjqB,KAAKmqB,sBAAwBnqB,KAAKoqB,0BAGtCpqB,KAAK4gB,SAAW/iB,YAAW,KACzBmC,KAAK4P,MAAM,GACV5P,KAAK6E,QAAQ0b,QAClB,CACA,cAAAiK,CAAeprB,EAAOqrB,GACpB,OAAQrrB,EAAMqB,MACZ,IAAK,YACL,IAAK,WAEDT,KAAKmqB,qBAAuBM,EAC5B,MAEJ,IAAK,UACL,IAAK,WAEDzqB,KAAKoqB,wBAA0BK,EAIrC,GAAIA,EAEF,YADAzqB,KAAKqqB,gBAGP,MAAM5c,EAAcrO,EAAMU,cACtBE,KAAK4E,WAAa6I,GAAezN,KAAK4E,SAASpgB,SAASipB,IAG5DzN,KAAKsqB,oBACP,CACA,aAAApJ,GACE3gB,GAAac,GAAGrB,KAAK4E,SAAU0kB,IAAiBlqB,GAASY,KAAKwqB,eAAeprB,GAAO,KACpFmB,GAAac,GAAGrB,KAAK4E,SAAU2kB,IAAgBnqB,GAASY,KAAKwqB,eAAeprB,GAAO,KACnFmB,GAAac,GAAGrB,KAAK4E,SAAU4kB,IAAepqB,GAASY,KAAKwqB,eAAeprB,GAAO,KAClFmB,GAAac,GAAGrB,KAAK4E,SAAU6kB,IAAgBrqB,GAASY,KAAKwqB,eAAeprB,GAAO,IACrF,CACA,aAAAirB,GACEnd,aAAalN,KAAK4gB,UAClB5gB,KAAK4gB,SAAW,IAClB,CAGA,sBAAOnkB,CAAgBqH,GACrB,OAAO9D,KAAKwH,MAAK,WACf,MAAMnd,EAAO6/B,GAAM5kB,oBAAoBtF,KAAM8D,GAC7C,GAAsB,iBAAXA,EAAqB,CAC9B,QAA4B,IAAjBzZ,EAAKyZ,GACd,MAAM,IAAIU,UAAU,oBAAoBV,MAE1CzZ,EAAKyZ,GAAQ9D,KACf,CACF,GACF,ECr0IK,SAAS0qB,GAAcruB,GACD,WAAvBhX,SAASuX,WAAyBP,IACjChX,SAASyF,iBAAiB,mBAAoBuR,EACrD,CDy0IAwK,GAAqBqjB,IAMrB/tB,GAAmB+tB,IEpyInBQ,IAzCA,WAC2B,GAAGt4B,MAAM5U,KAChC6H,SAAS+a,iBAAiB,+BAETtd,KAAI,SAAU6nC,GAC/B,OAAO,IAAI,GAAkBA,EAAkB,CAC7CpK,MAAO,CAAE1Q,KAAM,IAAKD,KAAM,MAE9B,GACF,IAiCA8a,IA5BA,WACYrlC,SAASm9B,eAAe,mBAC9B13B,iBAAiB,SAAS,WAC5BzF,SAAS6G,KAAKT,UAAY,EAC1BpG,SAASC,gBAAgBmG,UAAY,CACvC,GACF,IAuBAi/B,IArBA,WACE,IAAIE,EAAMvlC,SAASm9B,eAAe,mBAC9BqI,EAASxlC,SACVylC,uBAAuB,aAAa,GACpCxnC,wBACH1D,OAAOkL,iBAAiB,UAAU,WAC5BkV,KAAK+qB,UAAY/qB,KAAKgrB,SAAWhrB,KAAKgrB,QAAUH,EAAOjtC,OACzDgtC,EAAI7pC,MAAMgxB,QAAU,QAEpB6Y,EAAI7pC,MAAMgxB,QAAU,OAEtB/R,KAAK+qB,UAAY/qB,KAAKgrB,OACxB,GACF,IAUAprC,OAAOqrC,UAAY","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n};\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n};\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n};\nconst noop = () => {};\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n};\nconst DOMContentLoadedCallbacks = [];\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3';\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close');\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n// js-docs-end allow-list\n\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both
diff --git a/docs/build/html/functions_vars_b.html b/docs/build/html/functions_vars_b.html index 2c38d83b1..ac1e40cdc 100644 --- a/docs/build/html/functions_vars_b.html +++ b/docs/build/html/functions_vars_b.html @@ -113,7 +113,8 @@ $(function(){ initResizable(false); });
  • Bs_offset : mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >
  • Bsimd : mlx::steel::BlockMMA< T, U, BM, BN, BK, WM, WN, transpose_a, transpose_b, lda_tgp, ldb_tgp, AccumType, Epilogue >
  • buf : ReadWriter< in_T, out_T, step, four_step_real >
  • -
  • buffer : mlx::core::array::Data
  • +
  • buffer : mlx::core::array::Data, mlx::core::metal::DeviceStream
  • +
  • buffer_ops : mlx::core::metal::DeviceStream
  • buffers : Indices< IdxT, NIDX >
  • diff --git a/docs/build/html/functions_vars_e.html b/docs/build/html/functions_vars_e.html index 5ce9718d2..88b15d28f 100644 --- a/docs/build/html/functions_vars_e.html +++ b/docs/build/html/functions_vars_e.html @@ -89,6 +89,7 @@ $(function(){ initResizable(false); });

    - e -

    diff --git a/docs/build/html/functions_vars_f.html b/docs/build/html/functions_vars_f.html index 9abf20938..308d87baf 100644 --- a/docs/build/html/functions_vars_f.html +++ b/docs/build/html/functions_vars_f.html @@ -93,6 +93,8 @@ $(function(){ initResizable(false); });
  • f_wgt_jump_h : mlx::steel::Conv2DGeneralJumpParams
  • f_wgt_jump_w : mlx::steel::Conv2DGeneralJumpParams
  • fdc : mlx::steel::GEMMAddMMParams
  • +
  • fence : mlx::core::metal::DeviceStream, mlx::core::metal::Fence
  • +
  • fence_mtx : mlx::core::metal::DeviceStream
  • finite_max : Limits< U >, Limits< bfloat16_t >, Limits< float >, Limits< half >, Limits< int16_t >, Limits< int32_t >, Limits< int64_t >, Limits< int8_t >, Limits< uint16_t >, Limits< uint32_t >, Limits< uint64_t >, Limits< uint8_t >
  • finite_min : Limits< U >, Limits< bfloat16_t >, Limits< float >, Limits< half >, Limits< int16_t >, Limits< int32_t >, Limits< int64_t >, Limits< int8_t >, Limits< uint16_t >, Limits< uint32_t >, Limits< uint64_t >, Limits< uint8_t >
  • flip : MLXConvParams< NDIM >
  • diff --git a/docs/build/html/functions_vars_i.html b/docs/build/html/functions_vars_i.html index d56761e94..919b61876 100644 --- a/docs/build/html/functions_vars_i.html +++ b/docs/build/html/functions_vars_i.html @@ -93,7 +93,7 @@ $(function(){ initResizable(false); });
  • in : ReadWriter< in_T, out_T, step, four_step_real >
  • in_strides : MLXConvParams< NDIM >
  • index : looped_elem_to_loc< dim, offset_t >, mlx::core::Device, mlx::core::Stream
  • -
  • init : CumMax< U >, CumMin< U >, CumProd< U >, CumProd< bool >, CumSum< U >, LessThan< T >
  • +
  • init : CumMax< U >, CumMin< U >, CumProd< bool >, LessThan< T >
  • inner_looper : looped_elem_to_loc< dim, offset_t >
  • inp_jump_c : mlx::steel::ImplicitGemmConv2DParams
  • inp_jump_h : mlx::steel::ImplicitGemmConv2DParams
  • diff --git a/docs/build/html/functions_vars_o.html b/docs/build/html/functions_vars_o.html index 7cdcd887d..ad9ea0ff5 100644 --- a/docs/build/html/functions_vars_o.html +++ b/docs/build/html/functions_vars_o.html @@ -94,6 +94,7 @@ $(function(){ initResizable(false); });
  • oS : MLXConvParams< NDIM >
  • out : ReadWriter< in_T, out_T, step, four_step_real >
  • out_strides : MLXConvParams< NDIM >
  • +
  • outputs : mlx::core::metal::DeviceStream
  • diff --git a/docs/build/html/functions_vars_q.html b/docs/build/html/functions_vars_q.html index 810c2c950..a996ba9d3 100644 --- a/docs/build/html/functions_vars_q.html +++ b/docs/build/html/functions_vars_q.html @@ -89,6 +89,7 @@ $(function(){ initResizable(false); });

    - q -

    diff --git a/docs/build/html/functions_vars_t.html b/docs/build/html/functions_vars_t.html index 8fe03a9bf..5d151eede 100644 --- a/docs/build/html/functions_vars_t.html +++ b/docs/build/html/functions_vars_t.html @@ -88,6 +88,7 @@ $(function(){ initResizable(false); });

    - t -

  • Metal
  • Metal
      @@ -495,6 +486,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -825,24 +817,16 @@ - + - + @@ -1026,8 +1010,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/install.html b/docs/build/html/install.html index cb2dbb9bf..46223ce0b 100644 --- a/docs/build/html/install.html +++ b/docs/build/html/install.html @@ -8,7 +8,7 @@ - Build and Install — MLX 0.19.0 documentation + Build and Install — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1103,7 +1087,7 @@ Metal kernel cache persists accross reboots.

      x86 Shell#

      -

      If the ouptut of uname -p is x86 then your shell is running as x86 via +

      If the output of uname -p is x86 then your shell is running as x86 via Rosetta instead of natively.

      To fix this, find the application in Finder (/Applications for iTerm, /Applications/Utilities for Terminal), right-click, and click “Get Info”. @@ -1121,7 +1105,7 @@ CMAKE_HOST_SYSTEM_PROCESSOR "arm64&

      If you see "x86_64", try re-installing cmake. If you see "arm64" but the build errors out with “Building for x86_64 on macOS is not supported.” -wipe your build cahce with rm -rf build/ and try again.

      +wipe your build cache with rm -rf build/ and try again.

      @@ -1163,7 +1147,8 @@ wipe your build cahce with
    diff --git a/docs/build/html/namespacemembers_s.html b/docs/build/html/namespacemembers_s.html index eea0ee00b..8af8b7db0 100644 --- a/docs/build/html/namespacemembers_s.html +++ b/docs/build/html/namespacemembers_s.html @@ -107,6 +107,7 @@ $(function(){ initResizable(false); });
  • set_default_stream() : mlx::core
  • set_memory_limit() : mlx::core::metal
  • set_vector_bytes() : mlx::core
  • +
  • set_wired_limit() : mlx::core::metal
  • shape_t : pocketfft::detail
  • shapes_without_reduction_axes() : mlx::core
  • shared_buffer_slice() : mlx::core
  • diff --git a/docs/build/html/namespacemlx_1_1core.html b/docs/build/html/namespacemlx_1_1core.html index 4b6fa6210..cef5d8c69 100644 --- a/docs/build/html/namespacemlx_1_1core.html +++ b/docs/build/html/namespacemlx_1_1core.html @@ -208,6 +208,8 @@ Classes   struct  Dtype   +class  Eigh +  class  Equal   class  Erf @@ -593,6 +595,8 @@ Functions   MTL::Size get_2d_grid_dims (const std::vector< int > &shape, const std::vector< size_t > &strides)   +MTL::Size get_2d_grid_dims (const std::vector< int > &shape, const std::vector< size_t > &strides, size_t divisor) +  NS::String * make_string (std::ostringstream &os)   void debug_set_stream_queue_label (MTL::CommandQueue *queue, int index) @@ -1396,9 +1400,9 @@ Functions array conv_transpose3d (const array &input, const array &weight, const std::tuple< int, int, int > &stride={1, 1, 1}, const std::tuple< int, int, int > &padding={0, 0, 0}, const std::tuple< int, int, int > &dilation={1, 1, 1}, int groups=1, StreamOrDevice s={})  3D transposed convolution with a filter
      -array quantized_matmul (const array &x, const array &w, const array &scales, const array &biases, bool transpose=true, int group_size=64, int bits=4, StreamOrDevice s={}) - Quantized matmul multiplies x with a quantized matrix w.
    -  +array quantized_matmul (array x, array w, array scales, array biases, bool transpose=true, int group_size=64, int bits=4, StreamOrDevice s={}) + Quantized matmul multiplies x with a quantized matrix w.
    +  std::tuple< array, array, arrayquantize (const array &w, int group_size=64, int bits=4, StreamOrDevice s={})  Quantize a matrix along its last axis.
      @@ -4012,7 +4016,7 @@ template<typename... Arrays, typename = enable_for_arrays_t<Arrays...> -

    ◆ get_2d_grid_dims()

    +

    ◆ get_2d_grid_dims() [1/2]

    @@ -4030,6 +4034,32 @@ template<typename... Arrays, typename = enable_for_arrays_t<Arrays...>
    +
    +
    + +

    ◆ get_2d_grid_dims() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + +
    MTL::Size mlx::core::get_2d_grid_dims (const std::vector< int > & shape,
    const std::vector< size_t > & strides,
    size_t divisor )
    +
    +
    diff --git a/docs/build/html/namespacemlx_1_1core_1_1linalg.html b/docs/build/html/namespacemlx_1_1core_1_1linalg.html index 2296100f1..34ff702e9 100644 --- a/docs/build/html/namespacemlx_1_1core_1_1linalg.html +++ b/docs/build/html/namespacemlx_1_1core_1_1linalg.html @@ -126,6 +126,10 @@ Functions array cross (const array &a, const array &b, int axis=-1, StreamOrDevice s={})  Compute the cross product of two arrays along the given axis.
      +array eigvalsh (const array &a, std::string UPLO="L", StreamOrDevice s={}) +  +std::pair< array, arrayeigh (const array &a, std::string UPLO="L", StreamOrDevice s={}) + 

    Function Documentation

    @@ -211,6 +215,58 @@ Functions

    Compute the cross product of two arrays along the given axis.

    + + + +

    ◆ eigh()

    + +
    +
    + + + + + + + + + + + + + + + + +
    std::pair< array, array > mlx::core::linalg::eigh (const array & a,
    std::string UPLO = "L",
    StreamOrDevice s = {} )
    +
    + +
    +
    + +

    ◆ eigvalsh()

    + +
    +
    + + + + + + + + + + + + + + + + +
    array mlx::core::linalg::eigvalsh (const array & a,
    std::string UPLO = "L",
    StreamOrDevice s = {} )
    +
    +
    diff --git a/docs/build/html/namespacemlx_1_1core_1_1metal.html b/docs/build/html/namespacemlx_1_1core_1_1metal.html index da8366f72..c588ef446 100644 --- a/docs/build/html/namespacemlx_1_1core_1_1metal.html +++ b/docs/build/html/namespacemlx_1_1core_1_1metal.html @@ -102,8 +102,14 @@ Classes   class  Device   +struct  DeviceStream +  +struct  Fence +  class  MetalAllocator   +class  ResidencySet +  @@ -190,6 +196,8 @@ Functions + + @@ -789,6 +797,23 @@ Functions

    Typedefs

     
    void clear_cache ()
     
    size_t set_wired_limit (size_t limit)
     
    void start_capture (std::string path="")
     Capture a GPU trace, saving it to an absolute file path
     
    +
    + + +

    ◆ set_wired_limit()

    + +
    +
    + + + + + + + +
    size_t mlx::core::metal::set_wired_limit (size_t limit)
    +
    +
    diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 58e5192b0d96561bca3f45e32293c1bf73d75411..486b6bc1b02ed2b85bb8f66b95587d55f5fca45c 100644 GIT binary patch delta 17037 zcmV)uK$gG3&jE(e0gyZaF|j=~6o1;|cmIE8MX6skQ-t=q0DtoZ+3AgOejUDG^%ZC9 zFZuGDnw4r>sV`{#k6(`Z)1#zcMI-i0~{OUTwJxcmQA3mD=~qv>b|{` zX%>kBVP%u_7Gwc(lUWy^0_*FO`WGYtM3WyFrU6Qm#u$(Rp_5k`_6jm{cq3zLhl$^0 zvsW6a2!B=<&o2{Dwb&r&D_g6Hz^!OM_%tIA+LoGPUWoOBeyArveyIBa)vK6*2&sO^ zrYr zXDJh;d}i94k^m1fM!1g?_GX=>OpsMWPk+NtLI%L9r0w$3<$GYryE#rmCcqtWQneK@ z0BvbW%GQ{pOuEct=q8VC^^sP+R=@;A+_BlSU30r@F2A%&0lbnlKu=jmA6Pp-J`yW> z?0qY1fUlV-SV^+LLBt4FifZ$1ChM}=t=9z&^;)(cp6_q(Dmcw6bfx<#o_Cu}PJcn) z3-$xQm!Bt~LaHBf&9-aeB*(R6KXf}9y|TK1&Du>2lPqpP>8G5`G6uYr^=8*Fs#EJq z_fzQqDavL7{6VrGT1nc0xeKuY(Bp|)Dr(Q6+r#6g-nEB%#PlX}3(-%uD+}uC-nFC& zS`w9(W(}`S$lHSroQ|*MhUxFm*MBs`gOCvrnHsGPv=T z%miA|7W;L1Bg~FAm)LiM!0GM)YoMOP>59=}cwN2+X7&8M%c)qcP#>UTx!iw4R*`Wp zWP9NMpkn^f2h?u2MT=B4PkSqCf|vSG%hY2rUFi`DdJ5K+Hc=GMn~FB8d4CWwgOx<2 z(g;ID=>d5mqL>y1Rh2iyIqidp5sc;;dhR?VkMMm%JJnP5IjYnB8TLRucV}GOnnA$o zxiLdEjK3#AX#pb;t%DdZ+-N7x^!BSl(xS;LK_f8PGxU0cU8cV(NmK72V}zrrWt`5s zyi>#)ssBC^^||CPbyX5``F{&B18Bo&b4I#+56r{~j2lrScu4~+%^)vC6q8pyeSMyU zbrdoI63^l^<`X#W2hk}oC~tzPiK%-lUcD%dC8pV8X&+G4`<$e@5fovEJ1%KrYF#9jo5O7)n z1JM2>CIp~Xpbv;Vb$^z+hAhi(|N2w$?}g!Pa%sRi7Vm<*KL1)(>;07&mOw|5J}{3C z=5@jToi+UBm%|i`9oR{v1NOHce)=za99_B#ak_iO62x%x%Hd~^2;-Syd?Ji*hIw~= zFN!_hyS__NZl8Nofq%UbV1FvG!4%)u)wbF-_J9Y0J|Ie^Pa=I_J{`GLBA!36Ld1>iRWfWCf#=A}*|9kBmkwRrnd7v+0*v09N1*gr~Su_c!@vt3GcAb)!M?tf={C|$Y>q0jo#R62=t z!6bYC`8P>vo+ptmSW(J-m}iO9mhZw;&u`CDX_inY86(_z=E)w;H1&i>KeJENK;$IS z2jdrrw;hr&bf;FA(~e z_)D=CwfRo^VSk3BWFPYJz6Kg<_tu8p>}&a6mb&lC-4XP)aoWc5chFWE-#Lz#+xCEmxe)nEIQc>NOy&a!>z z?TXZ7+h0oeGU#=fzOTfLz#m0>v75sMnB6P8N06J&C4ZRbhfU3j32vno8^mlcz`5sr znotHA58*V`JV)6+>|Ht4*Bm8#k+H@~p0GKRh*{ybpXerrmP-^vd=-Cp;hk|oedrVCe)G%8FQQ4^59?Bi`w z?i3!d^{h?}7stM1YR+?aaLi~aPW8P+_J*xu#Jt9D|rXPv&MFI`ERai7;!T{VMSiHE?i z#D51F26qx$P#E_UAIrSR$u)S9gWBWqWX;dAX6)fBj)suU7abj+PBq1l9VQ#0&jRhG zlj_^{ym7nnU)?NUKH0BdUM_zQ5zz2&;m6Q_q{07qi~r*&0S*5aegxgLEb~NNm+3C? zj8R@kEl;$yo7*LzF|r%){6t*c=`0fs@qZZ>N1lkQBb{ZIK|aI6#}jqsqq~SQMtPeq zJW*Fix(h8slt0s6;Lo@3?&q=B_ABv~{n~k5zmC2tB1MP6iXb8~L>-D~kmD`Q-Mzha zcW=ks-E|`VWS@y&Ci24s)b3*HD>fa4-b+kf#HN3AvhF8R+I^F|k1<`R?-|#vd{l7rw@h*h{J4Wh#ehXuQI=<38~*j z206sj*j1!U)ZA97F;yvJN_G~qpZZp^uNS^=v5>k_)Je+je5Zl&wOa4m zx%=Cld{30EeAl}H$7nn%jn}2|#(!yiDvjTz@ds(n-w^BHGx#)V(_qg|#0k21lXdY1 zbnzzX;!oDaAJE0{j>KUXVrTo}6KVhA%_hhZ7LuiJHaB*5Nse&&6S#aMm%)1Sv{+_X za(g1~ZR~84yk%SOm(OmO-<~KNx~}(x-7@SaDvCe$7X}!%P(Km(PXBs&7qJd!l{s} zVLDtx-@XmI<+)71SN{aZsU6d{i^#+@EL z+edEsYsq(Ytq%ZS?W%vW-d2CHC%+&2dZ+i3{Z{YGo#OrQS36Lithb|eRXZY~yq zhc+QSP2Gjmzrkrp72|^T6M043usnXtx;w60cbB}MXlvfLOXp`MJ%10pswb{DpQXEN zG1c=*+3r~}AfLs}(6(DjdZ2qYn5-+MBr^7*)S~V6_i&~SqTtWdsCwc0sJZ?kghbsp z#hTSc^Le#C+}%Hs+zi-DKU0;h>iW!fN)@bJmFxAr)$CyPk-lIAkoU5kL3(L+nXK=o zIf3-iykF}tCEd$&fq&9Rw07?$IUw{Bpj+yXk>5>oiPJ|0gy*7M!S}w$o4l9OfYwW_ z?rwWWh(3xLI@4GmQk$x3VBx#l#5GVKT~ikrw3>U#E@3)Un~8gDHm2=0+o=QU);N|D z?ZVM(-4T2A#T}}cs9#~yZ-06K(-*ub+ugA}kcNG- z%6gxy8Pm99RuOj0nqhnP;3=yOuLeld*4L?f`Hb86Cf#Gwk-LViwhdysKXjt-SHZrQ z>xLQhJ(ubd7!Zaia>kpgzKdfIF+_5-&t!@*Lv8Lt-wZptv%4T2k;1p)omV_ZD` z$$Y5C68xvmv45V6hyQu}=P>^1pW{G>GqlG`(~Jk6EH&@Nw9rEDM4W|szprzYZ{Rc_ znbL4T&{(ejyc(I(bcF4q;BP;_)%BX*2oC_g1aE)*emXdWdx817*x%qs`Pg``d_T=T zjTe%$p3S|Mb-4uUWs{$_Rk_~~Fau==t(W)r3VD>`FMslMlyNfYHB>L-er54g@Gi<5 ztX|H+k^AYsp}Q|K7*XPOY=63QaPN&CM)bHI{-5p||9gUq5e+u?(Qo>=H>1S=x|8`| zz1062SAq}nu zz^BP0pnqXl?Xc>6YKCFs40G*CcTKU@vpG_(4xh2N9Cf>by}GfK^b7%^CoS}}7y9=rpuhc$-@f71W&@qi4c%yqi$2m3 z*z@gwe!9TqKlSfjTYpZY1H5l*k=xFZ0wSTsoWxnCtE%^6(iHd8P!%uB#5XgGJ zb$?bDT^);_2rdi%8~%9GB`$=J39yyE`NUlH^W!~&{`+ZP{CoWK%{%?iZ}cnRJJnR1 zRr~R})q7c&a($(BUzvS1{?!R~CHVdgP~ejamKW5DwS!S$}6iyNnAH^q1P3 z;;>cXx6{uTxNF1|Peqx_T9#azQLoD!Fn{{_&FQBz-e$cuV&M0~Ytb77p4zQuZ-0K3 zHJ96_hC=$#ve8`n!O>2C$G^YH^PYm|kDmPf@9(}b_%o8*J3e^2kpKJ9U7t1@sBfNS zslP7s=^Fg_>%Pwa(Et4AS??uW=^nmvpPAzZPL{edPE^|k)MEbs$Mcs*k;DQDgMQ-HgzVM}=hRhXl#3Mi9S(G>;2m&Hl9>$J{ z{n(9|7x<1ZBO!gpG8P13oYBBy#u6t?naEg}r3@BK952oi#&Y4ik_MJ!l7GiMa~+-p zK@8i7%2c_k1t(I7{L% zmTBrmB4j=ljK{gpGd~gmXCd^8neV%SmnR82M&c5|m>Xr#CPjBj(lqz;I2VEAp_(kF zY9@kILOsWIg%id;_oI}fCx0Zl6NJo3iD0oS@{GHI%zY`sD99WhO6f%`N4q8VO&KQK z3(ypzD3KuxJy)WKg);GDheaL<%ym4xN5&i|gg)h^5%WElM`;kbXwS44;JPeF&qjlY z0!O+zx&Taw1|r=w^@)Ac_545v+)sH9uamo}2r`j{St3~=P+J;U;C}>?bD8IfpNkZ2 z%TLi#JSPuB>7)@6EbzQU#GVJA7_!`Ft`EI32MvySF3oGWp~KQl1`+yYp1MKeu}DNY znp)@t87JCI`|Fr{ex7DNoEuu0#0cPJX_mV}&;}GY4nz3p)C*!4b<5Gj+%yuL;cqu% zM4P376MDX2e&R|IXMZwuq7ZEjHH^YM_laN;I)Ed5;p7}cUhMktv~WwIbVJvtf^j#? zqtr`tnTROLFd7F=f)2nWix|;nO!|?Ffi4zF>?f(mLf;WCnsE}waJV!uH2$3PNTMHd zH;Lld58*G9AQiC#Rf%9M&QLiwm+*%vgM!d6&TUG+Gu00bG(3!U7k|jM2a_oMkb>9e70tv4ZcU9{PQpqWL?qOBkv zIxGo1k$F57p_9U8Cva%YMAtDTtay2wf0dr(pz_ z9cho4i!5~z0VRPTh6i2*s66B%)4tjfUhFY666rY!^na8N5e&n)6Zq)pEJuI~hv7I( zFb>y*=!00z7=v)cQgmv>FbIzY#=6|W*aA16_{2t=og<<}fv6=%6N{6OA-@Qa z7QkbpGsPk%g2f2x{9HRmCrbS!kjPMyz>PvLM1Mv=1Cu$6V!Tnjgq$PB#vsBHfhfbt zJ>+I2Fbv;8EYYh|pF2MDqc}pqjBx;wV;Z_bCz5d*NVEk{1~L|sBjgh~LN?-v?qgU>1ov5*#^^r|h9=h&j?DCsmkHW{;v;wV z5r1|{Cfqnpkf+C~PU?InMdoJ-6^yk`4Z$OVt002!50Dol_eoOb6E#De9{5Nz(>zZ@ zAA=@dY?vk)aPuG~Y6h3VSc*|SbG-nA61qELNze5WYh;c`1oPrJguhOrL?`=#Wp0KT zEq6kZa$+XzM@fqJCliE1f{6@1OnMoDQhy#e$cqCi7!p|S=y)TG5h!~SnPC_*L@utE zJ4CRIV^DDgnnx~?z;c!{ahJTUc zqRGMidCJt46{hYs5VGsM0^3c z>u6_#d>q4Pf;1<{GarsjxIm_AmVZm0u~bicrAR(mF3<;p6k{{$%!!d>fOsE$+-IS5 zFq#LbaSXQx4+p1-2$u*ZQ<%nsi$%`LbI0dCM+}Ew43dWo`KmZvaT#IA$PoVn9GZLcB5L_Umc0?#){s6|01b@aoF4CN3 zkwXO2V~3l^aJA?OOgfGZOtrssW8Wc0+d-N!$Kg)uz*Xc3dytA{$j4$Qa58e!U{0FF z9&)BILI+3RPT+cDJuu@Z;$&QaW}3R_(yoN7MHHH+h>W8UzvlF^18N z;0h&tcZeG55l;HZ3{&AosDG@R`kqS#%YEtR zDe_Jk=u920L&ttdqgX0v?F@ql+;bG=PL_BKsZSoXv&u=t@-!t5!l70Gqk4cS&&#qf z<{0quNcu7jb<#)!b0w1dkZX_aq@K&eAa)}m-5^7HoVr9XWQLKaBX{lvK4*wN5&gm2 z%EU+iq=9)z4v`Pz1%EgxOZ0-IK+EF+?3D>(OdBF(Npo~=iJ;pF{Y1hQ6_QEDMC|Guk2yR~B`TkKM1Rd9r1`=NWS9#XrpSfi zy@SYuj;SXCVmpiV(jlB!5+cTM1Gq(BK)ZG#--~F8Sg32~b95Y$=tam>$FoR#7~&2L z3AA~QP`i7iUo!QOS#ZzE&^{1;%3Kc!4iOA(HcEBNNVwpMNMk7?Avn?$r9 zk7~kUWH~~P2!Bl_*NZ$JVrAmnl)eua>k9;-QOJFOB}gf}3~y5SAt! z6Cy*FoePA2Lh1!;B3PawmO|L0mjE!B`#QKn)`H}K!+IpJ2wf)@S)9n+4^cJO^#rnG zo&XEsyGH~|&?{3o3m$k9y)#8zi-8512G{vJ4GcZ0U4KP%I1e({N7mzeA>wR_I0o;R z2o}R#cupjcy}A+&B#nb0l@d+^;}dN_iQvp6cO%FmdiPTY!A1lek7YWkqxH=wLUiDG zsA(D@T0xu_>o_J(0#p^QlU~Fln%jmF5!VaA5tl;(!umDUy^BuMv(7QG0?A!DVTPmWG@na)@AD`$see*Wr4?2GKT4 z&^+7_@d0tt7k0^IiZmz50U7&niW%Y-FGMU82h<+G8PZLj>ajRU5&wjao1=kn9t$Mc z0TC=mh$53Paby6$<~tq_5$-u*k^+v{0|d;U$A2C=ccAxsgb^HW5V`OsdQT7WZAyf6 z2#IqHOdKhpFA;K}D~JqT6+saZEYHwLMG&EmXsgHDZj~jKz|}M`CyrJ~DvFNj#2z zuUBP=U?KXri>Nctkx(!_vxklu=}9UE`w_w7979ro;F!k<2sqLe9}z8g;Crci4`Q!f z{7uq4^)a9zRMxSimm;QhJTIq>0kQA0Jb#X}7@=Me<4@m@^3>&tm+}D75fLnkVEsJM zD}El+eJaqah>W>e9)?t~%<&S~+|$lKP9hoS@Ei!46A`k6XtMxrkhy`3QlzR377XFW zWXw=)?j;@(EEirJYhgXd2e+%|Akci7$Q+kAqQ{}9(H!jvGba>|kDN(|LOL2{#D6I- zgxGS-UAg?Z+qJL$=iD9$8)iv<--AQKB2{?pzF{wI{k4l}%0DLkTP5qy2D_c5T8 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 z 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 delta 16931 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 array mlx::core::conv_transpose3d (const array &input, const array &weight, const std::tuple< int, int, int > &stride={1, 1, 1}, const std::tuple< int, int, int > &padding={0, 0, 0}, const std::tuple< int, int, int > &dilation={1, 1, 1}, int groups=1, StreamOrDevice s={})  3D transposed convolution with a filter
      -array mlx::core::quantized_matmul (const array &x, const array &w, const array &scales, const array &biases, bool transpose=true, int group_size=64, int bits=4, StreamOrDevice s={}) - Quantized matmul multiplies x with a quantized matrix w.
    -  +array mlx::core::quantized_matmul (array x, array w, array scales, array biases, bool transpose=true, int group_size=64, int bits=4, StreamOrDevice s={}) + Quantized matmul multiplies x with a quantized matrix w.
    +  std::tuple< array, array, arraymlx::core::quantize (const array &w, int group_size=64, int bits=4, StreamOrDevice s={})  Quantize a matrix along its last axis.
      diff --git a/docs/build/html/ops_8h_source.html b/docs/build/html/ops_8h_source.html index 64315a5ed..9f21be084 100644 --- a/docs/build/html/ops_8h_source.html +++ b/docs/build/html/ops_8h_source.html @@ -1192,11 +1192,11 @@ $(function(){ initResizable(false); });
    1285 int groups = 1,
    1286 StreamOrDevice s = {});
    1287
    - -
    1290 const array& x,
    -
    1291 const array& w,
    -
    1292 const array& scales,
    -
    1293 const array& biases,
    + +
    1290 array x,
    +
    1291 array w,
    +
    1292 array scales,
    +
    1293 array biases,
    1294 bool transpose = true,
    1295 int group_size = 64,
    1296 int bits = 4,
    @@ -1435,7 +1435,6 @@ $(function(){ initResizable(false); });
    std::vector< array > meshgrid(const std::vector< array > &arrays, bool sparse=false, std::string indexing="xy", StreamOrDevice s={})
    A vector of coordinate arrays from coordinate vectors.
    array conjugate(const array &a, StreamOrDevice s={})
    array tanh(const array &a, StreamOrDevice s={})
    Hyperbolic Tangent of the elements of an array.
    -
    array quantized_matmul(const array &x, const array &w, const array &scales, const array &biases, bool transpose=true, int group_size=64, int bits=4, StreamOrDevice s={})
    Quantized matmul multiplies x with a quantized matrix w.
    array inner(const array &a, const array &b, StreamOrDevice s={})
    Compute the inner product of two vectors.
    array block_masked_mm(array a, array b, int block_size, std::optional< array > mask_out=std::nullopt, std::optional< array > mask_lhs=std::nullopt, std::optional< array > mask_rhs=std::nullopt, StreamOrDevice s={})
    Compute matrix product with block masking.
    array arctan2(const array &a, const array &b, StreamOrDevice s={})
    Inverse tangent of the ratio of two arrays.
    @@ -1509,6 +1508,7 @@ $(function(){ initResizable(false); });
    array logical_not(const array &a, StreamOrDevice s={})
    Logical not of an array.
    array concatenate(const std::vector< array > &arrays, int axis, StreamOrDevice s={})
    Concatenate arrays along a given axis.
    array trace(const array &a, int offset, int axis1, int axis2, Dtype dtype, StreamOrDevice s={})
    Return the sum along a specified diagonal in the given array.
    +
    array quantized_matmul(array x, array w, array scales, array biases, bool transpose=true, int group_size=64, int bits=4, StreamOrDevice s={})
    Quantized matmul multiplies x with a quantized matrix w.
    array dequantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})
    Dequantize a matrix produced by quantize()
    array transpose(const array &a, std::vector< int > axes, StreamOrDevice s={})
    Permutes the dimensions according to the given axes.
    array partition(const array &a, int kth, StreamOrDevice s={})
    Returns a partitioned copy of the flattened array such that the smaller kth elements are first.
    diff --git a/docs/build/html/pocketfft_8h_source.html b/docs/build/html/pocketfft_8h_source.html index 042769c18..29de5e7ac 100644 --- a/docs/build/html/pocketfft_8h_source.html +++ b/docs/build/html/pocketfft_8h_source.html @@ -3971,7 +3971,7 @@ $(function(){ initResizable(false); });
    3579#undef POCKETFFT_RESTRICT
    3580
    3581#endif // POCKETFFT_HDRONLY_H
    -
    MTL::Buffer * buf
    Definition allocator.h:38
    +
    MTL::Buffer * buf
    Definition allocator.h:39
    void fft(const device in_T *in, device out_T *out, constant const int &n, constant const int &batch_size, uint3 elem, uint3 grid)
    Definition fft.h:180
    Definition pocketfft.h:2595
    void exec(T c[], T0 fct, bool ortho, int type, bool cosine) const
    Definition pocketfft.h:2609
    diff --git a/docs/build/html/primitives_8h.html b/docs/build/html/primitives_8h.html index 644a22dda..9172341a3 100644 --- a/docs/build/html/primitives_8h.html +++ b/docs/build/html/primitives_8h.html @@ -303,6 +303,8 @@ Classes   class  mlx::core::Cholesky   +class  mlx::core::Eigh +  diff --git a/docs/build/html/primitives_8h_source.html b/docs/build/html/primitives_8h_source.html index d32cf0aaf..f096756f8 100644 --- a/docs/build/html/primitives_8h_source.html +++ b/docs/build/html/primitives_8h_source.html @@ -2577,7 +2577,55 @@ $(function(){ initResizable(false); });
    2197};
    2198
    -
    2199} // namespace mlx::core
    +
    +
    2199class Eigh : public Primitive {
    +
    2200 public:
    +
    +
    2201 explicit Eigh(Stream stream, std::string uplo, bool compute_eigenvectors)
    +
    2202 : Primitive(stream),
    +
    2203 uplo_(std::move(uplo)),
    +
    2204 compute_eigenvectors_(compute_eigenvectors) {}
    +
    +
    2205
    +
    2206 void eval_cpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    +
    2207 override;
    +
    2208 void eval_gpu(const std::vector<array>& inputs, std::vector<array>& outputs)
    +
    2209 override;
    +
    2210
    + + +
    2213
    +
    +
    2214 std::vector<std::vector<int>> output_shapes(
    +
    2215 const std::vector<array>& inputs) override {
    +
    2216 auto shape = inputs[0].shape();
    +
    2217 shape.pop_back(); // Remove last dimension for eigenvalues
    +
    2218 if (compute_eigenvectors_) {
    +
    2219 return {shape, inputs[0].shape()}; // Eigenvalues and eigenvectors
    +
    2220 } else {
    +
    2221 return {shape}; // Only eigenvalues
    +
    2222 }
    +
    2223 }
    +
    +
    2224
    +
    +
    2225 bool is_equivalent(const Primitive& other) const override {
    +
    2226 if (auto* p = dynamic_cast<const Eigh*>(&other)) {
    +
    2227 return uplo_ == p->uplo_ &&
    +
    2228 compute_eigenvectors_ == p->compute_eigenvectors_;
    +
    2229 }
    +
    2230 return false;
    +
    2231 }
    +
    +
    2232
    +
    2233 private:
    +
    2234 void eval(const std::vector<array>& inputs, std::vector<array>& outputs);
    +
    2235 std::string uplo_;
    +
    2236 bool compute_eigenvectors_;
    +
    2237};
    +
    +
    2238
    +
    2239} // namespace mlx::core
    Definition primitives.h:155
    void eval_gpu(const std::vector< array > &inputs, array &out) override
    @@ -2719,6 +2767,11 @@ $(function(){ initResizable(false); });
    Divide(Stream stream)
    Definition primitives.h:809
    void eval_cpu(const std::vector< array > &inputs, array &out) override
    void eval_gpu(const std::vector< array > &inputs, array &out) override
    +
    Definition primitives.h:2199
    +
    bool is_equivalent(const Primitive &other) const override
    Equivalence check defaults to false unless overridden by the primitive.
    Definition primitives.h:2225
    +
    void eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override
    +
    void eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override
    A primitive must know how to evaluate itself on the CPU/GPU for the given inputs and populate the out...
    +
    Eigh(Stream stream, std::string uplo, bool compute_eigenvectors)
    Definition primitives.h:2201
    Definition primitives.h:880
    Equal(Stream stream, bool equal_nan=false)
    Definition primitives.h:882
    void eval_cpu(const std::vector< array > &inputs, array &out) override
    diff --git a/docs/build/html/python/_autosummary/mlx.core.Device.html b/docs/build/html/python/_autosummary/mlx.core.Device.html index 5b1a95392..347d603e1 100644 --- a/docs/build/html/python/_autosummary/mlx.core.Device.html +++ b/docs/build/html/python/_autosummary/mlx.core.Device.html @@ -8,7 +8,7 @@ - mlx.core.Device — MLX 0.19.0 documentation + mlx.core.Device — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
    -
    -
    + + @@ -82,7 +75,6 @@ Ctrl+K -
    -
    + +
    @@ -107,7 +99,8 @@ -
    + +
    @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
    +
    + + + + + +

    Namespaces

    svd(a, *[, stream])

    The Singular Value Decomposition (SVD) of the input matrix.

    eigvalsh(a[, UPLO, stream])

    Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

    eigh(a[, UPLO, stream])

    Compute the eigenvalues and eigenvectors of a complex Hermitian or real symmetric matrix.

    @@ -979,8 +969,8 @@ By MLX Contributors - - + +
    diff --git a/docs/build/html/python/metal.html b/docs/build/html/python/metal.html index aa4c54865..be64f221e 100644 --- a/docs/build/html/python/metal.html +++ b/docs/build/html/python/metal.html @@ -8,7 +8,7 @@ - Metal — MLX 0.19.0 documentation + Metal — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -44,9 +47,10 @@ - + + @@ -62,19 +66,8 @@ Back to top - - - - - - -
    -
    -
    + +
    -
    + +
    @@ -107,7 +99,8 @@ -
    + +
    @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
    +
  • Metal
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -1588,7 +1572,8 @@ parameters as the first argument to the function returned by -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -933,7 +917,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -959,7 +943,8 @@ axis. Default: 0
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -969,7 +953,8 @@ of the height and width axis. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -968,7 +952,8 @@ running mean and variance. Default: < -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -939,7 +923,8 @@ element wise.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -952,7 +936,8 @@ Default: True
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -951,7 +935,8 @@ output. Default: Tr -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -951,7 +935,8 @@ output. Default: Tr -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -950,7 +934,8 @@ Default: True
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -951,7 +935,8 @@ output. Default: Tr -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -951,7 +935,8 @@ output. Default: Tr -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -937,7 +921,8 @@ expected value of a given element will remain the same.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -947,7 +931,8 @@ Efficient Object Localization Using Convolutional Networks. CVPR 2015.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -944,7 +928,8 @@ medical imaging or video processing.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -938,7 +922,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -945,7 +929,8 @@ Usually called the vocabulary size.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -949,7 +933,8 @@ functional equivalents and information regarding error bounds.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -938,7 +922,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -955,7 +939,8 @@ time step of shape -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ the same order/grouping as PyTorch.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -935,7 +919,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -961,7 +945,8 @@ if -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -958,7 +942,8 @@ each time step, both of shape
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -948,7 +932,8 @@ just scaling.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -934,7 +918,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -949,7 +933,8 @@ not use a bias. Default is
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -959,7 +943,8 @@ both sides of the spatial axis. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -969,7 +953,8 @@ of the height and width axis. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -932,7 +916,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -937,7 +921,8 @@ map (default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -931,7 +915,8 @@ instance).

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -922,7 +906,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -941,7 +925,8 @@ is found and the containing module decide if it is a leaf.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -948,7 +932,8 @@ Default: False
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -922,7 +906,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -968,7 +952,8 @@ shapes are not checked. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -927,7 +911,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -928,7 +912,8 @@ with dot notation.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ as a dict of dicts and lists.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -933,7 +917,8 @@ parameters to the new dtype.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -927,7 +911,8 @@ the original module.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -934,7 +918,8 @@ evaluation mode. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ this Module as a dict of dicts and lists.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -922,7 +906,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -948,7 +932,8 @@ Default: False
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -938,7 +922,8 @@ parameters.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -938,7 +922,8 @@ submodules.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -961,7 +945,8 @@ Default: False
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -942,7 +926,8 @@ is an array.

      -
  • Metal
  • Metal
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -944,7 +928,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ then func:tanh is used. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -932,7 +916,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -946,7 +930,8 @@ each dimension in the positional encodings. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -936,7 +920,8 @@ our functions have learnable parameters they should be implemented as -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -931,7 +915,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -947,7 +931,8 @@ instead of the reverse. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -935,7 +919,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -941,7 +925,8 @@ to 1 if the input is greater than a specified threshold, and 0 otherwise.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -929,7 +913,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -965,7 +949,8 @@ Default: False
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -989,7 +973,8 @@ examples below for more details. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -945,7 +929,8 @@ same shape as the input, filled with -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ normal distribution.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ uniform distribution.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -956,7 +940,8 @@ normal distribution.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -956,7 +940,8 @@ He uniform distribution.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -942,7 +926,8 @@ matrix with the same shape as the input.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -948,7 +932,8 @@ same shape as the input, filled with samples from a normal distribution.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -948,7 +932,8 @@ distribution

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -925,7 +909,8 @@ element wise.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -928,7 +912,8 @@ approximations.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -928,7 +912,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -932,7 +916,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -932,7 +916,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -929,7 +913,8 @@ x & \text{if } x < -\lambda \\ -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -925,7 +909,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -964,7 +948,8 @@ of -100
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -945,7 +929,8 @@ numerical stability. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -963,7 +947,8 @@ the logits
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -951,7 +935,8 @@ Default: 1e-6
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -941,7 +925,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -947,7 +931,8 @@ Default: 1.0 -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -943,7 +927,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -938,7 +922,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -946,7 +930,8 @@ dual behavior offers a balanced, robust approach for regression tasks.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -960,7 +944,8 @@ Default: 0.0 -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -938,7 +922,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -939,7 +923,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -950,7 +934,8 @@ from the squared to the absolute difference. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -951,7 +935,8 @@ Margin is represented with alpha in the math section.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -927,7 +911,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -926,7 +910,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -930,7 +914,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -925,7 +909,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -925,7 +909,8 @@ the logistic sigmoid.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -924,7 +908,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -929,7 +913,8 @@ x + \lambda & \text{if } x < -\lambda \\ -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -935,7 +919,8 @@ to 1 if the input is greater than a specified threshold, and 0 otherwise.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -923,7 +907,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -1032,8 +1016,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/nn/init.html b/docs/build/html/python/nn/init.html index 80849f3e6..0dd9fe4f3 100644 --- a/docs/build/html/python/nn/init.html +++ b/docs/build/html/python/nn/init.html @@ -8,7 +8,7 @@ - Initializers — MLX 0.19.0 documentation + Initializers — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -48,6 +51,7 @@ + @@ -63,19 +67,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -108,7 +100,8 @@ -
      + +
      @@ -137,22 +130,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -1000,8 +984,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/nn/layers.html b/docs/build/html/python/nn/layers.html index 56cc8de49..c2145c4f9 100644 --- a/docs/build/html/python/nn/layers.html +++ b/docs/build/html/python/nn/layers.html @@ -8,7 +8,7 @@ - Layers — MLX 0.19.0 documentation + Layers — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -48,6 +51,7 @@ + @@ -63,19 +67,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -108,7 +100,8 @@ -
      + +
      @@ -137,22 +130,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -1123,8 +1107,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/nn/losses.html b/docs/build/html/python/nn/losses.html index b54615345..6cb0c4d53 100644 --- a/docs/build/html/python/nn/losses.html +++ b/docs/build/html/python/nn/losses.html @@ -8,7 +8,7 @@ - Loss Functions — MLX 0.19.0 documentation + Loss Functions — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -48,6 +51,7 @@ + @@ -63,19 +67,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -108,7 +100,8 @@ -
      + +
      @@ -137,22 +130,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -997,8 +981,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/nn/module.html b/docs/build/html/python/nn/module.html index a93f5780f..4123423a6 100644 --- a/docs/build/html/python/nn/module.html +++ b/docs/build/html/python/nn/module.html @@ -8,7 +8,7 @@ - Module — MLX 0.19.0 documentation + Module — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -1450,8 +1434,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/optimizers.html b/docs/build/html/python/optimizers.html index b0ec23646..0553701d5 100644 --- a/docs/build/html/python/optimizers.html +++ b/docs/build/html/python/optimizers.html @@ -8,7 +8,7 @@ - Optimizers — MLX 0.19.0 documentation + Optimizers — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -48,6 +51,7 @@ + @@ -63,19 +67,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -108,7 +100,8 @@ -
      + +
      @@ -137,22 +130,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -1069,7 +1053,8 @@ then it will be included in the optimizer state.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -956,7 +940,8 @@ numerical stability. Default: 1e-8

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -970,7 +954,8 @@ step size will be calculated by the current step. Default: -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ denominator to improve numerical stability. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -958,7 +942,8 @@ denominator to improve numerical stability. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -958,7 +942,8 @@ Default: 0
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -958,7 +942,8 @@ denominator to improve numerical stability. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -961,7 +945,8 @@ momentum and update direction. Default:
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -935,7 +919,8 @@ tree will be of the same structure as the gradients.

      -
  • Metal
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -922,7 +906,8 @@ document.write(` -
  • Metal
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ to improve numerical stability. Default:
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -953,7 +937,8 @@ w_{t+1} &= w_t - \lambda v_{t+1}\end{split}\] -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -944,7 +928,8 @@ value is constant for steps beyond
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -942,7 +926,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -947,7 +931,8 @@ that indicates when to transition between schedules.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -943,7 +927,8 @@ document.write(` -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -943,7 +927,8 @@ document.write(` -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -982,8 +966,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/optimizers/optimizer.html b/docs/build/html/python/optimizers/optimizer.html index 95266147f..3a52bbaef 100644 --- a/docs/build/html/python/optimizers/optimizer.html +++ b/docs/build/html/python/optimizers/optimizer.html @@ -8,7 +8,7 @@ - Optimizer — MLX 0.19.0 documentation + Optimizer — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -947,7 +931,8 @@ optimizer on a per-parameter basis and apply it to a parameter tree.

      -
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -824,24 +816,16 @@ - + - + @@ -970,8 +954,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/random.html b/docs/build/html/python/random.html index 47058b308..e9e76f14e 100644 --- a/docs/build/html/python/random.html +++ b/docs/build/html/python/random.html @@ -8,7 +8,7 @@ - Random — MLX 0.19.0 documentation + Random — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1011,8 +995,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/transforms.html b/docs/build/html/python/transforms.html index 436a6a84a..06df10314 100644 --- a/docs/build/html/python/transforms.html +++ b/docs/build/html/python/transforms.html @@ -8,7 +8,7 @@ - Transforms — MLX 0.19.0 documentation + Transforms — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -984,8 +968,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/python/tree_utils.html b/docs/build/html/python/tree_utils.html index 3a5f93962..4884e2f2f 100644 --- a/docs/build/html/python/tree_utils.html +++ b/docs/build/html/python/tree_utils.html @@ -8,7 +8,7 @@ - Tree Utils — MLX 0.19.0 documentation + Tree Utils — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -977,8 +961,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/quantized_8h.html b/docs/build/html/quantized_8h.html index 98f98a4ed..f865582b9 100644 --- a/docs/build/html/quantized_8h.html +++ b/docs/build/html/quantized_8h.html @@ -131,54 +131,63 @@ Functions template<typename U , int N, int bits> void dequantize (const device uint8_t *w, U scale, U bias, threadgroup U *w_local)   +template<typename T , int group_size, int bits, int D> +METAL_FUNC void qmv_quad_impl (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint quad_gid, uint quad_lid) +  template<typename T , int group_size, int bits> METAL_FUNC void qmv_fast_impl (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)   template<typename T , int group_size, int bits> METAL_FUNC void qmv_impl (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)   -template<typename T , const int group_size, const int bits> -METAL_FUNC void qvm_impl (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits, const bool aligned_N, const int BM = 32, const int BK = 32, const int BN = 32> -METAL_FUNC void qmm_t_impl (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits, const int BM = 32, const int BK = 32, const int BN = 32> -METAL_FUNC void qmm_n_impl (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid) -  +template<typename T , const int group_size, const int bits> +METAL_FUNC void qvm_impl (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, const bool aligned_N, const int BM = 32, const int BK = 32, const int BN = 32> +METAL_FUNC void qmm_t_impl (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &K, const constant int &N, const constant int &M, uint3 tid, uint lid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, const int BM = 32, const int BK = 32, const int BN = 32> +METAL_FUNC void qmm_n_impl (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &K, const constant int &N, const constant int &M, uint3 tid, uint lid, uint simd_gid, uint simd_lid) +  +template<typename T > +METAL_FUNC void adjust_matrix_offsets (const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, device T *&y, int output_stride, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid) +  template<typename T > METAL_FUNC void adjust_matrix_offsets (const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *&y, int output_stride, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid)   -template<typename T , int group_size, int bits> -void qmv_fast (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits> -void qmv (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits> -void qvm (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits, const bool aligned_N, const int BM = 32, const int BK = 32, const int BN = 32> -void qmm_t (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits, const int BM = 32, const int BK = 32, const int BN = 32> -void qmm_n (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid) -  -template<typename T , int group_size, int bits> -void bs_qmv_fast (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , int group_size, int bits> -void bs_qmv (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , int group_size, int bits> -void bs_qvm (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits, const bool aligned_N, const int BM = 32, const int BK = 32, const int BN = 32> -void bs_qmm_t (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &M, const constant int &N, const constant int &K, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid) -  -template<typename T , const int group_size, const int bits, const int BM = 32, const int BK = 32, const int BN = 32> -void bs_qmm_n (const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &M, const constant int &N, const constant int &K, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid) -  +template<typename T , int group_size, int bits, int D, bool batched> +void qmv_quad (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint quad_gid, uint quad_lid) +  +template<typename T , int group_size, int bits, bool batched> +void qmv_fast (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, bool batched> +void qmv (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, bool batched> +void qvm (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, const bool aligned_N, const bool batched, const int BM = 32, const int BK = 32, const int BN = 32> +void qmm_t (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, const bool batched, const int BM = 32, const int BK = 32, const int BN = 32> +void qmm_n (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid) +  +template<typename T , int group_size, int bits> +void bs_qmv_fast (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , int group_size, int bits> +void bs_qmv (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , int group_size, int bits> +void bs_qvm (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, const bool aligned_N, const int BM = 32, const int BK = 32, const int BN = 32> +void bs_qmm_t (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid) +  +template<typename T , const int group_size, const int bits, const int BM = 32, const int BK = 32, const int BN = 32> +void bs_qmm_n (const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid) +  template<typename T , const int group_size, const int bits> void affine_quantize (const device T *w, device uint8_t *out, device T *scales, device T *biases, uint2 index, uint2 grid_dim)   @@ -193,6 +202,8 @@ Functions Variables static constant constexpr const int SIMD_SIZE = 32   +static constant constexpr const int QUAD_SIZE = 4 + 

      Macro Definition Documentation

      @@ -211,7 +222,7 @@ Variables

      Function Documentation

      -

      ◆ adjust_matrix_offsets()

      +

      ◆ adjust_matrix_offsets() [1/2]

      @@ -326,6 +337,94 @@ template<typename T >
      +
      + + +

      ◆ adjust_matrix_offsets() [2/2]

      + +
      +
      +
      +template<typename T >
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      METAL_FUNC void adjust_matrix_offsets (const device T *& x,
      const device uint32_t *& w,
      const device T *& scales,
      const device T *& biases,
      device T *& y,
      int output_stride,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      uint3 tid )
      +
      +
      @@ -457,8 +556,8 @@ template<typename T , const int group_size, const int bits> - -

      ◆ bs_qmm_n()

      + +

      ◆ bs_qmm_n()

      @@ -468,11 +567,6 @@ template<typename T , const int group_size, const int bits, const int BM = 32 void bs_qmm_n ( - const device T * x, - - - - const device uint32_t * w, @@ -488,12 +582,7 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - const device uint32_t * lhs_indices, - - - - - const device uint32_t * rhs_indices, + const device T * x, @@ -503,7 +592,7 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - const constant int & M, + const constant int & K, @@ -513,27 +602,7 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - const constant int & K, - - - - - const constant int & batch_ndims, - - - - - const constant int * batch_shape, - - - - - const constant size_t * lhs_strides, - - - - - const constant size_t * rhs_strides, + const constant int & M, @@ -575,6 +644,36 @@ template<typename T , const int group_size, const int bits, const int BM = 32 const constant size_t * b_strides, + + + + const constant int & batch_ndims, + + + + + const constant int * batch_shape, + + + + + const device uint32_t * lhs_indices, + + + + + const device uint32_t * rhs_indices, + + + + + const constant size_t * lhs_strides, + + + + + const constant size_t * rhs_strides, + @@ -600,8 +699,8 @@ template<typename T , const int group_size, const int bits, const int BM = 32
      - -

      ◆ bs_qmm_t()

      + +

      ◆ bs_qmm_t()

      @@ -611,11 +710,6 @@ template<typename T , const int group_size, const int bits, const bool aligne void bs_qmm_t ( - const device T * x, - - - - const device uint32_t * w, @@ -631,12 +725,7 @@ template<typename T , const int group_size, const int bits, const bool aligne - const device uint32_t * lhs_indices, - - - - - const device uint32_t * rhs_indices, + const device T * x, @@ -646,7 +735,7 @@ template<typename T , const int group_size, const int bits, const bool aligne - const constant int & M, + const constant int & K, @@ -656,27 +745,7 @@ template<typename T , const int group_size, const int bits, const bool aligne - const constant int & K, - - - - - const constant int & batch_ndims, - - - - - const constant int * batch_shape, - - - - - const constant size_t * lhs_strides, - - - - - const constant size_t * rhs_strides, + const constant int & M, @@ -718,6 +787,36 @@ template<typename T , const int group_size, const int bits, const bool aligne const constant size_t * b_strides, + + + + const constant int & batch_ndims, + + + + + const constant int * batch_shape, + + + + + const device uint32_t * lhs_indices, + + + + + const device uint32_t * rhs_indices, + + + + + const constant size_t * lhs_strides, + + + + + const constant size_t * rhs_strides, + @@ -743,8 +842,8 @@ template<typename T , const int group_size, const int bits, const bool aligne
      - -

      ◆ bs_qmv()

      + +

      ◆ bs_qmv()

      @@ -771,16 +870,6 @@ template<typename T , int group_size, int bits>
      const device T * x, - - - - const device uint32_t * lhs_indices, - - - - - const device uint32_t * rhs_indices, - @@ -796,26 +885,6 @@ template<typename T , int group_size, int bits>
      const constant int & out_vec_size, - - - - const constant int & batch_ndims, - - - - - const constant int * batch_shape, - - - - - const constant size_t * lhs_strides, - - - - - const constant size_t * rhs_strides, - @@ -856,6 +925,36 @@ template<typename T , int group_size, int bits> const constant size_t * b_strides, + + + + const constant int & batch_ndims, + + + + + const constant int * batch_shape, + + + + + const device uint32_t * lhs_indices, + + + + + const device uint32_t * rhs_indices, + + + + + const constant size_t * lhs_strides, + + + + + const constant size_t * rhs_strides, + @@ -876,8 +975,8 @@ template<typename T , int group_size, int bits> - -

      ◆ bs_qmv_fast()

      + +

      ◆ bs_qmv_fast()

      @@ -904,16 +1003,6 @@ template<typename T , int group_size, int bits>
      const device T * x, - - - - const device uint32_t * lhs_indices, - - - - - const device uint32_t * rhs_indices, - @@ -929,26 +1018,6 @@ template<typename T , int group_size, int bits>
      const constant int & out_vec_size, - - - - const constant int & batch_ndims, - - - - - const constant int * batch_shape, - - - - - const constant size_t * lhs_strides, - - - - - const constant size_t * rhs_strides, - @@ -989,6 +1058,36 @@ template<typename T , int group_size, int bits> const constant size_t * b_strides, + + + + const constant int & batch_ndims, + + + + + const constant int * batch_shape, + + + + + const device uint32_t * lhs_indices, + + + + + const device uint32_t * rhs_indices, + + + + + const constant size_t * lhs_strides, + + + + + const constant size_t * rhs_strides, + @@ -1009,8 +1108,8 @@ template<typename T , int group_size, int bits> - -

      ◆ bs_qvm()

      + +

      ◆ bs_qvm()

      @@ -1020,11 +1119,6 @@ template<typename T , int group_size, int bits>
      void bs_qvm ( - const device T * x, - - - - const device uint32_t * w, @@ -1040,12 +1134,7 @@ template<typename T , int group_size, int bits>
      - const device uint32_t * lhs_indices, - - - - - const device uint32_t * rhs_indices, + const device T * x, @@ -1062,26 +1151,6 @@ template<typename T , int group_size, int bits> const constant int & out_vec_size, - - - - const constant int & batch_ndims, - - - - - const constant int * batch_shape, - - - - - const constant size_t * lhs_strides, - - - - - const constant size_t * rhs_strides, - @@ -1122,6 +1191,36 @@ template<typename T , int group_size, int bits> const constant size_t * b_strides, + + + + const constant int & batch_ndims, + + + + + const constant int * batch_shape, + + + + + const device uint32_t * lhs_indices, + + + + + const device uint32_t * rhs_indices, + + + + + const constant size_t * lhs_strides, + + + + + const constant size_t * rhs_strides, + @@ -1347,22 +1446,17 @@ template<typename U , int values_per_thread, int bits> - -

      ◆ qmm_n()

      + +

      ◆ qmm_n()

      -template<typename T , const int group_size, const int bits, const int BM = 32, const int BK = 32, const int BN = 32>
      +template<typename T , const int group_size, const int bits, const bool batched, const int BM = 32, const int BK = 32, const int BN = 32>
      - - - - - @@ -1375,6 +1469,11 @@ template<typename T , const int group_size, const int bits, const int BM = 32 + + + + + @@ -1383,7 +1482,7 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - + @@ -1393,7 +1492,47 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1420,8 +1559,8 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - -

      ◆ qmm_n_impl()

      + +

      ◆ qmm_n_impl()

      @@ -1431,11 +1570,6 @@ template<typename T , const int group_size, const int bits, const int BM = 32
      - - - - - @@ -1448,6 +1582,11 @@ template<typename T , const int group_size, const int bits, const int BM = 32 + + + + + @@ -1466,7 +1605,7 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - + @@ -1476,7 +1615,7 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - + @@ -1503,22 +1642,17 @@ template<typename T , const int group_size, const int bits, const int BM = 32 - -

      ◆ qmm_t()

      + +

      ◆ qmm_t()

      -template<typename T , const int group_size, const int bits, const bool aligned_N, const int BM = 32, const int BK = 32, const int BN = 32>
      +template<typename T , const int group_size, const int bits, const bool aligned_N, const bool batched, const int BM = 32, const int BK = 32, const int BN = 32>
      void qmm_n (const device T * x,
      const device uint32_t * w,
      const device T * biases,
      const device T * x,
      const constant int & M, const constant int & K,
      const constant int & K, const constant int & M,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      METAL_FUNC void qmm_n_impl (const device T * x,
      const device uint32_t * w,
      const device T * biases,
      const device T * x,
      const constant int & M, const constant int & K,
      const constant int & K, const constant int & M,
      - - - - - @@ -1531,6 +1665,11 @@ template<typename T , const int group_size, const int bits, const bool aligne + + + + + @@ -1539,7 +1678,7 @@ template<typename T , const int group_size, const int bits, const bool aligne - + @@ -1549,7 +1688,47 @@ template<typename T , const int group_size, const int bits, const bool aligne - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1576,8 +1755,8 @@ template<typename T , const int group_size, const int bits, const bool aligne - -

      ◆ qmm_t_impl()

      + +

      ◆ qmm_t_impl()

      @@ -1587,11 +1766,6 @@ template<typename T , const int group_size, const int bits, const bool aligne
      - - - - - @@ -1604,6 +1778,11 @@ template<typename T , const int group_size, const int bits, const bool aligne + + + + + @@ -1622,7 +1801,7 @@ template<typename T , const int group_size, const int bits, const bool aligne - + @@ -1632,7 +1811,7 @@ template<typename T , const int group_size, const int bits, const bool aligne - + @@ -1659,13 +1838,13 @@ template<typename T , const int group_size, const int bits, const bool aligne - -

      ◆ qmv()

      + +

      ◆ qmv()

      -template<typename T , const int group_size, const int bits>
      +template<typename T , const int group_size, const int bits, bool batched>
      void qmm_t (const device T * x,
      const device uint32_t * w,
      const device T * biases,
      const device T * x,
      const constant int & M, const constant int & K,
      const constant int & K, const constant int & M,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      METAL_FUNC void qmm_t_impl (const device T * x,
      const device uint32_t * w,
      const device T * biases,
      const device T * x,
      const constant int & M, const constant int & K,
      const constant int & K, const constant int & M,
      @@ -1702,6 +1881,46 @@ template<typename T , const int group_size, const int bits> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1722,13 +1941,13 @@ template<typename T , const int group_size, const int bits> - -

      ◆ qmv_fast()

      + +

      ◆ qmv_fast()

      -template<typename T , int group_size, int bits>
      +template<typename T , int group_size, int bits, bool batched>
      void qmv const constant int & out_vec_size,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      @@ -1765,6 +1984,46 @@ template<typename T , int group_size, int bits> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1909,6 +2168,172 @@ template<typename T , int group_size, int bits>
      void qmv_fast const constant int & out_vec_size,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      +
      + + +

      ◆ qmv_quad()

      + +
      +
      +
      +template<typename T , int group_size, int bits, int D, bool batched>
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      void qmv_quad (const device uint32_t * w,
      const device T * scales,
      const device T * biases,
      const device T * x,
      device T * y,
      const constant int & in_vec_size,
      const constant int & out_vec_size,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      uint3 tid,
      uint quad_gid,
      uint quad_lid )
      +
      + +
      +
      + +

      ◆ qmv_quad_impl()

      + +
      +
      +
      +template<typename T , int group_size, int bits, int D>
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      METAL_FUNC void qmv_quad_impl (const device uint32_t * w,
      const device T * scales,
      const device T * biases,
      const device T * x,
      device T * y,
      constant int & in_vec_size,
      const constant int & out_vec_size,
      uint3 tid,
      uint quad_gid,
      uint quad_lid )
      +
      +
      @@ -1957,22 +2382,17 @@ template<typename U , int values_per_thread, int bits> - -

      ◆ qvm()

      + +

      ◆ qvm()

      -template<typename T , const int group_size, const int bits>
      +template<typename T , const int group_size, const int bits, bool batched>
      - - - - - @@ -1985,6 +2405,11 @@ template<typename T , const int group_size, const int bits> + + + + + @@ -2000,6 +2425,46 @@ template<typename T , const int group_size, const int bits> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2020,8 +2485,8 @@ template<typename T , const int group_size, const int bits> - -

      ◆ qvm_impl()

      + +

      ◆ qvm_impl()

      @@ -2031,11 +2496,6 @@ template<typename T , const int group_size, const int bits>
      - - - - - @@ -2048,6 +2508,11 @@ template<typename T , const int group_size, const int bits> + + + + + @@ -2084,6 +2549,28 @@ template<typename T , const int group_size, const int bits>

      Variable Documentation

      + +

      ◆ QUAD_SIZE

      + +
      +
      +
      void qvm (const device T * x,
      const device uint32_t * w,
      const device T * biases,
      const device T * x,
      const constant int & out_vec_size,
      const constant int & x_batch_ndims,
      const constant int * x_shape,
      const constant size_t * x_strides,
      const constant int & w_batch_ndims,
      const constant int * w_shape,
      const constant size_t * w_strides,
      const constant size_t * s_strides,
      const constant size_t * b_strides,
      METAL_FUNC void qvm_impl (const device T * x,
      const device uint32_t * w,
      const device T * biases,
      const device T * x,
      + + + + +
      + + + + +
      constant constexpr const int QUAD_SIZE = 4
      +
      +staticconstexpr
      +
      + +
      +

      ◆ SIMD_SIZE

      diff --git a/docs/build/html/quantized_8h_source.html b/docs/build/html/quantized_8h_source.html index 211dff873..07b25d33f 100644 --- a/docs/build/html/quantized_8h_source.html +++ b/docs/build/html/quantized_8h_source.html @@ -101,1226 +101,1222 @@ $(function(){ initResizable(false); });
      8#define MLX_MTL_CONST static constant constexpr const
      9
      -
      11
      -
      12template <typename T, typename U, int values_per_thread, int bits>
      -
      -
      13inline U load_vector(const device T* x, thread U* x_thread) {
      -
      14 static_assert(
      -
      15 bits == 2 || bits == 4 || bits == 8,
      -
      16 "Template undefined for bits not in {2, 4, 8}");
      -
      17
      -
      18 U sum = 0;
      -
      19
      -
      20 if (bits == 2) {
      -
      21 for (int i = 0; i < values_per_thread; i += 4) {
      -
      22 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      -
      23 x_thread[i] = x[i];
      -
      24 x_thread[i + 1] = x[i + 1] / 4.0f;
      -
      25 x_thread[i + 2] = x[i + 2] / 16.0f;
      -
      26 x_thread[i + 3] = x[i + 3] / 64.0f;
      -
      27 }
      -
      28 }
      -
      29
      -
      30 else if (bits == 4) {
      -
      31 for (int i = 0; i < values_per_thread; i += 4) {
      -
      32 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      -
      33 x_thread[i] = x[i];
      -
      34 x_thread[i + 1] = x[i + 1] / 16.0f;
      -
      35 x_thread[i + 2] = x[i + 2] / 256.0f;
      -
      36 x_thread[i + 3] = x[i + 3] / 4096.0f;
      -
      37 }
      -
      38 }
      -
      39
      -
      40 else if (bits == 8) {
      -
      41 for (int i = 0; i < values_per_thread; i++) {
      -
      42 sum += x[i];
      -
      43 x_thread[i] = x[i];
      -
      44 }
      -
      45 }
      -
      46
      -
      47 return sum;
      -
      48}
      + +
      12
      +
      13template <typename T, typename U, int values_per_thread, int bits>
      +
      +
      14inline U load_vector(const device T* x, thread U* x_thread) {
      +
      15 static_assert(
      +
      16 bits == 2 || bits == 4 || bits == 8,
      +
      17 "Template undefined for bits not in {2, 4, 8}");
      +
      18
      +
      19 U sum = 0;
      +
      20
      +
      21 if (bits == 2) {
      +
      22 for (int i = 0; i < values_per_thread; i += 4) {
      +
      23 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      +
      24 x_thread[i] = x[i];
      +
      25 x_thread[i + 1] = x[i + 1] / 4.0f;
      +
      26 x_thread[i + 2] = x[i + 2] / 16.0f;
      +
      27 x_thread[i + 3] = x[i + 3] / 64.0f;
      +
      28 }
      +
      29 }
      +
      30
      +
      31 else if (bits == 4) {
      +
      32 for (int i = 0; i < values_per_thread; i += 4) {
      +
      33 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      +
      34 x_thread[i] = x[i];
      +
      35 x_thread[i + 1] = x[i + 1] / 16.0f;
      +
      36 x_thread[i + 2] = x[i + 2] / 256.0f;
      +
      37 x_thread[i + 3] = x[i + 3] / 4096.0f;
      +
      38 }
      +
      39 }
      +
      40
      +
      41 else if (bits == 8) {
      +
      42 for (int i = 0; i < values_per_thread; i++) {
      +
      43 sum += x[i];
      +
      44 x_thread[i] = x[i];
      +
      45 }
      +
      46 }
      +
      47
      +
      48 return sum;
      +
      49}
      -
      49
      -
      50template <typename T, typename U, int values_per_thread, int bits>
      -
      -
      51inline U load_vector_safe(const device T* x, thread U* x_thread, int N) {
      -
      52 static_assert(
      -
      53 bits == 2 || bits == 4 || bits == 8,
      -
      54 "Template undefined for bits not in {2, 4, 8}");
      -
      55
      -
      56 U sum = 0;
      -
      57
      -
      58 if (bits == 2) {
      -
      59 for (int i = 0; i < N; i += 4) {
      -
      60 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      -
      61 x_thread[i] = x[i];
      -
      62 x_thread[i + 1] = x[i + 1] / 4.0f;
      -
      63 x_thread[i + 2] = x[i + 2] / 16.0f;
      -
      64 x_thread[i + 3] = x[i + 3] / 64.0f;
      -
      65 }
      -
      66 for (int i = N; i < values_per_thread; i++) {
      -
      67 x_thread[i] = 0;
      -
      68 }
      -
      69 }
      -
      70
      -
      71 else if (bits == 4) {
      -
      72 for (int i = 0; i < N; i += 4) {
      -
      73 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      -
      74 x_thread[i] = x[i];
      -
      75 x_thread[i + 1] = x[i + 1] / 16.0f;
      -
      76 x_thread[i + 2] = x[i + 2] / 256.0f;
      -
      77 x_thread[i + 3] = x[i + 3] / 4096.0f;
      -
      78 }
      -
      79 for (int i = N; i < values_per_thread; i++) {
      -
      80 x_thread[i] = 0;
      -
      81 }
      -
      82 }
      -
      83
      -
      84 else if (bits == 8) {
      -
      85 for (int i = 0; i < N; i++) {
      -
      86 sum += x[i];
      -
      87 x_thread[i] = x[i];
      -
      88 }
      -
      89 for (int i = N; i < values_per_thread; i++) {
      -
      90 x_thread[i] = 0;
      -
      91 }
      -
      92 }
      -
      93
      -
      94 return sum;
      -
      95}
      +
      50
      +
      51template <typename T, typename U, int values_per_thread, int bits>
      +
      +
      52inline U load_vector_safe(const device T* x, thread U* x_thread, int N) {
      +
      53 static_assert(
      +
      54 bits == 2 || bits == 4 || bits == 8,
      +
      55 "Template undefined for bits not in {2, 4, 8}");
      +
      56
      +
      57 U sum = 0;
      +
      58
      +
      59 if (bits == 2) {
      +
      60 for (int i = 0; i < N; i += 4) {
      +
      61 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      +
      62 x_thread[i] = x[i];
      +
      63 x_thread[i + 1] = x[i + 1] / 4.0f;
      +
      64 x_thread[i + 2] = x[i + 2] / 16.0f;
      +
      65 x_thread[i + 3] = x[i + 3] / 64.0f;
      +
      66 }
      +
      67 for (int i = N; i < values_per_thread; i++) {
      +
      68 x_thread[i] = 0;
      +
      69 }
      +
      70 }
      +
      71
      +
      72 else if (bits == 4) {
      +
      73 for (int i = 0; i < N; i += 4) {
      +
      74 sum += x[i] + x[i + 1] + x[i + 2] + x[i + 3];
      +
      75 x_thread[i] = x[i];
      +
      76 x_thread[i + 1] = x[i + 1] / 16.0f;
      +
      77 x_thread[i + 2] = x[i + 2] / 256.0f;
      +
      78 x_thread[i + 3] = x[i + 3] / 4096.0f;
      +
      79 }
      +
      80 for (int i = N; i < values_per_thread; i++) {
      +
      81 x_thread[i] = 0;
      +
      82 }
      +
      83 }
      +
      84
      +
      85 else if (bits == 8) {
      +
      86 for (int i = 0; i < N; i++) {
      +
      87 sum += x[i];
      +
      88 x_thread[i] = x[i];
      +
      89 }
      +
      90 for (int i = N; i < values_per_thread; i++) {
      +
      91 x_thread[i] = 0;
      +
      92 }
      +
      93 }
      +
      94
      +
      95 return sum;
      +
      96}
      -
      96
      -
      97template <typename U, int values_per_thread, int bits>
      -
      -
      98inline U qdot(
      -
      99 const device uint8_t* w,
      -
      100 const thread U* x_thread,
      -
      101 U scale,
      -
      102 U bias,
      -
      103 U sum) {
      -
      104 static_assert(
      -
      105 bits == 2 || bits == 4 || bits == 8,
      -
      106 "Template undefined for bits not in {2, 4, 8}");
      -
      107
      -
      108 U accum = 0;
      -
      109
      -
      110 if (bits == 2) {
      -
      111 for (int i = 0; i < (values_per_thread / 4); i++) {
      -
      112 accum +=
      -
      113 (x_thread[4 * i] * (w[i] & 0x03) +
      -
      114 x_thread[4 * i + 1] * (w[i] & 0x0c) +
      -
      115 x_thread[4 * i + 2] * (w[i] & 0x30) +
      -
      116 x_thread[4 * i + 3] * (w[i] & 0xc0));
      -
      117 }
      -
      118 }
      -
      119
      -
      120 else if (bits == 4) {
      -
      121 const device uint16_t* ws = (const device uint16_t*)w;
      -
      122 for (int i = 0; i < (values_per_thread / 4); i++) {
      -
      123 accum +=
      -
      124 (x_thread[4 * i] * (ws[i] & 0x000f) +
      -
      125 x_thread[4 * i + 1] * (ws[i] & 0x00f0) +
      -
      126 x_thread[4 * i + 2] * (ws[i] & 0x0f00) +
      -
      127 x_thread[4 * i + 3] * (ws[i] & 0xf000));
      -
      128 }
      -
      129 }
      -
      130
      -
      131 else if (bits == 8) {
      -
      132 for (int i = 0; i < values_per_thread; i++) {
      -
      133 accum += x_thread[i] * w[i];
      -
      134 }
      -
      135 }
      -
      136
      -
      137 return scale * accum + sum * bias;
      -
      138}
      +
      97
      +
      98template <typename U, int values_per_thread, int bits>
      +
      +
      99inline U qdot(
      +
      100 const device uint8_t* w,
      +
      101 const thread U* x_thread,
      +
      102 U scale,
      +
      103 U bias,
      +
      104 U sum) {
      +
      105 static_assert(
      +
      106 bits == 2 || bits == 4 || bits == 8,
      +
      107 "Template undefined for bits not in {2, 4, 8}");
      +
      108
      +
      109 U accum = 0;
      +
      110
      +
      111 if (bits == 2) {
      +
      112 for (int i = 0; i < (values_per_thread / 4); i++) {
      +
      113 accum +=
      +
      114 (x_thread[4 * i] * (w[i] & 0x03) +
      +
      115 x_thread[4 * i + 1] * (w[i] & 0x0c) +
      +
      116 x_thread[4 * i + 2] * (w[i] & 0x30) +
      +
      117 x_thread[4 * i + 3] * (w[i] & 0xc0));
      +
      118 }
      +
      119 }
      +
      120
      +
      121 else if (bits == 4) {
      +
      122 const device uint16_t* ws = (const device uint16_t*)w;
      +
      123 for (int i = 0; i < (values_per_thread / 4); i++) {
      +
      124 accum +=
      +
      125 (x_thread[4 * i] * (ws[i] & 0x000f) +
      +
      126 x_thread[4 * i + 1] * (ws[i] & 0x00f0) +
      +
      127 x_thread[4 * i + 2] * (ws[i] & 0x0f00) +
      +
      128 x_thread[4 * i + 3] * (ws[i] & 0xf000));
      +
      129 }
      +
      130 }
      +
      131
      +
      132 else if (bits == 8) {
      +
      133 for (int i = 0; i < values_per_thread; i++) {
      +
      134 accum += x_thread[i] * w[i];
      +
      135 }
      +
      136 }
      +
      137
      +
      138 return scale * accum + sum * bias;
      +
      139}
      -
      139
      -
      140template <typename U, int values_per_thread, int bits>
      -
      -
      141inline U qdot_safe(
      -
      142 const device uint8_t* w,
      -
      143 const thread U* x_thread,
      -
      144 U scale,
      -
      145 U bias,
      -
      146 U sum,
      -
      147 int N) {
      -
      148 static_assert(
      -
      149 bits == 2 || bits == 4 || bits == 8,
      -
      150 "Template undefined for bits not in {2, 4, 8}");
      -
      151
      -
      152 U accum = 0;
      -
      153
      -
      154 if (bits == 2) {
      -
      155 for (int i = 0; i < (N / 4); i++) {
      -
      156 accum +=
      -
      157 (x_thread[4 * i] * (w[i] & 0x03) +
      -
      158 x_thread[4 * i + 1] * (w[i] & 0x0c) +
      -
      159 x_thread[4 * i + 2] * (w[i] & 0x30) +
      -
      160 x_thread[4 * i + 3] * (w[i] & 0xc0));
      -
      161 }
      -
      162 }
      -
      163
      -
      164 else if (bits == 4) {
      -
      165 const device uint16_t* ws = (const device uint16_t*)w;
      -
      166 for (int i = 0; i < (N / 4); i++) {
      -
      167 accum +=
      -
      168 (x_thread[4 * i] * (ws[i] & 0x000f) +
      -
      169 x_thread[4 * i + 1] * (ws[i] & 0x00f0) +
      -
      170 x_thread[4 * i + 2] * (ws[i] & 0x0f00) +
      -
      171 x_thread[4 * i + 3] * (ws[i] & 0xf000));
      -
      172 }
      -
      173 }
      -
      174
      -
      175 else if (bits == 8) {
      -
      176 for (int i = 0; i < N; i++) {
      -
      177 accum += x_thread[i] * w[i];
      -
      178 }
      -
      179 }
      -
      180
      -
      181 return scale * accum + sum * bias;
      -
      182}
      +
      140
      +
      141template <typename U, int values_per_thread, int bits>
      +
      +
      142inline U qdot_safe(
      +
      143 const device uint8_t* w,
      +
      144 const thread U* x_thread,
      +
      145 U scale,
      +
      146 U bias,
      +
      147 U sum,
      +
      148 int N) {
      +
      149 static_assert(
      +
      150 bits == 2 || bits == 4 || bits == 8,
      +
      151 "Template undefined for bits not in {2, 4, 8}");
      +
      152
      +
      153 U accum = 0;
      +
      154
      +
      155 if (bits == 2) {
      +
      156 for (int i = 0; i < (N / 4); i++) {
      +
      157 accum +=
      +
      158 (x_thread[4 * i] * (w[i] & 0x03) +
      +
      159 x_thread[4 * i + 1] * (w[i] & 0x0c) +
      +
      160 x_thread[4 * i + 2] * (w[i] & 0x30) +
      +
      161 x_thread[4 * i + 3] * (w[i] & 0xc0));
      +
      162 }
      +
      163 }
      +
      164
      +
      165 else if (bits == 4) {
      +
      166 const device uint16_t* ws = (const device uint16_t*)w;
      +
      167 for (int i = 0; i < (N / 4); i++) {
      +
      168 accum +=
      +
      169 (x_thread[4 * i] * (ws[i] & 0x000f) +
      +
      170 x_thread[4 * i + 1] * (ws[i] & 0x00f0) +
      +
      171 x_thread[4 * i + 2] * (ws[i] & 0x0f00) +
      +
      172 x_thread[4 * i + 3] * (ws[i] & 0xf000));
      +
      173 }
      +
      174 }
      +
      175
      +
      176 else if (bits == 8) {
      +
      177 for (int i = 0; i < N; i++) {
      +
      178 accum += x_thread[i] * w[i];
      +
      179 }
      +
      180 }
      +
      181
      +
      182 return scale * accum + sum * bias;
      +
      183}
      -
      183
      -
      184template <typename U, int values_per_thread, int bits>
      -
      185inline void
      -
      -
      186qouter(const thread uint8_t* w, U x, U scale, U bias, thread U* result) {
      -
      187 static_assert(
      -
      188 bits == 2 || bits == 4 || bits == 8,
      -
      189 "Template undefined for bits not in {2, 4, 8}");
      -
      190
      -
      191 if (bits == 2) {
      -
      192 U s[4] = {scale, scale / 4.0f, scale / 16.0f, scale / 64.0f};
      -
      193 for (int i = 0; i < (values_per_thread / 4); i++) {
      -
      194 result[4 * i] += x * (s[0] * (w[i] & 0x03) + bias);
      -
      195 result[4 * i + 1] += x * (s[1] * (w[i] & 0x0c) + bias);
      -
      196 result[4 * i + 2] += x * (s[2] * (w[i] & 0x30) + bias);
      -
      197 result[4 * i + 3] += x * (s[3] * (w[i] & 0xc0) + bias);
      -
      198 }
      -
      199 }
      -
      200
      -
      201 else if (bits == 4) {
      -
      202 U s[2] = {scale, scale / 16.0f};
      -
      203 for (int i = 0; i < (values_per_thread / 2); i++) {
      -
      204 result[2 * i] += x * (s[0] * (w[i] & 0x0f) + bias);
      -
      205 result[2 * i + 1] += x * (s[1] * (w[i] & 0xf0) + bias);
      -
      206 }
      -
      207 }
      -
      208
      -
      209 else if (bits == 8) {
      -
      210 for (int i = 0; i < values_per_thread; i++) {
      -
      211 result[i] += x * (scale * w[i] + bias);
      -
      212 }
      -
      213 }
      -
      214}
      +
      184
      +
      185template <typename U, int values_per_thread, int bits>
      +
      186inline void
      +
      +
      187qouter(const thread uint8_t* w, U x, U scale, U bias, thread U* result) {
      +
      188 static_assert(
      +
      189 bits == 2 || bits == 4 || bits == 8,
      +
      190 "Template undefined for bits not in {2, 4, 8}");
      +
      191
      +
      192 if (bits == 2) {
      +
      193 U s[4] = {scale, scale / 4.0f, scale / 16.0f, scale / 64.0f};
      +
      194 for (int i = 0; i < (values_per_thread / 4); i++) {
      +
      195 result[4 * i] += x * (s[0] * (w[i] & 0x03) + bias);
      +
      196 result[4 * i + 1] += x * (s[1] * (w[i] & 0x0c) + bias);
      +
      197 result[4 * i + 2] += x * (s[2] * (w[i] & 0x30) + bias);
      +
      198 result[4 * i + 3] += x * (s[3] * (w[i] & 0xc0) + bias);
      +
      199 }
      +
      200 }
      +
      201
      +
      202 else if (bits == 4) {
      +
      203 U s[2] = {scale, scale / 16.0f};
      +
      204 for (int i = 0; i < (values_per_thread / 2); i++) {
      +
      205 result[2 * i] += x * (s[0] * (w[i] & 0x0f) + bias);
      +
      206 result[2 * i + 1] += x * (s[1] * (w[i] & 0xf0) + bias);
      +
      207 }
      +
      208 }
      +
      209
      +
      210 else if (bits == 8) {
      +
      211 for (int i = 0; i < values_per_thread; i++) {
      +
      212 result[i] += x * (scale * w[i] + bias);
      +
      213 }
      +
      214 }
      +
      215}
      -
      215
      -
      216template <typename U, int N, int bits>
      -
      217inline void
      -
      -
      218dequantize(const device uint8_t* w, U scale, U bias, threadgroup U* w_local) {
      -
      219 static_assert(
      -
      220 bits == 2 || bits == 4 || bits == 8,
      -
      221 "Template undefined for bits not in {2, 4, 8}");
      -
      222
      -
      223 if (bits == 2) {
      -
      224 U s[4] = {
      -
      225 scale,
      -
      226 scale / static_cast<U>(4.0f),
      -
      227 scale / static_cast<U>(16.0f),
      -
      228 scale / static_cast<U>(64.0f)};
      -
      229 for (int i = 0; i < (N / 4); i++) {
      -
      230 w_local[4 * i] = s[0] * (w[i] & 0x03) + bias;
      -
      231 w_local[4 * i + 1] = s[1] * (w[i] & 0x0c) + bias;
      -
      232 w_local[4 * i + 2] = s[2] * (w[i] & 0x30) + bias;
      -
      233 w_local[4 * i + 3] = s[3] * (w[i] & 0xc0) + bias;
      -
      234 }
      -
      235 }
      -
      236
      -
      237 else if (bits == 4) {
      -
      238 U s[2] = {scale, scale / static_cast<U>(16.0f)};
      -
      239 for (int i = 0; i < (N / 2); i++) {
      -
      240 w_local[2 * i] = s[0] * (w[i] & 0x0f) + bias;
      -
      241 w_local[2 * i + 1] = s[1] * (w[i] & 0xf0) + bias;
      -
      242 }
      -
      243 }
      -
      244
      -
      245 else if (bits == 8) {
      -
      246 for (int i = 0; i < N; i++) {
      -
      247 w_local[i] = scale * w[i] + bias;
      -
      248 }
      -
      249 }
      -
      250}
      +
      216
      +
      217template <typename U, int N, int bits>
      +
      218inline void
      +
      +
      219dequantize(const device uint8_t* w, U scale, U bias, threadgroup U* w_local) {
      +
      220 static_assert(
      +
      221 bits == 2 || bits == 4 || bits == 8,
      +
      222 "Template undefined for bits not in {2, 4, 8}");
      +
      223
      +
      224 if (bits == 2) {
      +
      225 U s[4] = {
      +
      226 scale,
      +
      227 scale / static_cast<U>(4.0f),
      +
      228 scale / static_cast<U>(16.0f),
      +
      229 scale / static_cast<U>(64.0f)};
      +
      230 for (int i = 0; i < (N / 4); i++) {
      +
      231 w_local[4 * i] = s[0] * (w[i] & 0x03) + bias;
      +
      232 w_local[4 * i + 1] = s[1] * (w[i] & 0x0c) + bias;
      +
      233 w_local[4 * i + 2] = s[2] * (w[i] & 0x30) + bias;
      +
      234 w_local[4 * i + 3] = s[3] * (w[i] & 0xc0) + bias;
      +
      235 }
      +
      236 }
      +
      237
      +
      238 else if (bits == 4) {
      +
      239 U s[2] = {scale, scale / static_cast<U>(16.0f)};
      +
      240 for (int i = 0; i < (N / 2); i++) {
      +
      241 w_local[2 * i] = s[0] * (w[i] & 0x0f) + bias;
      +
      242 w_local[2 * i + 1] = s[1] * (w[i] & 0xf0) + bias;
      +
      243 }
      +
      244 }
      +
      245
      +
      246 else if (bits == 8) {
      +
      247 for (int i = 0; i < N; i++) {
      +
      248 w_local[i] = scale * w[i] + bias;
      +
      249 }
      +
      250 }
      +
      251}
      -
      251
      -
      252template <
      -
      253 typename T,
      -
      254 short BROWS,
      -
      255 short BCOLS,
      -
      256 short dst_ld,
      -
      257 short reduction_dim,
      -
      258 short tgp_size,
      -
      259 short group_size,
      -
      260 short bits>
      -
      - -
      262 static_assert(
      -
      263 BCOLS <= group_size,
      -
      264 "The group size should be larger than the columns");
      -
      265 static_assert(
      -
      266 group_size % BCOLS == 0,
      -
      267 "The group size should be divisible by the columns");
      -
      268 static_assert(
      -
      269 bits == 2 || bits == 4 || bits == 8,
      -
      270 "Template undefined for bits not in {2, 4, 8}");
      -
      271
      -
      272 MLX_MTL_CONST short pack_factor = 32 / bits;
      - - -
      275 (BCOLS_PACKED * BROWS < tgp_size) ? 1 : (BCOLS_PACKED * BROWS) / tgp_size;
      -
      276 MLX_MTL_CONST short group_steps = group_size / BCOLS;
      -
      277
      -
      278 const int src_ld;
      -
      279 const int tile_stride;
      - -
      281 const int group_stride;
      -
      282
      -
      283 const short thread_idx;
      -
      284 const short bi;
      -
      285 const short bj;
      -
      286
      -
      287 threadgroup T* dst;
      -
      288 const device uint32_t* src;
      -
      289 const device T* scales;
      -
      290 const device T* biases;
      -
      291
      -
      - -
      293 const device uint32_t* src_,
      -
      294 const device T* scales_,
      -
      295 const device T* biases_,
      -
      296 const int src_ld_,
      -
      297 threadgroup T* dst_,
      -
      298 ushort simd_group_id [[simdgroup_index_in_threadgroup]],
      -
      299 ushort simd_lane_id [[thread_index_in_simdgroup]])
      -
      300 : src_ld(src_ld_),
      - -
      302 reduction_dim ? BCOLS_PACKED : BROWS * src_ld / pack_factor),
      - -
      304 group_stride(BROWS * src_ld / group_size),
      -
      305 thread_idx(simd_group_id * 32 + simd_lane_id),
      - - -
      308 dst(dst_ + bi * dst_ld + bj * pack_factor),
      -
      309 src(src_ + bi * src_ld / pack_factor + bj),
      -
      310 scales(scales_ + bi * src_ld / group_size),
      -
      311 biases(biases_ + bi * src_ld / group_size) {}
      +
      252
      +
      253template <
      +
      254 typename T,
      +
      255 short BROWS,
      +
      256 short BCOLS,
      +
      257 short dst_ld,
      +
      258 short reduction_dim,
      +
      259 short tgp_size,
      +
      260 short group_size,
      +
      261 short bits>
      +
      + +
      263 static_assert(
      +
      264 BCOLS <= group_size,
      +
      265 "The group size should be larger than the columns");
      +
      266 static_assert(
      +
      267 group_size % BCOLS == 0,
      +
      268 "The group size should be divisible by the columns");
      +
      269 static_assert(
      +
      270 bits == 2 || bits == 4 || bits == 8,
      +
      271 "Template undefined for bits not in {2, 4, 8}");
      +
      272
      +
      273 MLX_MTL_CONST short pack_factor = 32 / bits;
      + + +
      276 (BCOLS_PACKED * BROWS < tgp_size) ? 1 : (BCOLS_PACKED * BROWS) / tgp_size;
      +
      277 MLX_MTL_CONST short group_steps = group_size / BCOLS;
      +
      278
      +
      279 const int src_ld;
      +
      280 const int tile_stride;
      + +
      282 const int group_stride;
      +
      283
      +
      284 const short thread_idx;
      +
      285 const short bi;
      +
      286 const short bj;
      +
      287
      +
      288 threadgroup T* dst;
      +
      289 const device uint32_t* src;
      +
      290 const device T* scales;
      +
      291 const device T* biases;
      +
      292
      +
      + +
      294 const device uint32_t* src_,
      +
      295 const device T* scales_,
      +
      296 const device T* biases_,
      +
      297 const int src_ld_,
      +
      298 threadgroup T* dst_,
      +
      299 ushort simd_group_id [[simdgroup_index_in_threadgroup]],
      +
      300 ushort simd_lane_id [[thread_index_in_simdgroup]])
      +
      301 : src_ld(src_ld_),
      + +
      303 reduction_dim ? BCOLS_PACKED : BROWS * src_ld / pack_factor),
      + +
      305 group_stride(BROWS * src_ld / group_size),
      +
      306 thread_idx(simd_group_id * 32 + simd_lane_id),
      + + +
      309 dst(dst_ + bi * dst_ld + bj * pack_factor),
      +
      310 src(src_ + bi * src_ld / pack_factor + bj),
      +
      311 scales(scales_ + bi * src_ld / group_size),
      +
      312 biases(biases_ + bi * src_ld / group_size) {}
      -
      312
      -
      -
      313 void load_unsafe() const {
      -
      314 if (BCOLS_PACKED * BROWS < tgp_size && bi >= BROWS) {
      -
      315 return;
      -
      316 }
      -
      317
      -
      318 T scale = *scales;
      -
      319 T bias = *biases;
      -
      320 for (int i = 0; i < n_reads; i++) {
      - -
      322 (device uint8_t*)(src + i), scale, bias, dst + i * pack_factor);
      -
      323 }
      -
      324 }
      +
      313
      +
      +
      314 void load_unsafe() const {
      +
      315 if (BCOLS_PACKED * BROWS < tgp_size && bi >= BROWS) {
      +
      316 return;
      +
      317 }
      +
      318
      +
      319 T scale = *scales;
      +
      320 T bias = *biases;
      +
      321 for (int i = 0; i < n_reads; i++) {
      + +
      323 (device uint8_t*)(src + i), scale, bias, dst + i * pack_factor);
      +
      324 }
      +
      325 }
      -
      325
      -
      -
      326 void load_safe(short2 src_tile_dim) const {
      -
      327 if (BCOLS_PACKED * BROWS < tgp_size && bi >= BROWS) {
      -
      328 return;
      -
      329 }
      -
      330
      -
      331 if (reduction_dim == 1 && bi >= src_tile_dim.y) {
      -
      332 for (int i = 0; i < n_reads * pack_factor; i++) {
      -
      333 dst[i] = T(0);
      -
      334 }
      -
      335 return;
      -
      336 }
      -
      337
      -
      338 if (reduction_dim == 0 && bi >= src_tile_dim.x) {
      -
      339 for (int i = 0; i < n_reads * pack_factor; i++) {
      -
      340 dst[i] = T(0);
      -
      341 }
      -
      342 return;
      -
      343 }
      -
      344
      -
      345 T scale = *scales;
      -
      346 T bias = *biases;
      -
      347 for (int i = 0; i < n_reads; i++) {
      - -
      349 (device uint8_t*)(src + i), scale, bias, dst + i * pack_factor);
      -
      350 }
      -
      351 }
      +
      326
      +
      +
      327 void load_safe(short2 src_tile_dim) const {
      +
      328 if (BCOLS_PACKED * BROWS < tgp_size && bi >= BROWS) {
      +
      329 return;
      +
      330 }
      +
      331
      +
      332 if (reduction_dim == 1 && bi >= src_tile_dim.y) {
      +
      333 for (int i = 0; i < n_reads * pack_factor; i++) {
      +
      334 dst[i] = T(0);
      +
      335 }
      +
      336 return;
      +
      337 }
      +
      338
      +
      339 if (reduction_dim == 0 && bi >= src_tile_dim.x) {
      +
      340 for (int i = 0; i < n_reads * pack_factor; i++) {
      +
      341 dst[i] = T(0);
      +
      342 }
      +
      343 return;
      +
      344 }
      +
      345
      +
      346 T scale = *scales;
      +
      347 T bias = *biases;
      +
      348 for (int i = 0; i < n_reads; i++) {
      + +
      350 (device uint8_t*)(src + i), scale, bias, dst + i * pack_factor);
      +
      351 }
      +
      352 }
      -
      352
      -
      -
      353 void next() {
      -
      354 src += tile_stride;
      -
      355 if (reduction_dim == 1) {
      -
      356 if (group_steps > 1) {
      - - -
      359 group_step_cnt = 0;
      -
      360 scales++;
      -
      361 biases++;
      -
      362 }
      -
      363 } else {
      -
      364 scales++;
      -
      365 biases++;
      -
      366 }
      -
      367 } else {
      - - -
      370 }
      -
      371 }
      +
      353
      +
      +
      354 void next() {
      +
      355 src += tile_stride;
      +
      356 if (reduction_dim == 1) {
      +
      357 if (group_steps > 1) {
      + + +
      360 group_step_cnt = 0;
      +
      361 scales++;
      +
      362 biases++;
      +
      363 }
      +
      364 } else {
      +
      365 scales++;
      +
      366 biases++;
      +
      367 }
      +
      368 } else {
      + + +
      371 }
      +
      372 }
      -
      372};
      +
      373};
      -
      373
      -
      374template <typename T, int group_size, int bits>
      -
      -
      375METAL_FUNC void qmv_fast_impl(
      -
      376 const device uint32_t* w,
      -
      377 const device T* scales,
      -
      378 const device T* biases,
      -
      379 const device T* x,
      -
      380 device T* y,
      -
      381 const constant int& in_vec_size,
      -
      382 const constant int& out_vec_size,
      -
      383 uint3 tid [[threadgroup_position_in_grid]],
      -
      384 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      385 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      386 constexpr int packs_per_thread = bits > 2 ? 2 : 1;
      -
      387 constexpr int num_simdgroups = 2;
      -
      388 constexpr int results_per_simdgroup = 4;
      -
      389 constexpr int pack_factor = 32 / bits;
      -
      390 constexpr int values_per_thread = pack_factor * packs_per_thread;
      -
      391 constexpr int block_size = values_per_thread * SIMD_SIZE;
      -
      392 constexpr int scale_step_per_thread = group_size / values_per_thread;
      +
      374
      +
      375template <typename T, int group_size, int bits, int D>
      +
      +
      376METAL_FUNC void qmv_quad_impl(
      +
      377 const device uint32_t* w,
      +
      378 const device T* scales,
      +
      379 const device T* biases,
      +
      380 const device T* x,
      +
      381 device T* y,
      +
      382 constant int& in_vec_size,
      +
      383 const constant int& out_vec_size,
      +
      384 uint3 tid [[threadgroup_position_in_grid]],
      +
      385 uint quad_gid [[quadgroup_index_in_threadgroup]],
      +
      386 uint quad_lid [[thread_index_in_quadgroup]]) {
      +
      387 constexpr int quads_per_simd = SIMD_SIZE / QUAD_SIZE;
      +
      388 constexpr int pack_factor = 32 / bits;
      +
      389 constexpr int values_per_thread = D / QUAD_SIZE;
      +
      390 constexpr int packs_per_thread = values_per_thread / pack_factor;
      +
      391 constexpr int scale_step_per_thread = group_size / values_per_thread;
      +
      392 constexpr int results_per_quadgroup = 8;
      393
      394 typedef float U;
      395
      396 thread U x_thread[values_per_thread];
      -
      397 thread U result[results_per_simdgroup] = {0};
      +
      397 thread U result[results_per_quadgroup] = {0};
      398
      399 // Adjust positions
      400 const int in_vec_size_w = in_vec_size / pack_factor;
      401 const int in_vec_size_g = in_vec_size / group_size;
      -
      402 const int out_row = tid.x * (num_simdgroups * results_per_simdgroup) +
      -
      403 simd_gid * results_per_simdgroup;
      -
      404 w += out_row * in_vec_size_w + simd_lid * packs_per_thread;
      -
      405 scales += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      -
      406 biases += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      -
      407 x += tid.y * in_vec_size + simd_lid * values_per_thread;
      +
      402 const int out_row = tid.x * quads_per_simd * results_per_quadgroup + quad_gid;
      +
      403
      +
      404 w += out_row * in_vec_size_w + quad_lid * packs_per_thread;
      +
      405 scales += out_row * in_vec_size_g + quad_lid / scale_step_per_thread;
      +
      406 biases += out_row * in_vec_size_g + quad_lid / scale_step_per_thread;
      +
      407 x += tid.y * in_vec_size + quad_lid * values_per_thread;
      408 y += tid.y * out_vec_size + out_row;
      409
      -
      410 for (int k = 0; k < in_vec_size; k += block_size) {
      - -
      412
      -
      413 for (int row = 0; row < results_per_simdgroup; row++) {
      -
      414 const device uint8_t* wl =
      -
      415 (const device uint8_t*)(w + row * in_vec_size_w);
      -
      416 const device T* sl = scales + row * in_vec_size_g;
      -
      417 const device T* bl = biases + row * in_vec_size_g;
      -
      418
      -
      419 U s = sl[0];
      -
      420 U b = bl[0];
      + +
      411
      +
      412 for (int row = 0; row < results_per_quadgroup; row++) {
      +
      413 const device uint8_t* wl =
      +
      414 (const device uint8_t*)(w + row * in_vec_size_w * quads_per_simd);
      +
      415 const device T* sl = scales + row * in_vec_size_g * quads_per_simd;
      +
      416 const device T* bl = biases + row * in_vec_size_g * quads_per_simd;
      +
      417
      +
      418 U s = sl[0];
      +
      419 U b = bl[0];
      +
      420 if (row * quads_per_simd + out_row < out_vec_size) {
      421 result[row] += qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      422 }
      -
      423
      -
      424 w += block_size / pack_factor;
      -
      425 scales += block_size / group_size;
      -
      426 biases += block_size / group_size;
      -
      427 x += block_size;
      -
      428 }
      -
      429
      -
      430 for (int row = 0; row < results_per_simdgroup; row++) {
      -
      431 result[row] = simd_sum(result[row]);
      -
      432 if (simd_lid == 0) {
      -
      433 y[row] = static_cast<T>(result[row]);
      -
      434 }
      -
      435 }
      -
      436}
      +
      423 }
      +
      424
      +
      425 for (int row = 0; row < results_per_quadgroup; row++) {
      +
      426 result[row] = quad_sum(result[row]);
      +
      427 if (quad_lid == 0 && row * quads_per_simd + out_row < out_vec_size) {
      +
      428 y[row * quads_per_simd] = static_cast<T>(result[row]);
      +
      429 }
      +
      430 }
      +
      431}
      -
      437
      -
      438template <typename T, int group_size, int bits>
      -
      -
      439METAL_FUNC void qmv_impl(
      -
      440 const device uint32_t* w,
      -
      441 const device T* scales,
      -
      442 const device T* biases,
      -
      443 const device T* x,
      -
      444 device T* y,
      -
      445 const constant int& in_vec_size,
      -
      446 const constant int& out_vec_size,
      -
      447 uint3 tid [[threadgroup_position_in_grid]],
      -
      448 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      449 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      450 constexpr int num_simdgroups = 2;
      -
      451 constexpr int results_per_simdgroup = 4;
      -
      452 constexpr int packs_per_thread = 1;
      -
      453 constexpr int pack_factor = 32 / bits;
      -
      454 constexpr int values_per_thread = pack_factor * packs_per_thread;
      -
      455 constexpr int block_size = values_per_thread * SIMD_SIZE;
      -
      456 constexpr int scale_step_per_thread = group_size / values_per_thread;
      +
      432
      +
      433template <typename T, int group_size, int bits>
      +
      +
      434METAL_FUNC void qmv_fast_impl(
      +
      435 const device uint32_t* w,
      +
      436 const device T* scales,
      +
      437 const device T* biases,
      +
      438 const device T* x,
      +
      439 device T* y,
      +
      440 const constant int& in_vec_size,
      +
      441 const constant int& out_vec_size,
      +
      442 uint3 tid [[threadgroup_position_in_grid]],
      +
      443 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      444 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      445 constexpr int packs_per_thread = bits > 2 ? 2 : 1;
      +
      446 constexpr int num_simdgroups = 2;
      +
      447 constexpr int results_per_simdgroup = 4;
      +
      448 constexpr int pack_factor = 32 / bits;
      +
      449 constexpr int values_per_thread = pack_factor * packs_per_thread;
      +
      450 constexpr int block_size = values_per_thread * SIMD_SIZE;
      +
      451 constexpr int scale_step_per_thread = group_size / values_per_thread;
      +
      452
      +
      453 typedef float U;
      +
      454
      +
      455 thread U x_thread[values_per_thread];
      +
      456 thread U result[results_per_simdgroup] = {0};
      457
      -
      458 typedef float U;
      -
      459
      -
      460 thread U x_thread[values_per_thread];
      -
      461 thread U result[results_per_simdgroup] = {0};
      -
      462
      -
      463 // Adjust positions
      -
      464 const int in_vec_size_w = in_vec_size / pack_factor;
      -
      465 const int in_vec_size_g = in_vec_size / group_size;
      -
      466 const int out_row = tid.x * (num_simdgroups * results_per_simdgroup) +
      -
      467 simd_gid * results_per_simdgroup;
      -
      468 const int used_out_row = min(out_vec_size - results_per_simdgroup, out_row);
      -
      469
      -
      470 if (out_row >= out_vec_size) {
      -
      471 return;
      -
      472 }
      -
      473
      -
      474 // In this case we need to properly guard all our reads because there isn't
      -
      475 // even 1 tile in the matrix
      -
      476 if (out_vec_size < (num_simdgroups * results_per_simdgroup)) {
      -
      477 w += out_row * in_vec_size_w + simd_lid * packs_per_thread;
      -
      478 scales += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      -
      479 biases += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      -
      480 x += tid.y * in_vec_size + simd_lid * values_per_thread;
      -
      481 y += tid.y * out_vec_size + out_row;
      +
      458 // Adjust positions
      +
      459 const int in_vec_size_w = in_vec_size / pack_factor;
      +
      460 const int in_vec_size_g = in_vec_size / group_size;
      +
      461 const int out_row = tid.x * (num_simdgroups * results_per_simdgroup) +
      +
      462 simd_gid * results_per_simdgroup;
      +
      463 w += out_row * in_vec_size_w + simd_lid * packs_per_thread;
      +
      464 scales += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      +
      465 biases += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      +
      466 x += tid.y * in_vec_size + simd_lid * values_per_thread;
      +
      467 y += tid.y * out_vec_size + out_row;
      +
      468
      +
      469 for (int k = 0; k < in_vec_size; k += block_size) {
      + +
      471
      +
      472 for (int row = 0; row < results_per_simdgroup; row++) {
      +
      473 const device uint8_t* wl =
      +
      474 (const device uint8_t*)(w + row * in_vec_size_w);
      +
      475 const device T* sl = scales + row * in_vec_size_g;
      +
      476 const device T* bl = biases + row * in_vec_size_g;
      +
      477
      +
      478 U s = sl[0];
      +
      479 U b = bl[0];
      +
      480 result[row] += qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      +
      481 }
      482
      -
      483 int k = 0;
      -
      484 for (; k < in_vec_size - block_size; k += block_size) {
      - -
      486
      -
      487 for (int row = 0; out_row + row < out_vec_size; row++) {
      -
      488 const device uint8_t* wl =
      -
      489 (const device uint8_t*)(w + row * in_vec_size_w);
      -
      490 const device T* sl = scales + row * in_vec_size_g;
      -
      491 const device T* bl = biases + row * in_vec_size_g;
      -
      492
      -
      493 U s = sl[0];
      -
      494 U b = bl[0];
      -
      495 result[row] +=
      -
      496 qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      -
      497 }
      -
      498
      -
      499 w += block_size / pack_factor;
      -
      500 scales += block_size / group_size;
      -
      501 biases += block_size / group_size;
      -
      502 x += block_size;
      -
      503 }
      -
      504 const int remaining = clamp(
      -
      505 static_cast<int>(in_vec_size - k - simd_lid * values_per_thread),
      -
      506 0,
      -
      507 values_per_thread);
      -
      508 U sum =
      - -
      510
      -
      511 for (int row = 0; out_row + row < out_vec_size; row++) {
      -
      512 const device uint8_t* wl =
      -
      513 (const device uint8_t*)(w + row * in_vec_size_w);
      -
      514 const device T* sl = scales + row * in_vec_size_g;
      -
      515 const device T* bl = biases + row * in_vec_size_g;
      +
      483 w += block_size / pack_factor;
      +
      484 scales += block_size / group_size;
      +
      485 biases += block_size / group_size;
      +
      486 x += block_size;
      +
      487 }
      +
      488
      +
      489 for (int row = 0; row < results_per_simdgroup; row++) {
      +
      490 result[row] = simd_sum(result[row]);
      +
      491 if (simd_lid == 0) {
      +
      492 y[row] = static_cast<T>(result[row]);
      +
      493 }
      +
      494 }
      +
      495}
      +
      +
      496
      +
      497template <typename T, int group_size, int bits>
      +
      +
      498METAL_FUNC void qmv_impl(
      +
      499 const device uint32_t* w,
      +
      500 const device T* scales,
      +
      501 const device T* biases,
      +
      502 const device T* x,
      +
      503 device T* y,
      +
      504 const constant int& in_vec_size,
      +
      505 const constant int& out_vec_size,
      +
      506 uint3 tid [[threadgroup_position_in_grid]],
      +
      507 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      508 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      509 constexpr int num_simdgroups = 2;
      +
      510 constexpr int results_per_simdgroup = 4;
      +
      511 constexpr int packs_per_thread = 1;
      +
      512 constexpr int pack_factor = 32 / bits;
      +
      513 constexpr int values_per_thread = pack_factor * packs_per_thread;
      +
      514 constexpr int block_size = values_per_thread * SIMD_SIZE;
      +
      515 constexpr int scale_step_per_thread = group_size / values_per_thread;
      516
      -
      517 U s = sl[0];
      -
      518 U b = bl[0];
      -
      519 result[row] += qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      -
      520 }
      +
      517 typedef float U;
      +
      518
      +
      519 thread U x_thread[values_per_thread];
      +
      520 thread U result[results_per_simdgroup] = {0};
      521
      -
      522 for (int row = 0; out_row + row < out_vec_size; row++) {
      -
      523 result[row] = simd_sum(result[row]);
      -
      524 if (simd_lid == 0) {
      -
      525 y[row] = static_cast<T>(result[row]);
      -
      526 }
      -
      527 }
      -
      528 }
      -
      529
      -
      530 // In this case the last tile is moved back to redo some output values
      -
      531 else {
      -
      532 w += used_out_row * in_vec_size_w + simd_lid * packs_per_thread;
      -
      533 scales += used_out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      -
      534 biases += used_out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      -
      535 x += tid.y * in_vec_size + simd_lid * values_per_thread;
      -
      536 y += tid.y * out_vec_size + used_out_row;
      -
      537
      -
      538 int k = 0;
      -
      539 for (; k < in_vec_size - block_size; k += block_size) {
      - +
      522 // Adjust positions
      +
      523 const int in_vec_size_w = in_vec_size / pack_factor;
      +
      524 const int in_vec_size_g = in_vec_size / group_size;
      +
      525 const int out_row = tid.x * (num_simdgroups * results_per_simdgroup) +
      +
      526 simd_gid * results_per_simdgroup;
      +
      527 const int used_out_row = min(out_vec_size - results_per_simdgroup, out_row);
      +
      528
      +
      529 if (out_row >= out_vec_size) {
      +
      530 return;
      +
      531 }
      +
      532
      +
      533 // In this case we need to properly guard all our reads because there isn't
      +
      534 // even 1 tile in the matrix
      +
      535 if (out_vec_size < (num_simdgroups * results_per_simdgroup)) {
      +
      536 w += out_row * in_vec_size_w + simd_lid * packs_per_thread;
      +
      537 scales += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      +
      538 biases += out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      +
      539 x += tid.y * in_vec_size + simd_lid * values_per_thread;
      +
      540 y += tid.y * out_vec_size + out_row;
      541
      -
      542 for (int row = 0; row < results_per_simdgroup; row++) {
      -
      543 const device uint8_t* wl =
      -
      544 (const device uint8_t*)(w + row * in_vec_size_w);
      -
      545 const device T* sl = scales + row * in_vec_size_g;
      -
      546 const device T* bl = biases + row * in_vec_size_g;
      -
      547
      -
      548 U s = sl[0];
      -
      549 U b = bl[0];
      -
      550 result[row] +=
      -
      551 qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      -
      552 }
      -
      553
      -
      554 w += block_size / pack_factor;
      -
      555 scales += block_size / group_size;
      -
      556 biases += block_size / group_size;
      -
      557 x += block_size;
      -
      558 }
      -
      559 const int remaining = clamp(
      -
      560 static_cast<int>(in_vec_size - k - simd_lid * values_per_thread),
      -
      561 0,
      -
      562 values_per_thread);
      -
      563 U sum =
      - -
      565
      -
      566 for (int row = 0; row < results_per_simdgroup; row++) {
      -
      567 const device uint8_t* wl =
      -
      568 (const device uint8_t*)(w + row * in_vec_size_w);
      -
      569 const device T* sl = scales + row * in_vec_size_g;
      -
      570 const device T* bl = biases + row * in_vec_size_g;
      -
      571
      -
      572 U s = sl[0];
      -
      573 U b = bl[0];
      - -
      575 wl, x_thread, s, b, sum, remaining);
      -
      576 }
      -
      577
      -
      578 for (int row = 0; row < results_per_simdgroup; row++) {
      -
      579 result[row] = simd_sum(result[row]);
      -
      580 if (simd_lid == 0) {
      -
      581 y[row] = static_cast<T>(result[row]);
      -
      582 }
      -
      583 }
      -
      584 }
      -
      585}
      +
      542 int k = 0;
      +
      543 for (; k < in_vec_size - block_size; k += block_size) {
      + +
      545
      +
      546 for (int row = 0; out_row + row < out_vec_size; row++) {
      +
      547 const device uint8_t* wl =
      +
      548 (const device uint8_t*)(w + row * in_vec_size_w);
      +
      549 const device T* sl = scales + row * in_vec_size_g;
      +
      550 const device T* bl = biases + row * in_vec_size_g;
      +
      551
      +
      552 U s = sl[0];
      +
      553 U b = bl[0];
      +
      554 result[row] +=
      +
      555 qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      +
      556 }
      +
      557
      +
      558 w += block_size / pack_factor;
      +
      559 scales += block_size / group_size;
      +
      560 biases += block_size / group_size;
      +
      561 x += block_size;
      +
      562 }
      +
      563 const int remaining = clamp(
      +
      564 static_cast<int>(in_vec_size - k - simd_lid * values_per_thread),
      +
      565 0,
      +
      566 values_per_thread);
      +
      567 U sum =
      + +
      569
      +
      570 for (int row = 0; out_row + row < out_vec_size; row++) {
      +
      571 const device uint8_t* wl =
      +
      572 (const device uint8_t*)(w + row * in_vec_size_w);
      +
      573 const device T* sl = scales + row * in_vec_size_g;
      +
      574 const device T* bl = biases + row * in_vec_size_g;
      +
      575
      +
      576 U s = sl[0];
      +
      577 U b = bl[0];
      +
      578 result[row] += qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      +
      579 }
      +
      580
      +
      581 for (int row = 0; out_row + row < out_vec_size; row++) {
      +
      582 result[row] = simd_sum(result[row]);
      +
      583 if (simd_lid == 0) {
      +
      584 y[row] = static_cast<T>(result[row]);
      +
      585 }
      +
      586 }
      +
      587 }
      +
      588
      +
      589 // In this case the last tile is moved back to redo some output values
      +
      590 else {
      +
      591 w += used_out_row * in_vec_size_w + simd_lid * packs_per_thread;
      +
      592 scales += used_out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      +
      593 biases += used_out_row * in_vec_size_g + simd_lid / scale_step_per_thread;
      +
      594 x += tid.y * in_vec_size + simd_lid * values_per_thread;
      +
      595 y += tid.y * out_vec_size + used_out_row;
      +
      596
      +
      597 int k = 0;
      +
      598 for (; k < in_vec_size - block_size; k += block_size) {
      + +
      600
      +
      601 for (int row = 0; row < results_per_simdgroup; row++) {
      +
      602 const device uint8_t* wl =
      +
      603 (const device uint8_t*)(w + row * in_vec_size_w);
      +
      604 const device T* sl = scales + row * in_vec_size_g;
      +
      605 const device T* bl = biases + row * in_vec_size_g;
      +
      606
      +
      607 U s = sl[0];
      +
      608 U b = bl[0];
      +
      609 result[row] +=
      +
      610 qdot<U, values_per_thread, bits>(wl, x_thread, s, b, sum);
      +
      611 }
      +
      612
      +
      613 w += block_size / pack_factor;
      +
      614 scales += block_size / group_size;
      +
      615 biases += block_size / group_size;
      +
      616 x += block_size;
      +
      617 }
      +
      618 const int remaining = clamp(
      +
      619 static_cast<int>(in_vec_size - k - simd_lid * values_per_thread),
      +
      620 0,
      +
      621 values_per_thread);
      +
      622 U sum =
      + +
      624
      +
      625 for (int row = 0; row < results_per_simdgroup; row++) {
      +
      626 const device uint8_t* wl =
      +
      627 (const device uint8_t*)(w + row * in_vec_size_w);
      +
      628 const device T* sl = scales + row * in_vec_size_g;
      +
      629 const device T* bl = biases + row * in_vec_size_g;
      +
      630
      +
      631 U s = sl[0];
      +
      632 U b = bl[0];
      + +
      634 wl, x_thread, s, b, sum, remaining);
      +
      635 }
      +
      636
      +
      637 for (int row = 0; row < results_per_simdgroup; row++) {
      +
      638 result[row] = simd_sum(result[row]);
      +
      639 if (simd_lid == 0) {
      +
      640 y[row] = static_cast<T>(result[row]);
      +
      641 }
      +
      642 }
      +
      643 }
      +
      644}
      -
      586
      -
      587template <typename T, const int group_size, const int bits>
      -
      -
      588METAL_FUNC void qvm_impl(
      -
      589 const device T* x,
      -
      590 const device uint32_t* w,
      -
      591 const device T* scales,
      -
      592 const device T* biases,
      -
      593 device T* y,
      -
      594 const constant int& in_vec_size,
      -
      595 const constant int& out_vec_size,
      -
      596 uint3 tid [[threadgroup_position_in_grid]],
      -
      597 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      598 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      599 constexpr int num_simdgroups = 2;
      -
      600 constexpr int pack_factor = 32 / bits;
      -
      601 constexpr int tn = 32 / pack_factor;
      -
      602 constexpr int blocksize = SIMD_SIZE;
      -
      603
      -
      604 typedef float U;
      -
      605 typedef struct {
      -
      606 uint32_t wi[tn];
      -
      607 } vec_w;
      -
      608
      -
      609 thread vec_w w_local;
      -
      610 thread U result[tn * pack_factor] = {0};
      -
      611 thread U scale = 1;
      -
      612 thread U bias = 0;
      -
      613 thread U x_local = 0;
      -
      614
      -
      615 // Adjust positions
      -
      616 const int out_vec_size_w = out_vec_size / pack_factor;
      -
      617 const int out_vec_size_g = out_vec_size / group_size;
      -
      618 int out_col =
      -
      619 tid.x * (num_simdgroups * pack_factor * tn) + simd_gid * pack_factor * tn;
      -
      620 w += out_col / pack_factor + simd_lid * out_vec_size_w;
      -
      621 scales += out_col / group_size + simd_lid * out_vec_size_g;
      -
      622 biases += out_col / group_size + simd_lid * out_vec_size_g;
      -
      623 x += tid.y * in_vec_size + simd_lid;
      -
      624 y += tid.y * out_vec_size + out_col;
      -
      625
      -
      626 if (out_col >= out_vec_size) {
      -
      627 return;
      -
      628 }
      -
      629
      -
      630 // Loop over in_vec in blocks of blocksize
      -
      631 int remaining = in_vec_size % blocksize;
      -
      632 if (remaining == 0) {
      -
      633 for (int i = 0; i < in_vec_size; i += blocksize) {
      -
      634 x_local = *x;
      -
      635 scale = *scales;
      -
      636 bias = *biases;
      -
      637 w_local = *((device vec_w*)w);
      -
      638
      - -
      640 (thread uint8_t*)&w_local, x_local, scale, bias, result);
      -
      641
      -
      642 x += blocksize;
      -
      643 scales += blocksize * out_vec_size_g;
      -
      644 biases += blocksize * out_vec_size_g;
      -
      645 w += blocksize * out_vec_size_w;
      -
      646 }
      -
      647 } else {
      -
      648 for (int i = blocksize; i < in_vec_size; i += blocksize) {
      -
      649 x_local = *x;
      -
      650 scale = *scales;
      -
      651 bias = *biases;
      -
      652 w_local = *((device vec_w*)w);
      -
      653
      - -
      655 (thread uint8_t*)&w_local, x_local, scale, bias, result);
      -
      656
      -
      657 x += blocksize;
      -
      658 scales += blocksize * out_vec_size_g;
      -
      659 biases += blocksize * out_vec_size_g;
      -
      660 w += blocksize * out_vec_size_w;
      -
      661 }
      -
      662 if (static_cast<int>(simd_lid) < remaining) {
      -
      663 x_local = *x;
      -
      664 scale = *scales;
      -
      665 bias = *biases;
      -
      666 w_local = *((device vec_w*)w);
      -
      667 } else {
      -
      668 x_local = 0;
      -
      669 scale = 0;
      -
      670 bias = 0;
      -
      671 }
      - -
      673 (thread uint8_t*)&w_local, x_local, scale, bias, result);
      -
      674 }
      -
      675
      -
      676// Accumulate in the simdgroup
      -
      677#pragma clang loop unroll(full)
      -
      678 for (int k = 0; k < tn * pack_factor; k++) {
      -
      679 result[k] = simd_sum(result[k]);
      -
      680 }
      -
      681
      -
      682 // Store the result
      -
      683 if (simd_lid == 0) {
      -
      684#pragma clang loop unroll(full)
      -
      685 for (int k = 0; k < tn * pack_factor; k++) {
      -
      686 y[k] = static_cast<T>(result[k]);
      -
      687 }
      -
      688 }
      -
      689}
      +
      645
      +
      646template <typename T, const int group_size, const int bits>
      +
      +
      647METAL_FUNC void qvm_impl(
      +
      648 const device uint32_t* w,
      +
      649 const device T* scales,
      +
      650 const device T* biases,
      +
      651 const device T* x,
      +
      652 device T* y,
      +
      653 const constant int& in_vec_size,
      +
      654 const constant int& out_vec_size,
      +
      655 uint3 tid [[threadgroup_position_in_grid]],
      +
      656 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      657 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      658 constexpr int num_simdgroups = 2;
      +
      659 constexpr int pack_factor = 32 / bits;
      +
      660 constexpr int tn = 32 / pack_factor;
      +
      661 constexpr int blocksize = SIMD_SIZE;
      +
      662
      +
      663 typedef float U;
      +
      664 typedef struct {
      +
      665 uint32_t wi[tn];
      +
      666 } vec_w;
      +
      667
      +
      668 thread vec_w w_local;
      +
      669 thread U result[tn * pack_factor] = {0};
      +
      670 thread U scale = 1;
      +
      671 thread U bias = 0;
      +
      672 thread U x_local = 0;
      +
      673
      +
      674 // Adjust positions
      +
      675 const int out_vec_size_w = out_vec_size / pack_factor;
      +
      676 const int out_vec_size_g = out_vec_size / group_size;
      +
      677 int out_col =
      +
      678 tid.x * (num_simdgroups * pack_factor * tn) + simd_gid * pack_factor * tn;
      +
      679 w += out_col / pack_factor + simd_lid * out_vec_size_w;
      +
      680 scales += out_col / group_size + simd_lid * out_vec_size_g;
      +
      681 biases += out_col / group_size + simd_lid * out_vec_size_g;
      +
      682 x += tid.y * in_vec_size + simd_lid;
      +
      683 y += tid.y * out_vec_size + out_col;
      +
      684
      +
      685 if (out_col >= out_vec_size) {
      +
      686 return;
      +
      687 }
      +
      688
      +
      689 // Loop over in_vec in blocks of blocksize
      +
      690 int remaining = in_vec_size % blocksize;
      +
      691 if (remaining == 0) {
      +
      692 for (int i = 0; i < in_vec_size; i += blocksize) {
      +
      693 x_local = *x;
      +
      694 scale = *scales;
      +
      695 bias = *biases;
      +
      696 w_local = *((device vec_w*)w);
      +
      697
      + +
      699 (thread uint8_t*)&w_local, x_local, scale, bias, result);
      +
      700
      +
      701 x += blocksize;
      +
      702 scales += blocksize * out_vec_size_g;
      +
      703 biases += blocksize * out_vec_size_g;
      +
      704 w += blocksize * out_vec_size_w;
      +
      705 }
      +
      706 } else {
      +
      707 for (int i = blocksize; i < in_vec_size; i += blocksize) {
      +
      708 x_local = *x;
      +
      709 scale = *scales;
      +
      710 bias = *biases;
      +
      711 w_local = *((device vec_w*)w);
      +
      712
      + +
      714 (thread uint8_t*)&w_local, x_local, scale, bias, result);
      +
      715
      +
      716 x += blocksize;
      +
      717 scales += blocksize * out_vec_size_g;
      +
      718 biases += blocksize * out_vec_size_g;
      +
      719 w += blocksize * out_vec_size_w;
      +
      720 }
      +
      721 if (static_cast<int>(simd_lid) < remaining) {
      +
      722 x_local = *x;
      +
      723 scale = *scales;
      +
      724 bias = *biases;
      +
      725 w_local = *((device vec_w*)w);
      +
      726 } else {
      +
      727 x_local = 0;
      +
      728 scale = 0;
      +
      729 bias = 0;
      +
      730 }
      + +
      732 (thread uint8_t*)&w_local, x_local, scale, bias, result);
      +
      733 }
      +
      734
      +
      735// Accumulate in the simdgroup
      +
      736#pragma clang loop unroll(full)
      +
      737 for (int k = 0; k < tn * pack_factor; k++) {
      +
      738 result[k] = simd_sum(result[k]);
      +
      739 }
      +
      740
      +
      741 // Store the result
      +
      742 if (simd_lid == 0) {
      +
      743#pragma clang loop unroll(full)
      +
      744 for (int k = 0; k < tn * pack_factor; k++) {
      +
      745 y[k] = static_cast<T>(result[k]);
      +
      746 }
      +
      747 }
      +
      748}
      -
      690
      -
      691template <
      -
      692 typename T,
      -
      693 const int group_size,
      -
      694 const int bits,
      -
      695 const bool aligned_N,
      -
      696 const int BM = 32,
      -
      697 const int BK = 32,
      -
      698 const int BN = 32>
      -
      -
      699METAL_FUNC void qmm_t_impl(
      -
      700 const device T* x,
      -
      701 const device uint32_t* w,
      -
      702 const device T* scales,
      -
      703 const device T* biases,
      -
      704 device T* y,
      -
      705 threadgroup T* Xs,
      -
      706 threadgroup T* Ws,
      -
      707 const constant int& M,
      -
      708 const constant int& N,
      -
      709 const constant int& K,
      -
      710 uint3 tid [[threadgroup_position_in_grid]],
      -
      711 uint lid [[thread_index_in_threadgroup]],
      -
      712 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      713 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      714 static_assert(BK >= SIMD_SIZE, "BK should be larger than SIMD_SIZE");
      -
      715 static_assert(BK % SIMD_SIZE == 0, "BK should be divisible by SIMD_SIZE");
      -
      716
      -
      717 (void)lid;
      -
      718
      -
      719 constexpr int WM = 2;
      -
      720 constexpr int WN = 2;
      -
      721 constexpr int pack_factor = 32 / bits;
      -
      722 constexpr int BK_padded = (BK + 16 / sizeof(T));
      -
      723
      -
      724 // Instantiate the appropriate BlockMMA and Loader
      -
      725 using mma_t = mlx::steel::
      -
      726 BlockMMA<T, T, BM, BN, BK, WM, WN, false, true, BK_padded, BK_padded>;
      -
      727 using loader_x_t =
      - -
      729 using loader_w_t = QuantizedBlockLoader<
      -
      730 T,
      -
      731 BN,
      -
      732 BK,
      -
      733 BK_padded,
      -
      734 1,
      -
      735 WM * WN * SIMD_SIZE,
      -
      736 group_size,
      -
      737 bits>;
      -
      738
      -
      739 // Set the block
      -
      740 const int K_w = K / pack_factor;
      -
      741 const int K_g = K / group_size;
      -
      742 const int y_row = tid.y * BM;
      -
      743 const int y_col = tid.x * BN;
      -
      744
      -
      745 x += y_row * K;
      -
      746 w += y_col * K_w;
      -
      747 scales += y_col * K_g;
      -
      748 biases += y_col * K_g;
      -
      749 y += y_row * N + y_col;
      -
      750
      -
      751 // Make the x loader and mma operation
      -
      752 const short num_els = min(BM, M - y_row);
      -
      753 const short num_outs = min(BN, N - y_col);
      -
      754 loader_x_t loader_x(x, K, Xs, simd_gid, simd_lid);
      -
      755 loader_w_t loader_w(w, scales, biases, K, Ws, simd_gid, simd_lid);
      -
      756 mma_t mma_op(simd_gid, simd_lid);
      -
      757
      -
      758 if (num_els < BM) {
      -
      759 if (!aligned_N && num_outs < BN) {
      -
      760 for (int k = 0; k < K; k += BK) {
      -
      761 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      762 loader_x.load_safe(short2(BK, num_els));
      -
      763 loader_w.load_safe(short2(BK, num_outs));
      -
      764 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      765 mma_op.mma(Xs, Ws);
      -
      766 loader_x.next();
      -
      767 loader_w.next();
      -
      768 }
      -
      769 } else {
      -
      770 for (int k = 0; k < K; k += BK) {
      -
      771 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      772 loader_x.load_safe(short2(BK, num_els));
      -
      773 loader_w.load_unsafe();
      -
      774 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      775 mma_op.mma(Xs, Ws);
      -
      776 loader_x.next();
      -
      777 loader_w.next();
      -
      778 }
      -
      779 }
      -
      780 } else {
      -
      781 if (!aligned_N && num_outs < BN) {
      -
      782 for (int k = 0; k < K; k += BK) {
      -
      783 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      784 loader_x.load_unsafe();
      -
      785 loader_w.load_safe(short2(BK, num_outs));
      -
      786 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      787 mma_op.mma(Xs, Ws);
      -
      788 loader_x.next();
      -
      789 loader_w.next();
      -
      790 }
      -
      791 } else {
      -
      792 for (int k = 0; k < K; k += BK) {
      -
      793 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      794 loader_x.load_unsafe();
      -
      795 loader_w.load_unsafe();
      -
      796 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      797 mma_op.mma(Xs, Ws);
      -
      798 loader_x.next();
      -
      799 loader_w.next();
      -
      800 }
      -
      801 }
      -
      802 }
      +
      749
      +
      750template <
      +
      751 typename T,
      +
      752 const int group_size,
      +
      753 const int bits,
      +
      754 const bool aligned_N,
      +
      755 const int BM = 32,
      +
      756 const int BK = 32,
      +
      757 const int BN = 32>
      +
      +
      758METAL_FUNC void qmm_t_impl(
      +
      759 const device uint32_t* w,
      +
      760 const device T* scales,
      +
      761 const device T* biases,
      +
      762 const device T* x,
      +
      763 device T* y,
      +
      764 threadgroup T* Xs,
      +
      765 threadgroup T* Ws,
      +
      766 const constant int& K,
      +
      767 const constant int& N,
      +
      768 const constant int& M,
      +
      769 uint3 tid [[threadgroup_position_in_grid]],
      +
      770 uint lid [[thread_index_in_threadgroup]],
      +
      771 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      772 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      773 static_assert(BK >= SIMD_SIZE, "BK should be larger than SIMD_SIZE");
      +
      774 static_assert(BK % SIMD_SIZE == 0, "BK should be divisible by SIMD_SIZE");
      +
      775
      +
      776 (void)lid;
      +
      777
      +
      778 constexpr int WM = 2;
      +
      779 constexpr int WN = 2;
      +
      780 constexpr int pack_factor = 32 / bits;
      +
      781 constexpr int BK_padded = (BK + 16 / sizeof(T));
      +
      782
      +
      783 // Instantiate the appropriate BlockMMA and Loader
      +
      784 using mma_t = mlx::steel::
      +
      785 BlockMMA<T, T, BM, BN, BK, WM, WN, false, true, BK_padded, BK_padded>;
      +
      786 using loader_x_t =
      + +
      788 using loader_w_t = QuantizedBlockLoader<
      +
      789 T,
      +
      790 BN,
      +
      791 BK,
      +
      792 BK_padded,
      +
      793 1,
      +
      794 WM * WN * SIMD_SIZE,
      +
      795 group_size,
      +
      796 bits>;
      +
      797
      +
      798 // Set the block
      +
      799 const int K_w = K / pack_factor;
      +
      800 const int K_g = K / group_size;
      +
      801 const int y_row = tid.y * BM;
      +
      802 const int y_col = tid.x * BN;
      803
      -
      804 // Store results to device memory
      -
      805 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      806 if (num_els < BM || num_outs < BN) {
      -
      807 mma_op.store_result_safe(y, N, short2(num_outs, num_els));
      -
      808 } else {
      -
      809 mma_op.store_result(y, N);
      -
      810 }
      -
      811}
      +
      804 x += y_row * K;
      +
      805 w += y_col * K_w;
      +
      806 scales += y_col * K_g;
      +
      807 biases += y_col * K_g;
      +
      808 y += y_row * N + y_col;
      +
      809
      +
      810 // Make the x loader and mma operation
      +
      811 const short num_els = min(BM, M - y_row);
      +
      812 const short num_outs = min(BN, N - y_col);
      +
      813 loader_x_t loader_x(x, K, Xs, simd_gid, simd_lid);
      +
      814 loader_w_t loader_w(w, scales, biases, K, Ws, simd_gid, simd_lid);
      +
      815 mma_t mma_op(simd_gid, simd_lid);
      +
      816
      +
      817 if (num_els < BM) {
      +
      818 if (!aligned_N && num_outs < BN) {
      +
      819 for (int k = 0; k < K; k += BK) {
      +
      820 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      821 loader_x.load_safe(short2(BK, num_els));
      +
      822 loader_w.load_safe(short2(BK, num_outs));
      +
      823 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      824 mma_op.mma(Xs, Ws);
      +
      825 loader_x.next();
      +
      826 loader_w.next();
      +
      827 }
      +
      828 } else {
      +
      829 for (int k = 0; k < K; k += BK) {
      +
      830 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      831 loader_x.load_safe(short2(BK, num_els));
      +
      832 loader_w.load_unsafe();
      +
      833 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      834 mma_op.mma(Xs, Ws);
      +
      835 loader_x.next();
      +
      836 loader_w.next();
      +
      837 }
      +
      838 }
      +
      839 } else {
      +
      840 if (!aligned_N && num_outs < BN) {
      +
      841 for (int k = 0; k < K; k += BK) {
      +
      842 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      843 loader_x.load_unsafe();
      +
      844 loader_w.load_safe(short2(BK, num_outs));
      +
      845 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      846 mma_op.mma(Xs, Ws);
      +
      847 loader_x.next();
      +
      848 loader_w.next();
      +
      849 }
      +
      850 } else {
      +
      851 for (int k = 0; k < K; k += BK) {
      +
      852 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      853 loader_x.load_unsafe();
      +
      854 loader_w.load_unsafe();
      +
      855 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      856 mma_op.mma(Xs, Ws);
      +
      857 loader_x.next();
      +
      858 loader_w.next();
      +
      859 }
      +
      860 }
      +
      861 }
      +
      862
      +
      863 // Store results to device memory
      +
      864 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      865 if (num_els < BM || num_outs < BN) {
      +
      866 mma_op.store_result_safe(y, N, short2(num_outs, num_els));
      +
      867 } else {
      +
      868 mma_op.store_result(y, N);
      +
      869 }
      +
      870}
      -
      812
      -
      813template <
      -
      814 typename T,
      -
      815 const int group_size,
      -
      816 const int bits,
      -
      817 const int BM = 32,
      -
      818 const int BK = 32,
      -
      819 const int BN = 32>
      -
      -
      820METAL_FUNC void qmm_n_impl(
      -
      821 const device T* x,
      -
      822 const device uint32_t* w,
      -
      823 const device T* scales,
      -
      824 const device T* biases,
      -
      825 device T* y,
      -
      826 threadgroup T* Xs,
      -
      827 threadgroup T* Ws,
      -
      828 const constant int& M,
      -
      829 const constant int& N,
      -
      830 const constant int& K,
      -
      831 uint3 tid [[threadgroup_position_in_grid]],
      -
      832 uint lid [[thread_index_in_threadgroup]],
      -
      833 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      834 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      835 static_assert(BK >= SIMD_SIZE, "BK should be larger than SIMD_SIZE");
      -
      836 static_assert(BK % SIMD_SIZE == 0, "BK should be divisible by SIMD_SIZE");
      -
      837
      -
      838 (void)lid;
      -
      839
      -
      840 constexpr int WM = 2;
      -
      841 constexpr int WN = 2;
      -
      842 constexpr int pack_factor = 32 / bits;
      -
      843 constexpr int BK_padded = (BK + 16 / sizeof(T));
      -
      844 constexpr int BN_padded = (BN + 16 / sizeof(T));
      -
      845
      -
      846 // Instantiate the appropriate BlockMMA and Loader
      -
      847 using mma_t = mlx::steel::
      -
      848 BlockMMA<T, T, BM, BN, BK, WM, WN, false, false, BK_padded, BN_padded>;
      -
      849 using loader_x_t = mlx::steel::
      -
      850 BlockLoader<T, BM, BK, BK_padded, 1, WM * WN * SIMD_SIZE, 1, 4>;
      -
      851 using loader_w_t = QuantizedBlockLoader<
      -
      852 T,
      -
      853 BK,
      -
      854 BN,
      -
      855 BN_padded,
      -
      856 0,
      -
      857 WM * WN * SIMD_SIZE,
      -
      858 group_size,
      -
      859 bits>;
      -
      860
      -
      861 // Set the block
      -
      862 const int y_row = tid.y * BM;
      -
      863 const int y_col = tid.x * BN;
      -
      864 x += y_row * K;
      -
      865 w += y_col / pack_factor;
      -
      866 scales += y_col / group_size;
      -
      867 biases += y_col / group_size;
      -
      868 y += y_row * N + y_col;
      -
      869
      -
      870 // Make the x loader and mma operation
      -
      871 const short num_els = min(BM, M - y_row);
      -
      872 loader_x_t loader_x(x, K, Xs, simd_gid, simd_lid);
      -
      873 loader_w_t loader_w(w, scales, biases, N, Ws, simd_gid, simd_lid);
      -
      874 mma_t mma_op(simd_gid, simd_lid);
      -
      875
      -
      876 if (num_els < BM) {
      -
      877 if ((K % BK) != 0) {
      -
      878 const int k_blocks = K / BK;
      -
      879 for (int k = 0; k < k_blocks; k++) {
      -
      880 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      881 loader_x.load_safe(short2(BK, num_els));
      -
      882 loader_w.load_unsafe();
      -
      883 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      884 mma_op.mma(Xs, Ws);
      -
      885 loader_x.next();
      -
      886 loader_w.next();
      -
      887 }
      -
      888 const short num_k = K - k_blocks * BK;
      -
      889 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      890 loader_x.load_safe(short2(num_k, num_els));
      -
      891 loader_w.load_safe(short2(BN, num_k));
      -
      892 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      893 mma_op.mma(Xs, Ws);
      -
      894 } else {
      -
      895 for (int k = 0; k < K; k += BK) {
      -
      896 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      897 loader_x.load_safe(short2(BK, num_els));
      -
      898 loader_w.load_unsafe();
      -
      899 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      900 mma_op.mma(Xs, Ws);
      -
      901 loader_x.next();
      -
      902 loader_w.next();
      -
      903 }
      -
      904 }
      -
      905 } else {
      -
      906 if ((K % BK) != 0) {
      -
      907 const int k_blocks = K / BK;
      -
      908 for (int k = 0; k < k_blocks; k++) {
      -
      909 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      910 loader_x.load_unsafe();
      -
      911 loader_w.load_unsafe();
      -
      912 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      913 mma_op.mma(Xs, Ws);
      -
      914 loader_x.next();
      -
      915 loader_w.next();
      -
      916 }
      -
      917 const short num_k = K - k_blocks * BK;
      -
      918 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      919 loader_x.load_safe(short2(num_k, BM));
      -
      920 loader_w.load_safe(short2(BN, num_k));
      -
      921 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      922 mma_op.mma(Xs, Ws);
      -
      923 } else {
      -
      924 for (int k = 0; k < K; k += BK) {
      -
      925 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      926 loader_x.load_unsafe();
      -
      927 loader_w.load_unsafe();
      -
      928 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      929 mma_op.mma(Xs, Ws);
      -
      930 loader_x.next();
      -
      931 loader_w.next();
      -
      932 }
      -
      933 }
      -
      934 }
      -
      935
      -
      936 // Store results to device memory
      -
      937 threadgroup_barrier(mem_flags::mem_threadgroup);
      -
      938 if (num_els < BM) {
      -
      939 mma_op.store_result_safe(y, N, short2(BN, num_els));
      -
      940 } else {
      -
      941 mma_op.store_result(y, N);
      -
      942 }
      -
      943}
      +
      871
      +
      872template <
      +
      873 typename T,
      +
      874 const int group_size,
      +
      875 const int bits,
      +
      876 const int BM = 32,
      +
      877 const int BK = 32,
      +
      878 const int BN = 32>
      +
      +
      879METAL_FUNC void qmm_n_impl(
      +
      880 const device uint32_t* w,
      +
      881 const device T* scales,
      +
      882 const device T* biases,
      +
      883 const device T* x,
      +
      884 device T* y,
      +
      885 threadgroup T* Xs,
      +
      886 threadgroup T* Ws,
      +
      887 const constant int& K,
      +
      888 const constant int& N,
      +
      889 const constant int& M,
      +
      890 uint3 tid [[threadgroup_position_in_grid]],
      +
      891 uint lid [[thread_index_in_threadgroup]],
      +
      892 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      893 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      894 static_assert(BK >= SIMD_SIZE, "BK should be larger than SIMD_SIZE");
      +
      895 static_assert(BK % SIMD_SIZE == 0, "BK should be divisible by SIMD_SIZE");
      +
      896
      +
      897 (void)lid;
      +
      898
      +
      899 constexpr int WM = 2;
      +
      900 constexpr int WN = 2;
      +
      901 constexpr int pack_factor = 32 / bits;
      +
      902 constexpr int BK_padded = (BK + 16 / sizeof(T));
      +
      903 constexpr int BN_padded = (BN + 16 / sizeof(T));
      +
      904
      +
      905 // Instantiate the appropriate BlockMMA and Loader
      +
      906 using mma_t = mlx::steel::
      +
      907 BlockMMA<T, T, BM, BN, BK, WM, WN, false, false, BK_padded, BN_padded>;
      +
      908 using loader_x_t = mlx::steel::
      +
      909 BlockLoader<T, BM, BK, BK_padded, 1, WM * WN * SIMD_SIZE, 1, 4>;
      +
      910 using loader_w_t = QuantizedBlockLoader<
      +
      911 T,
      +
      912 BK,
      +
      913 BN,
      +
      914 BN_padded,
      +
      915 0,
      +
      916 WM * WN * SIMD_SIZE,
      +
      917 group_size,
      +
      918 bits>;
      +
      919
      +
      920 // Set the block
      +
      921 const int y_row = tid.y * BM;
      +
      922 const int y_col = tid.x * BN;
      +
      923 x += y_row * K;
      +
      924 w += y_col / pack_factor;
      +
      925 scales += y_col / group_size;
      +
      926 biases += y_col / group_size;
      +
      927 y += y_row * N + y_col;
      +
      928
      +
      929 // Make the x loader and mma operation
      +
      930 const short num_els = min(BM, M - y_row);
      +
      931 loader_x_t loader_x(x, K, Xs, simd_gid, simd_lid);
      +
      932 loader_w_t loader_w(w, scales, biases, N, Ws, simd_gid, simd_lid);
      +
      933 mma_t mma_op(simd_gid, simd_lid);
      +
      934
      +
      935 if (num_els < BM) {
      +
      936 if ((K % BK) != 0) {
      +
      937 const int k_blocks = K / BK;
      +
      938 for (int k = 0; k < k_blocks; k++) {
      +
      939 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      940 loader_x.load_safe(short2(BK, num_els));
      +
      941 loader_w.load_unsafe();
      +
      942 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      943 mma_op.mma(Xs, Ws);
      +
      944 loader_x.next();
      +
      945 loader_w.next();
      +
      946 }
      +
      947 const short num_k = K - k_blocks * BK;
      +
      948 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      949 loader_x.load_safe(short2(num_k, num_els));
      +
      950 loader_w.load_safe(short2(BN, num_k));
      +
      951 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      952 mma_op.mma(Xs, Ws);
      +
      953 } else {
      +
      954 for (int k = 0; k < K; k += BK) {
      +
      955 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      956 loader_x.load_safe(short2(BK, num_els));
      +
      957 loader_w.load_unsafe();
      +
      958 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      959 mma_op.mma(Xs, Ws);
      +
      960 loader_x.next();
      +
      961 loader_w.next();
      +
      962 }
      +
      963 }
      +
      964 } else {
      +
      965 if ((K % BK) != 0) {
      +
      966 const int k_blocks = K / BK;
      +
      967 for (int k = 0; k < k_blocks; k++) {
      +
      968 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      969 loader_x.load_unsafe();
      +
      970 loader_w.load_unsafe();
      +
      971 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      972 mma_op.mma(Xs, Ws);
      +
      973 loader_x.next();
      +
      974 loader_w.next();
      +
      975 }
      +
      976 const short num_k = K - k_blocks * BK;
      +
      977 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      978 loader_x.load_safe(short2(num_k, BM));
      +
      979 loader_w.load_safe(short2(BN, num_k));
      +
      980 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      981 mma_op.mma(Xs, Ws);
      +
      982 } else {
      +
      983 for (int k = 0; k < K; k += BK) {
      +
      984 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      985 loader_x.load_unsafe();
      +
      986 loader_w.load_unsafe();
      +
      987 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      988 mma_op.mma(Xs, Ws);
      +
      989 loader_x.next();
      +
      990 loader_w.next();
      +
      991 }
      +
      992 }
      +
      993 }
      +
      994
      +
      995 // Store results to device memory
      +
      996 threadgroup_barrier(mem_flags::mem_threadgroup);
      +
      997 if (num_els < BM) {
      +
      998 mma_op.store_result_safe(y, N, short2(BN, num_els));
      +
      999 } else {
      +
      1000 mma_op.store_result(y, N);
      +
      1001 }
      +
      1002}
      -
      944
      -
      945template <typename T>
      -
      -
      946METAL_FUNC void adjust_matrix_offsets(
      -
      947 const device T*& x,
      -
      948 const device uint32_t*& w,
      -
      949 const device T*& scales,
      -
      950 const device T*& biases,
      -
      951 const device uint32_t* lhs_indices,
      -
      952 const device uint32_t* rhs_indices,
      -
      953 device T*& y,
      -
      954 int output_stride,
      -
      955 const constant int& batch_ndims,
      -
      956 const constant int* batch_shape,
      -
      957 const constant size_t* lhs_strides,
      -
      958 const constant size_t* rhs_strides,
      -
      959 const constant int& x_batch_ndims,
      -
      960 const constant int* x_shape,
      -
      961 const constant size_t* x_strides,
      -
      962 const constant int& w_batch_ndims,
      -
      963 const constant int* w_shape,
      -
      964 const constant size_t* w_strides,
      -
      965 const constant size_t* s_strides,
      -
      966 const constant size_t* b_strides,
      -
      967 uint3 tid [[threadgroup_position_in_grid]]) {
      -
      968 // Set the input/output matrices
      -
      969 uint32_t x_idx;
      -
      970 uint32_t w_idx;
      -
      971 if (batch_ndims == 1) {
      -
      972 x_idx = lhs_indices[tid.z * lhs_strides[0]];
      -
      973 w_idx = rhs_indices[tid.z * rhs_strides[0]];
      -
      974 } else {
      -
      975 ulong2 idx = elem_to_loc_broadcast(
      -
      976 tid.z, batch_shape, lhs_strides, rhs_strides, batch_ndims);
      -
      977 x_idx = lhs_indices[idx.x];
      -
      978 w_idx = rhs_indices[idx.y];
      -
      979 }
      -
      980 if (x_batch_ndims == 1) {
      -
      981 x += x_idx * x_strides[0];
      -
      982 } else {
      -
      983 x += elem_to_loc(x_idx, x_shape, x_strides, x_batch_ndims);
      -
      984 }
      -
      985 if (w_batch_ndims == 1) {
      -
      986 w += w_idx * w_strides[0];
      -
      987 scales += w_idx * s_strides[0];
      -
      988 biases += w_idx * b_strides[0];
      -
      989 } else {
      -
      990 ulong3 idx = elem_to_loc_broadcast(
      -
      991 w_idx, w_shape, w_strides, s_strides, b_strides, w_batch_ndims);
      -
      992 w += idx.x;
      -
      993 scales += idx.y;
      -
      994 biases += idx.z;
      -
      995 }
      -
      996 y += tid.z * output_stride;
      -
      997}
      +
      1003
      +
      1004template <typename T>
      +
      + +
      1006 const device T*& x,
      +
      1007 const device uint32_t*& w,
      +
      1008 const device T*& scales,
      +
      1009 const device T*& biases,
      +
      1010 device T*& y,
      +
      1011 int output_stride,
      +
      1012 const constant int& x_batch_ndims,
      +
      1013 const constant int* x_shape,
      +
      1014 const constant size_t* x_strides,
      +
      1015 const constant int& w_batch_ndims,
      +
      1016 const constant int* w_shape,
      +
      1017 const constant size_t* w_strides,
      +
      1018 const constant size_t* s_strides,
      +
      1019 const constant size_t* b_strides,
      +
      1020 uint3 tid [[threadgroup_position_in_grid]]) {
      +
      1021 // Set the input/output matrices
      +
      1022 uint32_t x_idx = tid.z;
      +
      1023 uint32_t w_idx = tid.z;
      +
      1024 if (x_batch_ndims == 1) {
      +
      1025 x += x_idx * x_strides[0];
      +
      1026 } else {
      +
      1027 x += elem_to_loc(x_idx, x_shape, x_strides, x_batch_ndims);
      +
      1028 }
      +
      1029 if (w_batch_ndims == 1) {
      +
      1030 w += w_idx * w_strides[0];
      +
      1031 scales += w_idx * s_strides[0];
      +
      1032 biases += w_idx * b_strides[0];
      +
      1033 } else {
      +
      1034 ulong3 idx = elem_to_loc_broadcast(
      +
      1035 w_idx, w_shape, w_strides, s_strides, b_strides, w_batch_ndims);
      +
      1036 w += idx.x;
      +
      1037 scales += idx.y;
      +
      1038 biases += idx.z;
      +
      1039 }
      +
      1040 y += tid.z * output_stride;
      +
      1041}
      -
      998
      -
      999template <typename T, int group_size, int bits>
      -
      -
      1000[[kernel]] void qmv_fast(
      -
      1001 const device uint32_t* w [[buffer(0)]],
      -
      1002 const device T* scales [[buffer(1)]],
      -
      1003 const device T* biases [[buffer(2)]],
      -
      1004 const device T* x [[buffer(3)]],
      -
      1005 device T* y [[buffer(4)]],
      -
      1006 const constant int& in_vec_size [[buffer(5)]],
      -
      1007 const constant int& out_vec_size [[buffer(6)]],
      -
      1008 uint3 tid [[threadgroup_position_in_grid]],
      -
      1009 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1010 uint simd_lid [[thread_index_in_simdgroup]]) {
      - -
      1012 w,
      -
      1013 scales,
      -
      1014 biases,
      -
      1015 x,
      -
      1016 y,
      -
      1017 in_vec_size,
      -
      1018 out_vec_size,
      -
      1019 tid,
      -
      1020 simd_gid,
      -
      1021 simd_lid);
      -
      1022}
      +
      1042
      +
      1043template <typename T>
      +
      + +
      1045 const device T*& x,
      +
      1046 const device uint32_t*& w,
      +
      1047 const device T*& scales,
      +
      1048 const device T*& biases,
      +
      1049 const device uint32_t* lhs_indices,
      +
      1050 const device uint32_t* rhs_indices,
      +
      1051 device T*& y,
      +
      1052 int output_stride,
      +
      1053 const constant int& batch_ndims,
      +
      1054 const constant int* batch_shape,
      +
      1055 const constant size_t* lhs_strides,
      +
      1056 const constant size_t* rhs_strides,
      +
      1057 const constant int& x_batch_ndims,
      +
      1058 const constant int* x_shape,
      +
      1059 const constant size_t* x_strides,
      +
      1060 const constant int& w_batch_ndims,
      +
      1061 const constant int* w_shape,
      +
      1062 const constant size_t* w_strides,
      +
      1063 const constant size_t* s_strides,
      +
      1064 const constant size_t* b_strides,
      +
      1065 uint3 tid [[threadgroup_position_in_grid]]) {
      +
      1066 // Set the input/output matrices
      +
      1067 uint32_t x_idx;
      +
      1068 uint32_t w_idx;
      +
      1069 if (batch_ndims == 1) {
      +
      1070 x_idx = lhs_indices[tid.z * lhs_strides[0]];
      +
      1071 w_idx = rhs_indices[tid.z * rhs_strides[0]];
      +
      1072 } else {
      +
      1073 ulong2 idx = elem_to_loc_broadcast(
      +
      1074 tid.z, batch_shape, lhs_strides, rhs_strides, batch_ndims);
      +
      1075 x_idx = lhs_indices[idx.x];
      +
      1076 w_idx = rhs_indices[idx.y];
      +
      1077 }
      +
      1078 if (x_batch_ndims == 1) {
      +
      1079 x += x_idx * x_strides[0];
      +
      1080 } else {
      +
      1081 x += elem_to_loc(x_idx, x_shape, x_strides, x_batch_ndims);
      +
      1082 }
      +
      1083 if (w_batch_ndims == 1) {
      +
      1084 w += w_idx * w_strides[0];
      +
      1085 scales += w_idx * s_strides[0];
      +
      1086 biases += w_idx * b_strides[0];
      +
      1087 } else {
      +
      1088 ulong3 idx = elem_to_loc_broadcast(
      +
      1089 w_idx, w_shape, w_strides, s_strides, b_strides, w_batch_ndims);
      +
      1090 w += idx.x;
      +
      1091 scales += idx.y;
      +
      1092 biases += idx.z;
      +
      1093 }
      +
      1094 y += tid.z * output_stride;
      +
      1095}
      -
      1023
      -
      1024template <typename T, const int group_size, const int bits>
      -
      -
      1025[[kernel]] void qmv(
      -
      1026 const device uint32_t* w [[buffer(0)]],
      -
      1027 const device T* scales [[buffer(1)]],
      -
      1028 const device T* biases [[buffer(2)]],
      -
      1029 const device T* x [[buffer(3)]],
      -
      1030 device T* y [[buffer(4)]],
      -
      1031 const constant int& in_vec_size [[buffer(5)]],
      -
      1032 const constant int& out_vec_size [[buffer(6)]],
      -
      1033 uint3 tid [[threadgroup_position_in_grid]],
      -
      1034 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1035 uint simd_lid [[thread_index_in_simdgroup]]) {
      - -
      1037 w,
      -
      1038 scales,
      -
      1039 biases,
      -
      1040 x,
      -
      1041 y,
      -
      1042 in_vec_size,
      -
      1043 out_vec_size,
      -
      1044 tid,
      -
      1045 simd_gid,
      -
      1046 simd_lid);
      -
      1047}
      -
      -
      1048
      -
      1049template <typename T, const int group_size, const int bits>
      -
      -
      1050[[kernel]] void qvm(
      -
      1051 const device T* x [[buffer(0)]],
      -
      1052 const device uint32_t* w [[buffer(1)]],
      -
      1053 const device T* scales [[buffer(2)]],
      -
      1054 const device T* biases [[buffer(3)]],
      -
      1055 device T* y [[buffer(4)]],
      -
      1056 const constant int& in_vec_size [[buffer(5)]],
      -
      1057 const constant int& out_vec_size [[buffer(6)]],
      -
      1058 uint3 tid [[threadgroup_position_in_grid]],
      -
      1059 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1060 uint simd_lid [[thread_index_in_simdgroup]]) {
      - -
      1062 x,
      -
      1063 w,
      -
      1064 scales,
      -
      1065 biases,
      -
      1066 y,
      -
      1067 in_vec_size,
      -
      1068 out_vec_size,
      -
      1069 tid,
      -
      1070 simd_gid,
      -
      1071 simd_lid);
      -
      1072}
      -
      -
      1073
      -
      1074template <
      -
      1075 typename T,
      -
      1076 const int group_size,
      -
      1077 const int bits,
      -
      1078 const bool aligned_N,
      -
      1079 const int BM = 32,
      -
      1080 const int BK = 32,
      -
      1081 const int BN = 32>
      -
      -
      1082[[kernel]] void qmm_t(
      -
      1083 const device T* x [[buffer(0)]],
      -
      1084 const device uint32_t* w [[buffer(1)]],
      -
      1085 const device T* scales [[buffer(2)]],
      -
      1086 const device T* biases [[buffer(3)]],
      -
      1087 device T* y [[buffer(4)]],
      -
      1088 const constant int& M [[buffer(5)]],
      -
      1089 const constant int& N [[buffer(6)]],
      -
      1090 const constant int& K [[buffer(7)]],
      -
      1091 uint3 tid [[threadgroup_position_in_grid]],
      -
      1092 uint lid [[thread_index_in_threadgroup]],
      -
      1093 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1094 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      1095 (void)lid;
      1096
      -
      1097 constexpr int BK_padded = (BK + 16 / sizeof(T));
      -
      1098
      -
      1099 threadgroup T Xs[BM * BK_padded];
      -
      1100 threadgroup T Ws[BN * BK_padded];
      -
      1101
      - -
      1103 x, w, scales, biases, y, Xs, Ws, M, N, K, tid, lid, simd_gid, simd_lid);
      -
      1104}
      +
      1097template <typename T, int group_size, int bits, int D, bool batched>
      +
      +
      1098[[kernel]] void qmv_quad(
      +
      1099 const device uint32_t* w [[buffer(0)]],
      +
      1100 const device T* scales [[buffer(1)]],
      +
      1101 const device T* biases [[buffer(2)]],
      +
      1102 const device T* x [[buffer(3)]],
      +
      1103 device T* y [[buffer(4)]],
      +
      1104 const constant int& in_vec_size [[buffer(5)]],
      +
      1105 const constant int& out_vec_size [[buffer(6)]],
      +
      1106 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1107 const constant int* x_shape [[buffer(8)]],
      +
      1108 const constant size_t* x_strides [[buffer(9)]],
      +
      1109 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1110 const constant int* w_shape [[buffer(11)]],
      +
      1111 const constant size_t* w_strides [[buffer(12)]],
      +
      1112 const constant size_t* s_strides [[buffer(13)]],
      +
      1113 const constant size_t* b_strides [[buffer(14)]],
      +
      1114 uint3 tid [[threadgroup_position_in_grid]],
      +
      1115 uint quad_gid [[quadgroup_index_in_threadgroup]],
      +
      1116 uint quad_lid [[thread_index_in_quadgroup]]) {
      +
      1117 if (batched) {
      + +
      1119 x,
      +
      1120 w,
      +
      1121 scales,
      +
      1122 biases,
      +
      1123 y,
      +
      1124 out_vec_size,
      +
      1125 x_batch_ndims,
      +
      1126 x_shape,
      +
      1127 x_strides,
      +
      1128 w_batch_ndims,
      +
      1129 w_shape,
      +
      1130 w_strides,
      +
      1131 s_strides,
      +
      1132 b_strides,
      +
      1133 tid);
      +
      1134 }
      + +
      1136 w,
      +
      1137 scales,
      +
      1138 biases,
      +
      1139 x,
      +
      1140 y,
      +
      1141 in_vec_size,
      +
      1142 out_vec_size,
      +
      1143 tid,
      +
      1144 quad_gid,
      +
      1145 quad_lid);
      +
      1146}
      -
      1105
      -
      1106template <
      -
      1107 typename T,
      -
      1108 const int group_size,
      -
      1109 const int bits,
      -
      1110 const int BM = 32,
      -
      1111 const int BK = 32,
      -
      1112 const int BN = 32>
      -
      -
      1113[[kernel]] void qmm_n(
      -
      1114 const device T* x [[buffer(0)]],
      -
      1115 const device uint32_t* w [[buffer(1)]],
      -
      1116 const device T* scales [[buffer(2)]],
      -
      1117 const device T* biases [[buffer(3)]],
      -
      1118 device T* y [[buffer(4)]],
      -
      1119 const constant int& M [[buffer(5)]],
      -
      1120 const constant int& N [[buffer(6)]],
      -
      1121 const constant int& K [[buffer(7)]],
      -
      1122 uint3 tid [[threadgroup_position_in_grid]],
      -
      1123 uint lid [[thread_index_in_threadgroup]],
      -
      1124 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1125 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      1126 (void)lid;
      -
      1127
      -
      1128 constexpr int BK_padded = (BK + 16 / sizeof(T));
      -
      1129 constexpr int BN_padded = (BN + 16 / sizeof(T));
      -
      1130
      -
      1131 threadgroup T Xs[BM * BK_padded];
      -
      1132 threadgroup T Ws[BK * BN_padded];
      -
      1133
      - -
      1135 x, w, scales, biases, y, Xs, Ws, M, N, K, tid, lid, simd_gid, simd_lid);
      -
      1136}
      -
      -
      1137
      -
      1138template <typename T, int group_size, int bits>
      -
      -
      1139[[kernel]] void bs_qmv_fast(
      -
      1140 const device uint32_t* w [[buffer(0)]],
      -
      1141 const device T* scales [[buffer(1)]],
      -
      1142 const device T* biases [[buffer(2)]],
      -
      1143 const device T* x [[buffer(3)]],
      -
      1144 const device uint32_t* lhs_indices [[buffer(4)]],
      -
      1145 const device uint32_t* rhs_indices [[buffer(5)]],
      -
      1146 device T* y [[buffer(6)]],
      -
      1147 const constant int& in_vec_size [[buffer(7)]],
      -
      1148 const constant int& out_vec_size [[buffer(8)]],
      -
      1149 const constant int& batch_ndims [[buffer(9)]],
      -
      1150 const constant int* batch_shape [[buffer(10)]],
      -
      1151 const constant size_t* lhs_strides [[buffer(11)]],
      -
      1152 const constant size_t* rhs_strides [[buffer(12)]],
      -
      1153 const constant int& x_batch_ndims [[buffer(13)]],
      -
      1154 const constant int* x_shape [[buffer(14)]],
      -
      1155 const constant size_t* x_strides [[buffer(15)]],
      -
      1156 const constant int& w_batch_ndims [[buffer(16)]],
      -
      1157 const constant int* w_shape [[buffer(17)]],
      -
      1158 const constant size_t* w_strides [[buffer(18)]],
      -
      1159 const constant size_t* s_strides [[buffer(19)]],
      -
      1160 const constant size_t* b_strides [[buffer(20)]],
      -
      1161 uint3 tid [[threadgroup_position_in_grid]],
      -
      1162 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1163 uint simd_lid [[thread_index_in_simdgroup]]) {
      - -
      1165 x,
      -
      1166 w,
      -
      1167 scales,
      -
      1168 biases,
      -
      1169 lhs_indices,
      -
      1170 rhs_indices,
      -
      1171 y,
      -
      1172 out_vec_size,
      -
      1173 batch_ndims,
      -
      1174 batch_shape,
      -
      1175 lhs_strides,
      -
      1176 rhs_strides,
      -
      1177 x_batch_ndims,
      -
      1178 x_shape,
      -
      1179 x_strides,
      -
      1180 w_batch_ndims,
      -
      1181 w_shape,
      -
      1182 w_strides,
      -
      1183 s_strides,
      -
      1184 b_strides,
      -
      1185 tid);
      +
      1147
      +
      1148template <typename T, int group_size, int bits, bool batched>
      +
      +
      1149[[kernel]] void qmv_fast(
      +
      1150 const device uint32_t* w [[buffer(0)]],
      +
      1151 const device T* scales [[buffer(1)]],
      +
      1152 const device T* biases [[buffer(2)]],
      +
      1153 const device T* x [[buffer(3)]],
      +
      1154 device T* y [[buffer(4)]],
      +
      1155 const constant int& in_vec_size [[buffer(5)]],
      +
      1156 const constant int& out_vec_size [[buffer(6)]],
      +
      1157 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1158 const constant int* x_shape [[buffer(8)]],
      +
      1159 const constant size_t* x_strides [[buffer(9)]],
      +
      1160 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1161 const constant int* w_shape [[buffer(11)]],
      +
      1162 const constant size_t* w_strides [[buffer(12)]],
      +
      1163 const constant size_t* s_strides [[buffer(13)]],
      +
      1164 const constant size_t* b_strides [[buffer(14)]],
      +
      1165 uint3 tid [[threadgroup_position_in_grid]],
      +
      1166 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1167 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1168 if (batched) {
      + +
      1170 x,
      +
      1171 w,
      +
      1172 scales,
      +
      1173 biases,
      +
      1174 y,
      +
      1175 out_vec_size,
      +
      1176 x_batch_ndims,
      +
      1177 x_shape,
      +
      1178 x_strides,
      +
      1179 w_batch_ndims,
      +
      1180 w_shape,
      +
      1181 w_strides,
      +
      1182 s_strides,
      +
      1183 b_strides,
      +
      1184 tid);
      +
      1185 }
      1187 w,
      1188 scales,
      @@ -1335,424 +1331,716 @@ $(function(){ initResizable(false); });
      1197}
      1198
      -
      1199template <typename T, int group_size, int bits>
      +
      1199template <typename T, const int group_size, const int bits, bool batched>
      -
      1200[[kernel]] void bs_qmv(
      +
      1200[[kernel]] void qmv(
      1201 const device uint32_t* w [[buffer(0)]],
      1202 const device T* scales [[buffer(1)]],
      1203 const device T* biases [[buffer(2)]],
      1204 const device T* x [[buffer(3)]],
      -
      1205 const device uint32_t* lhs_indices [[buffer(4)]],
      -
      1206 const device uint32_t* rhs_indices [[buffer(5)]],
      -
      1207 device T* y [[buffer(6)]],
      -
      1208 const constant int& in_vec_size [[buffer(7)]],
      -
      1209 const constant int& out_vec_size [[buffer(8)]],
      -
      1210 const constant int& batch_ndims [[buffer(9)]],
      -
      1211 const constant int* batch_shape [[buffer(10)]],
      -
      1212 const constant size_t* lhs_strides [[buffer(11)]],
      -
      1213 const constant size_t* rhs_strides [[buffer(12)]],
      -
      1214 const constant int& x_batch_ndims [[buffer(13)]],
      -
      1215 const constant int* x_shape [[buffer(14)]],
      -
      1216 const constant size_t* x_strides [[buffer(15)]],
      -
      1217 const constant int& w_batch_ndims [[buffer(16)]],
      -
      1218 const constant int* w_shape [[buffer(17)]],
      -
      1219 const constant size_t* w_strides [[buffer(18)]],
      -
      1220 const constant size_t* s_strides [[buffer(19)]],
      -
      1221 const constant size_t* b_strides [[buffer(20)]],
      -
      1222 uint3 tid [[threadgroup_position_in_grid]],
      -
      1223 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1224 uint simd_lid [[thread_index_in_simdgroup]]) {
      - -
      1226 x,
      -
      1227 w,
      -
      1228 scales,
      -
      1229 biases,
      -
      1230 lhs_indices,
      -
      1231 rhs_indices,
      -
      1232 y,
      -
      1233 out_vec_size,
      -
      1234 batch_ndims,
      -
      1235 batch_shape,
      -
      1236 lhs_strides,
      -
      1237 rhs_strides,
      -
      1238 x_batch_ndims,
      -
      1239 x_shape,
      -
      1240 x_strides,
      -
      1241 w_batch_ndims,
      -
      1242 w_shape,
      -
      1243 w_strides,
      -
      1244 s_strides,
      -
      1245 b_strides,
      -
      1246 tid);
      - -
      1248 w,
      -
      1249 scales,
      -
      1250 biases,
      -
      1251 x,
      -
      1252 y,
      -
      1253 in_vec_size,
      -
      1254 out_vec_size,
      -
      1255 tid,
      -
      1256 simd_gid,
      -
      1257 simd_lid);
      -
      1258}
      +
      1205 device T* y [[buffer(4)]],
      +
      1206 const constant int& in_vec_size [[buffer(5)]],
      +
      1207 const constant int& out_vec_size [[buffer(6)]],
      +
      1208 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1209 const constant int* x_shape [[buffer(8)]],
      +
      1210 const constant size_t* x_strides [[buffer(9)]],
      +
      1211 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1212 const constant int* w_shape [[buffer(11)]],
      +
      1213 const constant size_t* w_strides [[buffer(12)]],
      +
      1214 const constant size_t* s_strides [[buffer(13)]],
      +
      1215 const constant size_t* b_strides [[buffer(14)]],
      +
      1216 uint3 tid [[threadgroup_position_in_grid]],
      +
      1217 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1218 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1219 if (batched) {
      + +
      1221 x,
      +
      1222 w,
      +
      1223 scales,
      +
      1224 biases,
      +
      1225 y,
      +
      1226 out_vec_size,
      +
      1227 x_batch_ndims,
      +
      1228 x_shape,
      +
      1229 x_strides,
      +
      1230 w_batch_ndims,
      +
      1231 w_shape,
      +
      1232 w_strides,
      +
      1233 s_strides,
      +
      1234 b_strides,
      +
      1235 tid);
      +
      1236 }
      + +
      1238 w,
      +
      1239 scales,
      +
      1240 biases,
      +
      1241 x,
      +
      1242 y,
      +
      1243 in_vec_size,
      +
      1244 out_vec_size,
      +
      1245 tid,
      +
      1246 simd_gid,
      +
      1247 simd_lid);
      +
      1248}
      -
      1259
      -
      1260template <typename T, int group_size, int bits>
      -
      -
      1261[[kernel]] void bs_qvm(
      -
      1262 const device T* x [[buffer(0)]],
      -
      1263 const device uint32_t* w [[buffer(1)]],
      -
      1264 const device T* scales [[buffer(2)]],
      -
      1265 const device T* biases [[buffer(3)]],
      -
      1266 const device uint32_t* lhs_indices [[buffer(4)]],
      -
      1267 const device uint32_t* rhs_indices [[buffer(5)]],
      -
      1268 device T* y [[buffer(6)]],
      -
      1269 const constant int& in_vec_size [[buffer(7)]],
      -
      1270 const constant int& out_vec_size [[buffer(8)]],
      -
      1271 const constant int& batch_ndims [[buffer(9)]],
      -
      1272 const constant int* batch_shape [[buffer(10)]],
      -
      1273 const constant size_t* lhs_strides [[buffer(11)]],
      -
      1274 const constant size_t* rhs_strides [[buffer(12)]],
      -
      1275 const constant int& x_batch_ndims [[buffer(13)]],
      -
      1276 const constant int* x_shape [[buffer(14)]],
      -
      1277 const constant size_t* x_strides [[buffer(15)]],
      -
      1278 const constant int& w_batch_ndims [[buffer(16)]],
      -
      1279 const constant int* w_shape [[buffer(17)]],
      -
      1280 const constant size_t* w_strides [[buffer(18)]],
      -
      1281 const constant size_t* s_strides [[buffer(19)]],
      -
      1282 const constant size_t* b_strides [[buffer(20)]],
      -
      1283 uint3 tid [[threadgroup_position_in_grid]],
      -
      1284 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1285 uint simd_lid [[thread_index_in_simdgroup]]) {
      - -
      1287 x,
      -
      1288 w,
      -
      1289 scales,
      -
      1290 biases,
      -
      1291 lhs_indices,
      -
      1292 rhs_indices,
      +
      1249
      +
      1250template <typename T, const int group_size, const int bits, bool batched>
      +
      +
      1251[[kernel]] void qvm(
      +
      1252 const device uint32_t* w [[buffer(0)]],
      +
      1253 const device T* scales [[buffer(1)]],
      +
      1254 const device T* biases [[buffer(2)]],
      +
      1255 const device T* x [[buffer(3)]],
      +
      1256 device T* y [[buffer(4)]],
      +
      1257 const constant int& in_vec_size [[buffer(5)]],
      +
      1258 const constant int& out_vec_size [[buffer(6)]],
      +
      1259 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1260 const constant int* x_shape [[buffer(8)]],
      +
      1261 const constant size_t* x_strides [[buffer(9)]],
      +
      1262 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1263 const constant int* w_shape [[buffer(11)]],
      +
      1264 const constant size_t* w_strides [[buffer(12)]],
      +
      1265 const constant size_t* s_strides [[buffer(13)]],
      +
      1266 const constant size_t* b_strides [[buffer(14)]],
      +
      1267 uint3 tid [[threadgroup_position_in_grid]],
      +
      1268 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1269 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1270 if (batched) {
      + +
      1272 x,
      +
      1273 w,
      +
      1274 scales,
      +
      1275 biases,
      +
      1276 y,
      +
      1277 out_vec_size,
      +
      1278 x_batch_ndims,
      +
      1279 x_shape,
      +
      1280 x_strides,
      +
      1281 w_batch_ndims,
      +
      1282 w_shape,
      +
      1283 w_strides,
      +
      1284 s_strides,
      +
      1285 b_strides,
      +
      1286 tid);
      +
      1287 }
      + +
      1289 w,
      +
      1290 scales,
      +
      1291 biases,
      +
      1292 x,
      1293 y,
      -
      1294 out_vec_size,
      -
      1295 batch_ndims,
      -
      1296 batch_shape,
      -
      1297 lhs_strides,
      -
      1298 rhs_strides,
      -
      1299 x_batch_ndims,
      -
      1300 x_shape,
      -
      1301 x_strides,
      -
      1302 w_batch_ndims,
      -
      1303 w_shape,
      -
      1304 w_strides,
      -
      1305 s_strides,
      -
      1306 b_strides,
      -
      1307 tid);
      - -
      1309 x,
      -
      1310 w,
      -
      1311 scales,
      -
      1312 biases,
      -
      1313 y,
      -
      1314 in_vec_size,
      -
      1315 out_vec_size,
      -
      1316 tid,
      -
      1317 simd_gid,
      -
      1318 simd_lid);
      -
      1319}
      +
      1294 in_vec_size,
      +
      1295 out_vec_size,
      +
      1296 tid,
      +
      1297 simd_gid,
      +
      1298 simd_lid);
      +
      1299}
      +
      +
      1300
      +
      1301template <
      +
      1302 typename T,
      +
      1303 const int group_size,
      +
      1304 const int bits,
      +
      1305 const bool aligned_N,
      +
      1306 const bool batched,
      +
      1307 const int BM = 32,
      +
      1308 const int BK = 32,
      +
      1309 const int BN = 32>
      +
      +
      1310[[kernel]] void qmm_t(
      +
      1311 const device uint32_t* w [[buffer(0)]],
      +
      1312 const device T* scales [[buffer(1)]],
      +
      1313 const device T* biases [[buffer(2)]],
      +
      1314 const device T* x [[buffer(3)]],
      +
      1315 device T* y [[buffer(4)]],
      +
      1316 const constant int& K [[buffer(5)]],
      +
      1317 const constant int& N [[buffer(6)]],
      +
      1318 const constant int& M [[buffer(7)]],
      +
      1319 const constant int& x_batch_ndims [[buffer(8)]],
      +
      1320 const constant int* x_shape [[buffer(9)]],
      +
      1321 const constant size_t* x_strides [[buffer(10)]],
      +
      1322 const constant int& w_batch_ndims [[buffer(11)]],
      +
      1323 const constant int* w_shape [[buffer(12)]],
      +
      1324 const constant size_t* w_strides [[buffer(13)]],
      +
      1325 const constant size_t* s_strides [[buffer(14)]],
      +
      1326 const constant size_t* b_strides [[buffer(15)]],
      +
      1327 uint3 tid [[threadgroup_position_in_grid]],
      +
      1328 uint lid [[thread_index_in_threadgroup]],
      +
      1329 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1330 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1331 (void)lid;
      +
      1332
      +
      1333 constexpr int BK_padded = (BK + 16 / sizeof(T));
      +
      1334
      +
      1335 threadgroup T Xs[BM * BK_padded];
      +
      1336 threadgroup T Ws[BN * BK_padded];
      +
      1337
      +
      1338 if (batched) {
      + +
      1340 x,
      +
      1341 w,
      +
      1342 scales,
      +
      1343 biases,
      +
      1344 y,
      +
      1345 M * N,
      +
      1346 x_batch_ndims,
      +
      1347 x_shape,
      +
      1348 x_strides,
      +
      1349 w_batch_ndims,
      +
      1350 w_shape,
      +
      1351 w_strides,
      +
      1352 s_strides,
      +
      1353 b_strides,
      +
      1354 tid);
      +
      1355 }
      + +
      1357 w, scales, biases, x, y, Xs, Ws, K, N, M, tid, lid, simd_gid, simd_lid);
      +
      1358}
      -
      1320
      -
      1321template <
      -
      1322 typename T,
      -
      1323 const int group_size,
      -
      1324 const int bits,
      -
      1325 const bool aligned_N,
      -
      1326 const int BM = 32,
      -
      1327 const int BK = 32,
      -
      1328 const int BN = 32>
      -
      -
      1329[[kernel]] void bs_qmm_t(
      -
      1330 const device T* x [[buffer(0)]],
      -
      1331 const device uint32_t* w [[buffer(1)]],
      -
      1332 const device T* scales [[buffer(2)]],
      -
      1333 const device T* biases [[buffer(3)]],
      -
      1334 const device uint32_t* lhs_indices [[buffer(4)]],
      -
      1335 const device uint32_t* rhs_indices [[buffer(5)]],
      -
      1336 device T* y [[buffer(6)]],
      -
      1337 const constant int& M [[buffer(7)]],
      -
      1338 const constant int& N [[buffer(8)]],
      -
      1339 const constant int& K [[buffer(9)]],
      -
      1340 const constant int& batch_ndims [[buffer(10)]],
      -
      1341 const constant int* batch_shape [[buffer(11)]],
      -
      1342 const constant size_t* lhs_strides [[buffer(12)]],
      -
      1343 const constant size_t* rhs_strides [[buffer(13)]],
      -
      1344 const constant int& x_batch_ndims [[buffer(14)]],
      -
      1345 const constant int* x_shape [[buffer(15)]],
      -
      1346 const constant size_t* x_strides [[buffer(16)]],
      -
      1347 const constant int& w_batch_ndims [[buffer(17)]],
      -
      1348 const constant int* w_shape [[buffer(18)]],
      -
      1349 const constant size_t* w_strides [[buffer(19)]],
      -
      1350 const constant size_t* s_strides [[buffer(20)]],
      -
      1351 const constant size_t* b_strides [[buffer(21)]],
      -
      1352 uint3 tid [[threadgroup_position_in_grid]],
      -
      1353 uint lid [[thread_index_in_threadgroup]],
      -
      1354 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1355 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      1356 (void)lid;
      -
      1357
      -
      1358 constexpr int BK_padded = (BK + 16 / sizeof(T));
      1359
      -
      1360 threadgroup T Xs[BM * BK_padded];
      -
      1361 threadgroup T Ws[BN * BK_padded];
      -
      1362
      - -
      1364 x,
      -
      1365 w,
      -
      1366 scales,
      -
      1367 biases,
      -
      1368 lhs_indices,
      -
      1369 rhs_indices,
      -
      1370 y,
      -
      1371 M * N,
      -
      1372 batch_ndims,
      -
      1373 batch_shape,
      -
      1374 lhs_strides,
      -
      1375 rhs_strides,
      -
      1376 x_batch_ndims,
      -
      1377 x_shape,
      -
      1378 x_strides,
      -
      1379 w_batch_ndims,
      -
      1380 w_shape,
      -
      1381 w_strides,
      -
      1382 s_strides,
      -
      1383 b_strides,
      -
      1384 tid);
      - -
      1386 x, w, scales, biases, y, Xs, Ws, M, N, K, tid, lid, simd_gid, simd_lid);
      -
      1387}
      +
      1360template <
      +
      1361 typename T,
      +
      1362 const int group_size,
      +
      1363 const int bits,
      +
      1364 const bool batched,
      +
      1365 const int BM = 32,
      +
      1366 const int BK = 32,
      +
      1367 const int BN = 32>
      +
      +
      1368[[kernel]] void qmm_n(
      +
      1369 const device uint32_t* w [[buffer(0)]],
      +
      1370 const device T* scales [[buffer(1)]],
      +
      1371 const device T* biases [[buffer(2)]],
      +
      1372 const device T* x [[buffer(3)]],
      +
      1373 device T* y [[buffer(4)]],
      +
      1374 const constant int& K [[buffer(5)]],
      +
      1375 const constant int& N [[buffer(6)]],
      +
      1376 const constant int& M [[buffer(7)]],
      +
      1377 const constant int& x_batch_ndims [[buffer(8)]],
      +
      1378 const constant int* x_shape [[buffer(9)]],
      +
      1379 const constant size_t* x_strides [[buffer(10)]],
      +
      1380 const constant int& w_batch_ndims [[buffer(11)]],
      +
      1381 const constant int* w_shape [[buffer(12)]],
      +
      1382 const constant size_t* w_strides [[buffer(13)]],
      +
      1383 const constant size_t* s_strides [[buffer(14)]],
      +
      1384 const constant size_t* b_strides [[buffer(15)]],
      +
      1385 uint3 tid [[threadgroup_position_in_grid]],
      +
      1386 uint lid [[thread_index_in_threadgroup]],
      +
      1387 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1388 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1389 (void)lid;
      +
      1390
      +
      1391 constexpr int BK_padded = (BK + 16 / sizeof(T));
      +
      1392 constexpr int BN_padded = (BN + 16 / sizeof(T));
      +
      1393
      +
      1394 threadgroup T Xs[BM * BK_padded];
      +
      1395 threadgroup T Ws[BK * BN_padded];
      +
      1396
      +
      1397 if (batched) {
      + +
      1399 x,
      +
      1400 w,
      +
      1401 scales,
      +
      1402 biases,
      +
      1403 y,
      +
      1404 M * N,
      +
      1405 x_batch_ndims,
      +
      1406 x_shape,
      +
      1407 x_strides,
      +
      1408 w_batch_ndims,
      +
      1409 w_shape,
      +
      1410 w_strides,
      +
      1411 s_strides,
      +
      1412 b_strides,
      +
      1413 tid);
      +
      1414 }
      +
      1415
      + +
      1417 w, scales, biases, x, y, Xs, Ws, K, N, M, tid, lid, simd_gid, simd_lid);
      +
      1418}
      -
      1388
      -
      1389template <
      -
      1390 typename T,
      -
      1391 const int group_size,
      -
      1392 const int bits,
      -
      1393 const int BM = 32,
      -
      1394 const int BK = 32,
      -
      1395 const int BN = 32>
      -
      -
      1396[[kernel]] void bs_qmm_n(
      -
      1397 const device T* x [[buffer(0)]],
      -
      1398 const device uint32_t* w [[buffer(1)]],
      -
      1399 const device T* scales [[buffer(2)]],
      -
      1400 const device T* biases [[buffer(3)]],
      -
      1401 const device uint32_t* lhs_indices [[buffer(4)]],
      -
      1402 const device uint32_t* rhs_indices [[buffer(5)]],
      -
      1403 device T* y [[buffer(6)]],
      -
      1404 const constant int& M [[buffer(7)]],
      -
      1405 const constant int& N [[buffer(8)]],
      -
      1406 const constant int& K [[buffer(9)]],
      -
      1407 const constant int& batch_ndims [[buffer(10)]],
      -
      1408 const constant int* batch_shape [[buffer(11)]],
      -
      1409 const constant size_t* lhs_strides [[buffer(12)]],
      -
      1410 const constant size_t* rhs_strides [[buffer(13)]],
      -
      1411 const constant int& x_batch_ndims [[buffer(14)]],
      -
      1412 const constant int* x_shape [[buffer(15)]],
      -
      1413 const constant size_t* x_strides [[buffer(16)]],
      -
      1414 const constant int& w_batch_ndims [[buffer(17)]],
      -
      1415 const constant int* w_shape [[buffer(18)]],
      -
      1416 const constant size_t* w_strides [[buffer(19)]],
      -
      1417 const constant size_t* s_strides [[buffer(20)]],
      -
      1418 const constant size_t* b_strides [[buffer(21)]],
      -
      1419 uint3 tid [[threadgroup_position_in_grid]],
      -
      1420 uint lid [[thread_index_in_threadgroup]],
      -
      1421 uint simd_gid [[simdgroup_index_in_threadgroup]],
      -
      1422 uint simd_lid [[thread_index_in_simdgroup]]) {
      -
      1423 (void)lid;
      -
      1424
      -
      1425 constexpr int BK_padded = (BK + 16 / sizeof(T));
      -
      1426 constexpr int BN_padded = (BN + 16 / sizeof(T));
      -
      1427
      -
      1428 threadgroup T Xs[BM * BK_padded];
      -
      1429 threadgroup T Ws[BK * BN_padded];
      -
      1430
      - -
      1432 x,
      -
      1433 w,
      -
      1434 scales,
      -
      1435 biases,
      -
      1436 lhs_indices,
      -
      1437 rhs_indices,
      -
      1438 y,
      -
      1439 M * N,
      -
      1440 batch_ndims,
      -
      1441 batch_shape,
      -
      1442 lhs_strides,
      -
      1443 rhs_strides,
      -
      1444 x_batch_ndims,
      -
      1445 x_shape,
      -
      1446 x_strides,
      -
      1447 w_batch_ndims,
      -
      1448 w_shape,
      -
      1449 w_strides,
      -
      1450 s_strides,
      -
      1451 b_strides,
      -
      1452 tid);
      - -
      1454 x, w, scales, biases, y, Xs, Ws, M, N, K, tid, lid, simd_gid, simd_lid);
      -
      1455}
      +
      1419
      +
      1420template <typename T, int group_size, int bits>
      +
      +
      1421[[kernel]] void bs_qmv_fast(
      +
      1422 const device uint32_t* w [[buffer(0)]],
      +
      1423 const device T* scales [[buffer(1)]],
      +
      1424 const device T* biases [[buffer(2)]],
      +
      1425 const device T* x [[buffer(3)]],
      +
      1426 device T* y [[buffer(4)]],
      +
      1427 const constant int& in_vec_size [[buffer(5)]],
      +
      1428 const constant int& out_vec_size [[buffer(6)]],
      +
      1429 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1430 const constant int* x_shape [[buffer(8)]],
      +
      1431 const constant size_t* x_strides [[buffer(9)]],
      +
      1432 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1433 const constant int* w_shape [[buffer(11)]],
      +
      1434 const constant size_t* w_strides [[buffer(12)]],
      +
      1435 const constant size_t* s_strides [[buffer(13)]],
      +
      1436 const constant size_t* b_strides [[buffer(14)]],
      +
      1437 const constant int& batch_ndims [[buffer(15)]],
      +
      1438 const constant int* batch_shape [[buffer(16)]],
      +
      1439 const device uint32_t* lhs_indices [[buffer(17)]],
      +
      1440 const device uint32_t* rhs_indices [[buffer(18)]],
      +
      1441 const constant size_t* lhs_strides [[buffer(19)]],
      +
      1442 const constant size_t* rhs_strides [[buffer(20)]],
      +
      1443 uint3 tid [[threadgroup_position_in_grid]],
      +
      1444 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1445 uint simd_lid [[thread_index_in_simdgroup]]) {
      + +
      1447 x,
      +
      1448 w,
      +
      1449 scales,
      +
      1450 biases,
      +
      1451 lhs_indices,
      +
      1452 rhs_indices,
      +
      1453 y,
      +
      1454 out_vec_size,
      +
      1455 batch_ndims,
      +
      1456 batch_shape,
      +
      1457 lhs_strides,
      +
      1458 rhs_strides,
      +
      1459 x_batch_ndims,
      +
      1460 x_shape,
      +
      1461 x_strides,
      +
      1462 w_batch_ndims,
      +
      1463 w_shape,
      +
      1464 w_strides,
      +
      1465 s_strides,
      +
      1466 b_strides,
      +
      1467 tid);
      + +
      1469 w,
      +
      1470 scales,
      +
      1471 biases,
      +
      1472 x,
      +
      1473 y,
      +
      1474 in_vec_size,
      +
      1475 out_vec_size,
      +
      1476 tid,
      +
      1477 simd_gid,
      +
      1478 simd_lid);
      +
      1479}
      -
      1456
      -
      1457template <typename T, const int group_size, const int bits>
      -
      -
      1458[[kernel]] void affine_quantize(
      -
      1459 const device T* w [[buffer(0)]],
      -
      1460 device uint8_t* out [[buffer(1)]],
      -
      1461 device T* scales [[buffer(2)]],
      -
      1462 device T* biases [[buffer(3)]],
      -
      1463 uint2 index [[thread_position_in_grid]],
      -
      1464 uint2 grid_dim [[threads_per_grid]]) {
      -
      1465 constexpr T eps = T(1e-7);
      -
      1466 constexpr int simd_size = 32;
      -
      1467 constexpr int uint8_bits = 8;
      -
      1468 constexpr T n_bins = (1 << bits) - 1;
      -
      1469 constexpr int packs_per_int = uint8_bits / bits;
      -
      1470 constexpr int values_per_reduce = group_size / simd_size;
      -
      1471 constexpr int writes_per_reduce = packs_per_int / values_per_reduce;
      -
      1472 constexpr int writes_per_pack =
      -
      1473 writes_per_reduce > 1 ? 1 : values_per_reduce / packs_per_int;
      -
      1474
      -
      1475 static_assert(
      -
      1476 group_size % simd_size == 0,
      -
      1477 "Group size must be divisible by simd size.");
      -
      1478
      -
      1479 size_t offset = index.x + grid_dim.x * size_t(index.y);
      -
      1480 size_t in_index = offset * values_per_reduce;
      -
      1481 size_t out_index = offset * writes_per_pack;
      -
      1482
      -
      1483 T w_thread[values_per_reduce];
      -
      1484 T w_min = Limits<T>::max;
      -
      1485 T w_max = 0;
      -
      1486
      -
      1487#pragma clang loop unroll(full)
      -
      1488 for (int i = 0; i < values_per_reduce; i++) {
      -
      1489 T val = w[in_index + i];
      -
      1490 w_thread[i] = val;
      -
      1491 w_min = min(w_min, val);
      -
      1492 w_max = max(w_max, val);
      -
      1493 }
      -
      1494
      -
      1495 w_min = simd_min(w_min);
      -
      1496 w_max = simd_max(w_max);
      -
      1497
      -
      1498 T scale = max((w_max - w_min) / n_bins, eps);
      -
      1499 bool side = abs(w_min) > abs(w_max);
      -
      1500 scale = side ? scale : -scale;
      -
      1501 T edge = side ? w_min : w_max;
      -
      1502 T q0 = round(edge / scale);
      -
      1503 bool at_zero = q0 == 0.0f;
      -
      1504 scale = at_zero ? scale : edge / q0;
      -
      1505 T bias = at_zero ? T(0) : edge;
      -
      1506
      -
      1507 // Write out the scales and biases
      -
      1508 size_t gindex = in_index / group_size;
      -
      1509 if (in_index % group_size == 0) {
      -
      1510 scales[gindex] = scale;
      -
      1511 biases[gindex] = bias;
      -
      1512 }
      -
      1513
      -
      1514 uint8_t output = 0;
      -
      1515#pragma clang loop unroll(full)
      -
      1516 for (int i = 0; i < values_per_reduce; i++) {
      -
      1517 uint8_t val = min(round((w_thread[i] - bias) / scale), n_bins);
      -
      1518 if (bits == 8) {
      -
      1519 output = val;
      -
      1520 } else {
      -
      1521 output += val << (bits * (i % packs_per_int));
      -
      1522 }
      -
      1523
      -
      1524 if (packs_per_int < values_per_reduce &&
      -
      1525 i % packs_per_int == packs_per_int - 1) {
      -
      1526 out[out_index + i / packs_per_int] = output;
      -
      1527 output = 0;
      -
      1528 } else {
      -
      1529#pragma clang loop unroll(full)
      -
      1530 for (int j = 0; j < writes_per_reduce - 1; j++) {
      -
      1531 uint8_t sval = simd_shuffle_down(val, j + 1);
      -
      1532 output += sval << (bits * (values_per_reduce + j + i));
      -
      1533 }
      -
      1534 }
      -
      1535 }
      -
      1536 if (writes_per_reduce > 0 && out_index % writes_per_reduce == 0) {
      -
      1537 out[out_index / writes_per_reduce] = output;
      -
      1538 }
      -
      1539}
      +
      1480
      +
      1481template <typename T, int group_size, int bits>
      +
      +
      1482[[kernel]] void bs_qmv(
      +
      1483 const device uint32_t* w [[buffer(0)]],
      +
      1484 const device T* scales [[buffer(1)]],
      +
      1485 const device T* biases [[buffer(2)]],
      +
      1486 const device T* x [[buffer(3)]],
      +
      1487 device T* y [[buffer(4)]],
      +
      1488 const constant int& in_vec_size [[buffer(5)]],
      +
      1489 const constant int& out_vec_size [[buffer(6)]],
      +
      1490 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1491 const constant int* x_shape [[buffer(8)]],
      +
      1492 const constant size_t* x_strides [[buffer(9)]],
      +
      1493 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1494 const constant int* w_shape [[buffer(11)]],
      +
      1495 const constant size_t* w_strides [[buffer(12)]],
      +
      1496 const constant size_t* s_strides [[buffer(13)]],
      +
      1497 const constant size_t* b_strides [[buffer(14)]],
      +
      1498 const constant int& batch_ndims [[buffer(15)]],
      +
      1499 const constant int* batch_shape [[buffer(16)]],
      +
      1500 const device uint32_t* lhs_indices [[buffer(17)]],
      +
      1501 const device uint32_t* rhs_indices [[buffer(18)]],
      +
      1502 const constant size_t* lhs_strides [[buffer(19)]],
      +
      1503 const constant size_t* rhs_strides [[buffer(20)]],
      +
      1504 uint3 tid [[threadgroup_position_in_grid]],
      +
      1505 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1506 uint simd_lid [[thread_index_in_simdgroup]]) {
      + +
      1508 x,
      +
      1509 w,
      +
      1510 scales,
      +
      1511 biases,
      +
      1512 lhs_indices,
      +
      1513 rhs_indices,
      +
      1514 y,
      +
      1515 out_vec_size,
      +
      1516 batch_ndims,
      +
      1517 batch_shape,
      +
      1518 lhs_strides,
      +
      1519 rhs_strides,
      +
      1520 x_batch_ndims,
      +
      1521 x_shape,
      +
      1522 x_strides,
      +
      1523 w_batch_ndims,
      +
      1524 w_shape,
      +
      1525 w_strides,
      +
      1526 s_strides,
      +
      1527 b_strides,
      +
      1528 tid);
      + +
      1530 w,
      +
      1531 scales,
      +
      1532 biases,
      +
      1533 x,
      +
      1534 y,
      +
      1535 in_vec_size,
      +
      1536 out_vec_size,
      +
      1537 tid,
      +
      1538 simd_gid,
      +
      1539 simd_lid);
      +
      1540}
      -
      1540
      -
      1541template <typename T, const int group_size, const int bits>
      -
      - -
      1543 const device T* w [[buffer(0)]],
      -
      1544 const device T* scales [[buffer(1)]],
      -
      1545 const device T* biases [[buffer(2)]],
      -
      1546 device uint8_t* out [[buffer(3)]],
      -
      1547 uint2 index [[thread_position_in_grid]],
      -
      1548 uint2 grid_dim [[threads_per_grid]]) {
      -
      1549 constexpr int uint8_bits = 8;
      -
      1550 constexpr int packs_per_int = uint8_bits / bits;
      -
      1551 constexpr T n_bins = (1 << bits) - 1;
      -
      1552
      -
      1553 size_t offset = index.x + grid_dim.x * size_t(index.y);
      -
      1554 size_t in_index = offset * packs_per_int;
      -
      1555 size_t gindex = in_index / group_size;
      -
      1556
      -
      1557 T scale = scales[gindex];
      -
      1558 T bias = biases[gindex];
      -
      1559
      -
      1560 uint8_t output = 0;
      -
      1561#pragma clang loop unroll(full)
      -
      1562 for (int i = 0; i < packs_per_int; i++) {
      -
      1563 uint8_t val = min(round((w[in_index + i] - bias) / scale), n_bins);
      -
      1564 if (bits == 8) {
      -
      1565 output = val;
      -
      1566 } else {
      -
      1567 output += val << (bits * i);
      -
      1568 }
      -
      1569 }
      -
      1570 out[offset] = output;
      -
      1571}
      +
      1541
      +
      1542template <typename T, int group_size, int bits>
      +
      +
      1543[[kernel]] void bs_qvm(
      +
      1544 const device uint32_t* w [[buffer(0)]],
      +
      1545 const device T* scales [[buffer(1)]],
      +
      1546 const device T* biases [[buffer(2)]],
      +
      1547 const device T* x [[buffer(3)]],
      +
      1548 device T* y [[buffer(4)]],
      +
      1549 const constant int& in_vec_size [[buffer(5)]],
      +
      1550 const constant int& out_vec_size [[buffer(6)]],
      +
      1551 const constant int& x_batch_ndims [[buffer(7)]],
      +
      1552 const constant int* x_shape [[buffer(8)]],
      +
      1553 const constant size_t* x_strides [[buffer(9)]],
      +
      1554 const constant int& w_batch_ndims [[buffer(10)]],
      +
      1555 const constant int* w_shape [[buffer(11)]],
      +
      1556 const constant size_t* w_strides [[buffer(12)]],
      +
      1557 const constant size_t* s_strides [[buffer(13)]],
      +
      1558 const constant size_t* b_strides [[buffer(14)]],
      +
      1559 const constant int& batch_ndims [[buffer(15)]],
      +
      1560 const constant int* batch_shape [[buffer(16)]],
      +
      1561 const device uint32_t* lhs_indices [[buffer(17)]],
      +
      1562 const device uint32_t* rhs_indices [[buffer(18)]],
      +
      1563 const constant size_t* lhs_strides [[buffer(19)]],
      +
      1564 const constant size_t* rhs_strides [[buffer(20)]],
      +
      1565 uint3 tid [[threadgroup_position_in_grid]],
      +
      1566 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1567 uint simd_lid [[thread_index_in_simdgroup]]) {
      + +
      1569 x,
      +
      1570 w,
      +
      1571 scales,
      +
      1572 biases,
      +
      1573 lhs_indices,
      +
      1574 rhs_indices,
      +
      1575 y,
      +
      1576 out_vec_size,
      +
      1577 batch_ndims,
      +
      1578 batch_shape,
      +
      1579 lhs_strides,
      +
      1580 rhs_strides,
      +
      1581 x_batch_ndims,
      +
      1582 x_shape,
      +
      1583 x_strides,
      +
      1584 w_batch_ndims,
      +
      1585 w_shape,
      +
      1586 w_strides,
      +
      1587 s_strides,
      +
      1588 b_strides,
      +
      1589 tid);
      + +
      1591 w,
      +
      1592 scales,
      +
      1593 biases,
      +
      1594 x,
      +
      1595 y,
      +
      1596 in_vec_size,
      +
      1597 out_vec_size,
      +
      1598 tid,
      +
      1599 simd_gid,
      +
      1600 simd_lid);
      +
      1601}
      -
      1572
      -
      1573template <typename T, const int group_size, const int bits>
      -
      -
      1574[[kernel]] void affine_dequantize(
      -
      1575 const device uint8_t* w [[buffer(0)]],
      -
      1576 const device T* scales [[buffer(1)]],
      -
      1577 const device T* biases [[buffer(2)]],
      -
      1578 device T* out [[buffer(3)]],
      -
      1579 uint2 index [[thread_position_in_grid]],
      -
      1580 uint2 grid_dim [[threads_per_grid]]) {
      -
      1581 constexpr int uint8_bits = 8;
      -
      1582 constexpr int packs_per_int = uint8_bits / bits;
      -
      1583
      -
      1584 size_t offset = index.x + grid_dim.x * size_t(index.y);
      -
      1585 size_t oindex = offset * packs_per_int;
      -
      1586 size_t gindex = oindex / group_size;
      -
      1587 T scale = scales[gindex];
      -
      1588 T bias = biases[gindex];
      -
      1589 uint val = w[offset];
      -
      1590
      -
      1591#pragma clang loop unroll(full)
      -
      1592 for (int i = 0; i < packs_per_int; i++) {
      -
      1593 uint8_t d;
      -
      1594 if (bits == 2) {
      -
      1595 d = (val >> (bits * i)) & 0x03;
      -
      1596 } else if (bits == 4) {
      -
      1597 d = (val >> (bits * i)) & 0x0f;
      -
      1598 } else if (bits == 8) {
      -
      1599 d = val;
      -
      1600 }
      -
      1601 out[oindex + i] = scale * d + bias;
      -
      1602 }
      -
      1603}
      +
      1602
      +
      1603template <
      +
      1604 typename T,
      +
      1605 const int group_size,
      +
      1606 const int bits,
      +
      1607 const bool aligned_N,
      +
      1608 const int BM = 32,
      +
      1609 const int BK = 32,
      +
      1610 const int BN = 32>
      +
      +
      1611[[kernel]] void bs_qmm_t(
      +
      1612 const device uint32_t* w [[buffer(0)]],
      +
      1613 const device T* scales [[buffer(1)]],
      +
      1614 const device T* biases [[buffer(2)]],
      +
      1615 const device T* x [[buffer(3)]],
      +
      1616 device T* y [[buffer(4)]],
      +
      1617 const constant int& K [[buffer(5)]],
      +
      1618 const constant int& N [[buffer(6)]],
      +
      1619 const constant int& M [[buffer(7)]],
      +
      1620 const constant int& x_batch_ndims [[buffer(8)]],
      +
      1621 const constant int* x_shape [[buffer(9)]],
      +
      1622 const constant size_t* x_strides [[buffer(10)]],
      +
      1623 const constant int& w_batch_ndims [[buffer(11)]],
      +
      1624 const constant int* w_shape [[buffer(12)]],
      +
      1625 const constant size_t* w_strides [[buffer(13)]],
      +
      1626 const constant size_t* s_strides [[buffer(14)]],
      +
      1627 const constant size_t* b_strides [[buffer(15)]],
      +
      1628 const constant int& batch_ndims [[buffer(16)]],
      +
      1629 const constant int* batch_shape [[buffer(17)]],
      +
      1630 const device uint32_t* lhs_indices [[buffer(18)]],
      +
      1631 const device uint32_t* rhs_indices [[buffer(19)]],
      +
      1632 const constant size_t* lhs_strides [[buffer(20)]],
      +
      1633 const constant size_t* rhs_strides [[buffer(21)]],
      +
      1634 uint3 tid [[threadgroup_position_in_grid]],
      +
      1635 uint lid [[thread_index_in_threadgroup]],
      +
      1636 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1637 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1638 (void)lid;
      +
      1639
      +
      1640 constexpr int BK_padded = (BK + 16 / sizeof(T));
      +
      1641
      +
      1642 threadgroup T Xs[BM * BK_padded];
      +
      1643 threadgroup T Ws[BN * BK_padded];
      +
      1644
      + +
      1646 x,
      +
      1647 w,
      +
      1648 scales,
      +
      1649 biases,
      +
      1650 lhs_indices,
      +
      1651 rhs_indices,
      +
      1652 y,
      +
      1653 M * N,
      +
      1654 batch_ndims,
      +
      1655 batch_shape,
      +
      1656 lhs_strides,
      +
      1657 rhs_strides,
      +
      1658 x_batch_ndims,
      +
      1659 x_shape,
      +
      1660 x_strides,
      +
      1661 w_batch_ndims,
      +
      1662 w_shape,
      +
      1663 w_strides,
      +
      1664 s_strides,
      +
      1665 b_strides,
      +
      1666 tid);
      + +
      1668 w, scales, biases, x, y, Xs, Ws, K, N, M, tid, lid, simd_gid, simd_lid);
      +
      1669}
      +
      +
      1670
      +
      1671template <
      +
      1672 typename T,
      +
      1673 const int group_size,
      +
      1674 const int bits,
      +
      1675 const int BM = 32,
      +
      1676 const int BK = 32,
      +
      1677 const int BN = 32>
      +
      +
      1678[[kernel]] void bs_qmm_n(
      +
      1679 const device uint32_t* w [[buffer(0)]],
      +
      1680 const device T* scales [[buffer(1)]],
      +
      1681 const device T* biases [[buffer(2)]],
      +
      1682 const device T* x [[buffer(3)]],
      +
      1683 device T* y [[buffer(4)]],
      +
      1684 const constant int& K [[buffer(5)]],
      +
      1685 const constant int& N [[buffer(6)]],
      +
      1686 const constant int& M [[buffer(7)]],
      +
      1687 const constant int& x_batch_ndims [[buffer(8)]],
      +
      1688 const constant int* x_shape [[buffer(9)]],
      +
      1689 const constant size_t* x_strides [[buffer(10)]],
      +
      1690 const constant int& w_batch_ndims [[buffer(11)]],
      +
      1691 const constant int* w_shape [[buffer(12)]],
      +
      1692 const constant size_t* w_strides [[buffer(13)]],
      +
      1693 const constant size_t* s_strides [[buffer(14)]],
      +
      1694 const constant size_t* b_strides [[buffer(15)]],
      +
      1695 const constant int& batch_ndims [[buffer(16)]],
      +
      1696 const constant int* batch_shape [[buffer(17)]],
      +
      1697 const device uint32_t* lhs_indices [[buffer(18)]],
      +
      1698 const device uint32_t* rhs_indices [[buffer(19)]],
      +
      1699 const constant size_t* lhs_strides [[buffer(20)]],
      +
      1700 const constant size_t* rhs_strides [[buffer(21)]],
      +
      1701 uint3 tid [[threadgroup_position_in_grid]],
      +
      1702 uint lid [[thread_index_in_threadgroup]],
      +
      1703 uint simd_gid [[simdgroup_index_in_threadgroup]],
      +
      1704 uint simd_lid [[thread_index_in_simdgroup]]) {
      +
      1705 (void)lid;
      +
      1706
      +
      1707 constexpr int BK_padded = (BK + 16 / sizeof(T));
      +
      1708 constexpr int BN_padded = (BN + 16 / sizeof(T));
      +
      1709
      +
      1710 threadgroup T Xs[BM * BK_padded];
      +
      1711 threadgroup T Ws[BK * BN_padded];
      +
      1712
      + +
      1714 x,
      +
      1715 w,
      +
      1716 scales,
      +
      1717 biases,
      +
      1718 lhs_indices,
      +
      1719 rhs_indices,
      +
      1720 y,
      +
      1721 M * N,
      +
      1722 batch_ndims,
      +
      1723 batch_shape,
      +
      1724 lhs_strides,
      +
      1725 rhs_strides,
      +
      1726 x_batch_ndims,
      +
      1727 x_shape,
      +
      1728 x_strides,
      +
      1729 w_batch_ndims,
      +
      1730 w_shape,
      +
      1731 w_strides,
      +
      1732 s_strides,
      +
      1733 b_strides,
      +
      1734 tid);
      + +
      1736 w, scales, biases, x, y, Xs, Ws, K, N, M, tid, lid, simd_gid, simd_lid);
      +
      1737}
      +
      +
      1738
      +
      1739template <typename T, const int group_size, const int bits>
      +
      +
      1740[[kernel]] void affine_quantize(
      +
      1741 const device T* w [[buffer(0)]],
      +
      1742 device uint8_t* out [[buffer(1)]],
      +
      1743 device T* scales [[buffer(2)]],
      +
      1744 device T* biases [[buffer(3)]],
      +
      1745 uint2 index [[thread_position_in_grid]],
      +
      1746 uint2 grid_dim [[threads_per_grid]]) {
      +
      1747 constexpr T eps = T(1e-7);
      +
      1748 constexpr int simd_size = 32;
      +
      1749 constexpr int uint8_bits = 8;
      +
      1750 constexpr T n_bins = (1 << bits) - 1;
      +
      1751 constexpr int packs_per_int = uint8_bits / bits;
      +
      1752 constexpr int values_per_reduce = group_size / simd_size;
      +
      1753 constexpr int writes_per_reduce = packs_per_int / values_per_reduce;
      +
      1754 constexpr int writes_per_pack =
      +
      1755 writes_per_reduce > 1 ? 1 : values_per_reduce / packs_per_int;
      +
      1756
      +
      1757 static_assert(
      +
      1758 group_size % simd_size == 0,
      +
      1759 "Group size must be divisible by simd size.");
      +
      1760
      +
      1761 size_t offset = index.x + grid_dim.x * size_t(index.y);
      +
      1762 size_t in_index = offset * values_per_reduce;
      +
      1763 size_t out_index = offset * writes_per_pack;
      +
      1764
      +
      1765 T w_thread[values_per_reduce];
      +
      1766 T w_min = Limits<T>::max;
      +
      1767 T w_max = 0;
      +
      1768
      +
      1769#pragma clang loop unroll(full)
      +
      1770 for (int i = 0; i < values_per_reduce; i++) {
      +
      1771 T val = w[in_index + i];
      +
      1772 w_thread[i] = val;
      +
      1773 w_min = min(w_min, val);
      +
      1774 w_max = max(w_max, val);
      +
      1775 }
      +
      1776
      +
      1777 w_min = simd_min(w_min);
      +
      1778 w_max = simd_max(w_max);
      +
      1779
      +
      1780 T scale = max((w_max - w_min) / n_bins, eps);
      +
      1781 bool side = abs(w_min) > abs(w_max);
      +
      1782 scale = side ? scale : -scale;
      +
      1783 T edge = side ? w_min : w_max;
      +
      1784 T q0 = round(edge / scale);
      +
      1785 bool at_zero = q0 == 0.0f;
      +
      1786 scale = at_zero ? scale : edge / q0;
      +
      1787 T bias = at_zero ? T(0) : edge;
      +
      1788
      +
      1789 // Write out the scales and biases
      +
      1790 size_t gindex = in_index / group_size;
      +
      1791 if (in_index % group_size == 0) {
      +
      1792 scales[gindex] = scale;
      +
      1793 biases[gindex] = bias;
      +
      1794 }
      +
      1795
      +
      1796 uint8_t output = 0;
      +
      1797#pragma clang loop unroll(full)
      +
      1798 for (int i = 0; i < values_per_reduce; i++) {
      +
      1799 uint8_t val = min(round((w_thread[i] - bias) / scale), n_bins);
      +
      1800 if (bits == 8) {
      +
      1801 output = val;
      +
      1802 } else {
      +
      1803 output += val << (bits * (i % packs_per_int));
      +
      1804 }
      +
      1805
      +
      1806 if (packs_per_int < values_per_reduce &&
      +
      1807 i % packs_per_int == packs_per_int - 1) {
      +
      1808 out[out_index + i / packs_per_int] = output;
      +
      1809 output = 0;
      +
      1810 } else {
      +
      1811#pragma clang loop unroll(full)
      +
      1812 for (int j = 0; j < writes_per_reduce - 1; j++) {
      +
      1813 uint8_t sval = simd_shuffle_down(val, j + 1);
      +
      1814 output += sval << (bits * (values_per_reduce + j + i));
      +
      1815 }
      +
      1816 }
      +
      1817 }
      +
      1818 if (writes_per_reduce > 0 && out_index % writes_per_reduce == 0) {
      +
      1819 out[out_index / writes_per_reduce] = output;
      +
      1820 }
      +
      1821}
      +
      +
      1822
      +
      1823template <typename T, const int group_size, const int bits>
      +
      + +
      1825 const device T* w [[buffer(0)]],
      +
      1826 const device T* scales [[buffer(1)]],
      +
      1827 const device T* biases [[buffer(2)]],
      +
      1828 device uint8_t* out [[buffer(3)]],
      +
      1829 uint2 index [[thread_position_in_grid]],
      +
      1830 uint2 grid_dim [[threads_per_grid]]) {
      +
      1831 constexpr int uint8_bits = 8;
      +
      1832 constexpr int packs_per_int = uint8_bits / bits;
      +
      1833 constexpr T n_bins = (1 << bits) - 1;
      +
      1834
      +
      1835 size_t offset = index.x + grid_dim.x * size_t(index.y);
      +
      1836 size_t in_index = offset * packs_per_int;
      +
      1837 size_t gindex = in_index / group_size;
      +
      1838
      +
      1839 T scale = scales[gindex];
      +
      1840 T bias = biases[gindex];
      +
      1841
      +
      1842 uint8_t output = 0;
      +
      1843#pragma clang loop unroll(full)
      +
      1844 for (int i = 0; i < packs_per_int; i++) {
      +
      1845 uint8_t val = min(round((w[in_index + i] - bias) / scale), n_bins);
      +
      1846 if (bits == 8) {
      +
      1847 output = val;
      +
      1848 } else {
      +
      1849 output += val << (bits * i);
      +
      1850 }
      +
      1851 }
      +
      1852 out[offset] = output;
      +
      1853}
      +
      +
      1854
      +
      1855template <typename T, const int group_size, const int bits>
      +
      +
      1856[[kernel]] void affine_dequantize(
      +
      1857 const device uint8_t* w [[buffer(0)]],
      +
      1858 const device T* scales [[buffer(1)]],
      +
      1859 const device T* biases [[buffer(2)]],
      +
      1860 device T* out [[buffer(3)]],
      +
      1861 uint2 index [[thread_position_in_grid]],
      +
      1862 uint2 grid_dim [[threads_per_grid]]) {
      +
      1863 constexpr int uint8_bits = 8;
      +
      1864 constexpr int packs_per_int = uint8_bits / bits;
      +
      1865
      +
      1866 size_t offset = index.x + grid_dim.x * size_t(index.y);
      +
      1867 size_t oindex = offset * packs_per_int;
      +
      1868 size_t gindex = oindex / group_size;
      +
      1869 T scale = scales[gindex];
      +
      1870 T bias = biases[gindex];
      +
      1871 uint val = w[offset];
      +
      1872
      +
      1873#pragma clang loop unroll(full)
      +
      1874 for (int i = 0; i < packs_per_int; i++) {
      +
      1875 uint8_t d;
      +
      1876 if (bits == 2) {
      +
      1877 d = (val >> (bits * i)) & 0x03;
      +
      1878 } else if (bits == 4) {
      +
      1879 d = (val >> (bits * i)) & 0x0f;
      +
      1880 } else if (bits == 8) {
      +
      1881 d = val;
      +
      1882 }
      +
      1883 out[oindex + i] = scale * d + bias;
      +
      1884 }
      +
      1885}
      static constant constexpr const uint8_t simd_size
      Definition ops.h:22
      METAL_FUNC ulong2 elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim)
      Definition utils.h:7
      @@ -1768,53 +2056,56 @@ $(function(){ initResizable(false); });
      METAL_FUNC bfloat16_t simd_shuffle_down(bfloat16_t data, ushort delta)
      Definition bf16_math.h:391
      array bits(const std::vector< int > &shape, int width, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})
      Generate an array with type uint32 filled with random bits.
      #define MLX_MTL_CONST
      Definition quantized.h:8
      -
      void bs_qmv(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1200
      -
      U qdot_safe(const device uint8_t *w, const thread U *x_thread, U scale, U bias, U sum, int N)
      Definition quantized.h:141
      -
      void qvm(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1050
      -
      METAL_FUNC void adjust_matrix_offsets(const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *&y, int output_stride, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid)
      Definition quantized.h:946
      -
      void bs_qmm_t(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &M, const constant int &N, const constant int &K, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1329
      -
      void bs_qvm(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1261
      -
      void affine_quantize(const device T *w, device uint8_t *out, device T *scales, device T *biases, uint2 index, uint2 grid_dim)
      Definition quantized.h:1458
      -
      METAL_FUNC void qmm_n_impl(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:820
      -
      void affine_dequantize(const device uint8_t *w, const device T *scales, const device T *biases, device T *out, uint2 index, uint2 grid_dim)
      Definition quantized.h:1574
      +
      U qdot_safe(const device uint8_t *w, const thread U *x_thread, U scale, U bias, U sum, int N)
      Definition quantized.h:142
      +
      METAL_FUNC void qmm_n_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &K, const constant int &N, const constant int &M, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:879
      +
      void bs_qmm_n(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1678
      +
      void qmm_n(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1368
      +
      void affine_quantize(const device T *w, device uint8_t *out, device T *scales, device T *biases, uint2 index, uint2 grid_dim)
      Definition quantized.h:1740
      +
      METAL_FUNC void qvm_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:647
      +
      void bs_qmv_fast(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1421
      +
      void affine_dequantize(const device uint8_t *w, const device T *scales, const device T *biases, device T *out, uint2 index, uint2 grid_dim)
      Definition quantized.h:1856
      static constant constexpr const int SIMD_SIZE
      Definition quantized.h:10
      -
      void bs_qmv_fast(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1139
      -
      void affine_quantize_scales_biases(const device T *w, const device T *scales, const device T *biases, device uint8_t *out, uint2 index, uint2 grid_dim)
      Definition quantized.h:1542
      -
      U load_vector(const device T *x, thread U *x_thread)
      Definition quantized.h:13
      -
      METAL_FUNC void qmv_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:439
      -
      METAL_FUNC void qvm_impl(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:588
      -
      U load_vector_safe(const device T *x, thread U *x_thread, int N)
      Definition quantized.h:51
      -
      U qdot(const device uint8_t *w, const thread U *x_thread, U scale, U bias, U sum)
      Definition quantized.h:98
      -
      void qmm_n(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1113
      -
      METAL_FUNC void qmv_fast_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:375
      -
      METAL_FUNC void qmm_t_impl(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:699
      -
      void bs_qmm_n(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *y, const constant int &M, const constant int &N, const constant int &K, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1396
      -
      void qmv_fast(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1000
      -
      void qmv(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1025
      -
      void qouter(const thread uint8_t *w, U x, U scale, U bias, thread U *result)
      Definition quantized.h:186
      -
      void dequantize(const device uint8_t *w, U scale, U bias, threadgroup U *w_local)
      Definition quantized.h:218
      -
      void qmm_t(const device T *x, const device uint32_t *w, const device T *scales, const device T *biases, device T *y, const constant int &M, const constant int &N, const constant int &K, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1082
      +
      void qmv(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1200
      +
      void bs_qvm(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1543
      +
      void affine_quantize_scales_biases(const device T *w, const device T *scales, const device T *biases, device uint8_t *out, uint2 index, uint2 grid_dim)
      Definition quantized.h:1824
      +
      void qmv_fast(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1149
      +
      void qmv_quad(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint quad_gid, uint quad_lid)
      Definition quantized.h:1098
      +
      static constant constexpr const int QUAD_SIZE
      Definition quantized.h:11
      +
      U load_vector(const device T *x, thread U *x_thread)
      Definition quantized.h:14
      +
      METAL_FUNC void qmv_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:498
      +
      U load_vector_safe(const device T *x, thread U *x_thread, int N)
      Definition quantized.h:52
      +
      void bs_qmm_t(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1611
      +
      U qdot(const device uint8_t *w, const thread U *x_thread, U scale, U bias, U sum)
      Definition quantized.h:99
      +
      METAL_FUNC void qmv_fast_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:434
      +
      void qmm_t(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &K, const constant int &N, const constant int &M, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1310
      +
      METAL_FUNC void adjust_matrix_offsets(const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, device T *&y, int output_stride, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid)
      Definition quantized.h:1005
      +
      void bs_qmv(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, const constant int &batch_ndims, const constant int *batch_shape, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, const constant size_t *lhs_strides, const constant size_t *rhs_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1482
      +
      METAL_FUNC void qmv_quad_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, constant int &in_vec_size, const constant int &out_vec_size, uint3 tid, uint quad_gid, uint quad_lid)
      Definition quantized.h:376
      +
      void qvm(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, const constant int &in_vec_size, const constant int &out_vec_size, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid, uint simd_gid, uint simd_lid)
      Definition quantized.h:1251
      +
      void qouter(const thread uint8_t *w, U x, U scale, U bias, thread U *result)
      Definition quantized.h:187
      +
      void dequantize(const device uint8_t *w, U scale, U bias, threadgroup U *w_local)
      Definition quantized.h:219
      +
      METAL_FUNC void qmm_t_impl(const device uint32_t *w, const device T *scales, const device T *biases, const device T *x, device T *y, threadgroup T *Xs, threadgroup T *Ws, const constant int &K, const constant int &N, const constant int &M, uint3 tid, uint lid, uint simd_gid, uint simd_lid)
      Definition quantized.h:758
      Definition utils.h:17
      -
      Definition quantized.h:261
      -
      const int group_stride
      Definition quantized.h:281
      -
      static constant constexpr const short BCOLS_PACKED
      Definition quantized.h:273
      -
      const device T * biases
      Definition quantized.h:290
      -
      short group_step_cnt
      Definition quantized.h:280
      -
      static constant constexpr const short group_steps
      Definition quantized.h:276
      -
      const short thread_idx
      Definition quantized.h:283
      -
      const device T * scales
      Definition quantized.h:289
      -
      static constant constexpr const short n_reads
      Definition quantized.h:274
      -
      void next()
      Definition quantized.h:353
      -
      void load_safe(short2 src_tile_dim) const
      Definition quantized.h:326
      -
      const int src_ld
      Definition quantized.h:278
      -
      const short bi
      Definition quantized.h:284
      -
      void load_unsafe() const
      Definition quantized.h:313
      -
      static constant constexpr const short pack_factor
      Definition quantized.h:272
      -
      threadgroup T * dst
      Definition quantized.h:287
      -
      const int tile_stride
      Definition quantized.h:279
      -
      const device uint32_t * src
      Definition quantized.h:288
      -
      const short bj
      Definition quantized.h:285
      -
      QuantizedBlockLoader(const device uint32_t *src_, const device T *scales_, const device T *biases_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)
      Definition quantized.h:292
      +
      Definition quantized.h:262
      +
      const int group_stride
      Definition quantized.h:282
      +
      static constant constexpr const short BCOLS_PACKED
      Definition quantized.h:274
      +
      const device T * biases
      Definition quantized.h:291
      +
      short group_step_cnt
      Definition quantized.h:281
      +
      static constant constexpr const short group_steps
      Definition quantized.h:277
      +
      const short thread_idx
      Definition quantized.h:284
      +
      const device T * scales
      Definition quantized.h:290
      +
      static constant constexpr const short n_reads
      Definition quantized.h:275
      +
      void next()
      Definition quantized.h:354
      +
      void load_safe(short2 src_tile_dim) const
      Definition quantized.h:327
      +
      const int src_ld
      Definition quantized.h:279
      +
      const short bi
      Definition quantized.h:285
      +
      void load_unsafe() const
      Definition quantized.h:314
      +
      static constant constexpr const short pack_factor
      Definition quantized.h:273
      +
      threadgroup T * dst
      Definition quantized.h:288
      +
      const int tile_stride
      Definition quantized.h:280
      +
      const device uint32_t * src
      Definition quantized.h:289
      +
      const short bj
      Definition quantized.h:286
      +
      QuantizedBlockLoader(const device uint32_t *src_, const device T *scales_, const device T *biases_, const int src_ld_, threadgroup T *dst_, ushort simd_group_id, ushort simd_lane_id)
      Definition quantized.h:293
      Definition loader.h:25
      diff --git a/docs/build/html/readwrite_8h_source.html b/docs/build/html/readwrite_8h_source.html index 95e69b3ee..9b6e62dd4 100644 --- a/docs/build/html/readwrite_8h_source.html +++ b/docs/build/html/readwrite_8h_source.html @@ -775,7 +775,7 @@ $(function(){ initResizable(false); });
      621 }
      622}
      -
      MTL::Buffer * buf
      Definition allocator.h:38
      +
      MTL::Buffer * buf
      Definition allocator.h:39
      static constant constexpr const bool inv_
      Definition fft.h:23
      static constant constexpr const int elems_per_thread_
      Definition fft.h:25
      Definition bf16.h:265
      diff --git a/docs/build/html/struct_cum_prod-members.html b/docs/build/html/resident_8h.html similarity index 59% rename from docs/build/html/struct_cum_prod-members.html rename to docs/build/html/resident_8h.html index 545844b83..324d08b3e 100644 --- a/docs/build/html/struct_cum_prod-members.html +++ b/docs/build/html/resident_8h.html @@ -5,7 +5,7 @@ -MLX: Member List +MLX: mlx/backend/metal/resident.h File Reference @@ -81,20 +81,38 @@ $(function(){ initResizable(false); });
      +
      -
      CumProd< U > Member List
      + +
      resident.h File Reference
      - -

      This is the complete list of members for CumProd< U >, including all inherited members.

      - - - - - -
      initCumProd< U >static
      operator()(U a, T b)CumProd< U >inline
      simd_exclusive_scan(U x)CumProd< U >inline
      simd_scan(U x)CumProd< U >inline
      + +

      Go to the source code of this file.

      + + + + +

      +Classes

      class  mlx::core::metal::ResidencySet
       
      + + + + + + + +

      +Namespaces

      namespace  mlx
       
      namespace  mlx::core
       
      namespace  mlx::core::metal
       
      +
  • Metal
      @@ -494,6 +485,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -776,24 +768,16 @@ - + - + @@ -819,7 +803,6 @@ document.write(` - - + +
      diff --git a/docs/build/html/search/all_1.js b/docs/build/html/search/all_1.js index d5d430f5a..2bd894a7d 100644 --- a/docs/build/html/search/all_1.js +++ b/docs/build/html/search/all_1.js @@ -10,102 +10,104 @@ var searchData= ['add_7',['Add',['../struct_add.html',1,'Add'],['../classmlx_1_1core_1_1_add.html',1,'mlx::core::Add'],['../structmlx_1_1core_1_1detail_1_1_add.html',1,'mlx::core::detail::Add'],['../classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae',1,'mlx::core::Add::Add()']]], ['add_8',['add',['../group__ops.html#ga2d32d67cfd76785a72c43d89b94dc7d7',1,'mlx::core']]], ['add_5fhalf_5fbinops_9',['ADD_HALF_BINOPS',['../half__types_8h.html#a6bc906918877a7084068a9f0ed571dca',1,'ADD_HALF_BINOPS: half_types.h'],['../half__types_8h.html#a6bc906918877a7084068a9f0ed571dca',1,'ADD_HALF_BINOPS: half_types.h']]], - ['add_5fvec_10',['add_vec',['../structpocketfft_1_1detail_1_1add__vec.html',1,'pocketfft::detail']]], - ['add_5fvec_3c_20cmplx_3c_20t_20_3e_20_3e_11',['add_vec< cmplx< T > >',['../structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html',1,'pocketfft::detail']]], - ['add_5fvec_5ft_12',['add_vec_t',['../namespacepocketfft_1_1detail.html#a421aa74fbee775a96463246f72b144d6',1,'pocketfft::detail']]], - ['addmm_13',['AddMM',['../classmlx_1_1core_1_1_add_m_m.html',1,'mlx::core::AddMM'],['../classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550',1,'mlx::core::AddMM::AddMM()']]], - ['addmm_14',['addmm',['../group__ops.html#ga82a53e083205a965387b3c3e2463244a',1,'mlx::core']]], - ['adj_5fimplicit_5fm_15',['adj_implicit_m',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a5bfca3bc43055013d28430cb1f023756',1,'mlx::steel::Conv2DGeneralJumpParams']]], - ['adj_5fout_5fh_16',['adj_out_h',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a879cc9757f59605a87d936ec4156040d',1,'mlx::steel::Conv2DGeneralJumpParams']]], - ['adj_5fout_5fhw_17',['adj_out_hw',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#aed0ffd63fbc85fd5d5c4cc7b43f68363',1,'mlx::steel::Conv2DGeneralJumpParams']]], - ['adj_5fout_5fw_18',['adj_out_w',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#ab971bf879079895189331fbeaf33c211',1,'mlx::steel::Conv2DGeneralJumpParams']]], - ['adjust_5fmatrix_5foffsets_19',['adjust_matrix_offsets',['../quantized_8h.html#a3ab400746ad77be89c30d25638e01698',1,'quantized.h']]], - ['advance_20',['advance',['../classpocketfft_1_1detail_1_1multi__iter.html#a5ddcc0666125b3cb6c0d62b30befdd2c',1,'pocketfft::detail::multi_iter::advance()'],['../classpocketfft_1_1detail_1_1simple__iter.html#a73a9ecd3008d2bd35aaa00bf9fac074f',1,'pocketfft::detail::simple_iter::advance()'],['../classpocketfft_1_1detail_1_1rev__iter.html#ad1918c84ae963188afc7599629b29686',1,'pocketfft::detail::rev_iter::advance()']]], - ['affine_5fdequantize_21',['affine_dequantize',['../quantized_8h.html#a6076203615038eb06816158f7b3869c6',1,'affine_dequantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328',1,'mlx::core::fast::affine_dequantize()']]], - ['affine_5fquantize_22',['affine_quantize',['../quantized_8h.html#a47bcf4a14566e01e14bd3c155811db59',1,'affine_quantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080',1,'mlx::core::fast::affine_quantize(const array &w, int group_size=64, int bits=4, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fast.html#a638c7e9b9ea8677f01786d8f9738baf8',1,'mlx::core::fast::affine_quantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})']]], - ['affine_5fquantize_5fscales_5fbiases_23',['affine_quantize_scales_biases',['../quantized_8h.html#a7561acefd7b55e7e2b25393be08bb99c',1,'quantized.h']]], - ['affinequantize_24',['AffineQuantize',['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html',1,'mlx::core::fast::AffineQuantize'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473',1,'mlx::core::fast::AffineQuantize::AffineQuantize()']]], - ['align_5fk_25',['align_K',['../steel__gemm__fused_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'steel_gemm_fused.h']]], - ['align_5fm_26',['align_M',['../steel__gemm__fused_8h.html#a55af226dc74b0026b7d4b865142a6d21',1,'steel_gemm_fused.h']]], - ['align_5fn_27',['align_N',['../steel__gemm__fused_8h.html#aa3b267252df2dcbfdde8c5f174d27036',1,'steel_gemm_fused.h']]], - ['aligned_5falloc_28',['aligned_alloc',['../namespacepocketfft_1_1detail.html#ae397445c61400f47a8fe3f8e1b6d0b76',1,'pocketfft::detail']]], - ['aligned_5fallocator_29',['aligned_allocator',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html',1,'pocketfft::detail::threading::aligned_allocator< T >'],['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a57c07047ac09c6cf48a269429de2b0fb',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator(const aligned_allocator< U > &)'],['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a0c390851ec37c5cdc5c1e7c6232a0b94',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator()=default']]], - ['aligned_5fdealloc_30',['aligned_dealloc',['../namespacepocketfft_1_1detail.html#aec7820e36a33e0a8bb83aa03b04b81e8',1,'pocketfft::detail']]], - ['all_31',['all',['../group__ops.html#ga3b1b90ef1275ca17655b6d7f25d3ee68',1,'mlx::core::all(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3689e12e8f42dadb4cbe2b07dc4099f4',1,'mlx::core::all(const array &a, StreamOrDevice s={})'],['../group__ops.html#gac0919c6ba53aea35a7683dea7e9a9a59',1,'mlx::core::all(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gae2d5fcc5b62d673cca76c08b7b4afbbc',1,'mlx::core::all(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['all_5fgather_32',['all_gather',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aeb5a1726358213bc75756506f7b54d04',1,'mlx::core::distributed::detail::all_gather()'],['../namespacemlx_1_1core_1_1distributed.html#a82ef5e8cc7ac62cd228e51b1c1b77cb7',1,'mlx::core::distributed::all_gather()']]], - ['all_5freduce_33',['all_reduce',['../reduce__all_8h.html#a99ef48ae72b3e715c5f4d7ea07cd213d',1,'reduce_all.h']]], - ['all_5freduce_5fdispatch_34',['all_reduce_dispatch',['../namespacemlx_1_1core.html#af7b7ca7c6aa87558d9f98cee5c7a99a8',1,'mlx::core']]], - ['all_5fsum_35',['all_sum',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aa1d225b25f7b6426c48c5e35860ee960',1,'mlx::core::distributed::detail::all_sum()'],['../namespacemlx_1_1core_1_1distributed.html#a67ccb1a5445fc6f5db49dd36a15e5980',1,'mlx::core::distributed::all_sum()']]], - ['allclose_36',['allclose',['../group__ops.html#gaf0cd4257de7542daf9faf5e605e31020',1,'mlx::core']]], - ['allgather_37',['AllGather',['../classmlx_1_1core_1_1distributed_1_1_all_gather.html',1,'mlx::core::distributed::AllGather'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#af4b10a5b61f160fb64353057c185b661',1,'mlx::core::distributed::AllGather::AllGather()']]], - ['alloc_5ftmp_38',['alloc_tmp',['../namespacepocketfft_1_1detail.html#a4db03cbcd9d43d9e0b0b9067713c80e9',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, size_t axsize, size_t elemsize)'],['../namespacepocketfft_1_1detail.html#a13832735696303b9559c4663631d5475',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, const shape_t &axes, size_t elemsize)']]], - ['allocate_39',['allocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826',1,'pocketfft::detail::threading::aligned_allocator']]], - ['allocator_40',['Allocator',['../classmlx_1_1core_1_1allocator_1_1_allocator.html',1,'mlx::core::allocator::Allocator'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65',1,'mlx::core::allocator::Allocator::Allocator()=default'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2',1,'mlx::core::allocator::Allocator::Allocator(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959',1,'mlx::core::allocator::Allocator::Allocator(Allocator &&other)=delete']]], - ['allocator_41',['allocator',['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0',1,'mlx::core::allocator::CommonAllocator::allocator'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e',1,'mlx::core::metal::MetalAllocator::allocator'],['../namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e',1,'mlx::core::allocator::allocator()'],['../namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5',1,'mlx::core::metal::allocator()']]], - ['allocator_2eh_42',['allocator.h',['../allocator_8h.html',1,'(Global Namespace)'],['../backend_2metal_2allocator_8h.html',1,'(Global Namespace)']]], - ['allreduce_43',['AllReduce',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html',1,'mlx::core::distributed::AllReduce'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a2d1ea56cbf72a316680ea90aa6da1c2d',1,'mlx::core::distributed::AllReduce::AllReduce()']]], - ['alpha_44',['alpha',['../struct_m_l_x_fast_attention_params.html#a932266d04fa7d6e27d4a4a2c175f1477',1,'MLXFastAttentionParams::alpha'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#af8693d96512eff3e125d33d203920710',1,'mlx::steel::GEMMAddMMParams::alpha'],['../structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff',1,'mlx::steel::TransformAxpby::alpha']]], - ['and_45',['And',['../struct_and.html',1,'And< U >'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924aba3b7fb927f6b6c8b198a9cdc3dd9e02',1,'mlx::core::distributed::AllReduce::And'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dab14e7d426f45ae7f029f4e00210fbae4',1,'mlx::core::BitwiseBinary::And'],['../classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93',1,'mlx::core::Reduce::And']]], - ['any_46',['any',['../group__ops.html#ga8598dd718fb05cb28535e250372d4e6f',1,'mlx::core::any(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gad37df97f253a963bece124198dbaf9ba',1,'mlx::core::any(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf240618fc8b06debf5f56e97e84f18ef',1,'mlx::core::any(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gab1d56277d468a55227f4dad6bc2fc1ce',1,'mlx::core::any(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['apply_47',['apply',['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75',1,'mlx::steel::TransformNone::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_none.html#ae4c397038f386b13eaa386638a0fce90',1,'mlx::steel::TransformNone::apply(InT x, OutT)'],['../structmlx_1_1steel_1_1_transform_add.html#afbb688d84443fd622b4dd2768cfe0acf',1,'mlx::steel::TransformAdd::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_add.html#a4923b0059d88099b2739f2cf0273ea19',1,'mlx::steel::TransformAdd::apply(InT x, OutT c)'],['../structmlx_1_1steel_1_1_transform_axpby.html#a14ad48b0189d6bdde06c66f1b567ae87',1,'mlx::steel::TransformAxpby::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_axpby.html#aaf3a45e25d7abf7a34b48cc612e631ba',1,'mlx::steel::TransformAxpby::apply(InT x, OutT c) const']]], - ['apply_5fepilogue_48',['apply_epilogue',['../structmlx_1_1steel_1_1_block_m_m_a.html#af653c0808ba4fa9a25286f1febb7baff',1,'mlx::steel::BlockMMA::apply_epilogue(thread const UnaryEpilogue &epilogue_op)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a823c56cbd2086f10272df7284a5247ae',1,'mlx::steel::BlockMMA::apply_epilogue(const device U *C, const int ldc, const int fdc, thread const BinaryEpilogue &epilogue_op)']]], - ['apply_5fepilogue_5fsafe_49',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA']]], - ['apply_5finplace_5fop_50',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader']]], - ['arange_51',['Arange',['../classmlx_1_1core_1_1_arange.html',1,'mlx::core::Arange'],['../classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574',1,'mlx::core::Arange::Arange()']]], - ['arange_52',['arange',['../namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b',1,'mlx::core::arange()'],['../namespacemlx_1_1core_1_1metal.html#a272c36f0faf2570cbb2f36030e9a3f26',1,'mlx::core::metal::arange()'],['../metal_2kernels_2arange_8h.html#a1e5126ee6ae0164c2343230c4d87c03e',1,'arange(): arange.h'],['../group__ops.html#ga7ca088b8090b9f84f2e08345cf3f835a',1,'mlx::core::arange(double start, double stop, double step, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga4c36b841dc5cba391dad029be5a0ad98',1,'mlx::core::arange(double start, double stop, double step, StreamOrDevice s={})'],['../group__ops.html#ga8d7cf9eb15e2daf1469058907e8abc85',1,'mlx::core::arange(double start, double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga74566a14e69ba6a25f5a35e7ade5c282',1,'mlx::core::arange(double start, double stop, StreamOrDevice s={})'],['../group__ops.html#ga345aa27af3dae3646b8b4b1068e89a3e',1,'mlx::core::arange(double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#gaae179075d0fe23f4bd53fdf8c41f4c70',1,'mlx::core::arange(double stop, StreamOrDevice s={})'],['../group__ops.html#ga6b945f513077c2978afc1a952c884860',1,'mlx::core::arange(int start, int stop, int step, StreamOrDevice s={})'],['../group__ops.html#ga1c39fcc6eaa1c1867735c7f849d708d6',1,'mlx::core::arange(int start, int stop, StreamOrDevice s={})'],['../group__ops.html#gafe6e4580452c873cac294f16129e633f',1,'mlx::core::arange(int stop, StreamOrDevice s={})']]], - ['arange_2eh_53',['arange.h',['../common_2arange_8h.html',1,'(Global Namespace)'],['../metal_2jit_2arange_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2arange_8h.html',1,'(Global Namespace)']]], - ['arange_5fkernels_54',['arange_kernels',['../metal_2jit_2arange_8h.html#a2f49fb7bdc0a90230077fe2023e6e5c0',1,'arange.h']]], - ['arccos_55',['ArcCos',['../struct_arc_cos.html',1,'ArcCos'],['../classmlx_1_1core_1_1_arc_cos.html',1,'mlx::core::ArcCos'],['../structmlx_1_1core_1_1detail_1_1_arc_cos.html',1,'mlx::core::detail::ArcCos'],['../classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9',1,'mlx::core::ArcCos::ArcCos()']]], - ['arccos_56',['arccos',['../group__ops.html#ga08bec7cb10c84466487b507fc5bf9776',1,'mlx::core']]], - ['arccosh_57',['ArcCosh',['../struct_arc_cosh.html',1,'ArcCosh'],['../classmlx_1_1core_1_1_arc_cosh.html',1,'mlx::core::ArcCosh'],['../structmlx_1_1core_1_1detail_1_1_arc_cosh.html',1,'mlx::core::detail::ArcCosh'],['../classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71',1,'mlx::core::ArcCosh::ArcCosh()']]], - ['arccosh_58',['arccosh',['../group__ops.html#gaafafcfcebdf7248679c8543d0c0497e5',1,'mlx::core']]], - ['arcsin_59',['ArcSin',['../struct_arc_sin.html',1,'ArcSin'],['../classmlx_1_1core_1_1_arc_sin.html',1,'mlx::core::ArcSin'],['../structmlx_1_1core_1_1detail_1_1_arc_sin.html',1,'mlx::core::detail::ArcSin'],['../classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013',1,'mlx::core::ArcSin::ArcSin()']]], - ['arcsin_60',['arcsin',['../group__ops.html#ga8770e8c8f23f13343911f4c9d6e1c619',1,'mlx::core']]], - ['arcsinh_61',['ArcSinh',['../struct_arc_sinh.html',1,'ArcSinh'],['../classmlx_1_1core_1_1_arc_sinh.html',1,'mlx::core::ArcSinh'],['../structmlx_1_1core_1_1detail_1_1_arc_sinh.html',1,'mlx::core::detail::ArcSinh'],['../classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20',1,'mlx::core::ArcSinh::ArcSinh()']]], - ['arcsinh_62',['arcsinh',['../group__ops.html#gac62e2cedc49ef2c90dd8584000317450',1,'mlx::core']]], - ['arctan_63',['ArcTan',['../struct_arc_tan.html',1,'ArcTan'],['../classmlx_1_1core_1_1_arc_tan.html',1,'mlx::core::ArcTan'],['../structmlx_1_1core_1_1detail_1_1_arc_tan.html',1,'mlx::core::detail::ArcTan'],['../classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44',1,'mlx::core::ArcTan::ArcTan()']]], - ['arctan_64',['arctan',['../group__ops.html#gaa041f3f070e68f4946db07516b7d092e',1,'mlx::core']]], - ['arctan2_65',['ArcTan2',['../struct_arc_tan2.html',1,'ArcTan2'],['../classmlx_1_1core_1_1_arc_tan2.html',1,'mlx::core::ArcTan2'],['../structmlx_1_1core_1_1detail_1_1_arc_tan2.html',1,'mlx::core::detail::ArcTan2'],['../classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a',1,'mlx::core::ArcTan2::ArcTan2()']]], - ['arctan2_66',['arctan2',['../group__ops.html#ga6caba9c92b5989123501f909cc7da354',1,'mlx::core']]], - ['arctanh_67',['ArcTanh',['../struct_arc_tanh.html',1,'ArcTanh'],['../classmlx_1_1core_1_1_arc_tanh.html',1,'mlx::core::ArcTanh'],['../structmlx_1_1core_1_1detail_1_1_arc_tanh.html',1,'mlx::core::detail::ArcTanh'],['../classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358',1,'mlx::core::ArcTanh::ArcTanh()']]], - ['arctanh_68',['arctanh',['../group__ops.html#gab46a35925a04c5a9d2ec7898ee55358e',1,'mlx::core']]], - ['argmax_69',['ArgMax',['../classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3acc6659315ab0001abd37cbfcbe837e7e',1,'mlx::core::ArgReduce']]], - ['argmax_70',['argmax',['../group__ops.html#gae60b0b5339b9c50b9970260faf613e83',1,'mlx::core::argmax(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gae6f6c5a840320b336fdc9687e0ed56c8',1,'mlx::core::argmax(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga2efa67466510fc26ab9ea8dff30f2ba5',1,'mlx::core::argmax(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['argmin_71',['ArgMin',['../classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3a93a8a9221545ae9518d289d9ac4d09e9',1,'mlx::core::ArgReduce']]], - ['argmin_72',['argmin',['../group__ops.html#ga7c3bd5ef430a71dfd298e626741e3c71',1,'mlx::core::argmin(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga6bc577c5ab10cd9c848ba81321595070',1,'mlx::core::argmin(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf66dc3c77b88e4009e0678eda41eca81',1,'mlx::core::argmin(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['argpartition_73',['ArgPartition',['../classmlx_1_1core_1_1_arg_partition.html',1,'mlx::core::ArgPartition'],['../classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df',1,'mlx::core::ArgPartition::ArgPartition()']]], - ['argpartition_74',['argpartition',['../group__ops.html#gaf301c49c10fa9b95a9e8dc52ead1a8dd',1,'mlx::core::argpartition(const array &a, int kth, StreamOrDevice s={})'],['../group__ops.html#ga7b15c654c7463def57857a0e239989a3',1,'mlx::core::argpartition(const array &a, int kth, int axis, StreamOrDevice s={})']]], - ['argreduce_75',['ArgReduce',['../classmlx_1_1core_1_1_arg_reduce.html',1,'mlx::core::ArgReduce'],['../classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03',1,'mlx::core::ArgReduce::ArgReduce()']]], - ['argsort_76',['ArgSort',['../classmlx_1_1core_1_1_arg_sort.html',1,'mlx::core::ArgSort'],['../classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0',1,'mlx::core::ArgSort::ArgSort()']]], - ['argsort_77',['argsort',['../group__ops.html#ga8df3b2703bf671457422894dd870cdc5',1,'mlx::core::argsort(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7878e0daa5a75f44e57b5fe948fa3ef6',1,'mlx::core::argsort(const array &a, int axis, StreamOrDevice s={})']]], - ['argument_5fencoder_78',['argument_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881',1,'mlx::core::metal::Device']]], - ['arr_79',['arr',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail::arr< T >'],['../classpocketfft_1_1detail_1_1arr.html#a961a24410638b35129cd6b81850d2a42',1,'pocketfft::detail::arr::arr()'],['../classpocketfft_1_1detail_1_1arr.html#a04f832b780a4453fdf3b69bf75b182bd',1,'pocketfft::detail::arr::arr(size_t n)'],['../classpocketfft_1_1detail_1_1arr.html#a0cd8fb4a588a74d428a7349d38b477d0',1,'pocketfft::detail::arr::arr(arr &&other)']]], - ['arr_3c_20pocketfft_3a_3adetail_3a_3acmplx_3c_20t0_20_3e_20_3e_80',['arr< pocketfft::detail::cmplx< T0 > >',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail']]], - ['arr_3c_20pocketfft_3a_3adetail_3a_3acmplx_3c_20thigh_20_3e_20_3e_81',['arr< pocketfft::detail::cmplx< Thigh > >',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail']]], - ['arr_3c_20t0_20_3e_82',['arr< T0 >',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail']]], - ['arr_5finfo_83',['arr_info',['../classpocketfft_1_1detail_1_1arr__info.html',1,'pocketfft::detail::arr_info'],['../classpocketfft_1_1detail_1_1arr__info.html#a0dbddb7d86ca306159fc9ef9a453b21e',1,'pocketfft::detail::arr_info::arr_info()']]], - ['array_84',['array',['../classmlx_1_1core_1_1array.html',1,'mlx::core::array'],['../classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232',1,'mlx::core::array::array(T val, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca',1,'mlx::core::array::array(const std::complex< float > &val, Dtype dtype=complex64)'],['../classmlx_1_1core_1_1array.html#a3e506a53b9c7567448f7809dda680210',1,'mlx::core::array::array(It data, std::vector< int > shape, Dtype dtype=TypeToDtype< typename std::iterator_traits< It >::value_type >())'],['../classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00',1,'mlx::core::array::array(std::initializer_list< T > data, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7',1,'mlx::core::array::array(std::initializer_list< float > data)'],['../classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49',1,'mlx::core::array::array(std::initializer_list< int > data, Dtype dtype)'],['../classmlx_1_1core_1_1array.html#a44e57a41819321e0d796e08cb9a06e4b',1,'mlx::core::array::array(std::initializer_list< T > data, std::vector< int > shape, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663',1,'mlx::core::array::array(allocator::Buffer data, std::vector< int > shape, Dtype dtype, deleter_t deleter=allocator::free)'],['../classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187',1,'mlx::core::array::array(const array &other)=default'],['../classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c',1,'mlx::core::array::array(array &&other)=default'],['../classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620',1,'mlx::core::array::array(std::vector< int > shape, Dtype dtype, std::shared_ptr< Primitive > primitive, std::vector< array > inputs)']]], - ['array_20operations_85',['Core array operations',['../group__ops.html',1,'']]], - ['array_2eh_86',['array.h',['../array_8h.html',1,'']]], - ['array_5fequal_87',['array_equal',['../group__ops.html#ga8f3059336ee0c87207b1f8c6ab312645',1,'mlx::core::array_equal(const array &a, const array &b, bool equal_nan, StreamOrDevice s={})'],['../group__ops.html#gaf79cf0271ca0105d7b14295a90d0ed14',1,'mlx::core::array_equal(const array &a, const array &b, StreamOrDevice s={})']]], - ['arrayiterator_88',['ArrayIterator',['../structmlx_1_1core_1_1array_1_1_array_iterator.html',1,'mlx::core::array::ArrayIterator'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a',1,'mlx::core::array::ArrayIterator::ArrayIterator()']]], - ['as_5foffset_89',['As_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562',1,'mlx::steel::BlockMMA']]], - ['as_5fstrided_90',['as_strided',['../group__ops.html#ga8de80ecef30fc560003d40f61a38b99d',1,'mlx::core']]], - ['asimd_91',['Asimd',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92ac4b483cb58c361d7a657e0738c070',1,'mlx::steel::BlockMMA']]], - ['asin_92',['asin',['../namespacemetal.html#a16e843194df3fd136404bf80ba5ac95c',1,'metal::asin()'],['../namespacemetal_1_1fast.html#a769455a283da99654b6e42c3acf13eb1',1,'metal::fast::asin()'],['../namespacemetal_1_1precise.html#adc7b8b6e12e320cb32030f728dcbf438',1,'metal::precise::asin()']]], - ['asinh_93',['asinh',['../namespacemetal.html#abcc3251866930cfe880f89e7473d0e63',1,'metal::asinh()'],['../namespacemetal_1_1fast.html#a4367034b7b3e14310803bb2be975a556',1,'metal::fast::asinh()'],['../namespacemetal_1_1precise.html#aaad1cdde6687c8011fbc5fda1bb13424',1,'metal::precise::asinh()']]], - ['asstrided_94',['AsStrided',['../classmlx_1_1core_1_1_as_strided.html',1,'mlx::core::AsStrided'],['../classmlx_1_1core_1_1_as_strided.html#a80c0547f72ed53374eafc57d57b5d4af',1,'mlx::core::AsStrided::AsStrided()']]], - ['astype_95',['AsType',['../classmlx_1_1core_1_1_as_type.html',1,'mlx::core::AsType'],['../classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47',1,'mlx::core::AsType::AsType()']]], - ['astype_96',['astype',['../group__ops.html#ga0e58c24fc5668e5a521e5b45e8370a62',1,'mlx::core']]], - ['async_5feval_97',['async_eval',['../namespacemlx_1_1core.html#a15dda19aa7fa1fc5fca35df5cf963297',1,'mlx::core']]], - ['atan_98',['atan',['../namespacemetal.html#a80a771553d9a0012b93620d19c48b00f',1,'metal::atan()'],['../namespacemetal_1_1fast.html#a769503b4b7f89071d0983258c5a3ac5a',1,'metal::fast::atan()'],['../namespacemetal_1_1precise.html#aaaf4b5f4786a912089bbf0ae7619a6be',1,'metal::precise::atan()']]], - ['atan2_99',['atan2',['../namespacemetal.html#a1d430793eaa38ccf0d07145e3fcd1e61',1,'metal::atan2()'],['../namespacemetal_1_1fast.html#a00e687ea46f5affe26e6aef8fd62b89a',1,'metal::fast::atan2()'],['../namespacemetal_1_1precise.html#a6f161b049cc6884f87b09b33c2d1cd7f',1,'metal::precise::atan2()']]], - ['atanh_100',['atanh',['../namespacemetal.html#a57116427997ba71dd3863bfb15de33bf',1,'metal::atanh()'],['../namespacemetal_1_1fast.html#af24608fc605db9a14427d37c36dc1c53',1,'metal::fast::atanh()'],['../namespacemetal_1_1precise.html#a902994837653b90c47f4285673e712c4',1,'metal::precise::atanh()']]], - ['atleast_5f1d_101',['atleast_1d',['../group__ops.html#gaba4d25e7a2bf87ba4feb7837ec7fa396',1,'mlx::core::atleast_1d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga08ca172ce80157c916c89dd0b45b95c5',1,'mlx::core::atleast_1d(const std::vector< array > &a, StreamOrDevice s={})']]], - ['atleast_5f2d_102',['atleast_2d',['../group__ops.html#gaeeb7f5bb88aa32a3ac2be1f39c5f8087',1,'mlx::core::atleast_2d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga9950299a80c2562f13448758f856d1f5',1,'mlx::core::atleast_2d(const std::vector< array > &a, StreamOrDevice s={})']]], - ['atleast_5f3d_103',['atleast_3d',['../group__ops.html#ga4afd919601e67782ff964465919956a0',1,'mlx::core::atleast_3d(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaffdf742ad79440a60dda40062a8074fe',1,'mlx::core::atleast_3d(const std::vector< array > &a, StreamOrDevice s={})']]], - ['atomic_2eh_104',['atomic.h',['../atomic_8h.html',1,'']]], - ['atomic_5fupdate_105',['atomic_update',['../struct_none.html#aecbce7c97e8b1d5dc4afd2e788c24e06',1,'None']]], - ['attach_5fevent_106',['attach_event',['../classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da',1,'mlx::core::array']]], - ['available_107',['available',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae',1,'mlx::core::array']]] + ['add_5ftemporaries_10',['add_temporaries',['../classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901',1,'mlx::core::metal::Device']]], + ['add_5ftemporary_11',['add_temporary',['../classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576',1,'mlx::core::metal::Device']]], + ['add_5fvec_12',['add_vec',['../structpocketfft_1_1detail_1_1add__vec.html',1,'pocketfft::detail']]], + ['add_5fvec_3c_20cmplx_3c_20t_20_3e_20_3e_13',['add_vec< cmplx< T > >',['../structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html',1,'pocketfft::detail']]], + ['add_5fvec_5ft_14',['add_vec_t',['../namespacepocketfft_1_1detail.html#a421aa74fbee775a96463246f72b144d6',1,'pocketfft::detail']]], + ['addmm_15',['AddMM',['../classmlx_1_1core_1_1_add_m_m.html',1,'mlx::core::AddMM'],['../classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550',1,'mlx::core::AddMM::AddMM()']]], + ['addmm_16',['addmm',['../group__ops.html#ga82a53e083205a965387b3c3e2463244a',1,'mlx::core']]], + ['adj_5fimplicit_5fm_17',['adj_implicit_m',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a5bfca3bc43055013d28430cb1f023756',1,'mlx::steel::Conv2DGeneralJumpParams']]], + ['adj_5fout_5fh_18',['adj_out_h',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a879cc9757f59605a87d936ec4156040d',1,'mlx::steel::Conv2DGeneralJumpParams']]], + ['adj_5fout_5fhw_19',['adj_out_hw',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#aed0ffd63fbc85fd5d5c4cc7b43f68363',1,'mlx::steel::Conv2DGeneralJumpParams']]], + ['adj_5fout_5fw_20',['adj_out_w',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#ab971bf879079895189331fbeaf33c211',1,'mlx::steel::Conv2DGeneralJumpParams']]], + ['adjust_5fmatrix_5foffsets_21',['adjust_matrix_offsets',['../quantized_8h.html#accab1f9e17a65242347c051f98e4c0be',1,'adjust_matrix_offsets(const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, device T *&y, int output_stride, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid): quantized.h'],['../quantized_8h.html#a3ab400746ad77be89c30d25638e01698',1,'adjust_matrix_offsets(const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *&y, int output_stride, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid): quantized.h']]], + ['advance_22',['advance',['../classpocketfft_1_1detail_1_1multi__iter.html#a5ddcc0666125b3cb6c0d62b30befdd2c',1,'pocketfft::detail::multi_iter::advance()'],['../classpocketfft_1_1detail_1_1simple__iter.html#a73a9ecd3008d2bd35aaa00bf9fac074f',1,'pocketfft::detail::simple_iter::advance()'],['../classpocketfft_1_1detail_1_1rev__iter.html#ad1918c84ae963188afc7599629b29686',1,'pocketfft::detail::rev_iter::advance()']]], + ['affine_5fdequantize_23',['affine_dequantize',['../quantized_8h.html#a6076203615038eb06816158f7b3869c6',1,'affine_dequantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328',1,'mlx::core::fast::affine_dequantize()']]], + ['affine_5fquantize_24',['affine_quantize',['../quantized_8h.html#a47bcf4a14566e01e14bd3c155811db59',1,'affine_quantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080',1,'mlx::core::fast::affine_quantize(const array &w, int group_size=64, int bits=4, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fast.html#a638c7e9b9ea8677f01786d8f9738baf8',1,'mlx::core::fast::affine_quantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})']]], + ['affine_5fquantize_5fscales_5fbiases_25',['affine_quantize_scales_biases',['../quantized_8h.html#a7561acefd7b55e7e2b25393be08bb99c',1,'quantized.h']]], + ['affinequantize_26',['AffineQuantize',['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html',1,'mlx::core::fast::AffineQuantize'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473',1,'mlx::core::fast::AffineQuantize::AffineQuantize()']]], + ['align_5fk_27',['align_K',['../steel__gemm__fused_8h.html#a8bdd2cecf97aa5b033152b1d0f0d2416',1,'steel_gemm_fused.h']]], + ['align_5fm_28',['align_M',['../steel__gemm__fused_8h.html#a55af226dc74b0026b7d4b865142a6d21',1,'steel_gemm_fused.h']]], + ['align_5fn_29',['align_N',['../steel__gemm__fused_8h.html#aa3b267252df2dcbfdde8c5f174d27036',1,'steel_gemm_fused.h']]], + ['aligned_5falloc_30',['aligned_alloc',['../namespacepocketfft_1_1detail.html#ae397445c61400f47a8fe3f8e1b6d0b76',1,'pocketfft::detail']]], + ['aligned_5fallocator_31',['aligned_allocator',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html',1,'pocketfft::detail::threading::aligned_allocator< T >'],['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a57c07047ac09c6cf48a269429de2b0fb',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator(const aligned_allocator< U > &)'],['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a0c390851ec37c5cdc5c1e7c6232a0b94',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator()=default']]], + ['aligned_5fdealloc_32',['aligned_dealloc',['../namespacepocketfft_1_1detail.html#aec7820e36a33e0a8bb83aa03b04b81e8',1,'pocketfft::detail']]], + ['all_33',['all',['../group__ops.html#ga3b1b90ef1275ca17655b6d7f25d3ee68',1,'mlx::core::all(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3689e12e8f42dadb4cbe2b07dc4099f4',1,'mlx::core::all(const array &a, StreamOrDevice s={})'],['../group__ops.html#gac0919c6ba53aea35a7683dea7e9a9a59',1,'mlx::core::all(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gae2d5fcc5b62d673cca76c08b7b4afbbc',1,'mlx::core::all(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['all_5fgather_34',['all_gather',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aeb5a1726358213bc75756506f7b54d04',1,'mlx::core::distributed::detail::all_gather()'],['../namespacemlx_1_1core_1_1distributed.html#a82ef5e8cc7ac62cd228e51b1c1b77cb7',1,'mlx::core::distributed::all_gather()']]], + ['all_5freduce_35',['all_reduce',['../reduce__all_8h.html#a99ef48ae72b3e715c5f4d7ea07cd213d',1,'reduce_all.h']]], + ['all_5freduce_5fdispatch_36',['all_reduce_dispatch',['../namespacemlx_1_1core.html#af7b7ca7c6aa87558d9f98cee5c7a99a8',1,'mlx::core']]], + ['all_5fsum_37',['all_sum',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aa1d225b25f7b6426c48c5e35860ee960',1,'mlx::core::distributed::detail::all_sum()'],['../namespacemlx_1_1core_1_1distributed.html#a67ccb1a5445fc6f5db49dd36a15e5980',1,'mlx::core::distributed::all_sum()']]], + ['allclose_38',['allclose',['../group__ops.html#gaf0cd4257de7542daf9faf5e605e31020',1,'mlx::core']]], + ['allgather_39',['AllGather',['../classmlx_1_1core_1_1distributed_1_1_all_gather.html',1,'mlx::core::distributed::AllGather'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#af4b10a5b61f160fb64353057c185b661',1,'mlx::core::distributed::AllGather::AllGather()']]], + ['alloc_5ftmp_40',['alloc_tmp',['../namespacepocketfft_1_1detail.html#a4db03cbcd9d43d9e0b0b9067713c80e9',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, size_t axsize, size_t elemsize)'],['../namespacepocketfft_1_1detail.html#a13832735696303b9559c4663631d5475',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, const shape_t &axes, size_t elemsize)']]], + ['allocate_41',['allocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826',1,'pocketfft::detail::threading::aligned_allocator']]], + ['allocator_42',['Allocator',['../classmlx_1_1core_1_1allocator_1_1_allocator.html',1,'mlx::core::allocator::Allocator'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65',1,'mlx::core::allocator::Allocator::Allocator()=default'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2',1,'mlx::core::allocator::Allocator::Allocator(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959',1,'mlx::core::allocator::Allocator::Allocator(Allocator &&other)=delete']]], + ['allocator_43',['allocator',['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#abf84c726a37df68345589b897b2e35f0',1,'mlx::core::allocator::CommonAllocator::allocator'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#afa1c5a725309caff163c492b5b84491e',1,'mlx::core::metal::MetalAllocator::allocator'],['../namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e',1,'mlx::core::allocator::allocator()'],['../namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5',1,'mlx::core::metal::allocator()']]], + ['allocator_2eh_44',['allocator.h',['../allocator_8h.html',1,'(Global Namespace)'],['../backend_2metal_2allocator_8h.html',1,'(Global Namespace)']]], + ['allreduce_45',['AllReduce',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html',1,'mlx::core::distributed::AllReduce'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a2d1ea56cbf72a316680ea90aa6da1c2d',1,'mlx::core::distributed::AllReduce::AllReduce()']]], + ['alpha_46',['alpha',['../struct_m_l_x_fast_attention_params.html#a932266d04fa7d6e27d4a4a2c175f1477',1,'MLXFastAttentionParams::alpha'],['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#af8693d96512eff3e125d33d203920710',1,'mlx::steel::GEMMAddMMParams::alpha'],['../structmlx_1_1steel_1_1_transform_axpby.html#ab3223b49c6b3b7f89eba91aeaff9dcff',1,'mlx::steel::TransformAxpby::alpha']]], + ['and_47',['And',['../struct_and.html',1,'And< U >'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924aba3b7fb927f6b6c8b198a9cdc3dd9e02',1,'mlx::core::distributed::AllReduce::And'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23dab14e7d426f45ae7f029f4e00210fbae4',1,'mlx::core::BitwiseBinary::And'],['../classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a5cc3412a1f243dcb11661bca42daea93',1,'mlx::core::Reduce::And']]], + ['any_48',['any',['../group__ops.html#ga8598dd718fb05cb28535e250372d4e6f',1,'mlx::core::any(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gad37df97f253a963bece124198dbaf9ba',1,'mlx::core::any(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf240618fc8b06debf5f56e97e84f18ef',1,'mlx::core::any(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gab1d56277d468a55227f4dad6bc2fc1ce',1,'mlx::core::any(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['apply_49',['apply',['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75',1,'mlx::steel::TransformNone::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_none.html#ae4c397038f386b13eaa386638a0fce90',1,'mlx::steel::TransformNone::apply(InT x, OutT)'],['../structmlx_1_1steel_1_1_transform_add.html#afbb688d84443fd622b4dd2768cfe0acf',1,'mlx::steel::TransformAdd::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_add.html#a4923b0059d88099b2739f2cf0273ea19',1,'mlx::steel::TransformAdd::apply(InT x, OutT c)'],['../structmlx_1_1steel_1_1_transform_axpby.html#a14ad48b0189d6bdde06c66f1b567ae87',1,'mlx::steel::TransformAxpby::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_axpby.html#aaf3a45e25d7abf7a34b48cc612e631ba',1,'mlx::steel::TransformAxpby::apply(InT x, OutT c) const']]], + ['apply_5fepilogue_50',['apply_epilogue',['../structmlx_1_1steel_1_1_block_m_m_a.html#af653c0808ba4fa9a25286f1febb7baff',1,'mlx::steel::BlockMMA::apply_epilogue(thread const UnaryEpilogue &epilogue_op)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a823c56cbd2086f10272df7284a5247ae',1,'mlx::steel::BlockMMA::apply_epilogue(const device U *C, const int ldc, const int fdc, thread const BinaryEpilogue &epilogue_op)']]], + ['apply_5fepilogue_5fsafe_51',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA']]], + ['apply_5finplace_5fop_52',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader']]], + ['arange_53',['Arange',['../classmlx_1_1core_1_1_arange.html',1,'mlx::core::Arange'],['../classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574',1,'mlx::core::Arange::Arange()']]], + ['arange_54',['arange',['../namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b',1,'mlx::core::arange()'],['../namespacemlx_1_1core_1_1metal.html#a272c36f0faf2570cbb2f36030e9a3f26',1,'mlx::core::metal::arange()'],['../metal_2kernels_2arange_8h.html#a1e5126ee6ae0164c2343230c4d87c03e',1,'arange(): arange.h'],['../group__ops.html#ga7ca088b8090b9f84f2e08345cf3f835a',1,'mlx::core::arange(double start, double stop, double step, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga4c36b841dc5cba391dad029be5a0ad98',1,'mlx::core::arange(double start, double stop, double step, StreamOrDevice s={})'],['../group__ops.html#ga8d7cf9eb15e2daf1469058907e8abc85',1,'mlx::core::arange(double start, double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga74566a14e69ba6a25f5a35e7ade5c282',1,'mlx::core::arange(double start, double stop, StreamOrDevice s={})'],['../group__ops.html#ga345aa27af3dae3646b8b4b1068e89a3e',1,'mlx::core::arange(double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#gaae179075d0fe23f4bd53fdf8c41f4c70',1,'mlx::core::arange(double stop, StreamOrDevice s={})'],['../group__ops.html#ga6b945f513077c2978afc1a952c884860',1,'mlx::core::arange(int start, int stop, int step, StreamOrDevice s={})'],['../group__ops.html#ga1c39fcc6eaa1c1867735c7f849d708d6',1,'mlx::core::arange(int start, int stop, StreamOrDevice s={})'],['../group__ops.html#gafe6e4580452c873cac294f16129e633f',1,'mlx::core::arange(int stop, StreamOrDevice s={})']]], + ['arange_2eh_55',['arange.h',['../common_2arange_8h.html',1,'(Global Namespace)'],['../metal_2jit_2arange_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2arange_8h.html',1,'(Global Namespace)']]], + ['arange_5fkernels_56',['arange_kernels',['../metal_2jit_2arange_8h.html#a2f49fb7bdc0a90230077fe2023e6e5c0',1,'arange.h']]], + ['arccos_57',['ArcCos',['../struct_arc_cos.html',1,'ArcCos'],['../classmlx_1_1core_1_1_arc_cos.html',1,'mlx::core::ArcCos'],['../structmlx_1_1core_1_1detail_1_1_arc_cos.html',1,'mlx::core::detail::ArcCos'],['../classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9',1,'mlx::core::ArcCos::ArcCos()']]], + ['arccos_58',['arccos',['../group__ops.html#ga08bec7cb10c84466487b507fc5bf9776',1,'mlx::core']]], + ['arccosh_59',['ArcCosh',['../struct_arc_cosh.html',1,'ArcCosh'],['../classmlx_1_1core_1_1_arc_cosh.html',1,'mlx::core::ArcCosh'],['../structmlx_1_1core_1_1detail_1_1_arc_cosh.html',1,'mlx::core::detail::ArcCosh'],['../classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71',1,'mlx::core::ArcCosh::ArcCosh()']]], + ['arccosh_60',['arccosh',['../group__ops.html#gaafafcfcebdf7248679c8543d0c0497e5',1,'mlx::core']]], + ['arcsin_61',['ArcSin',['../struct_arc_sin.html',1,'ArcSin'],['../classmlx_1_1core_1_1_arc_sin.html',1,'mlx::core::ArcSin'],['../structmlx_1_1core_1_1detail_1_1_arc_sin.html',1,'mlx::core::detail::ArcSin'],['../classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013',1,'mlx::core::ArcSin::ArcSin()']]], + ['arcsin_62',['arcsin',['../group__ops.html#ga8770e8c8f23f13343911f4c9d6e1c619',1,'mlx::core']]], + ['arcsinh_63',['ArcSinh',['../struct_arc_sinh.html',1,'ArcSinh'],['../classmlx_1_1core_1_1_arc_sinh.html',1,'mlx::core::ArcSinh'],['../structmlx_1_1core_1_1detail_1_1_arc_sinh.html',1,'mlx::core::detail::ArcSinh'],['../classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20',1,'mlx::core::ArcSinh::ArcSinh()']]], + ['arcsinh_64',['arcsinh',['../group__ops.html#gac62e2cedc49ef2c90dd8584000317450',1,'mlx::core']]], + ['arctan_65',['ArcTan',['../struct_arc_tan.html',1,'ArcTan'],['../classmlx_1_1core_1_1_arc_tan.html',1,'mlx::core::ArcTan'],['../structmlx_1_1core_1_1detail_1_1_arc_tan.html',1,'mlx::core::detail::ArcTan'],['../classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44',1,'mlx::core::ArcTan::ArcTan()']]], + ['arctan_66',['arctan',['../group__ops.html#gaa041f3f070e68f4946db07516b7d092e',1,'mlx::core']]], + ['arctan2_67',['ArcTan2',['../struct_arc_tan2.html',1,'ArcTan2'],['../classmlx_1_1core_1_1_arc_tan2.html',1,'mlx::core::ArcTan2'],['../structmlx_1_1core_1_1detail_1_1_arc_tan2.html',1,'mlx::core::detail::ArcTan2'],['../classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a',1,'mlx::core::ArcTan2::ArcTan2()']]], + ['arctan2_68',['arctan2',['../group__ops.html#ga6caba9c92b5989123501f909cc7da354',1,'mlx::core']]], + ['arctanh_69',['ArcTanh',['../struct_arc_tanh.html',1,'ArcTanh'],['../classmlx_1_1core_1_1_arc_tanh.html',1,'mlx::core::ArcTanh'],['../structmlx_1_1core_1_1detail_1_1_arc_tanh.html',1,'mlx::core::detail::ArcTanh'],['../classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358',1,'mlx::core::ArcTanh::ArcTanh()']]], + ['arctanh_70',['arctanh',['../group__ops.html#gab46a35925a04c5a9d2ec7898ee55358e',1,'mlx::core']]], + ['argmax_71',['ArgMax',['../classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3acc6659315ab0001abd37cbfcbe837e7e',1,'mlx::core::ArgReduce']]], + ['argmax_72',['argmax',['../group__ops.html#gae60b0b5339b9c50b9970260faf613e83',1,'mlx::core::argmax(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gae6f6c5a840320b336fdc9687e0ed56c8',1,'mlx::core::argmax(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga2efa67466510fc26ab9ea8dff30f2ba5',1,'mlx::core::argmax(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['argmin_73',['ArgMin',['../classmlx_1_1core_1_1_arg_reduce.html#a920ed48caaba76683be0d1f1ed4a8bd3a93a8a9221545ae9518d289d9ac4d09e9',1,'mlx::core::ArgReduce']]], + ['argmin_74',['argmin',['../group__ops.html#ga7c3bd5ef430a71dfd298e626741e3c71',1,'mlx::core::argmin(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga6bc577c5ab10cd9c848ba81321595070',1,'mlx::core::argmin(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf66dc3c77b88e4009e0678eda41eca81',1,'mlx::core::argmin(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['argpartition_75',['ArgPartition',['../classmlx_1_1core_1_1_arg_partition.html',1,'mlx::core::ArgPartition'],['../classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df',1,'mlx::core::ArgPartition::ArgPartition()']]], + ['argpartition_76',['argpartition',['../group__ops.html#gaf301c49c10fa9b95a9e8dc52ead1a8dd',1,'mlx::core::argpartition(const array &a, int kth, StreamOrDevice s={})'],['../group__ops.html#ga7b15c654c7463def57857a0e239989a3',1,'mlx::core::argpartition(const array &a, int kth, int axis, StreamOrDevice s={})']]], + ['argreduce_77',['ArgReduce',['../classmlx_1_1core_1_1_arg_reduce.html',1,'mlx::core::ArgReduce'],['../classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03',1,'mlx::core::ArgReduce::ArgReduce()']]], + ['argsort_78',['ArgSort',['../classmlx_1_1core_1_1_arg_sort.html',1,'mlx::core::ArgSort'],['../classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0',1,'mlx::core::ArgSort::ArgSort()']]], + ['argsort_79',['argsort',['../group__ops.html#ga8df3b2703bf671457422894dd870cdc5',1,'mlx::core::argsort(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7878e0daa5a75f44e57b5fe948fa3ef6',1,'mlx::core::argsort(const array &a, int axis, StreamOrDevice s={})']]], + ['argument_5fencoder_80',['argument_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881',1,'mlx::core::metal::Device']]], + ['arr_81',['arr',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail::arr< T >'],['../classpocketfft_1_1detail_1_1arr.html#a961a24410638b35129cd6b81850d2a42',1,'pocketfft::detail::arr::arr()'],['../classpocketfft_1_1detail_1_1arr.html#a04f832b780a4453fdf3b69bf75b182bd',1,'pocketfft::detail::arr::arr(size_t n)'],['../classpocketfft_1_1detail_1_1arr.html#a0cd8fb4a588a74d428a7349d38b477d0',1,'pocketfft::detail::arr::arr(arr &&other)']]], + ['arr_3c_20pocketfft_3a_3adetail_3a_3acmplx_3c_20t0_20_3e_20_3e_82',['arr< pocketfft::detail::cmplx< T0 > >',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail']]], + ['arr_3c_20pocketfft_3a_3adetail_3a_3acmplx_3c_20thigh_20_3e_20_3e_83',['arr< pocketfft::detail::cmplx< Thigh > >',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail']]], + ['arr_3c_20t0_20_3e_84',['arr< T0 >',['../classpocketfft_1_1detail_1_1arr.html',1,'pocketfft::detail']]], + ['arr_5finfo_85',['arr_info',['../classpocketfft_1_1detail_1_1arr__info.html',1,'pocketfft::detail::arr_info'],['../classpocketfft_1_1detail_1_1arr__info.html#a0dbddb7d86ca306159fc9ef9a453b21e',1,'pocketfft::detail::arr_info::arr_info()']]], + ['array_86',['array',['../classmlx_1_1core_1_1array.html',1,'mlx::core::array'],['../classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232',1,'mlx::core::array::array(T val, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca',1,'mlx::core::array::array(const std::complex< float > &val, Dtype dtype=complex64)'],['../classmlx_1_1core_1_1array.html#a3e506a53b9c7567448f7809dda680210',1,'mlx::core::array::array(It data, std::vector< int > shape, Dtype dtype=TypeToDtype< typename std::iterator_traits< It >::value_type >())'],['../classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00',1,'mlx::core::array::array(std::initializer_list< T > data, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7',1,'mlx::core::array::array(std::initializer_list< float > data)'],['../classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49',1,'mlx::core::array::array(std::initializer_list< int > data, Dtype dtype)'],['../classmlx_1_1core_1_1array.html#a44e57a41819321e0d796e08cb9a06e4b',1,'mlx::core::array::array(std::initializer_list< T > data, std::vector< int > shape, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663',1,'mlx::core::array::array(allocator::Buffer data, std::vector< int > shape, Dtype dtype, deleter_t deleter=allocator::free)'],['../classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187',1,'mlx::core::array::array(const array &other)=default'],['../classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c',1,'mlx::core::array::array(array &&other)=default'],['../classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620',1,'mlx::core::array::array(std::vector< int > shape, Dtype dtype, std::shared_ptr< Primitive > primitive, std::vector< array > inputs)']]], + ['array_20operations_87',['Core array operations',['../group__ops.html',1,'']]], + ['array_2eh_88',['array.h',['../array_8h.html',1,'']]], + ['array_5fequal_89',['array_equal',['../group__ops.html#ga8f3059336ee0c87207b1f8c6ab312645',1,'mlx::core::array_equal(const array &a, const array &b, bool equal_nan, StreamOrDevice s={})'],['../group__ops.html#gaf79cf0271ca0105d7b14295a90d0ed14',1,'mlx::core::array_equal(const array &a, const array &b, StreamOrDevice s={})']]], + ['arrayiterator_90',['ArrayIterator',['../structmlx_1_1core_1_1array_1_1_array_iterator.html',1,'mlx::core::array::ArrayIterator'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a',1,'mlx::core::array::ArrayIterator::ArrayIterator()']]], + ['as_5foffset_91',['As_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a138ed1bbad2ca88d3a3c7d162cd36562',1,'mlx::steel::BlockMMA']]], + ['as_5fstrided_92',['as_strided',['../group__ops.html#ga8de80ecef30fc560003d40f61a38b99d',1,'mlx::core']]], + ['asimd_93',['Asimd',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92ac4b483cb58c361d7a657e0738c070',1,'mlx::steel::BlockMMA']]], + ['asin_94',['asin',['../namespacemetal.html#a16e843194df3fd136404bf80ba5ac95c',1,'metal::asin()'],['../namespacemetal_1_1fast.html#a769455a283da99654b6e42c3acf13eb1',1,'metal::fast::asin()'],['../namespacemetal_1_1precise.html#adc7b8b6e12e320cb32030f728dcbf438',1,'metal::precise::asin()']]], + ['asinh_95',['asinh',['../namespacemetal.html#abcc3251866930cfe880f89e7473d0e63',1,'metal::asinh()'],['../namespacemetal_1_1fast.html#a4367034b7b3e14310803bb2be975a556',1,'metal::fast::asinh()'],['../namespacemetal_1_1precise.html#aaad1cdde6687c8011fbc5fda1bb13424',1,'metal::precise::asinh()']]], + ['asstrided_96',['AsStrided',['../classmlx_1_1core_1_1_as_strided.html',1,'mlx::core::AsStrided'],['../classmlx_1_1core_1_1_as_strided.html#a80c0547f72ed53374eafc57d57b5d4af',1,'mlx::core::AsStrided::AsStrided()']]], + ['astype_97',['AsType',['../classmlx_1_1core_1_1_as_type.html',1,'mlx::core::AsType'],['../classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47',1,'mlx::core::AsType::AsType()']]], + ['astype_98',['astype',['../group__ops.html#ga0e58c24fc5668e5a521e5b45e8370a62',1,'mlx::core']]], + ['async_5feval_99',['async_eval',['../namespacemlx_1_1core.html#a15dda19aa7fa1fc5fca35df5cf963297',1,'mlx::core']]], + ['atan_100',['atan',['../namespacemetal.html#a80a771553d9a0012b93620d19c48b00f',1,'metal::atan()'],['../namespacemetal_1_1fast.html#a769503b4b7f89071d0983258c5a3ac5a',1,'metal::fast::atan()'],['../namespacemetal_1_1precise.html#aaaf4b5f4786a912089bbf0ae7619a6be',1,'metal::precise::atan()']]], + ['atan2_101',['atan2',['../namespacemetal.html#a1d430793eaa38ccf0d07145e3fcd1e61',1,'metal::atan2()'],['../namespacemetal_1_1fast.html#a00e687ea46f5affe26e6aef8fd62b89a',1,'metal::fast::atan2()'],['../namespacemetal_1_1precise.html#a6f161b049cc6884f87b09b33c2d1cd7f',1,'metal::precise::atan2()']]], + ['atanh_102',['atanh',['../namespacemetal.html#a57116427997ba71dd3863bfb15de33bf',1,'metal::atanh()'],['../namespacemetal_1_1fast.html#af24608fc605db9a14427d37c36dc1c53',1,'metal::fast::atanh()'],['../namespacemetal_1_1precise.html#a902994837653b90c47f4285673e712c4',1,'metal::precise::atanh()']]], + ['atleast_5f1d_103',['atleast_1d',['../group__ops.html#gaba4d25e7a2bf87ba4feb7837ec7fa396',1,'mlx::core::atleast_1d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga08ca172ce80157c916c89dd0b45b95c5',1,'mlx::core::atleast_1d(const std::vector< array > &a, StreamOrDevice s={})']]], + ['atleast_5f2d_104',['atleast_2d',['../group__ops.html#gaeeb7f5bb88aa32a3ac2be1f39c5f8087',1,'mlx::core::atleast_2d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga9950299a80c2562f13448758f856d1f5',1,'mlx::core::atleast_2d(const std::vector< array > &a, StreamOrDevice s={})']]], + ['atleast_5f3d_105',['atleast_3d',['../group__ops.html#ga4afd919601e67782ff964465919956a0',1,'mlx::core::atleast_3d(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaffdf742ad79440a60dda40062a8074fe',1,'mlx::core::atleast_3d(const std::vector< array > &a, StreamOrDevice s={})']]], + ['atomic_2eh_106',['atomic.h',['../atomic_8h.html',1,'']]], + ['atomic_5fupdate_107',['atomic_update',['../struct_none.html#aecbce7c97e8b1d5dc4afd2e788c24e06',1,'None']]], + ['attach_5fevent_108',['attach_event',['../classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da',1,'mlx::core::array']]], + ['available_109',['available',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a308bd3e5bf976888b120dd36d0c2d2ae',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/all_10.js b/docs/build/html/search/all_10.js index 894c3dc6f..4aae53e0b 100644 --- a/docs/build/html/search/all_10.js +++ b/docs/build/html/search/all_10.js @@ -53,7 +53,7 @@ var searchData= ['primitive_5fid_50',['primitive_id',['../classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c',1,'mlx::core::array']]], ['primitive_5fptr_51',['primitive_ptr',['../classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469',1,'mlx::core::array']]], ['primitives_2eh_52',['primitives.h',['../distributed_2primitives_8h.html',1,'(Global Namespace)'],['../primitives_8h.html',1,'(Global Namespace)']]], - ['print_53',['print',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a6814f9008a683c6911d5b8991ef770ab',1,'mlx::core::distributed::AllReduce::print()'],['../classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb',1,'mlx::core::Primitive::print()'],['../classmlx_1_1core_1_1_abs.html#a643d6db5116eed978e3208804a992107',1,'mlx::core::Abs::print()'],['../classmlx_1_1core_1_1_add.html#a8a96345aa63724f22b68bca7b861211d',1,'mlx::core::Add::print()'],['../classmlx_1_1core_1_1_add_m_m.html#a1262ac2c4c6e9ff6b6047bf7605e5cc9',1,'mlx::core::AddMM::print()'],['../classmlx_1_1core_1_1_arange.html#abd73d2b793da796dc7cf04c9f7d5c19e',1,'mlx::core::Arange::print()'],['../classmlx_1_1core_1_1_arc_cos.html#aa48d8bec4efbac569d809cf11648b739',1,'mlx::core::ArcCos::print()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6a9a2ab0cc360d7e2f9676db17f8e630',1,'mlx::core::ArcCosh::print()'],['../classmlx_1_1core_1_1_arc_sin.html#a895a35c9dd22fdb06e7b971bfd6fde87',1,'mlx::core::ArcSin::print()'],['../classmlx_1_1core_1_1_arc_sinh.html#aa8b2934a8a0b2eedec8257bbb5726430',1,'mlx::core::ArcSinh::print()'],['../classmlx_1_1core_1_1_arc_tan.html#ab0309e4feca36f221b3d672dc92cac05',1,'mlx::core::ArcTan::print()'],['../classmlx_1_1core_1_1_arc_tan2.html#abdfef9f572d06df1251c28222756a361',1,'mlx::core::ArcTan2::print()'],['../classmlx_1_1core_1_1_arc_tanh.html#aa9549311240d7ba225b84e1df9ad8523',1,'mlx::core::ArcTanh::print()'],['../classmlx_1_1core_1_1_arg_partition.html#aa8678d94fa1571ea71a7bf790cdb8d63',1,'mlx::core::ArgPartition::print()'],['../classmlx_1_1core_1_1_arg_reduce.html#a153a6d8dba7301c4fcd0e429154ead8f',1,'mlx::core::ArgReduce::print()'],['../classmlx_1_1core_1_1_arg_sort.html#a0b59ce43e0982d634a01631728b419bd',1,'mlx::core::ArgSort::print()'],['../classmlx_1_1core_1_1_as_type.html#aa617e29147c14bd5d1fa8ad0bf65af0c',1,'mlx::core::AsType::print()'],['../classmlx_1_1core_1_1_as_strided.html#af2e21b77ea9e6c70bca45224967745bf',1,'mlx::core::AsStrided::print()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d',1,'mlx::core::BitwiseBinary::print()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#a37ecf6fa296d28efb7651a3c510fe159',1,'mlx::core::BlockMaskedMM::print()'],['../classmlx_1_1core_1_1_gather_m_m.html#ae7a6f4eecb15e95b21e6c87068ebd758',1,'mlx::core::GatherMM::print()'],['../classmlx_1_1core_1_1_broadcast.html#a6a610412861c6e472f930b6721b99a11',1,'mlx::core::Broadcast::print()'],['../classmlx_1_1core_1_1_ceil.html#a14a0048dd6496341cacaddada68276ee',1,'mlx::core::Ceil::print()'],['../classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b',1,'mlx::core::Compiled::print()'],['../classmlx_1_1core_1_1_concatenate.html#a56f29b585a6d1d958954a68dcc893f33',1,'mlx::core::Concatenate::print()'],['../classmlx_1_1core_1_1_conjugate.html#a40281539bbd543ac8fd8e28650de17e4',1,'mlx::core::Conjugate::print()'],['../classmlx_1_1core_1_1_convolution.html#a844eab7c4cc99e775cfb561265ed14fd',1,'mlx::core::Convolution::print()'],['../classmlx_1_1core_1_1_copy.html#acfa1a02ab9cdab593e928faa515a8008',1,'mlx::core::Copy::print()'],['../classmlx_1_1core_1_1_cos.html#a81858457e4bea931a4bc6f6e38b0f696',1,'mlx::core::Cos::print()'],['../classmlx_1_1core_1_1_cosh.html#ac247faad68c1050cda9f72d7d6d040e2',1,'mlx::core::Cosh::print()'],['../classmlx_1_1core_1_1_custom_transforms.html#a2ddbacbc468271b11caee0ad97005298',1,'mlx::core::CustomTransforms::print()'],['../classmlx_1_1core_1_1_depends.html#aed575b0d927f4341f60442c70adeeb82',1,'mlx::core::Depends::print()'],['../classmlx_1_1core_1_1_divide.html#af3c15337ac15522cc34ed98b97895bb6',1,'mlx::core::Divide::print()'],['../classmlx_1_1core_1_1_div_mod.html#a7edbed50d07869d921e529157931b7a1',1,'mlx::core::DivMod::print()'],['../classmlx_1_1core_1_1_select.html#a678285f2c0b9dae85692399c3aa692a7',1,'mlx::core::Select::print()'],['../classmlx_1_1core_1_1_remainder.html#aeaecac5ea8e606d7ecd393d8019029e4',1,'mlx::core::Remainder::print()'],['../classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774',1,'mlx::core::Equal::print()'],['../classmlx_1_1core_1_1_erf.html#a186af7b783cf832c3b25eec3a09f5a0c',1,'mlx::core::Erf::print()'],['../classmlx_1_1core_1_1_erf_inv.html#a0acb31bd5780abf61877bd1a3e0fd4f9',1,'mlx::core::ErfInv::print()'],['../classmlx_1_1core_1_1_exp.html#ad87cc1b2ae595a613b03b0fdca63ae6a',1,'mlx::core::Exp::print()'],['../classmlx_1_1core_1_1_expm1.html#af1a99266fc50aa5948cdd298e2916ef1',1,'mlx::core::Expm1::print()'],['../classmlx_1_1core_1_1_f_f_t.html#a15a2a5f7647f5fb78611a251d3270edf',1,'mlx::core::FFT::print()'],['../classmlx_1_1core_1_1_floor.html#ac289e87c5fac15e2f491e2513be610f6',1,'mlx::core::Floor::print()'],['../classmlx_1_1core_1_1_full.html#a68e08303f4960ab373b84a3312edc013',1,'mlx::core::Full::print()'],['../classmlx_1_1core_1_1_gather.html#a9d57637a8a65008683c3847251bdcf91',1,'mlx::core::Gather::print()'],['../classmlx_1_1core_1_1_greater.html#aa2980e45cd2c79ebfb394012d3108a04',1,'mlx::core::Greater::print()'],['../classmlx_1_1core_1_1_greater_equal.html#ab98045c861d2d2ffb0398c2c1d671cef',1,'mlx::core::GreaterEqual::print()'],['../classmlx_1_1core_1_1_hadamard.html#a3df6e7e3b3b71bf50be5f1a05d0870b6',1,'mlx::core::Hadamard::print()'],['../classmlx_1_1core_1_1_imag.html#a0c8d48e2a1474d80a314ea9b96dbaa8d',1,'mlx::core::Imag::print()'],['../classmlx_1_1core_1_1_less.html#ad67e6f66d7b75546fd98dbee6b631d78',1,'mlx::core::Less::print()'],['../classmlx_1_1core_1_1_less_equal.html#a409842d3862113c53cbbdf7467a06950',1,'mlx::core::LessEqual::print()'],['../classmlx_1_1core_1_1_load.html#a54e08a0ca41b7c9f1a76b00c889f0bfa',1,'mlx::core::Load::print()'],['../classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d',1,'mlx::core::Log::print()'],['../classmlx_1_1core_1_1_log1p.html#a8a1569dde30440ce11ea466ccc69d2d4',1,'mlx::core::Log1p::print()'],['../classmlx_1_1core_1_1_logical_not.html#a001ff3eca46440f0d8a287e0b98a8a2c',1,'mlx::core::LogicalNot::print()'],['../classmlx_1_1core_1_1_logical_and.html#a9a5220eb56e1fd94fd879394ee5ad397',1,'mlx::core::LogicalAnd::print()'],['../classmlx_1_1core_1_1_logical_or.html#a6becc5fbfadde850de9857099dcd5003',1,'mlx::core::LogicalOr::print()'],['../classmlx_1_1core_1_1_log_add_exp.html#a702a2eff0bd1ae7b6fb829dd0b0b11b9',1,'mlx::core::LogAddExp::print()'],['../classmlx_1_1core_1_1_matmul.html#abb4a16a265a05d56a2f5d2e89d6f9dfd',1,'mlx::core::Matmul::print()'],['../classmlx_1_1core_1_1_maximum.html#a3b708a1d6b526719c62850294776f8ca',1,'mlx::core::Maximum::print()'],['../classmlx_1_1core_1_1_minimum.html#a137677bf32c626a768b732a7b8575512',1,'mlx::core::Minimum::print()'],['../classmlx_1_1core_1_1_multiply.html#aa4f1f7af68346ce80c2636df415c9909',1,'mlx::core::Multiply::print()'],['../classmlx_1_1core_1_1_negative.html#a0d5c30e267ff6468d64f1987f9f83f91',1,'mlx::core::Negative::print()'],['../classmlx_1_1core_1_1_not_equal.html#a12aa2f764880d29e627540610b63af09',1,'mlx::core::NotEqual::print()'],['../classmlx_1_1core_1_1_number_of_elements.html#aecde30826970938f3aa688979a668f52',1,'mlx::core::NumberOfElements::print()'],['../classmlx_1_1core_1_1_pad.html#af87754daaf51f6a6cf8bd4949ca1e70a',1,'mlx::core::Pad::print()'],['../classmlx_1_1core_1_1_partition.html#ab5c7aa4fed325475b33d4004649f0dc0',1,'mlx::core::Partition::print()'],['../classmlx_1_1core_1_1_power.html#a33e2d7ff078426fe66ea2370ceb5af60',1,'mlx::core::Power::print()'],['../classmlx_1_1core_1_1_quantized_matmul.html#aaef8c96d4d40b4fa08ced540d341a4db',1,'mlx::core::QuantizedMatmul::print()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a53c3fa7beb51ce2e1c2da28633406fe0',1,'mlx::core::GatherQMM::print()'],['../classmlx_1_1core_1_1_random_bits.html#a8a5593c34fd868d94b36a8ced1390271',1,'mlx::core::RandomBits::print()'],['../classmlx_1_1core_1_1_real.html#a740a0dfb54c2a4467a0a59f11fe69e1b',1,'mlx::core::Real::print()'],['../classmlx_1_1core_1_1_reshape.html#a0f2323d5d67ece0eb25ecff565b21862',1,'mlx::core::Reshape::print()'],['../classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd',1,'mlx::core::Reduce::print()'],['../classmlx_1_1core_1_1_round.html#af0dfe8943109c936b35ab0082f566f72',1,'mlx::core::Round::print()'],['../classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22',1,'mlx::core::Scan::print()'],['../classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa',1,'mlx::core::Scatter::print()'],['../classmlx_1_1core_1_1_sigmoid.html#ad4cd19938e5159754aa7516f405580c2',1,'mlx::core::Sigmoid::print()'],['../classmlx_1_1core_1_1_sign.html#a2aa0720fe0a6d2408eb43c25d3d45b0a',1,'mlx::core::Sign::print()'],['../classmlx_1_1core_1_1_sin.html#a73b31005551015897f15c00e8b0222e4',1,'mlx::core::Sin::print()'],['../classmlx_1_1core_1_1_sinh.html#a5b4753d52e80799d4fea0b9172d25a77',1,'mlx::core::Sinh::print()'],['../classmlx_1_1core_1_1_slice.html#a50851148948d924b71817cfbd4401504',1,'mlx::core::Slice::print()'],['../classmlx_1_1core_1_1_slice_update.html#a751eefb9922c56479b4b0de2ad45439b',1,'mlx::core::SliceUpdate::print()'],['../classmlx_1_1core_1_1_softmax.html#aa783610ef6b82b92681e78fc99412d83',1,'mlx::core::Softmax::print()'],['../classmlx_1_1core_1_1_sort.html#ada81b9343f80958174eba708452927a2',1,'mlx::core::Sort::print()'],['../classmlx_1_1core_1_1_split.html#ad0c31fe5972643cc75fde10445fc47f2',1,'mlx::core::Split::print()'],['../classmlx_1_1core_1_1_square.html#a75feb558cd1d615e96309dd7d1e81384',1,'mlx::core::Square::print()'],['../classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f',1,'mlx::core::Sqrt::print()'],['../classmlx_1_1core_1_1_stop_gradient.html#acc7a7d51cbf014dae8ba3d20bedcad50',1,'mlx::core::StopGradient::print()'],['../classmlx_1_1core_1_1_subtract.html#a3834fd305435fb5a8e512566832e372b',1,'mlx::core::Subtract::print()'],['../classmlx_1_1core_1_1_tan.html#aeea7c284d595a2a928d5f28a55e9be7f',1,'mlx::core::Tan::print()'],['../classmlx_1_1core_1_1_tanh.html#a73f4976d641daf697cc1a231d773d78e',1,'mlx::core::Tanh::print()'],['../classmlx_1_1core_1_1_uniform.html#a01510998719b19df137451cc37850b8d',1,'mlx::core::Uniform::print()'],['../classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c',1,'mlx::core::View::print()'],['../classmlx_1_1core_1_1_transpose.html#ac6c87b850f4e5560aa13a5e1e9f9fe04',1,'mlx::core::Transpose::print()'],['../classmlx_1_1core_1_1_q_r_f.html#aba3526722b3a52b41fa8103b909f7f3b',1,'mlx::core::QRF::print()'],['../classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53',1,'mlx::core::SVD::print()'],['../classmlx_1_1core_1_1_inverse.html#a543f18f1ce5c06c897141091e95a66e9',1,'mlx::core::Inverse::print()'],['../classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84',1,'mlx::core::Cholesky::print()'],['../structmlx_1_1core_1_1_print_formatter.html#a79fad4cf5844db8c92b066539146281b',1,'mlx::core::PrintFormatter::print(std::ostream &os, bool val)'],['../structmlx_1_1core_1_1_print_formatter.html#a8da448a8adae671b26359341ea514316',1,'mlx::core::PrintFormatter::print(std::ostream &os, int16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9d750c134a6fbfa8251c5b1d01d73287',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#adbbb9cbff767f9db73c659a0c07ba633',1,'mlx::core::PrintFormatter::print(std::ostream &os, int32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a520adb07fafd911b22bc24b295e4f6cf',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ab0c702f1ae201e17cd328c9855cf522e',1,'mlx::core::PrintFormatter::print(std::ostream &os, int64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac59a5137ddd8b32aae057bb9826ee80d',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac4b7895d1168cfc1a3d1186d8a414d2f',1,'mlx::core::PrintFormatter::print(std::ostream &os, float16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ae21005f92bc641f2d657096f5d176a6d',1,'mlx::core::PrintFormatter::print(std::ostream &os, bfloat16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a57af5c32561b95d6ac2a3a1dc4f5d43e',1,'mlx::core::PrintFormatter::print(std::ostream &os, float val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9e1dc67c9afb0a09966336504790823d',1,'mlx::core::PrintFormatter::print(std::ostream &os, complex64_t val)']]], + ['print_53',['print',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a6814f9008a683c6911d5b8991ef770ab',1,'mlx::core::distributed::AllReduce::print()'],['../classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb',1,'mlx::core::Primitive::print()'],['../classmlx_1_1core_1_1_abs.html#a643d6db5116eed978e3208804a992107',1,'mlx::core::Abs::print()'],['../classmlx_1_1core_1_1_add.html#a8a96345aa63724f22b68bca7b861211d',1,'mlx::core::Add::print()'],['../classmlx_1_1core_1_1_add_m_m.html#a1262ac2c4c6e9ff6b6047bf7605e5cc9',1,'mlx::core::AddMM::print()'],['../classmlx_1_1core_1_1_arange.html#abd73d2b793da796dc7cf04c9f7d5c19e',1,'mlx::core::Arange::print()'],['../classmlx_1_1core_1_1_arc_cos.html#aa48d8bec4efbac569d809cf11648b739',1,'mlx::core::ArcCos::print()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6a9a2ab0cc360d7e2f9676db17f8e630',1,'mlx::core::ArcCosh::print()'],['../classmlx_1_1core_1_1_arc_sin.html#a895a35c9dd22fdb06e7b971bfd6fde87',1,'mlx::core::ArcSin::print()'],['../classmlx_1_1core_1_1_arc_sinh.html#aa8b2934a8a0b2eedec8257bbb5726430',1,'mlx::core::ArcSinh::print()'],['../classmlx_1_1core_1_1_arc_tan.html#ab0309e4feca36f221b3d672dc92cac05',1,'mlx::core::ArcTan::print()'],['../classmlx_1_1core_1_1_arc_tan2.html#abdfef9f572d06df1251c28222756a361',1,'mlx::core::ArcTan2::print()'],['../classmlx_1_1core_1_1_arc_tanh.html#aa9549311240d7ba225b84e1df9ad8523',1,'mlx::core::ArcTanh::print()'],['../classmlx_1_1core_1_1_arg_partition.html#aa8678d94fa1571ea71a7bf790cdb8d63',1,'mlx::core::ArgPartition::print()'],['../classmlx_1_1core_1_1_arg_reduce.html#a153a6d8dba7301c4fcd0e429154ead8f',1,'mlx::core::ArgReduce::print()'],['../classmlx_1_1core_1_1_arg_sort.html#a0b59ce43e0982d634a01631728b419bd',1,'mlx::core::ArgSort::print()'],['../classmlx_1_1core_1_1_as_type.html#aa617e29147c14bd5d1fa8ad0bf65af0c',1,'mlx::core::AsType::print()'],['../classmlx_1_1core_1_1_as_strided.html#af2e21b77ea9e6c70bca45224967745bf',1,'mlx::core::AsStrided::print()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d',1,'mlx::core::BitwiseBinary::print()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#a37ecf6fa296d28efb7651a3c510fe159',1,'mlx::core::BlockMaskedMM::print()'],['../classmlx_1_1core_1_1_gather_m_m.html#ae7a6f4eecb15e95b21e6c87068ebd758',1,'mlx::core::GatherMM::print()'],['../classmlx_1_1core_1_1_broadcast.html#a6a610412861c6e472f930b6721b99a11',1,'mlx::core::Broadcast::print()'],['../classmlx_1_1core_1_1_ceil.html#a14a0048dd6496341cacaddada68276ee',1,'mlx::core::Ceil::print()'],['../classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b',1,'mlx::core::Compiled::print()'],['../classmlx_1_1core_1_1_concatenate.html#a56f29b585a6d1d958954a68dcc893f33',1,'mlx::core::Concatenate::print()'],['../classmlx_1_1core_1_1_conjugate.html#a40281539bbd543ac8fd8e28650de17e4',1,'mlx::core::Conjugate::print()'],['../classmlx_1_1core_1_1_convolution.html#a844eab7c4cc99e775cfb561265ed14fd',1,'mlx::core::Convolution::print()'],['../classmlx_1_1core_1_1_copy.html#acfa1a02ab9cdab593e928faa515a8008',1,'mlx::core::Copy::print()'],['../classmlx_1_1core_1_1_cos.html#a81858457e4bea931a4bc6f6e38b0f696',1,'mlx::core::Cos::print()'],['../classmlx_1_1core_1_1_cosh.html#ac247faad68c1050cda9f72d7d6d040e2',1,'mlx::core::Cosh::print()'],['../classmlx_1_1core_1_1_custom_transforms.html#a2ddbacbc468271b11caee0ad97005298',1,'mlx::core::CustomTransforms::print()'],['../classmlx_1_1core_1_1_depends.html#aed575b0d927f4341f60442c70adeeb82',1,'mlx::core::Depends::print()'],['../classmlx_1_1core_1_1_divide.html#af3c15337ac15522cc34ed98b97895bb6',1,'mlx::core::Divide::print()'],['../classmlx_1_1core_1_1_div_mod.html#a7edbed50d07869d921e529157931b7a1',1,'mlx::core::DivMod::print()'],['../classmlx_1_1core_1_1_select.html#a678285f2c0b9dae85692399c3aa692a7',1,'mlx::core::Select::print()'],['../classmlx_1_1core_1_1_remainder.html#aeaecac5ea8e606d7ecd393d8019029e4',1,'mlx::core::Remainder::print()'],['../classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774',1,'mlx::core::Equal::print()'],['../classmlx_1_1core_1_1_erf.html#a186af7b783cf832c3b25eec3a09f5a0c',1,'mlx::core::Erf::print()'],['../classmlx_1_1core_1_1_erf_inv.html#a0acb31bd5780abf61877bd1a3e0fd4f9',1,'mlx::core::ErfInv::print()'],['../classmlx_1_1core_1_1_exp.html#ad87cc1b2ae595a613b03b0fdca63ae6a',1,'mlx::core::Exp::print()'],['../classmlx_1_1core_1_1_expm1.html#af1a99266fc50aa5948cdd298e2916ef1',1,'mlx::core::Expm1::print()'],['../classmlx_1_1core_1_1_f_f_t.html#a15a2a5f7647f5fb78611a251d3270edf',1,'mlx::core::FFT::print()'],['../classmlx_1_1core_1_1_floor.html#ac289e87c5fac15e2f491e2513be610f6',1,'mlx::core::Floor::print()'],['../classmlx_1_1core_1_1_full.html#a68e08303f4960ab373b84a3312edc013',1,'mlx::core::Full::print()'],['../classmlx_1_1core_1_1_gather.html#a9d57637a8a65008683c3847251bdcf91',1,'mlx::core::Gather::print()'],['../classmlx_1_1core_1_1_greater.html#aa2980e45cd2c79ebfb394012d3108a04',1,'mlx::core::Greater::print()'],['../classmlx_1_1core_1_1_greater_equal.html#ab98045c861d2d2ffb0398c2c1d671cef',1,'mlx::core::GreaterEqual::print()'],['../classmlx_1_1core_1_1_hadamard.html#a3df6e7e3b3b71bf50be5f1a05d0870b6',1,'mlx::core::Hadamard::print()'],['../classmlx_1_1core_1_1_imag.html#a0c8d48e2a1474d80a314ea9b96dbaa8d',1,'mlx::core::Imag::print()'],['../classmlx_1_1core_1_1_less.html#ad67e6f66d7b75546fd98dbee6b631d78',1,'mlx::core::Less::print()'],['../classmlx_1_1core_1_1_less_equal.html#a409842d3862113c53cbbdf7467a06950',1,'mlx::core::LessEqual::print()'],['../classmlx_1_1core_1_1_load.html#a54e08a0ca41b7c9f1a76b00c889f0bfa',1,'mlx::core::Load::print()'],['../classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d',1,'mlx::core::Log::print()'],['../classmlx_1_1core_1_1_log1p.html#a8a1569dde30440ce11ea466ccc69d2d4',1,'mlx::core::Log1p::print()'],['../classmlx_1_1core_1_1_logical_not.html#a001ff3eca46440f0d8a287e0b98a8a2c',1,'mlx::core::LogicalNot::print()'],['../classmlx_1_1core_1_1_logical_and.html#a9a5220eb56e1fd94fd879394ee5ad397',1,'mlx::core::LogicalAnd::print()'],['../classmlx_1_1core_1_1_logical_or.html#a6becc5fbfadde850de9857099dcd5003',1,'mlx::core::LogicalOr::print()'],['../classmlx_1_1core_1_1_log_add_exp.html#a702a2eff0bd1ae7b6fb829dd0b0b11b9',1,'mlx::core::LogAddExp::print()'],['../classmlx_1_1core_1_1_matmul.html#abb4a16a265a05d56a2f5d2e89d6f9dfd',1,'mlx::core::Matmul::print()'],['../classmlx_1_1core_1_1_maximum.html#a3b708a1d6b526719c62850294776f8ca',1,'mlx::core::Maximum::print()'],['../classmlx_1_1core_1_1_minimum.html#a137677bf32c626a768b732a7b8575512',1,'mlx::core::Minimum::print()'],['../classmlx_1_1core_1_1_multiply.html#aa4f1f7af68346ce80c2636df415c9909',1,'mlx::core::Multiply::print()'],['../classmlx_1_1core_1_1_negative.html#a0d5c30e267ff6468d64f1987f9f83f91',1,'mlx::core::Negative::print()'],['../classmlx_1_1core_1_1_not_equal.html#a12aa2f764880d29e627540610b63af09',1,'mlx::core::NotEqual::print()'],['../classmlx_1_1core_1_1_number_of_elements.html#aecde30826970938f3aa688979a668f52',1,'mlx::core::NumberOfElements::print()'],['../classmlx_1_1core_1_1_pad.html#af87754daaf51f6a6cf8bd4949ca1e70a',1,'mlx::core::Pad::print()'],['../classmlx_1_1core_1_1_partition.html#ab5c7aa4fed325475b33d4004649f0dc0',1,'mlx::core::Partition::print()'],['../classmlx_1_1core_1_1_power.html#a33e2d7ff078426fe66ea2370ceb5af60',1,'mlx::core::Power::print()'],['../classmlx_1_1core_1_1_quantized_matmul.html#aaef8c96d4d40b4fa08ced540d341a4db',1,'mlx::core::QuantizedMatmul::print()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a53c3fa7beb51ce2e1c2da28633406fe0',1,'mlx::core::GatherQMM::print()'],['../classmlx_1_1core_1_1_random_bits.html#a8a5593c34fd868d94b36a8ced1390271',1,'mlx::core::RandomBits::print()'],['../classmlx_1_1core_1_1_real.html#a740a0dfb54c2a4467a0a59f11fe69e1b',1,'mlx::core::Real::print()'],['../classmlx_1_1core_1_1_reshape.html#a0f2323d5d67ece0eb25ecff565b21862',1,'mlx::core::Reshape::print()'],['../classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd',1,'mlx::core::Reduce::print()'],['../classmlx_1_1core_1_1_round.html#af0dfe8943109c936b35ab0082f566f72',1,'mlx::core::Round::print()'],['../classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22',1,'mlx::core::Scan::print()'],['../classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa',1,'mlx::core::Scatter::print()'],['../classmlx_1_1core_1_1_sigmoid.html#ad4cd19938e5159754aa7516f405580c2',1,'mlx::core::Sigmoid::print()'],['../classmlx_1_1core_1_1_sign.html#a2aa0720fe0a6d2408eb43c25d3d45b0a',1,'mlx::core::Sign::print()'],['../classmlx_1_1core_1_1_sin.html#a73b31005551015897f15c00e8b0222e4',1,'mlx::core::Sin::print()'],['../classmlx_1_1core_1_1_sinh.html#a5b4753d52e80799d4fea0b9172d25a77',1,'mlx::core::Sinh::print()'],['../classmlx_1_1core_1_1_slice.html#a50851148948d924b71817cfbd4401504',1,'mlx::core::Slice::print()'],['../classmlx_1_1core_1_1_slice_update.html#a751eefb9922c56479b4b0de2ad45439b',1,'mlx::core::SliceUpdate::print()'],['../classmlx_1_1core_1_1_softmax.html#aa783610ef6b82b92681e78fc99412d83',1,'mlx::core::Softmax::print()'],['../classmlx_1_1core_1_1_sort.html#ada81b9343f80958174eba708452927a2',1,'mlx::core::Sort::print()'],['../classmlx_1_1core_1_1_split.html#ad0c31fe5972643cc75fde10445fc47f2',1,'mlx::core::Split::print()'],['../classmlx_1_1core_1_1_square.html#a75feb558cd1d615e96309dd7d1e81384',1,'mlx::core::Square::print()'],['../classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f',1,'mlx::core::Sqrt::print()'],['../classmlx_1_1core_1_1_stop_gradient.html#acc7a7d51cbf014dae8ba3d20bedcad50',1,'mlx::core::StopGradient::print()'],['../classmlx_1_1core_1_1_subtract.html#a3834fd305435fb5a8e512566832e372b',1,'mlx::core::Subtract::print()'],['../classmlx_1_1core_1_1_tan.html#aeea7c284d595a2a928d5f28a55e9be7f',1,'mlx::core::Tan::print()'],['../classmlx_1_1core_1_1_tanh.html#a73f4976d641daf697cc1a231d773d78e',1,'mlx::core::Tanh::print()'],['../classmlx_1_1core_1_1_uniform.html#a01510998719b19df137451cc37850b8d',1,'mlx::core::Uniform::print()'],['../classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c',1,'mlx::core::View::print()'],['../classmlx_1_1core_1_1_transpose.html#ac6c87b850f4e5560aa13a5e1e9f9fe04',1,'mlx::core::Transpose::print()'],['../classmlx_1_1core_1_1_q_r_f.html#aba3526722b3a52b41fa8103b909f7f3b',1,'mlx::core::QRF::print()'],['../classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53',1,'mlx::core::SVD::print()'],['../classmlx_1_1core_1_1_inverse.html#a543f18f1ce5c06c897141091e95a66e9',1,'mlx::core::Inverse::print()'],['../classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84',1,'mlx::core::Cholesky::print()'],['../classmlx_1_1core_1_1_eigh.html#a2b8e47ecd60cd7330716761c5fb1fe84',1,'mlx::core::Eigh::print()'],['../structmlx_1_1core_1_1_print_formatter.html#a79fad4cf5844db8c92b066539146281b',1,'mlx::core::PrintFormatter::print(std::ostream &os, bool val)'],['../structmlx_1_1core_1_1_print_formatter.html#a8da448a8adae671b26359341ea514316',1,'mlx::core::PrintFormatter::print(std::ostream &os, int16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9d750c134a6fbfa8251c5b1d01d73287',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#adbbb9cbff767f9db73c659a0c07ba633',1,'mlx::core::PrintFormatter::print(std::ostream &os, int32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a520adb07fafd911b22bc24b295e4f6cf',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ab0c702f1ae201e17cd328c9855cf522e',1,'mlx::core::PrintFormatter::print(std::ostream &os, int64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac59a5137ddd8b32aae057bb9826ee80d',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac4b7895d1168cfc1a3d1186d8a414d2f',1,'mlx::core::PrintFormatter::print(std::ostream &os, float16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ae21005f92bc641f2d657096f5d176a6d',1,'mlx::core::PrintFormatter::print(std::ostream &os, bfloat16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a57af5c32561b95d6ac2a3a1dc4f5d43e',1,'mlx::core::PrintFormatter::print(std::ostream &os, float val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9e1dc67c9afb0a09966336504790823d',1,'mlx::core::PrintFormatter::print(std::ostream &os, complex64_t val)']]], ['print_5fcomplex_5fconstant_54',['print_complex_constant',['../namespacemlx_1_1core.html#a2b78f270942c6eb185e8045f1c5b4286',1,'mlx::core']]], ['print_5fconstant_55',['print_constant',['../namespacemlx_1_1core.html#a7d11b000895d44d183260634f4192d92',1,'mlx::core']]], ['print_5ffloat_5fconstant_56',['print_float_constant',['../namespacemlx_1_1core.html#a93a8ac59c644b801ec8881a58368caf2',1,'mlx::core']]], diff --git a/docs/build/html/search/all_11.js b/docs/build/html/search/all_11.js index e58249e90..2c8497803 100644 --- a/docs/build/html/search/all_11.js +++ b/docs/build/html/search/all_11.js @@ -3,25 +3,29 @@ var searchData= ['q_0',['q',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#adf608e22d0c0397217472408aab52631',1,'mlx::core::scheduler::StreamThread']]], ['qdot_1',['qdot',['../quantized_8h.html#ab364d58ab652e3ad87a8f80910556071',1,'quantized.h']]], ['qdot_5fsafe_2',['qdot_safe',['../quantized_8h.html#a07b26d2d0b0d65dfe925c452c453fa42',1,'quantized.h']]], - ['qmm_5fn_3',['qmm_n',['../quantized_8h.html#ab5c4cfe531d7a0e1c19353060e3d3a6c',1,'quantized.h']]], - ['qmm_5fn_5fimpl_4',['qmm_n_impl',['../quantized_8h.html#a5f7b71eef2e328af3225d7c777ffb339',1,'quantized.h']]], - ['qmm_5ft_5',['qmm_t',['../quantized_8h.html#af9b25269ab95632e343631eeef79dc8d',1,'quantized.h']]], - ['qmm_5ft_5fimpl_6',['qmm_t_impl',['../quantized_8h.html#ac7b6accc41b026ef8efc312987aa9efe',1,'quantized.h']]], - ['qmv_7',['qmv',['../quantized_8h.html#ae024e11c3e38dda71fef772ff0a82fe2',1,'quantized.h']]], - ['qmv_5ffast_8',['qmv_fast',['../quantized_8h.html#ad6d0aa9b080358581844d6583aa2f4ea',1,'quantized.h']]], + ['qmm_5fn_3',['qmm_n',['../quantized_8h.html#a2ce135e392dbf9a3e5180fb083792ed7',1,'quantized.h']]], + ['qmm_5fn_5fimpl_4',['qmm_n_impl',['../quantized_8h.html#a0ba59096494f1001c195312571523ae9',1,'quantized.h']]], + ['qmm_5ft_5',['qmm_t',['../quantized_8h.html#abe2e3ef0ee4ec2cb61dc5330ad463d10',1,'quantized.h']]], + ['qmm_5ft_5fimpl_6',['qmm_t_impl',['../quantized_8h.html#af5750a35e8f5462218effba719f7f5b8',1,'quantized.h']]], + ['qmv_7',['qmv',['../quantized_8h.html#a639c50a08b5cf57e8be5279a116274bd',1,'quantized.h']]], + ['qmv_5ffast_8',['qmv_fast',['../quantized_8h.html#a7bd1d9f17c86c8fd34ec13678cff755f',1,'quantized.h']]], ['qmv_5ffast_5fimpl_9',['qmv_fast_impl',['../quantized_8h.html#aba7687e6f8f1d29c0a1b2a3db150bd81',1,'quantized.h']]], ['qmv_5fimpl_10',['qmv_impl',['../quantized_8h.html#a8e13c7d895624f738d2a6d9893b687fd',1,'quantized.h']]], - ['qouter_11',['qouter',['../quantized_8h.html#ae756f6817b584c60f5dcdd1d9c6b4f58',1,'quantized.h']]], - ['qr_12',['qr',['../namespacemlx_1_1core_1_1linalg.html#ae6d97829459353fe3b31c8a0867c0ca2',1,'mlx::core::linalg']]], - ['qrf_13',['QRF',['../classmlx_1_1core_1_1_q_r_f.html',1,'mlx::core::QRF'],['../classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983',1,'mlx::core::QRF::QRF()']]], - ['quantize_14',['quantize',['../group__ops.html#gab43cc28690da7cdd43b43065adbd31da',1,'mlx::core']]], - ['quantized_15',['quantized',['../namespacemlx_1_1core_1_1metal.html#a949f029424218ab5c5588563d2e076f5',1,'mlx::core::metal']]], - ['quantized_2eh_16',['quantized.h',['../quantized_8h.html',1,'']]], - ['quantized_5fmatmul_17',['quantized_matmul',['../group__ops.html#ga6381c7062b232ac21f3fdc3136aaf86e',1,'mlx::core']]], - ['quantizedblockloader_18',['QuantizedBlockLoader',['../struct_quantized_block_loader.html',1,'QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >'],['../struct_quantized_block_loader.html#af59b054750a65e7e79c1cd05c4acac93',1,'QuantizedBlockLoader::QuantizedBlockLoader()']]], - ['quantizedmatmul_19',['QuantizedMatmul',['../classmlx_1_1core_1_1_quantized_matmul.html',1,'mlx::core::QuantizedMatmul'],['../classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c',1,'mlx::core::QuantizedMatmul::QuantizedMatmul()']]], - ['query_5fsequence_5flength_20',['QUERY_SEQUENCE_LENGTH',['../struct_m_l_x_scaled_dot_product_attention_params.html#a46cc2da6a069d822f36983ee18467e5c',1,'MLXScaledDotProductAttentionParams']]], - ['quiet_5fnan_21',['quiet_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['qvm_22',['qvm',['../quantized_8h.html#a2cce78e6692cfcbab8f6aa89afa61580',1,'quantized.h']]], - ['qvm_5fimpl_23',['qvm_impl',['../quantized_8h.html#a9d466e3e3af0d75cfc4eddcf46cb13e4',1,'quantized.h']]] + ['qmv_5fquad_11',['qmv_quad',['../quantized_8h.html#a7ce5f53a4d6d1555e9402d545408d0ad',1,'quantized.h']]], + ['qmv_5fquad_5fimpl_12',['qmv_quad_impl',['../quantized_8h.html#ad5cf1cf63656bc1780685d22169cd4ef',1,'quantized.h']]], + ['qouter_13',['qouter',['../quantized_8h.html#ae756f6817b584c60f5dcdd1d9c6b4f58',1,'quantized.h']]], + ['qr_14',['qr',['../namespacemlx_1_1core_1_1linalg.html#ae6d97829459353fe3b31c8a0867c0ca2',1,'mlx::core::linalg']]], + ['qrf_15',['QRF',['../classmlx_1_1core_1_1_q_r_f.html',1,'mlx::core::QRF'],['../classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983',1,'mlx::core::QRF::QRF()']]], + ['quad_5fsize_16',['QUAD_SIZE',['../quantized_8h.html#a803e4d5a1459844ba647aea5b004e133',1,'quantized.h']]], + ['quantize_17',['quantize',['../group__ops.html#gab43cc28690da7cdd43b43065adbd31da',1,'mlx::core']]], + ['quantized_18',['quantized',['../namespacemlx_1_1core_1_1metal.html#a949f029424218ab5c5588563d2e076f5',1,'mlx::core::metal']]], + ['quantized_2eh_19',['quantized.h',['../quantized_8h.html',1,'']]], + ['quantized_5fmatmul_20',['quantized_matmul',['../group__ops.html#gabfa4208fb1f9b1cdd0abc563b19175af',1,'mlx::core']]], + ['quantizedblockloader_21',['QuantizedBlockLoader',['../struct_quantized_block_loader.html',1,'QuantizedBlockLoader< T, BROWS, BCOLS, dst_ld, reduction_dim, tgp_size, group_size, bits >'],['../struct_quantized_block_loader.html#af59b054750a65e7e79c1cd05c4acac93',1,'QuantizedBlockLoader::QuantizedBlockLoader()']]], + ['quantizedmatmul_22',['QuantizedMatmul',['../classmlx_1_1core_1_1_quantized_matmul.html',1,'mlx::core::QuantizedMatmul'],['../classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c',1,'mlx::core::QuantizedMatmul::QuantizedMatmul()']]], + ['query_5fsequence_5flength_23',['QUERY_SEQUENCE_LENGTH',['../struct_m_l_x_scaled_dot_product_attention_params.html#a46cc2da6a069d822f36983ee18467e5c',1,'MLXScaledDotProductAttentionParams']]], + ['queue_24',['queue',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d',1,'mlx::core::metal::DeviceStream']]], + ['quiet_5fnan_25',['quiet_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['qvm_26',['qvm',['../quantized_8h.html#ad84f7d5ab9e32dbbe3ca759ae5d5d5c5',1,'quantized.h']]], + ['qvm_5fimpl_27',['qvm_impl',['../quantized_8h.html#a4a8c8db7d5d480733726fd6d1a645e12',1,'quantized.h']]] ]; diff --git a/docs/build/html/search/all_12.js b/docs/build/html/search/all_12.js index 4d63d61cb..789b0bcdd 100644 --- a/docs/build/html/search/all_12.js +++ b/docs/build/html/search/all_12.js @@ -91,40 +91,42 @@ var searchData= ['reset_5fpeak_5fmemory_88',['reset_peak_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a26b9c8ac7ed56c3bb7ddc194009ec5a6',1,'mlx::core::metal::MetalAllocator::reset_peak_memory()'],['../namespacemlx_1_1core_1_1metal.html#adec8bb375da6c9dd5ff625a3a8434122',1,'mlx::core::metal::reset_peak_memory()']]], ['reshape_89',['Reshape',['../classmlx_1_1core_1_1_reshape.html',1,'mlx::core::Reshape'],['../classmlx_1_1core_1_1_reshape.html#aa7c5a6e18d0615ad36102de01929eb26',1,'mlx::core::Reshape::Reshape()']]], ['reshape_90',['reshape',['../group__ops.html#ga7b0e3d46a39d99b1628b422049790082',1,'mlx::core']]], - ['resize_91',['resize',['../classpocketfft_1_1detail_1_1arr.html#a8d73baaefa02dff8714e4398c83917e0',1,'pocketfft::detail::arr']]], - ['restart_92',['restart',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a51d252df8d0cd060f15be8ba2bfe3288',1,'pocketfft::detail::threading::thread_pool']]], - ['result_5ftype_93',['result_type',['../namespacemlx_1_1core.html#a8b984eef832f757e28cd262d64a49ae7',1,'mlx::core::result_type(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ac457c232f956ba802acb69c5a621633d',1,'mlx::core::result_type(const array &a, const array &b, const array &c)'],['../namespacemlx_1_1core.html#aafaf24a28297428caf6d0c36c623489e',1,'mlx::core::result_type(const std::vector< array > &arrays)']]], - ['results_94',['results',['../structmlx_1_1steel_1_1_block_m_m_a.html#a6dfb5ff1f174951ad7c0630ff190c95a',1,'mlx::steel::BlockMMA']]], - ['retain_5fgraph_95',['retain_graph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a12ead93cb70ebab865c5e9ce7718f814',1,'mlx::core::detail::RetainGraph']]], - ['retaingraph_96',['RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html',1,'mlx::core::detail::RetainGraph'],['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a7fac0244c14cc9e8f580bc1298ff68da',1,'mlx::core::detail::RetainGraph::RetainGraph()']]], - ['rev_5fiter_97',['rev_iter',['../classpocketfft_1_1detail_1_1rev__iter.html',1,'pocketfft::detail::rev_iter'],['../classpocketfft_1_1detail_1_1rev__iter.html#af7b8c2f1534d3038ba2a3c6b9919e134',1,'pocketfft::detail::rev_iter::rev_iter(const arr_info &arr_, const shape_t &axes)']]], - ['rev_5fofs_98',['rev_ofs',['../classpocketfft_1_1detail_1_1rev__iter.html#a7f112afa76cb7a4c29cff217a6f5f5a9',1,'pocketfft::detail::rev_iter']]], - ['rfft_99',['rfft',['../namespacemlx_1_1core_1_1fft.html#a9cb0edfb831b1ed607a8124d38540c13',1,'mlx::core::fft::rfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a464016cbc948bb3af17d43ce39cf54bd',1,'mlx::core::fft::rfft(const array &a, int axis=-1, StreamOrDevice s={})']]], - ['rfft2_100',['rfft2',['../namespacemlx_1_1core_1_1fft.html#af63a8d42005954aa5cba69823e9c9de7',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a59ca0c3c455e4ff1fed3dbd2327c55f0',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], - ['rfftn_101',['rfftn',['../namespacemlx_1_1core_1_1fft.html#a2e4287e110dfb23aaa7f4d65eb72465a',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#ab502e092ba4bb571ecc421a25e4cb968',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a53d44fd9b6c7645f9303c24099755bf2',1,'mlx::core::fft::rfftn(const array &a, StreamOrDevice s={})']]], - ['rfftp_102',['rfftp',['../classpocketfft_1_1detail_1_1rfftp.html',1,'pocketfft::detail::rfftp< T0 >'],['../classpocketfft_1_1detail_1_1rfftp.html#a0c590f917b8e8afa3ff53ccff52e68c5',1,'pocketfft::detail::rfftp::rfftp()']]], - ['right_5fshift_103',['right_shift',['../group__ops.html#gafa376ad57d38ba87378f0272dc379b23',1,'mlx::core']]], - ['rightshift_104',['RightShift',['../structmlx_1_1core_1_1detail_1_1_right_shift.html',1,'mlx::core::detail::RightShift'],['../struct_right_shift.html',1,'RightShift'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da011e7b275a1f0edbd9345cfcf6501503',1,'mlx::core::BitwiseBinary::RightShift']]], - ['rint_105',['rint',['../namespacemetal.html#a29ab6060527120eee745aec0daa06e01',1,'metal::rint()'],['../namespacemetal_1_1fast.html#aa613bc252f8d8069e175ec9e9d05a7ec',1,'metal::fast::rint()'],['../namespacemetal_1_1precise.html#ab17bd408098270ad92f37bcd1039c254',1,'metal::precise::rint()']]], - ['rms_5flooped_5flimit_106',['RMS_LOOPED_LIMIT',['../defines_8h.html#a717a175676c3f96d74adfde7e751a541',1,'defines.h']]], - ['rms_5fn_5freads_107',['RMS_N_READS',['../defines_8h.html#a89c0a33ba39a881ad3458ffdde62a24f',1,'defines.h']]], - ['rms_5fnorm_108',['rms_norm',['../namespacemlx_1_1core_1_1fast.html#ac7b620275c6386f822b7aacc6b312e62',1,'mlx::core::fast']]], - ['rmsnorm_109',['RMSNorm',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html',1,'mlx::core::fast::RMSNorm'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a22adaff0749711263388ec151fcfebe2',1,'mlx::core::fast::RMSNorm::RMSNorm()']]], - ['rmsnormvjp_110',['RMSNormVJP',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html',1,'mlx::core::fast::RMSNormVJP'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#aac060129b2e1af79bf388bfe705381ca',1,'mlx::core::fast::RMSNormVJP::RMSNormVJP()']]], - ['roll_111',['roll',['../group__ops.html#gac40e48c69f9c715a767912c30836e75c',1,'mlx::core::roll(const array &a, int shift, StreamOrDevice s={})'],['../group__ops.html#gab30fb942bb6ee00bb50da04033f949a9',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, StreamOrDevice s={})'],['../group__ops.html#ga8694ec137165752cb6d8a36a6b7c3436',1,'mlx::core::roll(const array &a, int shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga665f502ecc96f1f4467556b784abf9ae',1,'mlx::core::roll(const array &a, int shift, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga4c335f86ff2a05daf8dd8aedc628aa59',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga6c6fe942a8f7c573a1cb2342566f74d2',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, const std::vector< int > &axes, StreamOrDevice s={})']]], - ['rope_112',['RoPE',['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html',1,'mlx::core::fast::RoPE'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a031fa27aeba94cfa5ccc633137a12163',1,'mlx::core::fast::RoPE::RoPE()']]], - ['rope_113',['rope',['../namespacemlx_1_1core_1_1fast.html#a534ef357eae24892684a6ecd866d3fab',1,'mlx::core::fast']]], - ['rot90_114',['ROT90',['../namespacepocketfft_1_1detail.html#a928bad5278df636ee47402c0a75f64ef',1,'pocketfft::detail']]], - ['rotx90_115',['ROTX90',['../namespacepocketfft_1_1detail.html#ab6a43dc0cec4291e163e68a0875ac501',1,'pocketfft::detail']]], - ['round_116',['Round',['../structmlx_1_1core_1_1detail_1_1_round.html',1,'mlx::core::detail::Round'],['../classmlx_1_1core_1_1_round.html',1,'mlx::core::Round'],['../struct_round.html',1,'Round'],['../classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde',1,'mlx::core::Round::Round()']]], - ['round_117',['round',['../namespacemetal.html#a46c667e169ff9d51a9204a045305442f',1,'metal::round()'],['../namespacemetal_1_1fast.html#a4cb687257a004726d49e496417eaa40f',1,'metal::fast::round()'],['../namespacemetal_1_1precise.html#a5295ab08055d12534cc3775da855ac12',1,'metal::precise::round()'],['../group__ops.html#ga2d74d43f007a069384e89d8416525331',1,'mlx::core::round(const array &a, int decimals, StreamOrDevice s={})'],['../group__ops.html#gaf18fb7e98bf8cf3b7fbc5e64c988a95b',1,'mlx::core::round(const array &a, StreamOrDevice s={})']]], - ['round_5ferror_118',['round_error',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['row_5fcontiguous_119',['row_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd',1,'mlx::core::array::Flags']]], - ['row_5freduce_5fgeneral_5fdispatch_120',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], - ['row_5freduce_5flooped_121',['row_reduce_looped',['../reduce__row_8h.html#ad98332d74a6824aa7499df3e2f2246ae',1,'reduce_row.h']]], - ['row_5freduce_5fsimple_122',['row_reduce_simple',['../reduce__row_8h.html#ac01d30987668930c8b38900e47b8308b',1,'reduce_row.h']]], - ['row_5freduce_5fsmall_123',['row_reduce_small',['../reduce__row_8h.html#a27e75312086e31f6bd1bbf4b366679da',1,'reduce_row.h']]], - ['rsqrt_124',['Rsqrt',['../structmlx_1_1core_1_1detail_1_1_rsqrt.html',1,'mlx::core::detail::Rsqrt'],['../struct_rsqrt.html',1,'Rsqrt']]], - ['rsqrt_125',['rsqrt',['../namespacemetal.html#a1cf4b605c0aa7ff5bfe5e979a16f5157',1,'metal::rsqrt()'],['../namespacemetal_1_1fast.html#aa62097c750f1e4b69d09277f19976ab1',1,'metal::fast::rsqrt()'],['../namespacemetal_1_1precise.html#afb397b477745f12a44423934fa2b05ac',1,'metal::precise::rsqrt()'],['../group__ops.html#ga102f23aa0b0c3d3296a321c694617aa1',1,'mlx::core::rsqrt()']]], - ['run_126',['run',['../struct_g_e_m_v_kernel.html#ac4a7b5011a0ea938ab1949bb1767fc1a',1,'GEMVKernel::run()'],['../struct_g_e_m_v_t_kernel.html#a5d68656832de892f33db939005713927',1,'GEMVTKernel::run()'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5',1,'mlx::steel::GEMMKernel::run()']]] + ['residencyset_91',['ResidencySet',['../classmlx_1_1core_1_1metal_1_1_residency_set.html',1,'mlx::core::metal::ResidencySet'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#abb69d020da017a7e52e9e3903b877eec',1,'mlx::core::metal::ResidencySet::ResidencySet(MTL::Device *d)'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#aabbf8c16f269f38e4c38097b947d18b7',1,'mlx::core::metal::ResidencySet::ResidencySet(const ResidencySet &)=delete']]], + ['resident_2eh_92',['resident.h',['../resident_8h.html',1,'']]], + ['resize_93',['resize',['../classpocketfft_1_1detail_1_1arr.html#a8d73baaefa02dff8714e4398c83917e0',1,'pocketfft::detail::arr::resize()'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#a0364647bca4324ac41ea3900925a69b5',1,'mlx::core::metal::ResidencySet::resize()']]], + ['restart_94',['restart',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a51d252df8d0cd060f15be8ba2bfe3288',1,'pocketfft::detail::threading::thread_pool']]], + ['result_5ftype_95',['result_type',['../namespacemlx_1_1core.html#a8b984eef832f757e28cd262d64a49ae7',1,'mlx::core::result_type(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ac457c232f956ba802acb69c5a621633d',1,'mlx::core::result_type(const array &a, const array &b, const array &c)'],['../namespacemlx_1_1core.html#aafaf24a28297428caf6d0c36c623489e',1,'mlx::core::result_type(const std::vector< array > &arrays)']]], + ['results_96',['results',['../structmlx_1_1steel_1_1_block_m_m_a.html#a6dfb5ff1f174951ad7c0630ff190c95a',1,'mlx::steel::BlockMMA']]], + ['retain_5fgraph_97',['retain_graph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a12ead93cb70ebab865c5e9ce7718f814',1,'mlx::core::detail::RetainGraph']]], + ['retaingraph_98',['RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html',1,'mlx::core::detail::RetainGraph'],['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a7fac0244c14cc9e8f580bc1298ff68da',1,'mlx::core::detail::RetainGraph::RetainGraph()']]], + ['rev_5fiter_99',['rev_iter',['../classpocketfft_1_1detail_1_1rev__iter.html',1,'pocketfft::detail::rev_iter'],['../classpocketfft_1_1detail_1_1rev__iter.html#af7b8c2f1534d3038ba2a3c6b9919e134',1,'pocketfft::detail::rev_iter::rev_iter(const arr_info &arr_, const shape_t &axes)']]], + ['rev_5fofs_100',['rev_ofs',['../classpocketfft_1_1detail_1_1rev__iter.html#a7f112afa76cb7a4c29cff217a6f5f5a9',1,'pocketfft::detail::rev_iter']]], + ['rfft_101',['rfft',['../namespacemlx_1_1core_1_1fft.html#a9cb0edfb831b1ed607a8124d38540c13',1,'mlx::core::fft::rfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a464016cbc948bb3af17d43ce39cf54bd',1,'mlx::core::fft::rfft(const array &a, int axis=-1, StreamOrDevice s={})']]], + ['rfft2_102',['rfft2',['../namespacemlx_1_1core_1_1fft.html#af63a8d42005954aa5cba69823e9c9de7',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a59ca0c3c455e4ff1fed3dbd2327c55f0',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], + ['rfftn_103',['rfftn',['../namespacemlx_1_1core_1_1fft.html#a2e4287e110dfb23aaa7f4d65eb72465a',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#ab502e092ba4bb571ecc421a25e4cb968',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a53d44fd9b6c7645f9303c24099755bf2',1,'mlx::core::fft::rfftn(const array &a, StreamOrDevice s={})']]], + ['rfftp_104',['rfftp',['../classpocketfft_1_1detail_1_1rfftp.html',1,'pocketfft::detail::rfftp< T0 >'],['../classpocketfft_1_1detail_1_1rfftp.html#a0c590f917b8e8afa3ff53ccff52e68c5',1,'pocketfft::detail::rfftp::rfftp()']]], + ['right_5fshift_105',['right_shift',['../group__ops.html#gafa376ad57d38ba87378f0272dc379b23',1,'mlx::core']]], + ['rightshift_106',['RightShift',['../structmlx_1_1core_1_1detail_1_1_right_shift.html',1,'mlx::core::detail::RightShift'],['../struct_right_shift.html',1,'RightShift'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6f8b5d455d0c1770428a6bef1608f23da011e7b275a1f0edbd9345cfcf6501503',1,'mlx::core::BitwiseBinary::RightShift']]], + ['rint_107',['rint',['../namespacemetal.html#a29ab6060527120eee745aec0daa06e01',1,'metal::rint()'],['../namespacemetal_1_1fast.html#aa613bc252f8d8069e175ec9e9d05a7ec',1,'metal::fast::rint()'],['../namespacemetal_1_1precise.html#ab17bd408098270ad92f37bcd1039c254',1,'metal::precise::rint()']]], + ['rms_5flooped_5flimit_108',['RMS_LOOPED_LIMIT',['../defines_8h.html#a717a175676c3f96d74adfde7e751a541',1,'defines.h']]], + ['rms_5fn_5freads_109',['RMS_N_READS',['../defines_8h.html#a89c0a33ba39a881ad3458ffdde62a24f',1,'defines.h']]], + ['rms_5fnorm_110',['rms_norm',['../namespacemlx_1_1core_1_1fast.html#ac7b620275c6386f822b7aacc6b312e62',1,'mlx::core::fast']]], + ['rmsnorm_111',['RMSNorm',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html',1,'mlx::core::fast::RMSNorm'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a22adaff0749711263388ec151fcfebe2',1,'mlx::core::fast::RMSNorm::RMSNorm()']]], + ['rmsnormvjp_112',['RMSNormVJP',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html',1,'mlx::core::fast::RMSNormVJP'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#aac060129b2e1af79bf388bfe705381ca',1,'mlx::core::fast::RMSNormVJP::RMSNormVJP()']]], + ['roll_113',['roll',['../group__ops.html#gac40e48c69f9c715a767912c30836e75c',1,'mlx::core::roll(const array &a, int shift, StreamOrDevice s={})'],['../group__ops.html#gab30fb942bb6ee00bb50da04033f949a9',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, StreamOrDevice s={})'],['../group__ops.html#ga8694ec137165752cb6d8a36a6b7c3436',1,'mlx::core::roll(const array &a, int shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga665f502ecc96f1f4467556b784abf9ae',1,'mlx::core::roll(const array &a, int shift, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga4c335f86ff2a05daf8dd8aedc628aa59',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga6c6fe942a8f7c573a1cb2342566f74d2',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, const std::vector< int > &axes, StreamOrDevice s={})']]], + ['rope_114',['RoPE',['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html',1,'mlx::core::fast::RoPE'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a031fa27aeba94cfa5ccc633137a12163',1,'mlx::core::fast::RoPE::RoPE()']]], + ['rope_115',['rope',['../namespacemlx_1_1core_1_1fast.html#a534ef357eae24892684a6ecd866d3fab',1,'mlx::core::fast']]], + ['rot90_116',['ROT90',['../namespacepocketfft_1_1detail.html#a928bad5278df636ee47402c0a75f64ef',1,'pocketfft::detail']]], + ['rotx90_117',['ROTX90',['../namespacepocketfft_1_1detail.html#ab6a43dc0cec4291e163e68a0875ac501',1,'pocketfft::detail']]], + ['round_118',['Round',['../structmlx_1_1core_1_1detail_1_1_round.html',1,'mlx::core::detail::Round'],['../classmlx_1_1core_1_1_round.html',1,'mlx::core::Round'],['../struct_round.html',1,'Round'],['../classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde',1,'mlx::core::Round::Round()']]], + ['round_119',['round',['../namespacemetal.html#a46c667e169ff9d51a9204a045305442f',1,'metal::round()'],['../namespacemetal_1_1fast.html#a4cb687257a004726d49e496417eaa40f',1,'metal::fast::round()'],['../namespacemetal_1_1precise.html#a5295ab08055d12534cc3775da855ac12',1,'metal::precise::round()'],['../group__ops.html#ga2d74d43f007a069384e89d8416525331',1,'mlx::core::round(const array &a, int decimals, StreamOrDevice s={})'],['../group__ops.html#gaf18fb7e98bf8cf3b7fbc5e64c988a95b',1,'mlx::core::round(const array &a, StreamOrDevice s={})']]], + ['round_5ferror_120',['round_error',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['row_5fcontiguous_121',['row_contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#a3170fa381dc7a90f6eabcc029bdf9bfd',1,'mlx::core::array::Flags']]], + ['row_5freduce_5fgeneral_5fdispatch_122',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], + ['row_5freduce_5flooped_123',['row_reduce_looped',['../reduce__row_8h.html#ad98332d74a6824aa7499df3e2f2246ae',1,'reduce_row.h']]], + ['row_5freduce_5fsimple_124',['row_reduce_simple',['../reduce__row_8h.html#ac01d30987668930c8b38900e47b8308b',1,'reduce_row.h']]], + ['row_5freduce_5fsmall_125',['row_reduce_small',['../reduce__row_8h.html#a27e75312086e31f6bd1bbf4b366679da',1,'reduce_row.h']]], + ['rsqrt_126',['Rsqrt',['../structmlx_1_1core_1_1detail_1_1_rsqrt.html',1,'mlx::core::detail::Rsqrt'],['../struct_rsqrt.html',1,'Rsqrt']]], + ['rsqrt_127',['rsqrt',['../namespacemetal.html#a1cf4b605c0aa7ff5bfe5e979a16f5157',1,'metal::rsqrt()'],['../namespacemetal_1_1fast.html#aa62097c750f1e4b69d09277f19976ab1',1,'metal::fast::rsqrt()'],['../namespacemetal_1_1precise.html#afb397b477745f12a44423934fa2b05ac',1,'metal::precise::rsqrt()'],['../group__ops.html#ga102f23aa0b0c3d3296a321c694617aa1',1,'mlx::core::rsqrt()']]], + ['run_128',['run',['../struct_g_e_m_v_kernel.html#ac4a7b5011a0ea938ab1949bb1767fc1a',1,'GEMVKernel::run()'],['../struct_g_e_m_v_t_kernel.html#a5d68656832de892f33db939005713927',1,'GEMVTKernel::run()'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5',1,'mlx::steel::GEMMKernel::run()']]] ]; diff --git a/docs/build/html/search/all_13.js b/docs/build/html/search/all_13.js index a6bcca7f5..96ba00956 100644 --- a/docs/build/html/search/all_13.js +++ b/docs/build/html/search/all_13.js @@ -14,185 +14,186 @@ var searchData= ['scales_11',['scales',['../struct_quantized_block_loader.html#a6123e4a9209d6eacb58b2c2344ed1ecf',1,'QuantizedBlockLoader']]], ['scan_12',['Scan',['../classmlx_1_1core_1_1_scan.html',1,'mlx::core::Scan'],['../classmlx_1_1core_1_1_scan.html#ac93e8f9c6771de825d2186ef34fa7087',1,'mlx::core::Scan::Scan()']]], ['scan_13',['scan',['../namespacemlx_1_1core_1_1metal.html#a81c2cf124b0803098a54a78f8f6873a6',1,'mlx::core::metal']]], - ['scan_2eh_14',['scan.h',['../jit_2scan_8h.html',1,'(Global Namespace)'],['../kernels_2scan_8h.html',1,'(Global Namespace)']]], - ['scan_5fkernels_15',['scan_kernels',['../jit_2scan_8h.html#a35041ee4a053875a2240bdac5a3b4fae',1,'scan.h']]], - ['scatter_16',['Scatter',['../classmlx_1_1core_1_1_scatter.html',1,'mlx::core::Scatter'],['../classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3',1,'mlx::core::Scatter::Scatter()']]], - ['scatter_17',['scatter',['../namespacemlx_1_1core_1_1metal.html#a32e902c6cd6d35fcc3119ed6685a170f',1,'mlx::core::metal::scatter()'],['../group__ops.html#gad438be8f90bae9d37c6853b8f4225d61',1,'mlx::core::scatter(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#gac2c2b379a3ce959dbe1c4a68f112edfe',1,'mlx::core::scatter(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], - ['scatter_2eh_18',['scatter.h',['../scatter_8h.html',1,'']]], - ['scatter_5f1d_5findex_5fimpl_19',['scatter_1d_index_impl',['../scatter_8h.html#ac1fd901b5ef9f39be32316a17297781e',1,'scatter.h']]], - ['scatter_5fadd_20',['scatter_add',['../group__ops.html#gacd14c2b5cfebf343fc2d672722f8d174',1,'mlx::core::scatter_add(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#gac13318518e5703f1273c5366eb523a5a',1,'mlx::core::scatter_add(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], - ['scatter_5fimpl_21',['scatter_impl',['../scatter_8h.html#a75f61cc43682a72dd66a1da43a1809fe',1,'scatter.h']]], - ['scatter_5fkernels_22',['scatter_kernels',['../jit_2indexing_8h.html#a768c949cd650a44c6b402fc1440c1a56',1,'indexing.h']]], - ['scatter_5fmax_23',['scatter_max',['../group__ops.html#ga05881a4157cd113c9392d168a79e6673',1,'mlx::core::scatter_max(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga9adda5f9202bb3486e4d9e1114e3a56f',1,'mlx::core::scatter_max(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], - ['scatter_5fmin_24',['scatter_min',['../group__ops.html#ga0ca16b7579dfc899f3f7fd40245ba7c5',1,'mlx::core::scatter_min(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga51fa762a997c243ca7a19e1ed3e83199',1,'mlx::core::scatter_min(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], - ['scatter_5fprod_25',['scatter_prod',['../group__ops.html#ga3708b5bcb61e2c63d213c4ce6ad0ffc0',1,'mlx::core::scatter_prod(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#gaf83c53c453faa9083ba27e4b97539339',1,'mlx::core::scatter_prod(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], - ['scheduled_26',['scheduled',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae',1,'mlx::core::array']]], - ['scheduler_27',['Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html',1,'mlx::core::scheduler::Scheduler'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a3ae42aed78a2200e9d02776fcd2316ba',1,'mlx::core::scheduler::Scheduler::Scheduler()'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a61a74e3628899e66dde600e24a750648',1,'mlx::core::scheduler::Scheduler::Scheduler(const Scheduler &)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ac3f77b7c93220dadd0b3bb2e903b7059',1,'mlx::core::scheduler::Scheduler::Scheduler(Scheduler &&)=delete']]], - ['scheduler_28',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html#ae856e468c2f7c8f8ec672522cc13730b',1,'mlx::core::scheduler']]], - ['scheduler_2eh_29',['scheduler.h',['../scheduler_8h.html',1,'']]], - ['sdpa_5fvector_30',['sdpa_vector',['../sdpa__vector_8h.html#a6f0d7918430064bab910bdaa6c64e927',1,'sdpa_vector.h']]], - ['sdpa_5fvector_2eh_31',['sdpa_vector.h',['../sdpa__vector_8h.html',1,'']]], - ['seed_32',['seed',['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a9f19c5da2031cba50d0ff996924347d8',1,'mlx::core::random::KeySequence::seed()'],['../namespacemlx_1_1core_1_1random.html#ac4ad325b613257306df74595d3d0e23b',1,'mlx::core::random::seed()']]], - ['seek_33',['seek',['../structmlx_1_1core_1_1_contiguous_iterator.html#a24719ee9e8667885d29c2ad74445520c',1,'mlx::core::ContiguousIterator::seek()'],['../classmlx_1_1core_1_1io_1_1_reader.html#acea55078bd39ccaa27a9a36f17a39cd1',1,'mlx::core::io::Reader::seek()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a9c1716dda53aa36faea9c8fb1a3e34d4',1,'mlx::core::io::Writer::seek()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a673c16b669f3cee13f387b7b0a1f39f7',1,'mlx::core::io::ParallelFileReader::seek()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a9646f4ea048ae58719daeb588e2de433',1,'mlx::core::io::FileWriter::seek()']]], - ['select_34',['Select',['../structmlx_1_1core_1_1detail_1_1_select.html',1,'mlx::core::detail::Select'],['../classmlx_1_1core_1_1_select.html',1,'mlx::core::Select'],['../struct_select.html',1,'Select'],['../classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9',1,'mlx::core::Select::Select()']]], - ['send_35',['Send',['../classmlx_1_1core_1_1distributed_1_1_send.html',1,'mlx::core::distributed::Send'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a2481dd876b14d4a13ac466cbca9c4eac',1,'mlx::core::distributed::Send::Send()']]], - ['send_36',['send',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#abf33511660ac71df5fc92f2aad6c6e08',1,'mlx::core::distributed::detail::send()'],['../namespacemlx_1_1core_1_1distributed.html#a5a8360edaa3a528a3927fce4d2cf1777',1,'mlx::core::distributed::send()']]], - ['set_37',['Set',['../structpocketfft_1_1detail_1_1cmplx.html#a647fece372b64b13c4a7e5877d09a807',1,'pocketfft::detail::cmplx::Set(T r_, T i_)'],['../structpocketfft_1_1detail_1_1cmplx.html#a447d26b2e07f6e45f29d865e906c0a98',1,'pocketfft::detail::cmplx::Set(T r_)']]], - ['set_5fcache_5flimit_38',['set_cache_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#af392bced29d9e4e3f1a7cc4725d83764',1,'mlx::core::metal::MetalAllocator::set_cache_limit()'],['../namespacemlx_1_1core_1_1metal.html#ab09c9b60f1e886ab859e6a066c9a5b9d',1,'mlx::core::metal::set_cache_limit()']]], - ['set_5fcompile_5fmode_39',['set_compile_mode',['../namespacemlx_1_1core.html#a49445a55f976c4397f25ea18e1e92bef',1,'mlx::core']]], - ['set_5fdata_40',['set_data',['../classmlx_1_1core_1_1array.html#a631acd8e318189640b8338f9ae1a554d',1,'mlx::core::array::set_data(allocator::Buffer buffer, deleter_t d=allocator::free)'],['../classmlx_1_1core_1_1array.html#a2112af5fba37b3135cd2e6ac9e851606',1,'mlx::core::array::set_data(allocator::Buffer buffer, size_t data_size, std::vector< size_t > strides, Flags flags, deleter_t d=allocator::free)']]], - ['set_5fdefault_5fdevice_41',['set_default_device',['../namespacemlx_1_1core.html#a312a2de41367fe52caeaf8c0f596a120',1,'mlx::core']]], - ['set_5fdefault_5fstream_42',['set_default_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a6d15314ac9cf25efc9bd1278de9a66bb',1,'mlx::core::scheduler::Scheduler::set_default_stream()'],['../namespacemlx_1_1core.html#af35a2b06517d8bb7dbb469692b4f841c',1,'mlx::core::set_default_stream()']]], - ['set_5finput_5farray_43',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], - ['set_5fmemory_5flimit_44',['set_memory_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a179e3127ef9377ce54295f771c34ba1b',1,'mlx::core::metal::MetalAllocator::set_memory_limit()'],['../namespacemlx_1_1core_1_1metal.html#a3fb2c4a237fa4bfdff798156146c4937',1,'mlx::core::metal::set_memory_limit()']]], - ['set_5foutput_5farray_45',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], + ['scan_2eh_14',['scan.h',['../scan_8h.html',1,'']]], + ['scatter_15',['Scatter',['../classmlx_1_1core_1_1_scatter.html',1,'mlx::core::Scatter'],['../classmlx_1_1core_1_1_scatter.html#ac9b3eff67389ef9aa820753379ffeaa3',1,'mlx::core::Scatter::Scatter()']]], + ['scatter_16',['scatter',['../namespacemlx_1_1core_1_1metal.html#a32e902c6cd6d35fcc3119ed6685a170f',1,'mlx::core::metal::scatter()'],['../group__ops.html#gad438be8f90bae9d37c6853b8f4225d61',1,'mlx::core::scatter(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#gac2c2b379a3ce959dbe1c4a68f112edfe',1,'mlx::core::scatter(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], + ['scatter_2eh_17',['scatter.h',['../scatter_8h.html',1,'']]], + ['scatter_5f1d_5findex_5fimpl_18',['scatter_1d_index_impl',['../scatter_8h.html#ac1fd901b5ef9f39be32316a17297781e',1,'scatter.h']]], + ['scatter_5fadd_19',['scatter_add',['../group__ops.html#gacd14c2b5cfebf343fc2d672722f8d174',1,'mlx::core::scatter_add(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#gac13318518e5703f1273c5366eb523a5a',1,'mlx::core::scatter_add(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], + ['scatter_5fimpl_20',['scatter_impl',['../scatter_8h.html#a75f61cc43682a72dd66a1da43a1809fe',1,'scatter.h']]], + ['scatter_5fkernels_21',['scatter_kernels',['../jit_2indexing_8h.html#a768c949cd650a44c6b402fc1440c1a56',1,'indexing.h']]], + ['scatter_5fmax_22',['scatter_max',['../group__ops.html#ga05881a4157cd113c9392d168a79e6673',1,'mlx::core::scatter_max(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga9adda5f9202bb3486e4d9e1114e3a56f',1,'mlx::core::scatter_max(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], + ['scatter_5fmin_23',['scatter_min',['../group__ops.html#ga0ca16b7579dfc899f3f7fd40245ba7c5',1,'mlx::core::scatter_min(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga51fa762a997c243ca7a19e1ed3e83199',1,'mlx::core::scatter_min(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], + ['scatter_5fprod_24',['scatter_prod',['../group__ops.html#ga3708b5bcb61e2c63d213c4ce6ad0ffc0',1,'mlx::core::scatter_prod(const array &a, const std::vector< array > &indices, const array &updates, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#gaf83c53c453faa9083ba27e4b97539339',1,'mlx::core::scatter_prod(const array &a, const array &indices, const array &updates, int axis, StreamOrDevice s={})']]], + ['scheduled_25',['scheduled',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078af8a6f8eed2395ab89a758dec434393ae',1,'mlx::core::array']]], + ['scheduler_26',['Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html',1,'mlx::core::scheduler::Scheduler'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a3ae42aed78a2200e9d02776fcd2316ba',1,'mlx::core::scheduler::Scheduler::Scheduler()'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a61a74e3628899e66dde600e24a750648',1,'mlx::core::scheduler::Scheduler::Scheduler(const Scheduler &)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ac3f77b7c93220dadd0b3bb2e903b7059',1,'mlx::core::scheduler::Scheduler::Scheduler(Scheduler &&)=delete']]], + ['scheduler_27',['scheduler',['../namespacemlx_1_1core_1_1scheduler.html#ae856e468c2f7c8f8ec672522cc13730b',1,'mlx::core::scheduler']]], + ['scheduler_2eh_28',['scheduler.h',['../scheduler_8h.html',1,'']]], + ['sdpa_5fvector_29',['sdpa_vector',['../sdpa__vector_8h.html#a6f0d7918430064bab910bdaa6c64e927',1,'sdpa_vector.h']]], + ['sdpa_5fvector_2eh_30',['sdpa_vector.h',['../sdpa__vector_8h.html',1,'']]], + ['seed_31',['seed',['../classmlx_1_1core_1_1random_1_1_key_sequence.html#a9f19c5da2031cba50d0ff996924347d8',1,'mlx::core::random::KeySequence::seed()'],['../namespacemlx_1_1core_1_1random.html#ac4ad325b613257306df74595d3d0e23b',1,'mlx::core::random::seed()']]], + ['seek_32',['seek',['../structmlx_1_1core_1_1_contiguous_iterator.html#a24719ee9e8667885d29c2ad74445520c',1,'mlx::core::ContiguousIterator::seek()'],['../classmlx_1_1core_1_1io_1_1_reader.html#acea55078bd39ccaa27a9a36f17a39cd1',1,'mlx::core::io::Reader::seek()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a9c1716dda53aa36faea9c8fb1a3e34d4',1,'mlx::core::io::Writer::seek()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a673c16b669f3cee13f387b7b0a1f39f7',1,'mlx::core::io::ParallelFileReader::seek()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a9646f4ea048ae58719daeb588e2de433',1,'mlx::core::io::FileWriter::seek()']]], + ['select_33',['Select',['../structmlx_1_1core_1_1detail_1_1_select.html',1,'mlx::core::detail::Select'],['../classmlx_1_1core_1_1_select.html',1,'mlx::core::Select'],['../struct_select.html',1,'Select'],['../classmlx_1_1core_1_1_select.html#a6f833fe55dd68ad3726bbf9a8f75eec9',1,'mlx::core::Select::Select()']]], + ['send_34',['Send',['../classmlx_1_1core_1_1distributed_1_1_send.html',1,'mlx::core::distributed::Send'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a2481dd876b14d4a13ac466cbca9c4eac',1,'mlx::core::distributed::Send::Send()']]], + ['send_35',['send',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#abf33511660ac71df5fc92f2aad6c6e08',1,'mlx::core::distributed::detail::send()'],['../namespacemlx_1_1core_1_1distributed.html#a5a8360edaa3a528a3927fce4d2cf1777',1,'mlx::core::distributed::send()']]], + ['set_36',['Set',['../structpocketfft_1_1detail_1_1cmplx.html#a647fece372b64b13c4a7e5877d09a807',1,'pocketfft::detail::cmplx::Set(T r_, T i_)'],['../structpocketfft_1_1detail_1_1cmplx.html#a447d26b2e07f6e45f29d865e906c0a98',1,'pocketfft::detail::cmplx::Set(T r_)']]], + ['set_5fcache_5flimit_37',['set_cache_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#af392bced29d9e4e3f1a7cc4725d83764',1,'mlx::core::metal::MetalAllocator::set_cache_limit()'],['../namespacemlx_1_1core_1_1metal.html#ab09c9b60f1e886ab859e6a066c9a5b9d',1,'mlx::core::metal::set_cache_limit()']]], + ['set_5fcompile_5fmode_38',['set_compile_mode',['../namespacemlx_1_1core.html#a49445a55f976c4397f25ea18e1e92bef',1,'mlx::core']]], + ['set_5fdata_39',['set_data',['../classmlx_1_1core_1_1array.html#a631acd8e318189640b8338f9ae1a554d',1,'mlx::core::array::set_data(allocator::Buffer buffer, deleter_t d=allocator::free)'],['../classmlx_1_1core_1_1array.html#a2112af5fba37b3135cd2e6ac9e851606',1,'mlx::core::array::set_data(allocator::Buffer buffer, size_t data_size, std::vector< size_t > strides, Flags flags, deleter_t d=allocator::free)']]], + ['set_5fdefault_5fdevice_40',['set_default_device',['../namespacemlx_1_1core.html#a312a2de41367fe52caeaf8c0f596a120',1,'mlx::core']]], + ['set_5fdefault_5fstream_41',['set_default_stream',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a6d15314ac9cf25efc9bd1278de9a66bb',1,'mlx::core::scheduler::Scheduler::set_default_stream()'],['../namespacemlx_1_1core.html#af35a2b06517d8bb7dbb469692b4f841c',1,'mlx::core::set_default_stream()']]], + ['set_5finput_5farray_42',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fmemory_5flimit_43',['set_memory_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a179e3127ef9377ce54295f771c34ba1b',1,'mlx::core::metal::MetalAllocator::set_memory_limit()'],['../namespacemlx_1_1core_1_1metal.html#a3fb2c4a237fa4bfdff798156146c4937',1,'mlx::core::metal::set_memory_limit()']]], + ['set_5foutput_5farray_44',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], + ['set_5fresidency_5fset_45',['set_residency_set',['../classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f',1,'mlx::core::metal::Device']]], ['set_5fsiblings_46',['set_siblings',['../classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1',1,'mlx::core::array']]], ['set_5fstatus_47',['set_status',['../classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c',1,'mlx::core::array']]], ['set_5ftracer_48',['set_tracer',['../classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8',1,'mlx::core::array']]], ['set_5fvalue_49',['set_value',['../classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d',1,'mlx::core::Event']]], ['set_5fvector_5fbytes_50',['set_vector_bytes',['../namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf',1,'mlx::core::set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, size_t nelems, int idx)'],['../namespacemlx_1_1core.html#ae309cb543dfb0239cfccc53a8ad0408e',1,'mlx::core::set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, int idx)']]], - ['shape_51',['shape',['../structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae',1,'mlx::core::ReductionPlan::shape'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a',1,'mlx::core::fast::CustomKernelShapeInfo::shape'],['../classpocketfft_1_1detail_1_1arr__info.html#accada8146cb8d3ab7facb4c1e3413ec0',1,'pocketfft::detail::arr_info::shape() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac601c660c64a4c252aa8be4ae7dfa7a8',1,'pocketfft::detail::arr_info::shape(size_t i) const'],['../classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d',1,'mlx::core::array::shape() const'],['../classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f',1,'mlx::core::array::shape(int dim) const']]], - ['shape_5ft_52',['shape_t',['../namespacepocketfft_1_1detail.html#a885ee37fcf564a268a5c8ca9ea8603e1',1,'pocketfft::detail']]], - ['shapes_53',['shapes',['../struct_indices.html#a5ab170f1a77636180889ddfffd4f7d2f',1,'Indices']]], - ['shapes_5fwithout_5freduction_5faxes_54',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], - ['shared_5fbuffer_5fslice_55',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], - ['shp_56',['shp',['../classpocketfft_1_1detail_1_1arr__info.html#a2467e9e01de1ba4d7cd28c1af783da8d',1,'pocketfft::detail::arr_info']]], - ['shutdown_57',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], - ['siblings_58',['siblings',['../classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d',1,'mlx::core::array::siblings() const'],['../classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c',1,'mlx::core::array::siblings()']]], - ['sigmoid_59',['Sigmoid',['../structmlx_1_1core_1_1detail_1_1_sigmoid.html',1,'mlx::core::detail::Sigmoid'],['../classmlx_1_1core_1_1_sigmoid.html',1,'mlx::core::Sigmoid'],['../struct_sigmoid.html',1,'Sigmoid'],['../classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b',1,'mlx::core::Sigmoid::Sigmoid()']]], - ['sigmoid_60',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], - ['sign_61',['Sign',['../structmlx_1_1core_1_1detail_1_1_sign.html',1,'mlx::core::detail::Sign'],['../classmlx_1_1core_1_1_sign.html',1,'mlx::core::Sign'],['../struct_sign.html',1,'Sign'],['../classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763',1,'mlx::core::Sign::Sign()']]], - ['sign_62',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], - ['signal_63',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], - ['signaling_5fnan_64',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['signedinteger_65',['signedinteger',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10',1,'mlx::core::Dtype::signedinteger'],['../namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001',1,'mlx::core::signedinteger']]], - ['simd_5fbroadcast_66',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], - ['simd_5fexclusive_5fscan_67',['simd_exclusive_scan',['../struct_cum_sum.html#a64d1933942de4df2d44dd90e9e5e4460',1,'CumSum::simd_exclusive_scan()'],['../struct_cum_prod.html#a5b0577295853a48856b84fd4f935dff8',1,'CumProd::simd_exclusive_scan()'],['../struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223',1,'CumProd< bool >::simd_exclusive_scan()'],['../struct_cum_max.html#ae11b67aa6c998e9a01615b2a79af4403',1,'CumMax::simd_exclusive_scan()'],['../struct_cum_min.html#a83e65017ff33018b585c043fb803773b',1,'CumMin::simd_exclusive_scan()']]], - ['simd_5fmax_68',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], - ['simd_5fmin_69',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], - ['simd_5fprefix_5fexclusive_5fproduct_70',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], - ['simd_5fprefix_5fexclusive_5fsum_71',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], - ['simd_5fprefix_5finclusive_5fproduct_72',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], - ['simd_5fprefix_5finclusive_5fsum_73',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], - ['simd_5fproduct_74',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], - ['simd_5fscan_75',['simd_scan',['../struct_cum_sum.html#a83342af06f6a700067e3b451636852d6',1,'CumSum::simd_scan()'],['../struct_cum_prod.html#a860dbf6146de088d07175bd165b74004',1,'CumProd::simd_scan()'],['../struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a',1,'CumProd< bool >::simd_scan()'],['../struct_cum_max.html#adc9ec8bb09b4433d4c2f03022c43d781',1,'CumMax::simd_scan()'],['../struct_cum_min.html#a0a1005d91b1c90e90e2c6dbd6c296649',1,'CumMin::simd_scan()']]], - ['simd_5fshuffle_76',['simd_shuffle',['../namespacemetal.html#a259ed115bc3c58f88eb35830916b26d4',1,'metal']]], - ['simd_5fshuffle_5fand_5ffill_5fdown_77',['simd_shuffle_and_fill_down',['../namespacemetal.html#ae29a06f0eac636ad7af21dea5b04938b',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a0ee6239fa29a5f9ee0201e0dc5ddc8e0',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta)']]], - ['simd_5fshuffle_5fand_5ffill_5fup_78',['simd_shuffle_and_fill_up',['../namespacemetal.html#a1ca14116bf50639b214d8414b5bbaaa6',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a5138d5cdc18139e135707916a243cd8e',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta)']]], - ['simd_5fshuffle_5fdown_79',['simd_shuffle_down',['../namespacemetal.html#af6e2dd7ae087aba6abac4f0350b7611c',1,'metal::simd_shuffle_down()'],['../backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c',1,'simd_shuffle_down(uint64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a0c1e4d782fcc56e1ab5565cef12430dd',1,'simd_shuffle_down(int64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a48ae83a8caf5c74810df60b6c6cdb062',1,'simd_shuffle_down(bool data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ad9a671a5f9aaa729ae7a77026f16bcb0',1,'simd_shuffle_down(complex64_t data, uint16_t delta): utils.h']]], - ['simd_5fshuffle_5frotate_5fdown_80',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], - ['simd_5fshuffle_5frotate_5fup_81',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], - ['simd_5fshuffle_5fup_82',['simd_shuffle_up',['../namespacemetal.html#afe81c5fbde3f4890458b081909242c55',1,'metal']]], - ['simd_5fshuffle_5fxor_83',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], - ['simd_5fsize_84',['SIMD_SIZE',['../quantized_8h.html#a62969a218d93680f5e35d0c61b160b99',1,'quantized.h']]], - ['simd_5fsize_85',['simd_size',['../backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3',1,'ops.h']]], - ['simd_5fstride_5fa_86',['simd_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab52d2644053c5bb28ab9b24fab8b194a',1,'mlx::steel::BlockMMA']]], - ['simd_5fstride_5fb_87',['simd_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#af5c60b04602f72b705192911ed8749da',1,'mlx::steel::BlockMMA']]], - ['simd_5fsum_88',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], - ['simd_5fxor_89',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], - ['simple_5fiter_90',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html',1,'pocketfft::detail::simple_iter'],['../classpocketfft_1_1detail_1_1simple__iter.html#a1e455c615825bebd5f1f62665027b398',1,'pocketfft::detail::simple_iter::simple_iter()']]], - ['simplevalueandgradfn_91',['SimpleValueAndGradFn',['../namespacemlx_1_1core.html#a2689b8f1181648cb1685204fea9f3066',1,'mlx::core']]], - ['sin_92',['Sin',['../structmlx_1_1core_1_1detail_1_1_sin.html',1,'mlx::core::detail::Sin'],['../classmlx_1_1core_1_1_sin.html',1,'mlx::core::Sin'],['../struct_sin.html',1,'Sin'],['../classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea',1,'mlx::core::Sin::Sin()']]], - ['sin_93',['sin',['../namespacepocketfft_1_1detail.html#a07745f4a069f811859308281b2982258',1,'pocketfft::detail::sin()'],['../namespacemetal.html#a619a159ca5f2ddfe3647d3a6bb6e804c',1,'metal::sin()'],['../namespacemetal_1_1fast.html#a3af771cfe7a135104f9d063147dba270',1,'metal::fast::sin()'],['../namespacemetal_1_1precise.html#a71acf77ffd29c56f56afae0195c98a1c',1,'metal::precise::sin()'],['../group__ops.html#gaebf0a73ad3732fba39df37826c235692',1,'mlx::core::sin()']]], - ['sincos_5f2pibyn_94',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html',1,'pocketfft::detail::sincos_2pibyn< T >'],['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a88518f2182d854c557edacd4ab8cbc40',1,'pocketfft::detail::sincos_2pibyn::sincos_2pibyn()']]], - ['sinh_95',['Sinh',['../structmlx_1_1core_1_1detail_1_1_sinh.html',1,'mlx::core::detail::Sinh'],['../classmlx_1_1core_1_1_sinh.html',1,'mlx::core::Sinh'],['../struct_sinh.html',1,'Sinh'],['../classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96',1,'mlx::core::Sinh::Sinh()']]], - ['sinh_96',['sinh',['../namespacemetal.html#a83ba4235ae350ab8880a9df09158620b',1,'metal::sinh()'],['../namespacemetal_1_1fast.html#a990d90b3440e38d1fb4ff5065c6c189b',1,'metal::fast::sinh()'],['../namespacemetal_1_1precise.html#abc8f4f59dd6e7204ab5d84f0af96331c',1,'metal::precise::sinh()'],['../group__ops.html#gaf532375c6563dbd6e329bdedf0224dd7',1,'mlx::core::sinh()']]], - ['sinpi_97',['sinpi',['../namespacemetal.html#ae9655f7fa2ba6c0625ca25fbb278e269',1,'metal::sinpi()'],['../namespacemetal_1_1fast.html#ab07a32fe544aa304577d29e0251e87b2',1,'metal::fast::sinpi()'],['../namespacemetal_1_1precise.html#a78b17dab93519d9c82c2575dafec49c9',1,'metal::precise::sinpi()']]], - ['size_98',['size',['../classpocketfft_1_1detail_1_1arr.html#a95bca00060957f540ff25b69632c6952',1,'pocketfft::detail::arr::size()'],['../classpocketfft_1_1detail_1_1arr__info.html#a003a7106f7fa59a3c55ac1f0116313a5',1,'pocketfft::detail::arr_info::size()'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6',1,'mlx::core::allocator::Allocator::size()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b',1,'mlx::core::allocator::CommonAllocator::size()'],['../classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6',1,'mlx::core::array::size()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a51f6587e8065be16f0418ca42a796e05',1,'mlx::core::metal::MetalAllocator::size()'],['../structmlx_1_1core_1_1distributed_1_1_group.html#abd96a09217e3d1bcc522888257d22cef',1,'mlx::core::distributed::Group::size()'],['../structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971',1,'mlx::core::Dtype::size()']]], - ['size_5fof_99',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], - ['slice_100',['Slice',['../classmlx_1_1core_1_1_slice.html',1,'mlx::core::Slice'],['../classmlx_1_1core_1_1_slice.html#a8a38feb7bb6b72bdeebb83f053e2fd7f',1,'mlx::core::Slice::Slice()']]], - ['slice_101',['slice',['../group__ops.html#gad66135407dbb41b3c5d2cdfd51226c21',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#gaa97ce866c5e38b92b093e9321affcc57',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], - ['slice_5fgpu_102',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], - ['slice_5fupdate_103',['slice_update',['../group__ops.html#ga3875660e4ce2c8add8bfcf8144078708',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#ga03ffbbb4d989a463ef43f41ebf7eabef',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], - ['sliceupdate_104',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html',1,'mlx::core::SliceUpdate'],['../classmlx_1_1core_1_1_slice_update.html#aa30a7f22f557c56e1a2b5fcf44488990',1,'mlx::core::SliceUpdate::SliceUpdate()']]], - ['slicing_2eh_105',['slicing.h',['../common_2slicing_8h.html',1,'(Global Namespace)'],['../metal_2slicing_8h.html',1,'(Global Namespace)']]], - ['sm_106',['sm',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3',1,'mlx::steel::BlockMMA']]], - ['sn_107',['sn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a',1,'mlx::steel::BlockMMA']]], - ['softmax_108',['Softmax',['../classmlx_1_1core_1_1_softmax.html',1,'mlx::core::Softmax'],['../classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb',1,'mlx::core::Softmax::Softmax()']]], - ['softmax_109',['softmax',['../namespacemlx_1_1core_1_1metal.html#a4fe937c2c584fd646926057f31d54ca6',1,'mlx::core::metal::softmax()'],['../group__ops.html#ga7e9bb08b43c8fd0444b7d3c9e09dc1c6',1,'mlx::core::softmax(const array &a, const std::vector< int > &axes, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga1ae3614d07d873892a530d14c3857d0b',1,'mlx::core::softmax(const array &a, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga06f570d73716a24303e6de3aaba4457b',1,'mlx::core::softmax(const array &a, int axis, bool precise=false, StreamOrDevice s={})']]], - ['softmax_2eh_110',['softmax.h',['../jit_2softmax_8h.html',1,'(Global Namespace)'],['../kernels_2softmax_8h.html',1,'(Global Namespace)']]], - ['softmax_5fexp_111',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], - ['softmax_5fkernels_112',['softmax_kernels',['../jit_2softmax_8h.html#a1cbfb210a9a765c6620e9f1247ccef12',1,'softmax.h']]], - ['softmax_5flooped_113',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], - ['softmax_5fn_5freads_114',['SOFTMAX_N_READS',['../defines_8h.html#a722995df24286b27b7da3d74b73f768d',1,'defines.h']]], - ['softmax_5fsingle_5frow_115',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], - ['sort_116',['Sort',['../classmlx_1_1core_1_1_sort.html',1,'mlx::core::Sort'],['../classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44',1,'mlx::core::Sort::Sort()']]], - ['sort_117',['sort',['../struct_thread_sort.html#ad9ab3e6b47f7e9b91c0f3b773596986d',1,'ThreadSort::sort()'],['../struct_block_merge_sort.html#acc970f5eb963f7f2010f5ae5ea8b8bc0',1,'BlockMergeSort::sort()'],['../namespacemlx_1_1core_1_1metal.html#ab77c9a9ecaeeab8c66b712862777c24b',1,'mlx::core::metal::sort()'],['../group__ops.html#ga7fb616054665b3c2d61fa234f501f079',1,'mlx::core::sort(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaae1bc47aa737f705d0e5884270063fea',1,'mlx::core::sort(const array &a, int axis, StreamOrDevice s={})']]], - ['sort_2eh_118',['sort.h',['../sort_8h.html',1,'']]], - ['special_5fmul_119',['special_mul',['../structpocketfft_1_1detail_1_1cmplx.html#a2e79f5c73c1d926361ad126cf57c8874',1,'pocketfft::detail::cmplx::special_mul()'],['../namespacepocketfft_1_1detail.html#a8da1f3d4a0b712a0285529f24187fe76',1,'pocketfft::detail::special_mul()']]], - ['split_120',['Split',['../classmlx_1_1core_1_1_split.html',1,'mlx::core::Split'],['../classmlx_1_1core_1_1_split.html#a897c746ecfdff5119cc5ae3f20499385',1,'mlx::core::Split::Split()']]], - ['split_121',['split',['../structmlx_1_1core_1_1distributed_1_1_group.html#abbf40f8979488806bc5bca9ecc4130e9',1,'mlx::core::distributed::Group::split()'],['../group__ops.html#ga7534290bceab5fb3831a05d67bebce7d',1,'mlx::core::split(const array &a, int num_splits, int axis, StreamOrDevice s={})'],['../group__ops.html#ga56882d24e5fde59c266774624c892d41',1,'mlx::core::split(const array &a, int num_splits, StreamOrDevice s={})'],['../group__ops.html#ga2cfcb1a53924882e30476c9016c5de74',1,'mlx::core::split(const array &a, const std::vector< int > &indices, int axis, StreamOrDevice s={})'],['../group__ops.html#gac324dfa3e26d3a14a35ab7962e36f0e1',1,'mlx::core::split(const array &a, const std::vector< int > &indices, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a42847b435d037a977592e355eed072af',1,'mlx::core::random::split(const array &key, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a7ec057064c7326c41b536f08178861e5',1,'mlx::core::random::split(const array &key, int num, StreamOrDevice s={})']]], - ['split_5fk_5fpartition_5fsize_122',['split_k_partition_size',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a9f5a67b2343645b570e109c3837d4042',1,'mlx::steel::GEMMSpiltKParams']]], - ['split_5fk_5fpartition_5fstride_123',['split_k_partition_stride',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a12144ce89d404812cd862611d770b9fb',1,'mlx::steel::GEMMSpiltKParams']]], - ['split_5fk_5fpartitions_124',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], - ['sqrt_125',['Sqrt',['../structmlx_1_1core_1_1detail_1_1_sqrt.html',1,'mlx::core::detail::Sqrt'],['../classmlx_1_1core_1_1_sqrt.html',1,'mlx::core::Sqrt'],['../struct_sqrt.html',1,'Sqrt'],['../classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29',1,'mlx::core::Sqrt::Sqrt()']]], - ['sqrt_126',['sqrt',['../namespacepocketfft_1_1detail.html#a774f8b73f28259d4276bd188b540a3e3',1,'pocketfft::detail::sqrt()'],['../namespacemetal.html#ab3f4d4852ca0e591104fbd8e5b50d31b',1,'metal::sqrt()'],['../namespacemetal_1_1fast.html#a4218a85c7d8a74cb8055b4755205627e',1,'metal::fast::sqrt()'],['../namespacemetal_1_1precise.html#acb213467361cd2cab93a8d5ea1aa5bfd',1,'metal::precise::sqrt()'],['../group__ops.html#ga297f853b3d90ec8ae81263977ba2ddb1',1,'mlx::core::sqrt()']]], - ['square_127',['Square',['../structmlx_1_1core_1_1detail_1_1_square.html',1,'mlx::core::detail::Square'],['../classmlx_1_1core_1_1_square.html',1,'mlx::core::Square'],['../struct_square.html',1,'Square'],['../classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4',1,'mlx::core::Square::Square()']]], - ['square_128',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], - ['squeeze_129',['squeeze',['../group__ops.html#ga710daa7ec721bd4d3f326082cb195576',1,'mlx::core::squeeze(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga700dd51b77379a3d2260a55783e8ebf3',1,'mlx::core::squeeze(const array &a, int axis, StreamOrDevice s={})'],['../group__ops.html#ga58bad3c61fd85b95927a987ba1cf5dad',1,'mlx::core::squeeze(const array &a, StreamOrDevice s={})']]], - ['src_130',['src',['../struct_quantized_block_loader.html#ad85c6b7e07c81307b3b91eb4dd7be30b',1,'QuantizedBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a656a46ee27486482b45ff90b3d626255',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a57552e9cfbafad71d47b2f3a8e027bdf',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7bfbcc4a1e3eef7aef5dd8e8c374a95f',1,'mlx::steel::Conv2DWeightBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#afe21e46e08523232830c25eb1b4ade16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b04a69952404a04029dacc424df6e8f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1ee2922961b5fcb1db577928c4d9d731',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a50f458dbb74d61be2ed24727d8d43614',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_block_loader.html#a13004952d0bf2030b95acb621a3779dd',1,'mlx::steel::BlockLoader::src']]], - ['src_5fld_131',['src_ld',['../struct_quantized_block_loader.html#a8050977d473d1a24fae5c833e609839e',1,'QuantizedBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7464ec687323fa79050702952ed9084f',1,'mlx::steel::Conv2DWeightBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#aa6bedc0cbb447eaf70c03f2e26df2cb2',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6918c1df7712c4e408e2871467ea7987',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src_ld'],['../structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d',1,'mlx::steel::BlockLoader::src_ld']]], - ['stack_132',['stack',['../group__ops.html#gaf8f2ec2b98a4b59eca73d7471df6e032',1,'mlx::core::stack(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#ga82216209dce901296fc737fe8efa5c94',1,'mlx::core::stack(const std::vector< array > &arrays, StreamOrDevice s={})']]], - ['start_5fcapture_133',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], - ['start_5fconcurrent_134',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], - ['start_5frow_135',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], - ['status_136',['Status',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078',1,'mlx::core::array']]], - ['status_137',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], - ['std_138',['std',['../group__ops.html#ga2a466024f8061febc0a64be557644cb0',1,'mlx::core::std(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#gafdcb04d77c64405a3990078a77dd984c',1,'mlx::core::std(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7f649970bf38b987b6ef847054f3c2f8',1,'mlx::core::std(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga62721a206df671ef5797449eea97af9f',1,'mlx::core::std(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], - ['steel_5fconst_139',['STEEL_CONST',['../steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b',1,'defines.h']]], - ['steel_5fconv_140',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], - ['steel_5fconv_2eh_141',['steel_conv.h',['../jit_2steel__conv_8h.html',1,'(Global Namespace)'],['../kernels_2steel_2conv_2kernels_2steel__conv_8h.html',1,'(Global Namespace)']]], - ['steel_5fconv_5fgeneral_142',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], - ['steel_5fconv_5fgeneral_2eh_143',['steel_conv_general.h',['../steel__conv__general_8h.html',1,'']]], - ['steel_5fconv_5fgeneral_5fkernels_144',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], - ['steel_5fconv_5fkernels_145',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], - ['steel_5fgemm_2eh_146',['steel_gemm.h',['../steel__gemm_8h.html',1,'']]], - ['steel_5fgemm_5ffused_147',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], - ['steel_5fgemm_5ffused_2eh_148',['steel_gemm_fused.h',['../steel__gemm__fused_8h.html',1,'']]], - ['steel_5fgemm_5ffused_5fkernels_149',['steel_gemm_fused_kernels',['../steel__gemm_8h.html#a4c6009fd5357b730805f2fd4ba6e093e',1,'steel_gemm.h']]], - ['steel_5fgemm_5fmasked_150',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], - ['steel_5fgemm_5fmasked_2eh_151',['steel_gemm_masked.h',['../steel__gemm__masked_8h.html',1,'']]], - ['steel_5fgemm_5fmasked_5fkernels_152',['steel_gemm_masked_kernels',['../steel__gemm_8h.html#a62a358fd3ec5365081920d07aceb581c',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_153',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], - ['steel_5fgemm_5fsplitk_2eh_154',['steel_gemm_splitk.h',['../steel__gemm__splitk_8h.html',1,'']]], - ['steel_5fgemm_5fsplitk_5faccum_5faxbpy_5fkernels_155',['steel_gemm_splitk_accum_axbpy_kernels',['../steel__gemm_8h.html#a40a86e1381c241aba8511e51a981a4bf',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5faccum_5fkernels_156',['steel_gemm_splitk_accum_kernels',['../steel__gemm_8h.html#a144a64b8d94f0371fb144e2cc308fcf9',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5fkernels_157',['steel_gemm_splitk_kernels',['../steel__gemm_8h.html#a92108ab01d826e38bca83d8569b947d9',1,'steel_gemm.h']]], - ['steel_5fmatmul_158',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], - ['steel_5fmatmul_5fregular_159',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], - ['steel_5fpragma_5funroll_160',['STEEL_PRAGMA_UNROLL',['../steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6',1,'defines.h']]], - ['step_161',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], - ['stop_162',['stop',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a456ad1c0c9e731833a2f8411c4ed51aa',1,'mlx::core::scheduler::StreamThread']]], - ['stop_5fcapture_163',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], - ['stop_5fgradient_164',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], - ['stopgradient_165',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html',1,'mlx::core::StopGradient'],['../classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f',1,'mlx::core::StopGradient::StopGradient()']]], - ['store_5fresult_166',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a85c57ad4092079f068683cb525fb08ee',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7cf757e9785e23997b1417e024559ed3',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, thread const Epilogue &epilogue_op) const']]], - ['store_5fresult_5fsafe_167',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#af94bafeb285c240051e86418fccb89fe',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7b324c992750ed3aaa4c485f15b2f391',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const Epilogue &epilogue_op) const']]], - ['str_168',['str',['../classpocketfft_1_1detail_1_1arr__info.html#abe1f7b92501b4e0e5a38fd26294ac5a4',1,'pocketfft::detail::arr_info::str'],['../struct_m_l_x_conv_params.html#a862191e8ab1bc8a47aa1396b36d46058',1,'MLXConvParams::str']]], - ['stream_169',['Stream',['../structmlx_1_1core_1_1_stream.html',1,'mlx::core::Stream'],['../structmlx_1_1core_1_1_stream.html#a7f0815ff4886da74cbbff5f93d82dd3e',1,'mlx::core::Stream::Stream()']]], - ['stream_170',['stream',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a8462e4acffcd385c6248bd7102e6bcb1',1,'mlx::core::scheduler::StreamThread::stream'],['../classmlx_1_1core_1_1_event.html#a193143bad31b68c699fa27f135b45614',1,'mlx::core::Event::stream()'],['../classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a',1,'mlx::core::Primitive::stream()']]], - ['stream_2eh_171',['stream.h',['../stream_8h.html',1,'']]], - ['streamcontext_172',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html',1,'mlx::core::StreamContext'],['../structmlx_1_1core_1_1_stream_context.html#a89d803151e9d7dce29382aa83d5c6ef1',1,'mlx::core::StreamContext::StreamContext()']]], - ['streamordevice_173',['StreamOrDevice',['../namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58',1,'mlx::core']]], - ['streamthread_174',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html',1,'mlx::core::scheduler::StreamThread'],['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#ac528109a11abcb82e6e221c5efa4493c',1,'mlx::core::scheduler::StreamThread::StreamThread()']]], - ['stride_175',['stride',['../classpocketfft_1_1detail_1_1arr__info.html#a9d10aa83a1117e75d36f7396b8c2a093',1,'pocketfft::detail::arr_info::stride() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac1f6a9bd6703eceef6003f5f6315d39b',1,'pocketfft::detail::arr_info::stride(size_t i) const']]], - ['stride_5fin_176',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], - ['stride_5fout_177',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], - ['stride_5ft_178',['stride_t',['../namespacepocketfft_1_1detail.html#afb987c919e9424a996d0fc8b3c23cc84',1,'pocketfft::detail']]], - ['strided_5fdevice_5fidx_179',['strided_device_idx',['../struct_read_writer.html#a4c0b12484aac4fd6759d67c190391989',1,'ReadWriter']]], - ['strided_5freduce_5fgeneral_5fdispatch_180',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], - ['strided_5fscan_181',['strided_scan',['../kernels_2scan_8h.html#aef54ac73154fb9024eda760a9dfde607',1,'scan.h']]], - ['strided_5fshared_5fidx_182',['strided_shared_idx',['../struct_read_writer.html#ace40adb02cfb33d89c98353327c251fc',1,'ReadWriter']]], - ['strides_183',['strides',['../structmlx_1_1core_1_1_reduction_plan.html#a9bf7cae845ab633247c1811613ece8bd',1,'mlx::core::ReductionPlan::strides'],['../struct_indices.html#a7f73d7652f0f751e6a06c2663e329a4a',1,'Indices::strides'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2',1,'mlx::core::fast::CustomKernelShapeInfo::strides'],['../classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b',1,'mlx::core::array::strides() const'],['../classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2',1,'mlx::core::array::strides(int dim) const']]], - ['submit_184',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], - ['subtract_185',['Subtract',['../structmlx_1_1core_1_1detail_1_1_subtract.html',1,'mlx::core::detail::Subtract'],['../classmlx_1_1core_1_1_subtract.html',1,'mlx::core::Subtract'],['../struct_subtract.html',1,'Subtract'],['../classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c',1,'mlx::core::Subtract::Subtract()']]], - ['subtract_186',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], - ['sum_187',['Sum',['../struct_sum.html',1,'Sum< U >'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924a1fc7c1f09c80650ab0497e2d6781d65f',1,'mlx::core::distributed::AllReduce::Sum'],['../classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a8582875544f1d3d396a1a376473ef1dd',1,'mlx::core::Reduce::Sum'],['../classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ade23893033e4849f5596e7ce76a5fc36',1,'mlx::core::Scan::Sum'],['../classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca14abe2d8818efa71726be4e156813d6f',1,'mlx::core::Scatter::Sum']]], - ['sum_188',['sum',['../group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6',1,'mlx::core::sum(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3627754d7868487bdab1bd83f05d9c81',1,'mlx::core::sum(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaccd0a6be2c5b5128fdc2d87b5c8e67f4',1,'mlx::core::sum(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafcd39b0bf39a56c26a967981c7ab8a8d',1,'mlx::core::sum(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['svd_189',['SVD',['../classmlx_1_1core_1_1_s_v_d.html',1,'mlx::core::SVD'],['../classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1',1,'mlx::core::SVD::SVD()']]], - ['svd_190',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], - ['swapaxes_191',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], - ['swizzle_192',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle']]], - ['swizzle_5flog_193',['swizzle_log',['../struct_m_l_x_fast_attention_params.html#a68a338d522ffeb6761b7b168869361e2',1,'MLXFastAttentionParams::swizzle_log'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ad0713159d4f710cd9a066596593d8840',1,'mlx::steel::ImplicitGemmConv2DParams::swizzle_log'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#af9ff2c06dd8994126634531440325be7',1,'mlx::steel::GEMMParams::swizzle_log']]], - ['synchronize_194',['synchronize',['../namespacemlx_1_1core.html#a14287949d82ffefad0306cef5eb5f9e4',1,'mlx::core::synchronize()'],['../namespacemlx_1_1core.html#a6648a71937b055e5ff513d98056c2fb5',1,'mlx::core::synchronize(Stream)']]] + ['set_5fwired_5flimit_51',['set_wired_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a84fa0347da18055bc13ba0a5c4b57253',1,'mlx::core::metal::MetalAllocator::set_wired_limit()'],['../namespacemlx_1_1core_1_1metal.html#a31eab4828d31d292bc84e07b0d961e1e',1,'mlx::core::metal::set_wired_limit()']]], + ['shape_52',['shape',['../structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae',1,'mlx::core::ReductionPlan::shape'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a',1,'mlx::core::fast::CustomKernelShapeInfo::shape'],['../classpocketfft_1_1detail_1_1arr__info.html#accada8146cb8d3ab7facb4c1e3413ec0',1,'pocketfft::detail::arr_info::shape() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac601c660c64a4c252aa8be4ae7dfa7a8',1,'pocketfft::detail::arr_info::shape(size_t i) const'],['../classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d',1,'mlx::core::array::shape() const'],['../classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f',1,'mlx::core::array::shape(int dim) const']]], + ['shape_5ft_53',['shape_t',['../namespacepocketfft_1_1detail.html#a885ee37fcf564a268a5c8ca9ea8603e1',1,'pocketfft::detail']]], + ['shapes_54',['shapes',['../struct_indices.html#a5ab170f1a77636180889ddfffd4f7d2f',1,'Indices']]], + ['shapes_5fwithout_5freduction_5faxes_55',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], + ['shared_5fbuffer_5fslice_56',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], + ['shp_57',['shp',['../classpocketfft_1_1detail_1_1arr__info.html#a2467e9e01de1ba4d7cd28c1af783da8d',1,'pocketfft::detail::arr_info']]], + ['shutdown_58',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], + ['siblings_59',['siblings',['../classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d',1,'mlx::core::array::siblings() const'],['../classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c',1,'mlx::core::array::siblings()']]], + ['sigmoid_60',['Sigmoid',['../structmlx_1_1core_1_1detail_1_1_sigmoid.html',1,'mlx::core::detail::Sigmoid'],['../classmlx_1_1core_1_1_sigmoid.html',1,'mlx::core::Sigmoid'],['../struct_sigmoid.html',1,'Sigmoid'],['../classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b',1,'mlx::core::Sigmoid::Sigmoid()']]], + ['sigmoid_61',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], + ['sign_62',['Sign',['../structmlx_1_1core_1_1detail_1_1_sign.html',1,'mlx::core::detail::Sign'],['../classmlx_1_1core_1_1_sign.html',1,'mlx::core::Sign'],['../struct_sign.html',1,'Sign'],['../classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763',1,'mlx::core::Sign::Sign()']]], + ['sign_63',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], + ['signal_64',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], + ['signaling_5fnan_65',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['signedinteger_66',['signedinteger',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2daed58b4631ff157bec9e35ed1182d2c10',1,'mlx::core::Dtype::signedinteger'],['../namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001',1,'mlx::core::signedinteger']]], + ['simd_5fbroadcast_67',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], + ['simd_5fexclusive_5fscan_68',['simd_exclusive_scan',['../struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223',1,'CumProd< bool >::simd_exclusive_scan()'],['../struct_cum_max.html#ae11b67aa6c998e9a01615b2a79af4403',1,'CumMax::simd_exclusive_scan()'],['../struct_cum_min.html#a83e65017ff33018b585c043fb803773b',1,'CumMin::simd_exclusive_scan()']]], + ['simd_5fmax_69',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], + ['simd_5fmin_70',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fproduct_71',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fsum_72',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], + ['simd_5fprefix_5finclusive_5fproduct_73',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], + ['simd_5fprefix_5finclusive_5fsum_74',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], + ['simd_5fproduct_75',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], + ['simd_5fscan_76',['simd_scan',['../struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a',1,'CumProd< bool >::simd_scan()'],['../struct_cum_max.html#adc9ec8bb09b4433d4c2f03022c43d781',1,'CumMax::simd_scan()'],['../struct_cum_min.html#a0a1005d91b1c90e90e2c6dbd6c296649',1,'CumMin::simd_scan()']]], + ['simd_5fshuffle_77',['simd_shuffle',['../namespacemetal.html#a259ed115bc3c58f88eb35830916b26d4',1,'metal::simd_shuffle()'],['../backend_2metal_2kernels_2utils_8h.html#a71986ecdd7d18f975dd22c3df7421ce2',1,'simd_shuffle(uint64_t data, uint16_t lane): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a3bdbdfeb7a1dde40cd3ce1df8d9213b5',1,'simd_shuffle(int64_t data, uint16_t lane): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ab4cbcdb054f9165130da91a3334da0cf',1,'simd_shuffle(bool data, uint16_t lane): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ab8175b66bcc080fb89f738143568c30b',1,'simd_shuffle(complex64_t data, uint16_t lane): utils.h']]], + ['simd_5fshuffle_5fand_5ffill_5fdown_78',['simd_shuffle_and_fill_down',['../namespacemetal.html#ae29a06f0eac636ad7af21dea5b04938b',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a0ee6239fa29a5f9ee0201e0dc5ddc8e0',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta)']]], + ['simd_5fshuffle_5fand_5ffill_5fup_79',['simd_shuffle_and_fill_up',['../namespacemetal.html#a1ca14116bf50639b214d8414b5bbaaa6',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a5138d5cdc18139e135707916a243cd8e',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta)'],['../backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4',1,'simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a7bb56415c5412a6a26f70a990915f064',1,'simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ad55bd473647f2c6c68e65e5312c132d1',1,'simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a94e02a6ae8c39cbf4cb23aa44df9dbd5',1,'simd_shuffle_and_fill_up(complex64_t data, complex64_t filling, uint16_t delta): utils.h']]], + ['simd_5fshuffle_5fdown_80',['simd_shuffle_down',['../namespacemetal.html#af6e2dd7ae087aba6abac4f0350b7611c',1,'metal::simd_shuffle_down()'],['../backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c',1,'simd_shuffle_down(uint64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a0c1e4d782fcc56e1ab5565cef12430dd',1,'simd_shuffle_down(int64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a48ae83a8caf5c74810df60b6c6cdb062',1,'simd_shuffle_down(bool data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ad9a671a5f9aaa729ae7a77026f16bcb0',1,'simd_shuffle_down(complex64_t data, uint16_t delta): utils.h']]], + ['simd_5fshuffle_5frotate_5fdown_81',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], + ['simd_5fshuffle_5frotate_5fup_82',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], + ['simd_5fshuffle_5fup_83',['simd_shuffle_up',['../namespacemetal.html#afe81c5fbde3f4890458b081909242c55',1,'metal::simd_shuffle_up()'],['../backend_2metal_2kernels_2utils_8h.html#a39e436e0a942912266aae7e0bd82d7c0',1,'simd_shuffle_up(uint64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a617f3857caf33c569afa6148135f8b7a',1,'simd_shuffle_up(int64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ae0f5c42020275a588234e69f1eb7a485',1,'simd_shuffle_up(bool data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a92b455bac6a23af51c35ea83de2383eb',1,'simd_shuffle_up(complex64_t data, uint16_t delta): utils.h']]], + ['simd_5fshuffle_5fxor_84',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], + ['simd_5fsize_85',['SIMD_SIZE',['../quantized_8h.html#a62969a218d93680f5e35d0c61b160b99',1,'quantized.h']]], + ['simd_5fsize_86',['simd_size',['../backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3',1,'ops.h']]], + ['simd_5fstride_5fa_87',['simd_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab52d2644053c5bb28ab9b24fab8b194a',1,'mlx::steel::BlockMMA']]], + ['simd_5fstride_5fb_88',['simd_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#af5c60b04602f72b705192911ed8749da',1,'mlx::steel::BlockMMA']]], + ['simd_5fsum_89',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], + ['simd_5fxor_90',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], + ['simple_5fiter_91',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html',1,'pocketfft::detail::simple_iter'],['../classpocketfft_1_1detail_1_1simple__iter.html#a1e455c615825bebd5f1f62665027b398',1,'pocketfft::detail::simple_iter::simple_iter()']]], + ['simplevalueandgradfn_92',['SimpleValueAndGradFn',['../namespacemlx_1_1core.html#a2689b8f1181648cb1685204fea9f3066',1,'mlx::core']]], + ['sin_93',['Sin',['../structmlx_1_1core_1_1detail_1_1_sin.html',1,'mlx::core::detail::Sin'],['../classmlx_1_1core_1_1_sin.html',1,'mlx::core::Sin'],['../struct_sin.html',1,'Sin'],['../classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea',1,'mlx::core::Sin::Sin()']]], + ['sin_94',['sin',['../namespacepocketfft_1_1detail.html#a07745f4a069f811859308281b2982258',1,'pocketfft::detail::sin()'],['../namespacemetal.html#a619a159ca5f2ddfe3647d3a6bb6e804c',1,'metal::sin()'],['../namespacemetal_1_1fast.html#a3af771cfe7a135104f9d063147dba270',1,'metal::fast::sin()'],['../namespacemetal_1_1precise.html#a71acf77ffd29c56f56afae0195c98a1c',1,'metal::precise::sin()'],['../group__ops.html#gaebf0a73ad3732fba39df37826c235692',1,'mlx::core::sin()']]], + ['sincos_5f2pibyn_95',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html',1,'pocketfft::detail::sincos_2pibyn< T >'],['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a88518f2182d854c557edacd4ab8cbc40',1,'pocketfft::detail::sincos_2pibyn::sincos_2pibyn()']]], + ['sinh_96',['Sinh',['../structmlx_1_1core_1_1detail_1_1_sinh.html',1,'mlx::core::detail::Sinh'],['../classmlx_1_1core_1_1_sinh.html',1,'mlx::core::Sinh'],['../struct_sinh.html',1,'Sinh'],['../classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96',1,'mlx::core::Sinh::Sinh()']]], + ['sinh_97',['sinh',['../namespacemetal.html#a83ba4235ae350ab8880a9df09158620b',1,'metal::sinh()'],['../namespacemetal_1_1fast.html#a990d90b3440e38d1fb4ff5065c6c189b',1,'metal::fast::sinh()'],['../namespacemetal_1_1precise.html#abc8f4f59dd6e7204ab5d84f0af96331c',1,'metal::precise::sinh()'],['../group__ops.html#gaf532375c6563dbd6e329bdedf0224dd7',1,'mlx::core::sinh()']]], + ['sinpi_98',['sinpi',['../namespacemetal.html#ae9655f7fa2ba6c0625ca25fbb278e269',1,'metal::sinpi()'],['../namespacemetal_1_1fast.html#ab07a32fe544aa304577d29e0251e87b2',1,'metal::fast::sinpi()'],['../namespacemetal_1_1precise.html#a78b17dab93519d9c82c2575dafec49c9',1,'metal::precise::sinpi()']]], + ['size_99',['size',['../classpocketfft_1_1detail_1_1arr.html#a95bca00060957f540ff25b69632c6952',1,'pocketfft::detail::arr::size()'],['../classpocketfft_1_1detail_1_1arr__info.html#a003a7106f7fa59a3c55ac1f0116313a5',1,'pocketfft::detail::arr_info::size()'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6',1,'mlx::core::allocator::Allocator::size()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b',1,'mlx::core::allocator::CommonAllocator::size()'],['../classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6',1,'mlx::core::array::size()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a51f6587e8065be16f0418ca42a796e05',1,'mlx::core::metal::MetalAllocator::size()'],['../structmlx_1_1core_1_1distributed_1_1_group.html#abd96a09217e3d1bcc522888257d22cef',1,'mlx::core::distributed::Group::size()'],['../structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971',1,'mlx::core::Dtype::size()']]], + ['size_5fof_100',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], + ['slice_101',['Slice',['../classmlx_1_1core_1_1_slice.html',1,'mlx::core::Slice'],['../classmlx_1_1core_1_1_slice.html#a8a38feb7bb6b72bdeebb83f053e2fd7f',1,'mlx::core::Slice::Slice()']]], + ['slice_102',['slice',['../group__ops.html#gad66135407dbb41b3c5d2cdfd51226c21',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#gaa97ce866c5e38b92b093e9321affcc57',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], + ['slice_5fgpu_103',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], + ['slice_5fupdate_104',['slice_update',['../group__ops.html#ga3875660e4ce2c8add8bfcf8144078708',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#ga03ffbbb4d989a463ef43f41ebf7eabef',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], + ['sliceupdate_105',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html',1,'mlx::core::SliceUpdate'],['../classmlx_1_1core_1_1_slice_update.html#aa30a7f22f557c56e1a2b5fcf44488990',1,'mlx::core::SliceUpdate::SliceUpdate()']]], + ['slicing_2eh_106',['slicing.h',['../common_2slicing_8h.html',1,'(Global Namespace)'],['../metal_2slicing_8h.html',1,'(Global Namespace)']]], + ['sm_107',['sm',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3',1,'mlx::steel::BlockMMA']]], + ['sn_108',['sn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a',1,'mlx::steel::BlockMMA']]], + ['softmax_109',['Softmax',['../classmlx_1_1core_1_1_softmax.html',1,'mlx::core::Softmax'],['../classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb',1,'mlx::core::Softmax::Softmax()']]], + ['softmax_110',['softmax',['../namespacemlx_1_1core_1_1metal.html#a4fe937c2c584fd646926057f31d54ca6',1,'mlx::core::metal::softmax()'],['../group__ops.html#ga7e9bb08b43c8fd0444b7d3c9e09dc1c6',1,'mlx::core::softmax(const array &a, const std::vector< int > &axes, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga1ae3614d07d873892a530d14c3857d0b',1,'mlx::core::softmax(const array &a, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga06f570d73716a24303e6de3aaba4457b',1,'mlx::core::softmax(const array &a, int axis, bool precise=false, StreamOrDevice s={})']]], + ['softmax_2eh_111',['softmax.h',['../jit_2softmax_8h.html',1,'(Global Namespace)'],['../kernels_2softmax_8h.html',1,'(Global Namespace)']]], + ['softmax_5fexp_112',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], + ['softmax_5fkernels_113',['softmax_kernels',['../jit_2softmax_8h.html#a1cbfb210a9a765c6620e9f1247ccef12',1,'softmax.h']]], + ['softmax_5flooped_114',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], + ['softmax_5fn_5freads_115',['SOFTMAX_N_READS',['../defines_8h.html#a722995df24286b27b7da3d74b73f768d',1,'defines.h']]], + ['softmax_5fsingle_5frow_116',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], + ['sort_117',['Sort',['../classmlx_1_1core_1_1_sort.html',1,'mlx::core::Sort'],['../classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44',1,'mlx::core::Sort::Sort()']]], + ['sort_118',['sort',['../struct_thread_sort.html#ad9ab3e6b47f7e9b91c0f3b773596986d',1,'ThreadSort::sort()'],['../struct_block_merge_sort.html#acc970f5eb963f7f2010f5ae5ea8b8bc0',1,'BlockMergeSort::sort()'],['../namespacemlx_1_1core_1_1metal.html#ab77c9a9ecaeeab8c66b712862777c24b',1,'mlx::core::metal::sort()'],['../group__ops.html#ga7fb616054665b3c2d61fa234f501f079',1,'mlx::core::sort(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaae1bc47aa737f705d0e5884270063fea',1,'mlx::core::sort(const array &a, int axis, StreamOrDevice s={})']]], + ['sort_2eh_119',['sort.h',['../sort_8h.html',1,'']]], + ['special_5fmul_120',['special_mul',['../structpocketfft_1_1detail_1_1cmplx.html#a2e79f5c73c1d926361ad126cf57c8874',1,'pocketfft::detail::cmplx::special_mul()'],['../namespacepocketfft_1_1detail.html#a8da1f3d4a0b712a0285529f24187fe76',1,'pocketfft::detail::special_mul()']]], + ['split_121',['Split',['../classmlx_1_1core_1_1_split.html',1,'mlx::core::Split'],['../classmlx_1_1core_1_1_split.html#a897c746ecfdff5119cc5ae3f20499385',1,'mlx::core::Split::Split()']]], + ['split_122',['split',['../structmlx_1_1core_1_1distributed_1_1_group.html#abbf40f8979488806bc5bca9ecc4130e9',1,'mlx::core::distributed::Group::split()'],['../group__ops.html#ga7534290bceab5fb3831a05d67bebce7d',1,'mlx::core::split(const array &a, int num_splits, int axis, StreamOrDevice s={})'],['../group__ops.html#ga56882d24e5fde59c266774624c892d41',1,'mlx::core::split(const array &a, int num_splits, StreamOrDevice s={})'],['../group__ops.html#ga2cfcb1a53924882e30476c9016c5de74',1,'mlx::core::split(const array &a, const std::vector< int > &indices, int axis, StreamOrDevice s={})'],['../group__ops.html#gac324dfa3e26d3a14a35ab7962e36f0e1',1,'mlx::core::split(const array &a, const std::vector< int > &indices, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a42847b435d037a977592e355eed072af',1,'mlx::core::random::split(const array &key, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a7ec057064c7326c41b536f08178861e5',1,'mlx::core::random::split(const array &key, int num, StreamOrDevice s={})']]], + ['split_5fk_5fpartition_5fsize_123',['split_k_partition_size',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a9f5a67b2343645b570e109c3837d4042',1,'mlx::steel::GEMMSpiltKParams']]], + ['split_5fk_5fpartition_5fstride_124',['split_k_partition_stride',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a12144ce89d404812cd862611d770b9fb',1,'mlx::steel::GEMMSpiltKParams']]], + ['split_5fk_5fpartitions_125',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], + ['sqrt_126',['Sqrt',['../structmlx_1_1core_1_1detail_1_1_sqrt.html',1,'mlx::core::detail::Sqrt'],['../classmlx_1_1core_1_1_sqrt.html',1,'mlx::core::Sqrt'],['../struct_sqrt.html',1,'Sqrt'],['../classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29',1,'mlx::core::Sqrt::Sqrt()']]], + ['sqrt_127',['sqrt',['../namespacepocketfft_1_1detail.html#a774f8b73f28259d4276bd188b540a3e3',1,'pocketfft::detail::sqrt()'],['../namespacemetal.html#ab3f4d4852ca0e591104fbd8e5b50d31b',1,'metal::sqrt()'],['../namespacemetal_1_1fast.html#a4218a85c7d8a74cb8055b4755205627e',1,'metal::fast::sqrt()'],['../namespacemetal_1_1precise.html#acb213467361cd2cab93a8d5ea1aa5bfd',1,'metal::precise::sqrt()'],['../group__ops.html#ga297f853b3d90ec8ae81263977ba2ddb1',1,'mlx::core::sqrt()']]], + ['square_128',['Square',['../structmlx_1_1core_1_1detail_1_1_square.html',1,'mlx::core::detail::Square'],['../classmlx_1_1core_1_1_square.html',1,'mlx::core::Square'],['../struct_square.html',1,'Square'],['../classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4',1,'mlx::core::Square::Square()']]], + ['square_129',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], + ['squeeze_130',['squeeze',['../group__ops.html#ga710daa7ec721bd4d3f326082cb195576',1,'mlx::core::squeeze(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga700dd51b77379a3d2260a55783e8ebf3',1,'mlx::core::squeeze(const array &a, int axis, StreamOrDevice s={})'],['../group__ops.html#ga58bad3c61fd85b95927a987ba1cf5dad',1,'mlx::core::squeeze(const array &a, StreamOrDevice s={})']]], + ['src_131',['src',['../struct_quantized_block_loader.html#ad85c6b7e07c81307b3b91eb4dd7be30b',1,'QuantizedBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a656a46ee27486482b45ff90b3d626255',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a57552e9cfbafad71d47b2f3a8e027bdf',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7bfbcc4a1e3eef7aef5dd8e8c374a95f',1,'mlx::steel::Conv2DWeightBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#afe21e46e08523232830c25eb1b4ade16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b04a69952404a04029dacc424df6e8f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1ee2922961b5fcb1db577928c4d9d731',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a50f458dbb74d61be2ed24727d8d43614',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_block_loader.html#a13004952d0bf2030b95acb621a3779dd',1,'mlx::steel::BlockLoader::src']]], + ['src_5fld_132',['src_ld',['../struct_quantized_block_loader.html#a8050977d473d1a24fae5c833e609839e',1,'QuantizedBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7464ec687323fa79050702952ed9084f',1,'mlx::steel::Conv2DWeightBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#aa6bedc0cbb447eaf70c03f2e26df2cb2',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6918c1df7712c4e408e2871467ea7987',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src_ld'],['../structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d',1,'mlx::steel::BlockLoader::src_ld']]], + ['stack_133',['stack',['../group__ops.html#gaf8f2ec2b98a4b59eca73d7471df6e032',1,'mlx::core::stack(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#ga82216209dce901296fc737fe8efa5c94',1,'mlx::core::stack(const std::vector< array > &arrays, StreamOrDevice s={})']]], + ['start_5fcapture_134',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], + ['start_5fconcurrent_135',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], + ['start_5frow_136',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], + ['status_137',['Status',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078',1,'mlx::core::array']]], + ['status_138',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], + ['std_139',['std',['../group__ops.html#ga2a466024f8061febc0a64be557644cb0',1,'mlx::core::std(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#gafdcb04d77c64405a3990078a77dd984c',1,'mlx::core::std(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7f649970bf38b987b6ef847054f3c2f8',1,'mlx::core::std(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga62721a206df671ef5797449eea97af9f',1,'mlx::core::std(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], + ['steel_5fconst_140',['STEEL_CONST',['../steel_2defines_8h.html#a90b91c866313ffa46eff6d9cc944ad2b',1,'defines.h']]], + ['steel_5fconv_141',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], + ['steel_5fconv_2eh_142',['steel_conv.h',['../jit_2steel__conv_8h.html',1,'(Global Namespace)'],['../kernels_2steel_2conv_2kernels_2steel__conv_8h.html',1,'(Global Namespace)']]], + ['steel_5fconv_5fgeneral_143',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], + ['steel_5fconv_5fgeneral_2eh_144',['steel_conv_general.h',['../steel__conv__general_8h.html',1,'']]], + ['steel_5fconv_5fgeneral_5fkernels_145',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], + ['steel_5fconv_5fkernels_146',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], + ['steel_5fgemm_2eh_147',['steel_gemm.h',['../steel__gemm_8h.html',1,'']]], + ['steel_5fgemm_5ffused_148',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], + ['steel_5fgemm_5ffused_2eh_149',['steel_gemm_fused.h',['../steel__gemm__fused_8h.html',1,'']]], + ['steel_5fgemm_5ffused_5fkernels_150',['steel_gemm_fused_kernels',['../steel__gemm_8h.html#a4c6009fd5357b730805f2fd4ba6e093e',1,'steel_gemm.h']]], + ['steel_5fgemm_5fmasked_151',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], + ['steel_5fgemm_5fmasked_2eh_152',['steel_gemm_masked.h',['../steel__gemm__masked_8h.html',1,'']]], + ['steel_5fgemm_5fmasked_5fkernels_153',['steel_gemm_masked_kernels',['../steel__gemm_8h.html#a62a358fd3ec5365081920d07aceb581c',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_154',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], + ['steel_5fgemm_5fsplitk_2eh_155',['steel_gemm_splitk.h',['../steel__gemm__splitk_8h.html',1,'']]], + ['steel_5fgemm_5fsplitk_5faccum_5faxbpy_5fkernels_156',['steel_gemm_splitk_accum_axbpy_kernels',['../steel__gemm_8h.html#a40a86e1381c241aba8511e51a981a4bf',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5faccum_5fkernels_157',['steel_gemm_splitk_accum_kernels',['../steel__gemm_8h.html#a144a64b8d94f0371fb144e2cc308fcf9',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5fkernels_158',['steel_gemm_splitk_kernels',['../steel__gemm_8h.html#a92108ab01d826e38bca83d8569b947d9',1,'steel_gemm.h']]], + ['steel_5fmatmul_159',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], + ['steel_5fmatmul_5fregular_160',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], + ['steel_5fpragma_5funroll_161',['STEEL_PRAGMA_UNROLL',['../steel_2defines_8h.html#a5a5c3095b132a7589bc19cd5cb80e2c6',1,'defines.h']]], + ['step_162',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], + ['stop_163',['stop',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a456ad1c0c9e731833a2f8411c4ed51aa',1,'mlx::core::scheduler::StreamThread']]], + ['stop_5fcapture_164',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], + ['stop_5fgradient_165',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], + ['stopgradient_166',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html',1,'mlx::core::StopGradient'],['../classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f',1,'mlx::core::StopGradient::StopGradient()']]], + ['store_5fresult_167',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a85c57ad4092079f068683cb525fb08ee',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7cf757e9785e23997b1417e024559ed3',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, thread const Epilogue &epilogue_op) const']]], + ['store_5fresult_5fsafe_168',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#af94bafeb285c240051e86418fccb89fe',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7b324c992750ed3aaa4c485f15b2f391',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const Epilogue &epilogue_op) const']]], + ['str_169',['str',['../classpocketfft_1_1detail_1_1arr__info.html#abe1f7b92501b4e0e5a38fd26294ac5a4',1,'pocketfft::detail::arr_info::str'],['../struct_m_l_x_conv_params.html#a862191e8ab1bc8a47aa1396b36d46058',1,'MLXConvParams::str']]], + ['stream_170',['Stream',['../structmlx_1_1core_1_1_stream.html',1,'mlx::core::Stream'],['../structmlx_1_1core_1_1_stream.html#a7f0815ff4886da74cbbff5f93d82dd3e',1,'mlx::core::Stream::Stream()']]], + ['stream_171',['stream',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a8462e4acffcd385c6248bd7102e6bcb1',1,'mlx::core::scheduler::StreamThread::stream'],['../classmlx_1_1core_1_1_event.html#a193143bad31b68c699fa27f135b45614',1,'mlx::core::Event::stream()'],['../classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a',1,'mlx::core::Primitive::stream()']]], + ['stream_2eh_172',['stream.h',['../stream_8h.html',1,'']]], + ['streamcontext_173',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html',1,'mlx::core::StreamContext'],['../structmlx_1_1core_1_1_stream_context.html#a89d803151e9d7dce29382aa83d5c6ef1',1,'mlx::core::StreamContext::StreamContext()']]], + ['streamordevice_174',['StreamOrDevice',['../namespacemlx_1_1core.html#a95fc1013cc48fbfee0c54310711a5e58',1,'mlx::core']]], + ['streamthread_175',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html',1,'mlx::core::scheduler::StreamThread'],['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#ac528109a11abcb82e6e221c5efa4493c',1,'mlx::core::scheduler::StreamThread::StreamThread()']]], + ['stride_176',['stride',['../classpocketfft_1_1detail_1_1arr__info.html#a9d10aa83a1117e75d36f7396b8c2a093',1,'pocketfft::detail::arr_info::stride() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac1f6a9bd6703eceef6003f5f6315d39b',1,'pocketfft::detail::arr_info::stride(size_t i) const']]], + ['stride_5fin_177',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], + ['stride_5fout_178',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], + ['stride_5ft_179',['stride_t',['../namespacepocketfft_1_1detail.html#afb987c919e9424a996d0fc8b3c23cc84',1,'pocketfft::detail']]], + ['strided_5fdevice_5fidx_180',['strided_device_idx',['../struct_read_writer.html#a4c0b12484aac4fd6759d67c190391989',1,'ReadWriter']]], + ['strided_5freduce_5fgeneral_5fdispatch_181',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], + ['strided_5fscan_182',['strided_scan',['../scan_8h.html#a7abb6ffb6c3b96b88c2a63cd4cc2f7ae',1,'scan.h']]], + ['strided_5fshared_5fidx_183',['strided_shared_idx',['../struct_read_writer.html#ace40adb02cfb33d89c98353327c251fc',1,'ReadWriter']]], + ['strides_184',['strides',['../structmlx_1_1core_1_1_reduction_plan.html#a9bf7cae845ab633247c1811613ece8bd',1,'mlx::core::ReductionPlan::strides'],['../struct_indices.html#a7f73d7652f0f751e6a06c2663e329a4a',1,'Indices::strides'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2',1,'mlx::core::fast::CustomKernelShapeInfo::strides'],['../classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b',1,'mlx::core::array::strides() const'],['../classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2',1,'mlx::core::array::strides(int dim) const']]], + ['submit_185',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], + ['subtract_186',['Subtract',['../structmlx_1_1core_1_1detail_1_1_subtract.html',1,'mlx::core::detail::Subtract'],['../classmlx_1_1core_1_1_subtract.html',1,'mlx::core::Subtract'],['../struct_subtract.html',1,'Subtract'],['../classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c',1,'mlx::core::Subtract::Subtract()']]], + ['subtract_187',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], + ['sum_188',['Sum',['../struct_sum.html',1,'Sum< U >'],['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abb4560980e5d01aed14175ce8f6fc924a1fc7c1f09c80650ab0497e2d6781d65f',1,'mlx::core::distributed::AllReduce::Sum'],['../classmlx_1_1core_1_1_reduce.html#a0848518b16ae6d4043d6be247bdf31c9a8582875544f1d3d396a1a376473ef1dd',1,'mlx::core::Reduce::Sum'],['../classmlx_1_1core_1_1_scan.html#a47bf2ec54ead4b8f00f9f188518630f1ade23893033e4849f5596e7ce76a5fc36',1,'mlx::core::Scan::Sum'],['../classmlx_1_1core_1_1_scatter.html#a614d19af11dc30644b2b4941033b613ca14abe2d8818efa71726be4e156813d6f',1,'mlx::core::Scatter::Sum']]], + ['sum_189',['sum',['../group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6',1,'mlx::core::sum(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3627754d7868487bdab1bd83f05d9c81',1,'mlx::core::sum(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaccd0a6be2c5b5128fdc2d87b5c8e67f4',1,'mlx::core::sum(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafcd39b0bf39a56c26a967981c7ab8a8d',1,'mlx::core::sum(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['svd_190',['SVD',['../classmlx_1_1core_1_1_s_v_d.html',1,'mlx::core::SVD'],['../classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1',1,'mlx::core::SVD::SVD()']]], + ['svd_191',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], + ['swapaxes_192',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], + ['swizzle_193',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle']]], + ['swizzle_5flog_194',['swizzle_log',['../struct_m_l_x_fast_attention_params.html#a68a338d522ffeb6761b7b168869361e2',1,'MLXFastAttentionParams::swizzle_log'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ad0713159d4f710cd9a066596593d8840',1,'mlx::steel::ImplicitGemmConv2DParams::swizzle_log'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#af9ff2c06dd8994126634531440325be7',1,'mlx::steel::GEMMParams::swizzle_log']]], + ['synchronize_195',['synchronize',['../namespacemlx_1_1core.html#a14287949d82ffefad0306cef5eb5f9e4',1,'mlx::core::synchronize()'],['../namespacemlx_1_1core.html#a6648a71937b055e5ff513d98056c2fb5',1,'mlx::core::synchronize(Stream)']]] ]; diff --git a/docs/build/html/search/all_14.js b/docs/build/html/search/all_14.js index 9490b7b76..6981d7cf8 100644 --- a/docs/build/html/search/all_14.js +++ b/docs/build/html/search/all_14.js @@ -14,78 +14,79 @@ var searchData= ['tcols_11',['TCOLS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a0b5303f3258e0a21862dead8e3f5401e',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a5adbd51e9adb6f7853724d83de4ff755',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a80cb90674f839d5d4ecfde384fa0a7a2',1,'mlx::steel::Conv2DWeightBlockLoader::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ad2508cd5cdb51b2f611057e743b8fc6f',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acd54132d0928d0f6fb15b2f367e5d5e8',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ae25c676b7318d78462ee89bcd80dc805',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aff021a6fae860b4ac01fb593b2720457',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::TCOLS']]], ['tell_12',['tell',['../classmlx_1_1core_1_1io_1_1_reader.html#a27697ccc1ce45da0233db3bd4f298aed',1,'mlx::core::io::Reader::tell()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a11ad80749894993232fbb5c70fd7b282',1,'mlx::core::io::Writer::tell()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a2e92131428f0ffa98fff781b8c35d9e5',1,'mlx::core::io::ParallelFileReader::tell()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#aa883a722789c962164fd0ddcc5f6ffc5',1,'mlx::core::io::FileWriter::tell()']]], ['templatearg_13',['TemplateArg',['../namespacemlx_1_1core_1_1fast.html#a9390693ff7be931f3ef3428e2ea4c3f9',1,'mlx::core::fast']]], - ['ten_14',['ten',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1',1,'mlx::core::Log']]], - ['tensordot_15',['tensordot',['../group__ops.html#gaf5c9735f4690327e1500e04e728fae70',1,'mlx::core::tensordot(const array &a, const array &b, const int axis=2, StreamOrDevice s={})'],['../group__ops.html#gad7fe00b566f89d607639c1a497cabbc6',1,'mlx::core::tensordot(const array &a, const array &b, const std::vector< int > &axes_a, const std::vector< int > &axes_b, StreamOrDevice s={})']]], - ['ternary_16',['ternary',['../namespacemlx_1_1core_1_1metal.html#a2d1c92ba6897c0a7a428fed63279b61f',1,'mlx::core::metal']]], - ['ternary_2eh_17',['ternary.h',['../common_2ternary_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2ternary_8h.html',1,'(Global Namespace)'],['../metal_2ternary_8h.html',1,'(Global Namespace)']]], - ['ternary_5fg_18',['ternary_g',['../metal_2kernels_2ternary_8h.html#adf8b5989de971e43829875dc0097cdfb',1,'ternary.h']]], - ['ternary_5fg_5fnd1_19',['ternary_g_nd1',['../metal_2kernels_2ternary_8h.html#a1bd5918559850f3f80e3adee2391fe6a',1,'ternary.h']]], - ['ternary_5fg_5fnd2_20',['ternary_g_nd2',['../metal_2kernels_2ternary_8h.html#afdf0d9d0cb21fcb3f176500785076af8',1,'ternary.h']]], - ['ternary_5fg_5fnd3_21',['ternary_g_nd3',['../metal_2kernels_2ternary_8h.html#a113df0c8a841b0e986900d580644e047',1,'ternary.h']]], - ['ternary_5fop_5fgpu_22',['ternary_op_gpu',['../namespacemlx_1_1core.html#aa63e62b6d3906e4cac871d498515a1cd',1,'mlx::core']]], - ['ternary_5fop_5fgpu_5finplace_23',['ternary_op_gpu_inplace',['../namespacemlx_1_1core.html#a37645c0adccb3eb46844115def1a68d7',1,'mlx::core']]], - ['ternary_5fops_24',['ternary_ops',['../namespacemlx_1_1core_1_1metal.html#a11b593b07e9a33e5f78fe4695fb99ec9',1,'mlx::core::metal']]], - ['ternary_5fops_2eh_25',['ternary_ops.h',['../ternary__ops_8h.html',1,'']]], - ['ternary_5fv_26',['ternary_v',['../metal_2kernels_2ternary_8h.html#a83f93644d21ee774e06e8190d0725ccb',1,'ternary.h']]], - ['ternary_5fv2_27',['ternary_v2',['../metal_2kernels_2ternary_8h.html#a3e610f3b01966bdbf23fdfebe5d2c508',1,'ternary.h']]], - ['tgp_5fmem_5fsize_28',['tgp_mem_size',['../struct_g_e_m_v_kernel.html#a9ef4d0e62094d7033069f5dda5efb236',1,'GEMVKernel::tgp_mem_size'],['../struct_g_e_m_v_t_kernel.html#a48a09a21d7b822f380d040c752b785d7',1,'GEMVTKernel::tgp_mem_size'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da',1,'mlx::steel::GEMMKernel::tgp_mem_size']]], - ['tgp_5fmem_5fsize_5fa_29',['tgp_mem_size_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fmem_5fsize_5fb_30',['tgp_mem_size_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a105af1069668028c6f1bc6d6dd162298',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fpadding_5fa_31',['tgp_padding_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fpadding_5fb_32',['tgp_padding_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fsize_33',['tgp_size',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64',1,'mlx::steel::GEMMKernel']]], - ['thread_34',['thread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a449de02bf2ac80d8fe2f208fa7eac359',1,'mlx::core::scheduler::StreamThread']]], - ['thread_5fcount_35',['thread_count',['../structpocketfft_1_1detail_1_1util.html#a3b012d5a19215bcd32cf6e228556fa87',1,'pocketfft::detail::util']]], - ['thread_5ffn_36',['thread_fn',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a06a62c21c1174e4eb4d242e50aad7adf',1,'mlx::core::scheduler::StreamThread']]], - ['thread_5fid_37',['thread_id',['../namespacepocketfft_1_1detail_1_1threading.html#aebe85d6273d92c7d3728e2c621ccc82b',1,'pocketfft::detail::threading']]], - ['thread_5fidx_38',['thread_idx',['../struct_quantized_block_loader.html#a50821537ea747bc03295a09bb0eef475',1,'QuantizedBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a70da26a715135d973f88371a70255be9',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac18de37cde1459595bfe18b0d5ef146d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ab1cb2ade639787243e0325dcd3dc0a11',1,'mlx::steel::Conv2DWeightBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9642399b8066e29123524f36ebc7b482',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acacdac168004c87fee27c8554ac905a7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a401f0c7cf1588552556603c7ffba2316',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08a517bc50caf41155b98be0690bfe44',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b',1,'mlx::steel::BlockLoader::thread_idx']]], - ['thread_5fmap_39',['thread_map',['../namespacepocketfft_1_1detail_1_1threading.html#a4fcf674db39f0e2c1c59d48491daed6e',1,'pocketfft::detail::threading']]], - ['thread_5fpool_40',['thread_pool',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html',1,'pocketfft::detail::threading::thread_pool'],['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a37a8121a99dd06a9d44b3e80ba0ea560',1,'pocketfft::detail::threading::thread_pool::thread_pool(size_t nthreads)'],['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#aefaadaa60c0183b862ad96338177a5e0',1,'pocketfft::detail::threading::thread_pool::thread_pool()'],['../namespacemlx_1_1core_1_1io.html#a05f27b765443a178a972abae772e863d',1,'mlx::core::io::thread_pool()']]], - ['thread_5freduce_41',['thread_reduce',['../reduce__row_8h.html#afd80a25fa84e6cc884dcc8698859ade1',1,'reduce_row.h']]], - ['thread_5fsort_5ft_42',['thread_sort_t',['../struct_block_merge_sort.html#ad2474d16721f4ceb954125728a0e2ea2',1,'BlockMergeSort']]], - ['thread_5fswap_43',['thread_swap',['../sort_8h.html#a6e8c2da4975a8001fd5ddf211a3058b7',1,'sort.h']]], - ['threadgroup_5freduce_44',['threadgroup_reduce',['../reduce__row_8h.html#aa146bb611069fd2892f03714fd1cc3cf',1,'reduce_row.h']]], - ['threadpool_45',['ThreadPool',['../class_thread_pool.html',1,'ThreadPool'],['../class_thread_pool.html#ac291710e33dbbed96ee20711080d506d',1,'ThreadPool::ThreadPool()']]], - ['threadpool_2eh_46',['threadpool.h',['../threadpool_8h.html',1,'']]], - ['threads_5fper_5ftg_47',['threads_per_tg',['../struct_read_writer.html#a64c58e358da22358df3075448ea23893',1,'ReadWriter']]], - ['threadsm_48',['threadsM',['../struct_g_e_m_v_kernel.html#a1dd943fcbf5e7be435fc36bed589a641',1,'GEMVKernel::threadsM'],['../struct_g_e_m_v_t_kernel.html#a4a53e73a581aa8881b1f86ce653519e6',1,'GEMVTKernel::threadsM']]], - ['threadsn_49',['threadsN',['../struct_g_e_m_v_kernel.html#a47bfab7d21dd18760d3e0937ad36b19d',1,'GEMVKernel::threadsN'],['../struct_g_e_m_v_t_kernel.html#ade6f15a9744616de9dd71498ad7e758d',1,'GEMVTKernel::threadsN']]], - ['threadsort_50',['ThreadSort',['../struct_thread_sort.html',1,'']]], - ['threefry_2eh_51',['threefry.h',['../threefry_8h.html',1,'']]], - ['threefry2x32_5fhash_52',['threefry2x32_hash',['../namespacemlx_1_1core_1_1random.html#ac7e92c89a2bac1b0bed922a3d4c3c66b',1,'mlx::core::random']]], - ['tile_53',['tile',['../group__ops.html#gab105a57b9a4d84496fe1e4d60e13d361',1,'mlx::core']]], - ['tile_5fstride_54',['tile_stride',['../struct_quantized_block_loader.html#ac3f651c1a645291d1037a2cc8ded2320',1,'QuantizedBlockLoader::tile_stride'],['../structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d',1,'mlx::steel::BlockLoader::tile_stride']]], - ['tile_5fstride_5fa_55',['tile_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330',1,'mlx::steel::BlockMMA']]], - ['tile_5fstride_5fb_56',['tile_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4',1,'mlx::steel::BlockMMA']]], - ['tiles_5fm_57',['tiles_m',['../struct_m_l_x_fast_attention_params.html#a0df159c839fc27b9426b8ac4336cc0ad',1,'MLXFastAttentionParams::tiles_m'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a4c5e33edf70be99cf93ac5723c12eb24',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad23a5a7f74cd5859741a36e4bc7823ca',1,'mlx::steel::GEMMParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a0970989624e17088d5326c2e198cb95b',1,'mlx::steel::GEMMSpiltKParams::tiles_m']]], - ['tiles_5fn_58',['tiles_n',['../struct_m_l_x_fast_attention_params.html#a608aa256216ac6d80af00209303d2029',1,'MLXFastAttentionParams::tiles_n'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a76f9f381e7187a993d65128b9b681b2d',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0e6b8b629232f1b43fbce9a395174bed',1,'mlx::steel::GEMMParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a5b46dfb9cee3606efa05d217349a20a6',1,'mlx::steel::GEMMSpiltKParams::tiles_n']]], - ['tm_59',['TM',['../structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591',1,'mlx::steel::BlockMMA']]], - ['tm_60',['tm',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab84d70540d09ce115794f343849f016f',1,'mlx::steel::BlockMMA']]], - ['tm_5fstride_61',['TM_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307',1,'mlx::steel::BlockMMA']]], - ['tn_62',['TN',['../structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424',1,'mlx::steel::BlockMMA']]], - ['tn_63',['tn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ad7a2033983cfbb474c50c2878057d8f1',1,'mlx::steel::BlockMMA']]], - ['tn_5fstride_64',['TN_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50',1,'mlx::steel::BlockMMA']]], - ['to_5fbnns_5fdtype_65',['to_bnns_dtype',['../namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb',1,'mlx::core']]], - ['to_5fstream_66',['to_stream',['../namespacemlx_1_1core.html#a4734a596e57434492ddfe79f2cb9dbf9',1,'mlx::core']]], - ['topk_67',['topk',['../group__ops.html#ga5487dd887c43e5341f3e68ffe47f0f5a',1,'mlx::core::topk(const array &a, int k, StreamOrDevice s={})'],['../group__ops.html#ga35b8436c79ff953f6c809598b646f498',1,'mlx::core::topk(const array &a, int k, int axis, StreamOrDevice s={})']]], - ['trace_68',['trace',['../group__ops.html#gabf786129c7660ed8d5acb5499bc6fefd',1,'mlx::core::trace(const array &a, int offset, int axis1, int axis2, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga5ed43c2dbf7d6cbddbaa2fd682deaafd',1,'mlx::core::trace(const array &a, int offset, int axis1, int axis2, StreamOrDevice s={})'],['../group__ops.html#gaf25c00108feaafaa6350a4434cb0062e',1,'mlx::core::trace(const array &a, StreamOrDevice s={})']]], - ['transformadd_69',['TransformAdd',['../structmlx_1_1steel_1_1_transform_add.html',1,'mlx::steel::TransformAdd< OutT, InT >'],['../structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae',1,'mlx::steel::TransformAdd::TransformAdd()']]], - ['transformaxpby_70',['TransformAxpby',['../structmlx_1_1steel_1_1_transform_axpby.html',1,'mlx::steel::TransformAxpby< OutT, InT >'],['../structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9',1,'mlx::steel::TransformAxpby::TransformAxpby()']]], - ['transformnone_71',['TransformNone',['../structmlx_1_1steel_1_1_transform_none.html',1,'mlx::steel']]], - ['transforms_2eh_72',['transforms.h',['../backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html',1,'(Global Namespace)'],['../transforms_8h.html',1,'(Global Namespace)']]], - ['transforms_5fimpl_2eh_73',['transforms_impl.h',['../transforms__impl_8h.html',1,'']]], - ['transpose_74',['Transpose',['../classmlx_1_1core_1_1_transpose.html',1,'mlx::core::Transpose'],['../classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a',1,'mlx::core::Transpose::Transpose()']]], - ['transpose_75',['transpose',['../group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b',1,'mlx::core::transpose(const array &a, std::vector< int > axes, StreamOrDevice s={})'],['../group__ops.html#ga260ac332956f3a6bf1dfdb9095c84dc5',1,'mlx::core::transpose(const array &a, std::initializer_list< int > axes, StreamOrDevice s={})'],['../group__ops.html#ga68da0176fefbe0c0096783c6fd926c6a',1,'mlx::core::transpose(const array &a, StreamOrDevice s={})']]], - ['tri_76',['tri',['../group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78',1,'mlx::core::tri(int n, int m, int k, Dtype type, StreamOrDevice s={})'],['../group__ops.html#gac19a1bd6ed6d5c7bc9d258820189dbb5',1,'mlx::core::tri(int n, Dtype type, StreamOrDevice s={})']]], - ['tri_5finv_77',['tri_inv',['../namespacemlx_1_1core_1_1linalg.html#aba1994571326326717b5b5e38c2e0661',1,'mlx::core::linalg']]], - ['tril_78',['tril',['../group__ops.html#ga83e0bb45dc770cf014531d873b78c5a2',1,'mlx::core']]], - ['triu_79',['triu',['../group__ops.html#gaa9df5917876eeb0cb28b7fa81f880412',1,'mlx::core']]], - ['trows_80',['TROWS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a2528ff5ed472e4ed35415ada42276b07',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3957fb263fe040fe70683fd1d7b06487',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a94f0ce5bb7d87bc1fb6a7c2ba2b892d4',1,'mlx::steel::Conv2DWeightBlockLoader::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a789683f9ac9d9309d07c05f3bdedd2fd',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a5cefb1285ed13ad3490198e9303453de',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a2aff22af70f685f858adea73f5575cf7',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acbc28f364381166faaeec2783dc88e10',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::TROWS']]], - ['trunc_81',['trunc',['../namespacemetal.html#a93cb75a11a362bfc8310ea19c554c887',1,'metal::trunc()'],['../namespacemetal_1_1fast.html#aa62e1075e86c626d97038f16e9433415',1,'metal::fast::trunc()'],['../namespacemetal_1_1precise.html#a334183e7a2dd49b983d072d1e8ee2b27',1,'metal::precise::trunc()']]], - ['truncated_5fnormal_82',['truncated_normal',['../namespacemlx_1_1core_1_1random.html#a00aa5746bac6d729d2ba9465153bb279',1,'mlx::core::random::truncated_normal(const array &lower, const array &upper, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a39663eda0fd7b274d01499a7b1c9035f',1,'mlx::core::random::truncated_normal(const array &lower, const array &upper, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], - ['try_5fpop_83',['try_pop',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#aa3807d46a126d229f9054c779105ea43',1,'pocketfft::detail::threading::concurrent_queue']]], - ['two_84',['two',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251',1,'mlx::core::Log']]], - ['type_85',['type',['../structpocketfft_1_1detail_1_1add__vec.html#a7568dc83136c1b41eb71dcb78527227e',1,'pocketfft::detail::add_vec::type'],['../structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html#a257b1c81fb9f559c48ee90497013494e',1,'pocketfft::detail::add_vec< cmplx< T > >::type'],['../structpocketfft_1_1detail_1_1_exec_dcst.html#a9b170cbd74a9c6f45ac014ce349219ea',1,'pocketfft::detail::ExecDcst::type'],['../structmlx_1_1core_1_1_reduction_plan.html#a24e407f13d4d02156380ecc1a6748a76',1,'mlx::core::ReductionPlan::type'],['../structmlx_1_1core_1_1_device.html#a763264ec90f7f23c5dced36c3f0db2e5',1,'mlx::core::Device::type']]], - ['type_5fto_5fname_86',['type_to_name',['../namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae',1,'mlx::core']]], - ['typetodtype_87',['TypeToDtype',['../structmlx_1_1core_1_1_type_to_dtype.html',1,'mlx::core']]] + ['temporaries_14',['temporaries',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de',1,'mlx::core::metal::DeviceStream']]], + ['ten_15',['ten',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a394d85b39676763bdf35b8d54b9e43a1',1,'mlx::core::Log']]], + ['tensordot_16',['tensordot',['../group__ops.html#gaf5c9735f4690327e1500e04e728fae70',1,'mlx::core::tensordot(const array &a, const array &b, const int axis=2, StreamOrDevice s={})'],['../group__ops.html#gad7fe00b566f89d607639c1a497cabbc6',1,'mlx::core::tensordot(const array &a, const array &b, const std::vector< int > &axes_a, const std::vector< int > &axes_b, StreamOrDevice s={})']]], + ['ternary_17',['ternary',['../namespacemlx_1_1core_1_1metal.html#a2d1c92ba6897c0a7a428fed63279b61f',1,'mlx::core::metal']]], + ['ternary_2eh_18',['ternary.h',['../common_2ternary_8h.html',1,'(Global Namespace)'],['../metal_2kernels_2ternary_8h.html',1,'(Global Namespace)'],['../metal_2ternary_8h.html',1,'(Global Namespace)']]], + ['ternary_5fg_19',['ternary_g',['../metal_2kernels_2ternary_8h.html#adf8b5989de971e43829875dc0097cdfb',1,'ternary.h']]], + ['ternary_5fg_5fnd1_20',['ternary_g_nd1',['../metal_2kernels_2ternary_8h.html#a1bd5918559850f3f80e3adee2391fe6a',1,'ternary.h']]], + ['ternary_5fg_5fnd2_21',['ternary_g_nd2',['../metal_2kernels_2ternary_8h.html#afdf0d9d0cb21fcb3f176500785076af8',1,'ternary.h']]], + ['ternary_5fg_5fnd3_22',['ternary_g_nd3',['../metal_2kernels_2ternary_8h.html#a113df0c8a841b0e986900d580644e047',1,'ternary.h']]], + ['ternary_5fop_5fgpu_23',['ternary_op_gpu',['../namespacemlx_1_1core.html#aa63e62b6d3906e4cac871d498515a1cd',1,'mlx::core']]], + ['ternary_5fop_5fgpu_5finplace_24',['ternary_op_gpu_inplace',['../namespacemlx_1_1core.html#a37645c0adccb3eb46844115def1a68d7',1,'mlx::core']]], + ['ternary_5fops_25',['ternary_ops',['../namespacemlx_1_1core_1_1metal.html#a11b593b07e9a33e5f78fe4695fb99ec9',1,'mlx::core::metal']]], + ['ternary_5fops_2eh_26',['ternary_ops.h',['../ternary__ops_8h.html',1,'']]], + ['ternary_5fv_27',['ternary_v',['../metal_2kernels_2ternary_8h.html#a83f93644d21ee774e06e8190d0725ccb',1,'ternary.h']]], + ['ternary_5fv2_28',['ternary_v2',['../metal_2kernels_2ternary_8h.html#a3e610f3b01966bdbf23fdfebe5d2c508',1,'ternary.h']]], + ['tgp_5fmem_5fsize_29',['tgp_mem_size',['../struct_g_e_m_v_kernel.html#a9ef4d0e62094d7033069f5dda5efb236',1,'GEMVKernel::tgp_mem_size'],['../struct_g_e_m_v_t_kernel.html#a48a09a21d7b822f380d040c752b785d7',1,'GEMVTKernel::tgp_mem_size'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da',1,'mlx::steel::GEMMKernel::tgp_mem_size']]], + ['tgp_5fmem_5fsize_5fa_30',['tgp_mem_size_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fmem_5fsize_5fb_31',['tgp_mem_size_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a105af1069668028c6f1bc6d6dd162298',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fpadding_5fa_32',['tgp_padding_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fpadding_5fb_33',['tgp_padding_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fsize_34',['tgp_size',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64',1,'mlx::steel::GEMMKernel']]], + ['thread_35',['thread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a449de02bf2ac80d8fe2f208fa7eac359',1,'mlx::core::scheduler::StreamThread']]], + ['thread_5fcount_36',['thread_count',['../structpocketfft_1_1detail_1_1util.html#a3b012d5a19215bcd32cf6e228556fa87',1,'pocketfft::detail::util']]], + ['thread_5ffn_37',['thread_fn',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a06a62c21c1174e4eb4d242e50aad7adf',1,'mlx::core::scheduler::StreamThread']]], + ['thread_5fid_38',['thread_id',['../namespacepocketfft_1_1detail_1_1threading.html#aebe85d6273d92c7d3728e2c621ccc82b',1,'pocketfft::detail::threading']]], + ['thread_5fidx_39',['thread_idx',['../struct_quantized_block_loader.html#a50821537ea747bc03295a09bb0eef475',1,'QuantizedBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a70da26a715135d973f88371a70255be9',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac18de37cde1459595bfe18b0d5ef146d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ab1cb2ade639787243e0325dcd3dc0a11',1,'mlx::steel::Conv2DWeightBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9642399b8066e29123524f36ebc7b482',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acacdac168004c87fee27c8554ac905a7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a401f0c7cf1588552556603c7ffba2316',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08a517bc50caf41155b98be0690bfe44',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b',1,'mlx::steel::BlockLoader::thread_idx']]], + ['thread_5fmap_40',['thread_map',['../namespacepocketfft_1_1detail_1_1threading.html#a4fcf674db39f0e2c1c59d48491daed6e',1,'pocketfft::detail::threading']]], + ['thread_5fpool_41',['thread_pool',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html',1,'pocketfft::detail::threading::thread_pool'],['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a37a8121a99dd06a9d44b3e80ba0ea560',1,'pocketfft::detail::threading::thread_pool::thread_pool(size_t nthreads)'],['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#aefaadaa60c0183b862ad96338177a5e0',1,'pocketfft::detail::threading::thread_pool::thread_pool()'],['../namespacemlx_1_1core_1_1io.html#a05f27b765443a178a972abae772e863d',1,'mlx::core::io::thread_pool()']]], + ['thread_5freduce_42',['thread_reduce',['../reduce__row_8h.html#afd80a25fa84e6cc884dcc8698859ade1',1,'reduce_row.h']]], + ['thread_5fsort_5ft_43',['thread_sort_t',['../struct_block_merge_sort.html#ad2474d16721f4ceb954125728a0e2ea2',1,'BlockMergeSort']]], + ['thread_5fswap_44',['thread_swap',['../sort_8h.html#a6e8c2da4975a8001fd5ddf211a3058b7',1,'sort.h']]], + ['threadgroup_5freduce_45',['threadgroup_reduce',['../reduce__row_8h.html#aa146bb611069fd2892f03714fd1cc3cf',1,'reduce_row.h']]], + ['threadpool_46',['ThreadPool',['../class_thread_pool.html',1,'ThreadPool'],['../class_thread_pool.html#ac291710e33dbbed96ee20711080d506d',1,'ThreadPool::ThreadPool()']]], + ['threadpool_2eh_47',['threadpool.h',['../threadpool_8h.html',1,'']]], + ['threads_5fper_5ftg_48',['threads_per_tg',['../struct_read_writer.html#a64c58e358da22358df3075448ea23893',1,'ReadWriter']]], + ['threadsm_49',['threadsM',['../struct_g_e_m_v_kernel.html#a1dd943fcbf5e7be435fc36bed589a641',1,'GEMVKernel::threadsM'],['../struct_g_e_m_v_t_kernel.html#a4a53e73a581aa8881b1f86ce653519e6',1,'GEMVTKernel::threadsM']]], + ['threadsn_50',['threadsN',['../struct_g_e_m_v_kernel.html#a47bfab7d21dd18760d3e0937ad36b19d',1,'GEMVKernel::threadsN'],['../struct_g_e_m_v_t_kernel.html#ade6f15a9744616de9dd71498ad7e758d',1,'GEMVTKernel::threadsN']]], + ['threadsort_51',['ThreadSort',['../struct_thread_sort.html',1,'']]], + ['threefry_2eh_52',['threefry.h',['../threefry_8h.html',1,'']]], + ['threefry2x32_5fhash_53',['threefry2x32_hash',['../namespacemlx_1_1core_1_1random.html#ac7e92c89a2bac1b0bed922a3d4c3c66b',1,'mlx::core::random']]], + ['tile_54',['tile',['../group__ops.html#gab105a57b9a4d84496fe1e4d60e13d361',1,'mlx::core']]], + ['tile_5fstride_55',['tile_stride',['../struct_quantized_block_loader.html#ac3f651c1a645291d1037a2cc8ded2320',1,'QuantizedBlockLoader::tile_stride'],['../structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d',1,'mlx::steel::BlockLoader::tile_stride']]], + ['tile_5fstride_5fa_56',['tile_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330',1,'mlx::steel::BlockMMA']]], + ['tile_5fstride_5fb_57',['tile_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4',1,'mlx::steel::BlockMMA']]], + ['tiles_5fm_58',['tiles_m',['../struct_m_l_x_fast_attention_params.html#a0df159c839fc27b9426b8ac4336cc0ad',1,'MLXFastAttentionParams::tiles_m'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a4c5e33edf70be99cf93ac5723c12eb24',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad23a5a7f74cd5859741a36e4bc7823ca',1,'mlx::steel::GEMMParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a0970989624e17088d5326c2e198cb95b',1,'mlx::steel::GEMMSpiltKParams::tiles_m']]], + ['tiles_5fn_59',['tiles_n',['../struct_m_l_x_fast_attention_params.html#a608aa256216ac6d80af00209303d2029',1,'MLXFastAttentionParams::tiles_n'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a76f9f381e7187a993d65128b9b681b2d',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0e6b8b629232f1b43fbce9a395174bed',1,'mlx::steel::GEMMParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a5b46dfb9cee3606efa05d217349a20a6',1,'mlx::steel::GEMMSpiltKParams::tiles_n']]], + ['tm_60',['TM',['../structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591',1,'mlx::steel::BlockMMA']]], + ['tm_61',['tm',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab84d70540d09ce115794f343849f016f',1,'mlx::steel::BlockMMA']]], + ['tm_5fstride_62',['TM_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307',1,'mlx::steel::BlockMMA']]], + ['tn_63',['TN',['../structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424',1,'mlx::steel::BlockMMA']]], + ['tn_64',['tn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ad7a2033983cfbb474c50c2878057d8f1',1,'mlx::steel::BlockMMA']]], + ['tn_5fstride_65',['TN_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50',1,'mlx::steel::BlockMMA']]], + ['to_5fbnns_5fdtype_66',['to_bnns_dtype',['../namespacemlx_1_1core.html#a7a4193f37b1de9c33c31d1da09c77edb',1,'mlx::core']]], + ['to_5fstream_67',['to_stream',['../namespacemlx_1_1core.html#a4734a596e57434492ddfe79f2cb9dbf9',1,'mlx::core']]], + ['topk_68',['topk',['../group__ops.html#ga5487dd887c43e5341f3e68ffe47f0f5a',1,'mlx::core::topk(const array &a, int k, StreamOrDevice s={})'],['../group__ops.html#ga35b8436c79ff953f6c809598b646f498',1,'mlx::core::topk(const array &a, int k, int axis, StreamOrDevice s={})']]], + ['trace_69',['trace',['../group__ops.html#gabf786129c7660ed8d5acb5499bc6fefd',1,'mlx::core::trace(const array &a, int offset, int axis1, int axis2, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga5ed43c2dbf7d6cbddbaa2fd682deaafd',1,'mlx::core::trace(const array &a, int offset, int axis1, int axis2, StreamOrDevice s={})'],['../group__ops.html#gaf25c00108feaafaa6350a4434cb0062e',1,'mlx::core::trace(const array &a, StreamOrDevice s={})']]], + ['transformadd_70',['TransformAdd',['../structmlx_1_1steel_1_1_transform_add.html',1,'mlx::steel::TransformAdd< OutT, InT >'],['../structmlx_1_1steel_1_1_transform_add.html#a7c1b7292910b74281e5296b3dac157ae',1,'mlx::steel::TransformAdd::TransformAdd()']]], + ['transformaxpby_71',['TransformAxpby',['../structmlx_1_1steel_1_1_transform_axpby.html',1,'mlx::steel::TransformAxpby< OutT, InT >'],['../structmlx_1_1steel_1_1_transform_axpby.html#ad7d11c53de13646b725921391d15bbe9',1,'mlx::steel::TransformAxpby::TransformAxpby()']]], + ['transformnone_72',['TransformNone',['../structmlx_1_1steel_1_1_transform_none.html',1,'mlx::steel']]], + ['transforms_2eh_73',['transforms.h',['../backend_2metal_2kernels_2steel_2gemm_2transforms_8h.html',1,'(Global Namespace)'],['../transforms_8h.html',1,'(Global Namespace)']]], + ['transforms_5fimpl_2eh_74',['transforms_impl.h',['../transforms__impl_8h.html',1,'']]], + ['transpose_75',['Transpose',['../classmlx_1_1core_1_1_transpose.html',1,'mlx::core::Transpose'],['../classmlx_1_1core_1_1_transpose.html#a1a9ba023584c61c7ac93d6dce536760a',1,'mlx::core::Transpose::Transpose()']]], + ['transpose_76',['transpose',['../group__ops.html#gac1869f3b7094869b44fe7ac4ce58638b',1,'mlx::core::transpose(const array &a, std::vector< int > axes, StreamOrDevice s={})'],['../group__ops.html#ga260ac332956f3a6bf1dfdb9095c84dc5',1,'mlx::core::transpose(const array &a, std::initializer_list< int > axes, StreamOrDevice s={})'],['../group__ops.html#ga68da0176fefbe0c0096783c6fd926c6a',1,'mlx::core::transpose(const array &a, StreamOrDevice s={})']]], + ['tri_77',['tri',['../group__ops.html#ga4f3389e5b89e70e862e7d2b40d6c7f78',1,'mlx::core::tri(int n, int m, int k, Dtype type, StreamOrDevice s={})'],['../group__ops.html#gac19a1bd6ed6d5c7bc9d258820189dbb5',1,'mlx::core::tri(int n, Dtype type, StreamOrDevice s={})']]], + ['tri_5finv_78',['tri_inv',['../namespacemlx_1_1core_1_1linalg.html#aba1994571326326717b5b5e38c2e0661',1,'mlx::core::linalg']]], + ['tril_79',['tril',['../group__ops.html#ga83e0bb45dc770cf014531d873b78c5a2',1,'mlx::core']]], + ['triu_80',['triu',['../group__ops.html#gaa9df5917876eeb0cb28b7fa81f880412',1,'mlx::core']]], + ['trows_81',['TROWS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a2528ff5ed472e4ed35415ada42276b07',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3957fb263fe040fe70683fd1d7b06487',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a94f0ce5bb7d87bc1fb6a7c2ba2b892d4',1,'mlx::steel::Conv2DWeightBlockLoader::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a789683f9ac9d9309d07c05f3bdedd2fd',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a5cefb1285ed13ad3490198e9303453de',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a2aff22af70f685f858adea73f5575cf7',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acbc28f364381166faaeec2783dc88e10',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::TROWS']]], + ['trunc_82',['trunc',['../namespacemetal.html#a93cb75a11a362bfc8310ea19c554c887',1,'metal::trunc()'],['../namespacemetal_1_1fast.html#aa62e1075e86c626d97038f16e9433415',1,'metal::fast::trunc()'],['../namespacemetal_1_1precise.html#a334183e7a2dd49b983d072d1e8ee2b27',1,'metal::precise::trunc()']]], + ['truncated_5fnormal_83',['truncated_normal',['../namespacemlx_1_1core_1_1random.html#a00aa5746bac6d729d2ba9465153bb279',1,'mlx::core::random::truncated_normal(const array &lower, const array &upper, const std::vector< int > &shape, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a39663eda0fd7b274d01499a7b1c9035f',1,'mlx::core::random::truncated_normal(const array &lower, const array &upper, Dtype dtype=float32, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], + ['try_5fpop_84',['try_pop',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#aa3807d46a126d229f9054c779105ea43',1,'pocketfft::detail::threading::concurrent_queue']]], + ['two_85',['two',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a41877eab6fa3db7d7ed2cda9eba14251',1,'mlx::core::Log']]], + ['type_86',['type',['../structpocketfft_1_1detail_1_1add__vec.html#a7568dc83136c1b41eb71dcb78527227e',1,'pocketfft::detail::add_vec::type'],['../structpocketfft_1_1detail_1_1add__vec_3_01cmplx_3_01_t_01_4_01_4.html#a257b1c81fb9f559c48ee90497013494e',1,'pocketfft::detail::add_vec< cmplx< T > >::type'],['../structpocketfft_1_1detail_1_1_exec_dcst.html#a9b170cbd74a9c6f45ac014ce349219ea',1,'pocketfft::detail::ExecDcst::type'],['../structmlx_1_1core_1_1_reduction_plan.html#a24e407f13d4d02156380ecc1a6748a76',1,'mlx::core::ReductionPlan::type'],['../structmlx_1_1core_1_1_device.html#a763264ec90f7f23c5dced36c3f0db2e5',1,'mlx::core::Device::type']]], + ['type_5fto_5fname_87',['type_to_name',['../namespacemlx_1_1core.html#af1fdfdaa5644394362e6baba30701bae',1,'mlx::core']]], + ['typetodtype_88',['TypeToDtype',['../structmlx_1_1core_1_1_type_to_dtype.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/all_16.js b/docs/build/html/search/all_16.js index 32f23f37a..e8cd4bc45 100644 --- a/docs/build/html/search/all_16.js +++ b/docs/build/html/search/all_16.js @@ -17,7 +17,7 @@ var searchData= ['view_14',['view',['../group__ops.html#ga3602aa91b7b124a0b41ec1b2137a1b02',1,'mlx::core']]], ['vjp_15',['vjp',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abbf6d1d63dcda207ad7d9eeb4fc36225',1,'mlx::core::distributed::AllReduce::vjp()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#aa5eff6fc128b71220899aab8ab9116fb',1,'mlx::core::distributed::AllGather::vjp()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a74be4bcd0382f7f6400bf73fd5569c91',1,'mlx::core::fast::Custom::vjp()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#aacfbbbc15fcee0a5ce4f519ca3cca5eb',1,'mlx::core::fast::RMSNorm::vjp()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#ae5e1b5df0705a6b1d141691a4396b0b6',1,'mlx::core::fast::LayerNorm::vjp()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#ad999105414badd66c8fd9e069454a533',1,'mlx::core::fast::RoPE::vjp()'],['../classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42',1,'mlx::core::Primitive::vjp()'],['../classmlx_1_1core_1_1_abs.html#aa2dd8ec0989e716b77394ac349b34592',1,'mlx::core::Abs::vjp()'],['../classmlx_1_1core_1_1_add.html#ac28e581862880e24ed2b99bb6a916607',1,'mlx::core::Add::vjp()'],['../classmlx_1_1core_1_1_add_m_m.html#ac1562a37cec6928e01281926ebeb47c6',1,'mlx::core::AddMM::vjp()'],['../classmlx_1_1core_1_1_arc_cos.html#a78e73e5e639d1249c7fe9614bf157c92',1,'mlx::core::ArcCos::vjp()'],['../classmlx_1_1core_1_1_arc_cosh.html#a856c677f16e2b3f2edd2491e35db2d26',1,'mlx::core::ArcCosh::vjp()'],['../classmlx_1_1core_1_1_arc_sin.html#ab4057cd5ef1a8359f97493018e10d3a1',1,'mlx::core::ArcSin::vjp()'],['../classmlx_1_1core_1_1_arc_sinh.html#a7988ee5b9e1e7e498dcab73d61ba147e',1,'mlx::core::ArcSinh::vjp()'],['../classmlx_1_1core_1_1_arc_tan.html#a5fefc3634b96a67ff8ae011a8ee180c2',1,'mlx::core::ArcTan::vjp()'],['../classmlx_1_1core_1_1_arc_tan2.html#a99840c282e37b2b2a9c312e6e8ade1d2',1,'mlx::core::ArcTan2::vjp()'],['../classmlx_1_1core_1_1_arc_tanh.html#a07da5797f7aaf3dfe43bf24e8562ac72',1,'mlx::core::ArcTanh::vjp()'],['../classmlx_1_1core_1_1_arg_partition.html#ade23d014717a0b0235d00073503aeac0',1,'mlx::core::ArgPartition::vjp()'],['../classmlx_1_1core_1_1_arg_reduce.html#a60d272685a373e6fe879416481a1ce1a',1,'mlx::core::ArgReduce::vjp()'],['../classmlx_1_1core_1_1_as_type.html#ac38a4f889311a3b5e5be9a67dcb93e18',1,'mlx::core::AsType::vjp()'],['../classmlx_1_1core_1_1_as_strided.html#a34783284c9b2f5b4a62c3c3ee5dd4062',1,'mlx::core::AsStrided::vjp()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6131ed1c317ff8700a3e9b13fdaa9d61',1,'mlx::core::BitwiseBinary::vjp()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#a1adf20087ee2f685bf39c2724b8e7120',1,'mlx::core::BlockMaskedMM::vjp()'],['../classmlx_1_1core_1_1_gather_m_m.html#a76c9f27c57354f6230b43944882e1bda',1,'mlx::core::GatherMM::vjp()'],['../classmlx_1_1core_1_1_broadcast.html#a0318847c9be40f00b23907ad56037d18',1,'mlx::core::Broadcast::vjp()'],['../classmlx_1_1core_1_1_ceil.html#ac2f5a2bd84b8f013e5ce688419a88acb',1,'mlx::core::Ceil::vjp()'],['../classmlx_1_1core_1_1_compiled.html#a32462e65c52f84b708188130cc508133',1,'mlx::core::Compiled::vjp()'],['../classmlx_1_1core_1_1_concatenate.html#a8155db9100ec3b8bd0bc94baeaeee3b0',1,'mlx::core::Concatenate::vjp()'],['../classmlx_1_1core_1_1_convolution.html#af8eb9c0c055ad20aa74b547016917690',1,'mlx::core::Convolution::vjp()'],['../classmlx_1_1core_1_1_copy.html#a6c4dee582001e9983e9517485ee37efd',1,'mlx::core::Copy::vjp()'],['../classmlx_1_1core_1_1_cos.html#a51d84113728e651ef9d4a1fe671c4d00',1,'mlx::core::Cos::vjp()'],['../classmlx_1_1core_1_1_cosh.html#a0791abd4305a333fb3b181a5357ce0f4',1,'mlx::core::Cosh::vjp()'],['../classmlx_1_1core_1_1_custom_transforms.html#aa1da36cef632df767cd9809d6cf06209',1,'mlx::core::CustomTransforms::vjp()'],['../classmlx_1_1core_1_1_depends.html#a02996fa45f01f7cb9f37074d5f8ccab0',1,'mlx::core::Depends::vjp()'],['../classmlx_1_1core_1_1_divide.html#ad3af7c70cad22c1a1a75b4a78ef793b6',1,'mlx::core::Divide::vjp()'],['../classmlx_1_1core_1_1_div_mod.html#a8c914a07f666a1d9377a27ed5d55e7c1',1,'mlx::core::DivMod::vjp()'],['../classmlx_1_1core_1_1_select.html#a9b522487b78fceeca7f827cd1c29a9a3',1,'mlx::core::Select::vjp()'],['../classmlx_1_1core_1_1_remainder.html#ab18f7bca1027ae71847a50da0933cec6',1,'mlx::core::Remainder::vjp()'],['../classmlx_1_1core_1_1_equal.html#af3c1bfcd1bf50922fc00e302bb193736',1,'mlx::core::Equal::vjp()'],['../classmlx_1_1core_1_1_erf.html#a1f529e95a42a2d69a8b18979d3ee2909',1,'mlx::core::Erf::vjp()'],['../classmlx_1_1core_1_1_erf_inv.html#a48afff12a58ddefae7ae0245c3580189',1,'mlx::core::ErfInv::vjp()'],['../classmlx_1_1core_1_1_exp.html#a94b9b7d137c3640d290b96c5e8b7e1a8',1,'mlx::core::Exp::vjp()'],['../classmlx_1_1core_1_1_expm1.html#af6ce416169190479c9792bb9cdbe2f43',1,'mlx::core::Expm1::vjp()'],['../classmlx_1_1core_1_1_f_f_t.html#aafc895614a6e368c0e6d64af20d01090',1,'mlx::core::FFT::vjp()'],['../classmlx_1_1core_1_1_floor.html#a589e2cf99b6fd1a5ba85534a2a31338e',1,'mlx::core::Floor::vjp()'],['../classmlx_1_1core_1_1_full.html#a49e76e7a8641f990701abc1b3bd49969',1,'mlx::core::Full::vjp()'],['../classmlx_1_1core_1_1_gather.html#aacf612a8f5f1cdbbfd19707d8d33c426',1,'mlx::core::Gather::vjp()'],['../classmlx_1_1core_1_1_greater.html#a341766a8a7e41d2a1160d35d4e781679',1,'mlx::core::Greater::vjp()'],['../classmlx_1_1core_1_1_greater_equal.html#a62f07a4ac54c708307c82aac0e5693ee',1,'mlx::core::GreaterEqual::vjp()'],['../classmlx_1_1core_1_1_hadamard.html#af4134775427b8998d66f489468b98656',1,'mlx::core::Hadamard::vjp()'],['../classmlx_1_1core_1_1_imag.html#a80da5fdd0fa549eebd7804c0e261848b',1,'mlx::core::Imag::vjp()'],['../classmlx_1_1core_1_1_less.html#aaf205d389b5e602e0814b68f66de8f50',1,'mlx::core::Less::vjp()'],['../classmlx_1_1core_1_1_less_equal.html#aab2aab7590c299885e815c18eedd1028',1,'mlx::core::LessEqual::vjp()'],['../classmlx_1_1core_1_1_log.html#a40885dccfbf928c4d035881be1d49280',1,'mlx::core::Log::vjp()'],['../classmlx_1_1core_1_1_log1p.html#a3113c1d2b4c5e73d0b470f42dc48a880',1,'mlx::core::Log1p::vjp()'],['../classmlx_1_1core_1_1_logical_not.html#af2c3c241cf3910fbaba013c69d052a50',1,'mlx::core::LogicalNot::vjp()'],['../classmlx_1_1core_1_1_logical_and.html#ae42f8fc454577b0fd6410cae9d5f3b54',1,'mlx::core::LogicalAnd::vjp()'],['../classmlx_1_1core_1_1_logical_or.html#a51aed488f52d5031998689af9cb17847',1,'mlx::core::LogicalOr::vjp()'],['../classmlx_1_1core_1_1_log_add_exp.html#ae231af0ed24a93eb647ee58c2d2b20b4',1,'mlx::core::LogAddExp::vjp()'],['../classmlx_1_1core_1_1_matmul.html#a524136cca481598ea20894d85ca66bb0',1,'mlx::core::Matmul::vjp()'],['../classmlx_1_1core_1_1_maximum.html#a7de15d7b28784e24bbfc7e85ddcbcff3',1,'mlx::core::Maximum::vjp()'],['../classmlx_1_1core_1_1_minimum.html#a48a0cbe3a6c4f7473c00e343f63b5204',1,'mlx::core::Minimum::vjp()'],['../classmlx_1_1core_1_1_multiply.html#a74b7556ec03e2c3d3f971666d06f5db1',1,'mlx::core::Multiply::vjp()'],['../classmlx_1_1core_1_1_negative.html#a889585f056d33bda30c30311257af52a',1,'mlx::core::Negative::vjp()'],['../classmlx_1_1core_1_1_not_equal.html#a0361f29f4ae1235bdf3f3304527e2d4b',1,'mlx::core::NotEqual::vjp()'],['../classmlx_1_1core_1_1_pad.html#ad8a7e547644f2717a24322968e971038',1,'mlx::core::Pad::vjp()'],['../classmlx_1_1core_1_1_partition.html#a7110772b6cd2d430a2b825cf5c952ca9',1,'mlx::core::Partition::vjp()'],['../classmlx_1_1core_1_1_power.html#a1453bb8307d6ff33134f1e00263bf082',1,'mlx::core::Power::vjp()'],['../classmlx_1_1core_1_1_quantized_matmul.html#acb975e272b4a88ab232ef7f7c3a2bf26',1,'mlx::core::QuantizedMatmul::vjp()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#ae08a4b7d28902d46f39e66beeb0e23ab',1,'mlx::core::GatherQMM::vjp()'],['../classmlx_1_1core_1_1_real.html#a29f6109339c5141a862ceae72c8b80fe',1,'mlx::core::Real::vjp()'],['../classmlx_1_1core_1_1_reshape.html#ab17294ecc6b5d4e89626fb48c7516365',1,'mlx::core::Reshape::vjp()'],['../classmlx_1_1core_1_1_reduce.html#a684883d2a96315f548ca769510e28e4e',1,'mlx::core::Reduce::vjp()'],['../classmlx_1_1core_1_1_round.html#af8f085e08b7fa8840c52a20b12ca35ce',1,'mlx::core::Round::vjp()'],['../classmlx_1_1core_1_1_scan.html#aaf13f72620b4b5d6a20e1228930e848e',1,'mlx::core::Scan::vjp()'],['../classmlx_1_1core_1_1_scatter.html#a0b51287fba789bb139ed61d40a0c636a',1,'mlx::core::Scatter::vjp()'],['../classmlx_1_1core_1_1_sigmoid.html#aac2f56a4c8362e36a28e232758ca52cf',1,'mlx::core::Sigmoid::vjp()'],['../classmlx_1_1core_1_1_sign.html#aa60ac52edd739fbdf388a997acd01bce',1,'mlx::core::Sign::vjp()'],['../classmlx_1_1core_1_1_sin.html#aedefe550ab4b0687858981bc0bcfbfa0',1,'mlx::core::Sin::vjp()'],['../classmlx_1_1core_1_1_sinh.html#a6b39fdd429bbb4de389e7c904fd561f0',1,'mlx::core::Sinh::vjp()'],['../classmlx_1_1core_1_1_slice.html#a291746a527ff991b66249fb2b54b685f',1,'mlx::core::Slice::vjp()'],['../classmlx_1_1core_1_1_slice_update.html#aedcdc60a0477997a96306c02b66d3f77',1,'mlx::core::SliceUpdate::vjp()'],['../classmlx_1_1core_1_1_softmax.html#abb68c311c45ee422a7c966accde9041b',1,'mlx::core::Softmax::vjp()'],['../classmlx_1_1core_1_1_sort.html#a3a8900dce53ee4eb7a1b83806e629358',1,'mlx::core::Sort::vjp()'],['../classmlx_1_1core_1_1_split.html#a7e8730f9cffa9872fff6f8d577031674',1,'mlx::core::Split::vjp()'],['../classmlx_1_1core_1_1_square.html#abcd9516da7f02dc906368c23b0bca263',1,'mlx::core::Square::vjp()'],['../classmlx_1_1core_1_1_sqrt.html#a08a21bd2c3a016f042d95aca294e68f3',1,'mlx::core::Sqrt::vjp()'],['../classmlx_1_1core_1_1_subtract.html#a3a3322be7c3bcaa0397cf099091df16b',1,'mlx::core::Subtract::vjp()'],['../classmlx_1_1core_1_1_tan.html#a4639836cff03d73c769387d6943e92d7',1,'mlx::core::Tan::vjp()'],['../classmlx_1_1core_1_1_tanh.html#afe7b05e2b36b99c3a1b66f0cd3544e95',1,'mlx::core::Tanh::vjp()'],['../classmlx_1_1core_1_1_transpose.html#ac7805aa29b34afdf8852554f1e759f80',1,'mlx::core::Transpose::vjp()'],['../namespacemlx_1_1core.html#a1b33e2c2e3471420490cf0be2de6de18',1,'mlx::core::vjp(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< array > &primals, const std::vector< array > &cotangents)'],['../namespacemlx_1_1core.html#a2065a11249c3f4356ffd69b7a8c487ff',1,'mlx::core::vjp(const std::function< array(const array &)> &fun, const array &primal, const array &cotangent)']]], ['vlen_16',['VLEN',['../structpocketfft_1_1detail_1_1_v_l_e_n.html',1,'pocketfft::detail']]], - ['vmap_17',['vmap',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a3f2dc71859847ca675ec4bfbe125035a',1,'mlx::core::distributed::AllReduce::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ad532d1d51f089dec3c84799b724ea031',1,'mlx::core::distributed::AllGather::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a5cfb66191b9e8b86649da77af55b0f93',1,'mlx::core::distributed::Send::vmap()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d',1,'mlx::core::fast::Custom::vmap()'],['../classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103',1,'mlx::core::Primitive::vmap()'],['../classmlx_1_1core_1_1_abs.html#a4c9c98f1d71432fd3752ad9a6a8e7f2f',1,'mlx::core::Abs::vmap()'],['../classmlx_1_1core_1_1_add.html#a0e557d4d896153f84a25532562e4c646',1,'mlx::core::Add::vmap()'],['../classmlx_1_1core_1_1_add_m_m.html#a73ce80b3a37ec2523943028d50ebce81',1,'mlx::core::AddMM::vmap()'],['../classmlx_1_1core_1_1_arc_cos.html#a7548e23ace6827674aa6d284d44ccf83',1,'mlx::core::ArcCos::vmap()'],['../classmlx_1_1core_1_1_arc_cosh.html#af8ff78e910a9e485a203e1d3347bd461',1,'mlx::core::ArcCosh::vmap()'],['../classmlx_1_1core_1_1_arc_sin.html#a7cabb1e5a2bda44944378822c671ec82',1,'mlx::core::ArcSin::vmap()'],['../classmlx_1_1core_1_1_arc_sinh.html#a9e72b9751939387c333b5d4e19a37f6d',1,'mlx::core::ArcSinh::vmap()'],['../classmlx_1_1core_1_1_arc_tan.html#a1fb921554544a56498bc54f82e4a0556',1,'mlx::core::ArcTan::vmap()'],['../classmlx_1_1core_1_1_arc_tan2.html#ae02cb9fbf25e93dc1d7fbc9e3fb28634',1,'mlx::core::ArcTan2::vmap()'],['../classmlx_1_1core_1_1_arc_tanh.html#a6ddcae68873559211cb91e7740dfc040',1,'mlx::core::ArcTanh::vmap()'],['../classmlx_1_1core_1_1_arg_partition.html#a441093795bcc31495ab5fbc9957b740a',1,'mlx::core::ArgPartition::vmap()'],['../classmlx_1_1core_1_1_arg_reduce.html#abfec42fa06ea15edaf393593751fb1ba',1,'mlx::core::ArgReduce::vmap()'],['../classmlx_1_1core_1_1_arg_sort.html#a3522bbbe4626a467394c1a8a9d7ac34e',1,'mlx::core::ArgSort::vmap()'],['../classmlx_1_1core_1_1_as_type.html#a7ebaf86fd6cad4a1ecfd7cde1ee0b0cc',1,'mlx::core::AsType::vmap()'],['../classmlx_1_1core_1_1_bitwise_binary.html#aa10be55f05bc1868bf4b375dc475f965',1,'mlx::core::BitwiseBinary::vmap()'],['../classmlx_1_1core_1_1_broadcast.html#aee4c71c2588ad01eb57e10f346cd666f',1,'mlx::core::Broadcast::vmap()'],['../classmlx_1_1core_1_1_ceil.html#ae86819990b43bdb0c2b3a25719b3a7a4',1,'mlx::core::Ceil::vmap()'],['../classmlx_1_1core_1_1_compiled.html#a732e7548f53977b4513bb7f30a04c30d',1,'mlx::core::Compiled::vmap()'],['../classmlx_1_1core_1_1_concatenate.html#a58c54dcf8e4b045d25edd3afc2caffc1',1,'mlx::core::Concatenate::vmap()'],['../classmlx_1_1core_1_1_conjugate.html#a2c7632c8ae0ca07777e23a0a79344e60',1,'mlx::core::Conjugate::vmap()'],['../classmlx_1_1core_1_1_copy.html#a669b10253c15b769d90058d1ad7d0e61',1,'mlx::core::Copy::vmap()'],['../classmlx_1_1core_1_1_cos.html#aec9460daf0131156734013d03b230cd6',1,'mlx::core::Cos::vmap()'],['../classmlx_1_1core_1_1_cosh.html#a1ab2386e7d96219b6e4a525f7dac0406',1,'mlx::core::Cosh::vmap()'],['../classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b',1,'mlx::core::CustomTransforms::vmap()'],['../classmlx_1_1core_1_1_divide.html#a83e7da52831165b3a026e97b63770242',1,'mlx::core::Divide::vmap()'],['../classmlx_1_1core_1_1_div_mod.html#ae709e0fdd83994bd1d156e0d0e6a7942',1,'mlx::core::DivMod::vmap()'],['../classmlx_1_1core_1_1_select.html#a84e80361c8cf02536b4b98098793550f',1,'mlx::core::Select::vmap()'],['../classmlx_1_1core_1_1_remainder.html#a79867e1099a2e3c2d3e87407b2ab6e3d',1,'mlx::core::Remainder::vmap()'],['../classmlx_1_1core_1_1_equal.html#aea9cc3c88924ac824d72c39c2e83b0ca',1,'mlx::core::Equal::vmap()'],['../classmlx_1_1core_1_1_erf.html#abe554f553356654a3e800ba368108aaa',1,'mlx::core::Erf::vmap()'],['../classmlx_1_1core_1_1_erf_inv.html#ad5d7634e8568af8cc4a54a558a48d0e9',1,'mlx::core::ErfInv::vmap()'],['../classmlx_1_1core_1_1_exp.html#a0fcd579fe148b4c3dbc72e514b81bb37',1,'mlx::core::Exp::vmap()'],['../classmlx_1_1core_1_1_expm1.html#aa4caa848b2ea97e71ee3dd33de039296',1,'mlx::core::Expm1::vmap()'],['../classmlx_1_1core_1_1_f_f_t.html#ac32d6cc9b67289124f855ea68a61ede1',1,'mlx::core::FFT::vmap()'],['../classmlx_1_1core_1_1_floor.html#aea4dc79a65774990e775ad49519a5d10',1,'mlx::core::Floor::vmap()'],['../classmlx_1_1core_1_1_full.html#afc57ab6bd9ebdbbf042af54a59785d95',1,'mlx::core::Full::vmap()'],['../classmlx_1_1core_1_1_gather.html#abab0c4c204e66489825ce80d2194a275',1,'mlx::core::Gather::vmap()'],['../classmlx_1_1core_1_1_greater.html#a6d8267411fc4951de781f9e8e6c53aa0',1,'mlx::core::Greater::vmap()'],['../classmlx_1_1core_1_1_greater_equal.html#ab0e1be93eb01b0ce7fa83e953f5e3e1d',1,'mlx::core::GreaterEqual::vmap()'],['../classmlx_1_1core_1_1_hadamard.html#a9f1a172e6246859e813002abe9b8f99c',1,'mlx::core::Hadamard::vmap()'],['../classmlx_1_1core_1_1_imag.html#ace9906672bd88df0573653883d58ecb3',1,'mlx::core::Imag::vmap()'],['../classmlx_1_1core_1_1_less.html#a5fee5956cf087d8405359121aa62ba7e',1,'mlx::core::Less::vmap()'],['../classmlx_1_1core_1_1_less_equal.html#a3d5df21db184f2b7620cda9da1684480',1,'mlx::core::LessEqual::vmap()'],['../classmlx_1_1core_1_1_log.html#a007ddbcf911093231f607a8b9ed5cd49',1,'mlx::core::Log::vmap()'],['../classmlx_1_1core_1_1_log1p.html#a7122576f95ce479926bbbbc690891f71',1,'mlx::core::Log1p::vmap()'],['../classmlx_1_1core_1_1_logical_not.html#a5308a271619ee74df561b0aaf525915d',1,'mlx::core::LogicalNot::vmap()'],['../classmlx_1_1core_1_1_logical_and.html#aacc5f6f53ffc327b7771485e3da2a4e5',1,'mlx::core::LogicalAnd::vmap()'],['../classmlx_1_1core_1_1_logical_or.html#a6e2e77e6aaf47872b2e96b151c32daf3',1,'mlx::core::LogicalOr::vmap()'],['../classmlx_1_1core_1_1_log_add_exp.html#a82190aa1421a9734b6e9480debffac78',1,'mlx::core::LogAddExp::vmap()'],['../classmlx_1_1core_1_1_matmul.html#a3a1c6e70bac300240760fe41a58340c2',1,'mlx::core::Matmul::vmap()'],['../classmlx_1_1core_1_1_maximum.html#ab664918e0d71cfec1318a9879e78c5d3',1,'mlx::core::Maximum::vmap()'],['../classmlx_1_1core_1_1_minimum.html#adab0f31acf68075a0be908d8eb882980',1,'mlx::core::Minimum::vmap()'],['../classmlx_1_1core_1_1_multiply.html#ae7e82c8fc8cbaf4e00c27eb54fac7dbf',1,'mlx::core::Multiply::vmap()'],['../classmlx_1_1core_1_1_negative.html#a1f8a6079e272f1a0599f88a1a8419cf0',1,'mlx::core::Negative::vmap()'],['../classmlx_1_1core_1_1_not_equal.html#ab8b57932f03c8eee664bf89adeaa43b5',1,'mlx::core::NotEqual::vmap()'],['../classmlx_1_1core_1_1_number_of_elements.html#a977d83eae845b8bd8c0b98b48cb1c6c2',1,'mlx::core::NumberOfElements::vmap()'],['../classmlx_1_1core_1_1_pad.html#a85658812a0f3275ba3eb74b7c75686cf',1,'mlx::core::Pad::vmap()'],['../classmlx_1_1core_1_1_partition.html#aa0cc55e4d4d2cb5d129d32832321df2c',1,'mlx::core::Partition::vmap()'],['../classmlx_1_1core_1_1_power.html#a5e22749592413a9adbdc877b03b87c8f',1,'mlx::core::Power::vmap()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a3434394140177b285f971c9ffe7e8763',1,'mlx::core::QuantizedMatmul::vmap()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a13ce5e138ebddb8780a034452f68892f',1,'mlx::core::GatherQMM::vmap()'],['../classmlx_1_1core_1_1_random_bits.html#a0dc12f053c6492f934bc18031412c415',1,'mlx::core::RandomBits::vmap()'],['../classmlx_1_1core_1_1_real.html#a07fbbefb6a1bc1ebd3985b24c36693b6',1,'mlx::core::Real::vmap()'],['../classmlx_1_1core_1_1_reshape.html#ae239dd3c6cab147e4af572dc58204f9d',1,'mlx::core::Reshape::vmap()'],['../classmlx_1_1core_1_1_reduce.html#abab1b5aa01ccad44f213f510c3596b38',1,'mlx::core::Reduce::vmap()'],['../classmlx_1_1core_1_1_round.html#a6fad8799a7982e1ccbe05be7cc38a7fd',1,'mlx::core::Round::vmap()'],['../classmlx_1_1core_1_1_scan.html#a297c7cc89c9bf9d186ebdebb634c7804',1,'mlx::core::Scan::vmap()'],['../classmlx_1_1core_1_1_scatter.html#a696c38b373a7a7c71bc112bd1117e322',1,'mlx::core::Scatter::vmap()'],['../classmlx_1_1core_1_1_sigmoid.html#a12712c23037e38192cbccd2d4b14cc85',1,'mlx::core::Sigmoid::vmap()'],['../classmlx_1_1core_1_1_sign.html#aa7296045907015b4e0ae8a93e5e6e295',1,'mlx::core::Sign::vmap()'],['../classmlx_1_1core_1_1_sin.html#a45533996f3d72d9dd97d4c61cd684fba',1,'mlx::core::Sin::vmap()'],['../classmlx_1_1core_1_1_sinh.html#ae171df22bc34c32e31b8135dc4caa788',1,'mlx::core::Sinh::vmap()'],['../classmlx_1_1core_1_1_slice.html#ae33583b0db22fcfeae34dfe1c0e3eaa2',1,'mlx::core::Slice::vmap()'],['../classmlx_1_1core_1_1_slice_update.html#adbf1c76de6ab2f986758530d351d6fa3',1,'mlx::core::SliceUpdate::vmap()'],['../classmlx_1_1core_1_1_softmax.html#ad22d3dcc71054d3dba529cf2dc981e19',1,'mlx::core::Softmax::vmap()'],['../classmlx_1_1core_1_1_sort.html#abfabb9e625cc0cb9335c7454ed27505c',1,'mlx::core::Sort::vmap()'],['../classmlx_1_1core_1_1_split.html#ab7c40e02a842e83bdb4698608472c7a6',1,'mlx::core::Split::vmap()'],['../classmlx_1_1core_1_1_square.html#a55bf43f878d4741c57a08d5fef472ea5',1,'mlx::core::Square::vmap()'],['../classmlx_1_1core_1_1_sqrt.html#a9d30e306ce08980c27d98c898577017e',1,'mlx::core::Sqrt::vmap()'],['../classmlx_1_1core_1_1_stop_gradient.html#aca680c8befef81da414c4375b11b16b0',1,'mlx::core::StopGradient::vmap()'],['../classmlx_1_1core_1_1_subtract.html#aa98f960e621a767c8a03624fd292f098',1,'mlx::core::Subtract::vmap()'],['../classmlx_1_1core_1_1_tan.html#ae2f67ca2adc83b10009cf28498bf58b7',1,'mlx::core::Tan::vmap()'],['../classmlx_1_1core_1_1_tanh.html#a32df3564c1ecb858c1ba9f855376762f',1,'mlx::core::Tanh::vmap()'],['../classmlx_1_1core_1_1_uniform.html#ad795037d5b1820e98f4268f166609926',1,'mlx::core::Uniform::vmap()'],['../classmlx_1_1core_1_1_view.html#a2230d3e5f434fb2b888de50b529ac121',1,'mlx::core::View::vmap()'],['../classmlx_1_1core_1_1_transpose.html#a5ef848b69def9a246665b67e6e3ffdfe',1,'mlx::core::Transpose::vmap()'],['../classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8',1,'mlx::core::SVD::vmap()'],['../classmlx_1_1core_1_1_inverse.html#a98419b9f0b8a6c9185fe012d523552c2',1,'mlx::core::Inverse::vmap()'],['../classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5',1,'mlx::core::Cholesky::vmap()'],['../namespacemlx_1_1core.html#ac3caec2fa65375ed4c3bf1206177b84c',1,'mlx::core::vmap(const std::function< array(const array &)> &fun, int in_axis=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a8481a3bb4c12c2b7dc6ba576c2be3d0d',1,'mlx::core::vmap(const std::function< array(const array &, const array &)> &fun, int in_axis_a=0, int in_axis_b=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a95a7757e8d18fced38acfc6a3e8d686a',1,'mlx::core::vmap(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< int > &in_axes={}, const std::vector< int > &out_axes={})']]], + ['vmap_17',['vmap',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a3f2dc71859847ca675ec4bfbe125035a',1,'mlx::core::distributed::AllReduce::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ad532d1d51f089dec3c84799b724ea031',1,'mlx::core::distributed::AllGather::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a5cfb66191b9e8b86649da77af55b0f93',1,'mlx::core::distributed::Send::vmap()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d',1,'mlx::core::fast::Custom::vmap()'],['../classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103',1,'mlx::core::Primitive::vmap()'],['../classmlx_1_1core_1_1_abs.html#a4c9c98f1d71432fd3752ad9a6a8e7f2f',1,'mlx::core::Abs::vmap()'],['../classmlx_1_1core_1_1_add.html#a0e557d4d896153f84a25532562e4c646',1,'mlx::core::Add::vmap()'],['../classmlx_1_1core_1_1_add_m_m.html#a73ce80b3a37ec2523943028d50ebce81',1,'mlx::core::AddMM::vmap()'],['../classmlx_1_1core_1_1_arc_cos.html#a7548e23ace6827674aa6d284d44ccf83',1,'mlx::core::ArcCos::vmap()'],['../classmlx_1_1core_1_1_arc_cosh.html#af8ff78e910a9e485a203e1d3347bd461',1,'mlx::core::ArcCosh::vmap()'],['../classmlx_1_1core_1_1_arc_sin.html#a7cabb1e5a2bda44944378822c671ec82',1,'mlx::core::ArcSin::vmap()'],['../classmlx_1_1core_1_1_arc_sinh.html#a9e72b9751939387c333b5d4e19a37f6d',1,'mlx::core::ArcSinh::vmap()'],['../classmlx_1_1core_1_1_arc_tan.html#a1fb921554544a56498bc54f82e4a0556',1,'mlx::core::ArcTan::vmap()'],['../classmlx_1_1core_1_1_arc_tan2.html#ae02cb9fbf25e93dc1d7fbc9e3fb28634',1,'mlx::core::ArcTan2::vmap()'],['../classmlx_1_1core_1_1_arc_tanh.html#a6ddcae68873559211cb91e7740dfc040',1,'mlx::core::ArcTanh::vmap()'],['../classmlx_1_1core_1_1_arg_partition.html#a441093795bcc31495ab5fbc9957b740a',1,'mlx::core::ArgPartition::vmap()'],['../classmlx_1_1core_1_1_arg_reduce.html#abfec42fa06ea15edaf393593751fb1ba',1,'mlx::core::ArgReduce::vmap()'],['../classmlx_1_1core_1_1_arg_sort.html#a3522bbbe4626a467394c1a8a9d7ac34e',1,'mlx::core::ArgSort::vmap()'],['../classmlx_1_1core_1_1_as_type.html#a7ebaf86fd6cad4a1ecfd7cde1ee0b0cc',1,'mlx::core::AsType::vmap()'],['../classmlx_1_1core_1_1_bitwise_binary.html#aa10be55f05bc1868bf4b375dc475f965',1,'mlx::core::BitwiseBinary::vmap()'],['../classmlx_1_1core_1_1_broadcast.html#aee4c71c2588ad01eb57e10f346cd666f',1,'mlx::core::Broadcast::vmap()'],['../classmlx_1_1core_1_1_ceil.html#ae86819990b43bdb0c2b3a25719b3a7a4',1,'mlx::core::Ceil::vmap()'],['../classmlx_1_1core_1_1_compiled.html#a732e7548f53977b4513bb7f30a04c30d',1,'mlx::core::Compiled::vmap()'],['../classmlx_1_1core_1_1_concatenate.html#a58c54dcf8e4b045d25edd3afc2caffc1',1,'mlx::core::Concatenate::vmap()'],['../classmlx_1_1core_1_1_conjugate.html#a2c7632c8ae0ca07777e23a0a79344e60',1,'mlx::core::Conjugate::vmap()'],['../classmlx_1_1core_1_1_copy.html#a669b10253c15b769d90058d1ad7d0e61',1,'mlx::core::Copy::vmap()'],['../classmlx_1_1core_1_1_cos.html#aec9460daf0131156734013d03b230cd6',1,'mlx::core::Cos::vmap()'],['../classmlx_1_1core_1_1_cosh.html#a1ab2386e7d96219b6e4a525f7dac0406',1,'mlx::core::Cosh::vmap()'],['../classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b',1,'mlx::core::CustomTransforms::vmap()'],['../classmlx_1_1core_1_1_divide.html#a83e7da52831165b3a026e97b63770242',1,'mlx::core::Divide::vmap()'],['../classmlx_1_1core_1_1_div_mod.html#ae709e0fdd83994bd1d156e0d0e6a7942',1,'mlx::core::DivMod::vmap()'],['../classmlx_1_1core_1_1_select.html#a84e80361c8cf02536b4b98098793550f',1,'mlx::core::Select::vmap()'],['../classmlx_1_1core_1_1_remainder.html#a79867e1099a2e3c2d3e87407b2ab6e3d',1,'mlx::core::Remainder::vmap()'],['../classmlx_1_1core_1_1_equal.html#aea9cc3c88924ac824d72c39c2e83b0ca',1,'mlx::core::Equal::vmap()'],['../classmlx_1_1core_1_1_erf.html#abe554f553356654a3e800ba368108aaa',1,'mlx::core::Erf::vmap()'],['../classmlx_1_1core_1_1_erf_inv.html#ad5d7634e8568af8cc4a54a558a48d0e9',1,'mlx::core::ErfInv::vmap()'],['../classmlx_1_1core_1_1_exp.html#a0fcd579fe148b4c3dbc72e514b81bb37',1,'mlx::core::Exp::vmap()'],['../classmlx_1_1core_1_1_expm1.html#aa4caa848b2ea97e71ee3dd33de039296',1,'mlx::core::Expm1::vmap()'],['../classmlx_1_1core_1_1_f_f_t.html#ac32d6cc9b67289124f855ea68a61ede1',1,'mlx::core::FFT::vmap()'],['../classmlx_1_1core_1_1_floor.html#aea4dc79a65774990e775ad49519a5d10',1,'mlx::core::Floor::vmap()'],['../classmlx_1_1core_1_1_full.html#afc57ab6bd9ebdbbf042af54a59785d95',1,'mlx::core::Full::vmap()'],['../classmlx_1_1core_1_1_gather.html#abab0c4c204e66489825ce80d2194a275',1,'mlx::core::Gather::vmap()'],['../classmlx_1_1core_1_1_greater.html#a6d8267411fc4951de781f9e8e6c53aa0',1,'mlx::core::Greater::vmap()'],['../classmlx_1_1core_1_1_greater_equal.html#ab0e1be93eb01b0ce7fa83e953f5e3e1d',1,'mlx::core::GreaterEqual::vmap()'],['../classmlx_1_1core_1_1_hadamard.html#a9f1a172e6246859e813002abe9b8f99c',1,'mlx::core::Hadamard::vmap()'],['../classmlx_1_1core_1_1_imag.html#ace9906672bd88df0573653883d58ecb3',1,'mlx::core::Imag::vmap()'],['../classmlx_1_1core_1_1_less.html#a5fee5956cf087d8405359121aa62ba7e',1,'mlx::core::Less::vmap()'],['../classmlx_1_1core_1_1_less_equal.html#a3d5df21db184f2b7620cda9da1684480',1,'mlx::core::LessEqual::vmap()'],['../classmlx_1_1core_1_1_log.html#a007ddbcf911093231f607a8b9ed5cd49',1,'mlx::core::Log::vmap()'],['../classmlx_1_1core_1_1_log1p.html#a7122576f95ce479926bbbbc690891f71',1,'mlx::core::Log1p::vmap()'],['../classmlx_1_1core_1_1_logical_not.html#a5308a271619ee74df561b0aaf525915d',1,'mlx::core::LogicalNot::vmap()'],['../classmlx_1_1core_1_1_logical_and.html#aacc5f6f53ffc327b7771485e3da2a4e5',1,'mlx::core::LogicalAnd::vmap()'],['../classmlx_1_1core_1_1_logical_or.html#a6e2e77e6aaf47872b2e96b151c32daf3',1,'mlx::core::LogicalOr::vmap()'],['../classmlx_1_1core_1_1_log_add_exp.html#a82190aa1421a9734b6e9480debffac78',1,'mlx::core::LogAddExp::vmap()'],['../classmlx_1_1core_1_1_matmul.html#a3a1c6e70bac300240760fe41a58340c2',1,'mlx::core::Matmul::vmap()'],['../classmlx_1_1core_1_1_maximum.html#ab664918e0d71cfec1318a9879e78c5d3',1,'mlx::core::Maximum::vmap()'],['../classmlx_1_1core_1_1_minimum.html#adab0f31acf68075a0be908d8eb882980',1,'mlx::core::Minimum::vmap()'],['../classmlx_1_1core_1_1_multiply.html#ae7e82c8fc8cbaf4e00c27eb54fac7dbf',1,'mlx::core::Multiply::vmap()'],['../classmlx_1_1core_1_1_negative.html#a1f8a6079e272f1a0599f88a1a8419cf0',1,'mlx::core::Negative::vmap()'],['../classmlx_1_1core_1_1_not_equal.html#ab8b57932f03c8eee664bf89adeaa43b5',1,'mlx::core::NotEqual::vmap()'],['../classmlx_1_1core_1_1_number_of_elements.html#a977d83eae845b8bd8c0b98b48cb1c6c2',1,'mlx::core::NumberOfElements::vmap()'],['../classmlx_1_1core_1_1_pad.html#a85658812a0f3275ba3eb74b7c75686cf',1,'mlx::core::Pad::vmap()'],['../classmlx_1_1core_1_1_partition.html#aa0cc55e4d4d2cb5d129d32832321df2c',1,'mlx::core::Partition::vmap()'],['../classmlx_1_1core_1_1_power.html#a5e22749592413a9adbdc877b03b87c8f',1,'mlx::core::Power::vmap()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a3434394140177b285f971c9ffe7e8763',1,'mlx::core::QuantizedMatmul::vmap()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a13ce5e138ebddb8780a034452f68892f',1,'mlx::core::GatherQMM::vmap()'],['../classmlx_1_1core_1_1_random_bits.html#a0dc12f053c6492f934bc18031412c415',1,'mlx::core::RandomBits::vmap()'],['../classmlx_1_1core_1_1_real.html#a07fbbefb6a1bc1ebd3985b24c36693b6',1,'mlx::core::Real::vmap()'],['../classmlx_1_1core_1_1_reshape.html#ae239dd3c6cab147e4af572dc58204f9d',1,'mlx::core::Reshape::vmap()'],['../classmlx_1_1core_1_1_reduce.html#abab1b5aa01ccad44f213f510c3596b38',1,'mlx::core::Reduce::vmap()'],['../classmlx_1_1core_1_1_round.html#a6fad8799a7982e1ccbe05be7cc38a7fd',1,'mlx::core::Round::vmap()'],['../classmlx_1_1core_1_1_scan.html#a297c7cc89c9bf9d186ebdebb634c7804',1,'mlx::core::Scan::vmap()'],['../classmlx_1_1core_1_1_scatter.html#a696c38b373a7a7c71bc112bd1117e322',1,'mlx::core::Scatter::vmap()'],['../classmlx_1_1core_1_1_sigmoid.html#a12712c23037e38192cbccd2d4b14cc85',1,'mlx::core::Sigmoid::vmap()'],['../classmlx_1_1core_1_1_sign.html#aa7296045907015b4e0ae8a93e5e6e295',1,'mlx::core::Sign::vmap()'],['../classmlx_1_1core_1_1_sin.html#a45533996f3d72d9dd97d4c61cd684fba',1,'mlx::core::Sin::vmap()'],['../classmlx_1_1core_1_1_sinh.html#ae171df22bc34c32e31b8135dc4caa788',1,'mlx::core::Sinh::vmap()'],['../classmlx_1_1core_1_1_slice.html#ae33583b0db22fcfeae34dfe1c0e3eaa2',1,'mlx::core::Slice::vmap()'],['../classmlx_1_1core_1_1_slice_update.html#adbf1c76de6ab2f986758530d351d6fa3',1,'mlx::core::SliceUpdate::vmap()'],['../classmlx_1_1core_1_1_softmax.html#ad22d3dcc71054d3dba529cf2dc981e19',1,'mlx::core::Softmax::vmap()'],['../classmlx_1_1core_1_1_sort.html#abfabb9e625cc0cb9335c7454ed27505c',1,'mlx::core::Sort::vmap()'],['../classmlx_1_1core_1_1_split.html#ab7c40e02a842e83bdb4698608472c7a6',1,'mlx::core::Split::vmap()'],['../classmlx_1_1core_1_1_square.html#a55bf43f878d4741c57a08d5fef472ea5',1,'mlx::core::Square::vmap()'],['../classmlx_1_1core_1_1_sqrt.html#a9d30e306ce08980c27d98c898577017e',1,'mlx::core::Sqrt::vmap()'],['../classmlx_1_1core_1_1_stop_gradient.html#aca680c8befef81da414c4375b11b16b0',1,'mlx::core::StopGradient::vmap()'],['../classmlx_1_1core_1_1_subtract.html#aa98f960e621a767c8a03624fd292f098',1,'mlx::core::Subtract::vmap()'],['../classmlx_1_1core_1_1_tan.html#ae2f67ca2adc83b10009cf28498bf58b7',1,'mlx::core::Tan::vmap()'],['../classmlx_1_1core_1_1_tanh.html#a32df3564c1ecb858c1ba9f855376762f',1,'mlx::core::Tanh::vmap()'],['../classmlx_1_1core_1_1_uniform.html#ad795037d5b1820e98f4268f166609926',1,'mlx::core::Uniform::vmap()'],['../classmlx_1_1core_1_1_view.html#a2230d3e5f434fb2b888de50b529ac121',1,'mlx::core::View::vmap()'],['../classmlx_1_1core_1_1_transpose.html#a5ef848b69def9a246665b67e6e3ffdfe',1,'mlx::core::Transpose::vmap()'],['../classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8',1,'mlx::core::SVD::vmap()'],['../classmlx_1_1core_1_1_inverse.html#a98419b9f0b8a6c9185fe012d523552c2',1,'mlx::core::Inverse::vmap()'],['../classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5',1,'mlx::core::Cholesky::vmap()'],['../classmlx_1_1core_1_1_eigh.html#ab2f2ea5326e2f6045f9b7250692c240f',1,'mlx::core::Eigh::vmap()'],['../namespacemlx_1_1core.html#ac3caec2fa65375ed4c3bf1206177b84c',1,'mlx::core::vmap(const std::function< array(const array &)> &fun, int in_axis=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a8481a3bb4c12c2b7dc6ba576c2be3d0d',1,'mlx::core::vmap(const std::function< array(const array &, const array &)> &fun, int in_axis_a=0, int in_axis_b=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a95a7757e8d18fced38acfc6a3e8d686a',1,'mlx::core::vmap(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< int > &in_axes={}, const std::vector< int > &out_axes={})']]], ['vmap_5freplace_18',['vmap_replace',['../namespacemlx_1_1core_1_1detail.html#a31a5582530faea230eb8acafc0f7e154',1,'mlx::core::detail']]], ['vmap_5ftrace_19',['vmap_trace',['../namespacemlx_1_1core_1_1detail.html#a5ba794afe1a557e0505887cfb481c515',1,'mlx::core::detail']]], ['vtype_20',['VTYPE',['../structpocketfft_1_1detail_1_1_v_t_y_p_e.html',1,'pocketfft::detail']]], diff --git a/docs/build/html/search/all_17.js b/docs/build/html/search/all_17.js index e31b2546e..40e854311 100644 --- a/docs/build/html/search/all_17.js +++ b/docs/build/html/search/all_17.js @@ -10,9 +10,9 @@ var searchData= ['where_7',['where',['../group__ops.html#ga8a2056f8c9bb30914c40bcf509386491',1,'mlx::core']]], ['write_8',['write',['../struct_read_writer.html#ac2ea71e41740ddc863890e3e8e6f09d0',1,'ReadWriter::write()'],['../classmlx_1_1core_1_1io_1_1_writer.html#ad9515b7f007338674de1e124cf77e125',1,'mlx::core::io::Writer::write()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#abca32838c9886f734d93430c34c07d7f',1,'mlx::core::io::FileWriter::write()'],['../struct_read_writer.html#a7a3d1396b0f83aa7506207bd6e7336bf',1,'ReadWriter::write() const'],['../struct_read_writer.html#ae1f0d3555b74998cc2d2288bce72a1f4',1,'ReadWriter::write() const']]], ['write_5fpadded_9',['write_padded',['../struct_read_writer.html#a95367307acace2aa88226cf8956d2d88',1,'ReadWriter::write_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#abaf2a6ad4c88bd9f65fe1db1f73a8d87',1,'ReadWriter::write_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#a420453a56e77d6b3891ed4b5f178af9c',1,'ReadWriter::write_padded(int length, const device float2 *w_k) const']]], - ['write_5fsafe_10',['write_safe',['../kernels_2scan_8h.html#ae86aef08e5ebc8790031eb51eefa754c',1,'scan.h']]], + ['write_5fsafe_10',['write_safe',['../scan_8h.html#ae86aef08e5ebc8790031eb51eefa754c',1,'scan.h']]], ['write_5fstrided_11',['write_strided',['../struct_read_writer.html#a77a4d7eac217305e22a3c25b3756ef67',1,'ReadWriter::write_strided(int stride, int overall_n)'],['../struct_read_writer.html#a12e7f43cd9de2d9990054184c0a32839',1,'ReadWriter::write_strided(int stride, int overall_n)'],['../struct_read_writer.html#a959ccaa08f2999c50cea063b01e492e4',1,'ReadWriter::write_strided(int stride, int overall_n)'],['../struct_read_writer.html#a5592b24dad5ad030a1e4769b0a278f35',1,'ReadWriter::write_strided(int stride, int overall_n)']]], - ['write_5funsafe_12',['write_unsafe',['../kernels_2scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]], + ['write_5funsafe_12',['write_unsafe',['../scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]], ['writer_13',['Writer',['../classmlx_1_1core_1_1io_1_1_writer.html',1,'mlx::core::io']]], ['ws_14',['wS',['../struct_m_l_x_conv_params.html#aba2074189644b1b59567d018409277a9',1,'MLXConvParams']]], ['wt_5fstrides_15',['wt_strides',['../struct_m_l_x_conv_params.html#a887fee0da1494d038526fb0f59faff45',1,'MLXConvParams']]] diff --git a/docs/build/html/search/all_1a.js b/docs/build/html/search/all_1a.js index 2a0ab51b3..e588618fc 100644 --- a/docs/build/html/search/all_1a.js +++ b/docs/build/html/search/all_1a.js @@ -7,17 +7,20 @@ var searchData= ['_7econcurrentcontext_4',['~ConcurrentContext',['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1',1,'mlx::core::metal::CommandEncoder::ConcurrentContext']]], ['_7edata_5',['~Data',['../structmlx_1_1core_1_1array_1_1_data.html#a1cf69d9709206578c4e87e9c1daad5e1',1,'mlx::core::array::Data']]], ['_7edevice_6',['~Device',['../classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e',1,'mlx::core::metal::Device']]], - ['_7efilewriter_7',['~FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html#ac325f51cd22050b6359056290e8ef42c',1,'mlx::core::io::FileWriter']]], - ['_7eintracing_8',['~InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a83d57d7fa63bcb0ff72080191d0f177a',1,'mlx::core::detail::InTracing']]], - ['_7eparallelfilereader_9',['~ParallelFileReader',['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ae9e3fc1cc3e827dae4d3d107f6780817',1,'mlx::core::io::ParallelFileReader']]], - ['_7eprimitive_10',['~Primitive',['../classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777',1,'mlx::core::Primitive']]], - ['_7ereader_11',['~Reader',['../classmlx_1_1core_1_1io_1_1_reader.html#a81cd4747d81311c87dc6753f2d0d8b16',1,'mlx::core::io::Reader']]], - ['_7eretaingraph_12',['~RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a6bd6dc2e1caf2f764f39856a72ff6cbc',1,'mlx::core::detail::RetainGraph']]], - ['_7escheduler_13',['~Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a6626c4a743a2b3004fc14042bc8b0edf',1,'mlx::core::scheduler::Scheduler']]], - ['_7estreamcontext_14',['~StreamContext',['../structmlx_1_1core_1_1_stream_context.html#ac5be1c576d22b3d0b0a6fcc7e6abe659',1,'mlx::core::StreamContext']]], - ['_7estreamthread_15',['~StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a71de50591388b6e2cc6c57827e1a1ad4',1,'mlx::core::scheduler::StreamThread']]], - ['_7ethread_5fpool_16',['~thread_pool',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a68f71e79fa93379fcc5819e533b45472',1,'pocketfft::detail::threading::thread_pool']]], - ['_7ethreadpool_17',['~ThreadPool',['../class_thread_pool.html#a44d3d2ab618970605e684efc216655eb',1,'ThreadPool']]], - ['_7eunaryprimitive_18',['~UnaryPrimitive',['../classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de',1,'mlx::core::UnaryPrimitive']]], - ['_7ewriter_19',['~Writer',['../classmlx_1_1core_1_1io_1_1_writer.html#a0e42f93a64118e9f5ede54ffe1bda045',1,'mlx::core::io::Writer']]] + ['_7edevicestream_7',['~DeviceStream',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e',1,'mlx::core::metal::DeviceStream']]], + ['_7efence_8',['~Fence',['../structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2',1,'mlx::core::metal::Fence']]], + ['_7efilewriter_9',['~FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html#ac325f51cd22050b6359056290e8ef42c',1,'mlx::core::io::FileWriter']]], + ['_7eintracing_10',['~InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a83d57d7fa63bcb0ff72080191d0f177a',1,'mlx::core::detail::InTracing']]], + ['_7eparallelfilereader_11',['~ParallelFileReader',['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ae9e3fc1cc3e827dae4d3d107f6780817',1,'mlx::core::io::ParallelFileReader']]], + ['_7eprimitive_12',['~Primitive',['../classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777',1,'mlx::core::Primitive']]], + ['_7ereader_13',['~Reader',['../classmlx_1_1core_1_1io_1_1_reader.html#a81cd4747d81311c87dc6753f2d0d8b16',1,'mlx::core::io::Reader']]], + ['_7eresidencyset_14',['~ResidencySet',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#a998f07776f489bea9a7dd3c290ea7a79',1,'mlx::core::metal::ResidencySet']]], + ['_7eretaingraph_15',['~RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a6bd6dc2e1caf2f764f39856a72ff6cbc',1,'mlx::core::detail::RetainGraph']]], + ['_7escheduler_16',['~Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a6626c4a743a2b3004fc14042bc8b0edf',1,'mlx::core::scheduler::Scheduler']]], + ['_7estreamcontext_17',['~StreamContext',['../structmlx_1_1core_1_1_stream_context.html#ac5be1c576d22b3d0b0a6fcc7e6abe659',1,'mlx::core::StreamContext']]], + ['_7estreamthread_18',['~StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a71de50591388b6e2cc6c57827e1a1ad4',1,'mlx::core::scheduler::StreamThread']]], + ['_7ethread_5fpool_19',['~thread_pool',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a68f71e79fa93379fcc5819e533b45472',1,'pocketfft::detail::threading::thread_pool']]], + ['_7ethreadpool_20',['~ThreadPool',['../class_thread_pool.html#a44d3d2ab618970605e684efc216655eb',1,'ThreadPool']]], + ['_7eunaryprimitive_21',['~UnaryPrimitive',['../classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de',1,'mlx::core::UnaryPrimitive']]], + ['_7ewriter_22',['~Writer',['../classmlx_1_1core_1_1io_1_1_writer.html#a0e42f93a64118e9f5ede54ffe1bda045',1,'mlx::core::io::Writer']]] ]; diff --git a/docs/build/html/search/all_2.js b/docs/build/html/search/all_2.js index 48f5ff7ab..3939418f0 100644 --- a/docs/build/html/search/all_2.js +++ b/docs/build/html/search/all_2.js @@ -89,16 +89,17 @@ var searchData= ['broadcast_5fto_86',['broadcast_to',['../group__ops.html#gad256e86cc1a6e6b3832e392baa90318d',1,'mlx::core']]], ['brows_87',['BROWS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ac070c6bd5be85b1ae805e18890db4fd4',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::BROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a10591ea957605a9c662f93d59ff3410d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::BROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ae9b86b05b23153ea1abaeead456c491c',1,'mlx::steel::Conv2DWeightBlockLoader::BROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a343984fb74ec579a4404278dbbc7e7b5',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::BROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acc8140aae84694f62e6324dbb6a614a4',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::BROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aba1e1c8012e4e50f0e9bcfb9486c1781',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::BROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a015a0c56de74a0c4d51953a7e94fbba8',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::BROWS']]], ['bs_5foffset_88',['Bs_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca',1,'mlx::steel::BlockMMA']]], - ['bs_5fqmm_5fn_89',['bs_qmm_n',['../quantized_8h.html#acfc43edcf0c742ddc090d22cb7229284',1,'quantized.h']]], - ['bs_5fqmm_5ft_90',['bs_qmm_t',['../quantized_8h.html#a3acc2ace766cb855f13da2d1834e7dc7',1,'quantized.h']]], - ['bs_5fqmv_91',['bs_qmv',['../quantized_8h.html#a03ba4a4a5fe9955319b0aa477d2d7d98',1,'quantized.h']]], - ['bs_5fqmv_5ffast_92',['bs_qmv_fast',['../quantized_8h.html#a6f92bb9f3d29d707bfc680bebe1c80f7',1,'quantized.h']]], - ['bs_5fqvm_93',['bs_qvm',['../quantized_8h.html#a3af1c89416632c9275b8218a33cb8a04',1,'quantized.h']]], + ['bs_5fqmm_5fn_89',['bs_qmm_n',['../quantized_8h.html#a1a66b061c46383952a0f067c3848971f',1,'quantized.h']]], + ['bs_5fqmm_5ft_90',['bs_qmm_t',['../quantized_8h.html#ab1ae143eba2afceb8df63f38b26f9a84',1,'quantized.h']]], + ['bs_5fqmv_91',['bs_qmv',['../quantized_8h.html#acf4c7fc77821a83b31aedfb48443d3ed',1,'quantized.h']]], + ['bs_5fqmv_5ffast_92',['bs_qmv_fast',['../quantized_8h.html#a530b720e123e59d73ea89a0a2d0946b7',1,'quantized.h']]], + ['bs_5fqvm_93',['bs_qvm',['../quantized_8h.html#a6d6e3c31e44f232e58ae9d605e1f4494',1,'quantized.h']]], ['bsimd_94',['Bsimd',['../structmlx_1_1steel_1_1_block_m_m_a.html#a3de506004b428d3487bae05ad9e757e6',1,'mlx::steel::BlockMMA']]], ['buf_95',['buf',['../struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5',1,'ReadWriter::buf'],['../backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697',1,'buf: allocator.h']]], ['buffer_96',['Buffer',['../classmlx_1_1core_1_1allocator_1_1_buffer.html',1,'mlx::core::allocator::Buffer'],['../classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300',1,'mlx::core::allocator::Buffer::Buffer()']]], - ['buffer_97',['buffer',['../structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad',1,'mlx::core::array::Data::buffer'],['../classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08',1,'mlx::core::array::buffer()'],['../classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd',1,'mlx::core::array::buffer() const']]], - ['buffer_5fsize_98',['buffer_size',['../classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd',1,'mlx::core::array']]], - ['buffers_99',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]], - ['build_5flib_5fname_100',['build_lib_name',['../namespacemlx_1_1core.html#a3ef23f334cb9f68a2c50524bc67c913b',1,'mlx::core']]] + ['buffer_97',['buffer',['../structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad',1,'mlx::core::array::Data::buffer'],['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb',1,'mlx::core::metal::DeviceStream::buffer'],['../classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08',1,'mlx::core::array::buffer()'],['../classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd',1,'mlx::core::array::buffer() const']]], + ['buffer_5fops_98',['buffer_ops',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782',1,'mlx::core::metal::DeviceStream']]], + ['buffer_5fsize_99',['buffer_size',['../classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd',1,'mlx::core::array']]], + ['buffers_100',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]], + ['build_5flib_5fname_101',['build_lib_name',['../namespacemlx_1_1core.html#a3ef23f334cb9f68a2c50524bc67c913b',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/all_3.js b/docs/build/html/search/all_3.js index bcf450987..8bec8b413 100644 --- a/docs/build/html/search/all_3.js +++ b/docs/build/html/search/all_3.js @@ -74,7 +74,7 @@ var searchData= ['conjugate_71',['Conjugate',['../struct_conjugate.html',1,'Conjugate'],['../classmlx_1_1core_1_1_conjugate.html',1,'mlx::core::Conjugate'],['../structmlx_1_1core_1_1detail_1_1_conjugate.html',1,'mlx::core::detail::Conjugate'],['../classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87',1,'mlx::core::Conjugate::Conjugate()']]], ['conjugate_72',['conjugate',['../group__ops.html#ga5b596906bf8cdc8d97ed6ddc9aeb4c23',1,'mlx::core']]], ['contiguous_73',['contiguous',['../structmlx_1_1core_1_1array_1_1_flags.html#afd0ab11e7a486a2a8e50ee84b971ac8a',1,'mlx::core::array::Flags']]], - ['contiguous_5fscan_74',['contiguous_scan',['../kernels_2scan_8h.html#a1f9c197dc09641f3fbb2e886c85b0675',1,'scan.h']]], + ['contiguous_5fscan_74',['contiguous_scan',['../scan_8h.html#a60d279b9add7d56639bb209408f09d79',1,'scan.h']]], ['contiguousallreduce_75',['ContiguousAllReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ae4e34c7154eb8dc47aa8503209730424',1,'mlx::core']]], ['contiguousiterator_76',['ContiguousIterator',['../structmlx_1_1core_1_1_contiguous_iterator.html',1,'mlx::core::ContiguousIterator< StrideT >'],['../structmlx_1_1core_1_1_contiguous_iterator.html#a68794af4a442d3d8ac4647817af8e1f6',1,'mlx::core::ContiguousIterator::ContiguousIterator()'],['../structmlx_1_1core_1_1_contiguous_iterator.html#a6cb378408b6f546eeb6ade1a4faafe3c',1,'mlx::core::ContiguousIterator::ContiguousIterator(const array &a)'],['../structmlx_1_1core_1_1_contiguous_iterator.html#a16bdacb53f65b7284068cd49d4cba292',1,'mlx::core::ContiguousIterator::ContiguousIterator(const std::vector< int > &shape, const std::vector< StrideT > &strides, int dims)']]], ['contiguousreduce_77',['ContiguousReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ad2547f25dffe8d8936dbec25601cfc84',1,'mlx::core']]], diff --git a/docs/build/html/search/all_4.js b/docs/build/html/search/all_4.js index 1343b9a48..17515ff9f 100644 --- a/docs/build/html/search/all_4.js +++ b/docs/build/html/search/all_4.js @@ -19,43 +19,46 @@ var searchData= ['define_5fgrads_16',['DEFINE_GRADS',['../primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6',1,'primitives.h']]], ['define_5finput_5foutput_5fshape_17',['DEFINE_INPUT_OUTPUT_SHAPE',['../primitives_8h.html#a649a06267b75e007224ea4ddefedb999',1,'primitives.h']]], ['define_5fprint_18',['DEFINE_PRINT',['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a8af1e90d4aa56f31ec40ad152ebd2421',1,'mlx::core::distributed::AllGather::DEFINE_PRINT()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a31bf76e24cf3836cf1fd26da30712e31',1,'mlx::core::distributed::Send::DEFINE_PRINT()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a7a0cad13da7cf8e565934318a2bc34f1',1,'mlx::core::distributed::Recv::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae6eea81b5e3789c2f6f376cc07f0a47c',1,'mlx::core::fast::RMSNorm::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a9895733eab845e11484d86cf6ecedced',1,'mlx::core::fast::RMSNormVJP::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a467fcf02b3ddf1d8b6d476b244ae3568',1,'mlx::core::fast::LayerNorm::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a5ab3eb5402c7e8060916056eb2b7887f',1,'mlx::core::fast::LayerNormVJP::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a2b06fe64fa8feca65140632087065e16',1,'mlx::core::fast::RoPE::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a6cc2092fa5b8e7585921b8e0f3ec3db7',1,'mlx::core::fast::ScaledDotProductAttention::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a4b8f1b1f633002c8ca6fa8f0ef4dd587',1,'mlx::core::fast::AffineQuantize::DEFINE_PRINT()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a116ecf31c8672c94e5ea06c1d43e9534',1,'mlx::core::fast::CustomKernel::DEFINE_PRINT()'],['../primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592',1,'DEFINE_PRINT: primitives.h']]], - ['define_5fsimd_5freduce_19',['DEFINE_SIMD_REDUCE',['../backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05',1,'ops.h']]], - ['define_5fvmap_20',['DEFINE_VMAP',['../primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd',1,'primitives.h']]], - ['defines_2eh_21',['defines.h',['../defines_8h.html',1,'(Global Namespace)'],['../steel_2defines_8h.html',1,'(Global Namespace)']]], - ['degrees_22',['degrees',['../group__ops.html#ga3a70569b50e1083c5ded199d73fb960c',1,'mlx::core']]], - ['deleter_5ft_23',['deleter_t',['../namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8',1,'mlx::core']]], - ['denorm_5fmin_24',['denorm_min',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['depends_25',['Depends',['../classmlx_1_1core_1_1_depends.html',1,'mlx::core::Depends'],['../classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62',1,'mlx::core::Depends::Depends()']]], - ['depends_26',['depends',['../group__ops.html#gac4a51a68fbe1725436b026d2fbb95759',1,'mlx::core']]], - ['dequantize_27',['dequantize',['../quantized_8h.html#aecff265b63566d0d5689cfc4e5b037d2',1,'dequantize(): quantized.h'],['../group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077',1,'mlx::core::dequantize()']]], - ['detach_28',['detach',['../classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2',1,'mlx::core::array']]], - ['device_29',['Device',['../structmlx_1_1core_1_1_device.html',1,'mlx::core::Device'],['../classmlx_1_1core_1_1metal_1_1_device.html',1,'mlx::core::metal::Device'],['../classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6',1,'mlx::core::metal::Device::Device()'],['../classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06',1,'mlx::core::metal::Device::Device(const Device &)=delete'],['../structmlx_1_1core_1_1_device.html#a481ccfb94d689994396bd353e966b489',1,'mlx::core::Device::Device()']]], - ['device_30',['device',['../structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb',1,'mlx::core::Stream::device'],['../classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261',1,'mlx::core::Primitive::device()'],['../namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57',1,'mlx::core::metal::device()']]], - ['device_2eh_31',['device.h',['../backend_2metal_2device_8h.html',1,'(Global Namespace)'],['../device_8h.html',1,'(Global Namespace)']]], - ['device_5finfo_32',['device_info',['../namespacemlx_1_1core_1_1metal.html#a6ad19c44efabb7423f973407926ead61',1,'mlx::core::metal']]], - ['devicetype_33',['DeviceType',['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdb',1,'mlx::core::Device']]], - ['diag_34',['diag',['../group__ops.html#ga11af511875640e1fa88e0ca87e199344',1,'mlx::core']]], - ['diagonal_35',['diagonal',['../group__ops.html#ga9236b085a88ead3128ed8079d009cac6',1,'mlx::core']]], - ['difference_5ftype_36',['difference_type',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5',1,'mlx::core::array::ArrayIterator']]], - ['digits_37',['digits',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['digits10_38',['digits10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['disable_5fcompile_39',['disable_compile',['../namespacemlx_1_1core.html#a5f5fea955057bb3842b271b037909e66',1,'mlx::core']]], - ['disabled_40',['disabled',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4a075ae3d2fc31640504f814f60e5ef713',1,'mlx::core']]], - ['dispatchthreadgroups_41',['dispatchThreadgroups',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e',1,'mlx::core::metal::CommandEncoder']]], - ['dispatchthreads_42',['dispatchThreads',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810',1,'mlx::core::metal::CommandEncoder']]], - ['distprimitive_43',['DistPrimitive',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html',1,'mlx::core::distributed::DistPrimitive'],['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a8c54166951522c2a52ef39fce8c87f8f',1,'mlx::core::distributed::DistPrimitive::DistPrimitive()']]], - ['distributed_2eh_44',['distributed.h',['../distributed_8h.html',1,'']]], - ['distributed_5fimpl_2eh_45',['distributed_impl.h',['../distributed__impl_8h.html',1,'']]], - ['divide_46',['Divide',['../struct_divide.html',1,'Divide'],['../structmlx_1_1core_1_1detail_1_1_divide.html',1,'mlx::core::detail::Divide'],['../classmlx_1_1core_1_1_divide.html',1,'mlx::core::Divide'],['../classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb',1,'mlx::core::Divide::Divide()']]], - ['divide_47',['divide',['../namespacemetal.html#a2aea493fc1a874970b77ed0031e965df',1,'metal::divide()'],['../namespacemetal_1_1fast.html#ae70bc2185e4649369cf7b15f5e1d48be',1,'metal::fast::divide()'],['../namespacemetal_1_1precise.html#aec0982cdb96a08b61f51129150d82e9d',1,'metal::precise::divide()'],['../group__ops.html#ga77472dd06cfa7a30a42e4fd927bd859f',1,'mlx::core::divide()']]], - ['divmod_48',['DivMod',['../struct_div_mod.html',1,'DivMod'],['../classmlx_1_1core_1_1_div_mod.html',1,'mlx::core::DivMod'],['../classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826',1,'mlx::core::DivMod::DivMod()']]], - ['divmod_49',['divmod',['../group__ops.html#gaa30ebc0a8376dbc3f7e46a47052b5894',1,'mlx::core']]], - ['do_5faxpby_50',['do_axpby',['../steel__gemm__fused_8h.html#a703f06c849c89c37af7b1d27b0804a29',1,'steel_gemm_fused.h']]], - ['do_5fgather_51',['do_gather',['../steel__gemm__fused_8h.html#a60efac3ac3b7cd64d096bbae38a3ac69',1,'steel_gemm_fused.h']]], - ['do_5fread_52',['do_read',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a13eb86acf6abe288c19645935a47d2ad',1,'mlx::steel::Conv2DWeightBlockLoader::do_read'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a640155880483e1042ec5f647b9adaac6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::do_read']]], - ['dst_53',['dst',['../struct_quantized_block_loader.html#a9857214690fe6abad0e19d1045152f83',1,'QuantizedBlockLoader::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ae048eb79f8b8d98f0fe8805c30fbb09f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a8598bf23a2bce6af13c876cbfa76449f',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::dst'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#aea6494838175225d02cbc7768a646ec7',1,'mlx::steel::Conv2DWeightBlockLoader::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a59a4fffc1dc2f3fadfb3fdd1b886da70',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::dst'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a24e20e4c1dd1ebf9534bfa2b3e050ed3',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aa84c4ad43a5defb83ba1a5f49a7adb2a',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::dst'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a8474daf268013e138a84fc1c4bff7352',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::dst'],['../structmlx_1_1steel_1_1_block_loader.html#af34c184a19846e4b40ba54b2946589ec',1,'mlx::steel::BlockLoader::dst'],['../namespacepocketfft_1_1detail.html#add0f231fc8a1ce01b90a90faeebcb4eb',1,'pocketfft::detail::dst()']]], - ['dst_5fld_54',['dst_ld',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a91192d512e7a18c2d16a139065000959',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a9e59da7e4436e61b2d3c3f982355910b',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a0ff5a6d503e0bbac4634030a75ab818d',1,'mlx::steel::Conv2DWeightBlockLoader::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ae71570942c7b0ad8e67c62662b336c4a',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ac18eeebea26cc6da434ead6eb4397350',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a07c85eab8cbf7b02c60df29cf32031ef',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aae121ca6016fc6c7255027b3641f3a09',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::dst_ld']]], - ['dtype_55',['Dtype',['../structmlx_1_1core_1_1_dtype.html',1,'mlx::core::Dtype'],['../structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1',1,'mlx::core::Dtype::Dtype()']]], - ['dtype_56',['dtype',['../classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd',1,'mlx::core::array']]], - ['dtype_2eh_57',['dtype.h',['../dtype_8h.html',1,'']]] + ['define_5fsimd_5fexclusive_5fscan_19',['DEFINE_SIMD_EXCLUSIVE_SCAN',['../scan_8h.html#a185f66aac8c5317587e6abd43f3013fc',1,'scan.h']]], + ['define_5fsimd_5freduce_20',['DEFINE_SIMD_REDUCE',['../backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05',1,'ops.h']]], + ['define_5fsimd_5fscan_21',['DEFINE_SIMD_SCAN',['../scan_8h.html#a0d8d6a9b0f3a1263629380bda8eca7bc',1,'scan.h']]], + ['define_5fvmap_22',['DEFINE_VMAP',['../primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd',1,'primitives.h']]], + ['defines_2eh_23',['defines.h',['../defines_8h.html',1,'(Global Namespace)'],['../steel_2defines_8h.html',1,'(Global Namespace)']]], + ['degrees_24',['degrees',['../group__ops.html#ga3a70569b50e1083c5ded199d73fb960c',1,'mlx::core']]], + ['deleter_5ft_25',['deleter_t',['../namespacemlx_1_1core.html#a1e6cec03ebd80fd2d6b12b288367bfa8',1,'mlx::core']]], + ['denorm_5fmin_26',['denorm_min',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a6a9dbcba4dd79cad50876dda506b9eed',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['depends_27',['Depends',['../classmlx_1_1core_1_1_depends.html',1,'mlx::core::Depends'],['../classmlx_1_1core_1_1_depends.html#a4ccb792c99f5d8d133d3fac29f7d3f62',1,'mlx::core::Depends::Depends()']]], + ['depends_28',['depends',['../group__ops.html#gac4a51a68fbe1725436b026d2fbb95759',1,'mlx::core']]], + ['dequantize_29',['dequantize',['../quantized_8h.html#aecff265b63566d0d5689cfc4e5b037d2',1,'dequantize(): quantized.h'],['../group__ops.html#gabff758a5c1ce32ad7e8b78aba0164077',1,'mlx::core::dequantize()']]], + ['detach_30',['detach',['../classmlx_1_1core_1_1array.html#a84948c29df8c957904919c8602692bd2',1,'mlx::core::array']]], + ['device_31',['Device',['../structmlx_1_1core_1_1_device.html',1,'mlx::core::Device'],['../classmlx_1_1core_1_1metal_1_1_device.html',1,'mlx::core::metal::Device'],['../classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6',1,'mlx::core::metal::Device::Device()'],['../classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06',1,'mlx::core::metal::Device::Device(const Device &)=delete'],['../structmlx_1_1core_1_1_device.html#a481ccfb94d689994396bd353e966b489',1,'mlx::core::Device::Device()']]], + ['device_32',['device',['../structmlx_1_1core_1_1_stream.html#a406b1b0162287a4162fab1f70e2ff3bb',1,'mlx::core::Stream::device'],['../classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261',1,'mlx::core::Primitive::device()'],['../namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57',1,'mlx::core::metal::device()']]], + ['device_2eh_33',['device.h',['../backend_2metal_2device_8h.html',1,'(Global Namespace)'],['../device_8h.html',1,'(Global Namespace)']]], + ['device_5finfo_34',['device_info',['../namespacemlx_1_1core_1_1metal.html#a6ad19c44efabb7423f973407926ead61',1,'mlx::core::metal']]], + ['devicestream_35',['DeviceStream',['../structmlx_1_1core_1_1metal_1_1_device_stream.html',1,'mlx::core::metal::DeviceStream'],['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7',1,'mlx::core::metal::DeviceStream::DeviceStream()']]], + ['devicetype_36',['DeviceType',['../structmlx_1_1core_1_1_device.html#ac45b3de9b3458d8f31005136cde20fdb',1,'mlx::core::Device']]], + ['diag_37',['diag',['../group__ops.html#ga11af511875640e1fa88e0ca87e199344',1,'mlx::core']]], + ['diagonal_38',['diagonal',['../group__ops.html#ga9236b085a88ead3128ed8079d009cac6',1,'mlx::core']]], + ['difference_5ftype_39',['difference_type',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#adcee44c77980fc2370a2c31e203aead5',1,'mlx::core::array::ArrayIterator']]], + ['digits_40',['digits',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#af6a681edff230c8d734a1feefb8d1879',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['digits10_41',['digits10',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a0f48dd0c8a2d2dfa825067fb212b2e6b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['disable_5fcompile_42',['disable_compile',['../namespacemlx_1_1core.html#a5f5fea955057bb3842b271b037909e66',1,'mlx::core']]], + ['disabled_43',['disabled',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4a075ae3d2fc31640504f814f60e5ef713',1,'mlx::core']]], + ['dispatchthreadgroups_44',['dispatchThreadgroups',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e',1,'mlx::core::metal::CommandEncoder']]], + ['dispatchthreads_45',['dispatchThreads',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810',1,'mlx::core::metal::CommandEncoder']]], + ['distprimitive_46',['DistPrimitive',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html',1,'mlx::core::distributed::DistPrimitive'],['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a8c54166951522c2a52ef39fce8c87f8f',1,'mlx::core::distributed::DistPrimitive::DistPrimitive()']]], + ['distributed_2eh_47',['distributed.h',['../distributed_8h.html',1,'']]], + ['distributed_5fimpl_2eh_48',['distributed_impl.h',['../distributed__impl_8h.html',1,'']]], + ['divide_49',['Divide',['../struct_divide.html',1,'Divide'],['../structmlx_1_1core_1_1detail_1_1_divide.html',1,'mlx::core::detail::Divide'],['../classmlx_1_1core_1_1_divide.html',1,'mlx::core::Divide'],['../classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb',1,'mlx::core::Divide::Divide()']]], + ['divide_50',['divide',['../namespacemetal.html#a2aea493fc1a874970b77ed0031e965df',1,'metal::divide()'],['../namespacemetal_1_1fast.html#ae70bc2185e4649369cf7b15f5e1d48be',1,'metal::fast::divide()'],['../namespacemetal_1_1precise.html#aec0982cdb96a08b61f51129150d82e9d',1,'metal::precise::divide()'],['../group__ops.html#ga77472dd06cfa7a30a42e4fd927bd859f',1,'mlx::core::divide()']]], + ['divmod_51',['DivMod',['../struct_div_mod.html',1,'DivMod'],['../classmlx_1_1core_1_1_div_mod.html',1,'mlx::core::DivMod'],['../classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826',1,'mlx::core::DivMod::DivMod()']]], + ['divmod_52',['divmod',['../group__ops.html#gaa30ebc0a8376dbc3f7e46a47052b5894',1,'mlx::core']]], + ['do_5faxpby_53',['do_axpby',['../steel__gemm__fused_8h.html#a703f06c849c89c37af7b1d27b0804a29',1,'steel_gemm_fused.h']]], + ['do_5fgather_54',['do_gather',['../steel__gemm__fused_8h.html#a60efac3ac3b7cd64d096bbae38a3ac69',1,'steel_gemm_fused.h']]], + ['do_5fread_55',['do_read',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a13eb86acf6abe288c19645935a47d2ad',1,'mlx::steel::Conv2DWeightBlockLoader::do_read'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a640155880483e1042ec5f647b9adaac6',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::do_read']]], + ['dst_56',['dst',['../struct_quantized_block_loader.html#a9857214690fe6abad0e19d1045152f83',1,'QuantizedBlockLoader::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#ae048eb79f8b8d98f0fe8805c30fbb09f',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a8598bf23a2bce6af13c876cbfa76449f',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::dst'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#aea6494838175225d02cbc7768a646ec7',1,'mlx::steel::Conv2DWeightBlockLoader::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a59a4fffc1dc2f3fadfb3fdd1b886da70',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::dst'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a24e20e4c1dd1ebf9534bfa2b3e050ed3',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::dst'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#aa84c4ad43a5defb83ba1a5f49a7adb2a',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::dst'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a8474daf268013e138a84fc1c4bff7352',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::dst'],['../structmlx_1_1steel_1_1_block_loader.html#af34c184a19846e4b40ba54b2946589ec',1,'mlx::steel::BlockLoader::dst'],['../namespacepocketfft_1_1detail.html#add0f231fc8a1ce01b90a90faeebcb4eb',1,'pocketfft::detail::dst()']]], + ['dst_5fld_57',['dst_ld',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a91192d512e7a18c2d16a139065000959',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a9e59da7e4436e61b2d3c3f982355910b',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a0ff5a6d503e0bbac4634030a75ab818d',1,'mlx::steel::Conv2DWeightBlockLoader::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ae71570942c7b0ad8e67c62662b336c4a',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#ac18eeebea26cc6da434ead6eb4397350',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a07c85eab8cbf7b02c60df29cf32031ef',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::dst_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aae121ca6016fc6c7255027b3641f3a09',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::dst_ld']]], + ['dtype_58',['Dtype',['../structmlx_1_1core_1_1_dtype.html',1,'mlx::core::Dtype'],['../structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1',1,'mlx::core::Dtype::Dtype()']]], + ['dtype_59',['dtype',['../classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd',1,'mlx::core::array']]], + ['dtype_2eh_60',['dtype.h',['../dtype_8h.html',1,'']]] ]; diff --git a/docs/build/html/search/all_5.js b/docs/build/html/search/all_5.js index 890eaa3e5..dc20128a8 100644 --- a/docs/build/html/search/all_5.js +++ b/docs/build/html/search/all_5.js @@ -1,58 +1,63 @@ var searchData= [ ['e_0',['e',['../classmlx_1_1core_1_1_log.html#a044a23e8b1422984628e1cd5ab506421a491d45f7af463017c1f8cae94cd05590',1,'mlx::core::Log']]], - ['einsum_1',['einsum',['../namespacemlx_1_1core.html#a2a9b98c65578dd3720b3b375c1471e58',1,'mlx::core']]], - ['einsum_2eh_2',['einsum.h',['../einsum_8h.html',1,'']]], - ['einsum_5fpath_3',['einsum_path',['../namespacemlx_1_1core.html#ab14ec41f17675691c1fdebb8990b6695',1,'mlx::core']]], - ['elem_4',['elem',['../struct_read_writer.html#a32b82adcd6ed324ce235e9f5ad780ede',1,'ReadWriter']]], - ['elem_5fto_5floc_5',['elem_to_loc',['../namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3',1,'mlx::core::elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)'],['../namespacemlx_1_1core.html#ad7e4f40eb351b554bbfabb6d7d600d06',1,'mlx::core::elem_to_loc(int elem, const array &a)'],['../backend_2metal_2kernels_2utils_8h.html#a8fd0c8fc6058e650fc99bca8b6acd7d1',1,'elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#aa6b041005351293e68e19b5abf1286cd',1,'elem_to_loc(stride_t elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a37e00d94751710e81c9632bca2f91e51',1,'elem_to_loc(uint3 elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h']]], - ['elem_5fto_5floc_5f1_6',['elem_to_loc_1',['../backend_2metal_2kernels_2utils_8h.html#a196a07022b812b241d4c06192c0fa83d',1,'utils.h']]], - ['elem_5fto_5floc_5f2_7',['elem_to_loc_2',['../backend_2metal_2kernels_2utils_8h.html#ad6c45cacca97899cd362df49c06fea79',1,'utils.h']]], - ['elem_5fto_5floc_5f2_5fnd_8',['elem_to_loc_2_nd',['../backend_2metal_2kernels_2utils_8h.html#a01c9309978a6c12f79b6e4108728a953',1,'utils.h']]], - ['elem_5fto_5floc_5f3_9',['elem_to_loc_3',['../backend_2metal_2kernels_2utils_8h.html#a2c34ed54714c69e6e1b44344f9e6e330',1,'utils.h']]], - ['elem_5fto_5floc_5f3_5fnd_10',['elem_to_loc_3_nd',['../backend_2metal_2kernels_2utils_8h.html#a66940b1cc3d64651d24634bc696d528b',1,'utils.h']]], - ['elem_5fto_5floc_5fbroadcast_11',['elem_to_loc_broadcast',['../backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim): utils.h'],['../backend_2metal_2kernels_2steel_2utils_8h.html#a42bd57d203a40d3d7d429f2333590a3c',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const size_t *c_strides, int ndim): utils.h']]], - ['elems_5fper_5fthread_12',['elems_per_thread',['../struct_read_writer.html#a444230a0182ce6ba1898c04ce6e669a7',1,'ReadWriter']]], - ['elems_5fper_5fthread_5f_13',['elems_per_thread_',['../backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3',1,'fft.h']]], - ['empty_14',['empty',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#a1269e5da40c3f5145c895cee3641879a',1,'pocketfft::detail::threading::concurrent_queue']]], - ['enable_5fcompile_15',['enable_compile',['../namespacemlx_1_1core.html#a1983a2466bff3bae4d23cf34bd0946c9',1,'mlx::core']]], - ['enable_5ffor_5farrays_5ft_16',['enable_for_arrays_t',['../namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114',1,'mlx::core']]], - ['enabled_17',['enabled',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4aa10311459433adf322f2590a4987c423',1,'mlx::core']]], - ['end_18',['end',['../classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4',1,'mlx::core::array']]], - ['end_5fencoding_19',['end_encoding',['../classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf',1,'mlx::core::metal::Device']]], - ['enqueue_20',['enqueue',['../class_thread_pool.html#a375fa2d63197282277be640b54e8a196',1,'ThreadPool::enqueue()'],['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4918720319cf224a1b4208568964c286',1,'mlx::core::scheduler::StreamThread::enqueue()'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a03809c783bd1866362dc7cb9118abbcc',1,'mlx::core::scheduler::Scheduler::enqueue()'],['../namespacemlx_1_1core_1_1scheduler.html#aa2d4eacf5d5cbc778a51aafd4fd8e4d7',1,'mlx::core::scheduler::enqueue()']]], - ['epsilon_21',['epsilon',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['equal_22',['Equal',['../struct_equal.html',1,'Equal'],['../structmlx_1_1core_1_1detail_1_1_equal.html',1,'mlx::core::detail::Equal'],['../classmlx_1_1core_1_1_equal.html',1,'mlx::core::Equal'],['../classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36',1,'mlx::core::Equal::Equal()']]], - ['equal_23',['equal',['../group__ops.html#ga33638dc3a9972dd02be12d0eb85f9bde',1,'mlx::core']]], - ['erf_24',['Erf',['../struct_erf.html',1,'Erf'],['../structmlx_1_1core_1_1detail_1_1_erf.html',1,'mlx::core::detail::Erf'],['../classmlx_1_1core_1_1_erf.html',1,'mlx::core::Erf'],['../classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82',1,'mlx::core::Erf::Erf()']]], - ['erf_25',['erf',['../erf_8h.html#a6ce199ee56105c67adbf8c48c019a8b2',1,'erf(): erf.h'],['../group__ops.html#ga292a335240fd5d6d625fb7a340ff5eb0',1,'mlx::core::erf()']]], - ['erf_2eh_26',['erf.h',['../erf_8h.html',1,'']]], - ['erfinv_27',['ErfInv',['../struct_erf_inv.html',1,'ErfInv'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html',1,'mlx::core::detail::ErfInv'],['../classmlx_1_1core_1_1_erf_inv.html',1,'mlx::core::ErfInv'],['../classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478',1,'mlx::core::ErfInv::ErfInv()']]], - ['erfinv_28',['erfinv',['../erf_8h.html#a1846e0d683c7aff826bb32addcc3b885',1,'erfinv(): erf.h'],['../group__ops.html#ga76fb9062c64264e34d2e07013390557c',1,'mlx::core::erfinv()']]], - ['eval_29',['eval',['../classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a',1,'mlx::core::array::eval()'],['../namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299',1,'mlx::core::eval(std::vector< array > outputs)'],['../namespacemlx_1_1core.html#adb14f689c9f75f7901edb196c2bfb971',1,'mlx::core::eval(Arrays &&... outputs)']]], - ['eval_5fcpu_30',['eval_cpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#acdc1965ad64ee9ee6328fe150a97902e',1,'mlx::core::distributed::AllReduce::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ab721fe0072fffbddbc3c4334dd033ba5',1,'mlx::core::distributed::AllGather::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#af2620837bfc1b97217d006ed6e374051',1,'mlx::core::distributed::Send::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a3be84b08122a939edd6062d26261358a',1,'mlx::core::distributed::Recv::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a7da6e0cfd630958d9633b2e2bd97a54f',1,'mlx::core::fast::RMSNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#adfc1d52bc266466ab29ee45fd8fab439',1,'mlx::core::fast::RMSNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5d7a4c1c9ee84e327d1c371733108c05',1,'mlx::core::fast::LayerNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a0d8c4c6e7462befc38f7e08244fa1c2b',1,'mlx::core::fast::LayerNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a05a7d595c6b9dadf7ddfd6e3fd402f0e',1,'mlx::core::fast::RoPE::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ae20851e002f7fcb6d4f97817596f6328',1,'mlx::core::fast::ScaledDotProductAttention::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd',1,'mlx::core::fast::AffineQuantize::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad',1,'mlx::core::fast::CustomKernel::eval_cpu()'],['../classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575',1,'mlx::core::Primitive::eval_cpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60',1,'mlx::core::Abs::eval_cpu()'],['../classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f',1,'mlx::core::Add::eval_cpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c',1,'mlx::core::AddMM::eval_cpu()'],['../classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1',1,'mlx::core::Arange::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006',1,'mlx::core::ArcCos::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9',1,'mlx::core::ArcCosh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4',1,'mlx::core::ArcSin::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066',1,'mlx::core::ArcSinh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3',1,'mlx::core::ArcTan::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c',1,'mlx::core::ArcTan2::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd',1,'mlx::core::ArcTanh::eval_cpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828',1,'mlx::core::ArgPartition::eval_cpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287',1,'mlx::core::ArgReduce::eval_cpu()'],['../classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa',1,'mlx::core::ArgSort::eval_cpu()'],['../classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d',1,'mlx::core::AsType::eval_cpu()'],['../classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193',1,'mlx::core::AsStrided::eval_cpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283',1,'mlx::core::BitwiseBinary::eval_cpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2',1,'mlx::core::BlockMaskedMM::eval_cpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730',1,'mlx::core::GatherMM::eval_cpu()'],['../classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780',1,'mlx::core::Broadcast::eval_cpu()'],['../classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035',1,'mlx::core::Ceil::eval_cpu()'],['../classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151',1,'mlx::core::Compiled::eval_cpu()'],['../classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258',1,'mlx::core::Concatenate::eval_cpu()'],['../classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61',1,'mlx::core::Conjugate::eval_cpu()'],['../classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b',1,'mlx::core::Convolution::eval_cpu()'],['../classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c',1,'mlx::core::Copy::eval_cpu()'],['../classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152',1,'mlx::core::Cos::eval_cpu()'],['../classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d',1,'mlx::core::Cosh::eval_cpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184',1,'mlx::core::CustomTransforms::eval_cpu()'],['../classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e',1,'mlx::core::Depends::eval_cpu()'],['../classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49',1,'mlx::core::Divide::eval_cpu()'],['../classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3',1,'mlx::core::DivMod::eval_cpu()'],['../classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2',1,'mlx::core::Select::eval_cpu()'],['../classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc',1,'mlx::core::Remainder::eval_cpu()'],['../classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454',1,'mlx::core::Equal::eval_cpu()'],['../classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6',1,'mlx::core::Erf::eval_cpu()'],['../classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e',1,'mlx::core::ErfInv::eval_cpu()'],['../classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c',1,'mlx::core::Exp::eval_cpu()'],['../classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a',1,'mlx::core::Expm1::eval_cpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635',1,'mlx::core::FFT::eval_cpu()'],['../classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7',1,'mlx::core::Floor::eval_cpu()'],['../classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c',1,'mlx::core::Full::eval_cpu()'],['../classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290',1,'mlx::core::Gather::eval_cpu()'],['../classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae',1,'mlx::core::Greater::eval_cpu()'],['../classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075',1,'mlx::core::GreaterEqual::eval_cpu()'],['../classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d',1,'mlx::core::Hadamard::eval_cpu()'],['../classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829',1,'mlx::core::Imag::eval_cpu()'],['../classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef',1,'mlx::core::Less::eval_cpu()'],['../classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16',1,'mlx::core::LessEqual::eval_cpu()'],['../classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a',1,'mlx::core::Load::eval_cpu()'],['../classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f',1,'mlx::core::Log::eval_cpu()'],['../classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23',1,'mlx::core::Log1p::eval_cpu()'],['../classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3',1,'mlx::core::LogicalNot::eval_cpu()'],['../classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3',1,'mlx::core::LogicalAnd::eval_cpu()'],['../classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62',1,'mlx::core::LogicalOr::eval_cpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0',1,'mlx::core::LogAddExp::eval_cpu()'],['../classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc',1,'mlx::core::Matmul::eval_cpu()'],['../classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf',1,'mlx::core::Maximum::eval_cpu()'],['../classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e',1,'mlx::core::Minimum::eval_cpu()'],['../classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34',1,'mlx::core::Multiply::eval_cpu()'],['../classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b',1,'mlx::core::Negative::eval_cpu()'],['../classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047',1,'mlx::core::NotEqual::eval_cpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f',1,'mlx::core::NumberOfElements::eval_cpu()'],['../classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb',1,'mlx::core::Pad::eval_cpu()'],['../classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8',1,'mlx::core::Partition::eval_cpu()'],['../classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206',1,'mlx::core::Power::eval_cpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3',1,'mlx::core::QuantizedMatmul::eval_cpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c',1,'mlx::core::GatherQMM::eval_cpu()'],['../classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2',1,'mlx::core::RandomBits::eval_cpu()'],['../classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934',1,'mlx::core::Real::eval_cpu()'],['../classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f',1,'mlx::core::Reshape::eval_cpu()'],['../classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa',1,'mlx::core::Reduce::eval_cpu()'],['../classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007',1,'mlx::core::Round::eval_cpu()'],['../classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b',1,'mlx::core::Scan::eval_cpu()'],['../classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97',1,'mlx::core::Scatter::eval_cpu()'],['../classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255',1,'mlx::core::Sigmoid::eval_cpu()'],['../classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97',1,'mlx::core::Sign::eval_cpu()'],['../classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5',1,'mlx::core::Sin::eval_cpu()'],['../classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd',1,'mlx::core::Sinh::eval_cpu()'],['../classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2',1,'mlx::core::Slice::eval_cpu()'],['../classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b',1,'mlx::core::SliceUpdate::eval_cpu()'],['../classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79',1,'mlx::core::Softmax::eval_cpu()'],['../classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd',1,'mlx::core::Sort::eval_cpu()'],['../classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4',1,'mlx::core::Split::eval_cpu()'],['../classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59',1,'mlx::core::Square::eval_cpu()'],['../classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5',1,'mlx::core::Sqrt::eval_cpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2',1,'mlx::core::StopGradient::eval_cpu()'],['../classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12',1,'mlx::core::Subtract::eval_cpu()'],['../classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9',1,'mlx::core::Tan::eval_cpu()'],['../classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5',1,'mlx::core::Tanh::eval_cpu()'],['../classmlx_1_1core_1_1_uniform.html#a037a2c96b79b70a64f2b637c9f1a432f',1,'mlx::core::Uniform::eval_cpu()'],['../classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497',1,'mlx::core::View::eval_cpu()'],['../classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8',1,'mlx::core::Transpose::eval_cpu()'],['../classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2',1,'mlx::core::QRF::eval_cpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6',1,'mlx::core::SVD::eval_cpu()'],['../classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81',1,'mlx::core::Inverse::eval_cpu()'],['../classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5',1,'mlx::core::Cholesky::eval_cpu()']]], - ['eval_5fgpu_31',['eval_gpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a52df7155f56b8450581b2fd2747cad20',1,'mlx::core::distributed::AllReduce::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a4251ce0f2db2045226b66210b828af7a',1,'mlx::core::distributed::AllGather::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a0c8dbd2a912be91be04ec701e29fba3d',1,'mlx::core::distributed::Send::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a932e39624bc3d234a7489c3decc4749e',1,'mlx::core::distributed::Recv::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae7955e8d43c097eecae264e804b4d8ca',1,'mlx::core::fast::RMSNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a48efb8fa84c4ba6cc9fb560ebbe01560',1,'mlx::core::fast::RMSNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a77abda7f47bffa2c037a5d60cccc1528',1,'mlx::core::fast::LayerNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a954a003a4a27c8c4c60a5a14142a9cc3',1,'mlx::core::fast::LayerNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a913b6b00fc518b25ac3947e4e15790f2',1,'mlx::core::fast::RoPE::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a505f38ba93a3499895f5312e0112e73d',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ad51666e69f670e286293aff96eb435a9',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, array &out)'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628',1,'mlx::core::fast::AffineQuantize::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db',1,'mlx::core::fast::CustomKernel::eval_gpu()'],['../classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2',1,'mlx::core::Primitive::eval_gpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514',1,'mlx::core::Abs::eval_gpu()'],['../classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d',1,'mlx::core::Add::eval_gpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9',1,'mlx::core::AddMM::eval_gpu()'],['../classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031',1,'mlx::core::Arange::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c',1,'mlx::core::ArcCos::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc',1,'mlx::core::ArcCosh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3',1,'mlx::core::ArcSin::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac',1,'mlx::core::ArcSinh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254',1,'mlx::core::ArcTan::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50',1,'mlx::core::ArcTan2::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d',1,'mlx::core::ArcTanh::eval_gpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc',1,'mlx::core::ArgPartition::eval_gpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29',1,'mlx::core::ArgReduce::eval_gpu()'],['../classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709',1,'mlx::core::ArgSort::eval_gpu()'],['../classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b',1,'mlx::core::AsType::eval_gpu()'],['../classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed',1,'mlx::core::AsStrided::eval_gpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd',1,'mlx::core::BitwiseBinary::eval_gpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9',1,'mlx::core::BlockMaskedMM::eval_gpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1',1,'mlx::core::GatherMM::eval_gpu()'],['../classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe',1,'mlx::core::Broadcast::eval_gpu()'],['../classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887',1,'mlx::core::Ceil::eval_gpu()'],['../classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5',1,'mlx::core::Compiled::eval_gpu()'],['../classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474',1,'mlx::core::Concatenate::eval_gpu()'],['../classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de',1,'mlx::core::Conjugate::eval_gpu()'],['../classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2',1,'mlx::core::Convolution::eval_gpu()'],['../classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1',1,'mlx::core::Copy::eval_gpu()'],['../classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060',1,'mlx::core::Cos::eval_gpu()'],['../classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559',1,'mlx::core::Cosh::eval_gpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667',1,'mlx::core::CustomTransforms::eval_gpu()'],['../classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28',1,'mlx::core::Depends::eval_gpu()'],['../classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7',1,'mlx::core::Divide::eval_gpu()'],['../classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc',1,'mlx::core::DivMod::eval_gpu()'],['../classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b',1,'mlx::core::Select::eval_gpu()'],['../classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161',1,'mlx::core::Remainder::eval_gpu()'],['../classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c',1,'mlx::core::Equal::eval_gpu()'],['../classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008',1,'mlx::core::Erf::eval_gpu()'],['../classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db',1,'mlx::core::ErfInv::eval_gpu()'],['../classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822',1,'mlx::core::Exp::eval_gpu()'],['../classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f',1,'mlx::core::Expm1::eval_gpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd',1,'mlx::core::FFT::eval_gpu()'],['../classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65',1,'mlx::core::Floor::eval_gpu()'],['../classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872',1,'mlx::core::Full::eval_gpu()'],['../classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8',1,'mlx::core::Gather::eval_gpu()'],['../classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878',1,'mlx::core::Greater::eval_gpu()'],['../classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24',1,'mlx::core::GreaterEqual::eval_gpu()'],['../classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733',1,'mlx::core::Hadamard::eval_gpu()'],['../classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6',1,'mlx::core::Imag::eval_gpu()'],['../classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917',1,'mlx::core::Less::eval_gpu()'],['../classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac',1,'mlx::core::LessEqual::eval_gpu()'],['../classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d',1,'mlx::core::Load::eval_gpu()'],['../classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390',1,'mlx::core::Log::eval_gpu()'],['../classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431',1,'mlx::core::Log1p::eval_gpu()'],['../classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a',1,'mlx::core::LogicalNot::eval_gpu()'],['../classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f',1,'mlx::core::LogicalAnd::eval_gpu()'],['../classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a',1,'mlx::core::LogicalOr::eval_gpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a',1,'mlx::core::LogAddExp::eval_gpu()'],['../classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7',1,'mlx::core::Matmul::eval_gpu()'],['../classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7',1,'mlx::core::Maximum::eval_gpu()'],['../classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba',1,'mlx::core::Minimum::eval_gpu()'],['../classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0',1,'mlx::core::Multiply::eval_gpu()'],['../classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b',1,'mlx::core::Negative::eval_gpu()'],['../classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2',1,'mlx::core::NotEqual::eval_gpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5',1,'mlx::core::NumberOfElements::eval_gpu()'],['../classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153',1,'mlx::core::Pad::eval_gpu()'],['../classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef',1,'mlx::core::Partition::eval_gpu()'],['../classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11',1,'mlx::core::Power::eval_gpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3',1,'mlx::core::QuantizedMatmul::eval_gpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887',1,'mlx::core::GatherQMM::eval_gpu()'],['../classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a',1,'mlx::core::RandomBits::eval_gpu()'],['../classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2',1,'mlx::core::Real::eval_gpu()'],['../classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059',1,'mlx::core::Reshape::eval_gpu()'],['../classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f',1,'mlx::core::Reduce::eval_gpu()'],['../classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec',1,'mlx::core::Round::eval_gpu()'],['../classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde',1,'mlx::core::Scan::eval_gpu()'],['../classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678',1,'mlx::core::Scatter::eval_gpu()'],['../classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca',1,'mlx::core::Sigmoid::eval_gpu()'],['../classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b',1,'mlx::core::Sign::eval_gpu()'],['../classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e',1,'mlx::core::Sin::eval_gpu()'],['../classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75',1,'mlx::core::Sinh::eval_gpu()'],['../classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a',1,'mlx::core::Slice::eval_gpu()'],['../classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b',1,'mlx::core::SliceUpdate::eval_gpu()'],['../classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af',1,'mlx::core::Softmax::eval_gpu()'],['../classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382',1,'mlx::core::Sort::eval_gpu()'],['../classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df',1,'mlx::core::Split::eval_gpu()'],['../classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045',1,'mlx::core::Square::eval_gpu()'],['../classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501',1,'mlx::core::Sqrt::eval_gpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89',1,'mlx::core::StopGradient::eval_gpu()'],['../classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c',1,'mlx::core::Subtract::eval_gpu()'],['../classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f',1,'mlx::core::Tan::eval_gpu()'],['../classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761',1,'mlx::core::Tanh::eval_gpu()'],['../classmlx_1_1core_1_1_uniform.html#a5f88cbf2495f24f87cefd99aaaebe4d0',1,'mlx::core::Uniform::eval_gpu()'],['../classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075',1,'mlx::core::View::eval_gpu()'],['../classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e',1,'mlx::core::Transpose::eval_gpu()'],['../classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9',1,'mlx::core::QRF::eval_gpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83',1,'mlx::core::SVD::eval_gpu()'],['../classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2',1,'mlx::core::Inverse::eval_gpu()'],['../classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795',1,'mlx::core::Cholesky::eval_gpu()']]], - ['evaluated_32',['evaluated',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268',1,'mlx::core::array']]], - ['event_33',['Event',['../classmlx_1_1core_1_1_event.html',1,'mlx::core::Event'],['../classmlx_1_1core_1_1_event.html#a833506419b2110ad1abd89b2dd238b4d',1,'mlx::core::Event::Event()=default'],['../classmlx_1_1core_1_1_event.html#a13e4835f2ffb2cc22e29148a448ea184',1,'mlx::core::Event::Event(const Stream &steam)']]], - ['event_34',['event',['../classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf',1,'mlx::core::array']]], - ['event_2eh_35',['event.h',['../event_8h.html',1,'']]], - ['excess_36',['excess',['../structmlx_1_1steel_1_1_channel_helper.html#afc34bf92168c1865a9611b319dbcd000',1,'mlx::steel::ChannelHelper::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#ada22a8bd8a89078cfa28874055c8e753',1,'mlx::steel::ChannelHelper< 1 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acc490f3999230aa592c61bbed7eb7cfe',1,'mlx::steel::ChannelHelper< 2 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#aae404674763f3dc73c5ab29169f8b80f',1,'mlx::steel::ChannelHelper< 3 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#aecdd8331fec703d739a6f07b9b901ac8',1,'mlx::steel::ChannelHelper< 4 >::excess']]], - ['exec_37',['exec',['../classpocketfft_1_1detail_1_1cfftp.html#a95211024bf007d27e700835db556fbd2',1,'pocketfft::detail::cfftp::exec()'],['../classpocketfft_1_1detail_1_1rfftp.html#a073972f42bdd3617693be7be2cb5e0ac',1,'pocketfft::detail::rfftp::exec()'],['../classpocketfft_1_1detail_1_1fftblue.html#a5fb03413a3d1a653842875adcf87ae8c',1,'pocketfft::detail::fftblue::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__c.html#a436afd63e8e130f97aff103ae964a45d',1,'pocketfft::detail::pocketfft_c::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__r.html#a2815bc8aa04fa986834b02e502f98b33',1,'pocketfft::detail::pocketfft_r::exec()'],['../classpocketfft_1_1detail_1_1_t__dct1.html#a7736111ff9d220f983e41a6fecd5f058',1,'pocketfft::detail::T_dct1::exec()'],['../classpocketfft_1_1detail_1_1_t__dst1.html#a598a9511004263eb3610053d7efc9e26',1,'pocketfft::detail::T_dst1::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst23.html#a2a45b7b4612904c2be69c01f6d5029ac',1,'pocketfft::detail::T_dcst23::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst4.html#af794ebf21009d5f918681188081df708',1,'pocketfft::detail::T_dcst4::exec()']]], - ['exec_5fr_38',['exec_r',['../classpocketfft_1_1detail_1_1fftblue.html#a642b4aff0485c7d9c8794161a1464f00',1,'pocketfft::detail::fftblue']]], - ['execc2c_39',['ExecC2C',['../structpocketfft_1_1detail_1_1_exec_c2_c.html',1,'pocketfft::detail']]], - ['execdcst_40',['ExecDcst',['../structpocketfft_1_1detail_1_1_exec_dcst.html',1,'pocketfft::detail']]], - ['exechartley_41',['ExecHartley',['../structpocketfft_1_1detail_1_1_exec_hartley.html',1,'pocketfft::detail']]], - ['execr2r_42',['ExecR2R',['../structpocketfft_1_1detail_1_1_exec_r2_r.html',1,'pocketfft::detail']]], - ['exp_43',['Exp',['../struct_exp.html',1,'Exp'],['../structmlx_1_1core_1_1detail_1_1_exp.html',1,'mlx::core::detail::Exp'],['../classmlx_1_1core_1_1_exp.html',1,'mlx::core::Exp'],['../classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06',1,'mlx::core::Exp::Exp()']]], - ['exp_44',['exp',['../namespacemetal.html#ac2a0b3618d922ac014baac8189d44650',1,'metal::exp()'],['../namespacemetal_1_1fast.html#ad3dbd387b63373c29e3449609f763ede',1,'metal::fast::exp()'],['../namespacemetal_1_1precise.html#a8d8d2d5700ce432b33cf47cf22528e8f',1,'metal::precise::exp()'],['../group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125',1,'mlx::core::exp()']]], - ['exp10_45',['exp10',['../namespacemetal.html#a4c63707d13c89364496a48906631c204',1,'metal::exp10()'],['../namespacemetal_1_1fast.html#a453122f982485cbb4e471b3ac282ee5e',1,'metal::fast::exp10()'],['../namespacemetal_1_1precise.html#af9addb343c967da3a83e9e123a8521fd',1,'metal::precise::exp10()']]], - ['exp2_46',['exp2',['../namespacemetal.html#a228201c20777848804a4d0589c1d33e7',1,'metal::exp2()'],['../namespacemetal_1_1fast.html#ac092b65a46720adaf22f6266671d2d71',1,'metal::fast::exp2()'],['../namespacemetal_1_1precise.html#a92a880bd2197efc0da0f8f0f7ec1e4c9',1,'metal::precise::exp2()']]], - ['expand_5fdims_47',['expand_dims',['../group__ops.html#ga717f11149a8c7b4cc3e33bbcc0a97133',1,'mlx::core::expand_dims(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga7a80adb4a5a36d18b5f234d4b034950a',1,'mlx::core::expand_dims(const array &a, int axis, StreamOrDevice s={})']]], - ['expm1_48',['Expm1',['../struct_expm1.html',1,'Expm1'],['../structmlx_1_1core_1_1detail_1_1_expm1.html',1,'mlx::core::detail::Expm1'],['../classmlx_1_1core_1_1_expm1.html',1,'mlx::core::Expm1'],['../classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2',1,'mlx::core::Expm1::Expm1()']]], - ['expm1_49',['expm1',['../group__ops.html#ga54ca54f06bfb2be15b163a5209e2a0f0',1,'mlx::core']]], - ['expm1f_50',['expm1f',['../expm1f_8h.html#a87f66d30e185950f42ce3641783cdc40',1,'expm1f.h']]], - ['expm1f_2eh_51',['expm1f.h',['../expm1f_8h.html',1,'']]], - ['expm1f_5fscaled_5funchecked_52',['expm1f_scaled_unchecked',['../expm1f_8h.html#adf20e03405fba634ca8d01acac24592e',1,'expm1f.h']]], - ['export_5fto_5fdot_53',['export_to_dot',['../namespacemlx_1_1core.html#a57395bdf43d9c5c134e610c169222cca',1,'mlx::core::export_to_dot(std::ostream &os, const std::vector< array > &outputs)'],['../namespacemlx_1_1core.html#a839f94dbad44f0d37333006fc876b42e',1,'mlx::core::export_to_dot(std::ostream &os, Arrays &&... outputs)']]], - ['eye_54',['eye',['../group__ops.html#ga45e9e68246b0d1cf03c3cc9c9e7e6ae3',1,'mlx::core::eye(int n, int m, int k, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga2c9011310a1fa7c82f942f54102c36dd',1,'mlx::core::eye(int n, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga61657db78ef35d41112d362c869c25d2',1,'mlx::core::eye(int n, int m, StreamOrDevice s={})'],['../group__ops.html#ga908a15b42834be498a46856c99dfc779',1,'mlx::core::eye(int n, int m, int k, StreamOrDevice s={})'],['../group__ops.html#gab777fcf6d4a89172c69ec3492548dc0f',1,'mlx::core::eye(int n, StreamOrDevice s={})']]] + ['eigh_1',['Eigh',['../classmlx_1_1core_1_1_eigh.html',1,'mlx::core::Eigh'],['../classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda',1,'mlx::core::Eigh::Eigh()']]], + ['eigh_2',['eigh',['../namespacemlx_1_1core_1_1linalg.html#a2180be504f639fd471ea622641c1b0ca',1,'mlx::core::linalg']]], + ['eigvalsh_3',['eigvalsh',['../namespacemlx_1_1core_1_1linalg.html#a00c8e24432b0773dac64b8602bd142ba',1,'mlx::core::linalg']]], + ['einsum_4',['einsum',['../namespacemlx_1_1core.html#a2a9b98c65578dd3720b3b375c1471e58',1,'mlx::core']]], + ['einsum_2eh_5',['einsum.h',['../einsum_8h.html',1,'']]], + ['einsum_5fpath_6',['einsum_path',['../namespacemlx_1_1core.html#ab14ec41f17675691c1fdebb8990b6695',1,'mlx::core']]], + ['elem_7',['elem',['../struct_read_writer.html#a32b82adcd6ed324ce235e9f5ad780ede',1,'ReadWriter']]], + ['elem_5fto_5floc_8',['elem_to_loc',['../namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3',1,'mlx::core::elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)'],['../namespacemlx_1_1core.html#ad7e4f40eb351b554bbfabb6d7d600d06',1,'mlx::core::elem_to_loc(int elem, const array &a)'],['../backend_2metal_2kernels_2utils_8h.html#a8fd0c8fc6058e650fc99bca8b6acd7d1',1,'elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#aa6b041005351293e68e19b5abf1286cd',1,'elem_to_loc(stride_t elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a37e00d94751710e81c9632bca2f91e51',1,'elem_to_loc(uint3 elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h']]], + ['elem_5fto_5floc_5f1_9',['elem_to_loc_1',['../backend_2metal_2kernels_2utils_8h.html#a196a07022b812b241d4c06192c0fa83d',1,'utils.h']]], + ['elem_5fto_5floc_5f2_10',['elem_to_loc_2',['../backend_2metal_2kernels_2utils_8h.html#ad6c45cacca97899cd362df49c06fea79',1,'utils.h']]], + ['elem_5fto_5floc_5f2_5fnd_11',['elem_to_loc_2_nd',['../backend_2metal_2kernels_2utils_8h.html#a01c9309978a6c12f79b6e4108728a953',1,'utils.h']]], + ['elem_5fto_5floc_5f3_12',['elem_to_loc_3',['../backend_2metal_2kernels_2utils_8h.html#a2c34ed54714c69e6e1b44344f9e6e330',1,'utils.h']]], + ['elem_5fto_5floc_5f3_5fnd_13',['elem_to_loc_3_nd',['../backend_2metal_2kernels_2utils_8h.html#a66940b1cc3d64651d24634bc696d528b',1,'utils.h']]], + ['elem_5fto_5floc_5fbroadcast_14',['elem_to_loc_broadcast',['../backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim): utils.h'],['../backend_2metal_2kernels_2steel_2utils_8h.html#a42bd57d203a40d3d7d429f2333590a3c',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const size_t *c_strides, int ndim): utils.h']]], + ['elems_5fper_5fthread_15',['elems_per_thread',['../struct_read_writer.html#a444230a0182ce6ba1898c04ce6e669a7',1,'ReadWriter']]], + ['elems_5fper_5fthread_5f_16',['elems_per_thread_',['../backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3',1,'fft.h']]], + ['empty_17',['empty',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#a1269e5da40c3f5145c895cee3641879a',1,'pocketfft::detail::threading::concurrent_queue']]], + ['enable_5fcompile_18',['enable_compile',['../namespacemlx_1_1core.html#a1983a2466bff3bae4d23cf34bd0946c9',1,'mlx::core']]], + ['enable_5ffor_5farrays_5ft_19',['enable_for_arrays_t',['../namespacemlx_1_1core.html#af89751d79339f3e4d9318ea97d64d114',1,'mlx::core']]], + ['enabled_20',['enabled',['../namespacemlx_1_1core.html#adb15ff2b1ca5207fd4f6e631e2c3bcb4aa10311459433adf322f2590a4987c423',1,'mlx::core']]], + ['encoder_21',['encoder',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd',1,'mlx::core::metal::DeviceStream']]], + ['end_22',['end',['../classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4',1,'mlx::core::array']]], + ['end_5fencoding_23',['end_encoding',['../classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf',1,'mlx::core::metal::Device']]], + ['enqueue_24',['enqueue',['../class_thread_pool.html#a375fa2d63197282277be640b54e8a196',1,'ThreadPool::enqueue()'],['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4918720319cf224a1b4208568964c286',1,'mlx::core::scheduler::StreamThread::enqueue()'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a03809c783bd1866362dc7cb9118abbcc',1,'mlx::core::scheduler::Scheduler::enqueue()'],['../namespacemlx_1_1core_1_1scheduler.html#aa2d4eacf5d5cbc778a51aafd4fd8e4d7',1,'mlx::core::scheduler::enqueue()']]], + ['epsilon_25',['epsilon',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['equal_26',['Equal',['../struct_equal.html',1,'Equal'],['../structmlx_1_1core_1_1detail_1_1_equal.html',1,'mlx::core::detail::Equal'],['../classmlx_1_1core_1_1_equal.html',1,'mlx::core::Equal'],['../classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36',1,'mlx::core::Equal::Equal()']]], + ['equal_27',['equal',['../group__ops.html#ga33638dc3a9972dd02be12d0eb85f9bde',1,'mlx::core']]], + ['erase_28',['erase',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ae136ad270522210c85c13cacf5165238',1,'mlx::core::metal::ResidencySet']]], + ['erf_29',['Erf',['../struct_erf.html',1,'Erf'],['../structmlx_1_1core_1_1detail_1_1_erf.html',1,'mlx::core::detail::Erf'],['../classmlx_1_1core_1_1_erf.html',1,'mlx::core::Erf'],['../classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82',1,'mlx::core::Erf::Erf()']]], + ['erf_30',['erf',['../erf_8h.html#a6ce199ee56105c67adbf8c48c019a8b2',1,'erf(): erf.h'],['../group__ops.html#ga292a335240fd5d6d625fb7a340ff5eb0',1,'mlx::core::erf()']]], + ['erf_2eh_31',['erf.h',['../erf_8h.html',1,'']]], + ['erfinv_32',['ErfInv',['../struct_erf_inv.html',1,'ErfInv'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html',1,'mlx::core::detail::ErfInv'],['../classmlx_1_1core_1_1_erf_inv.html',1,'mlx::core::ErfInv'],['../classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478',1,'mlx::core::ErfInv::ErfInv()']]], + ['erfinv_33',['erfinv',['../erf_8h.html#a1846e0d683c7aff826bb32addcc3b885',1,'erfinv(): erf.h'],['../group__ops.html#ga76fb9062c64264e34d2e07013390557c',1,'mlx::core::erfinv()']]], + ['eval_34',['eval',['../classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a',1,'mlx::core::array::eval()'],['../namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299',1,'mlx::core::eval(std::vector< array > outputs)'],['../namespacemlx_1_1core.html#adb14f689c9f75f7901edb196c2bfb971',1,'mlx::core::eval(Arrays &&... outputs)']]], + ['eval_5fcpu_35',['eval_cpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#acdc1965ad64ee9ee6328fe150a97902e',1,'mlx::core::distributed::AllReduce::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ab721fe0072fffbddbc3c4334dd033ba5',1,'mlx::core::distributed::AllGather::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#af2620837bfc1b97217d006ed6e374051',1,'mlx::core::distributed::Send::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a3be84b08122a939edd6062d26261358a',1,'mlx::core::distributed::Recv::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a7da6e0cfd630958d9633b2e2bd97a54f',1,'mlx::core::fast::RMSNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#adfc1d52bc266466ab29ee45fd8fab439',1,'mlx::core::fast::RMSNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5d7a4c1c9ee84e327d1c371733108c05',1,'mlx::core::fast::LayerNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a0d8c4c6e7462befc38f7e08244fa1c2b',1,'mlx::core::fast::LayerNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a05a7d595c6b9dadf7ddfd6e3fd402f0e',1,'mlx::core::fast::RoPE::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ae20851e002f7fcb6d4f97817596f6328',1,'mlx::core::fast::ScaledDotProductAttention::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd',1,'mlx::core::fast::AffineQuantize::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad',1,'mlx::core::fast::CustomKernel::eval_cpu()'],['../classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575',1,'mlx::core::Primitive::eval_cpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60',1,'mlx::core::Abs::eval_cpu()'],['../classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f',1,'mlx::core::Add::eval_cpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c',1,'mlx::core::AddMM::eval_cpu()'],['../classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1',1,'mlx::core::Arange::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006',1,'mlx::core::ArcCos::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9',1,'mlx::core::ArcCosh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4',1,'mlx::core::ArcSin::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066',1,'mlx::core::ArcSinh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3',1,'mlx::core::ArcTan::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c',1,'mlx::core::ArcTan2::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd',1,'mlx::core::ArcTanh::eval_cpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828',1,'mlx::core::ArgPartition::eval_cpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287',1,'mlx::core::ArgReduce::eval_cpu()'],['../classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa',1,'mlx::core::ArgSort::eval_cpu()'],['../classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d',1,'mlx::core::AsType::eval_cpu()'],['../classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193',1,'mlx::core::AsStrided::eval_cpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283',1,'mlx::core::BitwiseBinary::eval_cpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2',1,'mlx::core::BlockMaskedMM::eval_cpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730',1,'mlx::core::GatherMM::eval_cpu()'],['../classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780',1,'mlx::core::Broadcast::eval_cpu()'],['../classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035',1,'mlx::core::Ceil::eval_cpu()'],['../classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151',1,'mlx::core::Compiled::eval_cpu()'],['../classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258',1,'mlx::core::Concatenate::eval_cpu()'],['../classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61',1,'mlx::core::Conjugate::eval_cpu()'],['../classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b',1,'mlx::core::Convolution::eval_cpu()'],['../classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c',1,'mlx::core::Copy::eval_cpu()'],['../classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152',1,'mlx::core::Cos::eval_cpu()'],['../classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d',1,'mlx::core::Cosh::eval_cpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184',1,'mlx::core::CustomTransforms::eval_cpu()'],['../classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e',1,'mlx::core::Depends::eval_cpu()'],['../classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49',1,'mlx::core::Divide::eval_cpu()'],['../classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3',1,'mlx::core::DivMod::eval_cpu()'],['../classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2',1,'mlx::core::Select::eval_cpu()'],['../classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc',1,'mlx::core::Remainder::eval_cpu()'],['../classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454',1,'mlx::core::Equal::eval_cpu()'],['../classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6',1,'mlx::core::Erf::eval_cpu()'],['../classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e',1,'mlx::core::ErfInv::eval_cpu()'],['../classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c',1,'mlx::core::Exp::eval_cpu()'],['../classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a',1,'mlx::core::Expm1::eval_cpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635',1,'mlx::core::FFT::eval_cpu()'],['../classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7',1,'mlx::core::Floor::eval_cpu()'],['../classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c',1,'mlx::core::Full::eval_cpu()'],['../classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290',1,'mlx::core::Gather::eval_cpu()'],['../classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae',1,'mlx::core::Greater::eval_cpu()'],['../classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075',1,'mlx::core::GreaterEqual::eval_cpu()'],['../classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d',1,'mlx::core::Hadamard::eval_cpu()'],['../classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829',1,'mlx::core::Imag::eval_cpu()'],['../classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef',1,'mlx::core::Less::eval_cpu()'],['../classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16',1,'mlx::core::LessEqual::eval_cpu()'],['../classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a',1,'mlx::core::Load::eval_cpu()'],['../classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f',1,'mlx::core::Log::eval_cpu()'],['../classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23',1,'mlx::core::Log1p::eval_cpu()'],['../classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3',1,'mlx::core::LogicalNot::eval_cpu()'],['../classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3',1,'mlx::core::LogicalAnd::eval_cpu()'],['../classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62',1,'mlx::core::LogicalOr::eval_cpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0',1,'mlx::core::LogAddExp::eval_cpu()'],['../classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc',1,'mlx::core::Matmul::eval_cpu()'],['../classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf',1,'mlx::core::Maximum::eval_cpu()'],['../classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e',1,'mlx::core::Minimum::eval_cpu()'],['../classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34',1,'mlx::core::Multiply::eval_cpu()'],['../classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b',1,'mlx::core::Negative::eval_cpu()'],['../classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047',1,'mlx::core::NotEqual::eval_cpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f',1,'mlx::core::NumberOfElements::eval_cpu()'],['../classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb',1,'mlx::core::Pad::eval_cpu()'],['../classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8',1,'mlx::core::Partition::eval_cpu()'],['../classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206',1,'mlx::core::Power::eval_cpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3',1,'mlx::core::QuantizedMatmul::eval_cpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c',1,'mlx::core::GatherQMM::eval_cpu()'],['../classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2',1,'mlx::core::RandomBits::eval_cpu()'],['../classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934',1,'mlx::core::Real::eval_cpu()'],['../classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f',1,'mlx::core::Reshape::eval_cpu()'],['../classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa',1,'mlx::core::Reduce::eval_cpu()'],['../classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007',1,'mlx::core::Round::eval_cpu()'],['../classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b',1,'mlx::core::Scan::eval_cpu()'],['../classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97',1,'mlx::core::Scatter::eval_cpu()'],['../classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255',1,'mlx::core::Sigmoid::eval_cpu()'],['../classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97',1,'mlx::core::Sign::eval_cpu()'],['../classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5',1,'mlx::core::Sin::eval_cpu()'],['../classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd',1,'mlx::core::Sinh::eval_cpu()'],['../classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2',1,'mlx::core::Slice::eval_cpu()'],['../classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b',1,'mlx::core::SliceUpdate::eval_cpu()'],['../classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79',1,'mlx::core::Softmax::eval_cpu()'],['../classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd',1,'mlx::core::Sort::eval_cpu()'],['../classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4',1,'mlx::core::Split::eval_cpu()'],['../classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59',1,'mlx::core::Square::eval_cpu()'],['../classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5',1,'mlx::core::Sqrt::eval_cpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2',1,'mlx::core::StopGradient::eval_cpu()'],['../classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12',1,'mlx::core::Subtract::eval_cpu()'],['../classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9',1,'mlx::core::Tan::eval_cpu()'],['../classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5',1,'mlx::core::Tanh::eval_cpu()'],['../classmlx_1_1core_1_1_uniform.html#a037a2c96b79b70a64f2b637c9f1a432f',1,'mlx::core::Uniform::eval_cpu()'],['../classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497',1,'mlx::core::View::eval_cpu()'],['../classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8',1,'mlx::core::Transpose::eval_cpu()'],['../classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2',1,'mlx::core::QRF::eval_cpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6',1,'mlx::core::SVD::eval_cpu()'],['../classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81',1,'mlx::core::Inverse::eval_cpu()'],['../classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5',1,'mlx::core::Cholesky::eval_cpu()'],['../classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be',1,'mlx::core::Eigh::eval_cpu()']]], + ['eval_5fgpu_36',['eval_gpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a52df7155f56b8450581b2fd2747cad20',1,'mlx::core::distributed::AllReduce::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a4251ce0f2db2045226b66210b828af7a',1,'mlx::core::distributed::AllGather::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a0c8dbd2a912be91be04ec701e29fba3d',1,'mlx::core::distributed::Send::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a932e39624bc3d234a7489c3decc4749e',1,'mlx::core::distributed::Recv::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae7955e8d43c097eecae264e804b4d8ca',1,'mlx::core::fast::RMSNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a48efb8fa84c4ba6cc9fb560ebbe01560',1,'mlx::core::fast::RMSNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a77abda7f47bffa2c037a5d60cccc1528',1,'mlx::core::fast::LayerNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a954a003a4a27c8c4c60a5a14142a9cc3',1,'mlx::core::fast::LayerNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a913b6b00fc518b25ac3947e4e15790f2',1,'mlx::core::fast::RoPE::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a505f38ba93a3499895f5312e0112e73d',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ad51666e69f670e286293aff96eb435a9',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, array &out)'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628',1,'mlx::core::fast::AffineQuantize::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db',1,'mlx::core::fast::CustomKernel::eval_gpu()'],['../classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2',1,'mlx::core::Primitive::eval_gpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514',1,'mlx::core::Abs::eval_gpu()'],['../classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d',1,'mlx::core::Add::eval_gpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9',1,'mlx::core::AddMM::eval_gpu()'],['../classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031',1,'mlx::core::Arange::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c',1,'mlx::core::ArcCos::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc',1,'mlx::core::ArcCosh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3',1,'mlx::core::ArcSin::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac',1,'mlx::core::ArcSinh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254',1,'mlx::core::ArcTan::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50',1,'mlx::core::ArcTan2::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d',1,'mlx::core::ArcTanh::eval_gpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc',1,'mlx::core::ArgPartition::eval_gpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29',1,'mlx::core::ArgReduce::eval_gpu()'],['../classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709',1,'mlx::core::ArgSort::eval_gpu()'],['../classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b',1,'mlx::core::AsType::eval_gpu()'],['../classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed',1,'mlx::core::AsStrided::eval_gpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd',1,'mlx::core::BitwiseBinary::eval_gpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9',1,'mlx::core::BlockMaskedMM::eval_gpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1',1,'mlx::core::GatherMM::eval_gpu()'],['../classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe',1,'mlx::core::Broadcast::eval_gpu()'],['../classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887',1,'mlx::core::Ceil::eval_gpu()'],['../classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5',1,'mlx::core::Compiled::eval_gpu()'],['../classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474',1,'mlx::core::Concatenate::eval_gpu()'],['../classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de',1,'mlx::core::Conjugate::eval_gpu()'],['../classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2',1,'mlx::core::Convolution::eval_gpu()'],['../classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1',1,'mlx::core::Copy::eval_gpu()'],['../classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060',1,'mlx::core::Cos::eval_gpu()'],['../classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559',1,'mlx::core::Cosh::eval_gpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667',1,'mlx::core::CustomTransforms::eval_gpu()'],['../classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28',1,'mlx::core::Depends::eval_gpu()'],['../classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7',1,'mlx::core::Divide::eval_gpu()'],['../classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc',1,'mlx::core::DivMod::eval_gpu()'],['../classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b',1,'mlx::core::Select::eval_gpu()'],['../classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161',1,'mlx::core::Remainder::eval_gpu()'],['../classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c',1,'mlx::core::Equal::eval_gpu()'],['../classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008',1,'mlx::core::Erf::eval_gpu()'],['../classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db',1,'mlx::core::ErfInv::eval_gpu()'],['../classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822',1,'mlx::core::Exp::eval_gpu()'],['../classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f',1,'mlx::core::Expm1::eval_gpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd',1,'mlx::core::FFT::eval_gpu()'],['../classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65',1,'mlx::core::Floor::eval_gpu()'],['../classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872',1,'mlx::core::Full::eval_gpu()'],['../classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8',1,'mlx::core::Gather::eval_gpu()'],['../classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878',1,'mlx::core::Greater::eval_gpu()'],['../classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24',1,'mlx::core::GreaterEqual::eval_gpu()'],['../classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733',1,'mlx::core::Hadamard::eval_gpu()'],['../classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6',1,'mlx::core::Imag::eval_gpu()'],['../classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917',1,'mlx::core::Less::eval_gpu()'],['../classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac',1,'mlx::core::LessEqual::eval_gpu()'],['../classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d',1,'mlx::core::Load::eval_gpu()'],['../classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390',1,'mlx::core::Log::eval_gpu()'],['../classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431',1,'mlx::core::Log1p::eval_gpu()'],['../classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a',1,'mlx::core::LogicalNot::eval_gpu()'],['../classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f',1,'mlx::core::LogicalAnd::eval_gpu()'],['../classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a',1,'mlx::core::LogicalOr::eval_gpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a',1,'mlx::core::LogAddExp::eval_gpu()'],['../classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7',1,'mlx::core::Matmul::eval_gpu()'],['../classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7',1,'mlx::core::Maximum::eval_gpu()'],['../classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba',1,'mlx::core::Minimum::eval_gpu()'],['../classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0',1,'mlx::core::Multiply::eval_gpu()'],['../classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b',1,'mlx::core::Negative::eval_gpu()'],['../classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2',1,'mlx::core::NotEqual::eval_gpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5',1,'mlx::core::NumberOfElements::eval_gpu()'],['../classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153',1,'mlx::core::Pad::eval_gpu()'],['../classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef',1,'mlx::core::Partition::eval_gpu()'],['../classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11',1,'mlx::core::Power::eval_gpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3',1,'mlx::core::QuantizedMatmul::eval_gpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887',1,'mlx::core::GatherQMM::eval_gpu()'],['../classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a',1,'mlx::core::RandomBits::eval_gpu()'],['../classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2',1,'mlx::core::Real::eval_gpu()'],['../classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059',1,'mlx::core::Reshape::eval_gpu()'],['../classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f',1,'mlx::core::Reduce::eval_gpu()'],['../classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec',1,'mlx::core::Round::eval_gpu()'],['../classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde',1,'mlx::core::Scan::eval_gpu()'],['../classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678',1,'mlx::core::Scatter::eval_gpu()'],['../classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca',1,'mlx::core::Sigmoid::eval_gpu()'],['../classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b',1,'mlx::core::Sign::eval_gpu()'],['../classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e',1,'mlx::core::Sin::eval_gpu()'],['../classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75',1,'mlx::core::Sinh::eval_gpu()'],['../classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a',1,'mlx::core::Slice::eval_gpu()'],['../classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b',1,'mlx::core::SliceUpdate::eval_gpu()'],['../classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af',1,'mlx::core::Softmax::eval_gpu()'],['../classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382',1,'mlx::core::Sort::eval_gpu()'],['../classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df',1,'mlx::core::Split::eval_gpu()'],['../classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045',1,'mlx::core::Square::eval_gpu()'],['../classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501',1,'mlx::core::Sqrt::eval_gpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89',1,'mlx::core::StopGradient::eval_gpu()'],['../classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c',1,'mlx::core::Subtract::eval_gpu()'],['../classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f',1,'mlx::core::Tan::eval_gpu()'],['../classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761',1,'mlx::core::Tanh::eval_gpu()'],['../classmlx_1_1core_1_1_uniform.html#a5f88cbf2495f24f87cefd99aaaebe4d0',1,'mlx::core::Uniform::eval_gpu()'],['../classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075',1,'mlx::core::View::eval_gpu()'],['../classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e',1,'mlx::core::Transpose::eval_gpu()'],['../classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9',1,'mlx::core::QRF::eval_gpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83',1,'mlx::core::SVD::eval_gpu()'],['../classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2',1,'mlx::core::Inverse::eval_gpu()'],['../classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795',1,'mlx::core::Cholesky::eval_gpu()'],['../classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2',1,'mlx::core::Eigh::eval_gpu()']]], + ['evaluated_37',['evaluated',['../classmlx_1_1core_1_1array.html#a199726612fa8a4bcd5c2d05eadad7078a6fc3d7595445dd877584495f47535268',1,'mlx::core::array']]], + ['event_38',['Event',['../classmlx_1_1core_1_1_event.html',1,'mlx::core::Event'],['../classmlx_1_1core_1_1_event.html#a833506419b2110ad1abd89b2dd238b4d',1,'mlx::core::Event::Event()=default'],['../classmlx_1_1core_1_1_event.html#a13e4835f2ffb2cc22e29148a448ea184',1,'mlx::core::Event::Event(const Stream &steam)']]], + ['event_39',['event',['../classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf',1,'mlx::core::array']]], + ['event_2eh_40',['event.h',['../event_8h.html',1,'']]], + ['excess_41',['excess',['../structmlx_1_1steel_1_1_channel_helper.html#afc34bf92168c1865a9611b319dbcd000',1,'mlx::steel::ChannelHelper::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#ada22a8bd8a89078cfa28874055c8e753',1,'mlx::steel::ChannelHelper< 1 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acc490f3999230aa592c61bbed7eb7cfe',1,'mlx::steel::ChannelHelper< 2 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#aae404674763f3dc73c5ab29169f8b80f',1,'mlx::steel::ChannelHelper< 3 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#aecdd8331fec703d739a6f07b9b901ac8',1,'mlx::steel::ChannelHelper< 4 >::excess']]], + ['exec_42',['exec',['../classpocketfft_1_1detail_1_1cfftp.html#a95211024bf007d27e700835db556fbd2',1,'pocketfft::detail::cfftp::exec()'],['../classpocketfft_1_1detail_1_1rfftp.html#a073972f42bdd3617693be7be2cb5e0ac',1,'pocketfft::detail::rfftp::exec()'],['../classpocketfft_1_1detail_1_1fftblue.html#a5fb03413a3d1a653842875adcf87ae8c',1,'pocketfft::detail::fftblue::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__c.html#a436afd63e8e130f97aff103ae964a45d',1,'pocketfft::detail::pocketfft_c::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__r.html#a2815bc8aa04fa986834b02e502f98b33',1,'pocketfft::detail::pocketfft_r::exec()'],['../classpocketfft_1_1detail_1_1_t__dct1.html#a7736111ff9d220f983e41a6fecd5f058',1,'pocketfft::detail::T_dct1::exec()'],['../classpocketfft_1_1detail_1_1_t__dst1.html#a598a9511004263eb3610053d7efc9e26',1,'pocketfft::detail::T_dst1::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst23.html#a2a45b7b4612904c2be69c01f6d5029ac',1,'pocketfft::detail::T_dcst23::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst4.html#af794ebf21009d5f918681188081df708',1,'pocketfft::detail::T_dcst4::exec()']]], + ['exec_5fr_43',['exec_r',['../classpocketfft_1_1detail_1_1fftblue.html#a642b4aff0485c7d9c8794161a1464f00',1,'pocketfft::detail::fftblue']]], + ['execc2c_44',['ExecC2C',['../structpocketfft_1_1detail_1_1_exec_c2_c.html',1,'pocketfft::detail']]], + ['execdcst_45',['ExecDcst',['../structpocketfft_1_1detail_1_1_exec_dcst.html',1,'pocketfft::detail']]], + ['exechartley_46',['ExecHartley',['../structpocketfft_1_1detail_1_1_exec_hartley.html',1,'pocketfft::detail']]], + ['execr2r_47',['ExecR2R',['../structpocketfft_1_1detail_1_1_exec_r2_r.html',1,'pocketfft::detail']]], + ['exp_48',['Exp',['../struct_exp.html',1,'Exp'],['../structmlx_1_1core_1_1detail_1_1_exp.html',1,'mlx::core::detail::Exp'],['../classmlx_1_1core_1_1_exp.html',1,'mlx::core::Exp'],['../classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06',1,'mlx::core::Exp::Exp()']]], + ['exp_49',['exp',['../namespacemetal.html#ac2a0b3618d922ac014baac8189d44650',1,'metal::exp()'],['../namespacemetal_1_1fast.html#ad3dbd387b63373c29e3449609f763ede',1,'metal::fast::exp()'],['../namespacemetal_1_1precise.html#a8d8d2d5700ce432b33cf47cf22528e8f',1,'metal::precise::exp()'],['../group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125',1,'mlx::core::exp()']]], + ['exp10_50',['exp10',['../namespacemetal.html#a4c63707d13c89364496a48906631c204',1,'metal::exp10()'],['../namespacemetal_1_1fast.html#a453122f982485cbb4e471b3ac282ee5e',1,'metal::fast::exp10()'],['../namespacemetal_1_1precise.html#af9addb343c967da3a83e9e123a8521fd',1,'metal::precise::exp10()']]], + ['exp2_51',['exp2',['../namespacemetal.html#a228201c20777848804a4d0589c1d33e7',1,'metal::exp2()'],['../namespacemetal_1_1fast.html#ac092b65a46720adaf22f6266671d2d71',1,'metal::fast::exp2()'],['../namespacemetal_1_1precise.html#a92a880bd2197efc0da0f8f0f7ec1e4c9',1,'metal::precise::exp2()']]], + ['expand_5fdims_52',['expand_dims',['../group__ops.html#ga717f11149a8c7b4cc3e33bbcc0a97133',1,'mlx::core::expand_dims(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga7a80adb4a5a36d18b5f234d4b034950a',1,'mlx::core::expand_dims(const array &a, int axis, StreamOrDevice s={})']]], + ['expm1_53',['Expm1',['../struct_expm1.html',1,'Expm1'],['../structmlx_1_1core_1_1detail_1_1_expm1.html',1,'mlx::core::detail::Expm1'],['../classmlx_1_1core_1_1_expm1.html',1,'mlx::core::Expm1'],['../classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2',1,'mlx::core::Expm1::Expm1()']]], + ['expm1_54',['expm1',['../group__ops.html#ga54ca54f06bfb2be15b163a5209e2a0f0',1,'mlx::core']]], + ['expm1f_55',['expm1f',['../expm1f_8h.html#a87f66d30e185950f42ce3641783cdc40',1,'expm1f.h']]], + ['expm1f_2eh_56',['expm1f.h',['../expm1f_8h.html',1,'']]], + ['expm1f_5fscaled_5funchecked_57',['expm1f_scaled_unchecked',['../expm1f_8h.html#adf20e03405fba634ca8d01acac24592e',1,'expm1f.h']]], + ['export_5fto_5fdot_58',['export_to_dot',['../namespacemlx_1_1core.html#a57395bdf43d9c5c134e610c169222cca',1,'mlx::core::export_to_dot(std::ostream &os, const std::vector< array > &outputs)'],['../namespacemlx_1_1core.html#a839f94dbad44f0d37333006fc876b42e',1,'mlx::core::export_to_dot(std::ostream &os, Arrays &&... outputs)']]], + ['eye_59',['eye',['../group__ops.html#ga45e9e68246b0d1cf03c3cc9c9e7e6ae3',1,'mlx::core::eye(int n, int m, int k, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga2c9011310a1fa7c82f942f54102c36dd',1,'mlx::core::eye(int n, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga61657db78ef35d41112d362c869c25d2',1,'mlx::core::eye(int n, int m, StreamOrDevice s={})'],['../group__ops.html#ga908a15b42834be498a46856c99dfc779',1,'mlx::core::eye(int n, int m, int k, StreamOrDevice s={})'],['../group__ops.html#gab777fcf6d4a89172c69ec3492548dc0f',1,'mlx::core::eye(int n, StreamOrDevice s={})']]] ]; diff --git a/docs/build/html/search/all_6.js b/docs/build/html/search/all_6.js index 2d15c618f..e601f1bb3 100644 --- a/docs/build/html/search/all_6.js +++ b/docs/build/html/search/all_6.js @@ -13,44 +13,47 @@ var searchData= ['fast_5fprimitives_2eh_10',['fast_primitives.h',['../fast__primitives_8h.html',1,'']]], ['fdc_11',['fdc',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a42efa2a1fddc11f71987377b9048f953',1,'mlx::steel::GEMMAddMMParams']]], ['fdim_12',['fdim',['../namespacemetal.html#a85a560794be56d8116889c1ee2d78761',1,'metal::fdim()'],['../namespacemetal_1_1fast.html#a667df76100d5ea0ce5860ddae3e5a00b',1,'metal::fast::fdim()'],['../namespacemetal_1_1precise.html#af693e7c93de446e80dd1377f5e9e7260',1,'metal::precise::fdim()']]], - ['fft_13',['FFT',['../classmlx_1_1core_1_1_f_f_t.html',1,'mlx::core::FFT'],['../classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839',1,'mlx::core::FFT::FFT()']]], - ['fft_14',['fft',['../namespacemlx_1_1core_1_1metal.html#a39f43360d9e916fcf7e86c919b419554',1,'mlx::core::metal::fft()'],['../backend_2metal_2kernels_2fft_8h.html#a4010b0e151e5f01e610e9c32234458c7',1,'fft(): fft.h'],['../namespacemlx_1_1core_1_1fft.html#ad672de5ca029a6925b05f03bbebe5ad3',1,'mlx::core::fft::fft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a3fe55b7b6eba32c4c8b2d206036216e0',1,'mlx::core::fft::fft(const array &a, int axis=-1, StreamOrDevice s={})']]], - ['fft_2eh_15',['fft.h',['../backend_2metal_2kernels_2fft_8h.html',1,'(Global Namespace)'],['../fft_8h.html',1,'(Global Namespace)']]], - ['fft2_16',['fft2',['../namespacemlx_1_1core_1_1fft.html#a02a7286e4b7a8ee149ec5d5b193b72d1',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a6eb0c5f8b33694ddb56748a97d17e8b7',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], - ['fftblue_17',['fftblue',['../classpocketfft_1_1detail_1_1fftblue.html',1,'pocketfft::detail::fftblue< T0 >'],['../classpocketfft_1_1detail_1_1fftblue.html#a8613b2131e7843bbca9e1cd4cc15bc01',1,'pocketfft::detail::fftblue::fftblue()']]], - ['fftn_18',['fftn',['../namespacemlx_1_1core_1_1fft.html#a26e310c739176796965e47a88c7a998f',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaa116429c2cb5bab20b464be890252c8',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a039a44197ad299a15a5847639292800c',1,'mlx::core::fft::fftn(const array &a, StreamOrDevice s={})']]], - ['filewriter_19',['FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html',1,'mlx::core::io::FileWriter'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a40b241ad540ee4aadc3a19a6b1ccfb4d',1,'mlx::core::io::FileWriter::FileWriter()']]], - ['fill_5fgpu_20',['fill_gpu',['../namespacemlx_1_1core.html#ae789dbda2a0f4e21aa0984f6a5dc986c',1,'mlx::core']]], - ['finite_5fmax_21',['finite_max',['../struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5',1,'Limits::finite_max'],['../struct_limits_3_01uint8__t_01_4.html#a55f48b89033e8c8683f8540ec6b23f02',1,'Limits< uint8_t >::finite_max'],['../struct_limits_3_01uint16__t_01_4.html#a9d517d8265ea1898b6b16e91b8595146',1,'Limits< uint16_t >::finite_max'],['../struct_limits_3_01uint32__t_01_4.html#a0698139f3fe440d7aa08ac5029d72235',1,'Limits< uint32_t >::finite_max'],['../struct_limits_3_01uint64__t_01_4.html#aff101ff38be5ccdbb9790aecb3069071',1,'Limits< uint64_t >::finite_max'],['../struct_limits_3_01int8__t_01_4.html#a24cdab873e0fb778393c69f1dc9ecf73',1,'Limits< int8_t >::finite_max'],['../struct_limits_3_01int16__t_01_4.html#acb2936d1cdbf347a9a014c8e036a5782',1,'Limits< int16_t >::finite_max'],['../struct_limits_3_01int32__t_01_4.html#aa9ed9f0e8c7400d8fc92e1cba9588794',1,'Limits< int32_t >::finite_max'],['../struct_limits_3_01int64__t_01_4.html#a6c7254b641878fa0fb9538814c45457a',1,'Limits< int64_t >::finite_max'],['../struct_limits_3_01half_01_4.html#aedaf0190aabf23da20510e558e2690b4',1,'Limits< half >::finite_max'],['../struct_limits_3_01float_01_4.html#a291eea590113fc1858b7f83f2e0c977d',1,'Limits< float >::finite_max'],['../struct_limits_3_01bfloat16__t_01_4.html#a6337dc35207b3f6f7185cd73eabac211',1,'Limits< bfloat16_t >::finite_max']]], - ['finite_5fmin_22',['finite_min',['../struct_limits.html#ae7469d21f2688797ca3e388d919ef05e',1,'Limits::finite_min'],['../struct_limits_3_01uint8__t_01_4.html#a60cea662971b09f78ef19f1da4760b73',1,'Limits< uint8_t >::finite_min'],['../struct_limits_3_01uint16__t_01_4.html#a1a7c029eccba4ab89743abdfaabfa7b4',1,'Limits< uint16_t >::finite_min'],['../struct_limits_3_01uint32__t_01_4.html#ad5d811fce62f44488190ff01d9e7608b',1,'Limits< uint32_t >::finite_min'],['../struct_limits_3_01uint64__t_01_4.html#a6556e7de6e0670da8f768bbc4479deae',1,'Limits< uint64_t >::finite_min'],['../struct_limits_3_01int8__t_01_4.html#a592797ce82cc2f7e27b0c477165b3452',1,'Limits< int8_t >::finite_min'],['../struct_limits_3_01int16__t_01_4.html#a158c4dbc9333939691b1637478e28e39',1,'Limits< int16_t >::finite_min'],['../struct_limits_3_01int32__t_01_4.html#ad9777dc6a84dcb9c63b598189ff0a4ff',1,'Limits< int32_t >::finite_min'],['../struct_limits_3_01int64__t_01_4.html#af80726162b44a741aae679f1fe85142a',1,'Limits< int64_t >::finite_min'],['../struct_limits_3_01half_01_4.html#a98d153748be68dbb428c50df3c0285ab',1,'Limits< half >::finite_min'],['../struct_limits_3_01float_01_4.html#afaa5162a47083447c5ac758d6dc02a8b',1,'Limits< float >::finite_min'],['../struct_limits_3_01bfloat16__t_01_4.html#ae4132a37154707cc31bbc1734636cf36',1,'Limits< bfloat16_t >::finite_min']]], - ['flags_23',['Flags',['../structmlx_1_1core_1_1array_1_1_flags.html',1,'mlx::core::array']]], - ['flags_24',['flags',['../classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1',1,'mlx::core::array']]], - ['flatten_25',['flatten',['../group__ops.html#ga50aa98754b412bb57c083f6e3e95061f',1,'mlx::core::flatten(const array &a, int start_axis, int end_axis=-1, StreamOrDevice s={})'],['../group__ops.html#gaa6adbc9c86f0ab27d8810a02e9e719fd',1,'mlx::core::flatten(const array &a, StreamOrDevice s={})']]], - ['flip_26',['flip',['../struct_m_l_x_conv_params.html#a8b30cda15eda20f84f12db868f21d0ef',1,'MLXConvParams']]], - ['float16_27',['float16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6',1,'mlx::core::Dtype::float16'],['../namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec',1,'mlx::core::float16']]], - ['float16_5ft_28',['float16_t',['../backend_2metal_2kernels_2utils_8h.html#acb8ddf4a29129846b673c50ba7078773',1,'float16_t: utils.h'],['../namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52',1,'mlx::core::float16_t']]], - ['float32_29',['float32',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3',1,'mlx::core::Dtype::float32'],['../namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319',1,'mlx::core::float32']]], - ['float_5fto_5fbfloat_5fbits_30',['float_to_bfloat_bits',['../backend_2metal_2kernels_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1',1,'bf16.h']]], - ['floating_31',['floating',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17',1,'mlx::core::Dtype::floating'],['../namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a',1,'mlx::core::floating']]], - ['floor_32',['Floor',['../struct_floor.html',1,'Floor'],['../structmlx_1_1core_1_1detail_1_1_floor.html',1,'mlx::core::detail::Floor'],['../classmlx_1_1core_1_1_floor.html',1,'mlx::core::Floor'],['../classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340',1,'mlx::core::Floor::Floor()']]], - ['floor_33',['floor',['../namespacemetal.html#a020790f30c28a9982c4a83deaa258277',1,'metal::floor()'],['../namespacemetal_1_1fast.html#ac012ce1701c2339914f15cce9f2c632f',1,'metal::fast::floor()'],['../namespacemetal_1_1precise.html#a66e02b028e3cecfe7c80773460dc7925',1,'metal::precise::floor()'],['../group__ops.html#ga8d656904aa2690b60955ae745aecfc30',1,'mlx::core::floor(const array &a, StreamOrDevice s={})']]], - ['floor_5fdivide_34',['floor_divide',['../group__ops.html#ga05b4c6054d028107869511f927da01cd',1,'mlx::core']]], - ['floordivide_35',['FloorDivide',['../struct_floor_divide.html',1,'']]], - ['fma_36',['fma',['../namespacemetal.html#a6301a78d69ff14a06194ca85a0c7d326',1,'metal::fma()'],['../namespacemetal_1_1fast.html#aebcd6e951da6f7157ec219eb7a8f1ddd',1,'metal::fast::fma()'],['../namespacemetal_1_1precise.html#a49391a64d6b66fe3a212516b316a2144',1,'metal::precise::fma()']]], - ['fmax_37',['fmax',['../namespacemetal.html#a0558e56fdb94b456deea6a4eb53964ed',1,'metal::fmax()'],['../namespacemetal_1_1fast.html#a26e3257cf877154f8a0d434be0bdb034',1,'metal::fast::fmax()'],['../namespacemetal_1_1precise.html#ac7d49f921c2883caf9eec66efc4de1cd',1,'metal::precise::fmax()']]], - ['fmax3_38',['fmax3',['../namespacemetal.html#ae0c1a7ba1a7449adc64d00b2a29e67f6',1,'metal::fmax3()'],['../namespacemetal_1_1fast.html#a5c6a3a389f348e1f92e8392b765a32c7',1,'metal::fast::fmax3()'],['../namespacemetal_1_1precise.html#adf750e51bd83d569994d0967029e3bdc',1,'metal::precise::fmax3()']]], - ['fmedian3_39',['fmedian3',['../namespacemetal.html#aa35227450d943fb88cf43162aa9d8c49',1,'metal::fmedian3()'],['../namespacemetal_1_1fast.html#a923869181c3f576f2d86fba5bfa85633',1,'metal::fast::fmedian3()'],['../namespacemetal_1_1precise.html#a48d1d0be889de4043b775bb6b030a989',1,'metal::precise::fmedian3()']]], - ['fmin_40',['fmin',['../namespacemetal.html#a66ac19825ea79b8294e243ae6d0b3d3c',1,'metal::fmin()'],['../namespacemetal_1_1fast.html#a7e202ec52bf12bfabdf2265b300acbfa',1,'metal::fast::fmin()'],['../namespacemetal_1_1precise.html#a18df8eb481dfa56c92ad31b5bab8e069',1,'metal::precise::fmin()']]], - ['fmin3_41',['fmin3',['../namespacemetal.html#ae2acd25f2241f00aaf89ff48f132a879',1,'metal::fmin3()'],['../namespacemetal_1_1fast.html#a9531c6a4a520927523961e6eb6b94c1a',1,'metal::fast::fmin3()'],['../namespacemetal_1_1precise.html#a5bb710e6742996d32225a8f54a0f116c',1,'metal::precise::fmin3()']]], - ['fmod_42',['fmod',['../namespacemetal.html#a2ff952d4d596a7969b2a3035fc2fda58',1,'metal::fmod()'],['../namespacemetal_1_1fast.html#adbec09f18a89f773d7e368ef04a69526',1,'metal::fast::fmod()'],['../namespacemetal_1_1precise.html#aa99937178a1fc8158054e328eeeae648',1,'metal::precise::fmod()']]], - ['forward_43',['FORWARD',['../namespacepocketfft_1_1detail.html#aecc5444a333360628be65a6f91ceb824',1,'pocketfft::detail']]], - ['forward_44',['forward',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a63e27292b327597674deede9debe1c43',1,'pocketfft::detail::ExecC2C::forward'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#a5ec66ebb2ccd079f62b068ddd1fc7bdf',1,'pocketfft::detail::ExecR2R::forward']]], - ['four_5fstep_5ffft_45',['four_step_fft',['../backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de',1,'fft.h']]], - ['fp16_2eh_46',['fp16.h',['../fp16_8h.html',1,'']]], - ['fp16_5fbf16_5fbinop_5fhelper_47',['fp16_bf16_binop_helper',['../half__types_8h.html#a1f0d5d395d403bde764fffe4846617f9',1,'half_types.h']]], - ['fract_48',['fract',['../namespacemetal.html#a6b1c15d251aeaacb1f4338a5e152ae78',1,'metal::fract()'],['../namespacemetal_1_1fast.html#aa8bb448827503e485eb649eb3edb2d4c',1,'metal::fast::fract()'],['../namespacemetal_1_1precise.html#a0f21c19332a90df1a8ff507a813b5757',1,'metal::precise::fract()']]], - ['free_49',['free',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb',1,'mlx::core::allocator::Allocator::free()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079',1,'mlx::core::allocator::CommonAllocator::free()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a109a0a37fb0b3be381a62dc3b1a54bf0',1,'mlx::core::metal::MetalAllocator::free()'],['../namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5',1,'mlx::core::allocator::free()']]], - ['frexp_50',['frexp',['../namespacemetal.html#ac89d4ef524d21a301da6c37dbd95ff9f',1,'metal::frexp()'],['../namespacemetal_1_1fast.html#a23902df22aeaa859ef673a36381387c2',1,'metal::fast::frexp()'],['../namespacemetal_1_1precise.html#a0fbb1624c308b97380f894f92fd858b4',1,'metal::precise::frexp()']]], - ['full_51',['Full',['../classmlx_1_1core_1_1_full.html',1,'mlx::core::Full'],['../classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6',1,'mlx::core::Full::Full()']]], - ['full_52',['full',['../group__ops.html#ga7e85a476530c96ab73b894d1bddacf84',1,'mlx::core::full(std::vector< int > shape, array vals, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga9e3b15c3ec6b7922296777c5e1878d52',1,'mlx::core::full(std::vector< int > shape, array vals, StreamOrDevice s={})'],['../group__ops.html#gac34ff7f1e217b93e878053aaa5a51e58',1,'mlx::core::full(std::vector< int > shape, T val, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga5e33cf83db1a65c35e688142bd41d35c',1,'mlx::core::full(std::vector< int > shape, T val, StreamOrDevice s={})']]] + ['fence_13',['Fence',['../structmlx_1_1core_1_1metal_1_1_fence.html',1,'mlx::core::metal::Fence'],['../structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79',1,'mlx::core::metal::Fence::Fence(MTL::Fence *fence)']]], + ['fence_14',['fence',['../structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87',1,'mlx::core::metal::Fence::fence'],['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499',1,'mlx::core::metal::DeviceStream::fence']]], + ['fence_5fmtx_15',['fence_mtx',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd',1,'mlx::core::metal::DeviceStream']]], + ['fft_16',['FFT',['../classmlx_1_1core_1_1_f_f_t.html',1,'mlx::core::FFT'],['../classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839',1,'mlx::core::FFT::FFT()']]], + ['fft_17',['fft',['../namespacemlx_1_1core_1_1metal.html#a39f43360d9e916fcf7e86c919b419554',1,'mlx::core::metal::fft()'],['../backend_2metal_2kernels_2fft_8h.html#a4010b0e151e5f01e610e9c32234458c7',1,'fft(): fft.h'],['../namespacemlx_1_1core_1_1fft.html#ad672de5ca029a6925b05f03bbebe5ad3',1,'mlx::core::fft::fft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a3fe55b7b6eba32c4c8b2d206036216e0',1,'mlx::core::fft::fft(const array &a, int axis=-1, StreamOrDevice s={})']]], + ['fft_2eh_18',['fft.h',['../backend_2metal_2kernels_2fft_8h.html',1,'(Global Namespace)'],['../fft_8h.html',1,'(Global Namespace)']]], + ['fft2_19',['fft2',['../namespacemlx_1_1core_1_1fft.html#a02a7286e4b7a8ee149ec5d5b193b72d1',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a6eb0c5f8b33694ddb56748a97d17e8b7',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], + ['fftblue_20',['fftblue',['../classpocketfft_1_1detail_1_1fftblue.html',1,'pocketfft::detail::fftblue< T0 >'],['../classpocketfft_1_1detail_1_1fftblue.html#a8613b2131e7843bbca9e1cd4cc15bc01',1,'pocketfft::detail::fftblue::fftblue()']]], + ['fftn_21',['fftn',['../namespacemlx_1_1core_1_1fft.html#a26e310c739176796965e47a88c7a998f',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaa116429c2cb5bab20b464be890252c8',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a039a44197ad299a15a5847639292800c',1,'mlx::core::fft::fftn(const array &a, StreamOrDevice s={})']]], + ['filewriter_22',['FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html',1,'mlx::core::io::FileWriter'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a40b241ad540ee4aadc3a19a6b1ccfb4d',1,'mlx::core::io::FileWriter::FileWriter()']]], + ['fill_5fgpu_23',['fill_gpu',['../namespacemlx_1_1core.html#ae789dbda2a0f4e21aa0984f6a5dc986c',1,'mlx::core']]], + ['finite_5fmax_24',['finite_max',['../struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5',1,'Limits::finite_max'],['../struct_limits_3_01uint8__t_01_4.html#a55f48b89033e8c8683f8540ec6b23f02',1,'Limits< uint8_t >::finite_max'],['../struct_limits_3_01uint16__t_01_4.html#a9d517d8265ea1898b6b16e91b8595146',1,'Limits< uint16_t >::finite_max'],['../struct_limits_3_01uint32__t_01_4.html#a0698139f3fe440d7aa08ac5029d72235',1,'Limits< uint32_t >::finite_max'],['../struct_limits_3_01uint64__t_01_4.html#aff101ff38be5ccdbb9790aecb3069071',1,'Limits< uint64_t >::finite_max'],['../struct_limits_3_01int8__t_01_4.html#a24cdab873e0fb778393c69f1dc9ecf73',1,'Limits< int8_t >::finite_max'],['../struct_limits_3_01int16__t_01_4.html#acb2936d1cdbf347a9a014c8e036a5782',1,'Limits< int16_t >::finite_max'],['../struct_limits_3_01int32__t_01_4.html#aa9ed9f0e8c7400d8fc92e1cba9588794',1,'Limits< int32_t >::finite_max'],['../struct_limits_3_01int64__t_01_4.html#a6c7254b641878fa0fb9538814c45457a',1,'Limits< int64_t >::finite_max'],['../struct_limits_3_01half_01_4.html#aedaf0190aabf23da20510e558e2690b4',1,'Limits< half >::finite_max'],['../struct_limits_3_01float_01_4.html#a291eea590113fc1858b7f83f2e0c977d',1,'Limits< float >::finite_max'],['../struct_limits_3_01bfloat16__t_01_4.html#a6337dc35207b3f6f7185cd73eabac211',1,'Limits< bfloat16_t >::finite_max']]], + ['finite_5fmin_25',['finite_min',['../struct_limits.html#ae7469d21f2688797ca3e388d919ef05e',1,'Limits::finite_min'],['../struct_limits_3_01uint8__t_01_4.html#a60cea662971b09f78ef19f1da4760b73',1,'Limits< uint8_t >::finite_min'],['../struct_limits_3_01uint16__t_01_4.html#a1a7c029eccba4ab89743abdfaabfa7b4',1,'Limits< uint16_t >::finite_min'],['../struct_limits_3_01uint32__t_01_4.html#ad5d811fce62f44488190ff01d9e7608b',1,'Limits< uint32_t >::finite_min'],['../struct_limits_3_01uint64__t_01_4.html#a6556e7de6e0670da8f768bbc4479deae',1,'Limits< uint64_t >::finite_min'],['../struct_limits_3_01int8__t_01_4.html#a592797ce82cc2f7e27b0c477165b3452',1,'Limits< int8_t >::finite_min'],['../struct_limits_3_01int16__t_01_4.html#a158c4dbc9333939691b1637478e28e39',1,'Limits< int16_t >::finite_min'],['../struct_limits_3_01int32__t_01_4.html#ad9777dc6a84dcb9c63b598189ff0a4ff',1,'Limits< int32_t >::finite_min'],['../struct_limits_3_01int64__t_01_4.html#af80726162b44a741aae679f1fe85142a',1,'Limits< int64_t >::finite_min'],['../struct_limits_3_01half_01_4.html#a98d153748be68dbb428c50df3c0285ab',1,'Limits< half >::finite_min'],['../struct_limits_3_01float_01_4.html#afaa5162a47083447c5ac758d6dc02a8b',1,'Limits< float >::finite_min'],['../struct_limits_3_01bfloat16__t_01_4.html#ae4132a37154707cc31bbc1734636cf36',1,'Limits< bfloat16_t >::finite_min']]], + ['flags_26',['Flags',['../structmlx_1_1core_1_1array_1_1_flags.html',1,'mlx::core::array']]], + ['flags_27',['flags',['../classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1',1,'mlx::core::array']]], + ['flatten_28',['flatten',['../group__ops.html#ga50aa98754b412bb57c083f6e3e95061f',1,'mlx::core::flatten(const array &a, int start_axis, int end_axis=-1, StreamOrDevice s={})'],['../group__ops.html#gaa6adbc9c86f0ab27d8810a02e9e719fd',1,'mlx::core::flatten(const array &a, StreamOrDevice s={})']]], + ['flip_29',['flip',['../struct_m_l_x_conv_params.html#a8b30cda15eda20f84f12db868f21d0ef',1,'MLXConvParams']]], + ['float16_30',['float16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa098e7844282e240fdee28a9dac11c1c6',1,'mlx::core::Dtype::float16'],['../namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec',1,'mlx::core::float16']]], + ['float16_5ft_31',['float16_t',['../backend_2metal_2kernels_2utils_8h.html#acb8ddf4a29129846b673c50ba7078773',1,'float16_t: utils.h'],['../namespacemlx_1_1core.html#afbd2769c30e721afc85a7b9fb55b8e52',1,'mlx::core::float16_t']]], + ['float32_32',['float32',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daad33ec2b0bbea6d471a4706cea030e1e3',1,'mlx::core::Dtype::float32'],['../namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319',1,'mlx::core::float32']]], + ['float_5fto_5fbfloat_5fbits_33',['float_to_bfloat_bits',['../backend_2metal_2kernels_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1',1,'bf16.h']]], + ['floating_34',['floating',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da374515b23d6f106696387776a6077d17',1,'mlx::core::Dtype::floating'],['../namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a',1,'mlx::core::floating']]], + ['floor_35',['Floor',['../struct_floor.html',1,'Floor'],['../structmlx_1_1core_1_1detail_1_1_floor.html',1,'mlx::core::detail::Floor'],['../classmlx_1_1core_1_1_floor.html',1,'mlx::core::Floor'],['../classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340',1,'mlx::core::Floor::Floor()']]], + ['floor_36',['floor',['../namespacemetal.html#a020790f30c28a9982c4a83deaa258277',1,'metal::floor()'],['../namespacemetal_1_1fast.html#ac012ce1701c2339914f15cce9f2c632f',1,'metal::fast::floor()'],['../namespacemetal_1_1precise.html#a66e02b028e3cecfe7c80773460dc7925',1,'metal::precise::floor()'],['../group__ops.html#ga8d656904aa2690b60955ae745aecfc30',1,'mlx::core::floor(const array &a, StreamOrDevice s={})']]], + ['floor_5fdivide_37',['floor_divide',['../group__ops.html#ga05b4c6054d028107869511f927da01cd',1,'mlx::core']]], + ['floordivide_38',['FloorDivide',['../struct_floor_divide.html',1,'']]], + ['fma_39',['fma',['../namespacemetal.html#a6301a78d69ff14a06194ca85a0c7d326',1,'metal::fma()'],['../namespacemetal_1_1fast.html#aebcd6e951da6f7157ec219eb7a8f1ddd',1,'metal::fast::fma()'],['../namespacemetal_1_1precise.html#a49391a64d6b66fe3a212516b316a2144',1,'metal::precise::fma()']]], + ['fmax_40',['fmax',['../namespacemetal.html#a0558e56fdb94b456deea6a4eb53964ed',1,'metal::fmax()'],['../namespacemetal_1_1fast.html#a26e3257cf877154f8a0d434be0bdb034',1,'metal::fast::fmax()'],['../namespacemetal_1_1precise.html#ac7d49f921c2883caf9eec66efc4de1cd',1,'metal::precise::fmax()']]], + ['fmax3_41',['fmax3',['../namespacemetal.html#ae0c1a7ba1a7449adc64d00b2a29e67f6',1,'metal::fmax3()'],['../namespacemetal_1_1fast.html#a5c6a3a389f348e1f92e8392b765a32c7',1,'metal::fast::fmax3()'],['../namespacemetal_1_1precise.html#adf750e51bd83d569994d0967029e3bdc',1,'metal::precise::fmax3()']]], + ['fmedian3_42',['fmedian3',['../namespacemetal.html#aa35227450d943fb88cf43162aa9d8c49',1,'metal::fmedian3()'],['../namespacemetal_1_1fast.html#a923869181c3f576f2d86fba5bfa85633',1,'metal::fast::fmedian3()'],['../namespacemetal_1_1precise.html#a48d1d0be889de4043b775bb6b030a989',1,'metal::precise::fmedian3()']]], + ['fmin_43',['fmin',['../namespacemetal.html#a66ac19825ea79b8294e243ae6d0b3d3c',1,'metal::fmin()'],['../namespacemetal_1_1fast.html#a7e202ec52bf12bfabdf2265b300acbfa',1,'metal::fast::fmin()'],['../namespacemetal_1_1precise.html#a18df8eb481dfa56c92ad31b5bab8e069',1,'metal::precise::fmin()']]], + ['fmin3_44',['fmin3',['../namespacemetal.html#ae2acd25f2241f00aaf89ff48f132a879',1,'metal::fmin3()'],['../namespacemetal_1_1fast.html#a9531c6a4a520927523961e6eb6b94c1a',1,'metal::fast::fmin3()'],['../namespacemetal_1_1precise.html#a5bb710e6742996d32225a8f54a0f116c',1,'metal::precise::fmin3()']]], + ['fmod_45',['fmod',['../namespacemetal.html#a2ff952d4d596a7969b2a3035fc2fda58',1,'metal::fmod()'],['../namespacemetal_1_1fast.html#adbec09f18a89f773d7e368ef04a69526',1,'metal::fast::fmod()'],['../namespacemetal_1_1precise.html#aa99937178a1fc8158054e328eeeae648',1,'metal::precise::fmod()']]], + ['forward_46',['FORWARD',['../namespacepocketfft_1_1detail.html#aecc5444a333360628be65a6f91ceb824',1,'pocketfft::detail']]], + ['forward_47',['forward',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a63e27292b327597674deede9debe1c43',1,'pocketfft::detail::ExecC2C::forward'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#a5ec66ebb2ccd079f62b068ddd1fc7bdf',1,'pocketfft::detail::ExecR2R::forward']]], + ['four_5fstep_5ffft_48',['four_step_fft',['../backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de',1,'fft.h']]], + ['fp16_2eh_49',['fp16.h',['../fp16_8h.html',1,'']]], + ['fp16_5fbf16_5fbinop_5fhelper_50',['fp16_bf16_binop_helper',['../half__types_8h.html#a1f0d5d395d403bde764fffe4846617f9',1,'half_types.h']]], + ['fract_51',['fract',['../namespacemetal.html#a6b1c15d251aeaacb1f4338a5e152ae78',1,'metal::fract()'],['../namespacemetal_1_1fast.html#aa8bb448827503e485eb649eb3edb2d4c',1,'metal::fast::fract()'],['../namespacemetal_1_1precise.html#a0f21c19332a90df1a8ff507a813b5757',1,'metal::precise::fract()']]], + ['free_52',['free',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb',1,'mlx::core::allocator::Allocator::free()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079',1,'mlx::core::allocator::CommonAllocator::free()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a109a0a37fb0b3be381a62dc3b1a54bf0',1,'mlx::core::metal::MetalAllocator::free()'],['../namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5',1,'mlx::core::allocator::free()']]], + ['frexp_53',['frexp',['../namespacemetal.html#ac89d4ef524d21a301da6c37dbd95ff9f',1,'metal::frexp()'],['../namespacemetal_1_1fast.html#a23902df22aeaa859ef673a36381387c2',1,'metal::fast::frexp()'],['../namespacemetal_1_1precise.html#a0fbb1624c308b97380f894f92fd858b4',1,'metal::precise::frexp()']]], + ['full_54',['Full',['../classmlx_1_1core_1_1_full.html',1,'mlx::core::Full'],['../classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6',1,'mlx::core::Full::Full()']]], + ['full_55',['full',['../group__ops.html#ga7e85a476530c96ab73b894d1bddacf84',1,'mlx::core::full(std::vector< int > shape, array vals, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga9e3b15c3ec6b7922296777c5e1878d52',1,'mlx::core::full(std::vector< int > shape, array vals, StreamOrDevice s={})'],['../group__ops.html#gac34ff7f1e217b93e878053aaa5a51e58',1,'mlx::core::full(std::vector< int > shape, T val, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga5e33cf83db1a65c35e688142bd41d35c',1,'mlx::core::full(std::vector< int > shape, T val, StreamOrDevice s={})']]] ]; diff --git a/docs/build/html/search/all_7.js b/docs/build/html/search/all_7.js index 9ff2fcb43..b05ee4a54 100644 --- a/docs/build/html/search/all_7.js +++ b/docs/build/html/search/all_7.js @@ -40,7 +40,7 @@ var searchData= ['generalreduce_37',['GeneralReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65a3622f95ed0ec99657f9ad8ef39ec2184',1,'mlx::core']]], ['generalstridedreduce_38',['GeneralStridedReduce',['../namespacemlx_1_1core.html#a12412984a1cabfe1189942c898f8fe65ad999b1a8ae1d7436efb5ffdfafb1dd3d',1,'mlx::core']]], ['generic_39',['generic',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da3d517f8924ac7fd03699a29d97dc52d9',1,'mlx::core::Dtype::generic'],['../namespacemlx_1_1core.html#a34d69c4d46aa9b2a4a79dba7aba093d2',1,'mlx::core::generic']]], - ['get_5f2d_5fgrid_5fdims_40',['get_2d_grid_dims',['../namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c',1,'mlx::core']]], + ['get_5f2d_5fgrid_5fdims_40',['get_2d_grid_dims',['../namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c',1,'mlx::core::get_2d_grid_dims(const std::vector< int > &shape, const std::vector< size_t > &strides)'],['../namespacemlx_1_1core.html#a187b9a932c7b3d67ee42d9d12fcb1bb1',1,'mlx::core::get_2d_grid_dims(const std::vector< int > &shape, const std::vector< size_t > &strides, size_t divisor)']]], ['get_5factive_5fmemory_41',['get_active_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a7a3ad4e33d57a47474c98e2f88e775d7',1,'mlx::core::metal::MetalAllocator::get_active_memory()'],['../namespacemlx_1_1core_1_1metal.html#a7b75c2639016ac4d350fa6c9da386667',1,'mlx::core::metal::get_active_memory()']]], ['get_5farange_5fkernel_42',['get_arange_kernel',['../namespacemlx_1_1core.html#a76f614e9956a6ca05a9be4db5a483446',1,'mlx::core']]], ['get_5fbinary_5fkernel_43',['get_binary_kernel',['../namespacemlx_1_1core.html#a4decd4a07d91487e6903f6e3c8b7513a',1,'mlx::core']]], diff --git a/docs/build/html/search/all_9.js b/docs/build/html/search/all_9.js index a705efa01..3d223faa0 100644 --- a/docs/build/html/search/all_9.js +++ b/docs/build/html/search/all_9.js @@ -23,60 +23,61 @@ var searchData= ['indices_20',['Indices',['../struct_indices.html',1,'']]], ['inexact_21',['inexact',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2dae03b116564cd944b048fde87dbd4d5c9',1,'mlx::core::Dtype::inexact'],['../namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534',1,'mlx::core::inexact']]], ['infinity_22',['infinity',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a61eb741e7af49046beb863abf023b206',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['init_23',['init',['../struct_cum_sum.html#a987f7a15eded60081b74abc103d3054b',1,'CumSum::init'],['../struct_cum_prod.html#acf2ae2daa84d477b413deea679cab9e5',1,'CumProd::init'],['../struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c',1,'CumProd< bool >::init'],['../struct_cum_max.html#a16480052a2eeb4340e546838aab59cc4',1,'CumMax::init'],['../struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9',1,'CumMin::init'],['../struct_less_than.html#abf97a6b0163048e4ba96460939dbd3a3',1,'LessThan::init'],['../namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d',1,'mlx::core::distributed::init()']]], + ['init_23',['init',['../struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c',1,'CumProd< bool >::init'],['../struct_cum_max.html#a16480052a2eeb4340e546838aab59cc4',1,'CumMax::init'],['../struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9',1,'CumMin::init'],['../struct_less_than.html#abf97a6b0163048e4ba96460939dbd3a3',1,'LessThan::init'],['../namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d',1,'mlx::core::distributed::init()']]], ['init_5freduce_24',['init_reduce',['../reduce__init_8h.html#a0088604ac2eaa6940689ff12c4ba5fc2',1,'reduce_init.h']]], ['inner_25',['inner',['../group__ops.html#ga654fec16a9746b390916697a2ab2546e',1,'mlx::core']]], ['inner_5flooper_26',['inner_looper',['../structlooped__elem__to__loc.html#a42c76764640618d721c48ef6b4f59189',1,'looped_elem_to_loc']]], ['inp_5fjump_5fc_27',['inp_jump_c',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a78d30e843d65d1829623afb0b607f0a5',1,'mlx::steel::ImplicitGemmConv2DParams']]], ['inp_5fjump_5fh_28',['inp_jump_h',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a03685a4066cdb11ffb647408e2c5b122',1,'mlx::steel::ImplicitGemmConv2DParams']]], ['inp_5fjump_5fw_29',['inp_jump_w',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#acf168c72f4a86b72b8f5f386f07c9d8c',1,'mlx::steel::ImplicitGemmConv2DParams']]], - ['inputs_30',['inputs',['../classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff',1,'mlx::core::array::inputs() const'],['../classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f',1,'mlx::core::array::inputs()']]], - ['instantiate_5fdefault_5flimit_31',['instantiate_default_limit',['../backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c',1,'utils.h']]], - ['instantiate_5ffloat_5flimit_32',['instantiate_float_limit',['../backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a',1,'utils.h']]], - ['instantiate_5fkernel_33',['instantiate_kernel',['../defines_8h.html#a0cc4a821c1090d4183ff3a31da7e9f7b',1,'defines.h']]], - ['instantiate_5fmetal_5fmath_5ffuncs_34',['instantiate_metal_math_funcs',['../bf16__math_8h.html#a9e9f0fdd6e304522bc88acd22c576842',1,'bf16_math.h']]], - ['instantiate_5fmetal_5fsimd_5fcomm_5ffuncs_35',['instantiate_metal_simd_comm_funcs',['../bf16__math_8h.html#aecc11cb898846d01bfc9faa109fcf791',1,'bf16_math.h']]], - ['instantiate_5fmetal_5fsimd_5freduction_5ffuncs_36',['instantiate_metal_simd_reduction_funcs',['../bf16__math_8h.html#a51688bc24fc9292aaec5f54a58eaa2d0',1,'bf16_math.h']]], - ['int16_37',['int16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23',1,'mlx::core::Dtype::int16'],['../namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07',1,'mlx::core::int16']]], - ['int32_38',['int32',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f',1,'mlx::core::Dtype::int32'],['../namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3',1,'mlx::core::int32']]], - ['int64_39',['int64',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8',1,'mlx::core::Dtype::int64'],['../namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8',1,'mlx::core::int64']]], - ['int8_40',['int8',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac',1,'mlx::core::Dtype::int8'],['../namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672',1,'mlx::core::int8']]], - ['integer_41',['integer',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8',1,'mlx::core::Dtype::integer'],['../namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b',1,'mlx::core::integer']]], - ['intorfloat_42',['IntOrFloat',['../unionmlx_1_1core_1_1detail_1_1_int_or_float.html',1,'mlx::core::detail']]], - ['intracing_43',['InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html',1,'mlx::core::detail::InTracing'],['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a7a77f19391498afa5dcea3509d241a70',1,'mlx::core::detail::InTracing::InTracing()']]], - ['inv_44',['inv',['../struct_read_writer.html#a773fa8524515bdc2ff8b0e2060741813',1,'ReadWriter::inv'],['../namespacemlx_1_1core_1_1linalg.html#ad966a0b6bff176c9f933534ed62389a2',1,'mlx::core::linalg::inv()']]], - ['inv_5f_45',['inv_',['../backend_2metal_2kernels_2fft_8h.html#a7a83318497519ff3ff0141b7d511ed38',1,'fft.h']]], - ['inv_5falpha_46',['INV_ALPHA',['../struct_m_l_x_scaled_dot_product_attention_params.html#a7461e0e17cdc7d3fed80bb00d58d8644',1,'MLXScaledDotProductAttentionParams']]], - ['inverse_47',['Inverse',['../classmlx_1_1core_1_1_inverse.html',1,'mlx::core::Inverse'],['../classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad',1,'mlx::core::Inverse::Inverse()']]], - ['io_2eh_48',['io.h',['../io_8h.html',1,'']]], - ['iofs_49',['iofs',['../classpocketfft_1_1detail_1_1multi__iter.html#ad33360d4a8ab8e6d72efadc6f9cb5bfa',1,'pocketfft::detail::multi_iter::iofs(size_t i) const'],['../classpocketfft_1_1detail_1_1multi__iter.html#a97462d97bdca6419d8d2f37c2031fe83',1,'pocketfft::detail::multi_iter::iofs(size_t j, size_t i) const']]], - ['irfft_50',['irfft',['../namespacemlx_1_1core_1_1fft.html#aafa721d0492e9f74913a6e86b4896ad8',1,'mlx::core::fft::irfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#afbd0035a3cf91f428838de1fcf01a3a3',1,'mlx::core::fft::irfft(const array &a, int axis=-1, StreamOrDevice s={})']]], - ['irfft2_51',['irfft2',['../namespacemlx_1_1core_1_1fft.html#a35754b00e98d7ef37ce8230c8887a933',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#af7c7bbbbce26c2775a77473502a8de02',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], - ['irfftn_52',['irfftn',['../namespacemlx_1_1core_1_1fft.html#a33f2973ea1b621e67064e46136d2960f',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a1c9ad11121c5879d5c04bbde2ee238c3',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaf5a7ef93b3426b94c2363a23a5a5b36',1,'mlx::core::fft::irfftn(const array &a, StreamOrDevice s={})']]], - ['is_53',['iS',['../struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6',1,'MLXConvParams']]], - ['is_5farray_5fv_54',['is_array_v',['../namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af',1,'mlx::core']]], - ['is_5farrays_5fv_55',['is_arrays_v',['../namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda',1,'mlx::core']]], - ['is_5favailable_56',['is_available',['../classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40',1,'mlx::core::array::is_available()'],['../namespacemlx_1_1core_1_1metal.html#a0cdf2c08c7bc0927a86070adc206987f',1,'mlx::core::metal::is_available()'],['../namespacemlx_1_1core_1_1distributed.html#a95655473cd0032c06e5fe3fca85aeef3',1,'mlx::core::distributed::is_available()']]], - ['is_5fdonatable_57',['is_donatable',['../classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087',1,'mlx::core::array::is_donatable()'],['../namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84',1,'mlx::core::is_donatable()']]], - ['is_5fequivalent_58',['is_equivalent',['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#af08b1294f3f93505a96fdfa85b1edd62',1,'mlx::core::fast::ScaledDotProductAttention::is_equivalent()'],['../classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd',1,'mlx::core::Primitive::is_equivalent()'],['../classmlx_1_1core_1_1_abs.html#ab6f0ec56bc7c048382297e12dabadc67',1,'mlx::core::Abs::is_equivalent()'],['../classmlx_1_1core_1_1_add.html#aba0a35410c3aac53d0f7a0c283d9ee3f',1,'mlx::core::Add::is_equivalent()'],['../classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f',1,'mlx::core::AddMM::is_equivalent()'],['../classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35',1,'mlx::core::Arange::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cos.html#a39557461e3235801886675a9b7d25bf5',1,'mlx::core::ArcCos::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6928e827b9ac2e86e7d5b02b78150eee',1,'mlx::core::ArcCosh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sin.html#a13b5e39eeccaf32d94b8eb85b3b753ab',1,'mlx::core::ArcSin::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sinh.html#a63c7a765c7906242dc3371deec094f0f',1,'mlx::core::ArcSinh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan.html#a0e5b5fc7218143ecd0a8666d9137c34c',1,'mlx::core::ArcTan::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan2.html#aeaee58cd803d3ebf0b76574a409682cc',1,'mlx::core::ArcTan2::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tanh.html#ac8ecdd640043dab0461d49d7650679a2',1,'mlx::core::ArcTanh::is_equivalent()'],['../classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a',1,'mlx::core::ArgPartition::is_equivalent()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97',1,'mlx::core::ArgReduce::is_equivalent()'],['../classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845',1,'mlx::core::ArgSort::is_equivalent()'],['../classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af',1,'mlx::core::AsType::is_equivalent()'],['../classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094',1,'mlx::core::AsStrided::is_equivalent()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8',1,'mlx::core::BitwiseBinary::is_equivalent()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160',1,'mlx::core::BlockMaskedMM::is_equivalent()'],['../classmlx_1_1core_1_1_gather_m_m.html#a163f17f6ce2c002f22e81b302777342b',1,'mlx::core::GatherMM::is_equivalent()'],['../classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616',1,'mlx::core::Broadcast::is_equivalent()'],['../classmlx_1_1core_1_1_ceil.html#aacd90acb56eb0649c1cef807aa21df52',1,'mlx::core::Ceil::is_equivalent()'],['../classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10',1,'mlx::core::Compiled::is_equivalent()'],['../classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2',1,'mlx::core::Concatenate::is_equivalent()'],['../classmlx_1_1core_1_1_conjugate.html#af42f00a790c6bc5572bd8fe9e5b36c5e',1,'mlx::core::Conjugate::is_equivalent()'],['../classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de',1,'mlx::core::Convolution::is_equivalent()'],['../classmlx_1_1core_1_1_copy.html#afcfa39465015f638e294aa954ea0f3da',1,'mlx::core::Copy::is_equivalent()'],['../classmlx_1_1core_1_1_cos.html#ab611ca38c987915659f7ffcce0370417',1,'mlx::core::Cos::is_equivalent()'],['../classmlx_1_1core_1_1_cosh.html#ae0bacccaf501f5349db0c13cca776ff9',1,'mlx::core::Cosh::is_equivalent()'],['../classmlx_1_1core_1_1_divide.html#a3dda091f05c4164c29bb8129e9712650',1,'mlx::core::Divide::is_equivalent()'],['../classmlx_1_1core_1_1_div_mod.html#af5fcf8ec8515d46844cbeeab6dafb38a',1,'mlx::core::DivMod::is_equivalent()'],['../classmlx_1_1core_1_1_select.html#afc3c333fac7f902c98839921ef2874c8',1,'mlx::core::Select::is_equivalent()'],['../classmlx_1_1core_1_1_remainder.html#a802039faaa2ed7b763ec3d7debcce814',1,'mlx::core::Remainder::is_equivalent()'],['../classmlx_1_1core_1_1_equal.html#a58c1c5003e43f47dc0788c1851deaa02',1,'mlx::core::Equal::is_equivalent()'],['../classmlx_1_1core_1_1_erf.html#abe99dfbc2954c3a7d5dec56ab165ee82',1,'mlx::core::Erf::is_equivalent()'],['../classmlx_1_1core_1_1_erf_inv.html#aaac9e3b454ba564f9c6e804ab6562832',1,'mlx::core::ErfInv::is_equivalent()'],['../classmlx_1_1core_1_1_exp.html#ac6e44bffe7a643ab4ca51e74c7328357',1,'mlx::core::Exp::is_equivalent()'],['../classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06',1,'mlx::core::FFT::is_equivalent()'],['../classmlx_1_1core_1_1_floor.html#a24b64feb026c4fcd02fc481cffdb1c94',1,'mlx::core::Floor::is_equivalent()'],['../classmlx_1_1core_1_1_full.html#afafcbcae1e28597fe8f7fde289105792',1,'mlx::core::Full::is_equivalent()'],['../classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa',1,'mlx::core::Gather::is_equivalent()'],['../classmlx_1_1core_1_1_greater.html#a6877a6888614a618dc64296763ccabb1',1,'mlx::core::Greater::is_equivalent()'],['../classmlx_1_1core_1_1_greater_equal.html#a3daef8596b963026b602019bc56fc5fc',1,'mlx::core::GreaterEqual::is_equivalent()'],['../classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8',1,'mlx::core::Hadamard::is_equivalent()'],['../classmlx_1_1core_1_1_imag.html#a51c15ae82855edebba2ba779516465f5',1,'mlx::core::Imag::is_equivalent()'],['../classmlx_1_1core_1_1_less.html#a7d6ed6353a0dcefebd008026dbd3cd63',1,'mlx::core::Less::is_equivalent()'],['../classmlx_1_1core_1_1_less_equal.html#a76ee1438cf4bd109eae4e0b3472b26af',1,'mlx::core::LessEqual::is_equivalent()'],['../classmlx_1_1core_1_1_log.html#a2fc58ea4ca744db493b947d1136d05f8',1,'mlx::core::Log::is_equivalent()'],['../classmlx_1_1core_1_1_logical_not.html#aba53675da351cd9b71a73d475b4bbe99',1,'mlx::core::LogicalNot::is_equivalent()'],['../classmlx_1_1core_1_1_logical_and.html#a9572c35f72e0db2f7f86bbf42438a6be',1,'mlx::core::LogicalAnd::is_equivalent()'],['../classmlx_1_1core_1_1_logical_or.html#a9c8b10a5cf5c69fdc2362390197e4e71',1,'mlx::core::LogicalOr::is_equivalent()'],['../classmlx_1_1core_1_1_log_add_exp.html#a3cf9a202c05aff39919d713d6e2b32e4',1,'mlx::core::LogAddExp::is_equivalent()'],['../classmlx_1_1core_1_1_matmul.html#aab372b59eae0840fc4f75ef5719a2630',1,'mlx::core::Matmul::is_equivalent()'],['../classmlx_1_1core_1_1_maximum.html#a21fe93fbd7799682f481260aee8bdb46',1,'mlx::core::Maximum::is_equivalent()'],['../classmlx_1_1core_1_1_minimum.html#a56c54ee3293cc2cd84462b9ec7ac36b4',1,'mlx::core::Minimum::is_equivalent()'],['../classmlx_1_1core_1_1_multiply.html#ae288159fa2d6d35087a85aca8eafa9b2',1,'mlx::core::Multiply::is_equivalent()'],['../classmlx_1_1core_1_1_negative.html#ac2a4d8159c548639d6289980c8975823',1,'mlx::core::Negative::is_equivalent()'],['../classmlx_1_1core_1_1_not_equal.html#ac12fd6b3e2f2e7e4e622b59badf2c73d',1,'mlx::core::NotEqual::is_equivalent()'],['../classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f',1,'mlx::core::NumberOfElements::is_equivalent()'],['../classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b',1,'mlx::core::Pad::is_equivalent()'],['../classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8',1,'mlx::core::Partition::is_equivalent()'],['../classmlx_1_1core_1_1_power.html#a76b4ec9d1ff07f06189e414480453d68',1,'mlx::core::Power::is_equivalent()'],['../classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1',1,'mlx::core::QuantizedMatmul::is_equivalent()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11',1,'mlx::core::GatherQMM::is_equivalent()'],['../classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6',1,'mlx::core::RandomBits::is_equivalent()'],['../classmlx_1_1core_1_1_real.html#a6d9bed396862a9e9d6abfbdcd8d8d239',1,'mlx::core::Real::is_equivalent()'],['../classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3',1,'mlx::core::Reshape::is_equivalent()'],['../classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e',1,'mlx::core::Reduce::is_equivalent()'],['../classmlx_1_1core_1_1_round.html#aeb3d8607bbba7345a3142d4cbd4e6927',1,'mlx::core::Round::is_equivalent()'],['../classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6',1,'mlx::core::Scan::is_equivalent()'],['../classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f',1,'mlx::core::Scatter::is_equivalent()'],['../classmlx_1_1core_1_1_sigmoid.html#a04814ba1b0edf8299d5ca1bcb8749d8e',1,'mlx::core::Sigmoid::is_equivalent()'],['../classmlx_1_1core_1_1_sign.html#a8c0934acbcc4b146e5aacd35a8c445bb',1,'mlx::core::Sign::is_equivalent()'],['../classmlx_1_1core_1_1_sin.html#af00b0e5516f884996ce7a97e6c1e3e6a',1,'mlx::core::Sin::is_equivalent()'],['../classmlx_1_1core_1_1_sinh.html#adcb1878996fd4902cd550042dd6ad70d',1,'mlx::core::Sinh::is_equivalent()'],['../classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0',1,'mlx::core::Slice::is_equivalent()'],['../classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119',1,'mlx::core::SliceUpdate::is_equivalent()'],['../classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728',1,'mlx::core::Softmax::is_equivalent()'],['../classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511',1,'mlx::core::Sort::is_equivalent()'],['../classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345',1,'mlx::core::Split::is_equivalent()'],['../classmlx_1_1core_1_1_square.html#a6abc881d44071019aa15481e5ea75ab2',1,'mlx::core::Square::is_equivalent()'],['../classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46',1,'mlx::core::Sqrt::is_equivalent()'],['../classmlx_1_1core_1_1_stop_gradient.html#a327539298b21d800d26482b94fce41b3',1,'mlx::core::StopGradient::is_equivalent()'],['../classmlx_1_1core_1_1_subtract.html#af1c05e1e3f703ba916d54f8ccbbd102b',1,'mlx::core::Subtract::is_equivalent()'],['../classmlx_1_1core_1_1_tan.html#afdf46288e7f60ea7f878688347dff7e4',1,'mlx::core::Tan::is_equivalent()'],['../classmlx_1_1core_1_1_tanh.html#a0692a1de2373b86eb394252ed4fecfda',1,'mlx::core::Tanh::is_equivalent()'],['../classmlx_1_1core_1_1_uniform.html#abb6048807a7c5b2e35a77e06a17f801b',1,'mlx::core::Uniform::is_equivalent()'],['../classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64',1,'mlx::core::View::is_equivalent()'],['../classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab',1,'mlx::core::Transpose::is_equivalent()']]], - ['is_5fmetal_5fatomic_59',['is_metal_atomic',['../atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24',1,'atomic.h']]], - ['is_5fopen_60',['is_open',['../classmlx_1_1core_1_1io_1_1_reader.html#a780f504058bd9c80cb3d105046a9f985',1,'mlx::core::io::Reader::is_open()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a85aa36bdb0dbfb8c5b6cfd955b03417a',1,'mlx::core::io::Writer::is_open()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a653009adbcbce8248bc666df502fdbde',1,'mlx::core::io::ParallelFileReader::is_open()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#ad5d2ee671a81700cb1658c41309d6676',1,'mlx::core::io::FileWriter::is_open()']]], - ['is_5fpower_5fof_5f2_61',['is_power_of_2',['../namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32',1,'mlx::core']]], - ['is_5fpower_5fof_5f2_5f_62',['is_power_of_2_',['../backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c',1,'fft.h']]], - ['is_5fready_63',['is_ready',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#ab41ecc5adb6187aa2682ca190fd920f3',1,'pocketfft::detail::threading::latch']]], - ['is_5fsame_5fshape_64',['is_same_shape',['../namespacemlx_1_1core.html#ad4b664de4a4abd305827b30879b9da33',1,'mlx::core']]], - ['is_5fscalar_65',['is_scalar',['../namespacemlx_1_1core.html#a985c60929757190e0b4ec51f57c767d0',1,'mlx::core']]], - ['is_5fsignaled_66',['is_signaled',['../classmlx_1_1core_1_1_event.html#a05a9a3de88185b4a89e154242b4e770a',1,'mlx::core::Event']]], - ['is_5fstatic_5fcast_67',['is_static_cast',['../namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f',1,'mlx::core']]], - ['is_5ftracer_68',['is_tracer',['../classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c',1,'mlx::core::array']]], - ['isclose_69',['isclose',['../group__ops.html#ga51eac95c04400921c54716de14b52491',1,'mlx::core']]], - ['isfinite_70',['isfinite',['../group__ops.html#ga725ff0789f934b1fdd54ee29e47022ff',1,'mlx::core']]], - ['isinf_71',['isinf',['../group__ops.html#ga8fc238d5e5d1153e69da8b36015d9844',1,'mlx::core']]], - ['isnan_72',['isnan',['../namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb',1,'metal::isnan()'],['../group__ops.html#ga175592792471b0ffb45196dca4711ba6',1,'mlx::core::isnan(const array &a, StreamOrDevice s={})']]], - ['isneginf_73',['isneginf',['../group__ops.html#ga1940523da381ed7be50656a3bc465ff3',1,'mlx::core']]], - ['isposinf_74',['isposinf',['../group__ops.html#gad80f7c4a58c12b6cb30a8b9a73008993',1,'mlx::core']]], - ['issubdtype_75',['issubdtype',['../namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7',1,'mlx::core::issubdtype(const Dtype &a, const Dtype &b)'],['../namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype &b)'],['../namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8',1,'mlx::core::issubdtype(const Dtype &a, const Dtype::Category &b)'],['../namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype::Category &b)']]], - ['item_76',['item',['../classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99',1,'mlx::core::array::item()'],['../classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7',1,'mlx::core::array::item() const']]], - ['itemsize_77',['itemsize',['../classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0',1,'mlx::core::array']]], - ['iterator_5fcategory_78',['iterator_category',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d',1,'mlx::core::array::ArrayIterator']]] + ['inputs_30',['inputs',['../classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff',1,'mlx::core::array::inputs() const'],['../classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f',1,'mlx::core::array::inputs()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509',1,'mlx::core::metal::CommandEncoder::inputs()']]], + ['insert_31',['insert',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#aaafe1a4305a107d4bcdd4f35d3df09b3',1,'mlx::core::metal::ResidencySet']]], + ['instantiate_5fdefault_5flimit_32',['instantiate_default_limit',['../backend_2metal_2kernels_2utils_8h.html#abedffa358e7ba7782cc78d6772064c7c',1,'utils.h']]], + ['instantiate_5ffloat_5flimit_33',['instantiate_float_limit',['../backend_2metal_2kernels_2utils_8h.html#a1e520e23f58ca645dea1ac20998d987a',1,'utils.h']]], + ['instantiate_5fkernel_34',['instantiate_kernel',['../defines_8h.html#a0cc4a821c1090d4183ff3a31da7e9f7b',1,'defines.h']]], + ['instantiate_5fmetal_5fmath_5ffuncs_35',['instantiate_metal_math_funcs',['../bf16__math_8h.html#a9e9f0fdd6e304522bc88acd22c576842',1,'bf16_math.h']]], + ['instantiate_5fmetal_5fsimd_5fcomm_5ffuncs_36',['instantiate_metal_simd_comm_funcs',['../bf16__math_8h.html#aecc11cb898846d01bfc9faa109fcf791',1,'bf16_math.h']]], + ['instantiate_5fmetal_5fsimd_5freduction_5ffuncs_37',['instantiate_metal_simd_reduction_funcs',['../bf16__math_8h.html#a51688bc24fc9292aaec5f54a58eaa2d0',1,'bf16_math.h']]], + ['int16_38',['int16',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daace80d5ec65b1d2a2f1049eadc100db23',1,'mlx::core::Dtype::int16'],['../namespacemlx_1_1core.html#a71ebba4ad1afa730962f0692c4f42f07',1,'mlx::core::int16']]], + ['int32_39',['int32',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa0241adbbd83925f051b694d40f02747f',1,'mlx::core::Dtype::int32'],['../namespacemlx_1_1core.html#a5d6373aad1444edc9de1eb07bfe5cad3',1,'mlx::core::int32']]], + ['int64_40',['int64',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daaff9b3f96d37353c528517bc3656a00a8',1,'mlx::core::Dtype::int64'],['../namespacemlx_1_1core.html#a9019bdc191054ada0a502c7c34cef5b8',1,'mlx::core::int64']]], + ['int8_41',['int8',['../structmlx_1_1core_1_1_dtype.html#ade845ef5dcebead13a37fe696436e1daa27c006cc56b1ba88f960cf8b5144fcac',1,'mlx::core::Dtype::int8'],['../namespacemlx_1_1core.html#a892e934e146dd938d144cee8813ca672',1,'mlx::core::int8']]], + ['integer_42',['integer',['../structmlx_1_1core_1_1_dtype.html#ac091c39cbd6686ef69aa1e5a2425aa2da157db7df530023575515d366c9b672e8',1,'mlx::core::Dtype::integer'],['../namespacemlx_1_1core.html#a074d000f25ae3ed77450e6a5fec4b38b',1,'mlx::core::integer']]], + ['intorfloat_43',['IntOrFloat',['../unionmlx_1_1core_1_1detail_1_1_int_or_float.html',1,'mlx::core::detail']]], + ['intracing_44',['InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html',1,'mlx::core::detail::InTracing'],['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a7a77f19391498afa5dcea3509d241a70',1,'mlx::core::detail::InTracing::InTracing()']]], + ['inv_45',['inv',['../struct_read_writer.html#a773fa8524515bdc2ff8b0e2060741813',1,'ReadWriter::inv'],['../namespacemlx_1_1core_1_1linalg.html#ad966a0b6bff176c9f933534ed62389a2',1,'mlx::core::linalg::inv()']]], + ['inv_5f_46',['inv_',['../backend_2metal_2kernels_2fft_8h.html#a7a83318497519ff3ff0141b7d511ed38',1,'fft.h']]], + ['inv_5falpha_47',['INV_ALPHA',['../struct_m_l_x_scaled_dot_product_attention_params.html#a7461e0e17cdc7d3fed80bb00d58d8644',1,'MLXScaledDotProductAttentionParams']]], + ['inverse_48',['Inverse',['../classmlx_1_1core_1_1_inverse.html',1,'mlx::core::Inverse'],['../classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad',1,'mlx::core::Inverse::Inverse()']]], + ['io_2eh_49',['io.h',['../io_8h.html',1,'']]], + ['iofs_50',['iofs',['../classpocketfft_1_1detail_1_1multi__iter.html#ad33360d4a8ab8e6d72efadc6f9cb5bfa',1,'pocketfft::detail::multi_iter::iofs(size_t i) const'],['../classpocketfft_1_1detail_1_1multi__iter.html#a97462d97bdca6419d8d2f37c2031fe83',1,'pocketfft::detail::multi_iter::iofs(size_t j, size_t i) const']]], + ['irfft_51',['irfft',['../namespacemlx_1_1core_1_1fft.html#aafa721d0492e9f74913a6e86b4896ad8',1,'mlx::core::fft::irfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#afbd0035a3cf91f428838de1fcf01a3a3',1,'mlx::core::fft::irfft(const array &a, int axis=-1, StreamOrDevice s={})']]], + ['irfft2_52',['irfft2',['../namespacemlx_1_1core_1_1fft.html#a35754b00e98d7ef37ce8230c8887a933',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#af7c7bbbbce26c2775a77473502a8de02',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], + ['irfftn_53',['irfftn',['../namespacemlx_1_1core_1_1fft.html#a33f2973ea1b621e67064e46136d2960f',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a1c9ad11121c5879d5c04bbde2ee238c3',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaf5a7ef93b3426b94c2363a23a5a5b36',1,'mlx::core::fft::irfftn(const array &a, StreamOrDevice s={})']]], + ['is_54',['iS',['../struct_m_l_x_conv_params.html#a72e1c3b4da0f70622cf18036bbf97fe6',1,'MLXConvParams']]], + ['is_5farray_5fv_55',['is_array_v',['../namespacemlx_1_1core.html#a01b0d64a75dfa2e95d6c7b5c53d708af',1,'mlx::core']]], + ['is_5farrays_5fv_56',['is_arrays_v',['../namespacemlx_1_1core.html#a94c1057929b390e5613304afa16dfbda',1,'mlx::core']]], + ['is_5favailable_57',['is_available',['../classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40',1,'mlx::core::array::is_available()'],['../namespacemlx_1_1core_1_1metal.html#a0cdf2c08c7bc0927a86070adc206987f',1,'mlx::core::metal::is_available()'],['../namespacemlx_1_1core_1_1distributed.html#a95655473cd0032c06e5fe3fca85aeef3',1,'mlx::core::distributed::is_available()']]], + ['is_5fdonatable_58',['is_donatable',['../classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087',1,'mlx::core::array::is_donatable()'],['../namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84',1,'mlx::core::is_donatable()']]], + ['is_5fequivalent_59',['is_equivalent',['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#af08b1294f3f93505a96fdfa85b1edd62',1,'mlx::core::fast::ScaledDotProductAttention::is_equivalent()'],['../classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd',1,'mlx::core::Primitive::is_equivalent()'],['../classmlx_1_1core_1_1_abs.html#ab6f0ec56bc7c048382297e12dabadc67',1,'mlx::core::Abs::is_equivalent()'],['../classmlx_1_1core_1_1_add.html#aba0a35410c3aac53d0f7a0c283d9ee3f',1,'mlx::core::Add::is_equivalent()'],['../classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f',1,'mlx::core::AddMM::is_equivalent()'],['../classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35',1,'mlx::core::Arange::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cos.html#a39557461e3235801886675a9b7d25bf5',1,'mlx::core::ArcCos::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6928e827b9ac2e86e7d5b02b78150eee',1,'mlx::core::ArcCosh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sin.html#a13b5e39eeccaf32d94b8eb85b3b753ab',1,'mlx::core::ArcSin::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sinh.html#a63c7a765c7906242dc3371deec094f0f',1,'mlx::core::ArcSinh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan.html#a0e5b5fc7218143ecd0a8666d9137c34c',1,'mlx::core::ArcTan::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan2.html#aeaee58cd803d3ebf0b76574a409682cc',1,'mlx::core::ArcTan2::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tanh.html#ac8ecdd640043dab0461d49d7650679a2',1,'mlx::core::ArcTanh::is_equivalent()'],['../classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a',1,'mlx::core::ArgPartition::is_equivalent()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97',1,'mlx::core::ArgReduce::is_equivalent()'],['../classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845',1,'mlx::core::ArgSort::is_equivalent()'],['../classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af',1,'mlx::core::AsType::is_equivalent()'],['../classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094',1,'mlx::core::AsStrided::is_equivalent()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8',1,'mlx::core::BitwiseBinary::is_equivalent()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160',1,'mlx::core::BlockMaskedMM::is_equivalent()'],['../classmlx_1_1core_1_1_gather_m_m.html#a163f17f6ce2c002f22e81b302777342b',1,'mlx::core::GatherMM::is_equivalent()'],['../classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616',1,'mlx::core::Broadcast::is_equivalent()'],['../classmlx_1_1core_1_1_ceil.html#aacd90acb56eb0649c1cef807aa21df52',1,'mlx::core::Ceil::is_equivalent()'],['../classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10',1,'mlx::core::Compiled::is_equivalent()'],['../classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2',1,'mlx::core::Concatenate::is_equivalent()'],['../classmlx_1_1core_1_1_conjugate.html#af42f00a790c6bc5572bd8fe9e5b36c5e',1,'mlx::core::Conjugate::is_equivalent()'],['../classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de',1,'mlx::core::Convolution::is_equivalent()'],['../classmlx_1_1core_1_1_copy.html#afcfa39465015f638e294aa954ea0f3da',1,'mlx::core::Copy::is_equivalent()'],['../classmlx_1_1core_1_1_cos.html#ab611ca38c987915659f7ffcce0370417',1,'mlx::core::Cos::is_equivalent()'],['../classmlx_1_1core_1_1_cosh.html#ae0bacccaf501f5349db0c13cca776ff9',1,'mlx::core::Cosh::is_equivalent()'],['../classmlx_1_1core_1_1_divide.html#a3dda091f05c4164c29bb8129e9712650',1,'mlx::core::Divide::is_equivalent()'],['../classmlx_1_1core_1_1_div_mod.html#af5fcf8ec8515d46844cbeeab6dafb38a',1,'mlx::core::DivMod::is_equivalent()'],['../classmlx_1_1core_1_1_select.html#afc3c333fac7f902c98839921ef2874c8',1,'mlx::core::Select::is_equivalent()'],['../classmlx_1_1core_1_1_remainder.html#a802039faaa2ed7b763ec3d7debcce814',1,'mlx::core::Remainder::is_equivalent()'],['../classmlx_1_1core_1_1_equal.html#a58c1c5003e43f47dc0788c1851deaa02',1,'mlx::core::Equal::is_equivalent()'],['../classmlx_1_1core_1_1_erf.html#abe99dfbc2954c3a7d5dec56ab165ee82',1,'mlx::core::Erf::is_equivalent()'],['../classmlx_1_1core_1_1_erf_inv.html#aaac9e3b454ba564f9c6e804ab6562832',1,'mlx::core::ErfInv::is_equivalent()'],['../classmlx_1_1core_1_1_exp.html#ac6e44bffe7a643ab4ca51e74c7328357',1,'mlx::core::Exp::is_equivalent()'],['../classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06',1,'mlx::core::FFT::is_equivalent()'],['../classmlx_1_1core_1_1_floor.html#a24b64feb026c4fcd02fc481cffdb1c94',1,'mlx::core::Floor::is_equivalent()'],['../classmlx_1_1core_1_1_full.html#afafcbcae1e28597fe8f7fde289105792',1,'mlx::core::Full::is_equivalent()'],['../classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa',1,'mlx::core::Gather::is_equivalent()'],['../classmlx_1_1core_1_1_greater.html#a6877a6888614a618dc64296763ccabb1',1,'mlx::core::Greater::is_equivalent()'],['../classmlx_1_1core_1_1_greater_equal.html#a3daef8596b963026b602019bc56fc5fc',1,'mlx::core::GreaterEqual::is_equivalent()'],['../classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8',1,'mlx::core::Hadamard::is_equivalent()'],['../classmlx_1_1core_1_1_imag.html#a51c15ae82855edebba2ba779516465f5',1,'mlx::core::Imag::is_equivalent()'],['../classmlx_1_1core_1_1_less.html#a7d6ed6353a0dcefebd008026dbd3cd63',1,'mlx::core::Less::is_equivalent()'],['../classmlx_1_1core_1_1_less_equal.html#a76ee1438cf4bd109eae4e0b3472b26af',1,'mlx::core::LessEqual::is_equivalent()'],['../classmlx_1_1core_1_1_log.html#a2fc58ea4ca744db493b947d1136d05f8',1,'mlx::core::Log::is_equivalent()'],['../classmlx_1_1core_1_1_logical_not.html#aba53675da351cd9b71a73d475b4bbe99',1,'mlx::core::LogicalNot::is_equivalent()'],['../classmlx_1_1core_1_1_logical_and.html#a9572c35f72e0db2f7f86bbf42438a6be',1,'mlx::core::LogicalAnd::is_equivalent()'],['../classmlx_1_1core_1_1_logical_or.html#a9c8b10a5cf5c69fdc2362390197e4e71',1,'mlx::core::LogicalOr::is_equivalent()'],['../classmlx_1_1core_1_1_log_add_exp.html#a3cf9a202c05aff39919d713d6e2b32e4',1,'mlx::core::LogAddExp::is_equivalent()'],['../classmlx_1_1core_1_1_matmul.html#aab372b59eae0840fc4f75ef5719a2630',1,'mlx::core::Matmul::is_equivalent()'],['../classmlx_1_1core_1_1_maximum.html#a21fe93fbd7799682f481260aee8bdb46',1,'mlx::core::Maximum::is_equivalent()'],['../classmlx_1_1core_1_1_minimum.html#a56c54ee3293cc2cd84462b9ec7ac36b4',1,'mlx::core::Minimum::is_equivalent()'],['../classmlx_1_1core_1_1_multiply.html#ae288159fa2d6d35087a85aca8eafa9b2',1,'mlx::core::Multiply::is_equivalent()'],['../classmlx_1_1core_1_1_negative.html#ac2a4d8159c548639d6289980c8975823',1,'mlx::core::Negative::is_equivalent()'],['../classmlx_1_1core_1_1_not_equal.html#ac12fd6b3e2f2e7e4e622b59badf2c73d',1,'mlx::core::NotEqual::is_equivalent()'],['../classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f',1,'mlx::core::NumberOfElements::is_equivalent()'],['../classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b',1,'mlx::core::Pad::is_equivalent()'],['../classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8',1,'mlx::core::Partition::is_equivalent()'],['../classmlx_1_1core_1_1_power.html#a76b4ec9d1ff07f06189e414480453d68',1,'mlx::core::Power::is_equivalent()'],['../classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1',1,'mlx::core::QuantizedMatmul::is_equivalent()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11',1,'mlx::core::GatherQMM::is_equivalent()'],['../classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6',1,'mlx::core::RandomBits::is_equivalent()'],['../classmlx_1_1core_1_1_real.html#a6d9bed396862a9e9d6abfbdcd8d8d239',1,'mlx::core::Real::is_equivalent()'],['../classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3',1,'mlx::core::Reshape::is_equivalent()'],['../classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e',1,'mlx::core::Reduce::is_equivalent()'],['../classmlx_1_1core_1_1_round.html#aeb3d8607bbba7345a3142d4cbd4e6927',1,'mlx::core::Round::is_equivalent()'],['../classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6',1,'mlx::core::Scan::is_equivalent()'],['../classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f',1,'mlx::core::Scatter::is_equivalent()'],['../classmlx_1_1core_1_1_sigmoid.html#a04814ba1b0edf8299d5ca1bcb8749d8e',1,'mlx::core::Sigmoid::is_equivalent()'],['../classmlx_1_1core_1_1_sign.html#a8c0934acbcc4b146e5aacd35a8c445bb',1,'mlx::core::Sign::is_equivalent()'],['../classmlx_1_1core_1_1_sin.html#af00b0e5516f884996ce7a97e6c1e3e6a',1,'mlx::core::Sin::is_equivalent()'],['../classmlx_1_1core_1_1_sinh.html#adcb1878996fd4902cd550042dd6ad70d',1,'mlx::core::Sinh::is_equivalent()'],['../classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0',1,'mlx::core::Slice::is_equivalent()'],['../classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119',1,'mlx::core::SliceUpdate::is_equivalent()'],['../classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728',1,'mlx::core::Softmax::is_equivalent()'],['../classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511',1,'mlx::core::Sort::is_equivalent()'],['../classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345',1,'mlx::core::Split::is_equivalent()'],['../classmlx_1_1core_1_1_square.html#a6abc881d44071019aa15481e5ea75ab2',1,'mlx::core::Square::is_equivalent()'],['../classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46',1,'mlx::core::Sqrt::is_equivalent()'],['../classmlx_1_1core_1_1_stop_gradient.html#a327539298b21d800d26482b94fce41b3',1,'mlx::core::StopGradient::is_equivalent()'],['../classmlx_1_1core_1_1_subtract.html#af1c05e1e3f703ba916d54f8ccbbd102b',1,'mlx::core::Subtract::is_equivalent()'],['../classmlx_1_1core_1_1_tan.html#afdf46288e7f60ea7f878688347dff7e4',1,'mlx::core::Tan::is_equivalent()'],['../classmlx_1_1core_1_1_tanh.html#a0692a1de2373b86eb394252ed4fecfda',1,'mlx::core::Tanh::is_equivalent()'],['../classmlx_1_1core_1_1_uniform.html#abb6048807a7c5b2e35a77e06a17f801b',1,'mlx::core::Uniform::is_equivalent()'],['../classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64',1,'mlx::core::View::is_equivalent()'],['../classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab',1,'mlx::core::Transpose::is_equivalent()'],['../classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381',1,'mlx::core::Eigh::is_equivalent()']]], + ['is_5fmetal_5fatomic_60',['is_metal_atomic',['../atomic_8h.html#a91a8bdcae647947a83c6689d7f252d24',1,'atomic.h']]], + ['is_5fopen_61',['is_open',['../classmlx_1_1core_1_1io_1_1_reader.html#a780f504058bd9c80cb3d105046a9f985',1,'mlx::core::io::Reader::is_open()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a85aa36bdb0dbfb8c5b6cfd955b03417a',1,'mlx::core::io::Writer::is_open()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a653009adbcbce8248bc666df502fdbde',1,'mlx::core::io::ParallelFileReader::is_open()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#ad5d2ee671a81700cb1658c41309d6676',1,'mlx::core::io::FileWriter::is_open()']]], + ['is_5fpower_5fof_5f2_62',['is_power_of_2',['../namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32',1,'mlx::core']]], + ['is_5fpower_5fof_5f2_5f_63',['is_power_of_2_',['../backend_2metal_2kernels_2fft_8h.html#a2a4df90e329b84ee6c1890ba7c265c9c',1,'fft.h']]], + ['is_5fready_64',['is_ready',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#ab41ecc5adb6187aa2682ca190fd920f3',1,'pocketfft::detail::threading::latch']]], + ['is_5fsame_5fshape_65',['is_same_shape',['../namespacemlx_1_1core.html#ad4b664de4a4abd305827b30879b9da33',1,'mlx::core']]], + ['is_5fscalar_66',['is_scalar',['../namespacemlx_1_1core.html#a985c60929757190e0b4ec51f57c767d0',1,'mlx::core']]], + ['is_5fsignaled_67',['is_signaled',['../classmlx_1_1core_1_1_event.html#a05a9a3de88185b4a89e154242b4e770a',1,'mlx::core::Event']]], + ['is_5fstatic_5fcast_68',['is_static_cast',['../namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f',1,'mlx::core']]], + ['is_5ftracer_69',['is_tracer',['../classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c',1,'mlx::core::array']]], + ['isclose_70',['isclose',['../group__ops.html#ga51eac95c04400921c54716de14b52491',1,'mlx::core']]], + ['isfinite_71',['isfinite',['../group__ops.html#ga725ff0789f934b1fdd54ee29e47022ff',1,'mlx::core']]], + ['isinf_72',['isinf',['../group__ops.html#ga8fc238d5e5d1153e69da8b36015d9844',1,'mlx::core']]], + ['isnan_73',['isnan',['../namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb',1,'metal::isnan()'],['../group__ops.html#ga175592792471b0ffb45196dca4711ba6',1,'mlx::core::isnan(const array &a, StreamOrDevice s={})']]], + ['isneginf_74',['isneginf',['../group__ops.html#ga1940523da381ed7be50656a3bc465ff3',1,'mlx::core']]], + ['isposinf_75',['isposinf',['../group__ops.html#gad80f7c4a58c12b6cb30a8b9a73008993',1,'mlx::core']]], + ['issubdtype_76',['issubdtype',['../namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7',1,'mlx::core::issubdtype(const Dtype &a, const Dtype &b)'],['../namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype &b)'],['../namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8',1,'mlx::core::issubdtype(const Dtype &a, const Dtype::Category &b)'],['../namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype::Category &b)']]], + ['item_77',['item',['../classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99',1,'mlx::core::array::item()'],['../classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7',1,'mlx::core::array::item() const']]], + ['itemsize_78',['itemsize',['../classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0',1,'mlx::core::array']]], + ['iterator_5fcategory_79',['iterator_category',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a2cbf481e39164245668b3be6cbcc614d',1,'mlx::core::array::ArrayIterator']]] ]; diff --git a/docs/build/html/search/all_c.js b/docs/build/html/search/all_c.js index 2640daf22..b29b5df8d 100644 --- a/docs/build/html/search/all_c.js +++ b/docs/build/html/search/all_c.js @@ -1,7 +1,7 @@ var searchData= [ ['label_0',['label',['../classmlx_1_1core_1_1io_1_1_reader.html#a8c244daf52fd5ebb9a2c7e5f4ae793cd',1,'mlx::core::io::Reader::label()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a828125a9adcb7e90c8bcaba0fe47f854',1,'mlx::core::io::Writer::label()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a361d3b34bc493825c893cce256da46c8',1,'mlx::core::io::ParallelFileReader::label()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#a5093dce80ff0c51ea036a87e3e5fb456',1,'mlx::core::io::FileWriter::label()']]], - ['lapack_5fhelper_2eh_1',['lapack_helper.h',['../lapack__helper_8h.html',1,'']]], + ['lapack_2eh_1',['lapack.h',['../lapack_8h.html',1,'']]], ['laplace_2',['laplace',['../namespacemlx_1_1core_1_1random.html#ad52c7cb7709542c5a464df12bfc6b0b7',1,'mlx::core::random::laplace(const std::vector< int > &shape, Dtype dtype, const float loc, const float scale, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a0d0c393dd53d6fdd02e46844b3cf45d1',1,'mlx::core::random::laplace(const std::vector< int > &shape, const float loc, const float scale, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a0f73eb7d337529708937eef0080c0998',1,'mlx::core::random::laplace(const std::vector< int > &shape, const Dtype dtype, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a96b6f40efbee7045a35218296ba12a37',1,'mlx::core::random::laplace(const std::vector< int > &shape, const std::optional< array > &key=std::nullopt, StreamOrDevice s={})']]], ['largest_5fprime_5ffactor_3',['largest_prime_factor',['../structpocketfft_1_1detail_1_1util.html#a0e9b92280f25063d1ebef942dd0d233c',1,'pocketfft::detail::util']]], ['latch_4',['latch',['../classpocketfft_1_1detail_1_1threading_1_1latch.html',1,'pocketfft::detail::threading::latch'],['../classpocketfft_1_1detail_1_1threading_1_1latch.html#a9260c871bb927525f7f53caa23a19c15',1,'pocketfft::detail::threading::latch::latch()']]], @@ -50,10 +50,10 @@ var searchData= ['load_2eh_47',['load.h',['../backend_2common_2load_8h.html',1,'(Global Namespace)'],['../io_2load_8h.html',1,'(Global Namespace)']]], ['load_5fgguf_48',['load_gguf',['../namespacemlx_1_1core.html#a2aa12b351ce559deb14cda0a5292c2ce',1,'mlx::core']]], ['load_5fpadded_49',['load_padded',['../struct_read_writer.html#add5bd3f647793a5a19d63197a19df73c',1,'ReadWriter::load_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#af3ce6bbb1a8dfb3bab1ae18d3eb45bc0',1,'ReadWriter::load_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#ab116f4569bb9dc6eaef0d8d08472e239',1,'ReadWriter::load_padded(int length, const device float2 *w_k) const']]], - ['load_5fsafe_50',['load_safe',['../struct_g_e_m_v_kernel.html#a04bb72da9a93d6d1eba468fa311bbba7',1,'GEMVKernel::load_safe()'],['../struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b',1,'QuantizedBlockLoader::load_safe()'],['../structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d',1,'mlx::steel::BlockLoader::load_safe()'],['../kernels_2scan_8h.html#ae8eb101e538b85f8a4bcf451489ae0ac',1,'load_safe(): scan.h']]], + ['load_5fsafe_50',['load_safe',['../struct_g_e_m_v_kernel.html#a04bb72da9a93d6d1eba468fa311bbba7',1,'GEMVKernel::load_safe()'],['../struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b',1,'QuantizedBlockLoader::load_safe()'],['../structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d',1,'mlx::steel::BlockLoader::load_safe()'],['../scan_8h.html#ae8eb101e538b85f8a4bcf451489ae0ac',1,'load_safe(): scan.h']]], ['load_5fsafetensors_51',['load_safetensors',['../namespacemlx_1_1core.html#a96cc40e1af8c4626c813ce4859f70a5c',1,'mlx::core::load_safetensors(std::shared_ptr< io::Reader > in_stream, StreamOrDevice s={})'],['../namespacemlx_1_1core.html#af7eea1682a38d363c56a066321e6d526',1,'mlx::core::load_safetensors(const std::string &file, StreamOrDevice s={})']]], ['load_5fstrided_52',['load_strided',['../struct_read_writer.html#a998ef484bade81f726b9edfc6b878197',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a3d9c8cbc582cad6b5218339d0f721559',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a795a71a8e1f154a5af415ebe1b3f0713',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a0935b946b8bf2e769427fcbf2da2f7be',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a7d45368c74a8b7c632659504b3273a13',1,'ReadWriter::load_strided(int stride, int overall_n)']]], - ['load_5funsafe_53',['load_unsafe',['../struct_g_e_m_v_kernel.html#a6013e9c5b2f72fa1311dd038172df0ce',1,'GEMVKernel::load_unsafe()'],['../struct_quantized_block_loader.html#a86009527cb4b53e4c21fd6b1f78cfefc',1,'QuantizedBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a961836be363409744e48e595d5e0c2ec',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a8034abc10483487fc94313e3674d1111',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a69e2f7c9814d1cc1c5c267be8618dc55',1,'mlx::steel::Conv2DWeightBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#aa11d1a142bc868df462f48a7102147f3',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a0e262b003ac0e7ee6272585eac921704',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a8f078982186421f5b484c0b53af9c655',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27',1,'mlx::steel::BlockLoader::load_unsafe()'],['../kernels_2scan_8h.html#a9c415d07921f3961bad0a00a34f4a9a3',1,'load_unsafe(U values[N_READS], const device T *input): scan.h']]], + ['load_5funsafe_53',['load_unsafe',['../struct_g_e_m_v_kernel.html#a6013e9c5b2f72fa1311dd038172df0ce',1,'GEMVKernel::load_unsafe()'],['../struct_quantized_block_loader.html#a86009527cb4b53e4c21fd6b1f78cfefc',1,'QuantizedBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a961836be363409744e48e595d5e0c2ec',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a8034abc10483487fc94313e3674d1111',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a69e2f7c9814d1cc1c5c267be8618dc55',1,'mlx::steel::Conv2DWeightBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#aa11d1a142bc868df462f48a7102147f3',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a0e262b003ac0e7ee6272585eac921704',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a8f078982186421f5b484c0b53af9c655',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27',1,'mlx::steel::BlockLoader::load_unsafe()'],['../scan_8h.html#a9c415d07921f3961bad0a00a34f4a9a3',1,'load_unsafe(U values[N_READS], const device T *input): scan.h']]], ['load_5fvector_54',['load_vector',['../quantized_8h.html#a8dbace41de9e1e21dd59d016db11b3e9',1,'quantized.h']]], ['load_5fvector_5fsafe_55',['load_vector_safe',['../quantized_8h.html#aa69e143d646fad332c1a53e8c9b337b7',1,'quantized.h']]], ['loader_2eh_56',['loader.h',['../conv_2loader_8h.html',1,'(Global Namespace)'],['../gemm_2loader_8h.html',1,'(Global Namespace)']]], diff --git a/docs/build/html/search/all_d.js b/docs/build/html/search/all_d.js index 89a15440e..6d414afd2 100644 --- a/docs/build/html/search/all_d.js +++ b/docs/build/html/search/all_d.js @@ -77,7 +77,7 @@ var searchData= ['mlx_5fatomic_5ffetch_5for_5fexplicit_74',['mlx_atomic_fetch_or_explicit',['../atomic_8h.html#ab7391f197001471e4788312bdb6ab37a',1,'atomic.h']]], ['mlx_5fatomic_5fload_5fexplicit_75',['mlx_atomic_load_explicit',['../atomic_8h.html#a253a4e8c2c5768a069e2791b627dfc99',1,'atomic.h']]], ['mlx_5fatomic_5fstore_5fexplicit_76',['mlx_atomic_store_explicit',['../atomic_8h.html#a0ae453140b0819a4c02f265334de98c0',1,'atomic.h']]], - ['mlx_5flapack_5ffunc_77',['MLX_LAPACK_FUNC',['../lapack__helper_8h.html#ae22db9704827bf013a0a61f21a47464b',1,'lapack_helper.h']]], + ['mlx_5flapack_5ffunc_77',['MLX_LAPACK_FUNC',['../lapack_8h.html#ae22db9704827bf013a0a61f21a47464b',1,'lapack.h']]], ['mlx_5fmtl_5fconst_78',['MLX_MTL_CONST',['../kernels_2gemv__masked_8h.html#a0386011c52d03e60885a31e6fbd903dd',1,'MLX_MTL_CONST: gemv_masked.h'],['../quantized_8h.html#a0386011c52d03e60885a31e6fbd903dd',1,'MLX_MTL_CONST: quantized.h'],['../sort_8h.html#a0386011c52d03e60885a31e6fbd903dd',1,'MLX_MTL_CONST: sort.h']]], ['mlx_5fmtl_5floop_5funroll_79',['MLX_MTL_LOOP_UNROLL',['../sort_8h.html#ad34b622323cebef136669fedd7229515',1,'sort.h']]], ['mlx_5fmtl_5fpragma_5funroll_80',['MLX_MTL_PRAGMA_UNROLL',['../kernels_2gemv__masked_8h.html#a069b682d7d21827461544817d722bfd3',1,'MLX_MTL_PRAGMA_UNROLL: gemv_masked.h'],['../backend_2metal_2kernels_2utils_8h.html#a069b682d7d21827461544817d722bfd3',1,'MLX_MTL_PRAGMA_UNROLL: utils.h']]], @@ -93,10 +93,11 @@ var searchData= ['mpinplace_90',['MPINPLACE',['../namespacepocketfft_1_1detail.html#af5eedf3cdfc83c0a30807092c39a9ce2',1,'pocketfft::detail']]], ['mtl_5fconst_91',['MTL_CONST',['../defines_8h.html#a767ed9f2604de22b259cee02c4ce1d22',1,'defines.h']]], ['mtl_5fdevice_92',['mtl_device',['../classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653',1,'mlx::core::metal::Device']]], - ['mtlfclist_93',['MTLFCList',['../namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54',1,'mlx::core::metal']]], - ['mtx_94',['mtx',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a70410c9e612f871663929f1e8441a976',1,'mlx::core::scheduler::StreamThread']]], - ['multi_5fiter_95',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html',1,'pocketfft::detail::multi_iter< N >'],['../classpocketfft_1_1detail_1_1multi__iter.html#a9be43bb18840202da6d17988fccc64b9',1,'pocketfft::detail::multi_iter::multi_iter()']]], - ['multiply_96',['Multiply',['../structmlx_1_1core_1_1detail_1_1_multiply.html',1,'mlx::core::detail::Multiply'],['../classmlx_1_1core_1_1_multiply.html',1,'mlx::core::Multiply'],['../struct_multiply.html',1,'Multiply'],['../classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c',1,'mlx::core::Multiply::Multiply()']]], - ['multiply_97',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], - ['multivariate_5fnormal_98',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] + ['mtl_5fresidency_5fset_93',['mtl_residency_set',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ac4bfe5ef5e2eaebc458a1ed1953d15e9',1,'mlx::core::metal::ResidencySet']]], + ['mtlfclist_94',['MTLFCList',['../namespacemlx_1_1core_1_1metal.html#a616e09a1ef321d527770721cef264c54',1,'mlx::core::metal']]], + ['mtx_95',['mtx',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a70410c9e612f871663929f1e8441a976',1,'mlx::core::scheduler::StreamThread']]], + ['multi_5fiter_96',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html',1,'pocketfft::detail::multi_iter< N >'],['../classpocketfft_1_1detail_1_1multi__iter.html#a9be43bb18840202da6d17988fccc64b9',1,'pocketfft::detail::multi_iter::multi_iter()']]], + ['multiply_97',['Multiply',['../structmlx_1_1core_1_1detail_1_1_multiply.html',1,'mlx::core::detail::Multiply'],['../classmlx_1_1core_1_1_multiply.html',1,'mlx::core::Multiply'],['../struct_multiply.html',1,'Multiply'],['../classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c',1,'mlx::core::Multiply::Multiply()']]], + ['multiply_98',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], + ['multivariate_5fnormal_99',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] ]; diff --git a/docs/build/html/search/all_f.js b/docs/build/html/search/all_f.js index 2948ef08b..68a4f9712 100644 --- a/docs/build/html/search/all_f.js +++ b/docs/build/html/search/all_f.js @@ -20,7 +20,7 @@ var searchData= ['operator_26_17',['operator&',['../group__ops.html#gaf0d232de4cbfffda1e2c838f8afdf6ff',1,'mlx::core::operator&(const array &a, const array &b)'],['../namespacemlx_1_1core.html#a9ee95f97bbd69262d99d7bea3bf77631',1,'mlx::core::operator&(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0fefc3ae4f1350ebe05ec6098fd6bae3',1,'mlx::core::operator&(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a1e4cb758ccfe5c267baed9aeb0044834',1,'mlx::core::operator&(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab9d0f9910070231695d61de08cadb930',1,'mlx::core::operator&(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a889d401f425db79d1868aa3beea4829b',1,'mlx::core::operator&(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a76dcd1fa3c68b386bc1d1d899a68a120',1,'mlx::core::operator&(uint16_t lhs, _MLX_Float16 rhs)']]], ['operator_26_26_18',['operator&&',['../group__ops.html#gaee1d774bb0843601d7a0a4257d616ae3',1,'mlx::core']]], ['operator_26_3d_19',['operator&=',['../namespacemlx_1_1core.html#a60c263ef46e552c3954688869734b513',1,'mlx::core::operator&=(_MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af9670fc8088339669c54c68b3a320e25',1,'mlx::core::operator&=(_MLX_BFloat16 &lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#ad1f96f0a02024f347b4c4431629407fc',1,'mlx::core::operator&=(_MLX_Float16 &lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae0540f16c4e7bd55d0e86a88495e4967',1,'mlx::core::operator&=(_MLX_Float16 &lhs, uint16_t rhs)']]], - ['operator_28_29_20',['operator()',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a4fd637f1a6d335826789af28ac089ecb',1,'pocketfft::detail::ExecC2C::operator()()'],['../structpocketfft_1_1detail_1_1_exec_hartley.html#a67c98b38d12440781053552b9a33bba1',1,'pocketfft::detail::ExecHartley::operator()()'],['../structpocketfft_1_1detail_1_1_exec_dcst.html#a67f4f56e3574c491695f8cb8a1e983d8',1,'pocketfft::detail::ExecDcst::operator()()'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#acdba1650962714e6afff51e9ca456970',1,'pocketfft::detail::ExecR2R::operator()()'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a0d657bc9a381dca1b5860b9a1b5a5702',1,'mlx::core::detail::Abs::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a564232db7d32811e2ae126c86de104f0',1,'mlx::core::detail::Abs::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a5fac7e6c8277d8706535a52820503c9d',1,'mlx::core::detail::Abs::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#af2c3723e648bd5ed2fe558cc20b7f5eb',1,'mlx::core::detail::Abs::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a57312cd8530dd0ede3b8037f9c401883',1,'mlx::core::detail::Abs::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#ab3b5e3853ed56bfbfa577d965c21112e',1,'mlx::core::detail::Abs::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_arc_cos.html#a04b4c9d1fc0160973aa28b1f809b9d51',1,'mlx::core::detail::ArcCos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_cosh.html#a767d354bec863942822ee0b9b6742a88',1,'mlx::core::detail::ArcCosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sin.html#ac69091929815e5317308b4088f5c2f46',1,'mlx::core::detail::ArcSin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sinh.html#ac7bf9bac66fef917f75494b2345e6aaf',1,'mlx::core::detail::ArcSinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan.html#aee87bf10c278a70ca788085d1b499afe',1,'mlx::core::detail::ArcTan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan2.html#a9040b7afcdb4969924aa782fa67f03ac',1,'mlx::core::detail::ArcTan2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a601e8c52bb938eb3a616756a35419e8b',1,'mlx::core::detail::ArcTanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a672f65e47d65e4e8d88be252bce0164b',1,'mlx::core::detail::Ceil::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a72a2cab2728fb5e1cc6329a539e5d573',1,'mlx::core::detail::Ceil::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#aa34590f6a41331be92988558a90dc6fa',1,'mlx::core::detail::Ceil::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af14120f3dd98f6198ea257d75be223f7',1,'mlx::core::detail::Ceil::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af263ce7743cf7319387baba616c375b5',1,'mlx::core::detail::Ceil::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a48f00affcd5c2ea1f81d821e019fec29',1,'mlx::core::detail::Ceil::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#ad4d24a44e8a328948393701dacb0ceac',1,'mlx::core::detail::Ceil::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a70da19b5c9c69f04b9f196bdf266f93c',1,'mlx::core::detail::Ceil::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af0e7e806b73c664ada837476f9d4d43b',1,'mlx::core::detail::Ceil::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#acc1bfc84a9b91f6e9764234cbe3b9687',1,'mlx::core::detail::Ceil::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_conjugate.html#a7e662d05c6998bd6ced8ad9c187324a5',1,'mlx::core::detail::Conjugate::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cos.html#ad4caef573f9d9071f8945a8efed231ad',1,'mlx::core::detail::Cos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cosh.html#a63591f49776d9aadc02200036ae38317',1,'mlx::core::detail::Cosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf.html#a168f8ccc6c8053b05dd1a48904ca8fd4',1,'mlx::core::detail::Erf::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html#acc93c0511141404208b35f302f8c1fcb',1,'mlx::core::detail::ErfInv::operator()()'],['../structmlx_1_1core_1_1detail_1_1_exp.html#a0846300cee28315e5b42f74acafbd1a1',1,'mlx::core::detail::Exp::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_exp.html#af247c0d19d59f3310fd0a081eb92cf8b',1,'mlx::core::detail::Exp::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_expm1.html#abf7e61b8387521e9d44334ce88d833a0',1,'mlx::core::detail::Expm1::operator()()'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a16c13cfe736098bffc81d655e172294a',1,'mlx::core::detail::Floor::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a9b6c4c34b6594b8c413abe31f34a73df',1,'mlx::core::detail::Floor::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#aca4c71204b3ceeca6329f7ea2b041f4c',1,'mlx::core::detail::Floor::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a3c3ab9e00d1fbd124802517e8c35fe02',1,'mlx::core::detail::Floor::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a4b5954ffc59c741dd7b86bafda69d5cc',1,'mlx::core::detail::Floor::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2e33b10bd5b04551054a87c601440bc7',1,'mlx::core::detail::Floor::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2500f971100919a694f78669a5e4f438',1,'mlx::core::detail::Floor::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a23df818301d68389e6e12f5a9ec1fbd7',1,'mlx::core::detail::Floor::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#ac988b4f265cf46c68609c9c8787c15fb',1,'mlx::core::detail::Floor::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a7f936e3fd53772bc189d845c73b53202',1,'mlx::core::detail::Floor::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782',1,'mlx::core::detail::Imag::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log.html#a0012a4e1744dbe9a28c3b5652be6e1c6',1,'mlx::core::detail::Log::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log2.html#a467bd4c995674721ff5fff6df33aead8',1,'mlx::core::detail::Log2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log10.html#a2633c5b772bbc9f8b66cffd4a3e01a3f',1,'mlx::core::detail::Log10::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log1p.html#a3220de8c6090c44aa2070b1fbb2dc340',1,'mlx::core::detail::Log1p::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html#a79799668ea5c364b0b4e2bc330e76253',1,'mlx::core::detail::LogicalNot::operator()()'],['../structmlx_1_1core_1_1detail_1_1_negative.html#afc4595c70ef7196df374cf4b2cc5e526',1,'mlx::core::detail::Negative::operator()()'],['../structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61',1,'mlx::core::detail::Real::operator()()'],['../structmlx_1_1core_1_1detail_1_1_round.html#a653f29c059bbfa6192378732a8a23351',1,'mlx::core::detail::Round::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_round.html#a82a984f13568051009e257fe85227da6',1,'mlx::core::detail::Round::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89',1,'mlx::core::detail::Sigmoid::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a64ed5013cee7ff18c7fe70bc04737e7b',1,'mlx::core::detail::Sign::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7106ed1f2f98a365fcb3e6ee39084748',1,'mlx::core::detail::Sign::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7163e8c068dcc460600ed04014dc9945',1,'mlx::core::detail::Sign::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#ae8f56c7134721c846240830169424c22',1,'mlx::core::detail::Sign::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a10ae519e9a74a327fc72c410e9ab2936',1,'mlx::core::detail::Sign::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a91be4e273f6c7ea5d44cfab380b77603',1,'mlx::core::detail::Sign::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sin.html#ae95671816529cc2188389af37a2f1a13',1,'mlx::core::detail::Sin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sinh.html#a9663ddf0fa4c0003576b48f3d5385f00',1,'mlx::core::detail::Sinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099',1,'mlx::core::detail::Square::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sqrt.html#aa5a4830b3ef7efab20ea88a110667efd',1,'mlx::core::detail::Sqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_rsqrt.html#a9af247be16bab83243038aac54446b79',1,'mlx::core::detail::Rsqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tan.html#aba397cd7ac05bbe06dfa9e3a64bdb05f',1,'mlx::core::detail::Tan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tanh.html#a1749ba1edfd53095ed7d45c0e53bab61',1,'mlx::core::detail::Tanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_add.html#a2d6011c35768b5fcd2bb75747b944353',1,'mlx::core::detail::Add::operator()()'],['../structmlx_1_1core_1_1detail_1_1_divide.html#a5e0d22e2084c4ca81bec0d457a46c662',1,'mlx::core::detail::Divide::operator()()'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a3bdaf1095ad883ecc0fecc455f02cbf3',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a52c3a2ba86fccb24d37d218ae8328954',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a0b0dd6ef5b08585fdf8355770da8d747',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a68fe542084fb94d9a5abd740fe07832b',1,'mlx::core::detail::Remainder::operator()(complex64_t numerator, complex64_t denominator)'],['../structmlx_1_1core_1_1detail_1_1_equal.html#a2994cf1884e7126e76d0a20b215fe3ab',1,'mlx::core::detail::Equal::operator()()'],['../structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf',1,'mlx::core::detail::NaNEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094',1,'mlx::core::detail::Greater::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30',1,'mlx::core::detail::GreaterEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb',1,'mlx::core::detail::Less::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7',1,'mlx::core::detail::LessEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5',1,'mlx::core::detail::LogAddExp::operator()()'],['../structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1',1,'mlx::core::detail::Multiply::operator()()'],['../structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d',1,'mlx::core::detail::NotEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a',1,'mlx::core::detail::Subtract::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8',1,'mlx::core::detail::LogicalAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a',1,'mlx::core::detail::LogicalOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb',1,'mlx::core::detail::Select::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700',1,'mlx::core::detail::BitwiseAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20',1,'mlx::core::detail::BitwiseOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0',1,'mlx::core::detail::BitwiseXor::operator()()'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a',1,'mlx::core::detail::LeftShift::operator()()'],['../structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620',1,'mlx::core::detail::RightShift::operator()()'],['../structmlx_1_1core_1_1_default_strided_reduce.html#a024682ab93b84e544a07e3a9c3c51fba',1,'mlx::core::DefaultStridedReduce::operator()()'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a08144c7a3cdf10af5e47f4575da3694f',1,'mlx::core::DefaultContiguousReduce::operator()()'],['../struct_add.html#ac5c66b63d63a222d3ae0ab8cc7c90eb5',1,'Add::operator()()'],['../struct_floor_divide.html#a2b328e4d768e718fa439f955c524666a',1,'FloorDivide::operator()(T x, T y)'],['../struct_floor_divide.html#afc16a2b2a745225e0bc95640f3fc0219',1,'FloorDivide::operator()(float x, float y)'],['../struct_floor_divide.html#ae91719a15f7e643d552129f476089c6a',1,'FloorDivide::operator()(half x, half y)'],['../struct_floor_divide.html#a4aa9f858626583e02bd79f747229bbca',1,'FloorDivide::operator()(bfloat16_t x, bfloat16_t y)'],['../struct_divide.html#a0a16b9194abc2ab7c61129f81a9bbb3d',1,'Divide::operator()()'],['../struct_remainder.html#ab7875512ff4341c580c6dc372e64fc58',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#a18150b5f4425e30b95ffabc6bb25cede',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ab3b75f54b56fd357c9755daadb2cafc2',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ae918ce0e246937d4fe04e2ea36e4b2c1',1,'Remainder::operator()(complex64_t x, complex64_t y)'],['../struct_equal.html#aa498087080900d4428ba428a6496a769',1,'Equal::operator()()'],['../struct_na_n_equal.html#a00220898e02db656d21dde9e9354a8dc',1,'NaNEqual::operator()(T x, T y)'],['../struct_na_n_equal.html#a6185e4554dce5b4659d21673c576be51',1,'NaNEqual::operator()(complex64_t x, complex64_t y)'],['../struct_greater.html#a98d7d8ee360cd0f469c6eb9a017560f5',1,'Greater::operator()()'],['../struct_greater_equal.html#ae69a3bccc567a46506cf0d296294ce80',1,'GreaterEqual::operator()()'],['../struct_less.html#a5ee0b31b2d9123dc4504f2979a5854d3',1,'Less::operator()()'],['../struct_less_equal.html#ae9f9a1b2eae548977139704f0044acfe',1,'LessEqual::operator()()'],['../struct_log_add_exp.html#ab32417f18e8ff68c15f78aceeb624edf',1,'LogAddExp::operator()()'],['../struct_maximum.html#a3ea0f42bc4cd80b68a98f189f9fa859c',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a0bc8fadc87f2c49fc440d625bfc97ca6',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a907e8793900be5927625377dab199644',1,'Maximum::operator()(complex64_t x, complex64_t y)'],['../struct_minimum.html#aa6113dfac3986c0f571fa53f65c5330e',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a0c939921de87ab9c6959238aac81a059',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a800fba087280f79c2f7e9aff75bed093',1,'Minimum::operator()(complex64_t x, complex64_t y)'],['../struct_multiply.html#a1327fc5a0713931afe997b0d4d2988e0',1,'Multiply::operator()()'],['../struct_not_equal.html#af008d73a5d9cde0b8309b7e8ee7438b2',1,'NotEqual::operator()(T x, T y)'],['../struct_not_equal.html#a14de494cea4e4869351202cad1149f17',1,'NotEqual::operator()(complex64_t x, complex64_t y)'],['../struct_power.html#a2b6df2a9e48155ff9734caca8504a79f',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a36829163d42973034a1f8a7ecc57a1de',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a27cdfb313c4e82b63bdcdaee923cbbef',1,'Power::operator()(complex64_t x, complex64_t y)'],['../struct_subtract.html#ae0856cd8d449074ca287baa7e460f68a',1,'Subtract::operator()()'],['../struct_logical_and.html#a8bc6bdabc0ea0678a46e2cf6217cb3a6',1,'LogicalAnd::operator()()'],['../struct_logical_or.html#ade6a931324a604a3119d2220d6f5460d',1,'LogicalOr::operator()()'],['../struct_bitwise_and.html#afb48af090b01dd0200963bc12d842e36',1,'BitwiseAnd::operator()()'],['../struct_bitwise_or.html#a41f847463daafa99ee56f4035578390f',1,'BitwiseOr::operator()()'],['../struct_bitwise_xor.html#a3a3e8a56caab739d40262d9349c9c485',1,'BitwiseXor::operator()()'],['../struct_left_shift.html#aa729747784c38bfdbba34794fcf5175b',1,'LeftShift::operator()()'],['../struct_right_shift.html#a2cc59b400c68342b0e43050431323c17',1,'RightShift::operator()()'],['../struct_arc_tan2.html#ac9b7729753e13be293ab700231d061ac',1,'ArcTan2::operator()()'],['../struct_div_mod.html#a8b5758f2ea18d4c903b462331b25abfe',1,'DivMod::operator()()'],['../struct_cum_sum.html#aacc713dde086ef04b54abb675131468e',1,'CumSum::operator()()'],['../struct_cum_prod.html#af1ffa2672332ca27e287c3ba59c73e1e',1,'CumProd::operator()()'],['../struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b',1,'CumProd< bool >::operator()()'],['../struct_cum_max.html#a781b9b955c5412466da6af6c70d73c06',1,'CumMax::operator()()'],['../struct_cum_min.html#ae0b8c3761e04fa538d304ca842281a66',1,'CumMin::operator()()'],['../struct_less_than.html#a2798eb377b411c93a4ed30cf35caade2',1,'LessThan::operator()()'],['../struct_select.html#adb51692aae3038de07dd745891bf9848',1,'Select::operator()()'],['../struct_abs.html#a9e7481dfcc162509769852026ff4a344',1,'Abs::operator()(T x)'],['../struct_abs.html#a0ca113fd036151c443df3f83cc667f28',1,'Abs::operator()(uint8_t x)'],['../struct_abs.html#adaeab32a7e377dc990077ab15f3dc4c2',1,'Abs::operator()(uint16_t x)'],['../struct_abs.html#a99d2a2f37a6cddd3168b0224f2a9b963',1,'Abs::operator()(uint32_t x)'],['../struct_abs.html#ac9cbc02422d930479303f240a7ea6c71',1,'Abs::operator()(uint64_t x)'],['../struct_abs.html#ac30835b27784d451bd2e4524c8eb9e11',1,'Abs::operator()(bool x)'],['../struct_abs.html#ab82917d6b30a2c579e7eb879d305c5fc',1,'Abs::operator()(complex64_t x)'],['../struct_arc_cos.html#a5553cecf58511e24e76ac97f2d90b9ac',1,'ArcCos::operator()()'],['../struct_arc_cosh.html#a5c9e7712c14c97298b23ec48e19abc58',1,'ArcCosh::operator()()'],['../struct_arc_sin.html#a0343872f2da93bae2bb0baadf49da022',1,'ArcSin::operator()()'],['../struct_arc_sinh.html#a3066fb7dc7c3180100fb55ff94af6a7a',1,'ArcSinh::operator()()'],['../struct_arc_tan.html#af3a0aec6acec8ae8f5e4c4d5cf8c91ba',1,'ArcTan::operator()()'],['../struct_arc_tanh.html#a37dc3e01ec2830de7e82ed6c6363ac88',1,'ArcTanh::operator()()'],['../struct_ceil.html#a5e2a4ef1b012f5d352064489156e5e44',1,'Ceil::operator()(T x)'],['../struct_ceil.html#a455cd8083ba859993077f2e078ae165b',1,'Ceil::operator()(int8_t x)'],['../struct_ceil.html#a2acb61bc658c7a216795e7f76ebcf98a',1,'Ceil::operator()(int16_t x)'],['../struct_ceil.html#aef8c37f7a8ee3fc80700d605a09891fb',1,'Ceil::operator()(int32_t x)'],['../struct_ceil.html#a93d0110511ad5dd200e12d37a3d7d6e3',1,'Ceil::operator()(int64_t x)'],['../struct_ceil.html#aa335b745fa26e0f443cdb36298105484',1,'Ceil::operator()(uint8_t x)'],['../struct_ceil.html#ade17e13b7f30f5c590fae1581a2013ac',1,'Ceil::operator()(uint16_t x)'],['../struct_ceil.html#a411c75cc35cdc088402e176a1defd22d',1,'Ceil::operator()(uint32_t x)'],['../struct_ceil.html#a9ac660ca29eef7a7429fceb7b917a68a',1,'Ceil::operator()(uint64_t x)'],['../struct_ceil.html#a40de367e62f06ebd7e1330afa93a9ad9',1,'Ceil::operator()(bool x)'],['../struct_cos.html#ae222f8710f6b8254c471ebd475aa5bda',1,'Cos::operator()(T x)'],['../struct_cos.html#a5f26feb1dcc4bec5f59a9ff511c5b163',1,'Cos::operator()(complex64_t x)'],['../struct_cosh.html#a5847ebeebb236fdc926798ddc16475ba',1,'Cosh::operator()(T x)'],['../struct_cosh.html#aefdd91298dac16d528d29ee47e2f7252',1,'Cosh::operator()(complex64_t x)'],['../struct_conjugate.html#acb0a2694285f1f57c7654b371ce8cbd8',1,'Conjugate::operator()()'],['../struct_erf.html#a80719402ad7f7d418859a6677d7b604d',1,'Erf::operator()()'],['../struct_erf_inv.html#afbf3668d1a512e889f093a0bc7673309',1,'ErfInv::operator()()'],['../struct_exp.html#a5ef395868e055348c0802fd5fe45669c',1,'Exp::operator()(T x)'],['../struct_exp.html#a2b341ac400c4d145397950eb60734336',1,'Exp::operator()(complex64_t x)'],['../struct_expm1.html#a4b834d42cf0b84daf03fec62c222091a',1,'Expm1::operator()()'],['../struct_floor.html#ace3551f28429081e9f3a3dab0c84212b',1,'Floor::operator()(T x)'],['../struct_floor.html#a10d7fd05b4c224c9f135451246d13014',1,'Floor::operator()(int8_t x)'],['../struct_floor.html#a2865a04a492e3590302f4bd3215a10d7',1,'Floor::operator()(int16_t x)'],['../struct_floor.html#a41012343ff0463ec44b4d06196f41182',1,'Floor::operator()(int32_t x)'],['../struct_floor.html#aae3181d15856796aa0628cf30c92aa2e',1,'Floor::operator()(int64_t x)'],['../struct_floor.html#ac6cf38d82c8e270911afdca4c69ad51b',1,'Floor::operator()(uint8_t x)'],['../struct_floor.html#a78969b9e2b53ae248e72a67259eea5d8',1,'Floor::operator()(uint16_t x)'],['../struct_floor.html#a959009320ed622ed45b39becab1d5b98',1,'Floor::operator()(uint32_t x)'],['../struct_floor.html#a7d04b83c3345cd867315cae2d7ff68ab',1,'Floor::operator()(uint64_t x)'],['../struct_floor.html#abea845fe5e8e6b93bd4bca8717337e0b',1,'Floor::operator()(bool x)'],['../struct_imag.html#a3b29e9f8a46c194d683f6a9938314400',1,'Imag::operator()()'],['../struct_log.html#a32a383cb6be06e616a75f23bf49089c3',1,'Log::operator()()'],['../struct_log2.html#ac1e067ecdcbdbffb6106e789c2b98b64',1,'Log2::operator()()'],['../struct_log10.html#ac596a74c1642a00f3eced07ee3334122',1,'Log10::operator()()'],['../struct_log1p.html#a4464c6e7bdbe55ffd7d961c695cd13ce',1,'Log1p::operator()()'],['../struct_logical_not.html#a8a620bac957ab8c09ac85adfddd96708',1,'LogicalNot::operator()()'],['../struct_negative.html#af6879b374314a559faa321e8cce3d710',1,'Negative::operator()()'],['../struct_real.html#a85b9c5b9e65297994fa26ff68e19e809',1,'Real::operator()()'],['../struct_round.html#aa06a0195867e2ceb679c403b6909a1c4',1,'Round::operator()(T x)'],['../struct_round.html#ad3a08f2276ff1033900bc0a7da812655',1,'Round::operator()(complex64_t x)'],['../struct_sigmoid.html#a75a24cd75cb4d4c9a072811b2d70ad55',1,'Sigmoid::operator()()'],['../struct_sign.html#aa3304c6b43bcad53061614b741d8403c',1,'Sign::operator()(T x)'],['../struct_sign.html#ac48992b675b8b28be1e27e1f2ec5d2f7',1,'Sign::operator()(uint32_t x)'],['../struct_sign.html#ae07a4249e1b61419a3b9ca6c337b7bb5',1,'Sign::operator()(complex64_t x)'],['../struct_sin.html#a7caf98c777521fa5d5c6ddaaa3b779fd',1,'Sin::operator()(T x)'],['../struct_sin.html#aa510cf4595b6d49065ab6b602d8fcb14',1,'Sin::operator()(complex64_t x)'],['../struct_sinh.html#a02cf32bcf560657b9ee34fb1affed8e2',1,'Sinh::operator()(T x)'],['../struct_sinh.html#a1f8ba1858d352ee68861cd6ea861af43',1,'Sinh::operator()(complex64_t x)'],['../struct_square.html#afde739fc544e45dd30964c02dca94310',1,'Square::operator()()'],['../struct_sqrt.html#ab9b16d2b9b03a1c54190f4479a56a4ad',1,'Sqrt::operator()()'],['../struct_rsqrt.html#ae16699fd829e40416436247a39233fda',1,'Rsqrt::operator()()'],['../struct_tan.html#a1e6fb8c691621c69cb9bd393de4f6e78',1,'Tan::operator()(T x)'],['../struct_tan.html#a2ef120c9f92b0d2e9cec8389eda05724',1,'Tan::operator()(complex64_t x)'],['../struct_tanh.html#adce11a7ad33226c6ecff34f46f5c45d7',1,'Tanh::operator()(T x)'],['../struct_tanh.html#aa8423b43c725bb4b88965a11e8cf20f6',1,'Tanh::operator()(complex64_t x)']]], + ['operator_28_29_20',['operator()',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a4fd637f1a6d335826789af28ac089ecb',1,'pocketfft::detail::ExecC2C::operator()()'],['../structpocketfft_1_1detail_1_1_exec_hartley.html#a67c98b38d12440781053552b9a33bba1',1,'pocketfft::detail::ExecHartley::operator()()'],['../structpocketfft_1_1detail_1_1_exec_dcst.html#a67f4f56e3574c491695f8cb8a1e983d8',1,'pocketfft::detail::ExecDcst::operator()()'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#acdba1650962714e6afff51e9ca456970',1,'pocketfft::detail::ExecR2R::operator()()'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a0d657bc9a381dca1b5860b9a1b5a5702',1,'mlx::core::detail::Abs::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a564232db7d32811e2ae126c86de104f0',1,'mlx::core::detail::Abs::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a5fac7e6c8277d8706535a52820503c9d',1,'mlx::core::detail::Abs::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#af2c3723e648bd5ed2fe558cc20b7f5eb',1,'mlx::core::detail::Abs::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a57312cd8530dd0ede3b8037f9c401883',1,'mlx::core::detail::Abs::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#ab3b5e3853ed56bfbfa577d965c21112e',1,'mlx::core::detail::Abs::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_arc_cos.html#a04b4c9d1fc0160973aa28b1f809b9d51',1,'mlx::core::detail::ArcCos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_cosh.html#a767d354bec863942822ee0b9b6742a88',1,'mlx::core::detail::ArcCosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sin.html#ac69091929815e5317308b4088f5c2f46',1,'mlx::core::detail::ArcSin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sinh.html#ac7bf9bac66fef917f75494b2345e6aaf',1,'mlx::core::detail::ArcSinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan.html#aee87bf10c278a70ca788085d1b499afe',1,'mlx::core::detail::ArcTan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan2.html#a9040b7afcdb4969924aa782fa67f03ac',1,'mlx::core::detail::ArcTan2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a601e8c52bb938eb3a616756a35419e8b',1,'mlx::core::detail::ArcTanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a672f65e47d65e4e8d88be252bce0164b',1,'mlx::core::detail::Ceil::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a72a2cab2728fb5e1cc6329a539e5d573',1,'mlx::core::detail::Ceil::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#aa34590f6a41331be92988558a90dc6fa',1,'mlx::core::detail::Ceil::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af14120f3dd98f6198ea257d75be223f7',1,'mlx::core::detail::Ceil::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af263ce7743cf7319387baba616c375b5',1,'mlx::core::detail::Ceil::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a48f00affcd5c2ea1f81d821e019fec29',1,'mlx::core::detail::Ceil::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#ad4d24a44e8a328948393701dacb0ceac',1,'mlx::core::detail::Ceil::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a70da19b5c9c69f04b9f196bdf266f93c',1,'mlx::core::detail::Ceil::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af0e7e806b73c664ada837476f9d4d43b',1,'mlx::core::detail::Ceil::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#acc1bfc84a9b91f6e9764234cbe3b9687',1,'mlx::core::detail::Ceil::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_conjugate.html#a7e662d05c6998bd6ced8ad9c187324a5',1,'mlx::core::detail::Conjugate::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cos.html#ad4caef573f9d9071f8945a8efed231ad',1,'mlx::core::detail::Cos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cosh.html#a63591f49776d9aadc02200036ae38317',1,'mlx::core::detail::Cosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf.html#a168f8ccc6c8053b05dd1a48904ca8fd4',1,'mlx::core::detail::Erf::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html#acc93c0511141404208b35f302f8c1fcb',1,'mlx::core::detail::ErfInv::operator()()'],['../structmlx_1_1core_1_1detail_1_1_exp.html#a0846300cee28315e5b42f74acafbd1a1',1,'mlx::core::detail::Exp::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_exp.html#af247c0d19d59f3310fd0a081eb92cf8b',1,'mlx::core::detail::Exp::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_expm1.html#abf7e61b8387521e9d44334ce88d833a0',1,'mlx::core::detail::Expm1::operator()()'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a16c13cfe736098bffc81d655e172294a',1,'mlx::core::detail::Floor::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a9b6c4c34b6594b8c413abe31f34a73df',1,'mlx::core::detail::Floor::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#aca4c71204b3ceeca6329f7ea2b041f4c',1,'mlx::core::detail::Floor::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a3c3ab9e00d1fbd124802517e8c35fe02',1,'mlx::core::detail::Floor::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a4b5954ffc59c741dd7b86bafda69d5cc',1,'mlx::core::detail::Floor::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2e33b10bd5b04551054a87c601440bc7',1,'mlx::core::detail::Floor::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2500f971100919a694f78669a5e4f438',1,'mlx::core::detail::Floor::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a23df818301d68389e6e12f5a9ec1fbd7',1,'mlx::core::detail::Floor::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#ac988b4f265cf46c68609c9c8787c15fb',1,'mlx::core::detail::Floor::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a7f936e3fd53772bc189d845c73b53202',1,'mlx::core::detail::Floor::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782',1,'mlx::core::detail::Imag::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log.html#a0012a4e1744dbe9a28c3b5652be6e1c6',1,'mlx::core::detail::Log::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log2.html#a467bd4c995674721ff5fff6df33aead8',1,'mlx::core::detail::Log2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log10.html#a2633c5b772bbc9f8b66cffd4a3e01a3f',1,'mlx::core::detail::Log10::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log1p.html#a3220de8c6090c44aa2070b1fbb2dc340',1,'mlx::core::detail::Log1p::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html#a79799668ea5c364b0b4e2bc330e76253',1,'mlx::core::detail::LogicalNot::operator()()'],['../structmlx_1_1core_1_1detail_1_1_negative.html#afc4595c70ef7196df374cf4b2cc5e526',1,'mlx::core::detail::Negative::operator()()'],['../structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61',1,'mlx::core::detail::Real::operator()()'],['../structmlx_1_1core_1_1detail_1_1_round.html#a653f29c059bbfa6192378732a8a23351',1,'mlx::core::detail::Round::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_round.html#a82a984f13568051009e257fe85227da6',1,'mlx::core::detail::Round::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89',1,'mlx::core::detail::Sigmoid::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a64ed5013cee7ff18c7fe70bc04737e7b',1,'mlx::core::detail::Sign::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7106ed1f2f98a365fcb3e6ee39084748',1,'mlx::core::detail::Sign::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7163e8c068dcc460600ed04014dc9945',1,'mlx::core::detail::Sign::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#ae8f56c7134721c846240830169424c22',1,'mlx::core::detail::Sign::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a10ae519e9a74a327fc72c410e9ab2936',1,'mlx::core::detail::Sign::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a91be4e273f6c7ea5d44cfab380b77603',1,'mlx::core::detail::Sign::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sin.html#ae95671816529cc2188389af37a2f1a13',1,'mlx::core::detail::Sin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sinh.html#a9663ddf0fa4c0003576b48f3d5385f00',1,'mlx::core::detail::Sinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099',1,'mlx::core::detail::Square::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sqrt.html#aa5a4830b3ef7efab20ea88a110667efd',1,'mlx::core::detail::Sqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_rsqrt.html#a9af247be16bab83243038aac54446b79',1,'mlx::core::detail::Rsqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tan.html#aba397cd7ac05bbe06dfa9e3a64bdb05f',1,'mlx::core::detail::Tan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tanh.html#a1749ba1edfd53095ed7d45c0e53bab61',1,'mlx::core::detail::Tanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_add.html#a2d6011c35768b5fcd2bb75747b944353',1,'mlx::core::detail::Add::operator()()'],['../structmlx_1_1core_1_1detail_1_1_divide.html#a5e0d22e2084c4ca81bec0d457a46c662',1,'mlx::core::detail::Divide::operator()()'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a3bdaf1095ad883ecc0fecc455f02cbf3',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a52c3a2ba86fccb24d37d218ae8328954',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a0b0dd6ef5b08585fdf8355770da8d747',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a68fe542084fb94d9a5abd740fe07832b',1,'mlx::core::detail::Remainder::operator()(complex64_t numerator, complex64_t denominator)'],['../structmlx_1_1core_1_1detail_1_1_equal.html#a2994cf1884e7126e76d0a20b215fe3ab',1,'mlx::core::detail::Equal::operator()()'],['../structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf',1,'mlx::core::detail::NaNEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094',1,'mlx::core::detail::Greater::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30',1,'mlx::core::detail::GreaterEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb',1,'mlx::core::detail::Less::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7',1,'mlx::core::detail::LessEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5',1,'mlx::core::detail::LogAddExp::operator()()'],['../structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1',1,'mlx::core::detail::Multiply::operator()()'],['../structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d',1,'mlx::core::detail::NotEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a',1,'mlx::core::detail::Subtract::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8',1,'mlx::core::detail::LogicalAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a',1,'mlx::core::detail::LogicalOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb',1,'mlx::core::detail::Select::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700',1,'mlx::core::detail::BitwiseAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20',1,'mlx::core::detail::BitwiseOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0',1,'mlx::core::detail::BitwiseXor::operator()()'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a',1,'mlx::core::detail::LeftShift::operator()()'],['../structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620',1,'mlx::core::detail::RightShift::operator()()'],['../structmlx_1_1core_1_1_default_strided_reduce.html#a024682ab93b84e544a07e3a9c3c51fba',1,'mlx::core::DefaultStridedReduce::operator()()'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a08144c7a3cdf10af5e47f4575da3694f',1,'mlx::core::DefaultContiguousReduce::operator()()'],['../struct_add.html#ac5c66b63d63a222d3ae0ab8cc7c90eb5',1,'Add::operator()()'],['../struct_floor_divide.html#a2b328e4d768e718fa439f955c524666a',1,'FloorDivide::operator()(T x, T y)'],['../struct_floor_divide.html#afc16a2b2a745225e0bc95640f3fc0219',1,'FloorDivide::operator()(float x, float y)'],['../struct_floor_divide.html#ae91719a15f7e643d552129f476089c6a',1,'FloorDivide::operator()(half x, half y)'],['../struct_floor_divide.html#a4aa9f858626583e02bd79f747229bbca',1,'FloorDivide::operator()(bfloat16_t x, bfloat16_t y)'],['../struct_divide.html#a0a16b9194abc2ab7c61129f81a9bbb3d',1,'Divide::operator()()'],['../struct_remainder.html#ab7875512ff4341c580c6dc372e64fc58',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#a18150b5f4425e30b95ffabc6bb25cede',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ab3b75f54b56fd357c9755daadb2cafc2',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ae918ce0e246937d4fe04e2ea36e4b2c1',1,'Remainder::operator()(complex64_t x, complex64_t y)'],['../struct_equal.html#aa498087080900d4428ba428a6496a769',1,'Equal::operator()()'],['../struct_na_n_equal.html#a00220898e02db656d21dde9e9354a8dc',1,'NaNEqual::operator()(T x, T y)'],['../struct_na_n_equal.html#a6185e4554dce5b4659d21673c576be51',1,'NaNEqual::operator()(complex64_t x, complex64_t y)'],['../struct_greater.html#a98d7d8ee360cd0f469c6eb9a017560f5',1,'Greater::operator()()'],['../struct_greater_equal.html#ae69a3bccc567a46506cf0d296294ce80',1,'GreaterEqual::operator()()'],['../struct_less.html#a5ee0b31b2d9123dc4504f2979a5854d3',1,'Less::operator()()'],['../struct_less_equal.html#ae9f9a1b2eae548977139704f0044acfe',1,'LessEqual::operator()()'],['../struct_log_add_exp.html#ab32417f18e8ff68c15f78aceeb624edf',1,'LogAddExp::operator()()'],['../struct_maximum.html#a3ea0f42bc4cd80b68a98f189f9fa859c',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a0bc8fadc87f2c49fc440d625bfc97ca6',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a907e8793900be5927625377dab199644',1,'Maximum::operator()(complex64_t x, complex64_t y)'],['../struct_minimum.html#aa6113dfac3986c0f571fa53f65c5330e',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a0c939921de87ab9c6959238aac81a059',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a800fba087280f79c2f7e9aff75bed093',1,'Minimum::operator()(complex64_t x, complex64_t y)'],['../struct_multiply.html#a1327fc5a0713931afe997b0d4d2988e0',1,'Multiply::operator()()'],['../struct_not_equal.html#af008d73a5d9cde0b8309b7e8ee7438b2',1,'NotEqual::operator()(T x, T y)'],['../struct_not_equal.html#a14de494cea4e4869351202cad1149f17',1,'NotEqual::operator()(complex64_t x, complex64_t y)'],['../struct_power.html#a2b6df2a9e48155ff9734caca8504a79f',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a36829163d42973034a1f8a7ecc57a1de',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a27cdfb313c4e82b63bdcdaee923cbbef',1,'Power::operator()(complex64_t x, complex64_t y)'],['../struct_subtract.html#ae0856cd8d449074ca287baa7e460f68a',1,'Subtract::operator()()'],['../struct_logical_and.html#a8bc6bdabc0ea0678a46e2cf6217cb3a6',1,'LogicalAnd::operator()()'],['../struct_logical_or.html#ade6a931324a604a3119d2220d6f5460d',1,'LogicalOr::operator()()'],['../struct_bitwise_and.html#afb48af090b01dd0200963bc12d842e36',1,'BitwiseAnd::operator()()'],['../struct_bitwise_or.html#a41f847463daafa99ee56f4035578390f',1,'BitwiseOr::operator()()'],['../struct_bitwise_xor.html#a3a3e8a56caab739d40262d9349c9c485',1,'BitwiseXor::operator()()'],['../struct_left_shift.html#aa729747784c38bfdbba34794fcf5175b',1,'LeftShift::operator()()'],['../struct_right_shift.html#a2cc59b400c68342b0e43050431323c17',1,'RightShift::operator()()'],['../struct_arc_tan2.html#ac9b7729753e13be293ab700231d061ac',1,'ArcTan2::operator()()'],['../struct_div_mod.html#a8b5758f2ea18d4c903b462331b25abfe',1,'DivMod::operator()()'],['../struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b',1,'CumProd< bool >::operator()()'],['../struct_cum_max.html#a781b9b955c5412466da6af6c70d73c06',1,'CumMax::operator()()'],['../struct_cum_min.html#ae0b8c3761e04fa538d304ca842281a66',1,'CumMin::operator()()'],['../struct_less_than.html#a2798eb377b411c93a4ed30cf35caade2',1,'LessThan::operator()()'],['../struct_select.html#adb51692aae3038de07dd745891bf9848',1,'Select::operator()()'],['../struct_abs.html#a9e7481dfcc162509769852026ff4a344',1,'Abs::operator()(T x)'],['../struct_abs.html#a0ca113fd036151c443df3f83cc667f28',1,'Abs::operator()(uint8_t x)'],['../struct_abs.html#adaeab32a7e377dc990077ab15f3dc4c2',1,'Abs::operator()(uint16_t x)'],['../struct_abs.html#a99d2a2f37a6cddd3168b0224f2a9b963',1,'Abs::operator()(uint32_t x)'],['../struct_abs.html#ac9cbc02422d930479303f240a7ea6c71',1,'Abs::operator()(uint64_t x)'],['../struct_abs.html#ac30835b27784d451bd2e4524c8eb9e11',1,'Abs::operator()(bool x)'],['../struct_abs.html#ab82917d6b30a2c579e7eb879d305c5fc',1,'Abs::operator()(complex64_t x)'],['../struct_arc_cos.html#a5553cecf58511e24e76ac97f2d90b9ac',1,'ArcCos::operator()()'],['../struct_arc_cosh.html#a5c9e7712c14c97298b23ec48e19abc58',1,'ArcCosh::operator()()'],['../struct_arc_sin.html#a0343872f2da93bae2bb0baadf49da022',1,'ArcSin::operator()()'],['../struct_arc_sinh.html#a3066fb7dc7c3180100fb55ff94af6a7a',1,'ArcSinh::operator()()'],['../struct_arc_tan.html#af3a0aec6acec8ae8f5e4c4d5cf8c91ba',1,'ArcTan::operator()()'],['../struct_arc_tanh.html#a37dc3e01ec2830de7e82ed6c6363ac88',1,'ArcTanh::operator()()'],['../struct_ceil.html#a5e2a4ef1b012f5d352064489156e5e44',1,'Ceil::operator()(T x)'],['../struct_ceil.html#a455cd8083ba859993077f2e078ae165b',1,'Ceil::operator()(int8_t x)'],['../struct_ceil.html#a2acb61bc658c7a216795e7f76ebcf98a',1,'Ceil::operator()(int16_t x)'],['../struct_ceil.html#aef8c37f7a8ee3fc80700d605a09891fb',1,'Ceil::operator()(int32_t x)'],['../struct_ceil.html#a93d0110511ad5dd200e12d37a3d7d6e3',1,'Ceil::operator()(int64_t x)'],['../struct_ceil.html#aa335b745fa26e0f443cdb36298105484',1,'Ceil::operator()(uint8_t x)'],['../struct_ceil.html#ade17e13b7f30f5c590fae1581a2013ac',1,'Ceil::operator()(uint16_t x)'],['../struct_ceil.html#a411c75cc35cdc088402e176a1defd22d',1,'Ceil::operator()(uint32_t x)'],['../struct_ceil.html#a9ac660ca29eef7a7429fceb7b917a68a',1,'Ceil::operator()(uint64_t x)'],['../struct_ceil.html#a40de367e62f06ebd7e1330afa93a9ad9',1,'Ceil::operator()(bool x)'],['../struct_cos.html#ae222f8710f6b8254c471ebd475aa5bda',1,'Cos::operator()(T x)'],['../struct_cos.html#a5f26feb1dcc4bec5f59a9ff511c5b163',1,'Cos::operator()(complex64_t x)'],['../struct_cosh.html#a5847ebeebb236fdc926798ddc16475ba',1,'Cosh::operator()(T x)'],['../struct_cosh.html#aefdd91298dac16d528d29ee47e2f7252',1,'Cosh::operator()(complex64_t x)'],['../struct_conjugate.html#acb0a2694285f1f57c7654b371ce8cbd8',1,'Conjugate::operator()()'],['../struct_erf.html#a80719402ad7f7d418859a6677d7b604d',1,'Erf::operator()()'],['../struct_erf_inv.html#afbf3668d1a512e889f093a0bc7673309',1,'ErfInv::operator()()'],['../struct_exp.html#a5ef395868e055348c0802fd5fe45669c',1,'Exp::operator()(T x)'],['../struct_exp.html#a2b341ac400c4d145397950eb60734336',1,'Exp::operator()(complex64_t x)'],['../struct_expm1.html#a4b834d42cf0b84daf03fec62c222091a',1,'Expm1::operator()()'],['../struct_floor.html#ace3551f28429081e9f3a3dab0c84212b',1,'Floor::operator()(T x)'],['../struct_floor.html#a10d7fd05b4c224c9f135451246d13014',1,'Floor::operator()(int8_t x)'],['../struct_floor.html#a2865a04a492e3590302f4bd3215a10d7',1,'Floor::operator()(int16_t x)'],['../struct_floor.html#a41012343ff0463ec44b4d06196f41182',1,'Floor::operator()(int32_t x)'],['../struct_floor.html#aae3181d15856796aa0628cf30c92aa2e',1,'Floor::operator()(int64_t x)'],['../struct_floor.html#ac6cf38d82c8e270911afdca4c69ad51b',1,'Floor::operator()(uint8_t x)'],['../struct_floor.html#a78969b9e2b53ae248e72a67259eea5d8',1,'Floor::operator()(uint16_t x)'],['../struct_floor.html#a959009320ed622ed45b39becab1d5b98',1,'Floor::operator()(uint32_t x)'],['../struct_floor.html#a7d04b83c3345cd867315cae2d7ff68ab',1,'Floor::operator()(uint64_t x)'],['../struct_floor.html#abea845fe5e8e6b93bd4bca8717337e0b',1,'Floor::operator()(bool x)'],['../struct_imag.html#a3b29e9f8a46c194d683f6a9938314400',1,'Imag::operator()()'],['../struct_log.html#a32a383cb6be06e616a75f23bf49089c3',1,'Log::operator()()'],['../struct_log2.html#ac1e067ecdcbdbffb6106e789c2b98b64',1,'Log2::operator()()'],['../struct_log10.html#ac596a74c1642a00f3eced07ee3334122',1,'Log10::operator()()'],['../struct_log1p.html#a4464c6e7bdbe55ffd7d961c695cd13ce',1,'Log1p::operator()()'],['../struct_logical_not.html#a8a620bac957ab8c09ac85adfddd96708',1,'LogicalNot::operator()()'],['../struct_negative.html#af6879b374314a559faa321e8cce3d710',1,'Negative::operator()()'],['../struct_real.html#a85b9c5b9e65297994fa26ff68e19e809',1,'Real::operator()()'],['../struct_round.html#aa06a0195867e2ceb679c403b6909a1c4',1,'Round::operator()(T x)'],['../struct_round.html#ad3a08f2276ff1033900bc0a7da812655',1,'Round::operator()(complex64_t x)'],['../struct_sigmoid.html#a75a24cd75cb4d4c9a072811b2d70ad55',1,'Sigmoid::operator()()'],['../struct_sign.html#aa3304c6b43bcad53061614b741d8403c',1,'Sign::operator()(T x)'],['../struct_sign.html#ac48992b675b8b28be1e27e1f2ec5d2f7',1,'Sign::operator()(uint32_t x)'],['../struct_sign.html#ae07a4249e1b61419a3b9ca6c337b7bb5',1,'Sign::operator()(complex64_t x)'],['../struct_sin.html#a7caf98c777521fa5d5c6ddaaa3b779fd',1,'Sin::operator()(T x)'],['../struct_sin.html#aa510cf4595b6d49065ab6b602d8fcb14',1,'Sin::operator()(complex64_t x)'],['../struct_sinh.html#a02cf32bcf560657b9ee34fb1affed8e2',1,'Sinh::operator()(T x)'],['../struct_sinh.html#a1f8ba1858d352ee68861cd6ea861af43',1,'Sinh::operator()(complex64_t x)'],['../struct_square.html#afde739fc544e45dd30964c02dca94310',1,'Square::operator()()'],['../struct_sqrt.html#ab9b16d2b9b03a1c54190f4479a56a4ad',1,'Sqrt::operator()()'],['../struct_rsqrt.html#ae16699fd829e40416436247a39233fda',1,'Rsqrt::operator()()'],['../struct_tan.html#a1e6fb8c691621c69cb9bd393de4f6e78',1,'Tan::operator()(T x)'],['../struct_tan.html#a2ef120c9f92b0d2e9cec8389eda05724',1,'Tan::operator()(complex64_t x)'],['../struct_tanh.html#adce11a7ad33226c6ecff34f46f5c45d7',1,'Tanh::operator()(T x)'],['../struct_tanh.html#aa8423b43c725bb4b88965a11e8cf20f6',1,'Tanh::operator()(complex64_t x)']]], ['operator_2a_21',['operator*',['../structpocketfft_1_1detail_1_1cmplx.html#a26bf3d709a58f06228e502af6db8e5ac',1,'pocketfft::detail::cmplx::operator*(const T2 &other) const -> cmplx< decltype(r *other)>'],['../structpocketfft_1_1detail_1_1cmplx.html#ad9c591ef8ae976293f207937d273e9a1',1,'pocketfft::detail::cmplx::operator*(const cmplx< T2 > &other) const -> cmplx< decltype(r+other.r)>'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a153756072fda6d3e53bcca11b46a1238',1,'mlx::core::array::ArrayIterator::operator*()'],['../backend_2metal_2kernels_2bf16_8h.html#a8f06316063fc91747533105f256b55b5',1,'operator*(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7b3bce3f6f17089d87e13e91f580a581',1,'operator*(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a54ae7216b82c5cea362f6b83e1df3a9b',1,'operator*(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a852689073c17596de4fb545bc046b380',1,'operator*(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a168300bbd04d8e97c5e4218cb14ae378',1,'operator*(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a6278bd2e0e2805090b33ef666bf7f6bb',1,'operator*(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aecf703522d9ce32dfeefe1e6e903db06',1,'operator*(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7cd44d27fa9a4f13df39894c34fdb348',1,'operator*(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aee64dc1890abb6d1035361cb8c751f96',1,'operator*(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad1a559ab88dbbb4fd2c7509d2c94e55b',1,'operator*(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a495ae2d9be5d97c4c6448fc4e50a03e1',1,'operator*(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a87ab4b7a502430da664ccb8abd383058',1,'operator*(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5f997839cf49c24ab594a0dff486a7bc',1,'operator*(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a681d4fb076973f58f7dac894ec62a385',1,'operator*(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga26c33f5cdb6fc10d272acd6e208034e0',1,'mlx::core::operator*(const array &a, const array &b)'],['../group__ops.html#gac22a67f7de797b1ae59029843cbdcab6',1,'mlx::core::operator*(T a, const array &b)'],['../group__ops.html#ga6f2369ed5fae8ff9b1528670a004dde2',1,'mlx::core::operator*(const array &a, T b)'],['../namespacemlx_1_1core.html#a0cc824d6318f97f7058918ab64ddfc25',1,'mlx::core::operator*(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a81e1c727c3fc48910b030cb65a9e7afa',1,'mlx::core::operator*(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a861d948220d8f48d46c68d2ddb16a096',1,'mlx::core::operator*(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a13d16561812679b36e68185dc4b2d04d',1,'mlx::core::operator*(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a5287610200ff573730c9c92413f48881',1,'mlx::core::operator*(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a377ccc6b4ef36767abca102dca56dc10',1,'mlx::core::operator*(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a5d696b63635ce6967526d6a410f7f6b1',1,'mlx::core::operator*(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abe90e9527bfa3e1c813d41df4a2372e7',1,'mlx::core::operator*(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a5f14963c77f96bcb5a3bef5661a86ba4',1,'mlx::core::operator*(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#acfb06fe9f5fee01dbb5a2b23bccfd0d3',1,'mlx::core::operator*(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#afc9a87f1fccbac05242b91bfbb35c24d',1,'mlx::core::operator*(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0b9678af9b487900cacf6639a4693de0',1,'mlx::core::operator*(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ad5950619081389e6ed7512f38358d33d',1,'mlx::core::operator*(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a65d25d082374761c05b056e1046d1d4e',1,'mlx::core::operator*(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a759191fb984e7737f0ef529c2053ad73',1,'mlx::core::operator*(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3a52675c3d4552b319dd9707844abdec',1,'mlx::core::operator*(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a45d67f5d80fba4d42e34c682a8d22beb',1,'mlx::core::operator*(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ad25880c67bbcbfafbe54dc16418bf736',1,'mlx::core::operator*(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a63c836e1141e07ae72cee770bad01200',1,'mlx::core::operator*(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a265a37b8ee4a97390213e9ec49693e66',1,'mlx::core::operator*(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab5a457da04dcb157a0b5172c4b2244b6',1,'mlx::core::operator*(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#aa56a8bda08be9ef3711496e216a75c95',1,'mlx::core::operator*(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af89612098dd355b1eefb841c753b36ab',1,'mlx::core::operator*(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a4552687a0637f710b5d55bb6378fcabe',1,'mlx::core::operator*(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af69db7def588d7da430434a69456e29c',1,'mlx::core::operator*(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a00af6e5095888f00791ee0ab6d993ad6',1,'mlx::core::operator*(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab48feddc1aa304383e5493923506ad7a',1,'mlx::core::operator*(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a0367b582e85162b4180e086f725e49e9',1,'mlx::core::operator*(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a45f0479526fbccdb00bc73ea7f3b7625',1,'mlx::core::operator*(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a394797646010ba9ef2a1f9b9a4b8ddd9',1,'mlx::core::operator*(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#acaaa86b59c7ceb2e092ac07f2a75225c',1,'mlx::core::operator*(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a067d47823a322b88043cce7ce4a3ec78',1,'mlx::core::operator*(bfloat16_t lhs, float16_t rhs)']]], ['operator_2a_3d_22',['operator*=',['../structpocketfft_1_1detail_1_1cmplx.html#a683fd490182c9189fa2c05b1823edd93',1,'pocketfft::detail::cmplx::operator*=(T2 other)'],['../structpocketfft_1_1detail_1_1cmplx.html#a06f2c26c6fc4722e61b44da4c242ed87',1,'pocketfft::detail::cmplx::operator*=(const cmplx< T2 > &other)'],['../backend_2metal_2kernels_2bf16_8h.html#a7232b0a0e193b3c6172d6fc2578bf419',1,'operator*=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ade65ebca11e38d56408c512df89b99f4',1,'operator*=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af4348ce3425dd99d069e8fdf06e25a3c',1,'operator*=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2c3c5f793b3d957d7295d7f1faabebee',1,'operator*=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac66657077d55e94197b52b63acb50b7d',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a383165ea838cc3feeee4d9cf54aa77cc',1,'operator*=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab706af260b61f735b28464877d02137c',1,'operator*=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a979374b1dd4e0eaf602326fa901336d1',1,'operator*=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac815eec2c1b15a47b1c6ea6790e77d24',1,'operator*=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8110fae7bcc34a0de5927546b24aa935',1,'operator*=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae4acef3e7ae7dfe359422503f894e885',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adc268cdbc30500f3009f5de2b2f0f67a',1,'operator*=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a81f65b04a87a25c7eb1a751d1be9fa55',1,'operator*=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08c1f916302eb9d48c93f8b7260538fe',1,'operator*=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adc8e82b8f593b12c6d405e2250ab0f62',1,'operator*=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4611728172afea51860a77fdb06cafa0',1,'operator*=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0b8736e2ae24758b6e24ea72668df5b4',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad920df9579603f0b0ee2689eba330617',1,'operator*=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae97ab6c3ddcc2754b24f86319a5398be',1,'operator*=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3ff4ff59f411010ac8502cfabda4bd6f',1,'operator*=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abd3d82e2dec1847e97eb8fc3bab2985a',1,'operator*=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a738078eb7d5ff94ff48156a555d763a5',1,'operator*=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a435f2f4256aadb1b57fd62bb7f733cf7',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0e4377b120d6305335d296e031ee5b30',1,'operator*=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a917354f77eac26189da8a2f610a00074',1,'operator*=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af725f935bfa0405e5ff17ede3ac47283',1,'operator*=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7c56980c234a04260b8b19298085e526',1,'operator*=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab840ff9de0cdd0e9afffb8baa2a850a3',1,'operator*=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a73416a7415f3fe31525e33419e5e8aab',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a16978f4b16d954ef4d4cf0f32f6c0b94',1,'operator*=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a99aa4cc110d1c7aa3b4c8c5cbf9235b7',1,'operator*=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2179abbc91ce8763e96e39e1917bfa6e',1,'operator*=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab070ea4676d10a10ff3e9379a4068a57',1,'operator*=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0197e039d4c65bf49649a6f250c2d436',1,'operator*=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad3565cc6fd1e088d052b1108aa065851',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a711693988c437c2fb4d7da505982fe21',1,'operator*=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aeff4c28986f98c23de1df17043edb0f5',1,'operator*=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7dbf0c75df4817cb4ef8b60c417a89d0',1,'operator*=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a323a80492cd17a49e2c3dd18f8c8b5cc',1,'operator*=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adb465776d3868bda0525d632ffc4d129',1,'operator*=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a12a98d71d670b409b8065e0d61672d55',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5d00eb2ec2b0e15b2753d100694c45ae',1,'operator*=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1a2a683ff40490226eb1371fb905023d',1,'operator*=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4126fb7ed5bbb27a2332c543cf56a337',1,'operator*=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab092d9790ef20fc0386707530aee89db',1,'operator*=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abff1fd2439e31e6e64a3d2fdee3c7821',1,'operator*=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a625dcb133f1f953f263e6200399866c6',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08b6071245513e1726ec68e3b63edc53',1,'operator*=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a13aa79165ec87710e977f33fe0361e91',1,'operator*=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3796dcf819adb1ef8152f57ba63ff6b1',1,'operator*=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aaab79d0b4c9e9bdc059ace6ec58c5b00',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a0dd3893abc8986901872c8365ab1509d',1,'mlx::core::operator*=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a3cc5c154e4ad9a83ad43da8513146fdc',1,'mlx::core::operator*=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a600e77dbc72e78207b5f5dbf4b298781',1,'mlx::core::operator*=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a54833be1d44bc3adfc9ea218fc3685bd',1,'mlx::core::operator*=(float &lhs, _MLX_Float16 rhs)']]], ['operator_2b_23',['operator+',['../structpocketfft_1_1detail_1_1cmplx.html#a76447ef141c8732d57421749fc81b236',1,'pocketfft::detail::cmplx::operator+()'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ae2adde594b5a4853f6bc78263a957d85',1,'mlx::core::array::ArrayIterator::operator+()'],['../backend_2metal_2kernels_2bf16_8h.html#a09c1a797eb7f43742578680899932f50',1,'operator+(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a551b970f73bb4a3b287653021d000b60',1,'operator+(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a43a225e7e548bb041f3a5d844faaf0da',1,'operator+(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8b6c3fd9d068a2159084359df8b9b449',1,'operator+(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0a5bfe15d95ba540795f4c25ebfa4f07',1,'operator+(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa415ce182fe7582d885fe633fc3527ce',1,'operator+(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a62f891b7dbba0000749cf338f594bedb',1,'operator+(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab43932322f81bf322aa1b0deeee9a987',1,'operator+(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acd15d46ea5827a2a39898ccbb8352eb8',1,'operator+(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a006763fae6e0577fc168ec9446f0f747',1,'operator+(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a12a47e8ac0be788edff57ae0a96d7830',1,'operator+(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af87dfa2122e9c76042dc41fb7f338a87',1,'operator+(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af2737d09c887ee8cd43fdeabceddbe82',1,'operator+(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#ad6af5c6c5ed4898b49758618e5aee189',1,'operator+(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga26e5a043eaaaf066d1400adac9c11d0c',1,'mlx::core::operator+(const array &a, const array &b)'],['../group__ops.html#ga7d0ec8d01e7cefa6a6b25f11876761b5',1,'mlx::core::operator+(T a, const array &b)'],['../group__ops.html#ga7cc080a4f9d4a667f2099aa0dbfefadd',1,'mlx::core::operator+(const array &a, T b)'],['../namespacemlx_1_1core.html#ac14b984970cafd8fbe24d080949515cc',1,'mlx::core::operator+(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab076069c6f0047c548a8dc29d35dd36a',1,'mlx::core::operator+(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#aab9d96b0a168f4d05146000a6212b5d8',1,'mlx::core::operator+(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ac4e6f03d7e4ae701b4eefa784f36185b',1,'mlx::core::operator+(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a4cabd600a5271b0d416c91e8d31dd9c1',1,'mlx::core::operator+(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af26df9dc279d71b7cc10892c72162b58',1,'mlx::core::operator+(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#ac3b97eecec9bd8efb313f8f201560343',1,'mlx::core::operator+(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2e3bb121cbde30c2e6d806df0d41ff59',1,'mlx::core::operator+(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ac87ecce4b44b0826e666a169ddc6f878',1,'mlx::core::operator+(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aed3d9cd32698ef0fe65b1280f103b3f5',1,'mlx::core::operator+(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a6fa13b9359cf3f575fbda5260e6e035d',1,'mlx::core::operator+(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af240a6471ff827819192808bffeb857a',1,'mlx::core::operator+(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ac25a05679f312b724c406d8b282803c9',1,'mlx::core::operator+(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a54863a54f258acf2b5c734950618e4e1',1,'mlx::core::operator+(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a9f81f5ea8909db9660197217612ee446',1,'mlx::core::operator+(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a13e26c38da0a4e332e0ae4eb0aed9cb8',1,'mlx::core::operator+(const std::complex< float > &x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a59bb13a0bb7f748c8de34415b248bc57',1,'mlx::core::operator+(const complex64_t &x, const std::complex< float > &y)'],['../namespacemlx_1_1core.html#a38a44c412c8be4c8b952d3082cc7db74',1,'mlx::core::operator+(const complex64_t &x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a011dbdbd2413e59e744cf82b05431340',1,'mlx::core::operator+(bool x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a230e3b7c479add1b171fa0aaa3a8b13c',1,'mlx::core::operator+(const complex64_t &x, bool y)'],['../namespacemlx_1_1core.html#a3a6f43c2485f0d42293184f1aecbeaee',1,'mlx::core::operator+(uint32_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a766157c5d5d00fdf3da95eb7cb2981b9',1,'mlx::core::operator+(const complex64_t &x, uint32_t y)'],['../namespacemlx_1_1core.html#a64dceec2bb03eee963a2a1bc1ac69284',1,'mlx::core::operator+(uint64_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#ae36badb78a17cd7d13663a69645fc328',1,'mlx::core::operator+(const complex64_t &x, uint64_t y)'],['../namespacemlx_1_1core.html#ac1afa5d4c856e4b58109eff086e70ffd',1,'mlx::core::operator+(int32_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a8978def3c2cfe2a96314d564613b80db',1,'mlx::core::operator+(const complex64_t &x, int32_t y)'],['../namespacemlx_1_1core.html#a5b8af5ca4c0e37aba0b7530542bd64c2',1,'mlx::core::operator+(int64_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a3eaa72850205c18450c3af9a01cda219',1,'mlx::core::operator+(const complex64_t &x, int64_t y)'],['../namespacemlx_1_1core.html#ad38b38a3faf050735d45eed4438ee27a',1,'mlx::core::operator+(float16_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a358e66ff205bda3e8542427b6d2edadc',1,'mlx::core::operator+(const complex64_t &x, float16_t y)'],['../namespacemlx_1_1core.html#af56d4b85e329e39a825c01a50e3a2522',1,'mlx::core::operator+(bfloat16_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a806a495a129ebaab69cc57ca7db831d6',1,'mlx::core::operator+(const complex64_t &x, bfloat16_t y)'],['../namespacemlx_1_1core.html#a09fc6ebda917969383783a112a8547e7',1,'mlx::core::operator+(float x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a7ed0e2cdb65612f54e67166762cb6408',1,'mlx::core::operator+(const complex64_t &x, float y)'],['../namespacemlx_1_1core.html#af7577c91b8c43682f0ebc9eb9758aae4',1,'mlx::core::operator+(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#abe36af9951afd8dd3ffe90ceedeb7f2b',1,'mlx::core::operator+(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#afb9f780dd056a4f975518f71a3b021ee',1,'mlx::core::operator+(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a6a8e093b24c4c789b7cd160f7e7f7de9',1,'mlx::core::operator+(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#af3a603690fd3de9e4f7f2035a4d25621',1,'mlx::core::operator+(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afa2a4bccfeea9688ac922cb638341511',1,'mlx::core::operator+(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a6111e94d51de12391e5d68b765f28fc3',1,'mlx::core::operator+(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7c7dd6d346e0cdf398a896f2c6958258',1,'mlx::core::operator+(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a00872a443f462b0ae0a30c84fb001bc0',1,'mlx::core::operator+(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4f5d80d03bae6d8d90455d3c47a8c116',1,'mlx::core::operator+(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a78f1f388f9d81ed93f60311f4645d8d0',1,'mlx::core::operator+(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#aa43e1d6958c5d5a6fa9a625a1660e741',1,'mlx::core::operator+(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ae877e1d5e3cf57734da8b49535fe3fb3',1,'mlx::core::operator+(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a9a5ae769f67f886d59c8e292a8218550',1,'mlx::core::operator+(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a058878237ce50baa4c909d8d15448d7e',1,'mlx::core::operator+(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a95fd207028f125eefbafe9e0522407fe',1,'mlx::core::operator+(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#abc6425a3fbb386f5ea5964b42507e989',1,'mlx::core::operator+(bfloat16_t lhs, float16_t rhs)']]], @@ -34,7 +34,7 @@ var searchData= ['operator_3c_31',['operator<',['../backend_2metal_2kernels_2bf16_8h.html#a9ef6a57b7185e9ca49e255fec1a44e25',1,'operator<(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aab02c65bc38ea66335b2192ead4095a8',1,'operator<(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae91686513e284bcc9635833744bbdda1',1,'operator<(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2486f3b5de85b0d57f458d8f21f82b42',1,'operator<(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a435a2aec4c777b4b184ff5d24992e8a1',1,'operator<(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abdd04257e6a73883b5f56f1186d0e906',1,'operator<(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a69984aaa05ae1d4fccccf7f57e8ecb4a',1,'operator<(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a501cc01d5bf15d9f03aa28545f9624ea',1,'operator<(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1b029e4ca72125a5f9471f582c819705',1,'operator<(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0736a76f56578d26ba1422dc8b744a18',1,'operator<(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a24b1fa8998c892f90f8dde7c34fb10a5',1,'operator<(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af80ff2020ec2c4b406c5fdae3fe55e63',1,'operator<(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac03f6eefb836373d37dc280b0d813d78',1,'operator<(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a67674e32596a9dae2258bb8e0e6a2058',1,'operator<(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#gaee41e2b8f61d563200ff03575ac1d6c3',1,'mlx::core::operator<(const array &a, const array &b)'],['../group__ops.html#ga1ef8ea11cf15ce628c54201fa42748ef',1,'mlx::core::operator<(T a, const array &b)'],['../group__ops.html#ga95e72226dc7a79c40b3d16f990922050',1,'mlx::core::operator<(const array &a, T b)'],['../namespacemlx_1_1core.html#a987d631e1508e8df55d98ddd57e4d086',1,'mlx::core::operator<(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad3fb46370cd8f0992866fad9e2c64a3c',1,'mlx::core::operator<(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a3026691bf7ee5095243a8611bf3411aa',1,'mlx::core::operator<(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0d42d6c1d5f77a96e2f296b8ebd79ee6',1,'mlx::core::operator<(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#ab5ce08a7de0a0ca00d61f7a7f8ea3ab4',1,'mlx::core::operator<(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abce8b7f24b61e5ec0f9a3afe20845caf',1,'mlx::core::operator<(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#aff97612627ae1ed260c43c0a7af0d306',1,'mlx::core::operator<(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a9119e518234df7923cae2b3802d59bf2',1,'mlx::core::operator<(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#aefb9b05ce8864ada99a920ab32017b89',1,'mlx::core::operator<(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abc55f3676c2d112a6e9ab276bd6b1796',1,'mlx::core::operator<(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#afe6581a2c45f24d7fab1e4006c1e3c70',1,'mlx::core::operator<(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aca1d50cdd9506481dcc4cd1ad4a4f734',1,'mlx::core::operator<(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a310720f513b6a2490e9df80c65f1bfb3',1,'mlx::core::operator<(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a29e457a170b6cefb6ba1e394c96c6f7b',1,'mlx::core::operator<(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#afd4519985b6b207ec41ad8530d1036df',1,'mlx::core::operator<(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae1e41ca94022e43a00cdfc5845102daa',1,'mlx::core::operator<(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ac80f4022bffd95b57526685ce8e1cbc1',1,'mlx::core::operator<(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a3a8f6f0af477788c4f0aa98abfc5f1ab',1,'mlx::core::operator<(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a3728ed9b6cbd152bf675251a0501b466',1,'mlx::core::operator<(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a5b9ad811a5e1358100c5423dd70ea387',1,'mlx::core::operator<(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a5c77e1db83995d3e06a8a26265bce5d6',1,'mlx::core::operator<(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab8a0a3f70664049b35ce1887bd8ff5c2',1,'mlx::core::operator<(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a6652d93bfb2d426e261a1712a181a4d2',1,'mlx::core::operator<(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a03758b8d13da2de07cc4f4fc45d2854b',1,'mlx::core::operator<(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a325161b81a9ff179fd37d949780a17ba',1,'mlx::core::operator<(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a92eca79fce8233e4299343eee3996511',1,'mlx::core::operator<(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#adb016662b8f7eb680abfe1a421eabe72',1,'mlx::core::operator<(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_3c_3c_32',['operator<<',['../group__ops.html#gad656c30f9fd7d9467e405657b325aa7e',1,'mlx::core::operator<<(const array &a, const array &b)'],['../namespacemlx_1_1core.html#a1e5c30e316afa30c14bc48b92afdb794',1,'mlx::core::operator<<(std::ostream &os, const Device &d)'],['../namespacemlx_1_1core.html#a4ddd07021b36c848d6fb1dd9ac276822',1,'mlx::core::operator<<(std::ostream &os, const Stream &s)'],['../namespacemlx_1_1core.html#a0023c267cf81345fad65e7a797954cd3',1,'mlx::core::operator<<(std::ostream &os, const Dtype &d)'],['../namespacemlx_1_1core.html#a1fd58658474fb842d648dcf8f7d9f078',1,'mlx::core::operator<<(std::ostream &os, const Dtype::Kind &k)'],['../namespacemlx_1_1core.html#a123331f01188bd76e37623b63b6b4340',1,'mlx::core::operator<<(std::ostream &os, array a)'],['../namespacemlx_1_1core.html#a4e733bba89760abed32393e085812b22',1,'mlx::core::operator<<(std::ostream &os, const std::vector< int > &v)'],['../namespacemlx_1_1core.html#a6276bb9bad43ed4a27a1e2c3f5bfd990',1,'mlx::core::operator<<(std::ostream &os, const std::vector< size_t > &v)'],['../namespacemlx_1_1core.html#a5e5bd5c57b1cf19776bdb41e732861d9',1,'mlx::core::operator<<(std::ostream &os, const std::vector< int64_t > &v)'],['../namespacemlx_1_1core.html#a42a19c8442b173606e714364227e7d45',1,'mlx::core::operator<<(std::ostream &os, const complex64_t &v)'],['../namespacemlx_1_1core.html#a57eb97a5eba99a846ac429795e407574',1,'mlx::core::operator<<(std::ostream &os, const float16_t &v)'],['../namespacemlx_1_1core.html#a7db909d54cf07375e89424c32c07a29c',1,'mlx::core::operator<<(std::ostream &os, const bfloat16_t &v)']]], ['operator_3c_3d_33',['operator<=',['../backend_2metal_2kernels_2bf16_8h.html#af469c58cffeab488c681f4b33f02cd05',1,'operator<=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5a81eae168dfafd299c2b94e3e8558cf',1,'operator<=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0f486bf02c6ad5b9b6a96d3450f03e47',1,'operator<=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acba9efe192d22b7781b4622103c7a944',1,'operator<=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aff100489cc40ad276c2d5d67a9df67db',1,'operator<=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7eac96f64ca42991caf819c8e8c8d2bc',1,'operator<=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a88c11cd37600de5480570da3d2ae5732',1,'operator<=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08c7d12a0d16565fbf052dba2db8b22d',1,'operator<=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2b9de9624c0a507b4ead85f898ad9daf',1,'operator<=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a28f8d21c5eef047c701cf690ce9c2ef0',1,'operator<=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a14b56c687053ee2432398a25663c068f',1,'operator<=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0f360806708b95a3be400af0b8871b57',1,'operator<=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a80d288f22cadfdf5e904410349e616a1',1,'operator<=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#aee04c9a63c6716a99a027418354debb0',1,'operator<=(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga4c8b8a1632944acaae50f0de6c23ece6',1,'mlx::core::operator<=(const array &a, const array &b)'],['../group__ops.html#ga150a9be467c9f91482a6d6fc13504bc4',1,'mlx::core::operator<=(T a, const array &b)'],['../group__ops.html#ga624eeccef0cc4b130e1325abfea057cb',1,'mlx::core::operator<=(const array &a, T b)'],['../namespacemlx_1_1core.html#a0066a47cb21223ddebc77992ee874fb9',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2593dbace3ce50e7146d9514726a543f',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a88654bcf6c9728517a2933ca2e29a7c1',1,'mlx::core::operator<=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a5d4f449e9c1699b99fcf894dd15e8af3',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a6b678bea8fdcda1f11c6691b56a15211',1,'mlx::core::operator<=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae8aacc606ea16f018a90eae758830a35',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a25668dea4ffb51c7c00eeecb9530d1d8',1,'mlx::core::operator<=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a084558b6a5487549799c49c37c9e9652',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ade2e2a0daa79d5c52f278f85f03dde2e',1,'mlx::core::operator<=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a750a2d2b4976ad94b08994d081f83445',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ade5a175ff45347689ac4c798d04c8ffc',1,'mlx::core::operator<=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae25e0c01b46612f039313a4825ba6428',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a5c90f16d8f6edf4b75c96b945b9fa591',1,'mlx::core::operator<=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a8cd6583fa0fc9957f993e00b2ec01d91',1,'mlx::core::operator<=(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#a012130a0458cbc30b88365e0e0eab232',1,'mlx::core::operator<=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae8c890bdcffadee8c5dab85c907f57eb',1,'mlx::core::operator<=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a43cb070553c1f2fffb32ef6670e30980',1,'mlx::core::operator<=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ac759b7798d668a99535e59e26d6ba192',1,'mlx::core::operator<=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a70e528a789b5660d98e783b045aaa379',1,'mlx::core::operator<=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a40bd8abb8a4d989ddabbb298518bd7f5',1,'mlx::core::operator<=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a4155d4b0c76f37ab5e0b54f9cd683f35',1,'mlx::core::operator<=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad8bb648d0603a206e0392990c911ca0b',1,'mlx::core::operator<=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ace72a5853f2afd6510dcb97d54fa650d',1,'mlx::core::operator<=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab38f7a0d3c0809071ff5d3af859018d6',1,'mlx::core::operator<=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a7904b886d7b535a6af0a885d00597323',1,'mlx::core::operator<=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a57952168bd0b54c2677204d4ab1cb6e5',1,'mlx::core::operator<=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a6235dc5f4db517618bb3449b08c96e8b',1,'mlx::core::operator<=(uint64_t lhs, _MLX_Float16 rhs)']]], - ['operator_3d_34',['operator=',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4',1,'mlx::core::allocator::Allocator::operator=(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c',1,'mlx::core::allocator::Allocator::operator=(Allocator &&other)=delete'],['../classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36',1,'mlx::core::array::operator=(const array &other) &&=delete'],['../classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd',1,'mlx::core::array::operator=(array &&other) &&=delete'],['../classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479',1,'mlx::core::array::operator=(array &&other) &=default'],['../classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147',1,'mlx::core::array::operator=(const array &other) &'],['../structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748',1,'mlx::core::array::Data::operator=()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e',1,'mlx::core::metal::CommandEncoder::operator=()'],['../classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73',1,'mlx::core::metal::Device::operator=()'],['../classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b',1,'mlx::core::Primitive::operator=(const Primitive &other)=delete'],['../classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e',1,'mlx::core::Primitive::operator=(Primitive &&other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22',1,'mlx::core::UnaryPrimitive::operator=(const UnaryPrimitive &other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5',1,'mlx::core::UnaryPrimitive::operator=(UnaryPrimitive &&other)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ab170dbd2ce34c51e2eeebf5d08e7e2db',1,'mlx::core::scheduler::Scheduler::operator=(const Scheduler &)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a035ea35f4dd8ee985973080f14029379',1,'mlx::core::scheduler::Scheduler::operator=(Scheduler &&)=delete'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#a0f65b0523b8ddd989f338da6cb2860e3',1,'mlx::core::_MLX_BFloat16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#abb8cd44ee22b17c55333ff2eb4e13a14',1,'mlx::core::_MLX_BFloat16::operator=(const float &x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a608a099bf7116ee608dcfd31ea3ade2c',1,'mlx::core::_MLX_Float16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a35543c3653d477c46350697fb808373d',1,'mlx::core::_MLX_Float16::operator=(const float &x)']]], + ['operator_3d_34',['operator=',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4',1,'mlx::core::allocator::Allocator::operator=(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c',1,'mlx::core::allocator::Allocator::operator=(Allocator &&other)=delete'],['../classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36',1,'mlx::core::array::operator=(const array &other) &&=delete'],['../classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd',1,'mlx::core::array::operator=(array &&other) &&=delete'],['../classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479',1,'mlx::core::array::operator=(array &&other) &=default'],['../classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147',1,'mlx::core::array::operator=(const array &other) &'],['../structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748',1,'mlx::core::array::Data::operator=()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e',1,'mlx::core::metal::CommandEncoder::operator=()'],['../classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73',1,'mlx::core::metal::Device::operator=()'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#aef97dbbc755940789f99a26164591c45',1,'mlx::core::metal::ResidencySet::operator=()'],['../classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b',1,'mlx::core::Primitive::operator=(const Primitive &other)=delete'],['../classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e',1,'mlx::core::Primitive::operator=(Primitive &&other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22',1,'mlx::core::UnaryPrimitive::operator=(const UnaryPrimitive &other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5',1,'mlx::core::UnaryPrimitive::operator=(UnaryPrimitive &&other)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ab170dbd2ce34c51e2eeebf5d08e7e2db',1,'mlx::core::scheduler::Scheduler::operator=(const Scheduler &)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a035ea35f4dd8ee985973080f14029379',1,'mlx::core::scheduler::Scheduler::operator=(Scheduler &&)=delete'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#a0f65b0523b8ddd989f338da6cb2860e3',1,'mlx::core::_MLX_BFloat16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#abb8cd44ee22b17c55333ff2eb4e13a14',1,'mlx::core::_MLX_BFloat16::operator=(const float &x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a608a099bf7116ee608dcfd31ea3ade2c',1,'mlx::core::_MLX_Float16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a35543c3653d477c46350697fb808373d',1,'mlx::core::_MLX_Float16::operator=(const float &x)']]], ['operator_3d_3d_35',['operator==',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a1afd6d2a19a2b0d712063f221ab4eba7',1,'mlx::core::array::ArrayIterator::operator=='],['../backend_2metal_2kernels_2bf16_8h.html#a49a13b06a325ed3cca4004b6a0cde065',1,'operator==(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0aa3bfcfab53700488e5f386e6de60d5',1,'operator==(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3936148781ab1c4f33f58d12c116f370',1,'operator==(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae753526b669fba27771089dc809abd66',1,'operator==(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a05a4f197a71d0f16879032f44492bb79',1,'operator==(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae86f5917847b1ec9f313996250f2e0be',1,'operator==(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aab74ec4d33a64b92b908717d500f1ecf',1,'operator==(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac30a2c1fa6f172af903fdeb6a8632606',1,'operator==(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab4e9ad547aa23daa351075e0ecc58fa2',1,'operator==(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa5fa1a8f2b39c3508fe38205469756d1',1,'operator==(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aeadc1f36c6bdc219294ce9341d80afa5',1,'operator==(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3ae2091ada1e39e857fbc53c97bdb79f',1,'operator==(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac7b4d295f3c7b1e09964f24f306422da',1,'operator==(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#abfc19f03616441245dfc7726b278f190',1,'operator==(complex64_t a, complex64_t b): complex.h'],['../namespacemlx_1_1core.html#a937503d72b66c661bf3f5fdcd98ef97c',1,'mlx::core::operator==(const Device &lhs, const Device &rhs)'],['../group__ops.html#gaa30cf69f3d22f65615f5e1696dd5703f',1,'mlx::core::operator==(const array &a, const array &b)'],['../group__ops.html#gaf115782d009ac2a547fcca395c9ec797',1,'mlx::core::operator==(T a, const array &b)'],['../group__ops.html#ga3ad3ed7aece2650943a35082dbe3a0a5',1,'mlx::core::operator==(const array &a, T b)'],['../namespacemlx_1_1core.html#ac470f937a379d6356c8f567c97cd7481',1,'mlx::core::operator==(const Stream &lhs, const Stream &rhs)'],['../namespacemlx_1_1core.html#aec63a0472cb943fe39f31e7678555572',1,'mlx::core::operator==(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad05311ca8e2f19ffe5849e963837cec7',1,'mlx::core::operator==(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#aaaf591cb2188381e6cbd857132d04eb7',1,'mlx::core::operator==(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7ef33c33509ccccf1ab217500e8b3c1a',1,'mlx::core::operator==(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#abec4200a718b7c5ed80b7abcc4447260',1,'mlx::core::operator==(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad853981b1c5ba69b07d54c7b77055d22',1,'mlx::core::operator==(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a752d6cb4172a9cb91e5da19582329c6d',1,'mlx::core::operator==(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0175beb3de139faa08479a88215b35ea',1,'mlx::core::operator==(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a61da2851cb3beeef28049228346c28b5',1,'mlx::core::operator==(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aa24713cb9e39bacb516c992eb03d2b2b',1,'mlx::core::operator==(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a6d565dd93c46259f9486d9fdf0969589',1,'mlx::core::operator==(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a24e79a82557861de64dad66d36e6ff30',1,'mlx::core::operator==(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#af27d515ac390d62bd852b73ea759a947',1,'mlx::core::operator==(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae3e1e8b7a5410e0edf35f31f74295e2f',1,'mlx::core::operator==(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#aaa22230a66b15c3e774d8ce45783a746',1,'mlx::core::operator==(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ae2a0bcdc171d7e9745d33e1d9aac4f8a',1,'mlx::core::operator==(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a331ec62442a8d3eb8ccba7b4de5168d1',1,'mlx::core::operator==(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#acfcaefe0990eb3533e2b11a6f2657492',1,'mlx::core::operator==(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a8d48dbd49cccff07777affb2a412058c',1,'mlx::core::operator==(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a88eae27edd22fa4418776672023cb276',1,'mlx::core::operator==(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a188b363f633ea360407b3f9cf4e1f1a6',1,'mlx::core::operator==(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ae065fe5c42c1a333d7858d19f6434fa9',1,'mlx::core::operator==(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a2f98db199deb6d7a82551fa4afec655a',1,'mlx::core::operator==(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a85f83add412cb320b5cd1c3da6aadbd5',1,'mlx::core::operator==(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7e2cee66c3ca1b56f4f3d7fd1d6e0be1',1,'mlx::core::operator==(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#ad436557da5c7fea71fc58182a876cfe5',1,'mlx::core::operator==(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_3e_36',['operator>',['../backend_2metal_2kernels_2bf16_8h.html#ae394c0a10e47d1d047854a888402eb57',1,'operator>(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab9cd098786d2f4c855c42e4a6f30ab3e',1,'operator>(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a55600f3b9859e2891e0e0b5690867b72',1,'operator>(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afd7cdb8ed2a9820efe9cf322c06f188c',1,'operator>(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a31bbdbe0b62b90a4d6ea4bb0a7db586b',1,'operator>(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a68125e66f74eaffe5ea9267638ce870d',1,'operator>(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac89eb6b29edad8cca63727ab97171c29',1,'operator>(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a74e477567c9477c2cf0684f81ef4498f',1,'operator>(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2d37130b6fd79b425f5ba92b65e36bed',1,'operator>(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a41d55d167e9dc63bf29d15e0ff004869',1,'operator>(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa95f9ebfdab3c5f524775651362ce914',1,'operator>(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2826bd301bb5393473ccd363f2052c0d',1,'operator>(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a62a512d0edd894759c69f724b970fbdb',1,'operator>(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a032a8d3eec2384c9f03066f7fd945995',1,'operator>(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga74fd2777adef10e6fe628a9cdadb01cb',1,'mlx::core::operator>(const array &a, const array &b)'],['../group__ops.html#ga32e106e794e2c32e4e7decee2df2477f',1,'mlx::core::operator>(T a, const array &b)'],['../group__ops.html#ga96552b90e89923c5d2064cc427775ec5',1,'mlx::core::operator>(const array &a, T b)'],['../namespacemlx_1_1core.html#aedc4e9df4bf71c0ac34fcfae60cdf550',1,'mlx::core::operator>(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a14c188303d09b97867bcfd34519aa4a6',1,'mlx::core::operator>(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ac97736fadafa7efa201624d0e1128ee8',1,'mlx::core::operator>(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3c41a304126bc225bdc68062d1eb6e7e',1,'mlx::core::operator>(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#ab594f3ae1ee13227fae940fef0d00cb9',1,'mlx::core::operator>(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a01dabc077a872c115a9a9ccd95f1acec',1,'mlx::core::operator>(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#adabbd8768d216873617768249473a5c7',1,'mlx::core::operator>(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#adae1b14669d27ce1fe0c214771c07b77',1,'mlx::core::operator>(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ab03a22961d99fa12d3e74b3116e94e8f',1,'mlx::core::operator>(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a42011a27a3d23a60be5be44ee7cac87c',1,'mlx::core::operator>(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a50f6a94bb36d89cf28817aff88ab89c8',1,'mlx::core::operator>(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ac173de50ee57b1b066d49363ba978c53',1,'mlx::core::operator>(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#ab09f1b4879aa3190c2f66c9bd1224021',1,'mlx::core::operator>(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a91eb6ca854217424129a55ae95a123b5',1,'mlx::core::operator>(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#a58d5795d8312599d101ae16f194e4a2a',1,'mlx::core::operator>(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#aafa3bbeda78610c4285f3e57042268f3',1,'mlx::core::operator>(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a8a928d76a6fbf3d336296401e14617a4',1,'mlx::core::operator>(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ade2f9222fd433cd4d673c6182f256235',1,'mlx::core::operator>(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#ae24c337810c841ff23e327efde7045e1',1,'mlx::core::operator>(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#acf401ede354fcc998b13ea6442994d7e',1,'mlx::core::operator>(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a2bb28a9a0894a73ae1b27e7f4da0841a',1,'mlx::core::operator>(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a09d631e8a85fd7ae72e1a868b8f9b9cb',1,'mlx::core::operator>(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a49421ea65b5a98df080d75b1636b2157',1,'mlx::core::operator>(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a692ce931b660415e17f92d18a8e0d446',1,'mlx::core::operator>(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a579bb87b3ede5663d7cd68c7c0f6fb9e',1,'mlx::core::operator>(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af810587a17e692f4eec256d3c3cd27de',1,'mlx::core::operator>(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a50f4177d3ca03a95fc2614e100c7391d',1,'mlx::core::operator>(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_3e_3d_37',['operator>=',['../backend_2metal_2kernels_2bf16_8h.html#a430dd11fbf4c6f39bc1506ab43b2341f',1,'operator>=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a64f6787a96386246f83a8981d274150e',1,'operator>=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1a788f82212afad30e4c2ee40f1c313c',1,'operator>=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae88617c4a012c5dc12781a349a28c886',1,'operator>=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a467a88531150a4d9d30fce07c49c126e',1,'operator>=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9e21c5ea9dd724dc2ca8c54ad908f09c',1,'operator>=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2f6286d222e2176bcbdc824c5d598100',1,'operator>=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abec53064aa96265385ecc57de5fbc74c',1,'operator>=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac766839f8f9e4863e8e18418c342c875',1,'operator>=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2807fa6862b0f9689c81199b1e695ed8',1,'operator>=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aee3ae0d0d1f941463b06eca0bf041b2b',1,'operator>=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a523eda93c809733368e2b45382d2add6',1,'operator>=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1f4e90909ac1c7280f4c7d1977c55fb7',1,'operator>=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#aafbd686c180398c98b33d7643f893a46',1,'operator>=(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga3a41895f25ed083a36994d95fa102546',1,'mlx::core::operator>=(const array &a, const array &b)'],['../group__ops.html#gaf509f2cb3b18963232f20d6c3bd229b2',1,'mlx::core::operator>=(T a, const array &b)'],['../group__ops.html#gafa0eb25d5978674bfc9e59d4145ec590',1,'mlx::core::operator>=(const array &a, T b)'],['../namespacemlx_1_1core.html#a8494764f5c686743ede66dc76d85d955',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a019df48807b506d9995856684bf7797a',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a96ab6405430efb887cdb5c828cb67d6e',1,'mlx::core::operator>=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ac18be72269b1bcfb0249cc00a0600681',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aeb879815228efbd2c8f80986e1c8d41f',1,'mlx::core::operator>=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0051156f6a568f58cd54850f746fb507',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ae93556906e115625ed1b62d36cf21b70',1,'mlx::core::operator>=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab81ad16e3be591dfc9e42ac3c19b055f',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a6cfe9b03e7c5f1eb9374208a552c3cc9',1,'mlx::core::operator>=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2f5add83812fb137dd9226c6c01e45d5',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ad1014a836e7ce9301de8588eef1e89ee',1,'mlx::core::operator>=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a17791561434dc995de9f268d145c0ed1',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a3755925b24a903045937464be117de2f',1,'mlx::core::operator>=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a6262aeb513d27fc8313293b261e72abb',1,'mlx::core::operator>=(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#a6feb4b3ea511b0eda4d1ec9725f3fb4c',1,'mlx::core::operator>=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a03b3f7fcb755ec075985ab26336926f0',1,'mlx::core::operator>=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#aecfbf5ef4872ae447eb4a374e4db28e4',1,'mlx::core::operator>=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae4690f349b2483f5d1a4b75aba67399f',1,'mlx::core::operator>=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a667e95146dd5199e67bcb121b984b1f0',1,'mlx::core::operator>=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a3375f1562f148bdc07451f2b6e54e6df',1,'mlx::core::operator>=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ae83df12368cb07ccb1c10c1117ff3922',1,'mlx::core::operator>=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad41251938cf852b5560c1180944ebb49',1,'mlx::core::operator>=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a4ddb5ef0b88929086f9b09729fda0dde',1,'mlx::core::operator>=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a0908a61ab261aff726922b33fa6ed159',1,'mlx::core::operator>=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a0fdadf87edd8a0a57c63953fb0ebe053',1,'mlx::core::operator>=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a47c82778e43032c0bbf5d59407e81dc9',1,'mlx::core::operator>=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a14e6c43b924eacca1b2dac1d5d00ca2b',1,'mlx::core::operator>=(uint64_t lhs, _MLX_Float16 rhs)']]], @@ -53,7 +53,7 @@ var searchData= ['out_5fof_5fbounds_50',['out_of_bounds',['../struct_read_writer.html#a08e10626fbc789b6dff9172fd6c36f7c',1,'ReadWriter::out_of_bounds() const'],['../struct_read_writer.html#a6f946aea5452109dca7fc70ed39c6efe',1,'ReadWriter::out_of_bounds() const'],['../struct_read_writer.html#a8f40d7f343d32134fe27a694abfde6bf',1,'ReadWriter::out_of_bounds() const']]], ['out_5fstrides_51',['out_strides',['../struct_m_l_x_conv_params.html#a0c8b2cfc26859a2af9d39a2cfcc3aea6',1,'MLXConvParams']]], ['outer_52',['outer',['../group__ops.html#ga866af24e10db2797e1c5a5986dbf6c0d',1,'mlx::core']]], - ['output_5fshapes_53',['output_shapes',['../classmlx_1_1core_1_1_primitive.html#a8849dc20991398f6f9a24d6785673853',1,'mlx::core::Primitive::output_shapes()'],['../classmlx_1_1core_1_1_abs.html#ab6a2b147f58c83439ecefb9189c2da32',1,'mlx::core::Abs::output_shapes()'],['../classmlx_1_1core_1_1_add.html#a9884fece6ca4061a65241c985fcf1594',1,'mlx::core::Add::output_shapes()'],['../classmlx_1_1core_1_1_arc_cos.html#a8ecd5b9a8cc9cba841768a5b2b497974',1,'mlx::core::ArcCos::output_shapes()'],['../classmlx_1_1core_1_1_arc_cosh.html#ae5d6660121f7f5a55824b95e7fd3dc6b',1,'mlx::core::ArcCosh::output_shapes()'],['../classmlx_1_1core_1_1_arc_sin.html#a1c6e478804eb5d171e4859b872db29f5',1,'mlx::core::ArcSin::output_shapes()'],['../classmlx_1_1core_1_1_arc_sinh.html#a6e0319a3cee5f6b9d43a3ac256b2c2ed',1,'mlx::core::ArcSinh::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan.html#aa5d1e60d50ffa77b1d0e14af8d7e127a',1,'mlx::core::ArcTan::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan2.html#a3f4ad806a0c59c2d1ae1c55c9889bf03',1,'mlx::core::ArcTan2::output_shapes()'],['../classmlx_1_1core_1_1_arc_tanh.html#a30246c56e1d75638c3696f84323861d8',1,'mlx::core::ArcTanh::output_shapes()'],['../classmlx_1_1core_1_1_arg_partition.html#a28608aee76a2db25f6455da561526c64',1,'mlx::core::ArgPartition::output_shapes()'],['../classmlx_1_1core_1_1_arg_reduce.html#a40a047cb3ed8d1445d42100b3fd85179',1,'mlx::core::ArgReduce::output_shapes()'],['../classmlx_1_1core_1_1_arg_sort.html#ac50e0b76c457aae944425b3a57c33859',1,'mlx::core::ArgSort::output_shapes()'],['../classmlx_1_1core_1_1_as_type.html#a18922e68006b5cf005355f5c9ac57ac4',1,'mlx::core::AsType::output_shapes()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a7d2dfa8884832fc1a94ce6400d0ed599',1,'mlx::core::BitwiseBinary::output_shapes()'],['../classmlx_1_1core_1_1_ceil.html#a1eb263c04df810e212855a17af0658ea',1,'mlx::core::Ceil::output_shapes()'],['../classmlx_1_1core_1_1_compiled.html#a453a10c68b7825def5b53207bc04a71c',1,'mlx::core::Compiled::output_shapes()'],['../classmlx_1_1core_1_1_conjugate.html#ada40413e9f210251476a37cc0d0ea37f',1,'mlx::core::Conjugate::output_shapes()'],['../classmlx_1_1core_1_1_copy.html#ac3d13ebc6464403962fa1a9897fe6df3',1,'mlx::core::Copy::output_shapes()'],['../classmlx_1_1core_1_1_cos.html#a05b2d43942aa1d93a40c20ae8b90a25b',1,'mlx::core::Cos::output_shapes()'],['../classmlx_1_1core_1_1_cosh.html#a1bef7feac9a387ea80e7fc774f579962',1,'mlx::core::Cosh::output_shapes()'],['../classmlx_1_1core_1_1_divide.html#ad514bed77ad94742e26c93e446940994',1,'mlx::core::Divide::output_shapes()'],['../classmlx_1_1core_1_1_div_mod.html#a61d835d777c8063089dc708898ff314b',1,'mlx::core::DivMod::output_shapes()'],['../classmlx_1_1core_1_1_select.html#a295cd22e2284f2216bc93fdcf0b54867',1,'mlx::core::Select::output_shapes()'],['../classmlx_1_1core_1_1_remainder.html#a74bf3a9723b59200573ff8bac9a0b666',1,'mlx::core::Remainder::output_shapes()'],['../classmlx_1_1core_1_1_equal.html#a2f91e9603f63ad539837356b1ff3e7a9',1,'mlx::core::Equal::output_shapes()'],['../classmlx_1_1core_1_1_erf.html#afa4abbd7786b474c44c336a95481d187',1,'mlx::core::Erf::output_shapes()'],['../classmlx_1_1core_1_1_erf_inv.html#a22a95594e68b43b50c05355c82779639',1,'mlx::core::ErfInv::output_shapes()'],['../classmlx_1_1core_1_1_exp.html#aee7ba8d5be4a11f4b8f359b0338ab670',1,'mlx::core::Exp::output_shapes()'],['../classmlx_1_1core_1_1_expm1.html#ab9dbf34806eb43b928722ed9e8feed08',1,'mlx::core::Expm1::output_shapes()'],['../classmlx_1_1core_1_1_floor.html#aaf86becc7bfba6ee2af0d1f6d8e25015',1,'mlx::core::Floor::output_shapes()'],['../classmlx_1_1core_1_1_greater.html#ab2167a38c3baff99f527f17eb4c71d46',1,'mlx::core::Greater::output_shapes()'],['../classmlx_1_1core_1_1_greater_equal.html#a636a9cc00b0333e49978f39814af640f',1,'mlx::core::GreaterEqual::output_shapes()'],['../classmlx_1_1core_1_1_hadamard.html#a458614bc7820ae56493eb56d813b2cde',1,'mlx::core::Hadamard::output_shapes()'],['../classmlx_1_1core_1_1_imag.html#ab396ef74748abd3d4121ffee33a08d48',1,'mlx::core::Imag::output_shapes()'],['../classmlx_1_1core_1_1_less.html#a5e8b56574ccb91c065548f4bda40e278',1,'mlx::core::Less::output_shapes()'],['../classmlx_1_1core_1_1_less_equal.html#a2e259f3de11f97f3bd38a2e65667d78f',1,'mlx::core::LessEqual::output_shapes()'],['../classmlx_1_1core_1_1_log.html#a113dcc95e2a1a052238b1f5c8935a63d',1,'mlx::core::Log::output_shapes()'],['../classmlx_1_1core_1_1_log1p.html#aebf8f5b6670f55fa24283a934f4b25df',1,'mlx::core::Log1p::output_shapes()'],['../classmlx_1_1core_1_1_logical_not.html#a4a40511a052a6627085be378bbebe69c',1,'mlx::core::LogicalNot::output_shapes()'],['../classmlx_1_1core_1_1_logical_and.html#a191d69d92c01ed5ad82d4688f1de2617',1,'mlx::core::LogicalAnd::output_shapes()'],['../classmlx_1_1core_1_1_logical_or.html#a26259843be2de75d5e07cb7ea94fcfe4',1,'mlx::core::LogicalOr::output_shapes()'],['../classmlx_1_1core_1_1_log_add_exp.html#ac35cf432ecdd141d957b55fc4bff6635',1,'mlx::core::LogAddExp::output_shapes()'],['../classmlx_1_1core_1_1_maximum.html#a7bb80360ba4b74d0b0f3f74a5ff90d1b',1,'mlx::core::Maximum::output_shapes()'],['../classmlx_1_1core_1_1_minimum.html#ab4a85741dffaa64d8ead028f11539d70',1,'mlx::core::Minimum::output_shapes()'],['../classmlx_1_1core_1_1_multiply.html#a072de3911113247c95c28d3b52400061',1,'mlx::core::Multiply::output_shapes()'],['../classmlx_1_1core_1_1_negative.html#a253c08c7461bf2dce05f555c8dbf0014',1,'mlx::core::Negative::output_shapes()'],['../classmlx_1_1core_1_1_not_equal.html#a5b10e99bc564197e7b16dccb0577d89a',1,'mlx::core::NotEqual::output_shapes()'],['../classmlx_1_1core_1_1_number_of_elements.html#aae36bb1e125c0a2d7cd54e78be0f2af8',1,'mlx::core::NumberOfElements::output_shapes()'],['../classmlx_1_1core_1_1_partition.html#ae5b792df683bc14dde89f75ac6bcbeaf',1,'mlx::core::Partition::output_shapes()'],['../classmlx_1_1core_1_1_power.html#a1c17867ea1bad8899adb38185c9423c1',1,'mlx::core::Power::output_shapes()'],['../classmlx_1_1core_1_1_real.html#a75d7b85e68a7a03ec911c7acc09ddde5',1,'mlx::core::Real::output_shapes()'],['../classmlx_1_1core_1_1_reduce.html#a0f73c2a55dc324145e11020c9b4d9a65',1,'mlx::core::Reduce::output_shapes()'],['../classmlx_1_1core_1_1_round.html#ad9a26817864dfc94b56e66bc6d80b047',1,'mlx::core::Round::output_shapes()'],['../classmlx_1_1core_1_1_sigmoid.html#a34572023c8748971289c2cb109ff9a43',1,'mlx::core::Sigmoid::output_shapes()'],['../classmlx_1_1core_1_1_sign.html#a719709b3c5d6b15a75614bdadd185f67',1,'mlx::core::Sign::output_shapes()'],['../classmlx_1_1core_1_1_sin.html#a46f059f04fd540f175f6031d28dc9f3a',1,'mlx::core::Sin::output_shapes()'],['../classmlx_1_1core_1_1_sinh.html#a4f10e7e6daf500575d97e077901e7d28',1,'mlx::core::Sinh::output_shapes()'],['../classmlx_1_1core_1_1_softmax.html#afea757ba328b9d8f35058793eae73e35',1,'mlx::core::Softmax::output_shapes()'],['../classmlx_1_1core_1_1_sort.html#a271545b66607b22e5f06a0fefe69f22d',1,'mlx::core::Sort::output_shapes()'],['../classmlx_1_1core_1_1_square.html#ac4c4927639cab1c5b91a074e7f68da02',1,'mlx::core::Square::output_shapes()'],['../classmlx_1_1core_1_1_sqrt.html#ae3d4f99729a7e72be7decf5a56d095d5',1,'mlx::core::Sqrt::output_shapes()'],['../classmlx_1_1core_1_1_stop_gradient.html#a12e7f55e087aea58b2a56f239c69bb4e',1,'mlx::core::StopGradient::output_shapes()'],['../classmlx_1_1core_1_1_subtract.html#a0fbf4bc9a0c76edc37ebb4083d98f3fc',1,'mlx::core::Subtract::output_shapes()'],['../classmlx_1_1core_1_1_tan.html#a7be9fd77491a48b07b6e126ab68bdf37',1,'mlx::core::Tan::output_shapes()'],['../classmlx_1_1core_1_1_tanh.html#a0392f51a9e51915d4691615757ba4325',1,'mlx::core::Tanh::output_shapes()']]], - ['outputs_54',['outputs',['../classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289',1,'mlx::core::array']]], + ['output_5fshapes_53',['output_shapes',['../classmlx_1_1core_1_1_primitive.html#a8849dc20991398f6f9a24d6785673853',1,'mlx::core::Primitive::output_shapes()'],['../classmlx_1_1core_1_1_abs.html#ab6a2b147f58c83439ecefb9189c2da32',1,'mlx::core::Abs::output_shapes()'],['../classmlx_1_1core_1_1_add.html#a9884fece6ca4061a65241c985fcf1594',1,'mlx::core::Add::output_shapes()'],['../classmlx_1_1core_1_1_arc_cos.html#a8ecd5b9a8cc9cba841768a5b2b497974',1,'mlx::core::ArcCos::output_shapes()'],['../classmlx_1_1core_1_1_arc_cosh.html#ae5d6660121f7f5a55824b95e7fd3dc6b',1,'mlx::core::ArcCosh::output_shapes()'],['../classmlx_1_1core_1_1_arc_sin.html#a1c6e478804eb5d171e4859b872db29f5',1,'mlx::core::ArcSin::output_shapes()'],['../classmlx_1_1core_1_1_arc_sinh.html#a6e0319a3cee5f6b9d43a3ac256b2c2ed',1,'mlx::core::ArcSinh::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan.html#aa5d1e60d50ffa77b1d0e14af8d7e127a',1,'mlx::core::ArcTan::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan2.html#a3f4ad806a0c59c2d1ae1c55c9889bf03',1,'mlx::core::ArcTan2::output_shapes()'],['../classmlx_1_1core_1_1_arc_tanh.html#a30246c56e1d75638c3696f84323861d8',1,'mlx::core::ArcTanh::output_shapes()'],['../classmlx_1_1core_1_1_arg_partition.html#a28608aee76a2db25f6455da561526c64',1,'mlx::core::ArgPartition::output_shapes()'],['../classmlx_1_1core_1_1_arg_reduce.html#a40a047cb3ed8d1445d42100b3fd85179',1,'mlx::core::ArgReduce::output_shapes()'],['../classmlx_1_1core_1_1_arg_sort.html#ac50e0b76c457aae944425b3a57c33859',1,'mlx::core::ArgSort::output_shapes()'],['../classmlx_1_1core_1_1_as_type.html#a18922e68006b5cf005355f5c9ac57ac4',1,'mlx::core::AsType::output_shapes()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a7d2dfa8884832fc1a94ce6400d0ed599',1,'mlx::core::BitwiseBinary::output_shapes()'],['../classmlx_1_1core_1_1_ceil.html#a1eb263c04df810e212855a17af0658ea',1,'mlx::core::Ceil::output_shapes()'],['../classmlx_1_1core_1_1_compiled.html#a453a10c68b7825def5b53207bc04a71c',1,'mlx::core::Compiled::output_shapes()'],['../classmlx_1_1core_1_1_conjugate.html#ada40413e9f210251476a37cc0d0ea37f',1,'mlx::core::Conjugate::output_shapes()'],['../classmlx_1_1core_1_1_copy.html#ac3d13ebc6464403962fa1a9897fe6df3',1,'mlx::core::Copy::output_shapes()'],['../classmlx_1_1core_1_1_cos.html#a05b2d43942aa1d93a40c20ae8b90a25b',1,'mlx::core::Cos::output_shapes()'],['../classmlx_1_1core_1_1_cosh.html#a1bef7feac9a387ea80e7fc774f579962',1,'mlx::core::Cosh::output_shapes()'],['../classmlx_1_1core_1_1_divide.html#ad514bed77ad94742e26c93e446940994',1,'mlx::core::Divide::output_shapes()'],['../classmlx_1_1core_1_1_div_mod.html#a61d835d777c8063089dc708898ff314b',1,'mlx::core::DivMod::output_shapes()'],['../classmlx_1_1core_1_1_select.html#a295cd22e2284f2216bc93fdcf0b54867',1,'mlx::core::Select::output_shapes()'],['../classmlx_1_1core_1_1_remainder.html#a74bf3a9723b59200573ff8bac9a0b666',1,'mlx::core::Remainder::output_shapes()'],['../classmlx_1_1core_1_1_equal.html#a2f91e9603f63ad539837356b1ff3e7a9',1,'mlx::core::Equal::output_shapes()'],['../classmlx_1_1core_1_1_erf.html#afa4abbd7786b474c44c336a95481d187',1,'mlx::core::Erf::output_shapes()'],['../classmlx_1_1core_1_1_erf_inv.html#a22a95594e68b43b50c05355c82779639',1,'mlx::core::ErfInv::output_shapes()'],['../classmlx_1_1core_1_1_exp.html#aee7ba8d5be4a11f4b8f359b0338ab670',1,'mlx::core::Exp::output_shapes()'],['../classmlx_1_1core_1_1_expm1.html#ab9dbf34806eb43b928722ed9e8feed08',1,'mlx::core::Expm1::output_shapes()'],['../classmlx_1_1core_1_1_floor.html#aaf86becc7bfba6ee2af0d1f6d8e25015',1,'mlx::core::Floor::output_shapes()'],['../classmlx_1_1core_1_1_greater.html#ab2167a38c3baff99f527f17eb4c71d46',1,'mlx::core::Greater::output_shapes()'],['../classmlx_1_1core_1_1_greater_equal.html#a636a9cc00b0333e49978f39814af640f',1,'mlx::core::GreaterEqual::output_shapes()'],['../classmlx_1_1core_1_1_hadamard.html#a458614bc7820ae56493eb56d813b2cde',1,'mlx::core::Hadamard::output_shapes()'],['../classmlx_1_1core_1_1_imag.html#ab396ef74748abd3d4121ffee33a08d48',1,'mlx::core::Imag::output_shapes()'],['../classmlx_1_1core_1_1_less.html#a5e8b56574ccb91c065548f4bda40e278',1,'mlx::core::Less::output_shapes()'],['../classmlx_1_1core_1_1_less_equal.html#a2e259f3de11f97f3bd38a2e65667d78f',1,'mlx::core::LessEqual::output_shapes()'],['../classmlx_1_1core_1_1_log.html#a113dcc95e2a1a052238b1f5c8935a63d',1,'mlx::core::Log::output_shapes()'],['../classmlx_1_1core_1_1_log1p.html#aebf8f5b6670f55fa24283a934f4b25df',1,'mlx::core::Log1p::output_shapes()'],['../classmlx_1_1core_1_1_logical_not.html#a4a40511a052a6627085be378bbebe69c',1,'mlx::core::LogicalNot::output_shapes()'],['../classmlx_1_1core_1_1_logical_and.html#a191d69d92c01ed5ad82d4688f1de2617',1,'mlx::core::LogicalAnd::output_shapes()'],['../classmlx_1_1core_1_1_logical_or.html#a26259843be2de75d5e07cb7ea94fcfe4',1,'mlx::core::LogicalOr::output_shapes()'],['../classmlx_1_1core_1_1_log_add_exp.html#ac35cf432ecdd141d957b55fc4bff6635',1,'mlx::core::LogAddExp::output_shapes()'],['../classmlx_1_1core_1_1_maximum.html#a7bb80360ba4b74d0b0f3f74a5ff90d1b',1,'mlx::core::Maximum::output_shapes()'],['../classmlx_1_1core_1_1_minimum.html#ab4a85741dffaa64d8ead028f11539d70',1,'mlx::core::Minimum::output_shapes()'],['../classmlx_1_1core_1_1_multiply.html#a072de3911113247c95c28d3b52400061',1,'mlx::core::Multiply::output_shapes()'],['../classmlx_1_1core_1_1_negative.html#a253c08c7461bf2dce05f555c8dbf0014',1,'mlx::core::Negative::output_shapes()'],['../classmlx_1_1core_1_1_not_equal.html#a5b10e99bc564197e7b16dccb0577d89a',1,'mlx::core::NotEqual::output_shapes()'],['../classmlx_1_1core_1_1_number_of_elements.html#aae36bb1e125c0a2d7cd54e78be0f2af8',1,'mlx::core::NumberOfElements::output_shapes()'],['../classmlx_1_1core_1_1_partition.html#ae5b792df683bc14dde89f75ac6bcbeaf',1,'mlx::core::Partition::output_shapes()'],['../classmlx_1_1core_1_1_power.html#a1c17867ea1bad8899adb38185c9423c1',1,'mlx::core::Power::output_shapes()'],['../classmlx_1_1core_1_1_real.html#a75d7b85e68a7a03ec911c7acc09ddde5',1,'mlx::core::Real::output_shapes()'],['../classmlx_1_1core_1_1_reduce.html#a0f73c2a55dc324145e11020c9b4d9a65',1,'mlx::core::Reduce::output_shapes()'],['../classmlx_1_1core_1_1_round.html#ad9a26817864dfc94b56e66bc6d80b047',1,'mlx::core::Round::output_shapes()'],['../classmlx_1_1core_1_1_sigmoid.html#a34572023c8748971289c2cb109ff9a43',1,'mlx::core::Sigmoid::output_shapes()'],['../classmlx_1_1core_1_1_sign.html#a719709b3c5d6b15a75614bdadd185f67',1,'mlx::core::Sign::output_shapes()'],['../classmlx_1_1core_1_1_sin.html#a46f059f04fd540f175f6031d28dc9f3a',1,'mlx::core::Sin::output_shapes()'],['../classmlx_1_1core_1_1_sinh.html#a4f10e7e6daf500575d97e077901e7d28',1,'mlx::core::Sinh::output_shapes()'],['../classmlx_1_1core_1_1_softmax.html#afea757ba328b9d8f35058793eae73e35',1,'mlx::core::Softmax::output_shapes()'],['../classmlx_1_1core_1_1_sort.html#a271545b66607b22e5f06a0fefe69f22d',1,'mlx::core::Sort::output_shapes()'],['../classmlx_1_1core_1_1_square.html#ac4c4927639cab1c5b91a074e7f68da02',1,'mlx::core::Square::output_shapes()'],['../classmlx_1_1core_1_1_sqrt.html#ae3d4f99729a7e72be7decf5a56d095d5',1,'mlx::core::Sqrt::output_shapes()'],['../classmlx_1_1core_1_1_stop_gradient.html#a12e7f55e087aea58b2a56f239c69bb4e',1,'mlx::core::StopGradient::output_shapes()'],['../classmlx_1_1core_1_1_subtract.html#a0fbf4bc9a0c76edc37ebb4083d98f3fc',1,'mlx::core::Subtract::output_shapes()'],['../classmlx_1_1core_1_1_tan.html#a7be9fd77491a48b07b6e126ab68bdf37',1,'mlx::core::Tan::output_shapes()'],['../classmlx_1_1core_1_1_tanh.html#a0392f51a9e51915d4691615757ba4325',1,'mlx::core::Tanh::output_shapes()'],['../classmlx_1_1core_1_1_eigh.html#a68c890a4172711fbab8baef8da40a9c5',1,'mlx::core::Eigh::output_shapes()']]], + ['outputs_54',['outputs',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9',1,'mlx::core::metal::DeviceStream::outputs'],['../classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289',1,'mlx::core::array::outputs()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f',1,'mlx::core::metal::CommandEncoder::outputs()']]], ['overwrite_5fdescriptor_55',['overwrite_descriptor',['../classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/classes_11.js b/docs/build/html/search/classes_11.js index 4986e1270..d4d9e7d27 100644 --- a/docs/build/html/search/classes_11.js +++ b/docs/build/html/search/classes_11.js @@ -10,13 +10,14 @@ var searchData= ['reductionplan_7',['ReductionPlan',['../structmlx_1_1core_1_1_reduction_plan.html',1,'mlx::core']]], ['remainder_8',['Remainder',['../structmlx_1_1core_1_1detail_1_1_remainder.html',1,'mlx::core::detail::Remainder'],['../classmlx_1_1core_1_1_remainder.html',1,'mlx::core::Remainder'],['../struct_remainder.html',1,'Remainder']]], ['reshape_9',['Reshape',['../classmlx_1_1core_1_1_reshape.html',1,'mlx::core']]], - ['retaingraph_10',['RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html',1,'mlx::core::detail']]], - ['rev_5fiter_11',['rev_iter',['../classpocketfft_1_1detail_1_1rev__iter.html',1,'pocketfft::detail']]], - ['rfftp_12',['rfftp',['../classpocketfft_1_1detail_1_1rfftp.html',1,'pocketfft::detail']]], - ['rightshift_13',['RightShift',['../structmlx_1_1core_1_1detail_1_1_right_shift.html',1,'mlx::core::detail::RightShift'],['../struct_right_shift.html',1,'RightShift']]], - ['rmsnorm_14',['RMSNorm',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html',1,'mlx::core::fast']]], - ['rmsnormvjp_15',['RMSNormVJP',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html',1,'mlx::core::fast']]], - ['rope_16',['RoPE',['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html',1,'mlx::core::fast']]], - ['round_17',['Round',['../structmlx_1_1core_1_1detail_1_1_round.html',1,'mlx::core::detail::Round'],['../classmlx_1_1core_1_1_round.html',1,'mlx::core::Round'],['../struct_round.html',1,'Round']]], - ['rsqrt_18',['Rsqrt',['../structmlx_1_1core_1_1detail_1_1_rsqrt.html',1,'mlx::core::detail::Rsqrt'],['../struct_rsqrt.html',1,'Rsqrt']]] + ['residencyset_10',['ResidencySet',['../classmlx_1_1core_1_1metal_1_1_residency_set.html',1,'mlx::core::metal']]], + ['retaingraph_11',['RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html',1,'mlx::core::detail']]], + ['rev_5fiter_12',['rev_iter',['../classpocketfft_1_1detail_1_1rev__iter.html',1,'pocketfft::detail']]], + ['rfftp_13',['rfftp',['../classpocketfft_1_1detail_1_1rfftp.html',1,'pocketfft::detail']]], + ['rightshift_14',['RightShift',['../structmlx_1_1core_1_1detail_1_1_right_shift.html',1,'mlx::core::detail::RightShift'],['../struct_right_shift.html',1,'RightShift']]], + ['rmsnorm_15',['RMSNorm',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html',1,'mlx::core::fast']]], + ['rmsnormvjp_16',['RMSNormVJP',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html',1,'mlx::core::fast']]], + ['rope_17',['RoPE',['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html',1,'mlx::core::fast']]], + ['round_18',['Round',['../structmlx_1_1core_1_1detail_1_1_round.html',1,'mlx::core::detail::Round'],['../classmlx_1_1core_1_1_round.html',1,'mlx::core::Round'],['../struct_round.html',1,'Round']]], + ['rsqrt_19',['Rsqrt',['../structmlx_1_1core_1_1detail_1_1_rsqrt.html',1,'mlx::core::detail::Rsqrt'],['../struct_rsqrt.html',1,'Rsqrt']]] ]; diff --git a/docs/build/html/search/classes_4.js b/docs/build/html/search/classes_4.js index c39ffeacd..27b04fa53 100644 --- a/docs/build/html/search/classes_4.js +++ b/docs/build/html/search/classes_4.js @@ -5,8 +5,9 @@ var searchData= ['defaultstridedreduce_2',['DefaultStridedReduce',['../structmlx_1_1core_1_1_default_strided_reduce.html',1,'mlx::core']]], ['depends_3',['Depends',['../classmlx_1_1core_1_1_depends.html',1,'mlx::core']]], ['device_4',['Device',['../structmlx_1_1core_1_1_device.html',1,'mlx::core::Device'],['../classmlx_1_1core_1_1metal_1_1_device.html',1,'mlx::core::metal::Device']]], - ['distprimitive_5',['DistPrimitive',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html',1,'mlx::core::distributed']]], - ['divide_6',['Divide',['../struct_divide.html',1,'Divide'],['../structmlx_1_1core_1_1detail_1_1_divide.html',1,'mlx::core::detail::Divide'],['../classmlx_1_1core_1_1_divide.html',1,'mlx::core::Divide']]], - ['divmod_7',['DivMod',['../struct_div_mod.html',1,'DivMod'],['../classmlx_1_1core_1_1_div_mod.html',1,'mlx::core::DivMod']]], - ['dtype_8',['Dtype',['../structmlx_1_1core_1_1_dtype.html',1,'mlx::core']]] + ['devicestream_5',['DeviceStream',['../structmlx_1_1core_1_1metal_1_1_device_stream.html',1,'mlx::core::metal']]], + ['distprimitive_6',['DistPrimitive',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html',1,'mlx::core::distributed']]], + ['divide_7',['Divide',['../struct_divide.html',1,'Divide'],['../structmlx_1_1core_1_1detail_1_1_divide.html',1,'mlx::core::detail::Divide'],['../classmlx_1_1core_1_1_divide.html',1,'mlx::core::Divide']]], + ['divmod_8',['DivMod',['../struct_div_mod.html',1,'DivMod'],['../classmlx_1_1core_1_1_div_mod.html',1,'mlx::core::DivMod']]], + ['dtype_9',['Dtype',['../structmlx_1_1core_1_1_dtype.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/classes_5.js b/docs/build/html/search/classes_5.js index fbd639a18..bc95defd4 100644 --- a/docs/build/html/search/classes_5.js +++ b/docs/build/html/search/classes_5.js @@ -1,13 +1,14 @@ var searchData= [ - ['equal_0',['Equal',['../struct_equal.html',1,'Equal'],['../structmlx_1_1core_1_1detail_1_1_equal.html',1,'mlx::core::detail::Equal'],['../classmlx_1_1core_1_1_equal.html',1,'mlx::core::Equal']]], - ['erf_1',['Erf',['../struct_erf.html',1,'Erf'],['../structmlx_1_1core_1_1detail_1_1_erf.html',1,'mlx::core::detail::Erf'],['../classmlx_1_1core_1_1_erf.html',1,'mlx::core::Erf']]], - ['erfinv_2',['ErfInv',['../struct_erf_inv.html',1,'ErfInv'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html',1,'mlx::core::detail::ErfInv'],['../classmlx_1_1core_1_1_erf_inv.html',1,'mlx::core::ErfInv']]], - ['event_3',['Event',['../classmlx_1_1core_1_1_event.html',1,'mlx::core']]], - ['execc2c_4',['ExecC2C',['../structpocketfft_1_1detail_1_1_exec_c2_c.html',1,'pocketfft::detail']]], - ['execdcst_5',['ExecDcst',['../structpocketfft_1_1detail_1_1_exec_dcst.html',1,'pocketfft::detail']]], - ['exechartley_6',['ExecHartley',['../structpocketfft_1_1detail_1_1_exec_hartley.html',1,'pocketfft::detail']]], - ['execr2r_7',['ExecR2R',['../structpocketfft_1_1detail_1_1_exec_r2_r.html',1,'pocketfft::detail']]], - ['exp_8',['Exp',['../struct_exp.html',1,'Exp'],['../structmlx_1_1core_1_1detail_1_1_exp.html',1,'mlx::core::detail::Exp'],['../classmlx_1_1core_1_1_exp.html',1,'mlx::core::Exp']]], - ['expm1_9',['Expm1',['../struct_expm1.html',1,'Expm1'],['../structmlx_1_1core_1_1detail_1_1_expm1.html',1,'mlx::core::detail::Expm1'],['../classmlx_1_1core_1_1_expm1.html',1,'mlx::core::Expm1']]] + ['eigh_0',['Eigh',['../classmlx_1_1core_1_1_eigh.html',1,'mlx::core']]], + ['equal_1',['Equal',['../struct_equal.html',1,'Equal'],['../structmlx_1_1core_1_1detail_1_1_equal.html',1,'mlx::core::detail::Equal'],['../classmlx_1_1core_1_1_equal.html',1,'mlx::core::Equal']]], + ['erf_2',['Erf',['../struct_erf.html',1,'Erf'],['../structmlx_1_1core_1_1detail_1_1_erf.html',1,'mlx::core::detail::Erf'],['../classmlx_1_1core_1_1_erf.html',1,'mlx::core::Erf']]], + ['erfinv_3',['ErfInv',['../struct_erf_inv.html',1,'ErfInv'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html',1,'mlx::core::detail::ErfInv'],['../classmlx_1_1core_1_1_erf_inv.html',1,'mlx::core::ErfInv']]], + ['event_4',['Event',['../classmlx_1_1core_1_1_event.html',1,'mlx::core']]], + ['execc2c_5',['ExecC2C',['../structpocketfft_1_1detail_1_1_exec_c2_c.html',1,'pocketfft::detail']]], + ['execdcst_6',['ExecDcst',['../structpocketfft_1_1detail_1_1_exec_dcst.html',1,'pocketfft::detail']]], + ['exechartley_7',['ExecHartley',['../structpocketfft_1_1detail_1_1_exec_hartley.html',1,'pocketfft::detail']]], + ['execr2r_8',['ExecR2R',['../structpocketfft_1_1detail_1_1_exec_r2_r.html',1,'pocketfft::detail']]], + ['exp_9',['Exp',['../struct_exp.html',1,'Exp'],['../structmlx_1_1core_1_1detail_1_1_exp.html',1,'mlx::core::detail::Exp'],['../classmlx_1_1core_1_1_exp.html',1,'mlx::core::Exp']]], + ['expm1_10',['Expm1',['../struct_expm1.html',1,'Expm1'],['../structmlx_1_1core_1_1detail_1_1_expm1.html',1,'mlx::core::detail::Expm1'],['../classmlx_1_1core_1_1_expm1.html',1,'mlx::core::Expm1']]] ]; diff --git a/docs/build/html/search/classes_6.js b/docs/build/html/search/classes_6.js index 6968fccd3..58deda471 100644 --- a/docs/build/html/search/classes_6.js +++ b/docs/build/html/search/classes_6.js @@ -1,10 +1,11 @@ var searchData= [ - ['fft_0',['FFT',['../classmlx_1_1core_1_1_f_f_t.html',1,'mlx::core']]], - ['fftblue_1',['fftblue',['../classpocketfft_1_1detail_1_1fftblue.html',1,'pocketfft::detail']]], - ['filewriter_2',['FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html',1,'mlx::core::io']]], - ['flags_3',['Flags',['../structmlx_1_1core_1_1array_1_1_flags.html',1,'mlx::core::array']]], - ['floor_4',['Floor',['../struct_floor.html',1,'Floor'],['../structmlx_1_1core_1_1detail_1_1_floor.html',1,'mlx::core::detail::Floor'],['../classmlx_1_1core_1_1_floor.html',1,'mlx::core::Floor']]], - ['floordivide_5',['FloorDivide',['../struct_floor_divide.html',1,'']]], - ['full_6',['Full',['../classmlx_1_1core_1_1_full.html',1,'mlx::core']]] + ['fence_0',['Fence',['../structmlx_1_1core_1_1metal_1_1_fence.html',1,'mlx::core::metal']]], + ['fft_1',['FFT',['../classmlx_1_1core_1_1_f_f_t.html',1,'mlx::core']]], + ['fftblue_2',['fftblue',['../classpocketfft_1_1detail_1_1fftblue.html',1,'pocketfft::detail']]], + ['filewriter_3',['FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html',1,'mlx::core::io']]], + ['flags_4',['Flags',['../structmlx_1_1core_1_1array_1_1_flags.html',1,'mlx::core::array']]], + ['floor_5',['Floor',['../struct_floor.html',1,'Floor'],['../structmlx_1_1core_1_1detail_1_1_floor.html',1,'mlx::core::detail::Floor'],['../classmlx_1_1core_1_1_floor.html',1,'mlx::core::Floor']]], + ['floordivide_6',['FloorDivide',['../struct_floor_divide.html',1,'']]], + ['full_7',['Full',['../classmlx_1_1core_1_1_full.html',1,'mlx::core']]] ]; diff --git a/docs/build/html/search/defines_4.js b/docs/build/html/search/defines_4.js index 0f05e8ba7..ffff99cd1 100644 --- a/docs/build/html/search/defines_4.js +++ b/docs/build/html/search/defines_4.js @@ -4,6 +4,8 @@ var searchData= ['define_5fgrads_1',['DEFINE_GRADS',['../primitives_8h.html#a77abdcb55bc2eb0f9a45edc5ee639bf6',1,'primitives.h']]], ['define_5finput_5foutput_5fshape_2',['DEFINE_INPUT_OUTPUT_SHAPE',['../primitives_8h.html#a649a06267b75e007224ea4ddefedb999',1,'primitives.h']]], ['define_5fprint_3',['DEFINE_PRINT',['../primitives_8h.html#a1d3a37af519e16f6a703b1e9ebd0f592',1,'primitives.h']]], - ['define_5fsimd_5freduce_4',['DEFINE_SIMD_REDUCE',['../backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05',1,'ops.h']]], - ['define_5fvmap_5',['DEFINE_VMAP',['../primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd',1,'primitives.h']]] + ['define_5fsimd_5fexclusive_5fscan_4',['DEFINE_SIMD_EXCLUSIVE_SCAN',['../scan_8h.html#a185f66aac8c5317587e6abd43f3013fc',1,'scan.h']]], + ['define_5fsimd_5freduce_5',['DEFINE_SIMD_REDUCE',['../backend_2metal_2kernels_2reduction_2ops_8h.html#acacf99e0ba629ed062ccc3c2eba89b05',1,'ops.h']]], + ['define_5fsimd_5fscan_6',['DEFINE_SIMD_SCAN',['../scan_8h.html#a0d8d6a9b0f3a1263629380bda8eca7bc',1,'scan.h']]], + ['define_5fvmap_7',['DEFINE_VMAP',['../primitives_8h.html#adc0fbd79fe0d1114dc85da4ed99798bd',1,'primitives.h']]] ]; diff --git a/docs/build/html/search/defines_8.js b/docs/build/html/search/defines_8.js index 79205dfbe..09218ba2b 100644 --- a/docs/build/html/search/defines_8.js +++ b/docs/build/html/search/defines_8.js @@ -2,7 +2,7 @@ var searchData= [ ['max_5foutput_5fsize_0',['MAX_OUTPUT_SIZE',['../backend_2metal_2kernels_2fft_8h.html#a28d683cf067736d76f867f30c066317e',1,'fft.h']]], ['max_5fradix_1',['MAX_RADIX',['../backend_2metal_2kernels_2fft_8h.html#a7b6e56afa21f022c5e754b000955735a',1,'MAX_RADIX: fft.h'],['../readwrite_8h.html#a7b6e56afa21f022c5e754b000955735a',1,'MAX_RADIX: readwrite.h']]], - ['mlx_5flapack_5ffunc_2',['MLX_LAPACK_FUNC',['../lapack__helper_8h.html#ae22db9704827bf013a0a61f21a47464b',1,'lapack_helper.h']]], + ['mlx_5flapack_5ffunc_2',['MLX_LAPACK_FUNC',['../lapack_8h.html#ae22db9704827bf013a0a61f21a47464b',1,'lapack.h']]], ['mlx_5fmtl_5fconst_3',['MLX_MTL_CONST',['../kernels_2gemv__masked_8h.html#a0386011c52d03e60885a31e6fbd903dd',1,'MLX_MTL_CONST: gemv_masked.h'],['../quantized_8h.html#a0386011c52d03e60885a31e6fbd903dd',1,'MLX_MTL_CONST: quantized.h'],['../sort_8h.html#a0386011c52d03e60885a31e6fbd903dd',1,'MLX_MTL_CONST: sort.h']]], ['mlx_5fmtl_5floop_5funroll_4',['MLX_MTL_LOOP_UNROLL',['../sort_8h.html#ad34b622323cebef136669fedd7229515',1,'sort.h']]], ['mlx_5fmtl_5fpragma_5funroll_5',['MLX_MTL_PRAGMA_UNROLL',['../kernels_2gemv__masked_8h.html#a069b682d7d21827461544817d722bfd3',1,'MLX_MTL_PRAGMA_UNROLL: gemv_masked.h'],['../backend_2metal_2kernels_2utils_8h.html#a069b682d7d21827461544817d722bfd3',1,'MLX_MTL_PRAGMA_UNROLL: utils.h']]], diff --git a/docs/build/html/search/files_10.js b/docs/build/html/search/files_10.js index e626a139b..103b9ebd4 100644 --- a/docs/build/html/search/files_10.js +++ b/docs/build/html/search/files_10.js @@ -1,7 +1,7 @@ var searchData= [ ['scaled_5fdot_5fproduct_5fattention_5fparams_2eh_0',['scaled_dot_product_attention_params.h',['../scaled__dot__product__attention__params_8h.html',1,'']]], - ['scan_2eh_1',['scan.h',['../jit_2scan_8h.html',1,'(Global Namespace)'],['../kernels_2scan_8h.html',1,'(Global Namespace)']]], + ['scan_2eh_1',['scan.h',['../scan_8h.html',1,'']]], ['scatter_2eh_2',['scatter.h',['../scatter_8h.html',1,'']]], ['scheduler_2eh_3',['scheduler.h',['../scheduler_8h.html',1,'']]], ['sdpa_5fvector_2eh_4',['sdpa_vector.h',['../sdpa__vector_8h.html',1,'']]], diff --git a/docs/build/html/search/files_a.js b/docs/build/html/search/files_a.js index 15c05bb56..599d21dfb 100644 --- a/docs/build/html/search/files_a.js +++ b/docs/build/html/search/files_a.js @@ -1,6 +1,6 @@ var searchData= [ - ['lapack_5fhelper_2eh_0',['lapack_helper.h',['../lapack__helper_8h.html',1,'']]], + ['lapack_2eh_0',['lapack.h',['../lapack_8h.html',1,'']]], ['linalg_2eh_1',['linalg.h',['../linalg_8h.html',1,'']]], ['load_2eh_2',['load.h',['../backend_2common_2load_8h.html',1,'(Global Namespace)'],['../io_2load_8h.html',1,'(Global Namespace)']]], ['loader_2eh_3',['loader.h',['../conv_2loader_8h.html',1,'(Global Namespace)'],['../gemm_2loader_8h.html',1,'(Global Namespace)']]], diff --git a/docs/build/html/search/files_f.js b/docs/build/html/search/files_f.js index a2b24523a..84e339292 100644 --- a/docs/build/html/search/files_f.js +++ b/docs/build/html/search/files_f.js @@ -8,5 +8,6 @@ var searchData= ['reduce_5fcol_2eh_5',['reduce_col.h',['../reduce__col_8h.html',1,'']]], ['reduce_5finit_2eh_6',['reduce_init.h',['../reduce__init_8h.html',1,'']]], ['reduce_5frow_2eh_7',['reduce_row.h',['../reduce__row_8h.html',1,'']]], - ['reduce_5futils_2eh_8',['reduce_utils.h',['../reduce__utils_8h.html',1,'']]] + ['reduce_5futils_2eh_8',['reduce_utils.h',['../reduce__utils_8h.html',1,'']]], + ['resident_2eh_9',['resident.h',['../resident_8h.html',1,'']]] ]; diff --git a/docs/build/html/search/functions_1.js b/docs/build/html/search/functions_1.js index a0b19b4db..255ad1343 100644 --- a/docs/build/html/search/functions_1.js +++ b/docs/build/html/search/functions_1.js @@ -6,76 +6,78 @@ var searchData= ['acosh_3',['acosh',['../namespacemetal.html#a2d0efb92b7f61eff342d776bd6c5f3a0',1,'metal::acosh()'],['../namespacemetal_1_1fast.html#afb656fc3406649a238b6f1e0509de751',1,'metal::fast::acosh()'],['../namespacemetal_1_1precise.html#a1f489fabffab969b8677b56bb1136067',1,'metal::precise::acosh()']]], ['add_4',['Add',['../classmlx_1_1core_1_1_add.html#ae3fd5483f3454eac3df256e3f5f3cdae',1,'mlx::core::Add']]], ['add_5',['add',['../group__ops.html#ga2d32d67cfd76785a72c43d89b94dc7d7',1,'mlx::core']]], - ['addmm_6',['AddMM',['../classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550',1,'mlx::core::AddMM']]], - ['addmm_7',['addmm',['../group__ops.html#ga82a53e083205a965387b3c3e2463244a',1,'mlx::core']]], - ['adjust_5fmatrix_5foffsets_8',['adjust_matrix_offsets',['../quantized_8h.html#a3ab400746ad77be89c30d25638e01698',1,'quantized.h']]], - ['advance_9',['advance',['../classpocketfft_1_1detail_1_1multi__iter.html#a5ddcc0666125b3cb6c0d62b30befdd2c',1,'pocketfft::detail::multi_iter::advance()'],['../classpocketfft_1_1detail_1_1simple__iter.html#a73a9ecd3008d2bd35aaa00bf9fac074f',1,'pocketfft::detail::simple_iter::advance()'],['../classpocketfft_1_1detail_1_1rev__iter.html#ad1918c84ae963188afc7599629b29686',1,'pocketfft::detail::rev_iter::advance()']]], - ['affine_5fdequantize_10',['affine_dequantize',['../quantized_8h.html#a6076203615038eb06816158f7b3869c6',1,'affine_dequantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328',1,'mlx::core::fast::affine_dequantize()']]], - ['affine_5fquantize_11',['affine_quantize',['../quantized_8h.html#a47bcf4a14566e01e14bd3c155811db59',1,'affine_quantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080',1,'mlx::core::fast::affine_quantize(const array &w, int group_size=64, int bits=4, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fast.html#a638c7e9b9ea8677f01786d8f9738baf8',1,'mlx::core::fast::affine_quantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})']]], - ['affine_5fquantize_5fscales_5fbiases_12',['affine_quantize_scales_biases',['../quantized_8h.html#a7561acefd7b55e7e2b25393be08bb99c',1,'quantized.h']]], - ['affinequantize_13',['AffineQuantize',['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473',1,'mlx::core::fast::AffineQuantize']]], - ['aligned_5falloc_14',['aligned_alloc',['../namespacepocketfft_1_1detail.html#ae397445c61400f47a8fe3f8e1b6d0b76',1,'pocketfft::detail']]], - ['aligned_5fallocator_15',['aligned_allocator',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a57c07047ac09c6cf48a269429de2b0fb',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator(const aligned_allocator< U > &)'],['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a0c390851ec37c5cdc5c1e7c6232a0b94',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator()=default']]], - ['aligned_5fdealloc_16',['aligned_dealloc',['../namespacepocketfft_1_1detail.html#aec7820e36a33e0a8bb83aa03b04b81e8',1,'pocketfft::detail']]], - ['all_17',['all',['../group__ops.html#ga3b1b90ef1275ca17655b6d7f25d3ee68',1,'mlx::core::all(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3689e12e8f42dadb4cbe2b07dc4099f4',1,'mlx::core::all(const array &a, StreamOrDevice s={})'],['../group__ops.html#gac0919c6ba53aea35a7683dea7e9a9a59',1,'mlx::core::all(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gae2d5fcc5b62d673cca76c08b7b4afbbc',1,'mlx::core::all(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['all_5fgather_18',['all_gather',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aeb5a1726358213bc75756506f7b54d04',1,'mlx::core::distributed::detail::all_gather()'],['../namespacemlx_1_1core_1_1distributed.html#a82ef5e8cc7ac62cd228e51b1c1b77cb7',1,'mlx::core::distributed::all_gather()']]], - ['all_5freduce_19',['all_reduce',['../reduce__all_8h.html#a99ef48ae72b3e715c5f4d7ea07cd213d',1,'reduce_all.h']]], - ['all_5freduce_5fdispatch_20',['all_reduce_dispatch',['../namespacemlx_1_1core.html#af7b7ca7c6aa87558d9f98cee5c7a99a8',1,'mlx::core']]], - ['all_5fsum_21',['all_sum',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aa1d225b25f7b6426c48c5e35860ee960',1,'mlx::core::distributed::detail::all_sum()'],['../namespacemlx_1_1core_1_1distributed.html#a67ccb1a5445fc6f5db49dd36a15e5980',1,'mlx::core::distributed::all_sum()']]], - ['allclose_22',['allclose',['../group__ops.html#gaf0cd4257de7542daf9faf5e605e31020',1,'mlx::core']]], - ['allgather_23',['AllGather',['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#af4b10a5b61f160fb64353057c185b661',1,'mlx::core::distributed::AllGather']]], - ['alloc_5ftmp_24',['alloc_tmp',['../namespacepocketfft_1_1detail.html#a4db03cbcd9d43d9e0b0b9067713c80e9',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, size_t axsize, size_t elemsize)'],['../namespacepocketfft_1_1detail.html#a13832735696303b9559c4663631d5475',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, const shape_t &axes, size_t elemsize)']]], - ['allocate_25',['allocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826',1,'pocketfft::detail::threading::aligned_allocator']]], - ['allocator_26',['Allocator',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65',1,'mlx::core::allocator::Allocator::Allocator()=default'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2',1,'mlx::core::allocator::Allocator::Allocator(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959',1,'mlx::core::allocator::Allocator::Allocator(Allocator &&other)=delete']]], - ['allocator_27',['allocator',['../namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e',1,'mlx::core::allocator::allocator()'],['../namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5',1,'mlx::core::metal::allocator()']]], - ['allreduce_28',['AllReduce',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a2d1ea56cbf72a316680ea90aa6da1c2d',1,'mlx::core::distributed::AllReduce']]], - ['any_29',['any',['../group__ops.html#ga8598dd718fb05cb28535e250372d4e6f',1,'mlx::core::any(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gad37df97f253a963bece124198dbaf9ba',1,'mlx::core::any(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf240618fc8b06debf5f56e97e84f18ef',1,'mlx::core::any(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gab1d56277d468a55227f4dad6bc2fc1ce',1,'mlx::core::any(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['apply_30',['apply',['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75',1,'mlx::steel::TransformNone::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_none.html#ae4c397038f386b13eaa386638a0fce90',1,'mlx::steel::TransformNone::apply(InT x, OutT)'],['../structmlx_1_1steel_1_1_transform_add.html#afbb688d84443fd622b4dd2768cfe0acf',1,'mlx::steel::TransformAdd::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_add.html#a4923b0059d88099b2739f2cf0273ea19',1,'mlx::steel::TransformAdd::apply(InT x, OutT c)'],['../structmlx_1_1steel_1_1_transform_axpby.html#a14ad48b0189d6bdde06c66f1b567ae87',1,'mlx::steel::TransformAxpby::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_axpby.html#aaf3a45e25d7abf7a34b48cc612e631ba',1,'mlx::steel::TransformAxpby::apply(InT x, OutT c) const']]], - ['apply_5fepilogue_31',['apply_epilogue',['../structmlx_1_1steel_1_1_block_m_m_a.html#af653c0808ba4fa9a25286f1febb7baff',1,'mlx::steel::BlockMMA::apply_epilogue(thread const UnaryEpilogue &epilogue_op)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a823c56cbd2086f10272df7284a5247ae',1,'mlx::steel::BlockMMA::apply_epilogue(const device U *C, const int ldc, const int fdc, thread const BinaryEpilogue &epilogue_op)']]], - ['apply_5fepilogue_5fsafe_32',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA']]], - ['apply_5finplace_5fop_33',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader']]], - ['arange_34',['Arange',['../classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574',1,'mlx::core::Arange']]], - ['arange_35',['arange',['../namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b',1,'mlx::core::arange()'],['../namespacemlx_1_1core_1_1metal.html#a272c36f0faf2570cbb2f36030e9a3f26',1,'mlx::core::metal::arange()'],['../metal_2kernels_2arange_8h.html#a1e5126ee6ae0164c2343230c4d87c03e',1,'arange(): arange.h'],['../group__ops.html#ga7ca088b8090b9f84f2e08345cf3f835a',1,'mlx::core::arange(double start, double stop, double step, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga4c36b841dc5cba391dad029be5a0ad98',1,'mlx::core::arange(double start, double stop, double step, StreamOrDevice s={})'],['../group__ops.html#ga8d7cf9eb15e2daf1469058907e8abc85',1,'mlx::core::arange(double start, double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga74566a14e69ba6a25f5a35e7ade5c282',1,'mlx::core::arange(double start, double stop, StreamOrDevice s={})'],['../group__ops.html#ga345aa27af3dae3646b8b4b1068e89a3e',1,'mlx::core::arange(double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#gaae179075d0fe23f4bd53fdf8c41f4c70',1,'mlx::core::arange(double stop, StreamOrDevice s={})'],['../group__ops.html#ga6b945f513077c2978afc1a952c884860',1,'mlx::core::arange(int start, int stop, int step, StreamOrDevice s={})'],['../group__ops.html#ga1c39fcc6eaa1c1867735c7f849d708d6',1,'mlx::core::arange(int start, int stop, StreamOrDevice s={})'],['../group__ops.html#gafe6e4580452c873cac294f16129e633f',1,'mlx::core::arange(int stop, StreamOrDevice s={})']]], - ['arccos_36',['ArcCos',['../classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9',1,'mlx::core::ArcCos']]], - ['arccos_37',['arccos',['../group__ops.html#ga08bec7cb10c84466487b507fc5bf9776',1,'mlx::core']]], - ['arccosh_38',['ArcCosh',['../classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71',1,'mlx::core::ArcCosh']]], - ['arccosh_39',['arccosh',['../group__ops.html#gaafafcfcebdf7248679c8543d0c0497e5',1,'mlx::core']]], - ['arcsin_40',['ArcSin',['../classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013',1,'mlx::core::ArcSin']]], - ['arcsin_41',['arcsin',['../group__ops.html#ga8770e8c8f23f13343911f4c9d6e1c619',1,'mlx::core']]], - ['arcsinh_42',['ArcSinh',['../classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20',1,'mlx::core::ArcSinh']]], - ['arcsinh_43',['arcsinh',['../group__ops.html#gac62e2cedc49ef2c90dd8584000317450',1,'mlx::core']]], - ['arctan_44',['ArcTan',['../classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44',1,'mlx::core::ArcTan']]], - ['arctan_45',['arctan',['../group__ops.html#gaa041f3f070e68f4946db07516b7d092e',1,'mlx::core']]], - ['arctan2_46',['ArcTan2',['../classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a',1,'mlx::core::ArcTan2']]], - ['arctan2_47',['arctan2',['../group__ops.html#ga6caba9c92b5989123501f909cc7da354',1,'mlx::core']]], - ['arctanh_48',['ArcTanh',['../classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358',1,'mlx::core::ArcTanh']]], - ['arctanh_49',['arctanh',['../group__ops.html#gab46a35925a04c5a9d2ec7898ee55358e',1,'mlx::core']]], - ['argmax_50',['argmax',['../group__ops.html#gae60b0b5339b9c50b9970260faf613e83',1,'mlx::core::argmax(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gae6f6c5a840320b336fdc9687e0ed56c8',1,'mlx::core::argmax(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga2efa67466510fc26ab9ea8dff30f2ba5',1,'mlx::core::argmax(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['argmin_51',['argmin',['../group__ops.html#ga7c3bd5ef430a71dfd298e626741e3c71',1,'mlx::core::argmin(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga6bc577c5ab10cd9c848ba81321595070',1,'mlx::core::argmin(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf66dc3c77b88e4009e0678eda41eca81',1,'mlx::core::argmin(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['argpartition_52',['ArgPartition',['../classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df',1,'mlx::core::ArgPartition']]], - ['argpartition_53',['argpartition',['../group__ops.html#gaf301c49c10fa9b95a9e8dc52ead1a8dd',1,'mlx::core::argpartition(const array &a, int kth, StreamOrDevice s={})'],['../group__ops.html#ga7b15c654c7463def57857a0e239989a3',1,'mlx::core::argpartition(const array &a, int kth, int axis, StreamOrDevice s={})']]], - ['argreduce_54',['ArgReduce',['../classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03',1,'mlx::core::ArgReduce']]], - ['argsort_55',['ArgSort',['../classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0',1,'mlx::core::ArgSort']]], - ['argsort_56',['argsort',['../group__ops.html#ga8df3b2703bf671457422894dd870cdc5',1,'mlx::core::argsort(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7878e0daa5a75f44e57b5fe948fa3ef6',1,'mlx::core::argsort(const array &a, int axis, StreamOrDevice s={})']]], - ['argument_5fencoder_57',['argument_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881',1,'mlx::core::metal::Device']]], - ['arr_58',['arr',['../classpocketfft_1_1detail_1_1arr.html#a961a24410638b35129cd6b81850d2a42',1,'pocketfft::detail::arr::arr()'],['../classpocketfft_1_1detail_1_1arr.html#a04f832b780a4453fdf3b69bf75b182bd',1,'pocketfft::detail::arr::arr(size_t n)'],['../classpocketfft_1_1detail_1_1arr.html#a0cd8fb4a588a74d428a7349d38b477d0',1,'pocketfft::detail::arr::arr(arr &&other)']]], - ['arr_5finfo_59',['arr_info',['../classpocketfft_1_1detail_1_1arr__info.html#a0dbddb7d86ca306159fc9ef9a453b21e',1,'pocketfft::detail::arr_info']]], - ['array_60',['array',['../classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232',1,'mlx::core::array::array(T val, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca',1,'mlx::core::array::array(const std::complex< float > &val, Dtype dtype=complex64)'],['../classmlx_1_1core_1_1array.html#a3e506a53b9c7567448f7809dda680210',1,'mlx::core::array::array(It data, std::vector< int > shape, Dtype dtype=TypeToDtype< typename std::iterator_traits< It >::value_type >())'],['../classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00',1,'mlx::core::array::array(std::initializer_list< T > data, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7',1,'mlx::core::array::array(std::initializer_list< float > data)'],['../classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49',1,'mlx::core::array::array(std::initializer_list< int > data, Dtype dtype)'],['../classmlx_1_1core_1_1array.html#a44e57a41819321e0d796e08cb9a06e4b',1,'mlx::core::array::array(std::initializer_list< T > data, std::vector< int > shape, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663',1,'mlx::core::array::array(allocator::Buffer data, std::vector< int > shape, Dtype dtype, deleter_t deleter=allocator::free)'],['../classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187',1,'mlx::core::array::array(const array &other)=default'],['../classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c',1,'mlx::core::array::array(array &&other)=default'],['../classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620',1,'mlx::core::array::array(std::vector< int > shape, Dtype dtype, std::shared_ptr< Primitive > primitive, std::vector< array > inputs)']]], - ['array_5fequal_61',['array_equal',['../group__ops.html#ga8f3059336ee0c87207b1f8c6ab312645',1,'mlx::core::array_equal(const array &a, const array &b, bool equal_nan, StreamOrDevice s={})'],['../group__ops.html#gaf79cf0271ca0105d7b14295a90d0ed14',1,'mlx::core::array_equal(const array &a, const array &b, StreamOrDevice s={})']]], - ['arrayiterator_62',['ArrayIterator',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a',1,'mlx::core::array::ArrayIterator']]], - ['as_5fstrided_63',['as_strided',['../group__ops.html#ga8de80ecef30fc560003d40f61a38b99d',1,'mlx::core']]], - ['asin_64',['asin',['../namespacemetal.html#a16e843194df3fd136404bf80ba5ac95c',1,'metal::asin()'],['../namespacemetal_1_1fast.html#a769455a283da99654b6e42c3acf13eb1',1,'metal::fast::asin()'],['../namespacemetal_1_1precise.html#adc7b8b6e12e320cb32030f728dcbf438',1,'metal::precise::asin()']]], - ['asinh_65',['asinh',['../namespacemetal.html#abcc3251866930cfe880f89e7473d0e63',1,'metal::asinh()'],['../namespacemetal_1_1fast.html#a4367034b7b3e14310803bb2be975a556',1,'metal::fast::asinh()'],['../namespacemetal_1_1precise.html#aaad1cdde6687c8011fbc5fda1bb13424',1,'metal::precise::asinh()']]], - ['asstrided_66',['AsStrided',['../classmlx_1_1core_1_1_as_strided.html#a80c0547f72ed53374eafc57d57b5d4af',1,'mlx::core::AsStrided']]], - ['astype_67',['AsType',['../classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47',1,'mlx::core::AsType']]], - ['astype_68',['astype',['../group__ops.html#ga0e58c24fc5668e5a521e5b45e8370a62',1,'mlx::core']]], - ['async_5feval_69',['async_eval',['../namespacemlx_1_1core.html#a15dda19aa7fa1fc5fca35df5cf963297',1,'mlx::core']]], - ['atan_70',['atan',['../namespacemetal.html#a80a771553d9a0012b93620d19c48b00f',1,'metal::atan()'],['../namespacemetal_1_1fast.html#a769503b4b7f89071d0983258c5a3ac5a',1,'metal::fast::atan()'],['../namespacemetal_1_1precise.html#aaaf4b5f4786a912089bbf0ae7619a6be',1,'metal::precise::atan()']]], - ['atan2_71',['atan2',['../namespacemetal.html#a1d430793eaa38ccf0d07145e3fcd1e61',1,'metal::atan2()'],['../namespacemetal_1_1fast.html#a00e687ea46f5affe26e6aef8fd62b89a',1,'metal::fast::atan2()'],['../namespacemetal_1_1precise.html#a6f161b049cc6884f87b09b33c2d1cd7f',1,'metal::precise::atan2()']]], - ['atanh_72',['atanh',['../namespacemetal.html#a57116427997ba71dd3863bfb15de33bf',1,'metal::atanh()'],['../namespacemetal_1_1fast.html#af24608fc605db9a14427d37c36dc1c53',1,'metal::fast::atanh()'],['../namespacemetal_1_1precise.html#a902994837653b90c47f4285673e712c4',1,'metal::precise::atanh()']]], - ['atleast_5f1d_73',['atleast_1d',['../group__ops.html#gaba4d25e7a2bf87ba4feb7837ec7fa396',1,'mlx::core::atleast_1d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga08ca172ce80157c916c89dd0b45b95c5',1,'mlx::core::atleast_1d(const std::vector< array > &a, StreamOrDevice s={})']]], - ['atleast_5f2d_74',['atleast_2d',['../group__ops.html#gaeeb7f5bb88aa32a3ac2be1f39c5f8087',1,'mlx::core::atleast_2d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga9950299a80c2562f13448758f856d1f5',1,'mlx::core::atleast_2d(const std::vector< array > &a, StreamOrDevice s={})']]], - ['atleast_5f3d_75',['atleast_3d',['../group__ops.html#ga4afd919601e67782ff964465919956a0',1,'mlx::core::atleast_3d(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaffdf742ad79440a60dda40062a8074fe',1,'mlx::core::atleast_3d(const std::vector< array > &a, StreamOrDevice s={})']]], - ['atomic_5fupdate_76',['atomic_update',['../struct_none.html#aecbce7c97e8b1d5dc4afd2e788c24e06',1,'None']]], - ['attach_5fevent_77',['attach_event',['../classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da',1,'mlx::core::array']]] + ['add_5ftemporaries_6',['add_temporaries',['../classmlx_1_1core_1_1metal_1_1_device.html#a72ad17c96fc6ce825bc77f0bed657901',1,'mlx::core::metal::Device']]], + ['add_5ftemporary_7',['add_temporary',['../classmlx_1_1core_1_1metal_1_1_device.html#acb90010af0cffe27fd8cc6c253d3a576',1,'mlx::core::metal::Device']]], + ['addmm_8',['AddMM',['../classmlx_1_1core_1_1_add_m_m.html#a8ae4372b3f96e72e8a5a06d59de8a550',1,'mlx::core::AddMM']]], + ['addmm_9',['addmm',['../group__ops.html#ga82a53e083205a965387b3c3e2463244a',1,'mlx::core']]], + ['adjust_5fmatrix_5foffsets_10',['adjust_matrix_offsets',['../quantized_8h.html#accab1f9e17a65242347c051f98e4c0be',1,'adjust_matrix_offsets(const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, device T *&y, int output_stride, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid): quantized.h'],['../quantized_8h.html#a3ab400746ad77be89c30d25638e01698',1,'adjust_matrix_offsets(const device T *&x, const device uint32_t *&w, const device T *&scales, const device T *&biases, const device uint32_t *lhs_indices, const device uint32_t *rhs_indices, device T *&y, int output_stride, const constant int &batch_ndims, const constant int *batch_shape, const constant size_t *lhs_strides, const constant size_t *rhs_strides, const constant int &x_batch_ndims, const constant int *x_shape, const constant size_t *x_strides, const constant int &w_batch_ndims, const constant int *w_shape, const constant size_t *w_strides, const constant size_t *s_strides, const constant size_t *b_strides, uint3 tid): quantized.h']]], + ['advance_11',['advance',['../classpocketfft_1_1detail_1_1multi__iter.html#a5ddcc0666125b3cb6c0d62b30befdd2c',1,'pocketfft::detail::multi_iter::advance()'],['../classpocketfft_1_1detail_1_1simple__iter.html#a73a9ecd3008d2bd35aaa00bf9fac074f',1,'pocketfft::detail::simple_iter::advance()'],['../classpocketfft_1_1detail_1_1rev__iter.html#ad1918c84ae963188afc7599629b29686',1,'pocketfft::detail::rev_iter::advance()']]], + ['affine_5fdequantize_12',['affine_dequantize',['../quantized_8h.html#a6076203615038eb06816158f7b3869c6',1,'affine_dequantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#a12c7ef41409d6fb378008e67b6fab328',1,'mlx::core::fast::affine_dequantize()']]], + ['affine_5fquantize_13',['affine_quantize',['../quantized_8h.html#a47bcf4a14566e01e14bd3c155811db59',1,'affine_quantize(): quantized.h'],['../namespacemlx_1_1core_1_1fast.html#aa4b5f6886b2288cb6dfdd8598579f080',1,'mlx::core::fast::affine_quantize(const array &w, int group_size=64, int bits=4, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fast.html#a638c7e9b9ea8677f01786d8f9738baf8',1,'mlx::core::fast::affine_quantize(const array &w, const array &scales, const array &biases, int group_size=64, int bits=4, StreamOrDevice s={})']]], + ['affine_5fquantize_5fscales_5fbiases_14',['affine_quantize_scales_biases',['../quantized_8h.html#a7561acefd7b55e7e2b25393be08bb99c',1,'quantized.h']]], + ['affinequantize_15',['AffineQuantize',['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a84d5fa9e8c3de407fbcc5f38d2ed1473',1,'mlx::core::fast::AffineQuantize']]], + ['aligned_5falloc_16',['aligned_alloc',['../namespacepocketfft_1_1detail.html#ae397445c61400f47a8fe3f8e1b6d0b76',1,'pocketfft::detail']]], + ['aligned_5fallocator_17',['aligned_allocator',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a57c07047ac09c6cf48a269429de2b0fb',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator(const aligned_allocator< U > &)'],['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a0c390851ec37c5cdc5c1e7c6232a0b94',1,'pocketfft::detail::threading::aligned_allocator::aligned_allocator()=default']]], + ['aligned_5fdealloc_18',['aligned_dealloc',['../namespacepocketfft_1_1detail.html#aec7820e36a33e0a8bb83aa03b04b81e8',1,'pocketfft::detail']]], + ['all_19',['all',['../group__ops.html#ga3b1b90ef1275ca17655b6d7f25d3ee68',1,'mlx::core::all(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3689e12e8f42dadb4cbe2b07dc4099f4',1,'mlx::core::all(const array &a, StreamOrDevice s={})'],['../group__ops.html#gac0919c6ba53aea35a7683dea7e9a9a59',1,'mlx::core::all(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gae2d5fcc5b62d673cca76c08b7b4afbbc',1,'mlx::core::all(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['all_5fgather_20',['all_gather',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aeb5a1726358213bc75756506f7b54d04',1,'mlx::core::distributed::detail::all_gather()'],['../namespacemlx_1_1core_1_1distributed.html#a82ef5e8cc7ac62cd228e51b1c1b77cb7',1,'mlx::core::distributed::all_gather()']]], + ['all_5freduce_21',['all_reduce',['../reduce__all_8h.html#a99ef48ae72b3e715c5f4d7ea07cd213d',1,'reduce_all.h']]], + ['all_5freduce_5fdispatch_22',['all_reduce_dispatch',['../namespacemlx_1_1core.html#af7b7ca7c6aa87558d9f98cee5c7a99a8',1,'mlx::core']]], + ['all_5fsum_23',['all_sum',['../namespacemlx_1_1core_1_1distributed_1_1detail.html#aa1d225b25f7b6426c48c5e35860ee960',1,'mlx::core::distributed::detail::all_sum()'],['../namespacemlx_1_1core_1_1distributed.html#a67ccb1a5445fc6f5db49dd36a15e5980',1,'mlx::core::distributed::all_sum()']]], + ['allclose_24',['allclose',['../group__ops.html#gaf0cd4257de7542daf9faf5e605e31020',1,'mlx::core']]], + ['allgather_25',['AllGather',['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#af4b10a5b61f160fb64353057c185b661',1,'mlx::core::distributed::AllGather']]], + ['alloc_5ftmp_26',['alloc_tmp',['../namespacepocketfft_1_1detail.html#a4db03cbcd9d43d9e0b0b9067713c80e9',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, size_t axsize, size_t elemsize)'],['../namespacepocketfft_1_1detail.html#a13832735696303b9559c4663631d5475',1,'pocketfft::detail::alloc_tmp(const shape_t &shape, const shape_t &axes, size_t elemsize)']]], + ['allocate_27',['allocate',['../structpocketfft_1_1detail_1_1threading_1_1aligned__allocator.html#a4f785747b898980756af9e5515363826',1,'pocketfft::detail::threading::aligned_allocator']]], + ['allocator_28',['Allocator',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a5803678a418fef687fc65fa9d5c37b65',1,'mlx::core::allocator::Allocator::Allocator()=default'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#aa05c081ce80dc036f9d3dd8c195259d2',1,'mlx::core::allocator::Allocator::Allocator(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a8e8ce346a16cf0c62847bed9289f9959',1,'mlx::core::allocator::Allocator::Allocator(Allocator &&other)=delete']]], + ['allocator_29',['allocator',['../namespacemlx_1_1core_1_1allocator.html#aa23e2f20a336d0b159c097087194634e',1,'mlx::core::allocator::allocator()'],['../namespacemlx_1_1core_1_1metal.html#a74b3558bd518aecde6b14b0ba5e1a0d5',1,'mlx::core::metal::allocator()']]], + ['allreduce_30',['AllReduce',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a2d1ea56cbf72a316680ea90aa6da1c2d',1,'mlx::core::distributed::AllReduce']]], + ['any_31',['any',['../group__ops.html#ga8598dd718fb05cb28535e250372d4e6f',1,'mlx::core::any(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gad37df97f253a963bece124198dbaf9ba',1,'mlx::core::any(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf240618fc8b06debf5f56e97e84f18ef',1,'mlx::core::any(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gab1d56277d468a55227f4dad6bc2fc1ce',1,'mlx::core::any(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['apply_32',['apply',['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../struct_scale_op.html#a69f82bc925843a4e1c14dfe8ad2f3218',1,'ScaleOp::apply(InT x) const'],['../structmlx_1_1steel_1_1_transform_none.html#a84daa89be5b3348b5715bf8c5a01da75',1,'mlx::steel::TransformNone::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_none.html#ae4c397038f386b13eaa386638a0fce90',1,'mlx::steel::TransformNone::apply(InT x, OutT)'],['../structmlx_1_1steel_1_1_transform_add.html#afbb688d84443fd622b4dd2768cfe0acf',1,'mlx::steel::TransformAdd::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_add.html#a4923b0059d88099b2739f2cf0273ea19',1,'mlx::steel::TransformAdd::apply(InT x, OutT c)'],['../structmlx_1_1steel_1_1_transform_axpby.html#a14ad48b0189d6bdde06c66f1b567ae87',1,'mlx::steel::TransformAxpby::apply(InT x)'],['../structmlx_1_1steel_1_1_transform_axpby.html#aaf3a45e25d7abf7a34b48cc612e631ba',1,'mlx::steel::TransformAxpby::apply(InT x, OutT c) const']]], + ['apply_5fepilogue_33',['apply_epilogue',['../structmlx_1_1steel_1_1_block_m_m_a.html#af653c0808ba4fa9a25286f1febb7baff',1,'mlx::steel::BlockMMA::apply_epilogue(thread const UnaryEpilogue &epilogue_op)'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a823c56cbd2086f10272df7284a5247ae',1,'mlx::steel::BlockMMA::apply_epilogue(const device U *C, const int ldc, const int fdc, thread const BinaryEpilogue &epilogue_op)']]], + ['apply_5fepilogue_5fsafe_34',['apply_epilogue_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#a9e48f2d51099ec00171506724faab54a',1,'mlx::steel::BlockMMA']]], + ['apply_5finplace_5fop_35',['apply_inplace_op',['../structmlx_1_1steel_1_1_block_loader.html#adb4ca2cc193630a779de552fa8847ddf',1,'mlx::steel::BlockLoader']]], + ['arange_36',['Arange',['../classmlx_1_1core_1_1_arange.html#a1a70c3b0b9c67d5a9446c141c5b7c574',1,'mlx::core::Arange']]], + ['arange_37',['arange',['../namespacemlx_1_1core.html#a369aa886219b83cf219e7a7862ce260b',1,'mlx::core::arange()'],['../namespacemlx_1_1core_1_1metal.html#a272c36f0faf2570cbb2f36030e9a3f26',1,'mlx::core::metal::arange()'],['../metal_2kernels_2arange_8h.html#a1e5126ee6ae0164c2343230c4d87c03e',1,'arange(): arange.h'],['../group__ops.html#ga7ca088b8090b9f84f2e08345cf3f835a',1,'mlx::core::arange(double start, double stop, double step, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga4c36b841dc5cba391dad029be5a0ad98',1,'mlx::core::arange(double start, double stop, double step, StreamOrDevice s={})'],['../group__ops.html#ga8d7cf9eb15e2daf1469058907e8abc85',1,'mlx::core::arange(double start, double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga74566a14e69ba6a25f5a35e7ade5c282',1,'mlx::core::arange(double start, double stop, StreamOrDevice s={})'],['../group__ops.html#ga345aa27af3dae3646b8b4b1068e89a3e',1,'mlx::core::arange(double stop, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#gaae179075d0fe23f4bd53fdf8c41f4c70',1,'mlx::core::arange(double stop, StreamOrDevice s={})'],['../group__ops.html#ga6b945f513077c2978afc1a952c884860',1,'mlx::core::arange(int start, int stop, int step, StreamOrDevice s={})'],['../group__ops.html#ga1c39fcc6eaa1c1867735c7f849d708d6',1,'mlx::core::arange(int start, int stop, StreamOrDevice s={})'],['../group__ops.html#gafe6e4580452c873cac294f16129e633f',1,'mlx::core::arange(int stop, StreamOrDevice s={})']]], + ['arccos_38',['ArcCos',['../classmlx_1_1core_1_1_arc_cos.html#a66f4ee841d17923d93241b71ea5103e9',1,'mlx::core::ArcCos']]], + ['arccos_39',['arccos',['../group__ops.html#ga08bec7cb10c84466487b507fc5bf9776',1,'mlx::core']]], + ['arccosh_40',['ArcCosh',['../classmlx_1_1core_1_1_arc_cosh.html#a34597054db467941a2a883c653ba4d71',1,'mlx::core::ArcCosh']]], + ['arccosh_41',['arccosh',['../group__ops.html#gaafafcfcebdf7248679c8543d0c0497e5',1,'mlx::core']]], + ['arcsin_42',['ArcSin',['../classmlx_1_1core_1_1_arc_sin.html#a97cb8c3d4d9d6abc627dec49a404f013',1,'mlx::core::ArcSin']]], + ['arcsin_43',['arcsin',['../group__ops.html#ga8770e8c8f23f13343911f4c9d6e1c619',1,'mlx::core']]], + ['arcsinh_44',['ArcSinh',['../classmlx_1_1core_1_1_arc_sinh.html#a30076b222788deeaaf9ad92d3c535f20',1,'mlx::core::ArcSinh']]], + ['arcsinh_45',['arcsinh',['../group__ops.html#gac62e2cedc49ef2c90dd8584000317450',1,'mlx::core']]], + ['arctan_46',['ArcTan',['../classmlx_1_1core_1_1_arc_tan.html#a3511153bbd421e89fd9294cdb3f79b44',1,'mlx::core::ArcTan']]], + ['arctan_47',['arctan',['../group__ops.html#gaa041f3f070e68f4946db07516b7d092e',1,'mlx::core']]], + ['arctan2_48',['ArcTan2',['../classmlx_1_1core_1_1_arc_tan2.html#aa1a4ebab9924b6bcc80df5b52ed0121a',1,'mlx::core::ArcTan2']]], + ['arctan2_49',['arctan2',['../group__ops.html#ga6caba9c92b5989123501f909cc7da354',1,'mlx::core']]], + ['arctanh_50',['ArcTanh',['../classmlx_1_1core_1_1_arc_tanh.html#a17857bd0e2a3ecf1f7bf8e1a3d354358',1,'mlx::core::ArcTanh']]], + ['arctanh_51',['arctanh',['../group__ops.html#gab46a35925a04c5a9d2ec7898ee55358e',1,'mlx::core']]], + ['argmax_52',['argmax',['../group__ops.html#gae60b0b5339b9c50b9970260faf613e83',1,'mlx::core::argmax(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#gae6f6c5a840320b336fdc9687e0ed56c8',1,'mlx::core::argmax(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga2efa67466510fc26ab9ea8dff30f2ba5',1,'mlx::core::argmax(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['argmin_53',['argmin',['../group__ops.html#ga7c3bd5ef430a71dfd298e626741e3c71',1,'mlx::core::argmin(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga6bc577c5ab10cd9c848ba81321595070',1,'mlx::core::argmin(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaf66dc3c77b88e4009e0678eda41eca81',1,'mlx::core::argmin(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['argpartition_54',['ArgPartition',['../classmlx_1_1core_1_1_arg_partition.html#ab54b13dbf92351ba1ac06fd3e5a802df',1,'mlx::core::ArgPartition']]], + ['argpartition_55',['argpartition',['../group__ops.html#gaf301c49c10fa9b95a9e8dc52ead1a8dd',1,'mlx::core::argpartition(const array &a, int kth, StreamOrDevice s={})'],['../group__ops.html#ga7b15c654c7463def57857a0e239989a3',1,'mlx::core::argpartition(const array &a, int kth, int axis, StreamOrDevice s={})']]], + ['argreduce_56',['ArgReduce',['../classmlx_1_1core_1_1_arg_reduce.html#aaccf8021dc24895656e25142eb65aa03',1,'mlx::core::ArgReduce']]], + ['argsort_57',['ArgSort',['../classmlx_1_1core_1_1_arg_sort.html#a38507a8445302a81cb44674c4a5fc0b0',1,'mlx::core::ArgSort']]], + ['argsort_58',['argsort',['../group__ops.html#ga8df3b2703bf671457422894dd870cdc5',1,'mlx::core::argsort(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7878e0daa5a75f44e57b5fe948fa3ef6',1,'mlx::core::argsort(const array &a, int axis, StreamOrDevice s={})']]], + ['argument_5fencoder_59',['argument_encoder',['../classmlx_1_1core_1_1metal_1_1_device.html#a6e33e2b1287324fb4a6575e0da5e5881',1,'mlx::core::metal::Device']]], + ['arr_60',['arr',['../classpocketfft_1_1detail_1_1arr.html#a961a24410638b35129cd6b81850d2a42',1,'pocketfft::detail::arr::arr()'],['../classpocketfft_1_1detail_1_1arr.html#a04f832b780a4453fdf3b69bf75b182bd',1,'pocketfft::detail::arr::arr(size_t n)'],['../classpocketfft_1_1detail_1_1arr.html#a0cd8fb4a588a74d428a7349d38b477d0',1,'pocketfft::detail::arr::arr(arr &&other)']]], + ['arr_5finfo_61',['arr_info',['../classpocketfft_1_1detail_1_1arr__info.html#a0dbddb7d86ca306159fc9ef9a453b21e',1,'pocketfft::detail::arr_info']]], + ['array_62',['array',['../classmlx_1_1core_1_1array.html#a75fac72da3ce214fa3737df92a64b232',1,'mlx::core::array::array(T val, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a6db4b8c28c767cc16ad2785ece496dca',1,'mlx::core::array::array(const std::complex< float > &val, Dtype dtype=complex64)'],['../classmlx_1_1core_1_1array.html#a3e506a53b9c7567448f7809dda680210',1,'mlx::core::array::array(It data, std::vector< int > shape, Dtype dtype=TypeToDtype< typename std::iterator_traits< It >::value_type >())'],['../classmlx_1_1core_1_1array.html#a87f170384f4fb93decf2b80ae7280f00',1,'mlx::core::array::array(std::initializer_list< T > data, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a46642301da11e3eb4312c37349fbc9d7',1,'mlx::core::array::array(std::initializer_list< float > data)'],['../classmlx_1_1core_1_1array.html#a5e1812029394bfb1a706c83611286f49',1,'mlx::core::array::array(std::initializer_list< int > data, Dtype dtype)'],['../classmlx_1_1core_1_1array.html#a44e57a41819321e0d796e08cb9a06e4b',1,'mlx::core::array::array(std::initializer_list< T > data, std::vector< int > shape, Dtype dtype=TypeToDtype< T >())'],['../classmlx_1_1core_1_1array.html#a5b5f562ff14c150842cb61628e531663',1,'mlx::core::array::array(allocator::Buffer data, std::vector< int > shape, Dtype dtype, deleter_t deleter=allocator::free)'],['../classmlx_1_1core_1_1array.html#a297df274e2da5cb884257bbeffd6b187',1,'mlx::core::array::array(const array &other)=default'],['../classmlx_1_1core_1_1array.html#ab6cbccbba66cc54acda4390b19f0397c',1,'mlx::core::array::array(array &&other)=default'],['../classmlx_1_1core_1_1array.html#adaade8f4bb7f8ecc0ba07efb17cd2620',1,'mlx::core::array::array(std::vector< int > shape, Dtype dtype, std::shared_ptr< Primitive > primitive, std::vector< array > inputs)']]], + ['array_5fequal_63',['array_equal',['../group__ops.html#ga8f3059336ee0c87207b1f8c6ab312645',1,'mlx::core::array_equal(const array &a, const array &b, bool equal_nan, StreamOrDevice s={})'],['../group__ops.html#gaf79cf0271ca0105d7b14295a90d0ed14',1,'mlx::core::array_equal(const array &a, const array &b, StreamOrDevice s={})']]], + ['arrayiterator_64',['ArrayIterator',['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ad3afcb24c6db7642bbc06835f7f3e27a',1,'mlx::core::array::ArrayIterator']]], + ['as_5fstrided_65',['as_strided',['../group__ops.html#ga8de80ecef30fc560003d40f61a38b99d',1,'mlx::core']]], + ['asin_66',['asin',['../namespacemetal.html#a16e843194df3fd136404bf80ba5ac95c',1,'metal::asin()'],['../namespacemetal_1_1fast.html#a769455a283da99654b6e42c3acf13eb1',1,'metal::fast::asin()'],['../namespacemetal_1_1precise.html#adc7b8b6e12e320cb32030f728dcbf438',1,'metal::precise::asin()']]], + ['asinh_67',['asinh',['../namespacemetal.html#abcc3251866930cfe880f89e7473d0e63',1,'metal::asinh()'],['../namespacemetal_1_1fast.html#a4367034b7b3e14310803bb2be975a556',1,'metal::fast::asinh()'],['../namespacemetal_1_1precise.html#aaad1cdde6687c8011fbc5fda1bb13424',1,'metal::precise::asinh()']]], + ['asstrided_68',['AsStrided',['../classmlx_1_1core_1_1_as_strided.html#a80c0547f72ed53374eafc57d57b5d4af',1,'mlx::core::AsStrided']]], + ['astype_69',['AsType',['../classmlx_1_1core_1_1_as_type.html#a8c3241d402a8977bb4db037e225f5b47',1,'mlx::core::AsType']]], + ['astype_70',['astype',['../group__ops.html#ga0e58c24fc5668e5a521e5b45e8370a62',1,'mlx::core']]], + ['async_5feval_71',['async_eval',['../namespacemlx_1_1core.html#a15dda19aa7fa1fc5fca35df5cf963297',1,'mlx::core']]], + ['atan_72',['atan',['../namespacemetal.html#a80a771553d9a0012b93620d19c48b00f',1,'metal::atan()'],['../namespacemetal_1_1fast.html#a769503b4b7f89071d0983258c5a3ac5a',1,'metal::fast::atan()'],['../namespacemetal_1_1precise.html#aaaf4b5f4786a912089bbf0ae7619a6be',1,'metal::precise::atan()']]], + ['atan2_73',['atan2',['../namespacemetal.html#a1d430793eaa38ccf0d07145e3fcd1e61',1,'metal::atan2()'],['../namespacemetal_1_1fast.html#a00e687ea46f5affe26e6aef8fd62b89a',1,'metal::fast::atan2()'],['../namespacemetal_1_1precise.html#a6f161b049cc6884f87b09b33c2d1cd7f',1,'metal::precise::atan2()']]], + ['atanh_74',['atanh',['../namespacemetal.html#a57116427997ba71dd3863bfb15de33bf',1,'metal::atanh()'],['../namespacemetal_1_1fast.html#af24608fc605db9a14427d37c36dc1c53',1,'metal::fast::atanh()'],['../namespacemetal_1_1precise.html#a902994837653b90c47f4285673e712c4',1,'metal::precise::atanh()']]], + ['atleast_5f1d_75',['atleast_1d',['../group__ops.html#gaba4d25e7a2bf87ba4feb7837ec7fa396',1,'mlx::core::atleast_1d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga08ca172ce80157c916c89dd0b45b95c5',1,'mlx::core::atleast_1d(const std::vector< array > &a, StreamOrDevice s={})']]], + ['atleast_5f2d_76',['atleast_2d',['../group__ops.html#gaeeb7f5bb88aa32a3ac2be1f39c5f8087',1,'mlx::core::atleast_2d(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga9950299a80c2562f13448758f856d1f5',1,'mlx::core::atleast_2d(const std::vector< array > &a, StreamOrDevice s={})']]], + ['atleast_5f3d_77',['atleast_3d',['../group__ops.html#ga4afd919601e67782ff964465919956a0',1,'mlx::core::atleast_3d(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaffdf742ad79440a60dda40062a8074fe',1,'mlx::core::atleast_3d(const std::vector< array > &a, StreamOrDevice s={})']]], + ['atomic_5fupdate_78',['atomic_update',['../struct_none.html#aecbce7c97e8b1d5dc4afd2e788c24e06',1,'None']]], + ['attach_5fevent_79',['attach_event',['../classmlx_1_1core_1_1array.html#a000c3cfe13cb378bf0523b62816190da',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/functions_10.js b/docs/build/html/search/functions_10.js index 02a1d9a43..33c9ec6d7 100644 --- a/docs/build/html/search/functions_10.js +++ b/docs/build/html/search/functions_10.js @@ -25,7 +25,7 @@ var searchData= ['primitive_22',['primitive',['../classmlx_1_1core_1_1array.html#a790548666511d8c6d9f92ee79d2ce14c',1,'mlx::core::array']]], ['primitive_5fid_23',['primitive_id',['../classmlx_1_1core_1_1array.html#af5ad83605d4eea81561246873bee1d7c',1,'mlx::core::array']]], ['primitive_5fptr_24',['primitive_ptr',['../classmlx_1_1core_1_1array.html#a5119cd616ec3c05d65878944b8889469',1,'mlx::core::array']]], - ['print_25',['print',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a6814f9008a683c6911d5b8991ef770ab',1,'mlx::core::distributed::AllReduce::print()'],['../classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb',1,'mlx::core::Primitive::print()'],['../classmlx_1_1core_1_1_abs.html#a643d6db5116eed978e3208804a992107',1,'mlx::core::Abs::print()'],['../classmlx_1_1core_1_1_add.html#a8a96345aa63724f22b68bca7b861211d',1,'mlx::core::Add::print()'],['../classmlx_1_1core_1_1_add_m_m.html#a1262ac2c4c6e9ff6b6047bf7605e5cc9',1,'mlx::core::AddMM::print()'],['../classmlx_1_1core_1_1_arange.html#abd73d2b793da796dc7cf04c9f7d5c19e',1,'mlx::core::Arange::print()'],['../classmlx_1_1core_1_1_arc_cos.html#aa48d8bec4efbac569d809cf11648b739',1,'mlx::core::ArcCos::print()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6a9a2ab0cc360d7e2f9676db17f8e630',1,'mlx::core::ArcCosh::print()'],['../classmlx_1_1core_1_1_arc_sin.html#a895a35c9dd22fdb06e7b971bfd6fde87',1,'mlx::core::ArcSin::print()'],['../classmlx_1_1core_1_1_arc_sinh.html#aa8b2934a8a0b2eedec8257bbb5726430',1,'mlx::core::ArcSinh::print()'],['../classmlx_1_1core_1_1_arc_tan.html#ab0309e4feca36f221b3d672dc92cac05',1,'mlx::core::ArcTan::print()'],['../classmlx_1_1core_1_1_arc_tan2.html#abdfef9f572d06df1251c28222756a361',1,'mlx::core::ArcTan2::print()'],['../classmlx_1_1core_1_1_arc_tanh.html#aa9549311240d7ba225b84e1df9ad8523',1,'mlx::core::ArcTanh::print()'],['../classmlx_1_1core_1_1_arg_partition.html#aa8678d94fa1571ea71a7bf790cdb8d63',1,'mlx::core::ArgPartition::print()'],['../classmlx_1_1core_1_1_arg_reduce.html#a153a6d8dba7301c4fcd0e429154ead8f',1,'mlx::core::ArgReduce::print()'],['../classmlx_1_1core_1_1_arg_sort.html#a0b59ce43e0982d634a01631728b419bd',1,'mlx::core::ArgSort::print()'],['../classmlx_1_1core_1_1_as_type.html#aa617e29147c14bd5d1fa8ad0bf65af0c',1,'mlx::core::AsType::print()'],['../classmlx_1_1core_1_1_as_strided.html#af2e21b77ea9e6c70bca45224967745bf',1,'mlx::core::AsStrided::print()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d',1,'mlx::core::BitwiseBinary::print()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#a37ecf6fa296d28efb7651a3c510fe159',1,'mlx::core::BlockMaskedMM::print()'],['../classmlx_1_1core_1_1_gather_m_m.html#ae7a6f4eecb15e95b21e6c87068ebd758',1,'mlx::core::GatherMM::print()'],['../classmlx_1_1core_1_1_broadcast.html#a6a610412861c6e472f930b6721b99a11',1,'mlx::core::Broadcast::print()'],['../classmlx_1_1core_1_1_ceil.html#a14a0048dd6496341cacaddada68276ee',1,'mlx::core::Ceil::print()'],['../classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b',1,'mlx::core::Compiled::print()'],['../classmlx_1_1core_1_1_concatenate.html#a56f29b585a6d1d958954a68dcc893f33',1,'mlx::core::Concatenate::print()'],['../classmlx_1_1core_1_1_conjugate.html#a40281539bbd543ac8fd8e28650de17e4',1,'mlx::core::Conjugate::print()'],['../classmlx_1_1core_1_1_convolution.html#a844eab7c4cc99e775cfb561265ed14fd',1,'mlx::core::Convolution::print()'],['../classmlx_1_1core_1_1_copy.html#acfa1a02ab9cdab593e928faa515a8008',1,'mlx::core::Copy::print()'],['../classmlx_1_1core_1_1_cos.html#a81858457e4bea931a4bc6f6e38b0f696',1,'mlx::core::Cos::print()'],['../classmlx_1_1core_1_1_cosh.html#ac247faad68c1050cda9f72d7d6d040e2',1,'mlx::core::Cosh::print()'],['../classmlx_1_1core_1_1_custom_transforms.html#a2ddbacbc468271b11caee0ad97005298',1,'mlx::core::CustomTransforms::print()'],['../classmlx_1_1core_1_1_depends.html#aed575b0d927f4341f60442c70adeeb82',1,'mlx::core::Depends::print()'],['../classmlx_1_1core_1_1_divide.html#af3c15337ac15522cc34ed98b97895bb6',1,'mlx::core::Divide::print()'],['../classmlx_1_1core_1_1_div_mod.html#a7edbed50d07869d921e529157931b7a1',1,'mlx::core::DivMod::print()'],['../classmlx_1_1core_1_1_select.html#a678285f2c0b9dae85692399c3aa692a7',1,'mlx::core::Select::print()'],['../classmlx_1_1core_1_1_remainder.html#aeaecac5ea8e606d7ecd393d8019029e4',1,'mlx::core::Remainder::print()'],['../classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774',1,'mlx::core::Equal::print()'],['../classmlx_1_1core_1_1_erf.html#a186af7b783cf832c3b25eec3a09f5a0c',1,'mlx::core::Erf::print()'],['../classmlx_1_1core_1_1_erf_inv.html#a0acb31bd5780abf61877bd1a3e0fd4f9',1,'mlx::core::ErfInv::print()'],['../classmlx_1_1core_1_1_exp.html#ad87cc1b2ae595a613b03b0fdca63ae6a',1,'mlx::core::Exp::print()'],['../classmlx_1_1core_1_1_expm1.html#af1a99266fc50aa5948cdd298e2916ef1',1,'mlx::core::Expm1::print()'],['../classmlx_1_1core_1_1_f_f_t.html#a15a2a5f7647f5fb78611a251d3270edf',1,'mlx::core::FFT::print()'],['../classmlx_1_1core_1_1_floor.html#ac289e87c5fac15e2f491e2513be610f6',1,'mlx::core::Floor::print()'],['../classmlx_1_1core_1_1_full.html#a68e08303f4960ab373b84a3312edc013',1,'mlx::core::Full::print()'],['../classmlx_1_1core_1_1_gather.html#a9d57637a8a65008683c3847251bdcf91',1,'mlx::core::Gather::print()'],['../classmlx_1_1core_1_1_greater.html#aa2980e45cd2c79ebfb394012d3108a04',1,'mlx::core::Greater::print()'],['../classmlx_1_1core_1_1_greater_equal.html#ab98045c861d2d2ffb0398c2c1d671cef',1,'mlx::core::GreaterEqual::print()'],['../classmlx_1_1core_1_1_hadamard.html#a3df6e7e3b3b71bf50be5f1a05d0870b6',1,'mlx::core::Hadamard::print()'],['../classmlx_1_1core_1_1_imag.html#a0c8d48e2a1474d80a314ea9b96dbaa8d',1,'mlx::core::Imag::print()'],['../classmlx_1_1core_1_1_less.html#ad67e6f66d7b75546fd98dbee6b631d78',1,'mlx::core::Less::print()'],['../classmlx_1_1core_1_1_less_equal.html#a409842d3862113c53cbbdf7467a06950',1,'mlx::core::LessEqual::print()'],['../classmlx_1_1core_1_1_load.html#a54e08a0ca41b7c9f1a76b00c889f0bfa',1,'mlx::core::Load::print()'],['../classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d',1,'mlx::core::Log::print()'],['../classmlx_1_1core_1_1_log1p.html#a8a1569dde30440ce11ea466ccc69d2d4',1,'mlx::core::Log1p::print()'],['../classmlx_1_1core_1_1_logical_not.html#a001ff3eca46440f0d8a287e0b98a8a2c',1,'mlx::core::LogicalNot::print()'],['../classmlx_1_1core_1_1_logical_and.html#a9a5220eb56e1fd94fd879394ee5ad397',1,'mlx::core::LogicalAnd::print()'],['../classmlx_1_1core_1_1_logical_or.html#a6becc5fbfadde850de9857099dcd5003',1,'mlx::core::LogicalOr::print()'],['../classmlx_1_1core_1_1_log_add_exp.html#a702a2eff0bd1ae7b6fb829dd0b0b11b9',1,'mlx::core::LogAddExp::print()'],['../classmlx_1_1core_1_1_matmul.html#abb4a16a265a05d56a2f5d2e89d6f9dfd',1,'mlx::core::Matmul::print()'],['../classmlx_1_1core_1_1_maximum.html#a3b708a1d6b526719c62850294776f8ca',1,'mlx::core::Maximum::print()'],['../classmlx_1_1core_1_1_minimum.html#a137677bf32c626a768b732a7b8575512',1,'mlx::core::Minimum::print()'],['../classmlx_1_1core_1_1_multiply.html#aa4f1f7af68346ce80c2636df415c9909',1,'mlx::core::Multiply::print()'],['../classmlx_1_1core_1_1_negative.html#a0d5c30e267ff6468d64f1987f9f83f91',1,'mlx::core::Negative::print()'],['../classmlx_1_1core_1_1_not_equal.html#a12aa2f764880d29e627540610b63af09',1,'mlx::core::NotEqual::print()'],['../classmlx_1_1core_1_1_number_of_elements.html#aecde30826970938f3aa688979a668f52',1,'mlx::core::NumberOfElements::print()'],['../classmlx_1_1core_1_1_pad.html#af87754daaf51f6a6cf8bd4949ca1e70a',1,'mlx::core::Pad::print()'],['../classmlx_1_1core_1_1_partition.html#ab5c7aa4fed325475b33d4004649f0dc0',1,'mlx::core::Partition::print()'],['../classmlx_1_1core_1_1_power.html#a33e2d7ff078426fe66ea2370ceb5af60',1,'mlx::core::Power::print()'],['../classmlx_1_1core_1_1_quantized_matmul.html#aaef8c96d4d40b4fa08ced540d341a4db',1,'mlx::core::QuantizedMatmul::print()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a53c3fa7beb51ce2e1c2da28633406fe0',1,'mlx::core::GatherQMM::print()'],['../classmlx_1_1core_1_1_random_bits.html#a8a5593c34fd868d94b36a8ced1390271',1,'mlx::core::RandomBits::print()'],['../classmlx_1_1core_1_1_real.html#a740a0dfb54c2a4467a0a59f11fe69e1b',1,'mlx::core::Real::print()'],['../classmlx_1_1core_1_1_reshape.html#a0f2323d5d67ece0eb25ecff565b21862',1,'mlx::core::Reshape::print()'],['../classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd',1,'mlx::core::Reduce::print()'],['../classmlx_1_1core_1_1_round.html#af0dfe8943109c936b35ab0082f566f72',1,'mlx::core::Round::print()'],['../classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22',1,'mlx::core::Scan::print()'],['../classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa',1,'mlx::core::Scatter::print()'],['../classmlx_1_1core_1_1_sigmoid.html#ad4cd19938e5159754aa7516f405580c2',1,'mlx::core::Sigmoid::print()'],['../classmlx_1_1core_1_1_sign.html#a2aa0720fe0a6d2408eb43c25d3d45b0a',1,'mlx::core::Sign::print()'],['../classmlx_1_1core_1_1_sin.html#a73b31005551015897f15c00e8b0222e4',1,'mlx::core::Sin::print()'],['../classmlx_1_1core_1_1_sinh.html#a5b4753d52e80799d4fea0b9172d25a77',1,'mlx::core::Sinh::print()'],['../classmlx_1_1core_1_1_slice.html#a50851148948d924b71817cfbd4401504',1,'mlx::core::Slice::print()'],['../classmlx_1_1core_1_1_slice_update.html#a751eefb9922c56479b4b0de2ad45439b',1,'mlx::core::SliceUpdate::print()'],['../classmlx_1_1core_1_1_softmax.html#aa783610ef6b82b92681e78fc99412d83',1,'mlx::core::Softmax::print()'],['../classmlx_1_1core_1_1_sort.html#ada81b9343f80958174eba708452927a2',1,'mlx::core::Sort::print()'],['../classmlx_1_1core_1_1_split.html#ad0c31fe5972643cc75fde10445fc47f2',1,'mlx::core::Split::print()'],['../classmlx_1_1core_1_1_square.html#a75feb558cd1d615e96309dd7d1e81384',1,'mlx::core::Square::print()'],['../classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f',1,'mlx::core::Sqrt::print()'],['../classmlx_1_1core_1_1_stop_gradient.html#acc7a7d51cbf014dae8ba3d20bedcad50',1,'mlx::core::StopGradient::print()'],['../classmlx_1_1core_1_1_subtract.html#a3834fd305435fb5a8e512566832e372b',1,'mlx::core::Subtract::print()'],['../classmlx_1_1core_1_1_tan.html#aeea7c284d595a2a928d5f28a55e9be7f',1,'mlx::core::Tan::print()'],['../classmlx_1_1core_1_1_tanh.html#a73f4976d641daf697cc1a231d773d78e',1,'mlx::core::Tanh::print()'],['../classmlx_1_1core_1_1_uniform.html#a01510998719b19df137451cc37850b8d',1,'mlx::core::Uniform::print()'],['../classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c',1,'mlx::core::View::print()'],['../classmlx_1_1core_1_1_transpose.html#ac6c87b850f4e5560aa13a5e1e9f9fe04',1,'mlx::core::Transpose::print()'],['../classmlx_1_1core_1_1_q_r_f.html#aba3526722b3a52b41fa8103b909f7f3b',1,'mlx::core::QRF::print()'],['../classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53',1,'mlx::core::SVD::print()'],['../classmlx_1_1core_1_1_inverse.html#a543f18f1ce5c06c897141091e95a66e9',1,'mlx::core::Inverse::print()'],['../classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84',1,'mlx::core::Cholesky::print()'],['../structmlx_1_1core_1_1_print_formatter.html#a79fad4cf5844db8c92b066539146281b',1,'mlx::core::PrintFormatter::print(std::ostream &os, bool val)'],['../structmlx_1_1core_1_1_print_formatter.html#a8da448a8adae671b26359341ea514316',1,'mlx::core::PrintFormatter::print(std::ostream &os, int16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9d750c134a6fbfa8251c5b1d01d73287',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#adbbb9cbff767f9db73c659a0c07ba633',1,'mlx::core::PrintFormatter::print(std::ostream &os, int32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a520adb07fafd911b22bc24b295e4f6cf',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ab0c702f1ae201e17cd328c9855cf522e',1,'mlx::core::PrintFormatter::print(std::ostream &os, int64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac59a5137ddd8b32aae057bb9826ee80d',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac4b7895d1168cfc1a3d1186d8a414d2f',1,'mlx::core::PrintFormatter::print(std::ostream &os, float16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ae21005f92bc641f2d657096f5d176a6d',1,'mlx::core::PrintFormatter::print(std::ostream &os, bfloat16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a57af5c32561b95d6ac2a3a1dc4f5d43e',1,'mlx::core::PrintFormatter::print(std::ostream &os, float val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9e1dc67c9afb0a09966336504790823d',1,'mlx::core::PrintFormatter::print(std::ostream &os, complex64_t val)']]], + ['print_25',['print',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a6814f9008a683c6911d5b8991ef770ab',1,'mlx::core::distributed::AllReduce::print()'],['../classmlx_1_1core_1_1_primitive.html#ae1aff91354ce036596088a3e19474ecb',1,'mlx::core::Primitive::print()'],['../classmlx_1_1core_1_1_abs.html#a643d6db5116eed978e3208804a992107',1,'mlx::core::Abs::print()'],['../classmlx_1_1core_1_1_add.html#a8a96345aa63724f22b68bca7b861211d',1,'mlx::core::Add::print()'],['../classmlx_1_1core_1_1_add_m_m.html#a1262ac2c4c6e9ff6b6047bf7605e5cc9',1,'mlx::core::AddMM::print()'],['../classmlx_1_1core_1_1_arange.html#abd73d2b793da796dc7cf04c9f7d5c19e',1,'mlx::core::Arange::print()'],['../classmlx_1_1core_1_1_arc_cos.html#aa48d8bec4efbac569d809cf11648b739',1,'mlx::core::ArcCos::print()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6a9a2ab0cc360d7e2f9676db17f8e630',1,'mlx::core::ArcCosh::print()'],['../classmlx_1_1core_1_1_arc_sin.html#a895a35c9dd22fdb06e7b971bfd6fde87',1,'mlx::core::ArcSin::print()'],['../classmlx_1_1core_1_1_arc_sinh.html#aa8b2934a8a0b2eedec8257bbb5726430',1,'mlx::core::ArcSinh::print()'],['../classmlx_1_1core_1_1_arc_tan.html#ab0309e4feca36f221b3d672dc92cac05',1,'mlx::core::ArcTan::print()'],['../classmlx_1_1core_1_1_arc_tan2.html#abdfef9f572d06df1251c28222756a361',1,'mlx::core::ArcTan2::print()'],['../classmlx_1_1core_1_1_arc_tanh.html#aa9549311240d7ba225b84e1df9ad8523',1,'mlx::core::ArcTanh::print()'],['../classmlx_1_1core_1_1_arg_partition.html#aa8678d94fa1571ea71a7bf790cdb8d63',1,'mlx::core::ArgPartition::print()'],['../classmlx_1_1core_1_1_arg_reduce.html#a153a6d8dba7301c4fcd0e429154ead8f',1,'mlx::core::ArgReduce::print()'],['../classmlx_1_1core_1_1_arg_sort.html#a0b59ce43e0982d634a01631728b419bd',1,'mlx::core::ArgSort::print()'],['../classmlx_1_1core_1_1_as_type.html#aa617e29147c14bd5d1fa8ad0bf65af0c',1,'mlx::core::AsType::print()'],['../classmlx_1_1core_1_1_as_strided.html#af2e21b77ea9e6c70bca45224967745bf',1,'mlx::core::AsStrided::print()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a69b28e239da7fdb89f0a9f9467dd797d',1,'mlx::core::BitwiseBinary::print()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#a37ecf6fa296d28efb7651a3c510fe159',1,'mlx::core::BlockMaskedMM::print()'],['../classmlx_1_1core_1_1_gather_m_m.html#ae7a6f4eecb15e95b21e6c87068ebd758',1,'mlx::core::GatherMM::print()'],['../classmlx_1_1core_1_1_broadcast.html#a6a610412861c6e472f930b6721b99a11',1,'mlx::core::Broadcast::print()'],['../classmlx_1_1core_1_1_ceil.html#a14a0048dd6496341cacaddada68276ee',1,'mlx::core::Ceil::print()'],['../classmlx_1_1core_1_1_compiled.html#a271521f92eef49c39799f38e26b64a9b',1,'mlx::core::Compiled::print()'],['../classmlx_1_1core_1_1_concatenate.html#a56f29b585a6d1d958954a68dcc893f33',1,'mlx::core::Concatenate::print()'],['../classmlx_1_1core_1_1_conjugate.html#a40281539bbd543ac8fd8e28650de17e4',1,'mlx::core::Conjugate::print()'],['../classmlx_1_1core_1_1_convolution.html#a844eab7c4cc99e775cfb561265ed14fd',1,'mlx::core::Convolution::print()'],['../classmlx_1_1core_1_1_copy.html#acfa1a02ab9cdab593e928faa515a8008',1,'mlx::core::Copy::print()'],['../classmlx_1_1core_1_1_cos.html#a81858457e4bea931a4bc6f6e38b0f696',1,'mlx::core::Cos::print()'],['../classmlx_1_1core_1_1_cosh.html#ac247faad68c1050cda9f72d7d6d040e2',1,'mlx::core::Cosh::print()'],['../classmlx_1_1core_1_1_custom_transforms.html#a2ddbacbc468271b11caee0ad97005298',1,'mlx::core::CustomTransforms::print()'],['../classmlx_1_1core_1_1_depends.html#aed575b0d927f4341f60442c70adeeb82',1,'mlx::core::Depends::print()'],['../classmlx_1_1core_1_1_divide.html#af3c15337ac15522cc34ed98b97895bb6',1,'mlx::core::Divide::print()'],['../classmlx_1_1core_1_1_div_mod.html#a7edbed50d07869d921e529157931b7a1',1,'mlx::core::DivMod::print()'],['../classmlx_1_1core_1_1_select.html#a678285f2c0b9dae85692399c3aa692a7',1,'mlx::core::Select::print()'],['../classmlx_1_1core_1_1_remainder.html#aeaecac5ea8e606d7ecd393d8019029e4',1,'mlx::core::Remainder::print()'],['../classmlx_1_1core_1_1_equal.html#a0787bf32f0b405a8b2ac809d2d990774',1,'mlx::core::Equal::print()'],['../classmlx_1_1core_1_1_erf.html#a186af7b783cf832c3b25eec3a09f5a0c',1,'mlx::core::Erf::print()'],['../classmlx_1_1core_1_1_erf_inv.html#a0acb31bd5780abf61877bd1a3e0fd4f9',1,'mlx::core::ErfInv::print()'],['../classmlx_1_1core_1_1_exp.html#ad87cc1b2ae595a613b03b0fdca63ae6a',1,'mlx::core::Exp::print()'],['../classmlx_1_1core_1_1_expm1.html#af1a99266fc50aa5948cdd298e2916ef1',1,'mlx::core::Expm1::print()'],['../classmlx_1_1core_1_1_f_f_t.html#a15a2a5f7647f5fb78611a251d3270edf',1,'mlx::core::FFT::print()'],['../classmlx_1_1core_1_1_floor.html#ac289e87c5fac15e2f491e2513be610f6',1,'mlx::core::Floor::print()'],['../classmlx_1_1core_1_1_full.html#a68e08303f4960ab373b84a3312edc013',1,'mlx::core::Full::print()'],['../classmlx_1_1core_1_1_gather.html#a9d57637a8a65008683c3847251bdcf91',1,'mlx::core::Gather::print()'],['../classmlx_1_1core_1_1_greater.html#aa2980e45cd2c79ebfb394012d3108a04',1,'mlx::core::Greater::print()'],['../classmlx_1_1core_1_1_greater_equal.html#ab98045c861d2d2ffb0398c2c1d671cef',1,'mlx::core::GreaterEqual::print()'],['../classmlx_1_1core_1_1_hadamard.html#a3df6e7e3b3b71bf50be5f1a05d0870b6',1,'mlx::core::Hadamard::print()'],['../classmlx_1_1core_1_1_imag.html#a0c8d48e2a1474d80a314ea9b96dbaa8d',1,'mlx::core::Imag::print()'],['../classmlx_1_1core_1_1_less.html#ad67e6f66d7b75546fd98dbee6b631d78',1,'mlx::core::Less::print()'],['../classmlx_1_1core_1_1_less_equal.html#a409842d3862113c53cbbdf7467a06950',1,'mlx::core::LessEqual::print()'],['../classmlx_1_1core_1_1_load.html#a54e08a0ca41b7c9f1a76b00c889f0bfa',1,'mlx::core::Load::print()'],['../classmlx_1_1core_1_1_log.html#a7b946d98d4a228c6be9f606a3bd8a30d',1,'mlx::core::Log::print()'],['../classmlx_1_1core_1_1_log1p.html#a8a1569dde30440ce11ea466ccc69d2d4',1,'mlx::core::Log1p::print()'],['../classmlx_1_1core_1_1_logical_not.html#a001ff3eca46440f0d8a287e0b98a8a2c',1,'mlx::core::LogicalNot::print()'],['../classmlx_1_1core_1_1_logical_and.html#a9a5220eb56e1fd94fd879394ee5ad397',1,'mlx::core::LogicalAnd::print()'],['../classmlx_1_1core_1_1_logical_or.html#a6becc5fbfadde850de9857099dcd5003',1,'mlx::core::LogicalOr::print()'],['../classmlx_1_1core_1_1_log_add_exp.html#a702a2eff0bd1ae7b6fb829dd0b0b11b9',1,'mlx::core::LogAddExp::print()'],['../classmlx_1_1core_1_1_matmul.html#abb4a16a265a05d56a2f5d2e89d6f9dfd',1,'mlx::core::Matmul::print()'],['../classmlx_1_1core_1_1_maximum.html#a3b708a1d6b526719c62850294776f8ca',1,'mlx::core::Maximum::print()'],['../classmlx_1_1core_1_1_minimum.html#a137677bf32c626a768b732a7b8575512',1,'mlx::core::Minimum::print()'],['../classmlx_1_1core_1_1_multiply.html#aa4f1f7af68346ce80c2636df415c9909',1,'mlx::core::Multiply::print()'],['../classmlx_1_1core_1_1_negative.html#a0d5c30e267ff6468d64f1987f9f83f91',1,'mlx::core::Negative::print()'],['../classmlx_1_1core_1_1_not_equal.html#a12aa2f764880d29e627540610b63af09',1,'mlx::core::NotEqual::print()'],['../classmlx_1_1core_1_1_number_of_elements.html#aecde30826970938f3aa688979a668f52',1,'mlx::core::NumberOfElements::print()'],['../classmlx_1_1core_1_1_pad.html#af87754daaf51f6a6cf8bd4949ca1e70a',1,'mlx::core::Pad::print()'],['../classmlx_1_1core_1_1_partition.html#ab5c7aa4fed325475b33d4004649f0dc0',1,'mlx::core::Partition::print()'],['../classmlx_1_1core_1_1_power.html#a33e2d7ff078426fe66ea2370ceb5af60',1,'mlx::core::Power::print()'],['../classmlx_1_1core_1_1_quantized_matmul.html#aaef8c96d4d40b4fa08ced540d341a4db',1,'mlx::core::QuantizedMatmul::print()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a53c3fa7beb51ce2e1c2da28633406fe0',1,'mlx::core::GatherQMM::print()'],['../classmlx_1_1core_1_1_random_bits.html#a8a5593c34fd868d94b36a8ced1390271',1,'mlx::core::RandomBits::print()'],['../classmlx_1_1core_1_1_real.html#a740a0dfb54c2a4467a0a59f11fe69e1b',1,'mlx::core::Real::print()'],['../classmlx_1_1core_1_1_reshape.html#a0f2323d5d67ece0eb25ecff565b21862',1,'mlx::core::Reshape::print()'],['../classmlx_1_1core_1_1_reduce.html#a399be3a89553787a0a687706881f03cd',1,'mlx::core::Reduce::print()'],['../classmlx_1_1core_1_1_round.html#af0dfe8943109c936b35ab0082f566f72',1,'mlx::core::Round::print()'],['../classmlx_1_1core_1_1_scan.html#ad5b6308c79e9b985a49df35eadd15b22',1,'mlx::core::Scan::print()'],['../classmlx_1_1core_1_1_scatter.html#aa9d45cbfb27b814517f6016092b30efa',1,'mlx::core::Scatter::print()'],['../classmlx_1_1core_1_1_sigmoid.html#ad4cd19938e5159754aa7516f405580c2',1,'mlx::core::Sigmoid::print()'],['../classmlx_1_1core_1_1_sign.html#a2aa0720fe0a6d2408eb43c25d3d45b0a',1,'mlx::core::Sign::print()'],['../classmlx_1_1core_1_1_sin.html#a73b31005551015897f15c00e8b0222e4',1,'mlx::core::Sin::print()'],['../classmlx_1_1core_1_1_sinh.html#a5b4753d52e80799d4fea0b9172d25a77',1,'mlx::core::Sinh::print()'],['../classmlx_1_1core_1_1_slice.html#a50851148948d924b71817cfbd4401504',1,'mlx::core::Slice::print()'],['../classmlx_1_1core_1_1_slice_update.html#a751eefb9922c56479b4b0de2ad45439b',1,'mlx::core::SliceUpdate::print()'],['../classmlx_1_1core_1_1_softmax.html#aa783610ef6b82b92681e78fc99412d83',1,'mlx::core::Softmax::print()'],['../classmlx_1_1core_1_1_sort.html#ada81b9343f80958174eba708452927a2',1,'mlx::core::Sort::print()'],['../classmlx_1_1core_1_1_split.html#ad0c31fe5972643cc75fde10445fc47f2',1,'mlx::core::Split::print()'],['../classmlx_1_1core_1_1_square.html#a75feb558cd1d615e96309dd7d1e81384',1,'mlx::core::Square::print()'],['../classmlx_1_1core_1_1_sqrt.html#a8681c8de2f50049848d320c47f713c0f',1,'mlx::core::Sqrt::print()'],['../classmlx_1_1core_1_1_stop_gradient.html#acc7a7d51cbf014dae8ba3d20bedcad50',1,'mlx::core::StopGradient::print()'],['../classmlx_1_1core_1_1_subtract.html#a3834fd305435fb5a8e512566832e372b',1,'mlx::core::Subtract::print()'],['../classmlx_1_1core_1_1_tan.html#aeea7c284d595a2a928d5f28a55e9be7f',1,'mlx::core::Tan::print()'],['../classmlx_1_1core_1_1_tanh.html#a73f4976d641daf697cc1a231d773d78e',1,'mlx::core::Tanh::print()'],['../classmlx_1_1core_1_1_uniform.html#a01510998719b19df137451cc37850b8d',1,'mlx::core::Uniform::print()'],['../classmlx_1_1core_1_1_view.html#a513b034919a8a494add3155f910a360c',1,'mlx::core::View::print()'],['../classmlx_1_1core_1_1_transpose.html#ac6c87b850f4e5560aa13a5e1e9f9fe04',1,'mlx::core::Transpose::print()'],['../classmlx_1_1core_1_1_q_r_f.html#aba3526722b3a52b41fa8103b909f7f3b',1,'mlx::core::QRF::print()'],['../classmlx_1_1core_1_1_s_v_d.html#ab87a4e7ef857936bea66ba9e24662f53',1,'mlx::core::SVD::print()'],['../classmlx_1_1core_1_1_inverse.html#a543f18f1ce5c06c897141091e95a66e9',1,'mlx::core::Inverse::print()'],['../classmlx_1_1core_1_1_cholesky.html#a0a8b51ff7f5369d22bdc58910d4aaf84',1,'mlx::core::Cholesky::print()'],['../classmlx_1_1core_1_1_eigh.html#a2b8e47ecd60cd7330716761c5fb1fe84',1,'mlx::core::Eigh::print()'],['../structmlx_1_1core_1_1_print_formatter.html#a79fad4cf5844db8c92b066539146281b',1,'mlx::core::PrintFormatter::print(std::ostream &os, bool val)'],['../structmlx_1_1core_1_1_print_formatter.html#a8da448a8adae671b26359341ea514316',1,'mlx::core::PrintFormatter::print(std::ostream &os, int16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9d750c134a6fbfa8251c5b1d01d73287',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#adbbb9cbff767f9db73c659a0c07ba633',1,'mlx::core::PrintFormatter::print(std::ostream &os, int32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a520adb07fafd911b22bc24b295e4f6cf',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint32_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ab0c702f1ae201e17cd328c9855cf522e',1,'mlx::core::PrintFormatter::print(std::ostream &os, int64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac59a5137ddd8b32aae057bb9826ee80d',1,'mlx::core::PrintFormatter::print(std::ostream &os, uint64_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ac4b7895d1168cfc1a3d1186d8a414d2f',1,'mlx::core::PrintFormatter::print(std::ostream &os, float16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#ae21005f92bc641f2d657096f5d176a6d',1,'mlx::core::PrintFormatter::print(std::ostream &os, bfloat16_t val)'],['../structmlx_1_1core_1_1_print_formatter.html#a57af5c32561b95d6ac2a3a1dc4f5d43e',1,'mlx::core::PrintFormatter::print(std::ostream &os, float val)'],['../structmlx_1_1core_1_1_print_formatter.html#a9e1dc67c9afb0a09966336504790823d',1,'mlx::core::PrintFormatter::print(std::ostream &os, complex64_t val)']]], ['print_5fcomplex_5fconstant_26',['print_complex_constant',['../namespacemlx_1_1core.html#a2b78f270942c6eb185e8045f1c5b4286',1,'mlx::core']]], ['print_5fconstant_27',['print_constant',['../namespacemlx_1_1core.html#a7d11b000895d44d183260634f4192d92',1,'mlx::core']]], ['print_5ffloat_5fconstant_28',['print_float_constant',['../namespacemlx_1_1core.html#a93a8ac59c644b801ec8881a58368caf2',1,'mlx::core']]], diff --git a/docs/build/html/search/functions_11.js b/docs/build/html/search/functions_11.js index e77cfdd82..7dfd15ac3 100644 --- a/docs/build/html/search/functions_11.js +++ b/docs/build/html/search/functions_11.js @@ -2,23 +2,25 @@ var searchData= [ ['qdot_0',['qdot',['../quantized_8h.html#ab364d58ab652e3ad87a8f80910556071',1,'quantized.h']]], ['qdot_5fsafe_1',['qdot_safe',['../quantized_8h.html#a07b26d2d0b0d65dfe925c452c453fa42',1,'quantized.h']]], - ['qmm_5fn_2',['qmm_n',['../quantized_8h.html#ab5c4cfe531d7a0e1c19353060e3d3a6c',1,'quantized.h']]], - ['qmm_5fn_5fimpl_3',['qmm_n_impl',['../quantized_8h.html#a5f7b71eef2e328af3225d7c777ffb339',1,'quantized.h']]], - ['qmm_5ft_4',['qmm_t',['../quantized_8h.html#af9b25269ab95632e343631eeef79dc8d',1,'quantized.h']]], - ['qmm_5ft_5fimpl_5',['qmm_t_impl',['../quantized_8h.html#ac7b6accc41b026ef8efc312987aa9efe',1,'quantized.h']]], - ['qmv_6',['qmv',['../quantized_8h.html#ae024e11c3e38dda71fef772ff0a82fe2',1,'quantized.h']]], - ['qmv_5ffast_7',['qmv_fast',['../quantized_8h.html#ad6d0aa9b080358581844d6583aa2f4ea',1,'quantized.h']]], + ['qmm_5fn_2',['qmm_n',['../quantized_8h.html#a2ce135e392dbf9a3e5180fb083792ed7',1,'quantized.h']]], + ['qmm_5fn_5fimpl_3',['qmm_n_impl',['../quantized_8h.html#a0ba59096494f1001c195312571523ae9',1,'quantized.h']]], + ['qmm_5ft_4',['qmm_t',['../quantized_8h.html#abe2e3ef0ee4ec2cb61dc5330ad463d10',1,'quantized.h']]], + ['qmm_5ft_5fimpl_5',['qmm_t_impl',['../quantized_8h.html#af5750a35e8f5462218effba719f7f5b8',1,'quantized.h']]], + ['qmv_6',['qmv',['../quantized_8h.html#a639c50a08b5cf57e8be5279a116274bd',1,'quantized.h']]], + ['qmv_5ffast_7',['qmv_fast',['../quantized_8h.html#a7bd1d9f17c86c8fd34ec13678cff755f',1,'quantized.h']]], ['qmv_5ffast_5fimpl_8',['qmv_fast_impl',['../quantized_8h.html#aba7687e6f8f1d29c0a1b2a3db150bd81',1,'quantized.h']]], ['qmv_5fimpl_9',['qmv_impl',['../quantized_8h.html#a8e13c7d895624f738d2a6d9893b687fd',1,'quantized.h']]], - ['qouter_10',['qouter',['../quantized_8h.html#ae756f6817b584c60f5dcdd1d9c6b4f58',1,'quantized.h']]], - ['qr_11',['qr',['../namespacemlx_1_1core_1_1linalg.html#ae6d97829459353fe3b31c8a0867c0ca2',1,'mlx::core::linalg']]], - ['qrf_12',['QRF',['../classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983',1,'mlx::core::QRF']]], - ['quantize_13',['quantize',['../group__ops.html#gab43cc28690da7cdd43b43065adbd31da',1,'mlx::core']]], - ['quantized_14',['quantized',['../namespacemlx_1_1core_1_1metal.html#a949f029424218ab5c5588563d2e076f5',1,'mlx::core::metal']]], - ['quantized_5fmatmul_15',['quantized_matmul',['../group__ops.html#ga6381c7062b232ac21f3fdc3136aaf86e',1,'mlx::core']]], - ['quantizedblockloader_16',['QuantizedBlockLoader',['../struct_quantized_block_loader.html#af59b054750a65e7e79c1cd05c4acac93',1,'QuantizedBlockLoader']]], - ['quantizedmatmul_17',['QuantizedMatmul',['../classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c',1,'mlx::core::QuantizedMatmul']]], - ['quiet_5fnan_18',['quiet_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['qvm_19',['qvm',['../quantized_8h.html#a2cce78e6692cfcbab8f6aa89afa61580',1,'quantized.h']]], - ['qvm_5fimpl_20',['qvm_impl',['../quantized_8h.html#a9d466e3e3af0d75cfc4eddcf46cb13e4',1,'quantized.h']]] + ['qmv_5fquad_10',['qmv_quad',['../quantized_8h.html#a7ce5f53a4d6d1555e9402d545408d0ad',1,'quantized.h']]], + ['qmv_5fquad_5fimpl_11',['qmv_quad_impl',['../quantized_8h.html#ad5cf1cf63656bc1780685d22169cd4ef',1,'quantized.h']]], + ['qouter_12',['qouter',['../quantized_8h.html#ae756f6817b584c60f5dcdd1d9c6b4f58',1,'quantized.h']]], + ['qr_13',['qr',['../namespacemlx_1_1core_1_1linalg.html#ae6d97829459353fe3b31c8a0867c0ca2',1,'mlx::core::linalg']]], + ['qrf_14',['QRF',['../classmlx_1_1core_1_1_q_r_f.html#a44ed2924dc574c4aeb79b1188b5c3983',1,'mlx::core::QRF']]], + ['quantize_15',['quantize',['../group__ops.html#gab43cc28690da7cdd43b43065adbd31da',1,'mlx::core']]], + ['quantized_16',['quantized',['../namespacemlx_1_1core_1_1metal.html#a949f029424218ab5c5588563d2e076f5',1,'mlx::core::metal']]], + ['quantized_5fmatmul_17',['quantized_matmul',['../group__ops.html#gabfa4208fb1f9b1cdd0abc563b19175af',1,'mlx::core']]], + ['quantizedblockloader_18',['QuantizedBlockLoader',['../struct_quantized_block_loader.html#af59b054750a65e7e79c1cd05c4acac93',1,'QuantizedBlockLoader']]], + ['quantizedmatmul_19',['QuantizedMatmul',['../classmlx_1_1core_1_1_quantized_matmul.html#a5bd164d038d9dc21919f7e0bfdeaa25c',1,'mlx::core::QuantizedMatmul']]], + ['quiet_5fnan_20',['quiet_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#aebeb07c01984be246bc2d1b8f8e4ac7b',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['qvm_21',['qvm',['../quantized_8h.html#ad84f7d5ab9e32dbbe3ca759ae5d5d5c5',1,'quantized.h']]], + ['qvm_5fimpl_22',['qvm_impl',['../quantized_8h.html#a4a8c8db7d5d480733726fd6d1a645e12',1,'quantized.h']]] ]; diff --git a/docs/build/html/search/functions_12.js b/docs/build/html/search/functions_12.js index f0e64cfee..a859e8b37 100644 --- a/docs/build/html/search/functions_12.js +++ b/docs/build/html/search/functions_12.js @@ -48,34 +48,35 @@ var searchData= ['reset_5fpeak_5fmemory_45',['reset_peak_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a26b9c8ac7ed56c3bb7ddc194009ec5a6',1,'mlx::core::metal::MetalAllocator::reset_peak_memory()'],['../namespacemlx_1_1core_1_1metal.html#adec8bb375da6c9dd5ff625a3a8434122',1,'mlx::core::metal::reset_peak_memory()']]], ['reshape_46',['Reshape',['../classmlx_1_1core_1_1_reshape.html#aa7c5a6e18d0615ad36102de01929eb26',1,'mlx::core::Reshape']]], ['reshape_47',['reshape',['../group__ops.html#ga7b0e3d46a39d99b1628b422049790082',1,'mlx::core']]], - ['resize_48',['resize',['../classpocketfft_1_1detail_1_1arr.html#a8d73baaefa02dff8714e4398c83917e0',1,'pocketfft::detail::arr']]], - ['restart_49',['restart',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a51d252df8d0cd060f15be8ba2bfe3288',1,'pocketfft::detail::threading::thread_pool']]], - ['result_5ftype_50',['result_type',['../namespacemlx_1_1core.html#a8b984eef832f757e28cd262d64a49ae7',1,'mlx::core::result_type(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ac457c232f956ba802acb69c5a621633d',1,'mlx::core::result_type(const array &a, const array &b, const array &c)'],['../namespacemlx_1_1core.html#aafaf24a28297428caf6d0c36c623489e',1,'mlx::core::result_type(const std::vector< array > &arrays)']]], - ['retain_5fgraph_51',['retain_graph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a12ead93cb70ebab865c5e9ce7718f814',1,'mlx::core::detail::RetainGraph']]], - ['retaingraph_52',['RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a7fac0244c14cc9e8f580bc1298ff68da',1,'mlx::core::detail::RetainGraph']]], - ['rev_5fiter_53',['rev_iter',['../classpocketfft_1_1detail_1_1rev__iter.html#af7b8c2f1534d3038ba2a3c6b9919e134',1,'pocketfft::detail::rev_iter']]], - ['rev_5fofs_54',['rev_ofs',['../classpocketfft_1_1detail_1_1rev__iter.html#a7f112afa76cb7a4c29cff217a6f5f5a9',1,'pocketfft::detail::rev_iter']]], - ['rfft_55',['rfft',['../namespacemlx_1_1core_1_1fft.html#a9cb0edfb831b1ed607a8124d38540c13',1,'mlx::core::fft::rfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a464016cbc948bb3af17d43ce39cf54bd',1,'mlx::core::fft::rfft(const array &a, int axis=-1, StreamOrDevice s={})']]], - ['rfft2_56',['rfft2',['../namespacemlx_1_1core_1_1fft.html#af63a8d42005954aa5cba69823e9c9de7',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a59ca0c3c455e4ff1fed3dbd2327c55f0',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], - ['rfftn_57',['rfftn',['../namespacemlx_1_1core_1_1fft.html#a2e4287e110dfb23aaa7f4d65eb72465a',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#ab502e092ba4bb571ecc421a25e4cb968',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a53d44fd9b6c7645f9303c24099755bf2',1,'mlx::core::fft::rfftn(const array &a, StreamOrDevice s={})']]], - ['rfftp_58',['rfftp',['../classpocketfft_1_1detail_1_1rfftp.html#a0c590f917b8e8afa3ff53ccff52e68c5',1,'pocketfft::detail::rfftp']]], - ['right_5fshift_59',['right_shift',['../group__ops.html#gafa376ad57d38ba87378f0272dc379b23',1,'mlx::core']]], - ['rint_60',['rint',['../namespacemetal.html#a29ab6060527120eee745aec0daa06e01',1,'metal::rint()'],['../namespacemetal_1_1fast.html#aa613bc252f8d8069e175ec9e9d05a7ec',1,'metal::fast::rint()'],['../namespacemetal_1_1precise.html#ab17bd408098270ad92f37bcd1039c254',1,'metal::precise::rint()']]], - ['rms_5fnorm_61',['rms_norm',['../namespacemlx_1_1core_1_1fast.html#ac7b620275c6386f822b7aacc6b312e62',1,'mlx::core::fast']]], - ['rmsnorm_62',['RMSNorm',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a22adaff0749711263388ec151fcfebe2',1,'mlx::core::fast::RMSNorm']]], - ['rmsnormvjp_63',['RMSNormVJP',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#aac060129b2e1af79bf388bfe705381ca',1,'mlx::core::fast::RMSNormVJP']]], - ['roll_64',['roll',['../group__ops.html#gac40e48c69f9c715a767912c30836e75c',1,'mlx::core::roll(const array &a, int shift, StreamOrDevice s={})'],['../group__ops.html#gab30fb942bb6ee00bb50da04033f949a9',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, StreamOrDevice s={})'],['../group__ops.html#ga8694ec137165752cb6d8a36a6b7c3436',1,'mlx::core::roll(const array &a, int shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga665f502ecc96f1f4467556b784abf9ae',1,'mlx::core::roll(const array &a, int shift, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga4c335f86ff2a05daf8dd8aedc628aa59',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga6c6fe942a8f7c573a1cb2342566f74d2',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, const std::vector< int > &axes, StreamOrDevice s={})']]], - ['rope_65',['RoPE',['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a031fa27aeba94cfa5ccc633137a12163',1,'mlx::core::fast::RoPE']]], - ['rope_66',['rope',['../namespacemlx_1_1core_1_1fast.html#a534ef357eae24892684a6ecd866d3fab',1,'mlx::core::fast']]], - ['rot90_67',['ROT90',['../namespacepocketfft_1_1detail.html#a928bad5278df636ee47402c0a75f64ef',1,'pocketfft::detail']]], - ['rotx90_68',['ROTX90',['../namespacepocketfft_1_1detail.html#ab6a43dc0cec4291e163e68a0875ac501',1,'pocketfft::detail']]], - ['round_69',['Round',['../classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde',1,'mlx::core::Round']]], - ['round_70',['round',['../namespacemetal.html#a46c667e169ff9d51a9204a045305442f',1,'metal::round()'],['../namespacemetal_1_1fast.html#a4cb687257a004726d49e496417eaa40f',1,'metal::fast::round()'],['../namespacemetal_1_1precise.html#a5295ab08055d12534cc3775da855ac12',1,'metal::precise::round()'],['../group__ops.html#ga2d74d43f007a069384e89d8416525331',1,'mlx::core::round(const array &a, int decimals, StreamOrDevice s={})'],['../group__ops.html#gaf18fb7e98bf8cf3b7fbc5e64c988a95b',1,'mlx::core::round(const array &a, StreamOrDevice s={})']]], - ['round_5ferror_71',['round_error',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['row_5freduce_5fgeneral_5fdispatch_72',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], - ['row_5freduce_5flooped_73',['row_reduce_looped',['../reduce__row_8h.html#ad98332d74a6824aa7499df3e2f2246ae',1,'reduce_row.h']]], - ['row_5freduce_5fsimple_74',['row_reduce_simple',['../reduce__row_8h.html#ac01d30987668930c8b38900e47b8308b',1,'reduce_row.h']]], - ['row_5freduce_5fsmall_75',['row_reduce_small',['../reduce__row_8h.html#a27e75312086e31f6bd1bbf4b366679da',1,'reduce_row.h']]], - ['rsqrt_76',['rsqrt',['../namespacemetal.html#a1cf4b605c0aa7ff5bfe5e979a16f5157',1,'metal::rsqrt()'],['../namespacemetal_1_1fast.html#aa62097c750f1e4b69d09277f19976ab1',1,'metal::fast::rsqrt()'],['../namespacemetal_1_1precise.html#afb397b477745f12a44423934fa2b05ac',1,'metal::precise::rsqrt()'],['../group__ops.html#ga102f23aa0b0c3d3296a321c694617aa1',1,'mlx::core::rsqrt()']]], - ['run_77',['run',['../struct_g_e_m_v_kernel.html#ac4a7b5011a0ea938ab1949bb1767fc1a',1,'GEMVKernel::run()'],['../struct_g_e_m_v_t_kernel.html#a5d68656832de892f33db939005713927',1,'GEMVTKernel::run()'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5',1,'mlx::steel::GEMMKernel::run()']]] + ['residencyset_48',['ResidencySet',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#abb69d020da017a7e52e9e3903b877eec',1,'mlx::core::metal::ResidencySet::ResidencySet(MTL::Device *d)'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#aabbf8c16f269f38e4c38097b947d18b7',1,'mlx::core::metal::ResidencySet::ResidencySet(const ResidencySet &)=delete']]], + ['resize_49',['resize',['../classpocketfft_1_1detail_1_1arr.html#a8d73baaefa02dff8714e4398c83917e0',1,'pocketfft::detail::arr::resize()'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#a0364647bca4324ac41ea3900925a69b5',1,'mlx::core::metal::ResidencySet::resize()']]], + ['restart_50',['restart',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a51d252df8d0cd060f15be8ba2bfe3288',1,'pocketfft::detail::threading::thread_pool']]], + ['result_5ftype_51',['result_type',['../namespacemlx_1_1core.html#a8b984eef832f757e28cd262d64a49ae7',1,'mlx::core::result_type(const array &a, const array &b)'],['../namespacemlx_1_1core.html#ac457c232f956ba802acb69c5a621633d',1,'mlx::core::result_type(const array &a, const array &b, const array &c)'],['../namespacemlx_1_1core.html#aafaf24a28297428caf6d0c36c623489e',1,'mlx::core::result_type(const std::vector< array > &arrays)']]], + ['retain_5fgraph_52',['retain_graph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a12ead93cb70ebab865c5e9ce7718f814',1,'mlx::core::detail::RetainGraph']]], + ['retaingraph_53',['RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a7fac0244c14cc9e8f580bc1298ff68da',1,'mlx::core::detail::RetainGraph']]], + ['rev_5fiter_54',['rev_iter',['../classpocketfft_1_1detail_1_1rev__iter.html#af7b8c2f1534d3038ba2a3c6b9919e134',1,'pocketfft::detail::rev_iter']]], + ['rev_5fofs_55',['rev_ofs',['../classpocketfft_1_1detail_1_1rev__iter.html#a7f112afa76cb7a4c29cff217a6f5f5a9',1,'pocketfft::detail::rev_iter']]], + ['rfft_56',['rfft',['../namespacemlx_1_1core_1_1fft.html#a9cb0edfb831b1ed607a8124d38540c13',1,'mlx::core::fft::rfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a464016cbc948bb3af17d43ce39cf54bd',1,'mlx::core::fft::rfft(const array &a, int axis=-1, StreamOrDevice s={})']]], + ['rfft2_57',['rfft2',['../namespacemlx_1_1core_1_1fft.html#af63a8d42005954aa5cba69823e9c9de7',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a59ca0c3c455e4ff1fed3dbd2327c55f0',1,'mlx::core::fft::rfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], + ['rfftn_58',['rfftn',['../namespacemlx_1_1core_1_1fft.html#a2e4287e110dfb23aaa7f4d65eb72465a',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#ab502e092ba4bb571ecc421a25e4cb968',1,'mlx::core::fft::rfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a53d44fd9b6c7645f9303c24099755bf2',1,'mlx::core::fft::rfftn(const array &a, StreamOrDevice s={})']]], + ['rfftp_59',['rfftp',['../classpocketfft_1_1detail_1_1rfftp.html#a0c590f917b8e8afa3ff53ccff52e68c5',1,'pocketfft::detail::rfftp']]], + ['right_5fshift_60',['right_shift',['../group__ops.html#gafa376ad57d38ba87378f0272dc379b23',1,'mlx::core']]], + ['rint_61',['rint',['../namespacemetal.html#a29ab6060527120eee745aec0daa06e01',1,'metal::rint()'],['../namespacemetal_1_1fast.html#aa613bc252f8d8069e175ec9e9d05a7ec',1,'metal::fast::rint()'],['../namespacemetal_1_1precise.html#ab17bd408098270ad92f37bcd1039c254',1,'metal::precise::rint()']]], + ['rms_5fnorm_62',['rms_norm',['../namespacemlx_1_1core_1_1fast.html#ac7b620275c6386f822b7aacc6b312e62',1,'mlx::core::fast']]], + ['rmsnorm_63',['RMSNorm',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a22adaff0749711263388ec151fcfebe2',1,'mlx::core::fast::RMSNorm']]], + ['rmsnormvjp_64',['RMSNormVJP',['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#aac060129b2e1af79bf388bfe705381ca',1,'mlx::core::fast::RMSNormVJP']]], + ['roll_65',['roll',['../group__ops.html#gac40e48c69f9c715a767912c30836e75c',1,'mlx::core::roll(const array &a, int shift, StreamOrDevice s={})'],['../group__ops.html#gab30fb942bb6ee00bb50da04033f949a9',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, StreamOrDevice s={})'],['../group__ops.html#ga8694ec137165752cb6d8a36a6b7c3436',1,'mlx::core::roll(const array &a, int shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga665f502ecc96f1f4467556b784abf9ae',1,'mlx::core::roll(const array &a, int shift, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga4c335f86ff2a05daf8dd8aedc628aa59',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, int axis, StreamOrDevice s={})'],['../group__ops.html#ga6c6fe942a8f7c573a1cb2342566f74d2',1,'mlx::core::roll(const array &a, const std::vector< int > &shift, const std::vector< int > &axes, StreamOrDevice s={})']]], + ['rope_66',['RoPE',['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a031fa27aeba94cfa5ccc633137a12163',1,'mlx::core::fast::RoPE']]], + ['rope_67',['rope',['../namespacemlx_1_1core_1_1fast.html#a534ef357eae24892684a6ecd866d3fab',1,'mlx::core::fast']]], + ['rot90_68',['ROT90',['../namespacepocketfft_1_1detail.html#a928bad5278df636ee47402c0a75f64ef',1,'pocketfft::detail']]], + ['rotx90_69',['ROTX90',['../namespacepocketfft_1_1detail.html#ab6a43dc0cec4291e163e68a0875ac501',1,'pocketfft::detail']]], + ['round_70',['Round',['../classmlx_1_1core_1_1_round.html#a1327a359b2aed91f576145a0e70d1dde',1,'mlx::core::Round']]], + ['round_71',['round',['../namespacemetal.html#a46c667e169ff9d51a9204a045305442f',1,'metal::round()'],['../namespacemetal_1_1fast.html#a4cb687257a004726d49e496417eaa40f',1,'metal::fast::round()'],['../namespacemetal_1_1precise.html#a5295ab08055d12534cc3775da855ac12',1,'metal::precise::round()'],['../group__ops.html#ga2d74d43f007a069384e89d8416525331',1,'mlx::core::round(const array &a, int decimals, StreamOrDevice s={})'],['../group__ops.html#gaf18fb7e98bf8cf3b7fbc5e64c988a95b',1,'mlx::core::round(const array &a, StreamOrDevice s={})']]], + ['round_5ferror_72',['round_error',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#afa223448fa4f04c1113a85345dd720c3',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['row_5freduce_5fgeneral_5fdispatch_73',['row_reduce_general_dispatch',['../namespacemlx_1_1core.html#ab1eeca8ec6fa31819ee108fa6ed2c41b',1,'mlx::core']]], + ['row_5freduce_5flooped_74',['row_reduce_looped',['../reduce__row_8h.html#ad98332d74a6824aa7499df3e2f2246ae',1,'reduce_row.h']]], + ['row_5freduce_5fsimple_75',['row_reduce_simple',['../reduce__row_8h.html#ac01d30987668930c8b38900e47b8308b',1,'reduce_row.h']]], + ['row_5freduce_5fsmall_76',['row_reduce_small',['../reduce__row_8h.html#a27e75312086e31f6bd1bbf4b366679da',1,'reduce_row.h']]], + ['rsqrt_77',['rsqrt',['../namespacemetal.html#a1cf4b605c0aa7ff5bfe5e979a16f5157',1,'metal::rsqrt()'],['../namespacemetal_1_1fast.html#aa62097c750f1e4b69d09277f19976ab1',1,'metal::fast::rsqrt()'],['../namespacemetal_1_1precise.html#afb397b477745f12a44423934fa2b05ac',1,'metal::precise::rsqrt()'],['../group__ops.html#ga102f23aa0b0c3d3296a321c694617aa1',1,'mlx::core::rsqrt()']]], + ['run_78',['run',['../struct_g_e_m_v_kernel.html#ac4a7b5011a0ea938ab1949bb1767fc1a',1,'GEMVKernel::run()'],['../struct_g_e_m_v_t_kernel.html#a5d68656832de892f33db939005713927',1,'GEMVTKernel::run()'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a00e55d4a161758350ed7310817d2d2a5',1,'mlx::steel::GEMMKernel::run()']]] ]; diff --git a/docs/build/html/search/functions_13.js b/docs/build/html/search/functions_13.js index c316c83bc..6d8a02002 100644 --- a/docs/build/html/search/functions_13.js +++ b/docs/build/html/search/functions_13.js @@ -33,106 +33,108 @@ var searchData= ['set_5finput_5farray_30',['set_input_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#ab69ff0d7f14b9b59db4df0608193dce4',1,'mlx::core::metal::CommandEncoder']]], ['set_5fmemory_5flimit_31',['set_memory_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a179e3127ef9377ce54295f771c34ba1b',1,'mlx::core::metal::MetalAllocator::set_memory_limit()'],['../namespacemlx_1_1core_1_1metal.html#a3fb2c4a237fa4bfdff798156146c4937',1,'mlx::core::metal::set_memory_limit()']]], ['set_5foutput_5farray_32',['set_output_array',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a6a2e28e542eaa2886041bddd51ff6522',1,'mlx::core::metal::CommandEncoder']]], - ['set_5fsiblings_33',['set_siblings',['../classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1',1,'mlx::core::array']]], - ['set_5fstatus_34',['set_status',['../classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c',1,'mlx::core::array']]], - ['set_5ftracer_35',['set_tracer',['../classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8',1,'mlx::core::array']]], - ['set_5fvalue_36',['set_value',['../classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d',1,'mlx::core::Event']]], - ['set_5fvector_5fbytes_37',['set_vector_bytes',['../namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf',1,'mlx::core::set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, size_t nelems, int idx)'],['../namespacemlx_1_1core.html#ae309cb543dfb0239cfccc53a8ad0408e',1,'mlx::core::set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, int idx)']]], - ['shape_38',['shape',['../classpocketfft_1_1detail_1_1arr__info.html#accada8146cb8d3ab7facb4c1e3413ec0',1,'pocketfft::detail::arr_info::shape() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac601c660c64a4c252aa8be4ae7dfa7a8',1,'pocketfft::detail::arr_info::shape(size_t i) const'],['../classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d',1,'mlx::core::array::shape() const'],['../classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f',1,'mlx::core::array::shape(int dim) const']]], - ['shapes_5fwithout_5freduction_5faxes_39',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], - ['shared_5fbuffer_5fslice_40',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], - ['shutdown_41',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], - ['siblings_42',['siblings',['../classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d',1,'mlx::core::array::siblings() const'],['../classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c',1,'mlx::core::array::siblings()']]], - ['sigmoid_43',['Sigmoid',['../classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b',1,'mlx::core::Sigmoid']]], - ['sigmoid_44',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], - ['sign_45',['Sign',['../classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763',1,'mlx::core::Sign']]], - ['sign_46',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], - ['signal_47',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], - ['signaling_5fnan_48',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['simd_5fbroadcast_49',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], - ['simd_5fexclusive_5fscan_50',['simd_exclusive_scan',['../struct_cum_sum.html#a64d1933942de4df2d44dd90e9e5e4460',1,'CumSum::simd_exclusive_scan()'],['../struct_cum_prod.html#a5b0577295853a48856b84fd4f935dff8',1,'CumProd::simd_exclusive_scan()'],['../struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223',1,'CumProd< bool >::simd_exclusive_scan()'],['../struct_cum_max.html#ae11b67aa6c998e9a01615b2a79af4403',1,'CumMax::simd_exclusive_scan()'],['../struct_cum_min.html#a83e65017ff33018b585c043fb803773b',1,'CumMin::simd_exclusive_scan()']]], - ['simd_5fmax_51',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], - ['simd_5fmin_52',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], - ['simd_5fprefix_5fexclusive_5fproduct_53',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], - ['simd_5fprefix_5fexclusive_5fsum_54',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], - ['simd_5fprefix_5finclusive_5fproduct_55',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], - ['simd_5fprefix_5finclusive_5fsum_56',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], - ['simd_5fproduct_57',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], - ['simd_5fscan_58',['simd_scan',['../struct_cum_sum.html#a83342af06f6a700067e3b451636852d6',1,'CumSum::simd_scan()'],['../struct_cum_prod.html#a860dbf6146de088d07175bd165b74004',1,'CumProd::simd_scan()'],['../struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a',1,'CumProd< bool >::simd_scan()'],['../struct_cum_max.html#adc9ec8bb09b4433d4c2f03022c43d781',1,'CumMax::simd_scan()'],['../struct_cum_min.html#a0a1005d91b1c90e90e2c6dbd6c296649',1,'CumMin::simd_scan()']]], - ['simd_5fshuffle_59',['simd_shuffle',['../namespacemetal.html#a259ed115bc3c58f88eb35830916b26d4',1,'metal']]], - ['simd_5fshuffle_5fand_5ffill_5fdown_60',['simd_shuffle_and_fill_down',['../namespacemetal.html#ae29a06f0eac636ad7af21dea5b04938b',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a0ee6239fa29a5f9ee0201e0dc5ddc8e0',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta)']]], - ['simd_5fshuffle_5fand_5ffill_5fup_61',['simd_shuffle_and_fill_up',['../namespacemetal.html#a1ca14116bf50639b214d8414b5bbaaa6',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a5138d5cdc18139e135707916a243cd8e',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta)']]], - ['simd_5fshuffle_5fdown_62',['simd_shuffle_down',['../namespacemetal.html#af6e2dd7ae087aba6abac4f0350b7611c',1,'metal::simd_shuffle_down()'],['../backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c',1,'simd_shuffle_down(uint64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a0c1e4d782fcc56e1ab5565cef12430dd',1,'simd_shuffle_down(int64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a48ae83a8caf5c74810df60b6c6cdb062',1,'simd_shuffle_down(bool data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ad9a671a5f9aaa729ae7a77026f16bcb0',1,'simd_shuffle_down(complex64_t data, uint16_t delta): utils.h']]], - ['simd_5fshuffle_5frotate_5fdown_63',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], - ['simd_5fshuffle_5frotate_5fup_64',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], - ['simd_5fshuffle_5fup_65',['simd_shuffle_up',['../namespacemetal.html#afe81c5fbde3f4890458b081909242c55',1,'metal']]], - ['simd_5fshuffle_5fxor_66',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], - ['simd_5fsum_67',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], - ['simd_5fxor_68',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], - ['simple_5fiter_69',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html#a1e455c615825bebd5f1f62665027b398',1,'pocketfft::detail::simple_iter']]], - ['sin_70',['Sin',['../classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea',1,'mlx::core::Sin']]], - ['sin_71',['sin',['../namespacepocketfft_1_1detail.html#a07745f4a069f811859308281b2982258',1,'pocketfft::detail::sin()'],['../namespacemetal.html#a619a159ca5f2ddfe3647d3a6bb6e804c',1,'metal::sin()'],['../namespacemetal_1_1fast.html#a3af771cfe7a135104f9d063147dba270',1,'metal::fast::sin()'],['../namespacemetal_1_1precise.html#a71acf77ffd29c56f56afae0195c98a1c',1,'metal::precise::sin()'],['../group__ops.html#gaebf0a73ad3732fba39df37826c235692',1,'mlx::core::sin()']]], - ['sincos_5f2pibyn_72',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a88518f2182d854c557edacd4ab8cbc40',1,'pocketfft::detail::sincos_2pibyn']]], - ['sinh_73',['Sinh',['../classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96',1,'mlx::core::Sinh']]], - ['sinh_74',['sinh',['../namespacemetal.html#a83ba4235ae350ab8880a9df09158620b',1,'metal::sinh()'],['../namespacemetal_1_1fast.html#a990d90b3440e38d1fb4ff5065c6c189b',1,'metal::fast::sinh()'],['../namespacemetal_1_1precise.html#abc8f4f59dd6e7204ab5d84f0af96331c',1,'metal::precise::sinh()'],['../group__ops.html#gaf532375c6563dbd6e329bdedf0224dd7',1,'mlx::core::sinh()']]], - ['sinpi_75',['sinpi',['../namespacemetal.html#ae9655f7fa2ba6c0625ca25fbb278e269',1,'metal::sinpi()'],['../namespacemetal_1_1fast.html#ab07a32fe544aa304577d29e0251e87b2',1,'metal::fast::sinpi()'],['../namespacemetal_1_1precise.html#a78b17dab93519d9c82c2575dafec49c9',1,'metal::precise::sinpi()']]], - ['size_76',['size',['../classpocketfft_1_1detail_1_1arr.html#a95bca00060957f540ff25b69632c6952',1,'pocketfft::detail::arr::size()'],['../classpocketfft_1_1detail_1_1arr__info.html#a003a7106f7fa59a3c55ac1f0116313a5',1,'pocketfft::detail::arr_info::size()'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6',1,'mlx::core::allocator::Allocator::size()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b',1,'mlx::core::allocator::CommonAllocator::size()'],['../classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6',1,'mlx::core::array::size()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a51f6587e8065be16f0418ca42a796e05',1,'mlx::core::metal::MetalAllocator::size()'],['../structmlx_1_1core_1_1distributed_1_1_group.html#abd96a09217e3d1bcc522888257d22cef',1,'mlx::core::distributed::Group::size()'],['../structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971',1,'mlx::core::Dtype::size()']]], - ['size_5fof_77',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], - ['slice_78',['Slice',['../classmlx_1_1core_1_1_slice.html#a8a38feb7bb6b72bdeebb83f053e2fd7f',1,'mlx::core::Slice']]], - ['slice_79',['slice',['../group__ops.html#gad66135407dbb41b3c5d2cdfd51226c21',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#gaa97ce866c5e38b92b093e9321affcc57',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], - ['slice_5fgpu_80',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], - ['slice_5fupdate_81',['slice_update',['../group__ops.html#ga3875660e4ce2c8add8bfcf8144078708',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#ga03ffbbb4d989a463ef43f41ebf7eabef',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], - ['sliceupdate_82',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html#aa30a7f22f557c56e1a2b5fcf44488990',1,'mlx::core::SliceUpdate']]], - ['softmax_83',['Softmax',['../classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb',1,'mlx::core::Softmax']]], - ['softmax_84',['softmax',['../namespacemlx_1_1core_1_1metal.html#a4fe937c2c584fd646926057f31d54ca6',1,'mlx::core::metal::softmax()'],['../group__ops.html#ga7e9bb08b43c8fd0444b7d3c9e09dc1c6',1,'mlx::core::softmax(const array &a, const std::vector< int > &axes, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga1ae3614d07d873892a530d14c3857d0b',1,'mlx::core::softmax(const array &a, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga06f570d73716a24303e6de3aaba4457b',1,'mlx::core::softmax(const array &a, int axis, bool precise=false, StreamOrDevice s={})']]], - ['softmax_5fexp_85',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], - ['softmax_5flooped_86',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], - ['softmax_5fsingle_5frow_87',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], - ['sort_88',['Sort',['../classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44',1,'mlx::core::Sort']]], - ['sort_89',['sort',['../struct_thread_sort.html#ad9ab3e6b47f7e9b91c0f3b773596986d',1,'ThreadSort::sort()'],['../struct_block_merge_sort.html#acc970f5eb963f7f2010f5ae5ea8b8bc0',1,'BlockMergeSort::sort()'],['../namespacemlx_1_1core_1_1metal.html#ab77c9a9ecaeeab8c66b712862777c24b',1,'mlx::core::metal::sort()'],['../group__ops.html#ga7fb616054665b3c2d61fa234f501f079',1,'mlx::core::sort(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaae1bc47aa737f705d0e5884270063fea',1,'mlx::core::sort(const array &a, int axis, StreamOrDevice s={})']]], - ['special_5fmul_90',['special_mul',['../structpocketfft_1_1detail_1_1cmplx.html#a2e79f5c73c1d926361ad126cf57c8874',1,'pocketfft::detail::cmplx::special_mul()'],['../namespacepocketfft_1_1detail.html#a8da1f3d4a0b712a0285529f24187fe76',1,'pocketfft::detail::special_mul()']]], - ['split_91',['Split',['../classmlx_1_1core_1_1_split.html#a897c746ecfdff5119cc5ae3f20499385',1,'mlx::core::Split']]], - ['split_92',['split',['../structmlx_1_1core_1_1distributed_1_1_group.html#abbf40f8979488806bc5bca9ecc4130e9',1,'mlx::core::distributed::Group::split()'],['../group__ops.html#ga7534290bceab5fb3831a05d67bebce7d',1,'mlx::core::split(const array &a, int num_splits, int axis, StreamOrDevice s={})'],['../group__ops.html#ga56882d24e5fde59c266774624c892d41',1,'mlx::core::split(const array &a, int num_splits, StreamOrDevice s={})'],['../group__ops.html#ga2cfcb1a53924882e30476c9016c5de74',1,'mlx::core::split(const array &a, const std::vector< int > &indices, int axis, StreamOrDevice s={})'],['../group__ops.html#gac324dfa3e26d3a14a35ab7962e36f0e1',1,'mlx::core::split(const array &a, const std::vector< int > &indices, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a42847b435d037a977592e355eed072af',1,'mlx::core::random::split(const array &key, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a7ec057064c7326c41b536f08178861e5',1,'mlx::core::random::split(const array &key, int num, StreamOrDevice s={})']]], - ['sqrt_93',['Sqrt',['../classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29',1,'mlx::core::Sqrt']]], - ['sqrt_94',['sqrt',['../namespacepocketfft_1_1detail.html#a774f8b73f28259d4276bd188b540a3e3',1,'pocketfft::detail::sqrt()'],['../namespacemetal.html#ab3f4d4852ca0e591104fbd8e5b50d31b',1,'metal::sqrt()'],['../namespacemetal_1_1fast.html#a4218a85c7d8a74cb8055b4755205627e',1,'metal::fast::sqrt()'],['../namespacemetal_1_1precise.html#acb213467361cd2cab93a8d5ea1aa5bfd',1,'metal::precise::sqrt()'],['../group__ops.html#ga297f853b3d90ec8ae81263977ba2ddb1',1,'mlx::core::sqrt()']]], - ['square_95',['Square',['../classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4',1,'mlx::core::Square']]], - ['square_96',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], - ['squeeze_97',['squeeze',['../group__ops.html#ga710daa7ec721bd4d3f326082cb195576',1,'mlx::core::squeeze(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga700dd51b77379a3d2260a55783e8ebf3',1,'mlx::core::squeeze(const array &a, int axis, StreamOrDevice s={})'],['../group__ops.html#ga58bad3c61fd85b95927a987ba1cf5dad',1,'mlx::core::squeeze(const array &a, StreamOrDevice s={})']]], - ['stack_98',['stack',['../group__ops.html#gaf8f2ec2b98a4b59eca73d7471df6e032',1,'mlx::core::stack(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#ga82216209dce901296fc737fe8efa5c94',1,'mlx::core::stack(const std::vector< array > &arrays, StreamOrDevice s={})']]], - ['start_5fcapture_99',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], - ['start_5fconcurrent_100',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], - ['status_101',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], - ['std_102',['std',['../group__ops.html#ga2a466024f8061febc0a64be557644cb0',1,'mlx::core::std(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#gafdcb04d77c64405a3990078a77dd984c',1,'mlx::core::std(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7f649970bf38b987b6ef847054f3c2f8',1,'mlx::core::std(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga62721a206df671ef5797449eea97af9f',1,'mlx::core::std(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], - ['steel_5fconv_103',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], - ['steel_5fconv_5fgeneral_104',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], - ['steel_5fgemm_5ffused_105',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], - ['steel_5fgemm_5fmasked_106',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], - ['steel_5fgemm_5fsplitk_107',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], - ['steel_5fmatmul_108',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], - ['steel_5fmatmul_5fregular_109',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], - ['step_110',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], - ['stop_5fcapture_111',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], - ['stop_5fgradient_112',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], - ['stopgradient_113',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f',1,'mlx::core::StopGradient']]], - ['store_5fresult_114',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a85c57ad4092079f068683cb525fb08ee',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7cf757e9785e23997b1417e024559ed3',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, thread const Epilogue &epilogue_op) const']]], - ['store_5fresult_5fsafe_115',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#af94bafeb285c240051e86418fccb89fe',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7b324c992750ed3aaa4c485f15b2f391',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const Epilogue &epilogue_op) const']]], - ['stream_116',['Stream',['../structmlx_1_1core_1_1_stream.html#a7f0815ff4886da74cbbff5f93d82dd3e',1,'mlx::core::Stream']]], - ['stream_117',['stream',['../classmlx_1_1core_1_1_event.html#a193143bad31b68c699fa27f135b45614',1,'mlx::core::Event::stream()'],['../classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a',1,'mlx::core::Primitive::stream()']]], - ['streamcontext_118',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html#a89d803151e9d7dce29382aa83d5c6ef1',1,'mlx::core::StreamContext']]], - ['streamthread_119',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#ac528109a11abcb82e6e221c5efa4493c',1,'mlx::core::scheduler::StreamThread']]], - ['stride_120',['stride',['../classpocketfft_1_1detail_1_1arr__info.html#a9d10aa83a1117e75d36f7396b8c2a093',1,'pocketfft::detail::arr_info::stride() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac1f6a9bd6703eceef6003f5f6315d39b',1,'pocketfft::detail::arr_info::stride(size_t i) const']]], - ['stride_5fin_121',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], - ['stride_5fout_122',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], - ['strided_5freduce_5fgeneral_5fdispatch_123',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], - ['strided_5fscan_124',['strided_scan',['../kernels_2scan_8h.html#aef54ac73154fb9024eda760a9dfde607',1,'scan.h']]], - ['strides_125',['strides',['../classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b',1,'mlx::core::array::strides() const'],['../classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2',1,'mlx::core::array::strides(int dim) const']]], - ['submit_126',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], - ['subtract_127',['Subtract',['../classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c',1,'mlx::core::Subtract']]], - ['subtract_128',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], - ['sum_129',['sum',['../group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6',1,'mlx::core::sum(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3627754d7868487bdab1bd83f05d9c81',1,'mlx::core::sum(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaccd0a6be2c5b5128fdc2d87b5c8e67f4',1,'mlx::core::sum(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafcd39b0bf39a56c26a967981c7ab8a8d',1,'mlx::core::sum(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], - ['svd_130',['SVD',['../classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1',1,'mlx::core::SVD']]], - ['svd_131',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], - ['swapaxes_132',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], - ['swizzle_133',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle']]], - ['synchronize_134',['synchronize',['../namespacemlx_1_1core.html#a14287949d82ffefad0306cef5eb5f9e4',1,'mlx::core::synchronize()'],['../namespacemlx_1_1core.html#a6648a71937b055e5ff513d98056c2fb5',1,'mlx::core::synchronize(Stream)']]] + ['set_5fresidency_5fset_33',['set_residency_set',['../classmlx_1_1core_1_1metal_1_1_device.html#a03a2f0c712660a1bd437cb16e4aba79f',1,'mlx::core::metal::Device']]], + ['set_5fsiblings_34',['set_siblings',['../classmlx_1_1core_1_1array.html#a8fccbe7a4edfd8cca168161124e263b1',1,'mlx::core::array']]], + ['set_5fstatus_35',['set_status',['../classmlx_1_1core_1_1array.html#a63598018999b49f1340b183cb303f05c',1,'mlx::core::array']]], + ['set_5ftracer_36',['set_tracer',['../classmlx_1_1core_1_1array.html#af26e6be1a9e6239471a4c24310c0c7c8',1,'mlx::core::array']]], + ['set_5fvalue_37',['set_value',['../classmlx_1_1core_1_1_event.html#a0d077b11f4b28f882b42440b7ac6d40d',1,'mlx::core::Event']]], + ['set_5fvector_5fbytes_38',['set_vector_bytes',['../namespacemlx_1_1core.html#a62340bbaa8b216539688a60adcb568bf',1,'mlx::core::set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, size_t nelems, int idx)'],['../namespacemlx_1_1core.html#ae309cb543dfb0239cfccc53a8ad0408e',1,'mlx::core::set_vector_bytes(CommandEncoder &enc, const std::vector< T > &vec, int idx)']]], + ['set_5fwired_5flimit_39',['set_wired_limit',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a84fa0347da18055bc13ba0a5c4b57253',1,'mlx::core::metal::MetalAllocator::set_wired_limit()'],['../namespacemlx_1_1core_1_1metal.html#a31eab4828d31d292bc84e07b0d961e1e',1,'mlx::core::metal::set_wired_limit()']]], + ['shape_40',['shape',['../classpocketfft_1_1detail_1_1arr__info.html#accada8146cb8d3ab7facb4c1e3413ec0',1,'pocketfft::detail::arr_info::shape() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac601c660c64a4c252aa8be4ae7dfa7a8',1,'pocketfft::detail::arr_info::shape(size_t i) const'],['../classmlx_1_1core_1_1array.html#a4a2a2c8a4a5beafd723fc13f2055d55d',1,'mlx::core::array::shape() const'],['../classmlx_1_1core_1_1array.html#a51ed0c45666264dc172d06fba159eb8f',1,'mlx::core::array::shape(int dim) const']]], + ['shapes_5fwithout_5freduction_5faxes_41',['shapes_without_reduction_axes',['../namespacemlx_1_1core.html#a44c3ea6db6553c3f6552b9ba64a69494',1,'mlx::core']]], + ['shared_5fbuffer_5fslice_42',['shared_buffer_slice',['../namespacemlx_1_1core.html#aea2a6a4eddfd4cfac89d20786059de2a',1,'mlx::core']]], + ['shutdown_43',['shutdown',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a0c7c29290fde806031c497f24c4ad411',1,'pocketfft::detail::threading::thread_pool']]], + ['siblings_44',['siblings',['../classmlx_1_1core_1_1array.html#acf80fde8f743f65ad5b4be69fcb7a74d',1,'mlx::core::array::siblings() const'],['../classmlx_1_1core_1_1array.html#a7263f23e70a580a9bc2129fbcde36e6c',1,'mlx::core::array::siblings()']]], + ['sigmoid_45',['Sigmoid',['../classmlx_1_1core_1_1_sigmoid.html#a47eca99113ec19f0eb60b6a0472c592b',1,'mlx::core::Sigmoid']]], + ['sigmoid_46',['sigmoid',['../group__ops.html#ga708abf8f79609cd6831db7c38cafac0e',1,'mlx::core']]], + ['sign_47',['Sign',['../classmlx_1_1core_1_1_sign.html#afe951e50907bc23a601ec5fa9eae5763',1,'mlx::core::Sign']]], + ['sign_48',['sign',['../group__ops.html#ga20f1a1a8c0cd6206485f9363f3915faa',1,'mlx::core']]], + ['signal_49',['signal',['../classmlx_1_1core_1_1_event.html#a65a858445506a61be5889ae0e3651b89',1,'mlx::core::Event']]], + ['signaling_5fnan_50',['signaling_NaN',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#ad1f76a43c7d51a3765174aa6e0dd9f80',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['simd_5fbroadcast_51',['simd_broadcast',['../namespacemetal.html#a498f1e85107eb5f01ba4435977f8efe0',1,'metal']]], + ['simd_5fexclusive_5fscan_52',['simd_exclusive_scan',['../struct_cum_prod_3_01bool_01_4.html#a1a86e9398bae24182b7be0a6577bf223',1,'CumProd< bool >::simd_exclusive_scan()'],['../struct_cum_max.html#ae11b67aa6c998e9a01615b2a79af4403',1,'CumMax::simd_exclusive_scan()'],['../struct_cum_min.html#a83e65017ff33018b585c043fb803773b',1,'CumMin::simd_exclusive_scan()']]], + ['simd_5fmax_53',['simd_max',['../namespacemetal.html#a048cad0aca52cb737ebf103e76bd1c49',1,'metal']]], + ['simd_5fmin_54',['simd_min',['../namespacemetal.html#ae9e2a23e00724ba2d7868bc4112b386b',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fproduct_55',['simd_prefix_exclusive_product',['../namespacemetal.html#a5ca40242390b632f737e29636829b2e4',1,'metal']]], + ['simd_5fprefix_5fexclusive_5fsum_56',['simd_prefix_exclusive_sum',['../namespacemetal.html#abfbb70c7471f28bf7ff36a612ad014b2',1,'metal']]], + ['simd_5fprefix_5finclusive_5fproduct_57',['simd_prefix_inclusive_product',['../namespacemetal.html#a6ca6a7e1996228fa536e969e9e45c446',1,'metal']]], + ['simd_5fprefix_5finclusive_5fsum_58',['simd_prefix_inclusive_sum',['../namespacemetal.html#a567acb18199ac0107712eb8cb8aeb8e9',1,'metal']]], + ['simd_5fproduct_59',['simd_product',['../namespacemetal.html#ac6e883a04e2265a9790d7db76059e1b4',1,'metal']]], + ['simd_5fscan_60',['simd_scan',['../struct_cum_prod_3_01bool_01_4.html#abeb5ec4237b330e7219f4e881cf10d7a',1,'CumProd< bool >::simd_scan()'],['../struct_cum_max.html#adc9ec8bb09b4433d4c2f03022c43d781',1,'CumMax::simd_scan()'],['../struct_cum_min.html#a0a1005d91b1c90e90e2c6dbd6c296649',1,'CumMin::simd_scan()']]], + ['simd_5fshuffle_61',['simd_shuffle',['../namespacemetal.html#a259ed115bc3c58f88eb35830916b26d4',1,'metal::simd_shuffle()'],['../backend_2metal_2kernels_2utils_8h.html#a71986ecdd7d18f975dd22c3df7421ce2',1,'simd_shuffle(uint64_t data, uint16_t lane): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a3bdbdfeb7a1dde40cd3ce1df8d9213b5',1,'simd_shuffle(int64_t data, uint16_t lane): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ab4cbcdb054f9165130da91a3334da0cf',1,'simd_shuffle(bool data, uint16_t lane): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ab8175b66bcc080fb89f738143568c30b',1,'simd_shuffle(complex64_t data, uint16_t lane): utils.h']]], + ['simd_5fshuffle_5fand_5ffill_5fdown_62',['simd_shuffle_and_fill_down',['../namespacemetal.html#ae29a06f0eac636ad7af21dea5b04938b',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a0ee6239fa29a5f9ee0201e0dc5ddc8e0',1,'metal::simd_shuffle_and_fill_down(bfloat16_t data, bfloat16_t filling_data, ushort delta)']]], + ['simd_5fshuffle_5fand_5ffill_5fup_63',['simd_shuffle_and_fill_up',['../namespacemetal.html#a1ca14116bf50639b214d8414b5bbaaa6',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta, ushort modulo)'],['../namespacemetal.html#a5138d5cdc18139e135707916a243cd8e',1,'metal::simd_shuffle_and_fill_up(bfloat16_t data, bfloat16_t filling_data, ushort delta)'],['../backend_2metal_2kernels_2utils_8h.html#a5862d5ea154c9b76cf56a630cf6385b4',1,'simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a7bb56415c5412a6a26f70a990915f064',1,'simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ad55bd473647f2c6c68e65e5312c132d1',1,'simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a94e02a6ae8c39cbf4cb23aa44df9dbd5',1,'simd_shuffle_and_fill_up(complex64_t data, complex64_t filling, uint16_t delta): utils.h']]], + ['simd_5fshuffle_5fdown_64',['simd_shuffle_down',['../namespacemetal.html#af6e2dd7ae087aba6abac4f0350b7611c',1,'metal::simd_shuffle_down()'],['../backend_2metal_2kernels_2utils_8h.html#aba6279624b1d30c525efee856a222b5c',1,'simd_shuffle_down(uint64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a0c1e4d782fcc56e1ab5565cef12430dd',1,'simd_shuffle_down(int64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a48ae83a8caf5c74810df60b6c6cdb062',1,'simd_shuffle_down(bool data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ad9a671a5f9aaa729ae7a77026f16bcb0',1,'simd_shuffle_down(complex64_t data, uint16_t delta): utils.h']]], + ['simd_5fshuffle_5frotate_5fdown_65',['simd_shuffle_rotate_down',['../namespacemetal.html#a4bb203647a421032db47e73cd649841b',1,'metal']]], + ['simd_5fshuffle_5frotate_5fup_66',['simd_shuffle_rotate_up',['../namespacemetal.html#a729b22077d6c944491a6027c18ea80c9',1,'metal']]], + ['simd_5fshuffle_5fup_67',['simd_shuffle_up',['../namespacemetal.html#afe81c5fbde3f4890458b081909242c55',1,'metal::simd_shuffle_up()'],['../backend_2metal_2kernels_2utils_8h.html#a39e436e0a942912266aae7e0bd82d7c0',1,'simd_shuffle_up(uint64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a617f3857caf33c569afa6148135f8b7a',1,'simd_shuffle_up(int64_t data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#ae0f5c42020275a588234e69f1eb7a485',1,'simd_shuffle_up(bool data, uint16_t delta): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a92b455bac6a23af51c35ea83de2383eb',1,'simd_shuffle_up(complex64_t data, uint16_t delta): utils.h']]], + ['simd_5fshuffle_5fxor_68',['simd_shuffle_xor',['../namespacemetal.html#a5017efc9605e069cfb507137cd1a1852',1,'metal']]], + ['simd_5fsum_69',['simd_sum',['../namespacemetal.html#a85181e37a00cb4a4217f1bb25389bce5',1,'metal']]], + ['simd_5fxor_70',['simd_xor',['../namespacemetal.html#a1308decbf2d5c33d34d6be523ea1c30f',1,'metal']]], + ['simple_5fiter_71',['simple_iter',['../classpocketfft_1_1detail_1_1simple__iter.html#a1e455c615825bebd5f1f62665027b398',1,'pocketfft::detail::simple_iter']]], + ['sin_72',['Sin',['../classmlx_1_1core_1_1_sin.html#a10d1ecc0ca96e79cdf55b57073d126ea',1,'mlx::core::Sin']]], + ['sin_73',['sin',['../namespacepocketfft_1_1detail.html#a07745f4a069f811859308281b2982258',1,'pocketfft::detail::sin()'],['../namespacemetal.html#a619a159ca5f2ddfe3647d3a6bb6e804c',1,'metal::sin()'],['../namespacemetal_1_1fast.html#a3af771cfe7a135104f9d063147dba270',1,'metal::fast::sin()'],['../namespacemetal_1_1precise.html#a71acf77ffd29c56f56afae0195c98a1c',1,'metal::precise::sin()'],['../group__ops.html#gaebf0a73ad3732fba39df37826c235692',1,'mlx::core::sin()']]], + ['sincos_5f2pibyn_74',['sincos_2pibyn',['../classpocketfft_1_1detail_1_1sincos__2pibyn.html#a88518f2182d854c557edacd4ab8cbc40',1,'pocketfft::detail::sincos_2pibyn']]], + ['sinh_75',['Sinh',['../classmlx_1_1core_1_1_sinh.html#a4a4f6814d403c2ce5d6c574b0dca3c96',1,'mlx::core::Sinh']]], + ['sinh_76',['sinh',['../namespacemetal.html#a83ba4235ae350ab8880a9df09158620b',1,'metal::sinh()'],['../namespacemetal_1_1fast.html#a990d90b3440e38d1fb4ff5065c6c189b',1,'metal::fast::sinh()'],['../namespacemetal_1_1precise.html#abc8f4f59dd6e7204ab5d84f0af96331c',1,'metal::precise::sinh()'],['../group__ops.html#gaf532375c6563dbd6e329bdedf0224dd7',1,'mlx::core::sinh()']]], + ['sinpi_77',['sinpi',['../namespacemetal.html#ae9655f7fa2ba6c0625ca25fbb278e269',1,'metal::sinpi()'],['../namespacemetal_1_1fast.html#ab07a32fe544aa304577d29e0251e87b2',1,'metal::fast::sinpi()'],['../namespacemetal_1_1precise.html#a78b17dab93519d9c82c2575dafec49c9',1,'metal::precise::sinpi()']]], + ['size_78',['size',['../classpocketfft_1_1detail_1_1arr.html#a95bca00060957f540ff25b69632c6952',1,'pocketfft::detail::arr::size()'],['../classpocketfft_1_1detail_1_1arr__info.html#a003a7106f7fa59a3c55ac1f0116313a5',1,'pocketfft::detail::arr_info::size()'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2adf9a9c968f113dde830cc0dc27dcc6',1,'mlx::core::allocator::Allocator::size()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#aafa92e8310db089b1ac72b840777e26b',1,'mlx::core::allocator::CommonAllocator::size()'],['../classmlx_1_1core_1_1array.html#a598f87161926d9e0b516860f0ea2c8f6',1,'mlx::core::array::size()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a51f6587e8065be16f0418ca42a796e05',1,'mlx::core::metal::MetalAllocator::size()'],['../structmlx_1_1core_1_1distributed_1_1_group.html#abd96a09217e3d1bcc522888257d22cef',1,'mlx::core::distributed::Group::size()'],['../structmlx_1_1core_1_1_dtype.html#ab54051563d85212c7f0f049166bc9971',1,'mlx::core::Dtype::size()']]], + ['size_5fof_79',['size_of',['../namespacemlx_1_1core.html#add4794cc0ffe5d717fc146084a235d95',1,'mlx::core']]], + ['slice_80',['Slice',['../classmlx_1_1core_1_1_slice.html#a8a38feb7bb6b72bdeebb83f053e2fd7f',1,'mlx::core::Slice']]], + ['slice_81',['slice',['../group__ops.html#gad66135407dbb41b3c5d2cdfd51226c21',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#gaa97ce866c5e38b92b093e9321affcc57',1,'mlx::core::slice(const array &a, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], + ['slice_5fgpu_82',['slice_gpu',['../namespacemlx_1_1core.html#a59048c5ff114c101a496bf33f62e3de9',1,'mlx::core']]], + ['slice_5fupdate_83',['slice_update',['../group__ops.html#ga3875660e4ce2c8add8bfcf8144078708',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, std::vector< int > strides, StreamOrDevice s={})'],['../group__ops.html#ga03ffbbb4d989a463ef43f41ebf7eabef',1,'mlx::core::slice_update(const array &src, const array &update, std::vector< int > start, std::vector< int > stop, StreamOrDevice s={})']]], + ['sliceupdate_84',['SliceUpdate',['../classmlx_1_1core_1_1_slice_update.html#aa30a7f22f557c56e1a2b5fcf44488990',1,'mlx::core::SliceUpdate']]], + ['softmax_85',['Softmax',['../classmlx_1_1core_1_1_softmax.html#a4ec686aac4e06f0dfe2cbd6801af40eb',1,'mlx::core::Softmax']]], + ['softmax_86',['softmax',['../namespacemlx_1_1core_1_1metal.html#a4fe937c2c584fd646926057f31d54ca6',1,'mlx::core::metal::softmax()'],['../group__ops.html#ga7e9bb08b43c8fd0444b7d3c9e09dc1c6',1,'mlx::core::softmax(const array &a, const std::vector< int > &axes, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga1ae3614d07d873892a530d14c3857d0b',1,'mlx::core::softmax(const array &a, bool precise=false, StreamOrDevice s={})'],['../group__ops.html#ga06f570d73716a24303e6de3aaba4457b',1,'mlx::core::softmax(const array &a, int axis, bool precise=false, StreamOrDevice s={})']]], + ['softmax_5fexp_87',['softmax_exp',['../kernels_2softmax_8h.html#a440d4031ee5e86159a4dd715e44a438b',1,'softmax.h']]], + ['softmax_5flooped_88',['softmax_looped',['../kernels_2softmax_8h.html#a8c47b0924ebfeebcca25f3dd17373276',1,'softmax.h']]], + ['softmax_5fsingle_5frow_89',['softmax_single_row',['../kernels_2softmax_8h.html#a815fe70f879f318e5d6e99acf043f52b',1,'softmax.h']]], + ['sort_90',['Sort',['../classmlx_1_1core_1_1_sort.html#a62943032dbd72e85ceb9b4b7211f4a44',1,'mlx::core::Sort']]], + ['sort_91',['sort',['../struct_thread_sort.html#ad9ab3e6b47f7e9b91c0f3b773596986d',1,'ThreadSort::sort()'],['../struct_block_merge_sort.html#acc970f5eb963f7f2010f5ae5ea8b8bc0',1,'BlockMergeSort::sort()'],['../namespacemlx_1_1core_1_1metal.html#ab77c9a9ecaeeab8c66b712862777c24b',1,'mlx::core::metal::sort()'],['../group__ops.html#ga7fb616054665b3c2d61fa234f501f079',1,'mlx::core::sort(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaae1bc47aa737f705d0e5884270063fea',1,'mlx::core::sort(const array &a, int axis, StreamOrDevice s={})']]], + ['special_5fmul_92',['special_mul',['../structpocketfft_1_1detail_1_1cmplx.html#a2e79f5c73c1d926361ad126cf57c8874',1,'pocketfft::detail::cmplx::special_mul()'],['../namespacepocketfft_1_1detail.html#a8da1f3d4a0b712a0285529f24187fe76',1,'pocketfft::detail::special_mul()']]], + ['split_93',['Split',['../classmlx_1_1core_1_1_split.html#a897c746ecfdff5119cc5ae3f20499385',1,'mlx::core::Split']]], + ['split_94',['split',['../structmlx_1_1core_1_1distributed_1_1_group.html#abbf40f8979488806bc5bca9ecc4130e9',1,'mlx::core::distributed::Group::split()'],['../group__ops.html#ga7534290bceab5fb3831a05d67bebce7d',1,'mlx::core::split(const array &a, int num_splits, int axis, StreamOrDevice s={})'],['../group__ops.html#ga56882d24e5fde59c266774624c892d41',1,'mlx::core::split(const array &a, int num_splits, StreamOrDevice s={})'],['../group__ops.html#ga2cfcb1a53924882e30476c9016c5de74',1,'mlx::core::split(const array &a, const std::vector< int > &indices, int axis, StreamOrDevice s={})'],['../group__ops.html#gac324dfa3e26d3a14a35ab7962e36f0e1',1,'mlx::core::split(const array &a, const std::vector< int > &indices, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a42847b435d037a977592e355eed072af',1,'mlx::core::random::split(const array &key, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1random.html#a7ec057064c7326c41b536f08178861e5',1,'mlx::core::random::split(const array &key, int num, StreamOrDevice s={})']]], + ['sqrt_95',['Sqrt',['../classmlx_1_1core_1_1_sqrt.html#a6682a7c31ca427c9d2c5ddb6a479bf29',1,'mlx::core::Sqrt']]], + ['sqrt_96',['sqrt',['../namespacepocketfft_1_1detail.html#a774f8b73f28259d4276bd188b540a3e3',1,'pocketfft::detail::sqrt()'],['../namespacemetal.html#ab3f4d4852ca0e591104fbd8e5b50d31b',1,'metal::sqrt()'],['../namespacemetal_1_1fast.html#a4218a85c7d8a74cb8055b4755205627e',1,'metal::fast::sqrt()'],['../namespacemetal_1_1precise.html#acb213467361cd2cab93a8d5ea1aa5bfd',1,'metal::precise::sqrt()'],['../group__ops.html#ga297f853b3d90ec8ae81263977ba2ddb1',1,'mlx::core::sqrt()']]], + ['square_97',['Square',['../classmlx_1_1core_1_1_square.html#ab94e28d5c92e6febc1c74e525f730dc4',1,'mlx::core::Square']]], + ['square_98',['square',['../group__ops.html#ga1234e4c39cfa79f19d4bdb5b8ea4d45e',1,'mlx::core']]], + ['squeeze_99',['squeeze',['../group__ops.html#ga710daa7ec721bd4d3f326082cb195576',1,'mlx::core::squeeze(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga700dd51b77379a3d2260a55783e8ebf3',1,'mlx::core::squeeze(const array &a, int axis, StreamOrDevice s={})'],['../group__ops.html#ga58bad3c61fd85b95927a987ba1cf5dad',1,'mlx::core::squeeze(const array &a, StreamOrDevice s={})']]], + ['stack_100',['stack',['../group__ops.html#gaf8f2ec2b98a4b59eca73d7471df6e032',1,'mlx::core::stack(const std::vector< array > &arrays, int axis, StreamOrDevice s={})'],['../group__ops.html#ga82216209dce901296fc737fe8efa5c94',1,'mlx::core::stack(const std::vector< array > &arrays, StreamOrDevice s={})']]], + ['start_5fcapture_101',['start_capture',['../namespacemlx_1_1core_1_1metal.html#aa47cb5651bf3b65c46ab216b7e504d77',1,'mlx::core::metal']]], + ['start_5fconcurrent_102',['start_concurrent',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a48b548a0b15f9d1279c938a1c6167034',1,'mlx::core::metal::CommandEncoder']]], + ['status_103',['status',['../classmlx_1_1core_1_1array.html#a7102659be87e9ef62966696ab9b07dad',1,'mlx::core::array']]], + ['std_104',['std',['../group__ops.html#ga2a466024f8061febc0a64be557644cb0',1,'mlx::core::std(const array &a, bool keepdims, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#gafdcb04d77c64405a3990078a77dd984c',1,'mlx::core::std(const array &a, StreamOrDevice s={})'],['../group__ops.html#ga7f649970bf38b987b6ef847054f3c2f8',1,'mlx::core::std(const array &a, const std::vector< int > &axes, bool keepdims=false, int ddof=0, StreamOrDevice s={})'],['../group__ops.html#ga62721a206df671ef5797449eea97af9f',1,'mlx::core::std(const array &a, int axis, bool keepdims=false, int ddof=0, StreamOrDevice s={})']]], + ['steel_5fconv_105',['steel_conv',['../namespacemlx_1_1core_1_1metal.html#a92f1e559b1121d545746f81ff86eaca1',1,'mlx::core::metal']]], + ['steel_5fconv_5fgeneral_106',['steel_conv_general',['../namespacemlx_1_1core_1_1metal.html#a02edb6a90bdf30f4c9f0d6c25b0267b5',1,'mlx::core::metal']]], + ['steel_5fgemm_5ffused_107',['steel_gemm_fused',['../namespacemlx_1_1core_1_1metal.html#a17764366deed71c160fb26091400a803',1,'mlx::core::metal']]], + ['steel_5fgemm_5fmasked_108',['steel_gemm_masked',['../namespacemlx_1_1core_1_1metal.html#a962272ca73d26c08f76f706a128fd71f',1,'mlx::core::metal']]], + ['steel_5fgemm_5fsplitk_109',['steel_gemm_splitk',['../namespacemlx_1_1core_1_1metal.html#ad0dfd40ba7c09755711ceb731e57a5ac',1,'mlx::core::metal']]], + ['steel_5fmatmul_110',['steel_matmul',['../namespacemlx_1_1core.html#ab43a7633794498e1c6775cca829eb886',1,'mlx::core']]], + ['steel_5fmatmul_5fregular_111',['steel_matmul_regular',['../namespacemlx_1_1core.html#a227588758ccc9ee869dba147e830bb74',1,'mlx::core']]], + ['step_112',['step',['../structmlx_1_1core_1_1_contiguous_iterator.html#ae230bd52b70a0bbdf560090f8a6589ef',1,'mlx::core::ContiguousIterator']]], + ['stop_5fcapture_113',['stop_capture',['../namespacemlx_1_1core_1_1metal.html#ac90714424e36fb01e04550de69b8314f',1,'mlx::core::metal']]], + ['stop_5fgradient_114',['stop_gradient',['../group__ops.html#ga36bc28f1deb2fe668ca9ae1e447b6b1f',1,'mlx::core']]], + ['stopgradient_115',['StopGradient',['../classmlx_1_1core_1_1_stop_gradient.html#ac70d1ab819d04e00f76bc25aeebaf84f',1,'mlx::core::StopGradient']]], + ['store_5fresult_116',['store_result',['../structmlx_1_1steel_1_1_block_m_m_a.html#a85c57ad4092079f068683cb525fb08ee',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7cf757e9785e23997b1417e024559ed3',1,'mlx::steel::BlockMMA::store_result(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, thread const Epilogue &epilogue_op) const']]], + ['store_5fresult_5fsafe_117',['store_result_safe',['../structmlx_1_1steel_1_1_block_m_m_a.html#af94bafeb285c240051e86418fccb89fe',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, short2 dst_tile_dims) const'],['../structmlx_1_1steel_1_1_block_m_m_a.html#a7b324c992750ed3aaa4c485f15b2f391',1,'mlx::steel::BlockMMA::store_result_safe(device U *D, const int ldd, const device U *C, const int ldc, const int fdc, short2 dst_tile_dims, thread const Epilogue &epilogue_op) const']]], + ['stream_118',['Stream',['../structmlx_1_1core_1_1_stream.html#a7f0815ff4886da74cbbff5f93d82dd3e',1,'mlx::core::Stream']]], + ['stream_119',['stream',['../classmlx_1_1core_1_1_event.html#a193143bad31b68c699fa27f135b45614',1,'mlx::core::Event::stream()'],['../classmlx_1_1core_1_1_primitive.html#a46e6257397a662528f9f831842ac456a',1,'mlx::core::Primitive::stream()']]], + ['streamcontext_120',['StreamContext',['../structmlx_1_1core_1_1_stream_context.html#a89d803151e9d7dce29382aa83d5c6ef1',1,'mlx::core::StreamContext']]], + ['streamthread_121',['StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#ac528109a11abcb82e6e221c5efa4493c',1,'mlx::core::scheduler::StreamThread']]], + ['stride_122',['stride',['../classpocketfft_1_1detail_1_1arr__info.html#a9d10aa83a1117e75d36f7396b8c2a093',1,'pocketfft::detail::arr_info::stride() const'],['../classpocketfft_1_1detail_1_1arr__info.html#ac1f6a9bd6703eceef6003f5f6315d39b',1,'pocketfft::detail::arr_info::stride(size_t i) const']]], + ['stride_5fin_123',['stride_in',['../classpocketfft_1_1detail_1_1multi__iter.html#ac947f03b1cfcb63436a7e61ff020a88c',1,'pocketfft::detail::multi_iter']]], + ['stride_5fout_124',['stride_out',['../classpocketfft_1_1detail_1_1multi__iter.html#a81d71a13bf0b85e556fbb9834167ecc7',1,'pocketfft::detail::multi_iter']]], + ['strided_5freduce_5fgeneral_5fdispatch_125',['strided_reduce_general_dispatch',['../namespacemlx_1_1core.html#aa0332c64ee9965f05026c30a0b778000',1,'mlx::core']]], + ['strided_5fscan_126',['strided_scan',['../scan_8h.html#a7abb6ffb6c3b96b88c2a63cd4cc2f7ae',1,'scan.h']]], + ['strides_127',['strides',['../classmlx_1_1core_1_1array.html#a186cf2648da92584d5c1c8b24e69629b',1,'mlx::core::array::strides() const'],['../classmlx_1_1core_1_1array.html#a919f850ca087d1c40aa68f854cb30be2',1,'mlx::core::array::strides(int dim) const']]], + ['submit_128',['submit',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a8698d49e8f406cdb88006aac6a91f9a4',1,'pocketfft::detail::threading::thread_pool']]], + ['subtract_129',['Subtract',['../classmlx_1_1core_1_1_subtract.html#a834854757394f8de7082af65bf86ed9c',1,'mlx::core::Subtract']]], + ['subtract_130',['subtract',['../group__ops.html#ga196c240d3d0fcbb4713802c485e15133',1,'mlx::core']]], + ['sum_131',['sum',['../group__ops.html#gade905ee92eb6ab7edfc312aeddfbaeb6',1,'mlx::core::sum(const array &a, bool keepdims, StreamOrDevice s={})'],['../group__ops.html#ga3627754d7868487bdab1bd83f05d9c81',1,'mlx::core::sum(const array &a, StreamOrDevice s={})'],['../group__ops.html#gaccd0a6be2c5b5128fdc2d87b5c8e67f4',1,'mlx::core::sum(const array &a, const std::vector< int > &axes, bool keepdims=false, StreamOrDevice s={})'],['../group__ops.html#gafcd39b0bf39a56c26a967981c7ab8a8d',1,'mlx::core::sum(const array &a, int axis, bool keepdims=false, StreamOrDevice s={})']]], + ['svd_132',['SVD',['../classmlx_1_1core_1_1_s_v_d.html#ae89ff583e34fa894cccb8e7a475ee6d1',1,'mlx::core::SVD']]], + ['svd_133',['svd',['../namespacemlx_1_1core_1_1linalg.html#a64364b880e99914cf47bf756fa8dbaf0',1,'mlx::core::linalg']]], + ['swapaxes_134',['swapaxes',['../group__ops.html#gabc46eed81ab6c6247903e4ec0c4ec1fb',1,'mlx::core']]], + ['swizzle_135',['swizzle',['../structmlx_1_1steel_1_1_block_swizzle.html#a98e558d63826d2aaa06d3e65a06d2760',1,'mlx::steel::BlockSwizzle']]], + ['synchronize_136',['synchronize',['../namespacemlx_1_1core.html#a14287949d82ffefad0306cef5eb5f9e4',1,'mlx::core::synchronize()'],['../namespacemlx_1_1core.html#a6648a71937b055e5ff513d98056c2fb5',1,'mlx::core::synchronize(Stream)']]] ]; diff --git a/docs/build/html/search/functions_16.js b/docs/build/html/search/functions_16.js index 087ea02d3..3642762f0 100644 --- a/docs/build/html/search/functions_16.js +++ b/docs/build/html/search/functions_16.js @@ -8,7 +8,7 @@ var searchData= ['view_5',['View',['../classmlx_1_1core_1_1_view.html#ad7eed156c308e9a29a8b41f965ec941e',1,'mlx::core::View']]], ['view_6',['view',['../group__ops.html#ga3602aa91b7b124a0b41ec1b2137a1b02',1,'mlx::core']]], ['vjp_7',['vjp',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#abbf6d1d63dcda207ad7d9eeb4fc36225',1,'mlx::core::distributed::AllReduce::vjp()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#aa5eff6fc128b71220899aab8ab9116fb',1,'mlx::core::distributed::AllGather::vjp()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a74be4bcd0382f7f6400bf73fd5569c91',1,'mlx::core::fast::Custom::vjp()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#aacfbbbc15fcee0a5ce4f519ca3cca5eb',1,'mlx::core::fast::RMSNorm::vjp()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#ae5e1b5df0705a6b1d141691a4396b0b6',1,'mlx::core::fast::LayerNorm::vjp()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#ad999105414badd66c8fd9e069454a533',1,'mlx::core::fast::RoPE::vjp()'],['../classmlx_1_1core_1_1_primitive.html#a1dcb6807326eeab62474c6a0e3836d42',1,'mlx::core::Primitive::vjp()'],['../classmlx_1_1core_1_1_abs.html#aa2dd8ec0989e716b77394ac349b34592',1,'mlx::core::Abs::vjp()'],['../classmlx_1_1core_1_1_add.html#ac28e581862880e24ed2b99bb6a916607',1,'mlx::core::Add::vjp()'],['../classmlx_1_1core_1_1_add_m_m.html#ac1562a37cec6928e01281926ebeb47c6',1,'mlx::core::AddMM::vjp()'],['../classmlx_1_1core_1_1_arc_cos.html#a78e73e5e639d1249c7fe9614bf157c92',1,'mlx::core::ArcCos::vjp()'],['../classmlx_1_1core_1_1_arc_cosh.html#a856c677f16e2b3f2edd2491e35db2d26',1,'mlx::core::ArcCosh::vjp()'],['../classmlx_1_1core_1_1_arc_sin.html#ab4057cd5ef1a8359f97493018e10d3a1',1,'mlx::core::ArcSin::vjp()'],['../classmlx_1_1core_1_1_arc_sinh.html#a7988ee5b9e1e7e498dcab73d61ba147e',1,'mlx::core::ArcSinh::vjp()'],['../classmlx_1_1core_1_1_arc_tan.html#a5fefc3634b96a67ff8ae011a8ee180c2',1,'mlx::core::ArcTan::vjp()'],['../classmlx_1_1core_1_1_arc_tan2.html#a99840c282e37b2b2a9c312e6e8ade1d2',1,'mlx::core::ArcTan2::vjp()'],['../classmlx_1_1core_1_1_arc_tanh.html#a07da5797f7aaf3dfe43bf24e8562ac72',1,'mlx::core::ArcTanh::vjp()'],['../classmlx_1_1core_1_1_arg_partition.html#ade23d014717a0b0235d00073503aeac0',1,'mlx::core::ArgPartition::vjp()'],['../classmlx_1_1core_1_1_arg_reduce.html#a60d272685a373e6fe879416481a1ce1a',1,'mlx::core::ArgReduce::vjp()'],['../classmlx_1_1core_1_1_as_type.html#ac38a4f889311a3b5e5be9a67dcb93e18',1,'mlx::core::AsType::vjp()'],['../classmlx_1_1core_1_1_as_strided.html#a34783284c9b2f5b4a62c3c3ee5dd4062',1,'mlx::core::AsStrided::vjp()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a6131ed1c317ff8700a3e9b13fdaa9d61',1,'mlx::core::BitwiseBinary::vjp()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#a1adf20087ee2f685bf39c2724b8e7120',1,'mlx::core::BlockMaskedMM::vjp()'],['../classmlx_1_1core_1_1_gather_m_m.html#a76c9f27c57354f6230b43944882e1bda',1,'mlx::core::GatherMM::vjp()'],['../classmlx_1_1core_1_1_broadcast.html#a0318847c9be40f00b23907ad56037d18',1,'mlx::core::Broadcast::vjp()'],['../classmlx_1_1core_1_1_ceil.html#ac2f5a2bd84b8f013e5ce688419a88acb',1,'mlx::core::Ceil::vjp()'],['../classmlx_1_1core_1_1_compiled.html#a32462e65c52f84b708188130cc508133',1,'mlx::core::Compiled::vjp()'],['../classmlx_1_1core_1_1_concatenate.html#a8155db9100ec3b8bd0bc94baeaeee3b0',1,'mlx::core::Concatenate::vjp()'],['../classmlx_1_1core_1_1_convolution.html#af8eb9c0c055ad20aa74b547016917690',1,'mlx::core::Convolution::vjp()'],['../classmlx_1_1core_1_1_copy.html#a6c4dee582001e9983e9517485ee37efd',1,'mlx::core::Copy::vjp()'],['../classmlx_1_1core_1_1_cos.html#a51d84113728e651ef9d4a1fe671c4d00',1,'mlx::core::Cos::vjp()'],['../classmlx_1_1core_1_1_cosh.html#a0791abd4305a333fb3b181a5357ce0f4',1,'mlx::core::Cosh::vjp()'],['../classmlx_1_1core_1_1_custom_transforms.html#aa1da36cef632df767cd9809d6cf06209',1,'mlx::core::CustomTransforms::vjp()'],['../classmlx_1_1core_1_1_depends.html#a02996fa45f01f7cb9f37074d5f8ccab0',1,'mlx::core::Depends::vjp()'],['../classmlx_1_1core_1_1_divide.html#ad3af7c70cad22c1a1a75b4a78ef793b6',1,'mlx::core::Divide::vjp()'],['../classmlx_1_1core_1_1_div_mod.html#a8c914a07f666a1d9377a27ed5d55e7c1',1,'mlx::core::DivMod::vjp()'],['../classmlx_1_1core_1_1_select.html#a9b522487b78fceeca7f827cd1c29a9a3',1,'mlx::core::Select::vjp()'],['../classmlx_1_1core_1_1_remainder.html#ab18f7bca1027ae71847a50da0933cec6',1,'mlx::core::Remainder::vjp()'],['../classmlx_1_1core_1_1_equal.html#af3c1bfcd1bf50922fc00e302bb193736',1,'mlx::core::Equal::vjp()'],['../classmlx_1_1core_1_1_erf.html#a1f529e95a42a2d69a8b18979d3ee2909',1,'mlx::core::Erf::vjp()'],['../classmlx_1_1core_1_1_erf_inv.html#a48afff12a58ddefae7ae0245c3580189',1,'mlx::core::ErfInv::vjp()'],['../classmlx_1_1core_1_1_exp.html#a94b9b7d137c3640d290b96c5e8b7e1a8',1,'mlx::core::Exp::vjp()'],['../classmlx_1_1core_1_1_expm1.html#af6ce416169190479c9792bb9cdbe2f43',1,'mlx::core::Expm1::vjp()'],['../classmlx_1_1core_1_1_f_f_t.html#aafc895614a6e368c0e6d64af20d01090',1,'mlx::core::FFT::vjp()'],['../classmlx_1_1core_1_1_floor.html#a589e2cf99b6fd1a5ba85534a2a31338e',1,'mlx::core::Floor::vjp()'],['../classmlx_1_1core_1_1_full.html#a49e76e7a8641f990701abc1b3bd49969',1,'mlx::core::Full::vjp()'],['../classmlx_1_1core_1_1_gather.html#aacf612a8f5f1cdbbfd19707d8d33c426',1,'mlx::core::Gather::vjp()'],['../classmlx_1_1core_1_1_greater.html#a341766a8a7e41d2a1160d35d4e781679',1,'mlx::core::Greater::vjp()'],['../classmlx_1_1core_1_1_greater_equal.html#a62f07a4ac54c708307c82aac0e5693ee',1,'mlx::core::GreaterEqual::vjp()'],['../classmlx_1_1core_1_1_hadamard.html#af4134775427b8998d66f489468b98656',1,'mlx::core::Hadamard::vjp()'],['../classmlx_1_1core_1_1_imag.html#a80da5fdd0fa549eebd7804c0e261848b',1,'mlx::core::Imag::vjp()'],['../classmlx_1_1core_1_1_less.html#aaf205d389b5e602e0814b68f66de8f50',1,'mlx::core::Less::vjp()'],['../classmlx_1_1core_1_1_less_equal.html#aab2aab7590c299885e815c18eedd1028',1,'mlx::core::LessEqual::vjp()'],['../classmlx_1_1core_1_1_log.html#a40885dccfbf928c4d035881be1d49280',1,'mlx::core::Log::vjp()'],['../classmlx_1_1core_1_1_log1p.html#a3113c1d2b4c5e73d0b470f42dc48a880',1,'mlx::core::Log1p::vjp()'],['../classmlx_1_1core_1_1_logical_not.html#af2c3c241cf3910fbaba013c69d052a50',1,'mlx::core::LogicalNot::vjp()'],['../classmlx_1_1core_1_1_logical_and.html#ae42f8fc454577b0fd6410cae9d5f3b54',1,'mlx::core::LogicalAnd::vjp()'],['../classmlx_1_1core_1_1_logical_or.html#a51aed488f52d5031998689af9cb17847',1,'mlx::core::LogicalOr::vjp()'],['../classmlx_1_1core_1_1_log_add_exp.html#ae231af0ed24a93eb647ee58c2d2b20b4',1,'mlx::core::LogAddExp::vjp()'],['../classmlx_1_1core_1_1_matmul.html#a524136cca481598ea20894d85ca66bb0',1,'mlx::core::Matmul::vjp()'],['../classmlx_1_1core_1_1_maximum.html#a7de15d7b28784e24bbfc7e85ddcbcff3',1,'mlx::core::Maximum::vjp()'],['../classmlx_1_1core_1_1_minimum.html#a48a0cbe3a6c4f7473c00e343f63b5204',1,'mlx::core::Minimum::vjp()'],['../classmlx_1_1core_1_1_multiply.html#a74b7556ec03e2c3d3f971666d06f5db1',1,'mlx::core::Multiply::vjp()'],['../classmlx_1_1core_1_1_negative.html#a889585f056d33bda30c30311257af52a',1,'mlx::core::Negative::vjp()'],['../classmlx_1_1core_1_1_not_equal.html#a0361f29f4ae1235bdf3f3304527e2d4b',1,'mlx::core::NotEqual::vjp()'],['../classmlx_1_1core_1_1_pad.html#ad8a7e547644f2717a24322968e971038',1,'mlx::core::Pad::vjp()'],['../classmlx_1_1core_1_1_partition.html#a7110772b6cd2d430a2b825cf5c952ca9',1,'mlx::core::Partition::vjp()'],['../classmlx_1_1core_1_1_power.html#a1453bb8307d6ff33134f1e00263bf082',1,'mlx::core::Power::vjp()'],['../classmlx_1_1core_1_1_quantized_matmul.html#acb975e272b4a88ab232ef7f7c3a2bf26',1,'mlx::core::QuantizedMatmul::vjp()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#ae08a4b7d28902d46f39e66beeb0e23ab',1,'mlx::core::GatherQMM::vjp()'],['../classmlx_1_1core_1_1_real.html#a29f6109339c5141a862ceae72c8b80fe',1,'mlx::core::Real::vjp()'],['../classmlx_1_1core_1_1_reshape.html#ab17294ecc6b5d4e89626fb48c7516365',1,'mlx::core::Reshape::vjp()'],['../classmlx_1_1core_1_1_reduce.html#a684883d2a96315f548ca769510e28e4e',1,'mlx::core::Reduce::vjp()'],['../classmlx_1_1core_1_1_round.html#af8f085e08b7fa8840c52a20b12ca35ce',1,'mlx::core::Round::vjp()'],['../classmlx_1_1core_1_1_scan.html#aaf13f72620b4b5d6a20e1228930e848e',1,'mlx::core::Scan::vjp()'],['../classmlx_1_1core_1_1_scatter.html#a0b51287fba789bb139ed61d40a0c636a',1,'mlx::core::Scatter::vjp()'],['../classmlx_1_1core_1_1_sigmoid.html#aac2f56a4c8362e36a28e232758ca52cf',1,'mlx::core::Sigmoid::vjp()'],['../classmlx_1_1core_1_1_sign.html#aa60ac52edd739fbdf388a997acd01bce',1,'mlx::core::Sign::vjp()'],['../classmlx_1_1core_1_1_sin.html#aedefe550ab4b0687858981bc0bcfbfa0',1,'mlx::core::Sin::vjp()'],['../classmlx_1_1core_1_1_sinh.html#a6b39fdd429bbb4de389e7c904fd561f0',1,'mlx::core::Sinh::vjp()'],['../classmlx_1_1core_1_1_slice.html#a291746a527ff991b66249fb2b54b685f',1,'mlx::core::Slice::vjp()'],['../classmlx_1_1core_1_1_slice_update.html#aedcdc60a0477997a96306c02b66d3f77',1,'mlx::core::SliceUpdate::vjp()'],['../classmlx_1_1core_1_1_softmax.html#abb68c311c45ee422a7c966accde9041b',1,'mlx::core::Softmax::vjp()'],['../classmlx_1_1core_1_1_sort.html#a3a8900dce53ee4eb7a1b83806e629358',1,'mlx::core::Sort::vjp()'],['../classmlx_1_1core_1_1_split.html#a7e8730f9cffa9872fff6f8d577031674',1,'mlx::core::Split::vjp()'],['../classmlx_1_1core_1_1_square.html#abcd9516da7f02dc906368c23b0bca263',1,'mlx::core::Square::vjp()'],['../classmlx_1_1core_1_1_sqrt.html#a08a21bd2c3a016f042d95aca294e68f3',1,'mlx::core::Sqrt::vjp()'],['../classmlx_1_1core_1_1_subtract.html#a3a3322be7c3bcaa0397cf099091df16b',1,'mlx::core::Subtract::vjp()'],['../classmlx_1_1core_1_1_tan.html#a4639836cff03d73c769387d6943e92d7',1,'mlx::core::Tan::vjp()'],['../classmlx_1_1core_1_1_tanh.html#afe7b05e2b36b99c3a1b66f0cd3544e95',1,'mlx::core::Tanh::vjp()'],['../classmlx_1_1core_1_1_transpose.html#ac7805aa29b34afdf8852554f1e759f80',1,'mlx::core::Transpose::vjp()'],['../namespacemlx_1_1core.html#a1b33e2c2e3471420490cf0be2de6de18',1,'mlx::core::vjp(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< array > &primals, const std::vector< array > &cotangents)'],['../namespacemlx_1_1core.html#a2065a11249c3f4356ffd69b7a8c487ff',1,'mlx::core::vjp(const std::function< array(const array &)> &fun, const array &primal, const array &cotangent)']]], - ['vmap_8',['vmap',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a3f2dc71859847ca675ec4bfbe125035a',1,'mlx::core::distributed::AllReduce::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ad532d1d51f089dec3c84799b724ea031',1,'mlx::core::distributed::AllGather::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a5cfb66191b9e8b86649da77af55b0f93',1,'mlx::core::distributed::Send::vmap()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d',1,'mlx::core::fast::Custom::vmap()'],['../classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103',1,'mlx::core::Primitive::vmap()'],['../classmlx_1_1core_1_1_abs.html#a4c9c98f1d71432fd3752ad9a6a8e7f2f',1,'mlx::core::Abs::vmap()'],['../classmlx_1_1core_1_1_add.html#a0e557d4d896153f84a25532562e4c646',1,'mlx::core::Add::vmap()'],['../classmlx_1_1core_1_1_add_m_m.html#a73ce80b3a37ec2523943028d50ebce81',1,'mlx::core::AddMM::vmap()'],['../classmlx_1_1core_1_1_arc_cos.html#a7548e23ace6827674aa6d284d44ccf83',1,'mlx::core::ArcCos::vmap()'],['../classmlx_1_1core_1_1_arc_cosh.html#af8ff78e910a9e485a203e1d3347bd461',1,'mlx::core::ArcCosh::vmap()'],['../classmlx_1_1core_1_1_arc_sin.html#a7cabb1e5a2bda44944378822c671ec82',1,'mlx::core::ArcSin::vmap()'],['../classmlx_1_1core_1_1_arc_sinh.html#a9e72b9751939387c333b5d4e19a37f6d',1,'mlx::core::ArcSinh::vmap()'],['../classmlx_1_1core_1_1_arc_tan.html#a1fb921554544a56498bc54f82e4a0556',1,'mlx::core::ArcTan::vmap()'],['../classmlx_1_1core_1_1_arc_tan2.html#ae02cb9fbf25e93dc1d7fbc9e3fb28634',1,'mlx::core::ArcTan2::vmap()'],['../classmlx_1_1core_1_1_arc_tanh.html#a6ddcae68873559211cb91e7740dfc040',1,'mlx::core::ArcTanh::vmap()'],['../classmlx_1_1core_1_1_arg_partition.html#a441093795bcc31495ab5fbc9957b740a',1,'mlx::core::ArgPartition::vmap()'],['../classmlx_1_1core_1_1_arg_reduce.html#abfec42fa06ea15edaf393593751fb1ba',1,'mlx::core::ArgReduce::vmap()'],['../classmlx_1_1core_1_1_arg_sort.html#a3522bbbe4626a467394c1a8a9d7ac34e',1,'mlx::core::ArgSort::vmap()'],['../classmlx_1_1core_1_1_as_type.html#a7ebaf86fd6cad4a1ecfd7cde1ee0b0cc',1,'mlx::core::AsType::vmap()'],['../classmlx_1_1core_1_1_bitwise_binary.html#aa10be55f05bc1868bf4b375dc475f965',1,'mlx::core::BitwiseBinary::vmap()'],['../classmlx_1_1core_1_1_broadcast.html#aee4c71c2588ad01eb57e10f346cd666f',1,'mlx::core::Broadcast::vmap()'],['../classmlx_1_1core_1_1_ceil.html#ae86819990b43bdb0c2b3a25719b3a7a4',1,'mlx::core::Ceil::vmap()'],['../classmlx_1_1core_1_1_compiled.html#a732e7548f53977b4513bb7f30a04c30d',1,'mlx::core::Compiled::vmap()'],['../classmlx_1_1core_1_1_concatenate.html#a58c54dcf8e4b045d25edd3afc2caffc1',1,'mlx::core::Concatenate::vmap()'],['../classmlx_1_1core_1_1_conjugate.html#a2c7632c8ae0ca07777e23a0a79344e60',1,'mlx::core::Conjugate::vmap()'],['../classmlx_1_1core_1_1_copy.html#a669b10253c15b769d90058d1ad7d0e61',1,'mlx::core::Copy::vmap()'],['../classmlx_1_1core_1_1_cos.html#aec9460daf0131156734013d03b230cd6',1,'mlx::core::Cos::vmap()'],['../classmlx_1_1core_1_1_cosh.html#a1ab2386e7d96219b6e4a525f7dac0406',1,'mlx::core::Cosh::vmap()'],['../classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b',1,'mlx::core::CustomTransforms::vmap()'],['../classmlx_1_1core_1_1_divide.html#a83e7da52831165b3a026e97b63770242',1,'mlx::core::Divide::vmap()'],['../classmlx_1_1core_1_1_div_mod.html#ae709e0fdd83994bd1d156e0d0e6a7942',1,'mlx::core::DivMod::vmap()'],['../classmlx_1_1core_1_1_select.html#a84e80361c8cf02536b4b98098793550f',1,'mlx::core::Select::vmap()'],['../classmlx_1_1core_1_1_remainder.html#a79867e1099a2e3c2d3e87407b2ab6e3d',1,'mlx::core::Remainder::vmap()'],['../classmlx_1_1core_1_1_equal.html#aea9cc3c88924ac824d72c39c2e83b0ca',1,'mlx::core::Equal::vmap()'],['../classmlx_1_1core_1_1_erf.html#abe554f553356654a3e800ba368108aaa',1,'mlx::core::Erf::vmap()'],['../classmlx_1_1core_1_1_erf_inv.html#ad5d7634e8568af8cc4a54a558a48d0e9',1,'mlx::core::ErfInv::vmap()'],['../classmlx_1_1core_1_1_exp.html#a0fcd579fe148b4c3dbc72e514b81bb37',1,'mlx::core::Exp::vmap()'],['../classmlx_1_1core_1_1_expm1.html#aa4caa848b2ea97e71ee3dd33de039296',1,'mlx::core::Expm1::vmap()'],['../classmlx_1_1core_1_1_f_f_t.html#ac32d6cc9b67289124f855ea68a61ede1',1,'mlx::core::FFT::vmap()'],['../classmlx_1_1core_1_1_floor.html#aea4dc79a65774990e775ad49519a5d10',1,'mlx::core::Floor::vmap()'],['../classmlx_1_1core_1_1_full.html#afc57ab6bd9ebdbbf042af54a59785d95',1,'mlx::core::Full::vmap()'],['../classmlx_1_1core_1_1_gather.html#abab0c4c204e66489825ce80d2194a275',1,'mlx::core::Gather::vmap()'],['../classmlx_1_1core_1_1_greater.html#a6d8267411fc4951de781f9e8e6c53aa0',1,'mlx::core::Greater::vmap()'],['../classmlx_1_1core_1_1_greater_equal.html#ab0e1be93eb01b0ce7fa83e953f5e3e1d',1,'mlx::core::GreaterEqual::vmap()'],['../classmlx_1_1core_1_1_hadamard.html#a9f1a172e6246859e813002abe9b8f99c',1,'mlx::core::Hadamard::vmap()'],['../classmlx_1_1core_1_1_imag.html#ace9906672bd88df0573653883d58ecb3',1,'mlx::core::Imag::vmap()'],['../classmlx_1_1core_1_1_less.html#a5fee5956cf087d8405359121aa62ba7e',1,'mlx::core::Less::vmap()'],['../classmlx_1_1core_1_1_less_equal.html#a3d5df21db184f2b7620cda9da1684480',1,'mlx::core::LessEqual::vmap()'],['../classmlx_1_1core_1_1_log.html#a007ddbcf911093231f607a8b9ed5cd49',1,'mlx::core::Log::vmap()'],['../classmlx_1_1core_1_1_log1p.html#a7122576f95ce479926bbbbc690891f71',1,'mlx::core::Log1p::vmap()'],['../classmlx_1_1core_1_1_logical_not.html#a5308a271619ee74df561b0aaf525915d',1,'mlx::core::LogicalNot::vmap()'],['../classmlx_1_1core_1_1_logical_and.html#aacc5f6f53ffc327b7771485e3da2a4e5',1,'mlx::core::LogicalAnd::vmap()'],['../classmlx_1_1core_1_1_logical_or.html#a6e2e77e6aaf47872b2e96b151c32daf3',1,'mlx::core::LogicalOr::vmap()'],['../classmlx_1_1core_1_1_log_add_exp.html#a82190aa1421a9734b6e9480debffac78',1,'mlx::core::LogAddExp::vmap()'],['../classmlx_1_1core_1_1_matmul.html#a3a1c6e70bac300240760fe41a58340c2',1,'mlx::core::Matmul::vmap()'],['../classmlx_1_1core_1_1_maximum.html#ab664918e0d71cfec1318a9879e78c5d3',1,'mlx::core::Maximum::vmap()'],['../classmlx_1_1core_1_1_minimum.html#adab0f31acf68075a0be908d8eb882980',1,'mlx::core::Minimum::vmap()'],['../classmlx_1_1core_1_1_multiply.html#ae7e82c8fc8cbaf4e00c27eb54fac7dbf',1,'mlx::core::Multiply::vmap()'],['../classmlx_1_1core_1_1_negative.html#a1f8a6079e272f1a0599f88a1a8419cf0',1,'mlx::core::Negative::vmap()'],['../classmlx_1_1core_1_1_not_equal.html#ab8b57932f03c8eee664bf89adeaa43b5',1,'mlx::core::NotEqual::vmap()'],['../classmlx_1_1core_1_1_number_of_elements.html#a977d83eae845b8bd8c0b98b48cb1c6c2',1,'mlx::core::NumberOfElements::vmap()'],['../classmlx_1_1core_1_1_pad.html#a85658812a0f3275ba3eb74b7c75686cf',1,'mlx::core::Pad::vmap()'],['../classmlx_1_1core_1_1_partition.html#aa0cc55e4d4d2cb5d129d32832321df2c',1,'mlx::core::Partition::vmap()'],['../classmlx_1_1core_1_1_power.html#a5e22749592413a9adbdc877b03b87c8f',1,'mlx::core::Power::vmap()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a3434394140177b285f971c9ffe7e8763',1,'mlx::core::QuantizedMatmul::vmap()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a13ce5e138ebddb8780a034452f68892f',1,'mlx::core::GatherQMM::vmap()'],['../classmlx_1_1core_1_1_random_bits.html#a0dc12f053c6492f934bc18031412c415',1,'mlx::core::RandomBits::vmap()'],['../classmlx_1_1core_1_1_real.html#a07fbbefb6a1bc1ebd3985b24c36693b6',1,'mlx::core::Real::vmap()'],['../classmlx_1_1core_1_1_reshape.html#ae239dd3c6cab147e4af572dc58204f9d',1,'mlx::core::Reshape::vmap()'],['../classmlx_1_1core_1_1_reduce.html#abab1b5aa01ccad44f213f510c3596b38',1,'mlx::core::Reduce::vmap()'],['../classmlx_1_1core_1_1_round.html#a6fad8799a7982e1ccbe05be7cc38a7fd',1,'mlx::core::Round::vmap()'],['../classmlx_1_1core_1_1_scan.html#a297c7cc89c9bf9d186ebdebb634c7804',1,'mlx::core::Scan::vmap()'],['../classmlx_1_1core_1_1_scatter.html#a696c38b373a7a7c71bc112bd1117e322',1,'mlx::core::Scatter::vmap()'],['../classmlx_1_1core_1_1_sigmoid.html#a12712c23037e38192cbccd2d4b14cc85',1,'mlx::core::Sigmoid::vmap()'],['../classmlx_1_1core_1_1_sign.html#aa7296045907015b4e0ae8a93e5e6e295',1,'mlx::core::Sign::vmap()'],['../classmlx_1_1core_1_1_sin.html#a45533996f3d72d9dd97d4c61cd684fba',1,'mlx::core::Sin::vmap()'],['../classmlx_1_1core_1_1_sinh.html#ae171df22bc34c32e31b8135dc4caa788',1,'mlx::core::Sinh::vmap()'],['../classmlx_1_1core_1_1_slice.html#ae33583b0db22fcfeae34dfe1c0e3eaa2',1,'mlx::core::Slice::vmap()'],['../classmlx_1_1core_1_1_slice_update.html#adbf1c76de6ab2f986758530d351d6fa3',1,'mlx::core::SliceUpdate::vmap()'],['../classmlx_1_1core_1_1_softmax.html#ad22d3dcc71054d3dba529cf2dc981e19',1,'mlx::core::Softmax::vmap()'],['../classmlx_1_1core_1_1_sort.html#abfabb9e625cc0cb9335c7454ed27505c',1,'mlx::core::Sort::vmap()'],['../classmlx_1_1core_1_1_split.html#ab7c40e02a842e83bdb4698608472c7a6',1,'mlx::core::Split::vmap()'],['../classmlx_1_1core_1_1_square.html#a55bf43f878d4741c57a08d5fef472ea5',1,'mlx::core::Square::vmap()'],['../classmlx_1_1core_1_1_sqrt.html#a9d30e306ce08980c27d98c898577017e',1,'mlx::core::Sqrt::vmap()'],['../classmlx_1_1core_1_1_stop_gradient.html#aca680c8befef81da414c4375b11b16b0',1,'mlx::core::StopGradient::vmap()'],['../classmlx_1_1core_1_1_subtract.html#aa98f960e621a767c8a03624fd292f098',1,'mlx::core::Subtract::vmap()'],['../classmlx_1_1core_1_1_tan.html#ae2f67ca2adc83b10009cf28498bf58b7',1,'mlx::core::Tan::vmap()'],['../classmlx_1_1core_1_1_tanh.html#a32df3564c1ecb858c1ba9f855376762f',1,'mlx::core::Tanh::vmap()'],['../classmlx_1_1core_1_1_uniform.html#ad795037d5b1820e98f4268f166609926',1,'mlx::core::Uniform::vmap()'],['../classmlx_1_1core_1_1_view.html#a2230d3e5f434fb2b888de50b529ac121',1,'mlx::core::View::vmap()'],['../classmlx_1_1core_1_1_transpose.html#a5ef848b69def9a246665b67e6e3ffdfe',1,'mlx::core::Transpose::vmap()'],['../classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8',1,'mlx::core::SVD::vmap()'],['../classmlx_1_1core_1_1_inverse.html#a98419b9f0b8a6c9185fe012d523552c2',1,'mlx::core::Inverse::vmap()'],['../classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5',1,'mlx::core::Cholesky::vmap()'],['../namespacemlx_1_1core.html#ac3caec2fa65375ed4c3bf1206177b84c',1,'mlx::core::vmap(const std::function< array(const array &)> &fun, int in_axis=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a8481a3bb4c12c2b7dc6ba576c2be3d0d',1,'mlx::core::vmap(const std::function< array(const array &, const array &)> &fun, int in_axis_a=0, int in_axis_b=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a95a7757e8d18fced38acfc6a3e8d686a',1,'mlx::core::vmap(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< int > &in_axes={}, const std::vector< int > &out_axes={})']]], + ['vmap_8',['vmap',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a3f2dc71859847ca675ec4bfbe125035a',1,'mlx::core::distributed::AllReduce::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ad532d1d51f089dec3c84799b724ea031',1,'mlx::core::distributed::AllGather::vmap()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a5cfb66191b9e8b86649da77af55b0f93',1,'mlx::core::distributed::Send::vmap()'],['../classmlx_1_1core_1_1fast_1_1_custom.html#a7f4c3a4c48c6807faa36fb31e39dad8d',1,'mlx::core::fast::Custom::vmap()'],['../classmlx_1_1core_1_1_primitive.html#ac632b9619dd7a6a0f177bd36202e8103',1,'mlx::core::Primitive::vmap()'],['../classmlx_1_1core_1_1_abs.html#a4c9c98f1d71432fd3752ad9a6a8e7f2f',1,'mlx::core::Abs::vmap()'],['../classmlx_1_1core_1_1_add.html#a0e557d4d896153f84a25532562e4c646',1,'mlx::core::Add::vmap()'],['../classmlx_1_1core_1_1_add_m_m.html#a73ce80b3a37ec2523943028d50ebce81',1,'mlx::core::AddMM::vmap()'],['../classmlx_1_1core_1_1_arc_cos.html#a7548e23ace6827674aa6d284d44ccf83',1,'mlx::core::ArcCos::vmap()'],['../classmlx_1_1core_1_1_arc_cosh.html#af8ff78e910a9e485a203e1d3347bd461',1,'mlx::core::ArcCosh::vmap()'],['../classmlx_1_1core_1_1_arc_sin.html#a7cabb1e5a2bda44944378822c671ec82',1,'mlx::core::ArcSin::vmap()'],['../classmlx_1_1core_1_1_arc_sinh.html#a9e72b9751939387c333b5d4e19a37f6d',1,'mlx::core::ArcSinh::vmap()'],['../classmlx_1_1core_1_1_arc_tan.html#a1fb921554544a56498bc54f82e4a0556',1,'mlx::core::ArcTan::vmap()'],['../classmlx_1_1core_1_1_arc_tan2.html#ae02cb9fbf25e93dc1d7fbc9e3fb28634',1,'mlx::core::ArcTan2::vmap()'],['../classmlx_1_1core_1_1_arc_tanh.html#a6ddcae68873559211cb91e7740dfc040',1,'mlx::core::ArcTanh::vmap()'],['../classmlx_1_1core_1_1_arg_partition.html#a441093795bcc31495ab5fbc9957b740a',1,'mlx::core::ArgPartition::vmap()'],['../classmlx_1_1core_1_1_arg_reduce.html#abfec42fa06ea15edaf393593751fb1ba',1,'mlx::core::ArgReduce::vmap()'],['../classmlx_1_1core_1_1_arg_sort.html#a3522bbbe4626a467394c1a8a9d7ac34e',1,'mlx::core::ArgSort::vmap()'],['../classmlx_1_1core_1_1_as_type.html#a7ebaf86fd6cad4a1ecfd7cde1ee0b0cc',1,'mlx::core::AsType::vmap()'],['../classmlx_1_1core_1_1_bitwise_binary.html#aa10be55f05bc1868bf4b375dc475f965',1,'mlx::core::BitwiseBinary::vmap()'],['../classmlx_1_1core_1_1_broadcast.html#aee4c71c2588ad01eb57e10f346cd666f',1,'mlx::core::Broadcast::vmap()'],['../classmlx_1_1core_1_1_ceil.html#ae86819990b43bdb0c2b3a25719b3a7a4',1,'mlx::core::Ceil::vmap()'],['../classmlx_1_1core_1_1_compiled.html#a732e7548f53977b4513bb7f30a04c30d',1,'mlx::core::Compiled::vmap()'],['../classmlx_1_1core_1_1_concatenate.html#a58c54dcf8e4b045d25edd3afc2caffc1',1,'mlx::core::Concatenate::vmap()'],['../classmlx_1_1core_1_1_conjugate.html#a2c7632c8ae0ca07777e23a0a79344e60',1,'mlx::core::Conjugate::vmap()'],['../classmlx_1_1core_1_1_copy.html#a669b10253c15b769d90058d1ad7d0e61',1,'mlx::core::Copy::vmap()'],['../classmlx_1_1core_1_1_cos.html#aec9460daf0131156734013d03b230cd6',1,'mlx::core::Cos::vmap()'],['../classmlx_1_1core_1_1_cosh.html#a1ab2386e7d96219b6e4a525f7dac0406',1,'mlx::core::Cosh::vmap()'],['../classmlx_1_1core_1_1_custom_transforms.html#a906a2ff30d9c5281fbf1fa927e4c021b',1,'mlx::core::CustomTransforms::vmap()'],['../classmlx_1_1core_1_1_divide.html#a83e7da52831165b3a026e97b63770242',1,'mlx::core::Divide::vmap()'],['../classmlx_1_1core_1_1_div_mod.html#ae709e0fdd83994bd1d156e0d0e6a7942',1,'mlx::core::DivMod::vmap()'],['../classmlx_1_1core_1_1_select.html#a84e80361c8cf02536b4b98098793550f',1,'mlx::core::Select::vmap()'],['../classmlx_1_1core_1_1_remainder.html#a79867e1099a2e3c2d3e87407b2ab6e3d',1,'mlx::core::Remainder::vmap()'],['../classmlx_1_1core_1_1_equal.html#aea9cc3c88924ac824d72c39c2e83b0ca',1,'mlx::core::Equal::vmap()'],['../classmlx_1_1core_1_1_erf.html#abe554f553356654a3e800ba368108aaa',1,'mlx::core::Erf::vmap()'],['../classmlx_1_1core_1_1_erf_inv.html#ad5d7634e8568af8cc4a54a558a48d0e9',1,'mlx::core::ErfInv::vmap()'],['../classmlx_1_1core_1_1_exp.html#a0fcd579fe148b4c3dbc72e514b81bb37',1,'mlx::core::Exp::vmap()'],['../classmlx_1_1core_1_1_expm1.html#aa4caa848b2ea97e71ee3dd33de039296',1,'mlx::core::Expm1::vmap()'],['../classmlx_1_1core_1_1_f_f_t.html#ac32d6cc9b67289124f855ea68a61ede1',1,'mlx::core::FFT::vmap()'],['../classmlx_1_1core_1_1_floor.html#aea4dc79a65774990e775ad49519a5d10',1,'mlx::core::Floor::vmap()'],['../classmlx_1_1core_1_1_full.html#afc57ab6bd9ebdbbf042af54a59785d95',1,'mlx::core::Full::vmap()'],['../classmlx_1_1core_1_1_gather.html#abab0c4c204e66489825ce80d2194a275',1,'mlx::core::Gather::vmap()'],['../classmlx_1_1core_1_1_greater.html#a6d8267411fc4951de781f9e8e6c53aa0',1,'mlx::core::Greater::vmap()'],['../classmlx_1_1core_1_1_greater_equal.html#ab0e1be93eb01b0ce7fa83e953f5e3e1d',1,'mlx::core::GreaterEqual::vmap()'],['../classmlx_1_1core_1_1_hadamard.html#a9f1a172e6246859e813002abe9b8f99c',1,'mlx::core::Hadamard::vmap()'],['../classmlx_1_1core_1_1_imag.html#ace9906672bd88df0573653883d58ecb3',1,'mlx::core::Imag::vmap()'],['../classmlx_1_1core_1_1_less.html#a5fee5956cf087d8405359121aa62ba7e',1,'mlx::core::Less::vmap()'],['../classmlx_1_1core_1_1_less_equal.html#a3d5df21db184f2b7620cda9da1684480',1,'mlx::core::LessEqual::vmap()'],['../classmlx_1_1core_1_1_log.html#a007ddbcf911093231f607a8b9ed5cd49',1,'mlx::core::Log::vmap()'],['../classmlx_1_1core_1_1_log1p.html#a7122576f95ce479926bbbbc690891f71',1,'mlx::core::Log1p::vmap()'],['../classmlx_1_1core_1_1_logical_not.html#a5308a271619ee74df561b0aaf525915d',1,'mlx::core::LogicalNot::vmap()'],['../classmlx_1_1core_1_1_logical_and.html#aacc5f6f53ffc327b7771485e3da2a4e5',1,'mlx::core::LogicalAnd::vmap()'],['../classmlx_1_1core_1_1_logical_or.html#a6e2e77e6aaf47872b2e96b151c32daf3',1,'mlx::core::LogicalOr::vmap()'],['../classmlx_1_1core_1_1_log_add_exp.html#a82190aa1421a9734b6e9480debffac78',1,'mlx::core::LogAddExp::vmap()'],['../classmlx_1_1core_1_1_matmul.html#a3a1c6e70bac300240760fe41a58340c2',1,'mlx::core::Matmul::vmap()'],['../classmlx_1_1core_1_1_maximum.html#ab664918e0d71cfec1318a9879e78c5d3',1,'mlx::core::Maximum::vmap()'],['../classmlx_1_1core_1_1_minimum.html#adab0f31acf68075a0be908d8eb882980',1,'mlx::core::Minimum::vmap()'],['../classmlx_1_1core_1_1_multiply.html#ae7e82c8fc8cbaf4e00c27eb54fac7dbf',1,'mlx::core::Multiply::vmap()'],['../classmlx_1_1core_1_1_negative.html#a1f8a6079e272f1a0599f88a1a8419cf0',1,'mlx::core::Negative::vmap()'],['../classmlx_1_1core_1_1_not_equal.html#ab8b57932f03c8eee664bf89adeaa43b5',1,'mlx::core::NotEqual::vmap()'],['../classmlx_1_1core_1_1_number_of_elements.html#a977d83eae845b8bd8c0b98b48cb1c6c2',1,'mlx::core::NumberOfElements::vmap()'],['../classmlx_1_1core_1_1_pad.html#a85658812a0f3275ba3eb74b7c75686cf',1,'mlx::core::Pad::vmap()'],['../classmlx_1_1core_1_1_partition.html#aa0cc55e4d4d2cb5d129d32832321df2c',1,'mlx::core::Partition::vmap()'],['../classmlx_1_1core_1_1_power.html#a5e22749592413a9adbdc877b03b87c8f',1,'mlx::core::Power::vmap()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a3434394140177b285f971c9ffe7e8763',1,'mlx::core::QuantizedMatmul::vmap()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a13ce5e138ebddb8780a034452f68892f',1,'mlx::core::GatherQMM::vmap()'],['../classmlx_1_1core_1_1_random_bits.html#a0dc12f053c6492f934bc18031412c415',1,'mlx::core::RandomBits::vmap()'],['../classmlx_1_1core_1_1_real.html#a07fbbefb6a1bc1ebd3985b24c36693b6',1,'mlx::core::Real::vmap()'],['../classmlx_1_1core_1_1_reshape.html#ae239dd3c6cab147e4af572dc58204f9d',1,'mlx::core::Reshape::vmap()'],['../classmlx_1_1core_1_1_reduce.html#abab1b5aa01ccad44f213f510c3596b38',1,'mlx::core::Reduce::vmap()'],['../classmlx_1_1core_1_1_round.html#a6fad8799a7982e1ccbe05be7cc38a7fd',1,'mlx::core::Round::vmap()'],['../classmlx_1_1core_1_1_scan.html#a297c7cc89c9bf9d186ebdebb634c7804',1,'mlx::core::Scan::vmap()'],['../classmlx_1_1core_1_1_scatter.html#a696c38b373a7a7c71bc112bd1117e322',1,'mlx::core::Scatter::vmap()'],['../classmlx_1_1core_1_1_sigmoid.html#a12712c23037e38192cbccd2d4b14cc85',1,'mlx::core::Sigmoid::vmap()'],['../classmlx_1_1core_1_1_sign.html#aa7296045907015b4e0ae8a93e5e6e295',1,'mlx::core::Sign::vmap()'],['../classmlx_1_1core_1_1_sin.html#a45533996f3d72d9dd97d4c61cd684fba',1,'mlx::core::Sin::vmap()'],['../classmlx_1_1core_1_1_sinh.html#ae171df22bc34c32e31b8135dc4caa788',1,'mlx::core::Sinh::vmap()'],['../classmlx_1_1core_1_1_slice.html#ae33583b0db22fcfeae34dfe1c0e3eaa2',1,'mlx::core::Slice::vmap()'],['../classmlx_1_1core_1_1_slice_update.html#adbf1c76de6ab2f986758530d351d6fa3',1,'mlx::core::SliceUpdate::vmap()'],['../classmlx_1_1core_1_1_softmax.html#ad22d3dcc71054d3dba529cf2dc981e19',1,'mlx::core::Softmax::vmap()'],['../classmlx_1_1core_1_1_sort.html#abfabb9e625cc0cb9335c7454ed27505c',1,'mlx::core::Sort::vmap()'],['../classmlx_1_1core_1_1_split.html#ab7c40e02a842e83bdb4698608472c7a6',1,'mlx::core::Split::vmap()'],['../classmlx_1_1core_1_1_square.html#a55bf43f878d4741c57a08d5fef472ea5',1,'mlx::core::Square::vmap()'],['../classmlx_1_1core_1_1_sqrt.html#a9d30e306ce08980c27d98c898577017e',1,'mlx::core::Sqrt::vmap()'],['../classmlx_1_1core_1_1_stop_gradient.html#aca680c8befef81da414c4375b11b16b0',1,'mlx::core::StopGradient::vmap()'],['../classmlx_1_1core_1_1_subtract.html#aa98f960e621a767c8a03624fd292f098',1,'mlx::core::Subtract::vmap()'],['../classmlx_1_1core_1_1_tan.html#ae2f67ca2adc83b10009cf28498bf58b7',1,'mlx::core::Tan::vmap()'],['../classmlx_1_1core_1_1_tanh.html#a32df3564c1ecb858c1ba9f855376762f',1,'mlx::core::Tanh::vmap()'],['../classmlx_1_1core_1_1_uniform.html#ad795037d5b1820e98f4268f166609926',1,'mlx::core::Uniform::vmap()'],['../classmlx_1_1core_1_1_view.html#a2230d3e5f434fb2b888de50b529ac121',1,'mlx::core::View::vmap()'],['../classmlx_1_1core_1_1_transpose.html#a5ef848b69def9a246665b67e6e3ffdfe',1,'mlx::core::Transpose::vmap()'],['../classmlx_1_1core_1_1_s_v_d.html#a0366c958f6cdac8d1d9e1a4eda53fae8',1,'mlx::core::SVD::vmap()'],['../classmlx_1_1core_1_1_inverse.html#a98419b9f0b8a6c9185fe012d523552c2',1,'mlx::core::Inverse::vmap()'],['../classmlx_1_1core_1_1_cholesky.html#ab5c3f6199ec3b399c91243a05d116aa5',1,'mlx::core::Cholesky::vmap()'],['../classmlx_1_1core_1_1_eigh.html#ab2f2ea5326e2f6045f9b7250692c240f',1,'mlx::core::Eigh::vmap()'],['../namespacemlx_1_1core.html#ac3caec2fa65375ed4c3bf1206177b84c',1,'mlx::core::vmap(const std::function< array(const array &)> &fun, int in_axis=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a8481a3bb4c12c2b7dc6ba576c2be3d0d',1,'mlx::core::vmap(const std::function< array(const array &, const array &)> &fun, int in_axis_a=0, int in_axis_b=0, int out_axis=0)'],['../namespacemlx_1_1core.html#a95a7757e8d18fced38acfc6a3e8d686a',1,'mlx::core::vmap(const std::function< std::vector< array >(const std::vector< array > &)> &fun, const std::vector< int > &in_axes={}, const std::vector< int > &out_axes={})']]], ['vmap_5freplace_9',['vmap_replace',['../namespacemlx_1_1core_1_1detail.html#a31a5582530faea230eb8acafc0f7e154',1,'mlx::core::detail']]], ['vmap_5ftrace_10',['vmap_trace',['../namespacemlx_1_1core_1_1detail.html#a5ba794afe1a557e0505887cfb481c515',1,'mlx::core::detail']]] ]; diff --git a/docs/build/html/search/functions_17.js b/docs/build/html/search/functions_17.js index 60b5f1903..7c63226fb 100644 --- a/docs/build/html/search/functions_17.js +++ b/docs/build/html/search/functions_17.js @@ -5,7 +5,7 @@ var searchData= ['where_2',['where',['../group__ops.html#ga8a2056f8c9bb30914c40bcf509386491',1,'mlx::core']]], ['write_3',['write',['../struct_read_writer.html#ac2ea71e41740ddc863890e3e8e6f09d0',1,'ReadWriter::write()'],['../classmlx_1_1core_1_1io_1_1_writer.html#ad9515b7f007338674de1e124cf77e125',1,'mlx::core::io::Writer::write()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#abca32838c9886f734d93430c34c07d7f',1,'mlx::core::io::FileWriter::write()'],['../struct_read_writer.html#a7a3d1396b0f83aa7506207bd6e7336bf',1,'ReadWriter::write() const'],['../struct_read_writer.html#ae1f0d3555b74998cc2d2288bce72a1f4',1,'ReadWriter::write() const']]], ['write_5fpadded_4',['write_padded',['../struct_read_writer.html#a95367307acace2aa88226cf8956d2d88',1,'ReadWriter::write_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#abaf2a6ad4c88bd9f65fe1db1f73a8d87',1,'ReadWriter::write_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#a420453a56e77d6b3891ed4b5f178af9c',1,'ReadWriter::write_padded(int length, const device float2 *w_k) const']]], - ['write_5fsafe_5',['write_safe',['../kernels_2scan_8h.html#ae86aef08e5ebc8790031eb51eefa754c',1,'scan.h']]], + ['write_5fsafe_5',['write_safe',['../scan_8h.html#ae86aef08e5ebc8790031eb51eefa754c',1,'scan.h']]], ['write_5fstrided_6',['write_strided',['../struct_read_writer.html#a77a4d7eac217305e22a3c25b3756ef67',1,'ReadWriter::write_strided(int stride, int overall_n)'],['../struct_read_writer.html#a12e7f43cd9de2d9990054184c0a32839',1,'ReadWriter::write_strided(int stride, int overall_n)'],['../struct_read_writer.html#a959ccaa08f2999c50cea063b01e492e4',1,'ReadWriter::write_strided(int stride, int overall_n)'],['../struct_read_writer.html#a5592b24dad5ad030a1e4769b0a278f35',1,'ReadWriter::write_strided(int stride, int overall_n)']]], - ['write_5funsafe_7',['write_unsafe',['../kernels_2scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]] + ['write_5funsafe_7',['write_unsafe',['../scan_8h.html#a8010e7bdf7a72cbd35ce7cd7ecb08e32',1,'scan.h']]] ]; diff --git a/docs/build/html/search/functions_19.js b/docs/build/html/search/functions_19.js index 2a0ab51b3..e588618fc 100644 --- a/docs/build/html/search/functions_19.js +++ b/docs/build/html/search/functions_19.js @@ -7,17 +7,20 @@ var searchData= ['_7econcurrentcontext_4',['~ConcurrentContext',['../structmlx_1_1core_1_1metal_1_1_command_encoder_1_1_concurrent_context.html#a28bafec56edec3091e8716d8ccfb6ee1',1,'mlx::core::metal::CommandEncoder::ConcurrentContext']]], ['_7edata_5',['~Data',['../structmlx_1_1core_1_1array_1_1_data.html#a1cf69d9709206578c4e87e9c1daad5e1',1,'mlx::core::array::Data']]], ['_7edevice_6',['~Device',['../classmlx_1_1core_1_1metal_1_1_device.html#a4f39c28c6cdd1d2da1918f5871bcba6e',1,'mlx::core::metal::Device']]], - ['_7efilewriter_7',['~FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html#ac325f51cd22050b6359056290e8ef42c',1,'mlx::core::io::FileWriter']]], - ['_7eintracing_8',['~InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a83d57d7fa63bcb0ff72080191d0f177a',1,'mlx::core::detail::InTracing']]], - ['_7eparallelfilereader_9',['~ParallelFileReader',['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ae9e3fc1cc3e827dae4d3d107f6780817',1,'mlx::core::io::ParallelFileReader']]], - ['_7eprimitive_10',['~Primitive',['../classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777',1,'mlx::core::Primitive']]], - ['_7ereader_11',['~Reader',['../classmlx_1_1core_1_1io_1_1_reader.html#a81cd4747d81311c87dc6753f2d0d8b16',1,'mlx::core::io::Reader']]], - ['_7eretaingraph_12',['~RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a6bd6dc2e1caf2f764f39856a72ff6cbc',1,'mlx::core::detail::RetainGraph']]], - ['_7escheduler_13',['~Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a6626c4a743a2b3004fc14042bc8b0edf',1,'mlx::core::scheduler::Scheduler']]], - ['_7estreamcontext_14',['~StreamContext',['../structmlx_1_1core_1_1_stream_context.html#ac5be1c576d22b3d0b0a6fcc7e6abe659',1,'mlx::core::StreamContext']]], - ['_7estreamthread_15',['~StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a71de50591388b6e2cc6c57827e1a1ad4',1,'mlx::core::scheduler::StreamThread']]], - ['_7ethread_5fpool_16',['~thread_pool',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a68f71e79fa93379fcc5819e533b45472',1,'pocketfft::detail::threading::thread_pool']]], - ['_7ethreadpool_17',['~ThreadPool',['../class_thread_pool.html#a44d3d2ab618970605e684efc216655eb',1,'ThreadPool']]], - ['_7eunaryprimitive_18',['~UnaryPrimitive',['../classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de',1,'mlx::core::UnaryPrimitive']]], - ['_7ewriter_19',['~Writer',['../classmlx_1_1core_1_1io_1_1_writer.html#a0e42f93a64118e9f5ede54ffe1bda045',1,'mlx::core::io::Writer']]] + ['_7edevicestream_7',['~DeviceStream',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a1c4397732f64f5811381dd01e30e020e',1,'mlx::core::metal::DeviceStream']]], + ['_7efence_8',['~Fence',['../structmlx_1_1core_1_1metal_1_1_fence.html#a4940c1aece13814af7727de9abb511f2',1,'mlx::core::metal::Fence']]], + ['_7efilewriter_9',['~FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html#ac325f51cd22050b6359056290e8ef42c',1,'mlx::core::io::FileWriter']]], + ['_7eintracing_10',['~InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a83d57d7fa63bcb0ff72080191d0f177a',1,'mlx::core::detail::InTracing']]], + ['_7eparallelfilereader_11',['~ParallelFileReader',['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#ae9e3fc1cc3e827dae4d3d107f6780817',1,'mlx::core::io::ParallelFileReader']]], + ['_7eprimitive_12',['~Primitive',['../classmlx_1_1core_1_1_primitive.html#a29f70eb2d3b7e6c5fe52779c03f03777',1,'mlx::core::Primitive']]], + ['_7ereader_13',['~Reader',['../classmlx_1_1core_1_1io_1_1_reader.html#a81cd4747d81311c87dc6753f2d0d8b16',1,'mlx::core::io::Reader']]], + ['_7eresidencyset_14',['~ResidencySet',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#a998f07776f489bea9a7dd3c290ea7a79',1,'mlx::core::metal::ResidencySet']]], + ['_7eretaingraph_15',['~RetainGraph',['../structmlx_1_1core_1_1detail_1_1_retain_graph.html#a6bd6dc2e1caf2f764f39856a72ff6cbc',1,'mlx::core::detail::RetainGraph']]], + ['_7escheduler_16',['~Scheduler',['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a6626c4a743a2b3004fc14042bc8b0edf',1,'mlx::core::scheduler::Scheduler']]], + ['_7estreamcontext_17',['~StreamContext',['../structmlx_1_1core_1_1_stream_context.html#ac5be1c576d22b3d0b0a6fcc7e6abe659',1,'mlx::core::StreamContext']]], + ['_7estreamthread_18',['~StreamThread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a71de50591388b6e2cc6c57827e1a1ad4',1,'mlx::core::scheduler::StreamThread']]], + ['_7ethread_5fpool_19',['~thread_pool',['../classpocketfft_1_1detail_1_1threading_1_1thread__pool.html#a68f71e79fa93379fcc5819e533b45472',1,'pocketfft::detail::threading::thread_pool']]], + ['_7ethreadpool_20',['~ThreadPool',['../class_thread_pool.html#a44d3d2ab618970605e684efc216655eb',1,'ThreadPool']]], + ['_7eunaryprimitive_21',['~UnaryPrimitive',['../classmlx_1_1core_1_1_unary_primitive.html#ac0677ab99a5ca660ed6ab7902ea364de',1,'mlx::core::UnaryPrimitive']]], + ['_7ewriter_22',['~Writer',['../classmlx_1_1core_1_1io_1_1_writer.html#a0e42f93a64118e9f5ede54ffe1bda045',1,'mlx::core::io::Writer']]] ]; diff --git a/docs/build/html/search/functions_2.js b/docs/build/html/search/functions_2.js index 1d989bd56..10a541d60 100644 --- a/docs/build/html/search/functions_2.js +++ b/docs/build/html/search/functions_2.js @@ -37,11 +37,11 @@ var searchData= ['broadcast_5farrays_34',['broadcast_arrays',['../group__ops.html#gab783890428b596f715dc7dd2057eae99',1,'mlx::core']]], ['broadcast_5fshapes_35',['broadcast_shapes',['../namespacemlx_1_1core.html#a075e07def338cd9d815182d0e6a656c0',1,'mlx::core']]], ['broadcast_5fto_36',['broadcast_to',['../group__ops.html#gad256e86cc1a6e6b3832e392baa90318d',1,'mlx::core']]], - ['bs_5fqmm_5fn_37',['bs_qmm_n',['../quantized_8h.html#acfc43edcf0c742ddc090d22cb7229284',1,'quantized.h']]], - ['bs_5fqmm_5ft_38',['bs_qmm_t',['../quantized_8h.html#a3acc2ace766cb855f13da2d1834e7dc7',1,'quantized.h']]], - ['bs_5fqmv_39',['bs_qmv',['../quantized_8h.html#a03ba4a4a5fe9955319b0aa477d2d7d98',1,'quantized.h']]], - ['bs_5fqmv_5ffast_40',['bs_qmv_fast',['../quantized_8h.html#a6f92bb9f3d29d707bfc680bebe1c80f7',1,'quantized.h']]], - ['bs_5fqvm_41',['bs_qvm',['../quantized_8h.html#a3af1c89416632c9275b8218a33cb8a04',1,'quantized.h']]], + ['bs_5fqmm_5fn_37',['bs_qmm_n',['../quantized_8h.html#a1a66b061c46383952a0f067c3848971f',1,'quantized.h']]], + ['bs_5fqmm_5ft_38',['bs_qmm_t',['../quantized_8h.html#ab1ae143eba2afceb8df63f38b26f9a84',1,'quantized.h']]], + ['bs_5fqmv_39',['bs_qmv',['../quantized_8h.html#acf4c7fc77821a83b31aedfb48443d3ed',1,'quantized.h']]], + ['bs_5fqmv_5ffast_40',['bs_qmv_fast',['../quantized_8h.html#a530b720e123e59d73ea89a0a2d0946b7',1,'quantized.h']]], + ['bs_5fqvm_41',['bs_qvm',['../quantized_8h.html#a6d6e3c31e44f232e58ae9d605e1f4494',1,'quantized.h']]], ['buffer_42',['Buffer',['../classmlx_1_1core_1_1allocator_1_1_buffer.html#ac4fc2cc6aa1368cfb74aff329d9a1300',1,'mlx::core::allocator::Buffer']]], ['buffer_43',['buffer',['../classmlx_1_1core_1_1array.html#ab3daf04c27c4593d9d73c397b8484a08',1,'mlx::core::array::buffer()'],['../classmlx_1_1core_1_1array.html#a634466ce661485394f2fdc3bd6796bcd',1,'mlx::core::array::buffer() const']]], ['buffer_5fsize_44',['buffer_size',['../classmlx_1_1core_1_1array.html#a914577c63755b2e862d2da68bbf8e3dd',1,'mlx::core::array']]], diff --git a/docs/build/html/search/functions_3.js b/docs/build/html/search/functions_3.js index 7f050f0a8..60f022738 100644 --- a/docs/build/html/search/functions_3.js +++ b/docs/build/html/search/functions_3.js @@ -42,7 +42,7 @@ var searchData= ['conj_39',['conj',['../namespacepocketfft_1_1detail.html#a66d79051d502046a9b9f103e744dbad3',1,'pocketfft::detail']]], ['conjugate_40',['Conjugate',['../classmlx_1_1core_1_1_conjugate.html#a627f9e6a8729fb3ffb3ca3228d007c87',1,'mlx::core::Conjugate']]], ['conjugate_41',['conjugate',['../group__ops.html#ga5b596906bf8cdc8d97ed6ddc9aeb4c23',1,'mlx::core']]], - ['contiguous_5fscan_42',['contiguous_scan',['../kernels_2scan_8h.html#a1f9c197dc09641f3fbb2e886c85b0675',1,'scan.h']]], + ['contiguous_5fscan_42',['contiguous_scan',['../scan_8h.html#a60d279b9add7d56639bb209408f09d79',1,'scan.h']]], ['contiguousiterator_43',['ContiguousIterator',['../structmlx_1_1core_1_1_contiguous_iterator.html#a68794af4a442d3d8ac4647817af8e1f6',1,'mlx::core::ContiguousIterator::ContiguousIterator()'],['../structmlx_1_1core_1_1_contiguous_iterator.html#a6cb378408b6f546eeb6ade1a4faafe3c',1,'mlx::core::ContiguousIterator::ContiguousIterator(const array &a)'],['../structmlx_1_1core_1_1_contiguous_iterator.html#a16bdacb53f65b7284068cd49d4cba292',1,'mlx::core::ContiguousIterator::ContiguousIterator(const std::vector< int > &shape, const std::vector< StrideT > &strides, int dims)']]], ['conv_44',['conv',['../namespacemlx_1_1core_1_1metal.html#ab1704e853394c725668c06752ebb5c24',1,'mlx::core::metal']]], ['conv1d_45',['conv1d',['../group__ops.html#ga30d47e08093c03a3676f235f9f559411',1,'mlx::core']]], diff --git a/docs/build/html/search/functions_4.js b/docs/build/html/search/functions_4.js index 0205bf092..8254b96c0 100644 --- a/docs/build/html/search/functions_4.js +++ b/docs/build/html/search/functions_4.js @@ -24,17 +24,18 @@ var searchData= ['device_21',['Device',['../classmlx_1_1core_1_1metal_1_1_device.html#ae0db74570eb4b19d8cf19774db91bfd6',1,'mlx::core::metal::Device::Device()'],['../classmlx_1_1core_1_1metal_1_1_device.html#abf59a4addb5473f9e814e3651ba85f06',1,'mlx::core::metal::Device::Device(const Device &)=delete'],['../structmlx_1_1core_1_1_device.html#a481ccfb94d689994396bd353e966b489',1,'mlx::core::Device::Device()']]], ['device_22',['device',['../classmlx_1_1core_1_1_primitive.html#a8ae61e3289c4134232a69295268f8261',1,'mlx::core::Primitive::device()'],['../namespacemlx_1_1core_1_1metal.html#a910797b74824e6ee576fbb533dee8b57',1,'mlx::core::metal::device(mlx::core::Device)']]], ['device_5finfo_23',['device_info',['../namespacemlx_1_1core_1_1metal.html#a6ad19c44efabb7423f973407926ead61',1,'mlx::core::metal']]], - ['diag_24',['diag',['../group__ops.html#ga11af511875640e1fa88e0ca87e199344',1,'mlx::core']]], - ['diagonal_25',['diagonal',['../group__ops.html#ga9236b085a88ead3128ed8079d009cac6',1,'mlx::core']]], - ['disable_5fcompile_26',['disable_compile',['../namespacemlx_1_1core.html#a5f5fea955057bb3842b271b037909e66',1,'mlx::core']]], - ['dispatchthreadgroups_27',['dispatchThreadgroups',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e',1,'mlx::core::metal::CommandEncoder']]], - ['dispatchthreads_28',['dispatchThreads',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810',1,'mlx::core::metal::CommandEncoder']]], - ['distprimitive_29',['DistPrimitive',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a8c54166951522c2a52ef39fce8c87f8f',1,'mlx::core::distributed::DistPrimitive']]], - ['divide_30',['Divide',['../classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb',1,'mlx::core::Divide']]], - ['divide_31',['divide',['../namespacemetal.html#a2aea493fc1a874970b77ed0031e965df',1,'metal::divide()'],['../namespacemetal_1_1fast.html#ae70bc2185e4649369cf7b15f5e1d48be',1,'metal::fast::divide()'],['../namespacemetal_1_1precise.html#aec0982cdb96a08b61f51129150d82e9d',1,'metal::precise::divide()'],['../group__ops.html#ga77472dd06cfa7a30a42e4fd927bd859f',1,'mlx::core::divide()']]], - ['divmod_32',['DivMod',['../classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826',1,'mlx::core::DivMod']]], - ['divmod_33',['divmod',['../group__ops.html#gaa30ebc0a8376dbc3f7e46a47052b5894',1,'mlx::core']]], - ['dst_34',['dst',['../namespacepocketfft_1_1detail.html#add0f231fc8a1ce01b90a90faeebcb4eb',1,'pocketfft::detail']]], - ['dtype_35',['Dtype',['../structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1',1,'mlx::core::Dtype']]], - ['dtype_36',['dtype',['../classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd',1,'mlx::core::array']]] + ['devicestream_24',['DeviceStream',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a573326bc8b48e39076850c7bf52ad0d7',1,'mlx::core::metal::DeviceStream']]], + ['diag_25',['diag',['../group__ops.html#ga11af511875640e1fa88e0ca87e199344',1,'mlx::core']]], + ['diagonal_26',['diagonal',['../group__ops.html#ga9236b085a88ead3128ed8079d009cac6',1,'mlx::core']]], + ['disable_5fcompile_27',['disable_compile',['../namespacemlx_1_1core.html#a5f5fea955057bb3842b271b037909e66',1,'mlx::core']]], + ['dispatchthreadgroups_28',['dispatchThreadgroups',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a74bcd8e35f80f5a62db48c4a2bb0173e',1,'mlx::core::metal::CommandEncoder']]], + ['dispatchthreads_29',['dispatchThreads',['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a1e41477f2f489e38499f7830a91c9810',1,'mlx::core::metal::CommandEncoder']]], + ['distprimitive_30',['DistPrimitive',['../classmlx_1_1core_1_1distributed_1_1_dist_primitive.html#a8c54166951522c2a52ef39fce8c87f8f',1,'mlx::core::distributed::DistPrimitive']]], + ['divide_31',['Divide',['../classmlx_1_1core_1_1_divide.html#a62fc71e8998be65ff18285dbbd21eedb',1,'mlx::core::Divide']]], + ['divide_32',['divide',['../namespacemetal.html#a2aea493fc1a874970b77ed0031e965df',1,'metal::divide()'],['../namespacemetal_1_1fast.html#ae70bc2185e4649369cf7b15f5e1d48be',1,'metal::fast::divide()'],['../namespacemetal_1_1precise.html#aec0982cdb96a08b61f51129150d82e9d',1,'metal::precise::divide()'],['../group__ops.html#ga77472dd06cfa7a30a42e4fd927bd859f',1,'mlx::core::divide()']]], + ['divmod_33',['DivMod',['../classmlx_1_1core_1_1_div_mod.html#a859e3b6149cdceab1c7ccfd2246fb826',1,'mlx::core::DivMod']]], + ['divmod_34',['divmod',['../group__ops.html#gaa30ebc0a8376dbc3f7e46a47052b5894',1,'mlx::core']]], + ['dst_35',['dst',['../namespacepocketfft_1_1detail.html#add0f231fc8a1ce01b90a90faeebcb4eb',1,'pocketfft::detail']]], + ['dtype_36',['Dtype',['../structmlx_1_1core_1_1_dtype.html#aec17f0a4a51729e5ac40b62f0aa765d1',1,'mlx::core::Dtype']]], + ['dtype_37',['dtype',['../classmlx_1_1core_1_1array.html#ae29e7d6fbfbea1e5e321a8d1ea3cfacd',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/functions_5.js b/docs/build/html/search/functions_5.js index bfc3cd179..1470dea88 100644 --- a/docs/build/html/search/functions_5.js +++ b/docs/build/html/search/functions_5.js @@ -1,42 +1,46 @@ var searchData= [ - ['einsum_0',['einsum',['../namespacemlx_1_1core.html#a2a9b98c65578dd3720b3b375c1471e58',1,'mlx::core']]], - ['einsum_5fpath_1',['einsum_path',['../namespacemlx_1_1core.html#ab14ec41f17675691c1fdebb8990b6695',1,'mlx::core']]], - ['elem_5fto_5floc_2',['elem_to_loc',['../namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3',1,'mlx::core::elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)'],['../namespacemlx_1_1core.html#ad7e4f40eb351b554bbfabb6d7d600d06',1,'mlx::core::elem_to_loc(int elem, const array &a)'],['../backend_2metal_2kernels_2utils_8h.html#a8fd0c8fc6058e650fc99bca8b6acd7d1',1,'elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#aa6b041005351293e68e19b5abf1286cd',1,'elem_to_loc(stride_t elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a37e00d94751710e81c9632bca2f91e51',1,'elem_to_loc(uint3 elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h']]], - ['elem_5fto_5floc_5f1_3',['elem_to_loc_1',['../backend_2metal_2kernels_2utils_8h.html#a196a07022b812b241d4c06192c0fa83d',1,'utils.h']]], - ['elem_5fto_5floc_5f2_4',['elem_to_loc_2',['../backend_2metal_2kernels_2utils_8h.html#ad6c45cacca97899cd362df49c06fea79',1,'utils.h']]], - ['elem_5fto_5floc_5f2_5fnd_5',['elem_to_loc_2_nd',['../backend_2metal_2kernels_2utils_8h.html#a01c9309978a6c12f79b6e4108728a953',1,'utils.h']]], - ['elem_5fto_5floc_5f3_6',['elem_to_loc_3',['../backend_2metal_2kernels_2utils_8h.html#a2c34ed54714c69e6e1b44344f9e6e330',1,'utils.h']]], - ['elem_5fto_5floc_5f3_5fnd_7',['elem_to_loc_3_nd',['../backend_2metal_2kernels_2utils_8h.html#a66940b1cc3d64651d24634bc696d528b',1,'utils.h']]], - ['elem_5fto_5floc_5fbroadcast_8',['elem_to_loc_broadcast',['../backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim): utils.h'],['../backend_2metal_2kernels_2steel_2utils_8h.html#a42bd57d203a40d3d7d429f2333590a3c',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const size_t *c_strides, int ndim): utils.h']]], - ['empty_9',['empty',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#a1269e5da40c3f5145c895cee3641879a',1,'pocketfft::detail::threading::concurrent_queue']]], - ['enable_5fcompile_10',['enable_compile',['../namespacemlx_1_1core.html#a1983a2466bff3bae4d23cf34bd0946c9',1,'mlx::core']]], - ['end_11',['end',['../classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4',1,'mlx::core::array']]], - ['end_5fencoding_12',['end_encoding',['../classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf',1,'mlx::core::metal::Device']]], - ['enqueue_13',['enqueue',['../class_thread_pool.html#a375fa2d63197282277be640b54e8a196',1,'ThreadPool::enqueue()'],['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4918720319cf224a1b4208568964c286',1,'mlx::core::scheduler::StreamThread::enqueue()'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a03809c783bd1866362dc7cb9118abbcc',1,'mlx::core::scheduler::Scheduler::enqueue()'],['../namespacemlx_1_1core_1_1scheduler.html#aa2d4eacf5d5cbc778a51aafd4fd8e4d7',1,'mlx::core::scheduler::enqueue()']]], - ['epsilon_14',['epsilon',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca',1,'metal::_numeric_limits_impl< bfloat16_t >']]], - ['equal_15',['Equal',['../classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36',1,'mlx::core::Equal']]], - ['equal_16',['equal',['../group__ops.html#ga33638dc3a9972dd02be12d0eb85f9bde',1,'mlx::core']]], - ['erf_17',['Erf',['../classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82',1,'mlx::core::Erf']]], - ['erf_18',['erf',['../erf_8h.html#a6ce199ee56105c67adbf8c48c019a8b2',1,'erf(): erf.h'],['../group__ops.html#ga292a335240fd5d6d625fb7a340ff5eb0',1,'mlx::core::erf()']]], - ['erfinv_19',['ErfInv',['../classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478',1,'mlx::core::ErfInv']]], - ['erfinv_20',['erfinv',['../erf_8h.html#a1846e0d683c7aff826bb32addcc3b885',1,'erfinv(): erf.h'],['../group__ops.html#ga76fb9062c64264e34d2e07013390557c',1,'mlx::core::erfinv()']]], - ['eval_21',['eval',['../classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a',1,'mlx::core::array::eval()'],['../namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299',1,'mlx::core::eval(std::vector< array > outputs)'],['../namespacemlx_1_1core.html#adb14f689c9f75f7901edb196c2bfb971',1,'mlx::core::eval(Arrays &&... outputs)']]], - ['eval_5fcpu_22',['eval_cpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#acdc1965ad64ee9ee6328fe150a97902e',1,'mlx::core::distributed::AllReduce::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ab721fe0072fffbddbc3c4334dd033ba5',1,'mlx::core::distributed::AllGather::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#af2620837bfc1b97217d006ed6e374051',1,'mlx::core::distributed::Send::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a3be84b08122a939edd6062d26261358a',1,'mlx::core::distributed::Recv::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a7da6e0cfd630958d9633b2e2bd97a54f',1,'mlx::core::fast::RMSNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#adfc1d52bc266466ab29ee45fd8fab439',1,'mlx::core::fast::RMSNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5d7a4c1c9ee84e327d1c371733108c05',1,'mlx::core::fast::LayerNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a0d8c4c6e7462befc38f7e08244fa1c2b',1,'mlx::core::fast::LayerNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a05a7d595c6b9dadf7ddfd6e3fd402f0e',1,'mlx::core::fast::RoPE::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ae20851e002f7fcb6d4f97817596f6328',1,'mlx::core::fast::ScaledDotProductAttention::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd',1,'mlx::core::fast::AffineQuantize::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad',1,'mlx::core::fast::CustomKernel::eval_cpu()'],['../classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575',1,'mlx::core::Primitive::eval_cpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60',1,'mlx::core::Abs::eval_cpu()'],['../classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f',1,'mlx::core::Add::eval_cpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c',1,'mlx::core::AddMM::eval_cpu()'],['../classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1',1,'mlx::core::Arange::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006',1,'mlx::core::ArcCos::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9',1,'mlx::core::ArcCosh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4',1,'mlx::core::ArcSin::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066',1,'mlx::core::ArcSinh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3',1,'mlx::core::ArcTan::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c',1,'mlx::core::ArcTan2::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd',1,'mlx::core::ArcTanh::eval_cpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828',1,'mlx::core::ArgPartition::eval_cpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287',1,'mlx::core::ArgReduce::eval_cpu()'],['../classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa',1,'mlx::core::ArgSort::eval_cpu()'],['../classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d',1,'mlx::core::AsType::eval_cpu()'],['../classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193',1,'mlx::core::AsStrided::eval_cpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283',1,'mlx::core::BitwiseBinary::eval_cpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2',1,'mlx::core::BlockMaskedMM::eval_cpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730',1,'mlx::core::GatherMM::eval_cpu()'],['../classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780',1,'mlx::core::Broadcast::eval_cpu()'],['../classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035',1,'mlx::core::Ceil::eval_cpu()'],['../classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151',1,'mlx::core::Compiled::eval_cpu()'],['../classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258',1,'mlx::core::Concatenate::eval_cpu()'],['../classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61',1,'mlx::core::Conjugate::eval_cpu()'],['../classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b',1,'mlx::core::Convolution::eval_cpu()'],['../classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c',1,'mlx::core::Copy::eval_cpu()'],['../classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152',1,'mlx::core::Cos::eval_cpu()'],['../classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d',1,'mlx::core::Cosh::eval_cpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184',1,'mlx::core::CustomTransforms::eval_cpu()'],['../classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e',1,'mlx::core::Depends::eval_cpu()'],['../classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49',1,'mlx::core::Divide::eval_cpu()'],['../classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3',1,'mlx::core::DivMod::eval_cpu()'],['../classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2',1,'mlx::core::Select::eval_cpu()'],['../classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc',1,'mlx::core::Remainder::eval_cpu()'],['../classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454',1,'mlx::core::Equal::eval_cpu()'],['../classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6',1,'mlx::core::Erf::eval_cpu()'],['../classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e',1,'mlx::core::ErfInv::eval_cpu()'],['../classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c',1,'mlx::core::Exp::eval_cpu()'],['../classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a',1,'mlx::core::Expm1::eval_cpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635',1,'mlx::core::FFT::eval_cpu()'],['../classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7',1,'mlx::core::Floor::eval_cpu()'],['../classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c',1,'mlx::core::Full::eval_cpu()'],['../classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290',1,'mlx::core::Gather::eval_cpu()'],['../classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae',1,'mlx::core::Greater::eval_cpu()'],['../classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075',1,'mlx::core::GreaterEqual::eval_cpu()'],['../classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d',1,'mlx::core::Hadamard::eval_cpu()'],['../classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829',1,'mlx::core::Imag::eval_cpu()'],['../classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef',1,'mlx::core::Less::eval_cpu()'],['../classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16',1,'mlx::core::LessEqual::eval_cpu()'],['../classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a',1,'mlx::core::Load::eval_cpu()'],['../classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f',1,'mlx::core::Log::eval_cpu()'],['../classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23',1,'mlx::core::Log1p::eval_cpu()'],['../classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3',1,'mlx::core::LogicalNot::eval_cpu()'],['../classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3',1,'mlx::core::LogicalAnd::eval_cpu()'],['../classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62',1,'mlx::core::LogicalOr::eval_cpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0',1,'mlx::core::LogAddExp::eval_cpu()'],['../classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc',1,'mlx::core::Matmul::eval_cpu()'],['../classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf',1,'mlx::core::Maximum::eval_cpu()'],['../classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e',1,'mlx::core::Minimum::eval_cpu()'],['../classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34',1,'mlx::core::Multiply::eval_cpu()'],['../classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b',1,'mlx::core::Negative::eval_cpu()'],['../classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047',1,'mlx::core::NotEqual::eval_cpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f',1,'mlx::core::NumberOfElements::eval_cpu()'],['../classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb',1,'mlx::core::Pad::eval_cpu()'],['../classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8',1,'mlx::core::Partition::eval_cpu()'],['../classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206',1,'mlx::core::Power::eval_cpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3',1,'mlx::core::QuantizedMatmul::eval_cpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c',1,'mlx::core::GatherQMM::eval_cpu()'],['../classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2',1,'mlx::core::RandomBits::eval_cpu()'],['../classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934',1,'mlx::core::Real::eval_cpu()'],['../classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f',1,'mlx::core::Reshape::eval_cpu()'],['../classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa',1,'mlx::core::Reduce::eval_cpu()'],['../classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007',1,'mlx::core::Round::eval_cpu()'],['../classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b',1,'mlx::core::Scan::eval_cpu()'],['../classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97',1,'mlx::core::Scatter::eval_cpu()'],['../classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255',1,'mlx::core::Sigmoid::eval_cpu()'],['../classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97',1,'mlx::core::Sign::eval_cpu()'],['../classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5',1,'mlx::core::Sin::eval_cpu()'],['../classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd',1,'mlx::core::Sinh::eval_cpu()'],['../classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2',1,'mlx::core::Slice::eval_cpu()'],['../classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b',1,'mlx::core::SliceUpdate::eval_cpu()'],['../classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79',1,'mlx::core::Softmax::eval_cpu()'],['../classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd',1,'mlx::core::Sort::eval_cpu()'],['../classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4',1,'mlx::core::Split::eval_cpu()'],['../classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59',1,'mlx::core::Square::eval_cpu()'],['../classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5',1,'mlx::core::Sqrt::eval_cpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2',1,'mlx::core::StopGradient::eval_cpu()'],['../classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12',1,'mlx::core::Subtract::eval_cpu()'],['../classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9',1,'mlx::core::Tan::eval_cpu()'],['../classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5',1,'mlx::core::Tanh::eval_cpu()'],['../classmlx_1_1core_1_1_uniform.html#a037a2c96b79b70a64f2b637c9f1a432f',1,'mlx::core::Uniform::eval_cpu()'],['../classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497',1,'mlx::core::View::eval_cpu()'],['../classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8',1,'mlx::core::Transpose::eval_cpu()'],['../classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2',1,'mlx::core::QRF::eval_cpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6',1,'mlx::core::SVD::eval_cpu()'],['../classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81',1,'mlx::core::Inverse::eval_cpu()'],['../classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5',1,'mlx::core::Cholesky::eval_cpu()']]], - ['eval_5fgpu_23',['eval_gpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a52df7155f56b8450581b2fd2747cad20',1,'mlx::core::distributed::AllReduce::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a4251ce0f2db2045226b66210b828af7a',1,'mlx::core::distributed::AllGather::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a0c8dbd2a912be91be04ec701e29fba3d',1,'mlx::core::distributed::Send::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a932e39624bc3d234a7489c3decc4749e',1,'mlx::core::distributed::Recv::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae7955e8d43c097eecae264e804b4d8ca',1,'mlx::core::fast::RMSNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a48efb8fa84c4ba6cc9fb560ebbe01560',1,'mlx::core::fast::RMSNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a77abda7f47bffa2c037a5d60cccc1528',1,'mlx::core::fast::LayerNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a954a003a4a27c8c4c60a5a14142a9cc3',1,'mlx::core::fast::LayerNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a913b6b00fc518b25ac3947e4e15790f2',1,'mlx::core::fast::RoPE::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a505f38ba93a3499895f5312e0112e73d',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ad51666e69f670e286293aff96eb435a9',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, array &out)'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628',1,'mlx::core::fast::AffineQuantize::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db',1,'mlx::core::fast::CustomKernel::eval_gpu()'],['../classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2',1,'mlx::core::Primitive::eval_gpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514',1,'mlx::core::Abs::eval_gpu()'],['../classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d',1,'mlx::core::Add::eval_gpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9',1,'mlx::core::AddMM::eval_gpu()'],['../classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031',1,'mlx::core::Arange::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c',1,'mlx::core::ArcCos::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc',1,'mlx::core::ArcCosh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3',1,'mlx::core::ArcSin::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac',1,'mlx::core::ArcSinh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254',1,'mlx::core::ArcTan::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50',1,'mlx::core::ArcTan2::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d',1,'mlx::core::ArcTanh::eval_gpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc',1,'mlx::core::ArgPartition::eval_gpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29',1,'mlx::core::ArgReduce::eval_gpu()'],['../classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709',1,'mlx::core::ArgSort::eval_gpu()'],['../classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b',1,'mlx::core::AsType::eval_gpu()'],['../classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed',1,'mlx::core::AsStrided::eval_gpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd',1,'mlx::core::BitwiseBinary::eval_gpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9',1,'mlx::core::BlockMaskedMM::eval_gpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1',1,'mlx::core::GatherMM::eval_gpu()'],['../classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe',1,'mlx::core::Broadcast::eval_gpu()'],['../classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887',1,'mlx::core::Ceil::eval_gpu()'],['../classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5',1,'mlx::core::Compiled::eval_gpu()'],['../classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474',1,'mlx::core::Concatenate::eval_gpu()'],['../classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de',1,'mlx::core::Conjugate::eval_gpu()'],['../classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2',1,'mlx::core::Convolution::eval_gpu()'],['../classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1',1,'mlx::core::Copy::eval_gpu()'],['../classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060',1,'mlx::core::Cos::eval_gpu()'],['../classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559',1,'mlx::core::Cosh::eval_gpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667',1,'mlx::core::CustomTransforms::eval_gpu()'],['../classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28',1,'mlx::core::Depends::eval_gpu()'],['../classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7',1,'mlx::core::Divide::eval_gpu()'],['../classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc',1,'mlx::core::DivMod::eval_gpu()'],['../classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b',1,'mlx::core::Select::eval_gpu()'],['../classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161',1,'mlx::core::Remainder::eval_gpu()'],['../classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c',1,'mlx::core::Equal::eval_gpu()'],['../classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008',1,'mlx::core::Erf::eval_gpu()'],['../classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db',1,'mlx::core::ErfInv::eval_gpu()'],['../classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822',1,'mlx::core::Exp::eval_gpu()'],['../classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f',1,'mlx::core::Expm1::eval_gpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd',1,'mlx::core::FFT::eval_gpu()'],['../classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65',1,'mlx::core::Floor::eval_gpu()'],['../classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872',1,'mlx::core::Full::eval_gpu()'],['../classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8',1,'mlx::core::Gather::eval_gpu()'],['../classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878',1,'mlx::core::Greater::eval_gpu()'],['../classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24',1,'mlx::core::GreaterEqual::eval_gpu()'],['../classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733',1,'mlx::core::Hadamard::eval_gpu()'],['../classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6',1,'mlx::core::Imag::eval_gpu()'],['../classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917',1,'mlx::core::Less::eval_gpu()'],['../classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac',1,'mlx::core::LessEqual::eval_gpu()'],['../classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d',1,'mlx::core::Load::eval_gpu()'],['../classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390',1,'mlx::core::Log::eval_gpu()'],['../classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431',1,'mlx::core::Log1p::eval_gpu()'],['../classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a',1,'mlx::core::LogicalNot::eval_gpu()'],['../classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f',1,'mlx::core::LogicalAnd::eval_gpu()'],['../classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a',1,'mlx::core::LogicalOr::eval_gpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a',1,'mlx::core::LogAddExp::eval_gpu()'],['../classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7',1,'mlx::core::Matmul::eval_gpu()'],['../classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7',1,'mlx::core::Maximum::eval_gpu()'],['../classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba',1,'mlx::core::Minimum::eval_gpu()'],['../classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0',1,'mlx::core::Multiply::eval_gpu()'],['../classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b',1,'mlx::core::Negative::eval_gpu()'],['../classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2',1,'mlx::core::NotEqual::eval_gpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5',1,'mlx::core::NumberOfElements::eval_gpu()'],['../classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153',1,'mlx::core::Pad::eval_gpu()'],['../classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef',1,'mlx::core::Partition::eval_gpu()'],['../classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11',1,'mlx::core::Power::eval_gpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3',1,'mlx::core::QuantizedMatmul::eval_gpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887',1,'mlx::core::GatherQMM::eval_gpu()'],['../classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a',1,'mlx::core::RandomBits::eval_gpu()'],['../classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2',1,'mlx::core::Real::eval_gpu()'],['../classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059',1,'mlx::core::Reshape::eval_gpu()'],['../classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f',1,'mlx::core::Reduce::eval_gpu()'],['../classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec',1,'mlx::core::Round::eval_gpu()'],['../classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde',1,'mlx::core::Scan::eval_gpu()'],['../classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678',1,'mlx::core::Scatter::eval_gpu()'],['../classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca',1,'mlx::core::Sigmoid::eval_gpu()'],['../classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b',1,'mlx::core::Sign::eval_gpu()'],['../classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e',1,'mlx::core::Sin::eval_gpu()'],['../classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75',1,'mlx::core::Sinh::eval_gpu()'],['../classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a',1,'mlx::core::Slice::eval_gpu()'],['../classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b',1,'mlx::core::SliceUpdate::eval_gpu()'],['../classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af',1,'mlx::core::Softmax::eval_gpu()'],['../classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382',1,'mlx::core::Sort::eval_gpu()'],['../classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df',1,'mlx::core::Split::eval_gpu()'],['../classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045',1,'mlx::core::Square::eval_gpu()'],['../classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501',1,'mlx::core::Sqrt::eval_gpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89',1,'mlx::core::StopGradient::eval_gpu()'],['../classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c',1,'mlx::core::Subtract::eval_gpu()'],['../classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f',1,'mlx::core::Tan::eval_gpu()'],['../classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761',1,'mlx::core::Tanh::eval_gpu()'],['../classmlx_1_1core_1_1_uniform.html#a5f88cbf2495f24f87cefd99aaaebe4d0',1,'mlx::core::Uniform::eval_gpu()'],['../classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075',1,'mlx::core::View::eval_gpu()'],['../classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e',1,'mlx::core::Transpose::eval_gpu()'],['../classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9',1,'mlx::core::QRF::eval_gpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83',1,'mlx::core::SVD::eval_gpu()'],['../classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2',1,'mlx::core::Inverse::eval_gpu()'],['../classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795',1,'mlx::core::Cholesky::eval_gpu()']]], - ['event_24',['Event',['../classmlx_1_1core_1_1_event.html#a833506419b2110ad1abd89b2dd238b4d',1,'mlx::core::Event::Event()=default'],['../classmlx_1_1core_1_1_event.html#a13e4835f2ffb2cc22e29148a448ea184',1,'mlx::core::Event::Event(const Stream &steam)']]], - ['event_25',['event',['../classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf',1,'mlx::core::array']]], - ['exec_26',['exec',['../classpocketfft_1_1detail_1_1cfftp.html#a95211024bf007d27e700835db556fbd2',1,'pocketfft::detail::cfftp::exec()'],['../classpocketfft_1_1detail_1_1rfftp.html#a073972f42bdd3617693be7be2cb5e0ac',1,'pocketfft::detail::rfftp::exec()'],['../classpocketfft_1_1detail_1_1fftblue.html#a5fb03413a3d1a653842875adcf87ae8c',1,'pocketfft::detail::fftblue::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__c.html#a436afd63e8e130f97aff103ae964a45d',1,'pocketfft::detail::pocketfft_c::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__r.html#a2815bc8aa04fa986834b02e502f98b33',1,'pocketfft::detail::pocketfft_r::exec()'],['../classpocketfft_1_1detail_1_1_t__dct1.html#a7736111ff9d220f983e41a6fecd5f058',1,'pocketfft::detail::T_dct1::exec()'],['../classpocketfft_1_1detail_1_1_t__dst1.html#a598a9511004263eb3610053d7efc9e26',1,'pocketfft::detail::T_dst1::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst23.html#a2a45b7b4612904c2be69c01f6d5029ac',1,'pocketfft::detail::T_dcst23::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst4.html#af794ebf21009d5f918681188081df708',1,'pocketfft::detail::T_dcst4::exec()']]], - ['exec_5fr_27',['exec_r',['../classpocketfft_1_1detail_1_1fftblue.html#a642b4aff0485c7d9c8794161a1464f00',1,'pocketfft::detail::fftblue']]], - ['exp_28',['Exp',['../classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06',1,'mlx::core::Exp']]], - ['exp_29',['exp',['../namespacemetal.html#ac2a0b3618d922ac014baac8189d44650',1,'metal::exp()'],['../namespacemetal_1_1fast.html#ad3dbd387b63373c29e3449609f763ede',1,'metal::fast::exp()'],['../namespacemetal_1_1precise.html#a8d8d2d5700ce432b33cf47cf22528e8f',1,'metal::precise::exp()'],['../group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125',1,'mlx::core::exp()']]], - ['exp10_30',['exp10',['../namespacemetal.html#a4c63707d13c89364496a48906631c204',1,'metal::exp10()'],['../namespacemetal_1_1fast.html#a453122f982485cbb4e471b3ac282ee5e',1,'metal::fast::exp10()'],['../namespacemetal_1_1precise.html#af9addb343c967da3a83e9e123a8521fd',1,'metal::precise::exp10()']]], - ['exp2_31',['exp2',['../namespacemetal.html#a228201c20777848804a4d0589c1d33e7',1,'metal::exp2()'],['../namespacemetal_1_1fast.html#ac092b65a46720adaf22f6266671d2d71',1,'metal::fast::exp2()'],['../namespacemetal_1_1precise.html#a92a880bd2197efc0da0f8f0f7ec1e4c9',1,'metal::precise::exp2()']]], - ['expand_5fdims_32',['expand_dims',['../group__ops.html#ga717f11149a8c7b4cc3e33bbcc0a97133',1,'mlx::core::expand_dims(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga7a80adb4a5a36d18b5f234d4b034950a',1,'mlx::core::expand_dims(const array &a, int axis, StreamOrDevice s={})']]], - ['expm1_33',['Expm1',['../classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2',1,'mlx::core::Expm1']]], - ['expm1_34',['expm1',['../group__ops.html#ga54ca54f06bfb2be15b163a5209e2a0f0',1,'mlx::core']]], - ['expm1f_35',['expm1f',['../expm1f_8h.html#a87f66d30e185950f42ce3641783cdc40',1,'expm1f.h']]], - ['expm1f_5fscaled_5funchecked_36',['expm1f_scaled_unchecked',['../expm1f_8h.html#adf20e03405fba634ca8d01acac24592e',1,'expm1f.h']]], - ['export_5fto_5fdot_37',['export_to_dot',['../namespacemlx_1_1core.html#a57395bdf43d9c5c134e610c169222cca',1,'mlx::core::export_to_dot(std::ostream &os, const std::vector< array > &outputs)'],['../namespacemlx_1_1core.html#a839f94dbad44f0d37333006fc876b42e',1,'mlx::core::export_to_dot(std::ostream &os, Arrays &&... outputs)']]], - ['eye_38',['eye',['../group__ops.html#ga45e9e68246b0d1cf03c3cc9c9e7e6ae3',1,'mlx::core::eye(int n, int m, int k, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga2c9011310a1fa7c82f942f54102c36dd',1,'mlx::core::eye(int n, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga61657db78ef35d41112d362c869c25d2',1,'mlx::core::eye(int n, int m, StreamOrDevice s={})'],['../group__ops.html#ga908a15b42834be498a46856c99dfc779',1,'mlx::core::eye(int n, int m, int k, StreamOrDevice s={})'],['../group__ops.html#gab777fcf6d4a89172c69ec3492548dc0f',1,'mlx::core::eye(int n, StreamOrDevice s={})']]] + ['eigh_0',['Eigh',['../classmlx_1_1core_1_1_eigh.html#ad8f5d012ebd5942abeffecca77fcddda',1,'mlx::core::Eigh']]], + ['eigh_1',['eigh',['../namespacemlx_1_1core_1_1linalg.html#a2180be504f639fd471ea622641c1b0ca',1,'mlx::core::linalg']]], + ['eigvalsh_2',['eigvalsh',['../namespacemlx_1_1core_1_1linalg.html#a00c8e24432b0773dac64b8602bd142ba',1,'mlx::core::linalg']]], + ['einsum_3',['einsum',['../namespacemlx_1_1core.html#a2a9b98c65578dd3720b3b375c1471e58',1,'mlx::core']]], + ['einsum_5fpath_4',['einsum_path',['../namespacemlx_1_1core.html#ab14ec41f17675691c1fdebb8990b6695',1,'mlx::core']]], + ['elem_5fto_5floc_5',['elem_to_loc',['../namespacemlx_1_1core.html#a77657cb50fd9392f7f4c64e43843c2b3',1,'mlx::core::elem_to_loc(int elem, const std::vector< int > &shape, const std::vector< StrideT > &strides)'],['../namespacemlx_1_1core.html#ad7e4f40eb351b554bbfabb6d7d600d06',1,'mlx::core::elem_to_loc(int elem, const array &a)'],['../backend_2metal_2kernels_2utils_8h.html#a8fd0c8fc6058e650fc99bca8b6acd7d1',1,'elem_to_loc(uint elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#aa6b041005351293e68e19b5abf1286cd',1,'elem_to_loc(stride_t elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h'],['../backend_2metal_2kernels_2utils_8h.html#a37e00d94751710e81c9632bca2f91e51',1,'elem_to_loc(uint3 elem, constant const int *shape, constant const stride_t *strides, int ndim): utils.h']]], + ['elem_5fto_5floc_5f1_6',['elem_to_loc_1',['../backend_2metal_2kernels_2utils_8h.html#a196a07022b812b241d4c06192c0fa83d',1,'utils.h']]], + ['elem_5fto_5floc_5f2_7',['elem_to_loc_2',['../backend_2metal_2kernels_2utils_8h.html#ad6c45cacca97899cd362df49c06fea79',1,'utils.h']]], + ['elem_5fto_5floc_5f2_5fnd_8',['elem_to_loc_2_nd',['../backend_2metal_2kernels_2utils_8h.html#a01c9309978a6c12f79b6e4108728a953',1,'utils.h']]], + ['elem_5fto_5floc_5f3_9',['elem_to_loc_3',['../backend_2metal_2kernels_2utils_8h.html#a2c34ed54714c69e6e1b44344f9e6e330',1,'utils.h']]], + ['elem_5fto_5floc_5f3_5fnd_10',['elem_to_loc_3_nd',['../backend_2metal_2kernels_2utils_8h.html#a66940b1cc3d64651d24634bc696d528b',1,'utils.h']]], + ['elem_5fto_5floc_5fbroadcast_11',['elem_to_loc_broadcast',['../backend_2metal_2kernels_2steel_2utils_8h.html#aaf4974425147d6f26d031691e321637f',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, int ndim): utils.h'],['../backend_2metal_2kernels_2steel_2utils_8h.html#a42bd57d203a40d3d7d429f2333590a3c',1,'elem_to_loc_broadcast(uint elem, constant const int *shape, constant const size_t *a_strides, constant const size_t *b_strides, constant const size_t *c_strides, int ndim): utils.h']]], + ['empty_12',['empty',['../classpocketfft_1_1detail_1_1threading_1_1concurrent__queue.html#a1269e5da40c3f5145c895cee3641879a',1,'pocketfft::detail::threading::concurrent_queue']]], + ['enable_5fcompile_13',['enable_compile',['../namespacemlx_1_1core.html#a1983a2466bff3bae4d23cf34bd0946c9',1,'mlx::core']]], + ['end_14',['end',['../classmlx_1_1core_1_1array.html#a5daf64552fb450825c9b382f3a5fa2d4',1,'mlx::core::array']]], + ['end_5fencoding_15',['end_encoding',['../classmlx_1_1core_1_1metal_1_1_device.html#a60689f97347811b27e8c5ca23e0372bf',1,'mlx::core::metal::Device']]], + ['enqueue_16',['enqueue',['../class_thread_pool.html#a375fa2d63197282277be640b54e8a196',1,'ThreadPool::enqueue()'],['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a4918720319cf224a1b4208568964c286',1,'mlx::core::scheduler::StreamThread::enqueue()'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a03809c783bd1866362dc7cb9118abbcc',1,'mlx::core::scheduler::Scheduler::enqueue()'],['../namespacemlx_1_1core_1_1scheduler.html#aa2d4eacf5d5cbc778a51aafd4fd8e4d7',1,'mlx::core::scheduler::enqueue()']]], + ['epsilon_17',['epsilon',['../structmetal_1_1__numeric__limits__impl_3_01bfloat16__t_01_4.html#a96c4197e3076f0aa9065370b8ece49ca',1,'metal::_numeric_limits_impl< bfloat16_t >']]], + ['equal_18',['Equal',['../classmlx_1_1core_1_1_equal.html#a4af81cf2dd071db5bbf8ce1df95fdf36',1,'mlx::core::Equal']]], + ['equal_19',['equal',['../group__ops.html#ga33638dc3a9972dd02be12d0eb85f9bde',1,'mlx::core']]], + ['erase_20',['erase',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ae136ad270522210c85c13cacf5165238',1,'mlx::core::metal::ResidencySet']]], + ['erf_21',['Erf',['../classmlx_1_1core_1_1_erf.html#a702f76f848928d8d7d3d0881ac6e4c82',1,'mlx::core::Erf']]], + ['erf_22',['erf',['../erf_8h.html#a6ce199ee56105c67adbf8c48c019a8b2',1,'erf(): erf.h'],['../group__ops.html#ga292a335240fd5d6d625fb7a340ff5eb0',1,'mlx::core::erf()']]], + ['erfinv_23',['ErfInv',['../classmlx_1_1core_1_1_erf_inv.html#a5d0279247b67da4592311559f04e1478',1,'mlx::core::ErfInv']]], + ['erfinv_24',['erfinv',['../erf_8h.html#a1846e0d683c7aff826bb32addcc3b885',1,'erfinv(): erf.h'],['../group__ops.html#ga76fb9062c64264e34d2e07013390557c',1,'mlx::core::erfinv()']]], + ['eval_25',['eval',['../classmlx_1_1core_1_1array.html#a2820c45188071a22175e9fa42e10a49a',1,'mlx::core::array::eval()'],['../namespacemlx_1_1core.html#a7d6e097d8effed52f4713672e471f299',1,'mlx::core::eval(std::vector< array > outputs)'],['../namespacemlx_1_1core.html#adb14f689c9f75f7901edb196c2bfb971',1,'mlx::core::eval(Arrays &&... outputs)']]], + ['eval_5fcpu_26',['eval_cpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#acdc1965ad64ee9ee6328fe150a97902e',1,'mlx::core::distributed::AllReduce::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#ab721fe0072fffbddbc3c4334dd033ba5',1,'mlx::core::distributed::AllGather::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#af2620837bfc1b97217d006ed6e374051',1,'mlx::core::distributed::Send::eval_cpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a3be84b08122a939edd6062d26261358a',1,'mlx::core::distributed::Recv::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#a7da6e0cfd630958d9633b2e2bd97a54f',1,'mlx::core::fast::RMSNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#adfc1d52bc266466ab29ee45fd8fab439',1,'mlx::core::fast::RMSNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a5d7a4c1c9ee84e327d1c371733108c05',1,'mlx::core::fast::LayerNorm::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a0d8c4c6e7462befc38f7e08244fa1c2b',1,'mlx::core::fast::LayerNormVJP::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a05a7d595c6b9dadf7ddfd6e3fd402f0e',1,'mlx::core::fast::RoPE::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ae20851e002f7fcb6d4f97817596f6328',1,'mlx::core::fast::ScaledDotProductAttention::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a3b5d628628d245b38911118d4a0ff9fd',1,'mlx::core::fast::AffineQuantize::eval_cpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a4ad1b7a9919753c759093f3e21a15bad',1,'mlx::core::fast::CustomKernel::eval_cpu()'],['../classmlx_1_1core_1_1_primitive.html#a1596dc50b910538eae14878e98f07575',1,'mlx::core::Primitive::eval_cpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a7e8f6f5d6ae0a33f6abc0f5a46e0b132',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#aa0ed6e32c36200a3ff9bc592c9b300db',1,'mlx::core::UnaryPrimitive::eval_cpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0d3e697496ef8e842d21195cb3c14e60',1,'mlx::core::Abs::eval_cpu()'],['../classmlx_1_1core_1_1_add.html#a5bacfc51dfa2a5a931bad2dd7bdc7a5f',1,'mlx::core::Add::eval_cpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a15694e3bf2ed5c193237b2b9ca00867c',1,'mlx::core::AddMM::eval_cpu()'],['../classmlx_1_1core_1_1_arange.html#aba44432491cbd599bf72712f5f4267a1',1,'mlx::core::Arange::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a58dcba9e706cb12bab062bb7fa5fa006',1,'mlx::core::ArcCos::eval_cpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#a0f6d989bcbbc38f15ef17a136879a9c9',1,'mlx::core::ArcCosh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sin.html#ab3542492c14021329788de8f2a9be1e4',1,'mlx::core::ArcSin::eval_cpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a52574b24d8d16839c58673f51f8ac066',1,'mlx::core::ArcSinh::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a1211bc31241227528f04435239ddb9a3',1,'mlx::core::ArcTan::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a13094e6b702769928ca0da468f5ce45c',1,'mlx::core::ArcTan2::eval_cpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a5af9224e1f1ffec412b0baa0af7e1ecd',1,'mlx::core::ArcTanh::eval_cpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a896f75c5325798ac3f9093f6a4581828',1,'mlx::core::ArgPartition::eval_cpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#ad8d48725623ede1ff654fa13eccf2287',1,'mlx::core::ArgReduce::eval_cpu()'],['../classmlx_1_1core_1_1_arg_sort.html#a022079683774bfeb531b3a002cff16fa',1,'mlx::core::ArgSort::eval_cpu()'],['../classmlx_1_1core_1_1_as_type.html#aa89dbf4d73b00c6a44cffd04d5bb228d',1,'mlx::core::AsType::eval_cpu()'],['../classmlx_1_1core_1_1_as_strided.html#acdd4705e4503ff0b124215c4676b4193',1,'mlx::core::AsStrided::eval_cpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a2194bf585213bda1b2966aa02d2fe283',1,'mlx::core::BitwiseBinary::eval_cpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aa85da478cdc6d4a97be06e5d4abee1f2',1,'mlx::core::BlockMaskedMM::eval_cpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#a62352074a480df0e1f879b0bae425730',1,'mlx::core::GatherMM::eval_cpu()'],['../classmlx_1_1core_1_1_broadcast.html#a53d48d9778e2d4c24a124cd767900780',1,'mlx::core::Broadcast::eval_cpu()'],['../classmlx_1_1core_1_1_ceil.html#a9791801fff3f8b79944e15ac2a45a035',1,'mlx::core::Ceil::eval_cpu()'],['../classmlx_1_1core_1_1_compiled.html#ac45b1d0fedd85feefbff7ce7e168b151',1,'mlx::core::Compiled::eval_cpu()'],['../classmlx_1_1core_1_1_concatenate.html#a609e76bede7fc5581ec84ddcb727a258',1,'mlx::core::Concatenate::eval_cpu()'],['../classmlx_1_1core_1_1_conjugate.html#ae39643e2178f442ffba05139f8609d61',1,'mlx::core::Conjugate::eval_cpu()'],['../classmlx_1_1core_1_1_convolution.html#ac74256068da01730629109fa4fa8432b',1,'mlx::core::Convolution::eval_cpu()'],['../classmlx_1_1core_1_1_copy.html#af4a0ebec423e84ffe8083a5e9ed0d70c',1,'mlx::core::Copy::eval_cpu()'],['../classmlx_1_1core_1_1_cos.html#a061fc446268fe56237ae6b20ccf78152',1,'mlx::core::Cos::eval_cpu()'],['../classmlx_1_1core_1_1_cosh.html#ae8702df7e8f0e20cbeccb2a548961d3d',1,'mlx::core::Cosh::eval_cpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#adba1c40c77a2138df6b5f75483f62184',1,'mlx::core::CustomTransforms::eval_cpu()'],['../classmlx_1_1core_1_1_depends.html#a0c7ea6db97337591fa53c6e6bde41e5e',1,'mlx::core::Depends::eval_cpu()'],['../classmlx_1_1core_1_1_divide.html#a823443c2a8e8b81bbcaeee6ddbcdbf49',1,'mlx::core::Divide::eval_cpu()'],['../classmlx_1_1core_1_1_div_mod.html#ae350b7b93ad128e3133ee14f247193b3',1,'mlx::core::DivMod::eval_cpu()'],['../classmlx_1_1core_1_1_select.html#aa51aa36e0adbd69e0d23d7c7adf88de2',1,'mlx::core::Select::eval_cpu()'],['../classmlx_1_1core_1_1_remainder.html#ac6c6c86a0bf02e6e529eb87f6e617ccc',1,'mlx::core::Remainder::eval_cpu()'],['../classmlx_1_1core_1_1_equal.html#aabb8aa61fa581defddcdca1274b1b454',1,'mlx::core::Equal::eval_cpu()'],['../classmlx_1_1core_1_1_erf.html#a84ea16e43d5b7f83bbc2d5ece78a3fb6',1,'mlx::core::Erf::eval_cpu()'],['../classmlx_1_1core_1_1_erf_inv.html#af579627402af3249565134884701d39e',1,'mlx::core::ErfInv::eval_cpu()'],['../classmlx_1_1core_1_1_exp.html#a47934c5a5023bc7ae7ae89bff45ebb2c',1,'mlx::core::Exp::eval_cpu()'],['../classmlx_1_1core_1_1_expm1.html#ab9c8b7aa50fe4592d55f8957baac647a',1,'mlx::core::Expm1::eval_cpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a6bc262a0c2b5d4fe655e3e2e0ff28635',1,'mlx::core::FFT::eval_cpu()'],['../classmlx_1_1core_1_1_floor.html#a1a7dc5f571b7b73e7ef3cbdc1dd1fcf7',1,'mlx::core::Floor::eval_cpu()'],['../classmlx_1_1core_1_1_full.html#a3dccd3756599d7fd018b2af0093b082c',1,'mlx::core::Full::eval_cpu()'],['../classmlx_1_1core_1_1_gather.html#a9ed5587f0d04b59a2b9186c0aac21290',1,'mlx::core::Gather::eval_cpu()'],['../classmlx_1_1core_1_1_greater.html#abe1c03f311d0e0b610f3392a6566f2ae',1,'mlx::core::Greater::eval_cpu()'],['../classmlx_1_1core_1_1_greater_equal.html#a15469125b9bea89b64bfeac01590c075',1,'mlx::core::GreaterEqual::eval_cpu()'],['../classmlx_1_1core_1_1_hadamard.html#ab27d6a9df42b3aab41ace3073a4c880d',1,'mlx::core::Hadamard::eval_cpu()'],['../classmlx_1_1core_1_1_imag.html#a17d1f1f9f8528668fcdf39b636720829',1,'mlx::core::Imag::eval_cpu()'],['../classmlx_1_1core_1_1_less.html#a32624124ffece066f496b3299056bcef',1,'mlx::core::Less::eval_cpu()'],['../classmlx_1_1core_1_1_less_equal.html#a55d1352b0e97841a92503bc57c19ed16',1,'mlx::core::LessEqual::eval_cpu()'],['../classmlx_1_1core_1_1_load.html#ada026ac30566f3109d8182e35d307c0a',1,'mlx::core::Load::eval_cpu()'],['../classmlx_1_1core_1_1_log.html#aadc7bb4cb24f3ecbbb9ed54a699ab74f',1,'mlx::core::Log::eval_cpu()'],['../classmlx_1_1core_1_1_log1p.html#a8192e5438de99c4cda056987935cba23',1,'mlx::core::Log1p::eval_cpu()'],['../classmlx_1_1core_1_1_logical_not.html#acf3f7b3b20ca69533536e0e0a05725b3',1,'mlx::core::LogicalNot::eval_cpu()'],['../classmlx_1_1core_1_1_logical_and.html#adbe1c1785af1a8b827289d22b0d170b3',1,'mlx::core::LogicalAnd::eval_cpu()'],['../classmlx_1_1core_1_1_logical_or.html#a13cd4cbf26589287e85aeaaca42d7f62',1,'mlx::core::LogicalOr::eval_cpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#abef17fb590b1a8d356f2a580e45d41f0',1,'mlx::core::LogAddExp::eval_cpu()'],['../classmlx_1_1core_1_1_matmul.html#a357a7f57a2a220a91977f810a69413fc',1,'mlx::core::Matmul::eval_cpu()'],['../classmlx_1_1core_1_1_maximum.html#a62b38fbe5f96db58c2b60165ac4eadcf',1,'mlx::core::Maximum::eval_cpu()'],['../classmlx_1_1core_1_1_minimum.html#a6b93f493ee87089943a8085fe59dfc6e',1,'mlx::core::Minimum::eval_cpu()'],['../classmlx_1_1core_1_1_multiply.html#a624fce06c047cdc4dfdbdcaaddb25f34',1,'mlx::core::Multiply::eval_cpu()'],['../classmlx_1_1core_1_1_negative.html#af43553dc418c8ebe75fa9cdcba103c3b',1,'mlx::core::Negative::eval_cpu()'],['../classmlx_1_1core_1_1_not_equal.html#a8f95f8b5873850b875b1641df8196047',1,'mlx::core::NotEqual::eval_cpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#acc328321cf5300874ee884367cbede3f',1,'mlx::core::NumberOfElements::eval_cpu()'],['../classmlx_1_1core_1_1_pad.html#aaf82dd163cd536fbf97304f8b29080cb',1,'mlx::core::Pad::eval_cpu()'],['../classmlx_1_1core_1_1_partition.html#a784596ab567f9f3cb4fe1a69466523d8',1,'mlx::core::Partition::eval_cpu()'],['../classmlx_1_1core_1_1_power.html#a6783da16fb6ff393aaa57737f1973206',1,'mlx::core::Power::eval_cpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#ab3dfa73b74d8f4f2e9ab4f0eb016b0e3',1,'mlx::core::QuantizedMatmul::eval_cpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a89aae98bfbdd6563df44ef7d70f0bf8c',1,'mlx::core::GatherQMM::eval_cpu()'],['../classmlx_1_1core_1_1_random_bits.html#a5752d051cd16cf5f8d4754c0a656f0d2',1,'mlx::core::RandomBits::eval_cpu()'],['../classmlx_1_1core_1_1_real.html#a365d046caac91b521f0f5a5518037934',1,'mlx::core::Real::eval_cpu()'],['../classmlx_1_1core_1_1_reshape.html#a658de2c5f710991b48e14b2bd19b229f',1,'mlx::core::Reshape::eval_cpu()'],['../classmlx_1_1core_1_1_reduce.html#aeb8a58b560c0a09ae3a695df7829acfa',1,'mlx::core::Reduce::eval_cpu()'],['../classmlx_1_1core_1_1_round.html#ad066b0944b437f64ab546025efa00007',1,'mlx::core::Round::eval_cpu()'],['../classmlx_1_1core_1_1_scan.html#a15676d9fd066e935782a923fba3e940b',1,'mlx::core::Scan::eval_cpu()'],['../classmlx_1_1core_1_1_scatter.html#a7623f590f8b77167b5ebb4f14bc9dc97',1,'mlx::core::Scatter::eval_cpu()'],['../classmlx_1_1core_1_1_sigmoid.html#aa930ce05734cca529ebcb8d0ca8e1255',1,'mlx::core::Sigmoid::eval_cpu()'],['../classmlx_1_1core_1_1_sign.html#a7498ec993b66879be30c5d9762c45a97',1,'mlx::core::Sign::eval_cpu()'],['../classmlx_1_1core_1_1_sin.html#ab34f9cebc2aed55a0b6ab4c991f02eb5',1,'mlx::core::Sin::eval_cpu()'],['../classmlx_1_1core_1_1_sinh.html#ab6d5f6f40d177f6435f6a51c71b939dd',1,'mlx::core::Sinh::eval_cpu()'],['../classmlx_1_1core_1_1_slice.html#a4b13503f5b2f5c6a90d394b020f9b3f2',1,'mlx::core::Slice::eval_cpu()'],['../classmlx_1_1core_1_1_slice_update.html#ad82ca0e3ab88a0e086431050deea831b',1,'mlx::core::SliceUpdate::eval_cpu()'],['../classmlx_1_1core_1_1_softmax.html#ac9ebc2eab1683b682e689ed8f4622b79',1,'mlx::core::Softmax::eval_cpu()'],['../classmlx_1_1core_1_1_sort.html#a459769a0241b2620e55bedaba19827cd',1,'mlx::core::Sort::eval_cpu()'],['../classmlx_1_1core_1_1_split.html#aff2889cb9074f0fda53edf8fa40b1fd4',1,'mlx::core::Split::eval_cpu()'],['../classmlx_1_1core_1_1_square.html#a1f4d327a705950616da63b83c2829e59',1,'mlx::core::Square::eval_cpu()'],['../classmlx_1_1core_1_1_sqrt.html#a5a64ecc4eef1e30a2963435dca7cefd5',1,'mlx::core::Sqrt::eval_cpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a56207714d374b08f60e4d9cdbc7340b2',1,'mlx::core::StopGradient::eval_cpu()'],['../classmlx_1_1core_1_1_subtract.html#a47574258b6c95f8ad260c114d6d36a12',1,'mlx::core::Subtract::eval_cpu()'],['../classmlx_1_1core_1_1_tan.html#a9c9a731158fa60eef30067fe0da9f3e9',1,'mlx::core::Tan::eval_cpu()'],['../classmlx_1_1core_1_1_tanh.html#af7ed4345f622da069e5b0284067923f5',1,'mlx::core::Tanh::eval_cpu()'],['../classmlx_1_1core_1_1_uniform.html#a037a2c96b79b70a64f2b637c9f1a432f',1,'mlx::core::Uniform::eval_cpu()'],['../classmlx_1_1core_1_1_view.html#a0ad6deb11914a242f10e8039fcb02497',1,'mlx::core::View::eval_cpu()'],['../classmlx_1_1core_1_1_transpose.html#a1fbcfcca43f9ec06c63a3c14708c30f8',1,'mlx::core::Transpose::eval_cpu()'],['../classmlx_1_1core_1_1_q_r_f.html#a48493887395d65a27f04de1804d277d2',1,'mlx::core::QRF::eval_cpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a637f5c39fa8b10722c04a066f6c1ada6',1,'mlx::core::SVD::eval_cpu()'],['../classmlx_1_1core_1_1_inverse.html#aeb1d8dc9bc4052a616023f65b3c7bb81',1,'mlx::core::Inverse::eval_cpu()'],['../classmlx_1_1core_1_1_cholesky.html#a4bdec36c1cc99aadf9a4a39d4c57bea5',1,'mlx::core::Cholesky::eval_cpu()'],['../classmlx_1_1core_1_1_eigh.html#a894b32e17229394f6a43b4a0655fd8be',1,'mlx::core::Eigh::eval_cpu()']]], + ['eval_5fgpu_27',['eval_gpu',['../classmlx_1_1core_1_1distributed_1_1_all_reduce.html#a52df7155f56b8450581b2fd2747cad20',1,'mlx::core::distributed::AllReduce::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_all_gather.html#a4251ce0f2db2045226b66210b828af7a',1,'mlx::core::distributed::AllGather::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_send.html#a0c8dbd2a912be91be04ec701e29fba3d',1,'mlx::core::distributed::Send::eval_gpu()'],['../classmlx_1_1core_1_1distributed_1_1_recv.html#a932e39624bc3d234a7489c3decc4749e',1,'mlx::core::distributed::Recv::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm.html#ae7955e8d43c097eecae264e804b4d8ca',1,'mlx::core::fast::RMSNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_r_m_s_norm_v_j_p.html#a48efb8fa84c4ba6cc9fb560ebbe01560',1,'mlx::core::fast::RMSNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm.html#a77abda7f47bffa2c037a5d60cccc1528',1,'mlx::core::fast::LayerNorm::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_layer_norm_v_j_p.html#a954a003a4a27c8c4c60a5a14142a9cc3',1,'mlx::core::fast::LayerNormVJP::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_ro_p_e.html#a913b6b00fc518b25ac3947e4e15790f2',1,'mlx::core::fast::RoPE::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#a505f38ba93a3499895f5312e0112e73d',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#ad51666e69f670e286293aff96eb435a9',1,'mlx::core::fast::ScaledDotProductAttention::eval_gpu(const std::vector< array > &inputs, array &out)'],['../classmlx_1_1core_1_1fast_1_1_affine_quantize.html#a63812b2abaf26ad7e7fa4c9e82db1628',1,'mlx::core::fast::AffineQuantize::eval_gpu()'],['../classmlx_1_1core_1_1fast_1_1_custom_kernel.html#a2ed2a16b23053f8195068386a99fd6db',1,'mlx::core::fast::CustomKernel::eval_gpu()'],['../classmlx_1_1core_1_1_primitive.html#ad217376dcf5eff691d731566faec2ba2',1,'mlx::core::Primitive::eval_gpu()'],['../classmlx_1_1core_1_1_unary_primitive.html#a6b7f80abaf038d53ec6ffbb0dfac6adb',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, array &output)=0'],['../classmlx_1_1core_1_1_unary_primitive.html#a971fe9ad47f6569118879ce1d0f41447',1,'mlx::core::UnaryPrimitive::eval_gpu(const std::vector< array > &inputs, std::vector< array > &outputs) override'],['../classmlx_1_1core_1_1_abs.html#a0a976e636dd8505b473fbdddf949f514',1,'mlx::core::Abs::eval_gpu()'],['../classmlx_1_1core_1_1_add.html#aa0aacbc1e26b95a2f040f62aa4f69c3d',1,'mlx::core::Add::eval_gpu()'],['../classmlx_1_1core_1_1_add_m_m.html#a5f933be14baebc32a0be0f9a69148aa9',1,'mlx::core::AddMM::eval_gpu()'],['../classmlx_1_1core_1_1_arange.html#a7a2e9787c6c3a78b4a6df91206974031',1,'mlx::core::Arange::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cos.html#a46f72d4af89b0a0f5f203783fb44589c',1,'mlx::core::ArcCos::eval_gpu()'],['../classmlx_1_1core_1_1_arc_cosh.html#aa6a2587485a0e015ac2d5211d7d045fc',1,'mlx::core::ArcCosh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sin.html#a7fa4ae7a85bc8bed97ea258ae30762f3',1,'mlx::core::ArcSin::eval_gpu()'],['../classmlx_1_1core_1_1_arc_sinh.html#a79f648a86de4c10386a1ce3b5e38e8ac',1,'mlx::core::ArcSinh::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan.html#a77866feb27028865d844070447c9a254',1,'mlx::core::ArcTan::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tan2.html#a76d3f0c29e0ff4642b8d39dac90d3f50',1,'mlx::core::ArcTan2::eval_gpu()'],['../classmlx_1_1core_1_1_arc_tanh.html#a10566b9d3b2c7d090895b46d9040bc1d',1,'mlx::core::ArcTanh::eval_gpu()'],['../classmlx_1_1core_1_1_arg_partition.html#a9a60995eaf85f63c877e86b23cbc15fc',1,'mlx::core::ArgPartition::eval_gpu()'],['../classmlx_1_1core_1_1_arg_reduce.html#aafa982ce2abc0cd9e81e43aa2c823d29',1,'mlx::core::ArgReduce::eval_gpu()'],['../classmlx_1_1core_1_1_arg_sort.html#abc2d730850ec4ee8d7968b7417911709',1,'mlx::core::ArgSort::eval_gpu()'],['../classmlx_1_1core_1_1_as_type.html#a5b111b9d74c60d27b4a7ebaa49f96e0b',1,'mlx::core::AsType::eval_gpu()'],['../classmlx_1_1core_1_1_as_strided.html#ab6771a208323994927ca162ba7bb10ed',1,'mlx::core::AsStrided::eval_gpu()'],['../classmlx_1_1core_1_1_bitwise_binary.html#ac831a29fc46701b00bbe63ee33832afd',1,'mlx::core::BitwiseBinary::eval_gpu()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#ab372b6df4de00a33795a052a23bb1df9',1,'mlx::core::BlockMaskedMM::eval_gpu()'],['../classmlx_1_1core_1_1_gather_m_m.html#ad754c35f460a055cc383ad93a5f72da1',1,'mlx::core::GatherMM::eval_gpu()'],['../classmlx_1_1core_1_1_broadcast.html#ab9bd9dbcedcefc9b29c84911b5ce69fe',1,'mlx::core::Broadcast::eval_gpu()'],['../classmlx_1_1core_1_1_ceil.html#abe178e0058e44b6618be414215e96887',1,'mlx::core::Ceil::eval_gpu()'],['../classmlx_1_1core_1_1_compiled.html#aa3d5ff0f2b3554ad48fbbf2a0f3336d5',1,'mlx::core::Compiled::eval_gpu()'],['../classmlx_1_1core_1_1_concatenate.html#a309a1c50e97f9925866433ee2841c474',1,'mlx::core::Concatenate::eval_gpu()'],['../classmlx_1_1core_1_1_conjugate.html#aff0a802166e3724db88ab5d3feb2d3de',1,'mlx::core::Conjugate::eval_gpu()'],['../classmlx_1_1core_1_1_convolution.html#a30b64109eeb1778f002b99447dff9dd2',1,'mlx::core::Convolution::eval_gpu()'],['../classmlx_1_1core_1_1_copy.html#a1eda7b2ea771a168f67421f0d384b3a1',1,'mlx::core::Copy::eval_gpu()'],['../classmlx_1_1core_1_1_cos.html#a5ef41aafad595f6cdd8c535e36e12060',1,'mlx::core::Cos::eval_gpu()'],['../classmlx_1_1core_1_1_cosh.html#a23f71b43792934c3ec0ebe9b74f32559',1,'mlx::core::Cosh::eval_gpu()'],['../classmlx_1_1core_1_1_custom_transforms.html#a7b3538681acbb20af3ed37b0877f6667',1,'mlx::core::CustomTransforms::eval_gpu()'],['../classmlx_1_1core_1_1_depends.html#ae5057f65e69490ad0add8eeda2b75e28',1,'mlx::core::Depends::eval_gpu()'],['../classmlx_1_1core_1_1_divide.html#abffda0ce37221ddc28dc9eea794f6bc7',1,'mlx::core::Divide::eval_gpu()'],['../classmlx_1_1core_1_1_div_mod.html#a003117c9ecf3c06a27248f72a76348dc',1,'mlx::core::DivMod::eval_gpu()'],['../classmlx_1_1core_1_1_select.html#a2a82b6cba4c386b2b87f225a4b08ea9b',1,'mlx::core::Select::eval_gpu()'],['../classmlx_1_1core_1_1_remainder.html#a7919ea9b84e42522d51bf0d5a396e161',1,'mlx::core::Remainder::eval_gpu()'],['../classmlx_1_1core_1_1_equal.html#ac3757001fec42ceb5ece2954df42161c',1,'mlx::core::Equal::eval_gpu()'],['../classmlx_1_1core_1_1_erf.html#ad8551be664d767dccc3c0d8cc1eca008',1,'mlx::core::Erf::eval_gpu()'],['../classmlx_1_1core_1_1_erf_inv.html#a4a2413d0634db1f3dae1806ddfa632db',1,'mlx::core::ErfInv::eval_gpu()'],['../classmlx_1_1core_1_1_exp.html#a7d63695a97a14760fd33b5d4e6590822',1,'mlx::core::Exp::eval_gpu()'],['../classmlx_1_1core_1_1_expm1.html#a82930071f4b77d883b300f77966aff5f',1,'mlx::core::Expm1::eval_gpu()'],['../classmlx_1_1core_1_1_f_f_t.html#a1c21b26d1e9ad7c4da78ae845721b2dd',1,'mlx::core::FFT::eval_gpu()'],['../classmlx_1_1core_1_1_floor.html#aaa29c83538099eb8f951c95a41f2eb65',1,'mlx::core::Floor::eval_gpu()'],['../classmlx_1_1core_1_1_full.html#aa54f99bb4cba12a551392dea56003872',1,'mlx::core::Full::eval_gpu()'],['../classmlx_1_1core_1_1_gather.html#aec48ee529cb2449915a7b27a3c4361e8',1,'mlx::core::Gather::eval_gpu()'],['../classmlx_1_1core_1_1_greater.html#ae8957cccf4c924d941f57a1bb751c878',1,'mlx::core::Greater::eval_gpu()'],['../classmlx_1_1core_1_1_greater_equal.html#ac246263b4548126c3d4ab7e392575d24',1,'mlx::core::GreaterEqual::eval_gpu()'],['../classmlx_1_1core_1_1_hadamard.html#a2470feb690f5463138490763c38b5733',1,'mlx::core::Hadamard::eval_gpu()'],['../classmlx_1_1core_1_1_imag.html#a247a4d059b0a99678c6be8c15e42c1e6',1,'mlx::core::Imag::eval_gpu()'],['../classmlx_1_1core_1_1_less.html#a353335ce06ddbe8498d86d129c835917',1,'mlx::core::Less::eval_gpu()'],['../classmlx_1_1core_1_1_less_equal.html#acf035a82b11e6f63742143ea540fedac',1,'mlx::core::LessEqual::eval_gpu()'],['../classmlx_1_1core_1_1_load.html#a06933e887ea94a4d01d81195c5e07a3d',1,'mlx::core::Load::eval_gpu()'],['../classmlx_1_1core_1_1_log.html#aaaa49e9455f3a197bc319646b5ca6390',1,'mlx::core::Log::eval_gpu()'],['../classmlx_1_1core_1_1_log1p.html#a1b97decae7338d46874e736c95fa7431',1,'mlx::core::Log1p::eval_gpu()'],['../classmlx_1_1core_1_1_logical_not.html#a1d0d2bc93f935eca6c85ef7bf67f2d6a',1,'mlx::core::LogicalNot::eval_gpu()'],['../classmlx_1_1core_1_1_logical_and.html#a132b2eedaa3978de5a5350da3c2ca40f',1,'mlx::core::LogicalAnd::eval_gpu()'],['../classmlx_1_1core_1_1_logical_or.html#a3be1da328f0f8620de2e4fc1d22a077a',1,'mlx::core::LogicalOr::eval_gpu()'],['../classmlx_1_1core_1_1_log_add_exp.html#acace355b62ec00df649f9f99e8f2eb7a',1,'mlx::core::LogAddExp::eval_gpu()'],['../classmlx_1_1core_1_1_matmul.html#a8707a4e9b75c769e8f1dbca15c6a1ae7',1,'mlx::core::Matmul::eval_gpu()'],['../classmlx_1_1core_1_1_maximum.html#ade0f721b10a6b3a12bdadd34c48f72a7',1,'mlx::core::Maximum::eval_gpu()'],['../classmlx_1_1core_1_1_minimum.html#aadc68afa0afbe2103f19d161f5e0a2ba',1,'mlx::core::Minimum::eval_gpu()'],['../classmlx_1_1core_1_1_multiply.html#a634fcb4e981d8d3f4d94252caf25bee0',1,'mlx::core::Multiply::eval_gpu()'],['../classmlx_1_1core_1_1_negative.html#a97f1b316eace0c6d9e576d766940c75b',1,'mlx::core::Negative::eval_gpu()'],['../classmlx_1_1core_1_1_not_equal.html#a61179747e34e203150e9c660dfddb5f2',1,'mlx::core::NotEqual::eval_gpu()'],['../classmlx_1_1core_1_1_number_of_elements.html#a2c98c42915fb2bfe12f5c99ea553eff5',1,'mlx::core::NumberOfElements::eval_gpu()'],['../classmlx_1_1core_1_1_pad.html#aefd4d3a5bd8b6b35b266c9e558ada153',1,'mlx::core::Pad::eval_gpu()'],['../classmlx_1_1core_1_1_partition.html#a8eca1be21ae9ccfda46e6f3e85f506ef',1,'mlx::core::Partition::eval_gpu()'],['../classmlx_1_1core_1_1_power.html#a80577d4c0853c24027777c90a1ec7e11',1,'mlx::core::Power::eval_gpu()'],['../classmlx_1_1core_1_1_quantized_matmul.html#a2812ad007d695ed1aaf9cf706fb9c4b3',1,'mlx::core::QuantizedMatmul::eval_gpu()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a86eb048afc95646b2e96ec5493e3d887',1,'mlx::core::GatherQMM::eval_gpu()'],['../classmlx_1_1core_1_1_random_bits.html#a578756866665358577418e4cdd94aa3a',1,'mlx::core::RandomBits::eval_gpu()'],['../classmlx_1_1core_1_1_real.html#a1e209e88a43bdd1eea43ad0b03f9a7f2',1,'mlx::core::Real::eval_gpu()'],['../classmlx_1_1core_1_1_reshape.html#aa1e85f28471875750c47351520b56059',1,'mlx::core::Reshape::eval_gpu()'],['../classmlx_1_1core_1_1_reduce.html#ae9caaf42edadfe73ea208d98f526890f',1,'mlx::core::Reduce::eval_gpu()'],['../classmlx_1_1core_1_1_round.html#af7fe5ff8f3db166c203b4be4b07f13ec',1,'mlx::core::Round::eval_gpu()'],['../classmlx_1_1core_1_1_scan.html#aef22c6fc2b2cb2a907cd8965c7413dde',1,'mlx::core::Scan::eval_gpu()'],['../classmlx_1_1core_1_1_scatter.html#ab304345db3d8cfeea15e27461ae2e678',1,'mlx::core::Scatter::eval_gpu()'],['../classmlx_1_1core_1_1_sigmoid.html#a7a6bd0222d51d7f25f2719a91ccdfeca',1,'mlx::core::Sigmoid::eval_gpu()'],['../classmlx_1_1core_1_1_sign.html#afa2b48b99a194106006b44af69ffda8b',1,'mlx::core::Sign::eval_gpu()'],['../classmlx_1_1core_1_1_sin.html#a6b59f1156cf8bdad8d45acd1d825cb5e',1,'mlx::core::Sin::eval_gpu()'],['../classmlx_1_1core_1_1_sinh.html#a5a1af2399f166d5b228b5e83a1837c75',1,'mlx::core::Sinh::eval_gpu()'],['../classmlx_1_1core_1_1_slice.html#aa53c21ff06a7c659e889af6b97d10a4a',1,'mlx::core::Slice::eval_gpu()'],['../classmlx_1_1core_1_1_slice_update.html#aac1a1d122e5697be057d63552141032b',1,'mlx::core::SliceUpdate::eval_gpu()'],['../classmlx_1_1core_1_1_softmax.html#a35dac69ddcc7e2ec0e1a76fe93db85af',1,'mlx::core::Softmax::eval_gpu()'],['../classmlx_1_1core_1_1_sort.html#a4141c48f0e8670c728663f3722675382',1,'mlx::core::Sort::eval_gpu()'],['../classmlx_1_1core_1_1_split.html#a78ddda89c4daee73c74cfbc1e44656df',1,'mlx::core::Split::eval_gpu()'],['../classmlx_1_1core_1_1_square.html#a0ea2a78a5bb52daa4103263bf2f98045',1,'mlx::core::Square::eval_gpu()'],['../classmlx_1_1core_1_1_sqrt.html#a6d205e679a593d1ba20206c5c47ba501',1,'mlx::core::Sqrt::eval_gpu()'],['../classmlx_1_1core_1_1_stop_gradient.html#a907b96f0a1ce608e211d87ccf2b9ca89',1,'mlx::core::StopGradient::eval_gpu()'],['../classmlx_1_1core_1_1_subtract.html#a69021b23daf061764d97fabbc0f4f06c',1,'mlx::core::Subtract::eval_gpu()'],['../classmlx_1_1core_1_1_tan.html#aca7dbb4836507005a2032ac957a04d3f',1,'mlx::core::Tan::eval_gpu()'],['../classmlx_1_1core_1_1_tanh.html#a48df896599ae93dbce84a5c0f50cf761',1,'mlx::core::Tanh::eval_gpu()'],['../classmlx_1_1core_1_1_uniform.html#a5f88cbf2495f24f87cefd99aaaebe4d0',1,'mlx::core::Uniform::eval_gpu()'],['../classmlx_1_1core_1_1_view.html#add6e12ff1e476fe1db7718b14f21b075',1,'mlx::core::View::eval_gpu()'],['../classmlx_1_1core_1_1_transpose.html#a38d25739c08aa594a6775015a1d7d92e',1,'mlx::core::Transpose::eval_gpu()'],['../classmlx_1_1core_1_1_q_r_f.html#ae5fa3482192f4713605cd07e7fc1c6c9',1,'mlx::core::QRF::eval_gpu()'],['../classmlx_1_1core_1_1_s_v_d.html#a7067b2207f826a25549d571856b94e83',1,'mlx::core::SVD::eval_gpu()'],['../classmlx_1_1core_1_1_inverse.html#a086fbbc947ad232e01686ad063a78ed2',1,'mlx::core::Inverse::eval_gpu()'],['../classmlx_1_1core_1_1_cholesky.html#a8c918594bf129888044ef37fcae56795',1,'mlx::core::Cholesky::eval_gpu()'],['../classmlx_1_1core_1_1_eigh.html#a67775b41c0a15e356f08d51d9736baa2',1,'mlx::core::Eigh::eval_gpu()']]], + ['event_28',['Event',['../classmlx_1_1core_1_1_event.html#a833506419b2110ad1abd89b2dd238b4d',1,'mlx::core::Event::Event()=default'],['../classmlx_1_1core_1_1_event.html#a13e4835f2ffb2cc22e29148a448ea184',1,'mlx::core::Event::Event(const Stream &steam)']]], + ['event_29',['event',['../classmlx_1_1core_1_1array.html#a0a8e4d6e67e739a712876bb36f88f9bf',1,'mlx::core::array']]], + ['exec_30',['exec',['../classpocketfft_1_1detail_1_1cfftp.html#a95211024bf007d27e700835db556fbd2',1,'pocketfft::detail::cfftp::exec()'],['../classpocketfft_1_1detail_1_1rfftp.html#a073972f42bdd3617693be7be2cb5e0ac',1,'pocketfft::detail::rfftp::exec()'],['../classpocketfft_1_1detail_1_1fftblue.html#a5fb03413a3d1a653842875adcf87ae8c',1,'pocketfft::detail::fftblue::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__c.html#a436afd63e8e130f97aff103ae964a45d',1,'pocketfft::detail::pocketfft_c::exec()'],['../classpocketfft_1_1detail_1_1pocketfft__r.html#a2815bc8aa04fa986834b02e502f98b33',1,'pocketfft::detail::pocketfft_r::exec()'],['../classpocketfft_1_1detail_1_1_t__dct1.html#a7736111ff9d220f983e41a6fecd5f058',1,'pocketfft::detail::T_dct1::exec()'],['../classpocketfft_1_1detail_1_1_t__dst1.html#a598a9511004263eb3610053d7efc9e26',1,'pocketfft::detail::T_dst1::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst23.html#a2a45b7b4612904c2be69c01f6d5029ac',1,'pocketfft::detail::T_dcst23::exec()'],['../classpocketfft_1_1detail_1_1_t__dcst4.html#af794ebf21009d5f918681188081df708',1,'pocketfft::detail::T_dcst4::exec()']]], + ['exec_5fr_31',['exec_r',['../classpocketfft_1_1detail_1_1fftblue.html#a642b4aff0485c7d9c8794161a1464f00',1,'pocketfft::detail::fftblue']]], + ['exp_32',['Exp',['../classmlx_1_1core_1_1_exp.html#a1d0a618cbb91ab29ef53b57ff6ed6e06',1,'mlx::core::Exp']]], + ['exp_33',['exp',['../namespacemetal.html#ac2a0b3618d922ac014baac8189d44650',1,'metal::exp()'],['../namespacemetal_1_1fast.html#ad3dbd387b63373c29e3449609f763ede',1,'metal::fast::exp()'],['../namespacemetal_1_1precise.html#a8d8d2d5700ce432b33cf47cf22528e8f',1,'metal::precise::exp()'],['../group__ops.html#ga8a3b04e23e347d99ecf411fd6f4e5125',1,'mlx::core::exp()']]], + ['exp10_34',['exp10',['../namespacemetal.html#a4c63707d13c89364496a48906631c204',1,'metal::exp10()'],['../namespacemetal_1_1fast.html#a453122f982485cbb4e471b3ac282ee5e',1,'metal::fast::exp10()'],['../namespacemetal_1_1precise.html#af9addb343c967da3a83e9e123a8521fd',1,'metal::precise::exp10()']]], + ['exp2_35',['exp2',['../namespacemetal.html#a228201c20777848804a4d0589c1d33e7',1,'metal::exp2()'],['../namespacemetal_1_1fast.html#ac092b65a46720adaf22f6266671d2d71',1,'metal::fast::exp2()'],['../namespacemetal_1_1precise.html#a92a880bd2197efc0da0f8f0f7ec1e4c9',1,'metal::precise::exp2()']]], + ['expand_5fdims_36',['expand_dims',['../group__ops.html#ga717f11149a8c7b4cc3e33bbcc0a97133',1,'mlx::core::expand_dims(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../group__ops.html#ga7a80adb4a5a36d18b5f234d4b034950a',1,'mlx::core::expand_dims(const array &a, int axis, StreamOrDevice s={})']]], + ['expm1_37',['Expm1',['../classmlx_1_1core_1_1_expm1.html#a47c2a1b2a4ef6bb07ba77c55ddddaec2',1,'mlx::core::Expm1']]], + ['expm1_38',['expm1',['../group__ops.html#ga54ca54f06bfb2be15b163a5209e2a0f0',1,'mlx::core']]], + ['expm1f_39',['expm1f',['../expm1f_8h.html#a87f66d30e185950f42ce3641783cdc40',1,'expm1f.h']]], + ['expm1f_5fscaled_5funchecked_40',['expm1f_scaled_unchecked',['../expm1f_8h.html#adf20e03405fba634ca8d01acac24592e',1,'expm1f.h']]], + ['export_5fto_5fdot_41',['export_to_dot',['../namespacemlx_1_1core.html#a57395bdf43d9c5c134e610c169222cca',1,'mlx::core::export_to_dot(std::ostream &os, const std::vector< array > &outputs)'],['../namespacemlx_1_1core.html#a839f94dbad44f0d37333006fc876b42e',1,'mlx::core::export_to_dot(std::ostream &os, Arrays &&... outputs)']]], + ['eye_42',['eye',['../group__ops.html#ga45e9e68246b0d1cf03c3cc9c9e7e6ae3',1,'mlx::core::eye(int n, int m, int k, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga2c9011310a1fa7c82f942f54102c36dd',1,'mlx::core::eye(int n, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga61657db78ef35d41112d362c869c25d2',1,'mlx::core::eye(int n, int m, StreamOrDevice s={})'],['../group__ops.html#ga908a15b42834be498a46856c99dfc779',1,'mlx::core::eye(int n, int m, int k, StreamOrDevice s={})'],['../group__ops.html#gab777fcf6d4a89172c69ec3492548dc0f',1,'mlx::core::eye(int n, StreamOrDevice s={})']]] ]; diff --git a/docs/build/html/search/functions_6.js b/docs/build/html/search/functions_6.js index 5ecae2da7..5a586a4af 100644 --- a/docs/build/html/search/functions_6.js +++ b/docs/build/html/search/functions_6.js @@ -5,30 +5,31 @@ var searchData= ['fast_5ferfinv_2',['fast_erfinv',['../namespacemlx_1_1core_1_1detail.html#ad0ff3975e4c96317df1a2de0f7a30c1d',1,'mlx::core::detail']]], ['fast_5fexp_3',['fast_exp',['../namespacemlx_1_1core_1_1detail.html#a2726436fc72d4a3f0030c89579b4d374',1,'mlx::core::detail']]], ['fdim_4',['fdim',['../namespacemetal.html#a85a560794be56d8116889c1ee2d78761',1,'metal::fdim()'],['../namespacemetal_1_1fast.html#a667df76100d5ea0ce5860ddae3e5a00b',1,'metal::fast::fdim()'],['../namespacemetal_1_1precise.html#af693e7c93de446e80dd1377f5e9e7260',1,'metal::precise::fdim()']]], - ['fft_5',['FFT',['../classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839',1,'mlx::core::FFT']]], - ['fft_6',['fft',['../namespacemlx_1_1core_1_1metal.html#a39f43360d9e916fcf7e86c919b419554',1,'mlx::core::metal::fft()'],['../backend_2metal_2kernels_2fft_8h.html#a4010b0e151e5f01e610e9c32234458c7',1,'fft(): fft.h'],['../namespacemlx_1_1core_1_1fft.html#ad672de5ca029a6925b05f03bbebe5ad3',1,'mlx::core::fft::fft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a3fe55b7b6eba32c4c8b2d206036216e0',1,'mlx::core::fft::fft(const array &a, int axis=-1, StreamOrDevice s={})']]], - ['fft2_7',['fft2',['../namespacemlx_1_1core_1_1fft.html#a02a7286e4b7a8ee149ec5d5b193b72d1',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a6eb0c5f8b33694ddb56748a97d17e8b7',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], - ['fftblue_8',['fftblue',['../classpocketfft_1_1detail_1_1fftblue.html#a8613b2131e7843bbca9e1cd4cc15bc01',1,'pocketfft::detail::fftblue']]], - ['fftn_9',['fftn',['../namespacemlx_1_1core_1_1fft.html#a26e310c739176796965e47a88c7a998f',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaa116429c2cb5bab20b464be890252c8',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a039a44197ad299a15a5847639292800c',1,'mlx::core::fft::fftn(const array &a, StreamOrDevice s={})']]], - ['filewriter_10',['FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html#a40b241ad540ee4aadc3a19a6b1ccfb4d',1,'mlx::core::io::FileWriter']]], - ['fill_5fgpu_11',['fill_gpu',['../namespacemlx_1_1core.html#ae789dbda2a0f4e21aa0984f6a5dc986c',1,'mlx::core']]], - ['flags_12',['flags',['../classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1',1,'mlx::core::array']]], - ['flatten_13',['flatten',['../group__ops.html#ga50aa98754b412bb57c083f6e3e95061f',1,'mlx::core::flatten(const array &a, int start_axis, int end_axis=-1, StreamOrDevice s={})'],['../group__ops.html#gaa6adbc9c86f0ab27d8810a02e9e719fd',1,'mlx::core::flatten(const array &a, StreamOrDevice s={})']]], - ['float_5fto_5fbfloat_5fbits_14',['float_to_bfloat_bits',['../backend_2metal_2kernels_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1',1,'bf16.h']]], - ['floor_15',['Floor',['../classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340',1,'mlx::core::Floor']]], - ['floor_16',['floor',['../namespacemetal.html#a020790f30c28a9982c4a83deaa258277',1,'metal::floor()'],['../namespacemetal_1_1fast.html#ac012ce1701c2339914f15cce9f2c632f',1,'metal::fast::floor()'],['../namespacemetal_1_1precise.html#a66e02b028e3cecfe7c80773460dc7925',1,'metal::precise::floor()'],['../group__ops.html#ga8d656904aa2690b60955ae745aecfc30',1,'mlx::core::floor(const array &a, StreamOrDevice s={})']]], - ['floor_5fdivide_17',['floor_divide',['../group__ops.html#ga05b4c6054d028107869511f927da01cd',1,'mlx::core']]], - ['fma_18',['fma',['../namespacemetal.html#a6301a78d69ff14a06194ca85a0c7d326',1,'metal::fma()'],['../namespacemetal_1_1fast.html#aebcd6e951da6f7157ec219eb7a8f1ddd',1,'metal::fast::fma()'],['../namespacemetal_1_1precise.html#a49391a64d6b66fe3a212516b316a2144',1,'metal::precise::fma()']]], - ['fmax_19',['fmax',['../namespacemetal.html#a0558e56fdb94b456deea6a4eb53964ed',1,'metal::fmax()'],['../namespacemetal_1_1fast.html#a26e3257cf877154f8a0d434be0bdb034',1,'metal::fast::fmax()'],['../namespacemetal_1_1precise.html#ac7d49f921c2883caf9eec66efc4de1cd',1,'metal::precise::fmax()']]], - ['fmax3_20',['fmax3',['../namespacemetal.html#ae0c1a7ba1a7449adc64d00b2a29e67f6',1,'metal::fmax3()'],['../namespacemetal_1_1fast.html#a5c6a3a389f348e1f92e8392b765a32c7',1,'metal::fast::fmax3()'],['../namespacemetal_1_1precise.html#adf750e51bd83d569994d0967029e3bdc',1,'metal::precise::fmax3()']]], - ['fmedian3_21',['fmedian3',['../namespacemetal.html#aa35227450d943fb88cf43162aa9d8c49',1,'metal::fmedian3()'],['../namespacemetal_1_1fast.html#a923869181c3f576f2d86fba5bfa85633',1,'metal::fast::fmedian3()'],['../namespacemetal_1_1precise.html#a48d1d0be889de4043b775bb6b030a989',1,'metal::precise::fmedian3()']]], - ['fmin_22',['fmin',['../namespacemetal.html#a66ac19825ea79b8294e243ae6d0b3d3c',1,'metal::fmin()'],['../namespacemetal_1_1fast.html#a7e202ec52bf12bfabdf2265b300acbfa',1,'metal::fast::fmin()'],['../namespacemetal_1_1precise.html#a18df8eb481dfa56c92ad31b5bab8e069',1,'metal::precise::fmin()']]], - ['fmin3_23',['fmin3',['../namespacemetal.html#ae2acd25f2241f00aaf89ff48f132a879',1,'metal::fmin3()'],['../namespacemetal_1_1fast.html#a9531c6a4a520927523961e6eb6b94c1a',1,'metal::fast::fmin3()'],['../namespacemetal_1_1precise.html#a5bb710e6742996d32225a8f54a0f116c',1,'metal::precise::fmin3()']]], - ['fmod_24',['fmod',['../namespacemetal.html#a2ff952d4d596a7969b2a3035fc2fda58',1,'metal::fmod()'],['../namespacemetal_1_1fast.html#adbec09f18a89f773d7e368ef04a69526',1,'metal::fast::fmod()'],['../namespacemetal_1_1precise.html#aa99937178a1fc8158054e328eeeae648',1,'metal::precise::fmod()']]], - ['four_5fstep_5ffft_25',['four_step_fft',['../backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de',1,'fft.h']]], - ['fract_26',['fract',['../namespacemetal.html#a6b1c15d251aeaacb1f4338a5e152ae78',1,'metal::fract()'],['../namespacemetal_1_1fast.html#aa8bb448827503e485eb649eb3edb2d4c',1,'metal::fast::fract()'],['../namespacemetal_1_1precise.html#a0f21c19332a90df1a8ff507a813b5757',1,'metal::precise::fract()']]], - ['free_27',['free',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb',1,'mlx::core::allocator::Allocator::free()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079',1,'mlx::core::allocator::CommonAllocator::free()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a109a0a37fb0b3be381a62dc3b1a54bf0',1,'mlx::core::metal::MetalAllocator::free()'],['../namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5',1,'mlx::core::allocator::free()']]], - ['frexp_28',['frexp',['../namespacemetal.html#ac89d4ef524d21a301da6c37dbd95ff9f',1,'metal::frexp()'],['../namespacemetal_1_1fast.html#a23902df22aeaa859ef673a36381387c2',1,'metal::fast::frexp()'],['../namespacemetal_1_1precise.html#a0fbb1624c308b97380f894f92fd858b4',1,'metal::precise::frexp()']]], - ['full_29',['Full',['../classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6',1,'mlx::core::Full']]], - ['full_30',['full',['../group__ops.html#ga7e85a476530c96ab73b894d1bddacf84',1,'mlx::core::full(std::vector< int > shape, array vals, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga9e3b15c3ec6b7922296777c5e1878d52',1,'mlx::core::full(std::vector< int > shape, array vals, StreamOrDevice s={})'],['../group__ops.html#gac34ff7f1e217b93e878053aaa5a51e58',1,'mlx::core::full(std::vector< int > shape, T val, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga5e33cf83db1a65c35e688142bd41d35c',1,'mlx::core::full(std::vector< int > shape, T val, StreamOrDevice s={})']]] + ['fence_5',['Fence',['../structmlx_1_1core_1_1metal_1_1_fence.html#a30bee4957ae595e04922952a8010fc79',1,'mlx::core::metal::Fence']]], + ['fft_6',['FFT',['../classmlx_1_1core_1_1_f_f_t.html#a0cdce626ed2c8eeeecc6949418437839',1,'mlx::core::FFT']]], + ['fft_7',['fft',['../namespacemlx_1_1core_1_1metal.html#a39f43360d9e916fcf7e86c919b419554',1,'mlx::core::metal::fft()'],['../backend_2metal_2kernels_2fft_8h.html#a4010b0e151e5f01e610e9c32234458c7',1,'fft(): fft.h'],['../namespacemlx_1_1core_1_1fft.html#ad672de5ca029a6925b05f03bbebe5ad3',1,'mlx::core::fft::fft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a3fe55b7b6eba32c4c8b2d206036216e0',1,'mlx::core::fft::fft(const array &a, int axis=-1, StreamOrDevice s={})']]], + ['fft2_8',['fft2',['../namespacemlx_1_1core_1_1fft.html#a02a7286e4b7a8ee149ec5d5b193b72d1',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a6eb0c5f8b33694ddb56748a97d17e8b7',1,'mlx::core::fft::fft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], + ['fftblue_9',['fftblue',['../classpocketfft_1_1detail_1_1fftblue.html#a8613b2131e7843bbca9e1cd4cc15bc01',1,'pocketfft::detail::fftblue']]], + ['fftn_10',['fftn',['../namespacemlx_1_1core_1_1fft.html#a26e310c739176796965e47a88c7a998f',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaa116429c2cb5bab20b464be890252c8',1,'mlx::core::fft::fftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a039a44197ad299a15a5847639292800c',1,'mlx::core::fft::fftn(const array &a, StreamOrDevice s={})']]], + ['filewriter_11',['FileWriter',['../classmlx_1_1core_1_1io_1_1_file_writer.html#a40b241ad540ee4aadc3a19a6b1ccfb4d',1,'mlx::core::io::FileWriter']]], + ['fill_5fgpu_12',['fill_gpu',['../namespacemlx_1_1core.html#ae789dbda2a0f4e21aa0984f6a5dc986c',1,'mlx::core']]], + ['flags_13',['flags',['../classmlx_1_1core_1_1array.html#a0a20a6065ae71b64c1e3aa22a45fd8a1',1,'mlx::core::array']]], + ['flatten_14',['flatten',['../group__ops.html#ga50aa98754b412bb57c083f6e3e95061f',1,'mlx::core::flatten(const array &a, int start_axis, int end_axis=-1, StreamOrDevice s={})'],['../group__ops.html#gaa6adbc9c86f0ab27d8810a02e9e719fd',1,'mlx::core::flatten(const array &a, StreamOrDevice s={})']]], + ['float_5fto_5fbfloat_5fbits_15',['float_to_bfloat_bits',['../backend_2metal_2kernels_2bf16_8h.html#a31ce5e8e860295fa236e0d4b0befeae1',1,'bf16.h']]], + ['floor_16',['Floor',['../classmlx_1_1core_1_1_floor.html#ada4e979b784b732696313d7094e91340',1,'mlx::core::Floor']]], + ['floor_17',['floor',['../namespacemetal.html#a020790f30c28a9982c4a83deaa258277',1,'metal::floor()'],['../namespacemetal_1_1fast.html#ac012ce1701c2339914f15cce9f2c632f',1,'metal::fast::floor()'],['../namespacemetal_1_1precise.html#a66e02b028e3cecfe7c80773460dc7925',1,'metal::precise::floor()'],['../group__ops.html#ga8d656904aa2690b60955ae745aecfc30',1,'mlx::core::floor(const array &a, StreamOrDevice s={})']]], + ['floor_5fdivide_18',['floor_divide',['../group__ops.html#ga05b4c6054d028107869511f927da01cd',1,'mlx::core']]], + ['fma_19',['fma',['../namespacemetal.html#a6301a78d69ff14a06194ca85a0c7d326',1,'metal::fma()'],['../namespacemetal_1_1fast.html#aebcd6e951da6f7157ec219eb7a8f1ddd',1,'metal::fast::fma()'],['../namespacemetal_1_1precise.html#a49391a64d6b66fe3a212516b316a2144',1,'metal::precise::fma()']]], + ['fmax_20',['fmax',['../namespacemetal.html#a0558e56fdb94b456deea6a4eb53964ed',1,'metal::fmax()'],['../namespacemetal_1_1fast.html#a26e3257cf877154f8a0d434be0bdb034',1,'metal::fast::fmax()'],['../namespacemetal_1_1precise.html#ac7d49f921c2883caf9eec66efc4de1cd',1,'metal::precise::fmax()']]], + ['fmax3_21',['fmax3',['../namespacemetal.html#ae0c1a7ba1a7449adc64d00b2a29e67f6',1,'metal::fmax3()'],['../namespacemetal_1_1fast.html#a5c6a3a389f348e1f92e8392b765a32c7',1,'metal::fast::fmax3()'],['../namespacemetal_1_1precise.html#adf750e51bd83d569994d0967029e3bdc',1,'metal::precise::fmax3()']]], + ['fmedian3_22',['fmedian3',['../namespacemetal.html#aa35227450d943fb88cf43162aa9d8c49',1,'metal::fmedian3()'],['../namespacemetal_1_1fast.html#a923869181c3f576f2d86fba5bfa85633',1,'metal::fast::fmedian3()'],['../namespacemetal_1_1precise.html#a48d1d0be889de4043b775bb6b030a989',1,'metal::precise::fmedian3()']]], + ['fmin_23',['fmin',['../namespacemetal.html#a66ac19825ea79b8294e243ae6d0b3d3c',1,'metal::fmin()'],['../namespacemetal_1_1fast.html#a7e202ec52bf12bfabdf2265b300acbfa',1,'metal::fast::fmin()'],['../namespacemetal_1_1precise.html#a18df8eb481dfa56c92ad31b5bab8e069',1,'metal::precise::fmin()']]], + ['fmin3_24',['fmin3',['../namespacemetal.html#ae2acd25f2241f00aaf89ff48f132a879',1,'metal::fmin3()'],['../namespacemetal_1_1fast.html#a9531c6a4a520927523961e6eb6b94c1a',1,'metal::fast::fmin3()'],['../namespacemetal_1_1precise.html#a5bb710e6742996d32225a8f54a0f116c',1,'metal::precise::fmin3()']]], + ['fmod_25',['fmod',['../namespacemetal.html#a2ff952d4d596a7969b2a3035fc2fda58',1,'metal::fmod()'],['../namespacemetal_1_1fast.html#adbec09f18a89f773d7e368ef04a69526',1,'metal::fast::fmod()'],['../namespacemetal_1_1precise.html#aa99937178a1fc8158054e328eeeae648',1,'metal::precise::fmod()']]], + ['four_5fstep_5ffft_26',['four_step_fft',['../backend_2metal_2kernels_2fft_8h.html#a6558a8205ee4c3e4767bafa93f7606de',1,'fft.h']]], + ['fract_27',['fract',['../namespacemetal.html#a6b1c15d251aeaacb1f4338a5e152ae78',1,'metal::fract()'],['../namespacemetal_1_1fast.html#aa8bb448827503e485eb649eb3edb2d4c',1,'metal::fast::fract()'],['../namespacemetal_1_1precise.html#a0f21c19332a90df1a8ff507a813b5757',1,'metal::precise::fract()']]], + ['free_28',['free',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#ae963d551be646ae0e13df2c16f2beefb',1,'mlx::core::allocator::Allocator::free()'],['../classmlx_1_1core_1_1allocator_1_1_common_allocator.html#a84b50d1a3cbffa12c1a6cf0ed8c71079',1,'mlx::core::allocator::CommonAllocator::free()'],['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a109a0a37fb0b3be381a62dc3b1a54bf0',1,'mlx::core::metal::MetalAllocator::free()'],['../namespacemlx_1_1core_1_1allocator.html#a77f0a1215be242db6485612bcb273af5',1,'mlx::core::allocator::free()']]], + ['frexp_29',['frexp',['../namespacemetal.html#ac89d4ef524d21a301da6c37dbd95ff9f',1,'metal::frexp()'],['../namespacemetal_1_1fast.html#a23902df22aeaa859ef673a36381387c2',1,'metal::fast::frexp()'],['../namespacemetal_1_1precise.html#a0fbb1624c308b97380f894f92fd858b4',1,'metal::precise::frexp()']]], + ['full_30',['Full',['../classmlx_1_1core_1_1_full.html#aafcb86a2e41353853ec48c717e0c54d6',1,'mlx::core::Full']]], + ['full_31',['full',['../group__ops.html#ga7e85a476530c96ab73b894d1bddacf84',1,'mlx::core::full(std::vector< int > shape, array vals, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga9e3b15c3ec6b7922296777c5e1878d52',1,'mlx::core::full(std::vector< int > shape, array vals, StreamOrDevice s={})'],['../group__ops.html#gac34ff7f1e217b93e878053aaa5a51e58',1,'mlx::core::full(std::vector< int > shape, T val, Dtype dtype, StreamOrDevice s={})'],['../group__ops.html#ga5e33cf83db1a65c35e688142bd41d35c',1,'mlx::core::full(std::vector< int > shape, T val, StreamOrDevice s={})']]] ]; diff --git a/docs/build/html/search/functions_7.js b/docs/build/html/search/functions_7.js index 2f448e33c..31c00bb18 100644 --- a/docs/build/html/search/functions_7.js +++ b/docs/build/html/search/functions_7.js @@ -17,7 +17,7 @@ var searchData= ['general_5fc2r_14',['general_c2r',['../namespacepocketfft_1_1detail.html#ac8ee38e8d8bcda875c99eeaf567550fc',1,'pocketfft::detail']]], ['general_5fnd_15',['general_nd',['../namespacepocketfft_1_1detail.html#ab47f52551920af5eb9f57fbbded0f4f0',1,'pocketfft::detail']]], ['general_5fr2c_16',['general_r2c',['../namespacepocketfft_1_1detail.html#a055a39b0a337ca12217717196eb92fed',1,'pocketfft::detail']]], - ['get_5f2d_5fgrid_5fdims_17',['get_2d_grid_dims',['../namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c',1,'mlx::core']]], + ['get_5f2d_5fgrid_5fdims_17',['get_2d_grid_dims',['../namespacemlx_1_1core.html#a8dc169474a51a1f4f761d5752819bd7c',1,'mlx::core::get_2d_grid_dims(const std::vector< int > &shape, const std::vector< size_t > &strides)'],['../namespacemlx_1_1core.html#a187b9a932c7b3d67ee42d9d12fcb1bb1',1,'mlx::core::get_2d_grid_dims(const std::vector< int > &shape, const std::vector< size_t > &strides, size_t divisor)']]], ['get_5factive_5fmemory_18',['get_active_memory',['../classmlx_1_1core_1_1metal_1_1_metal_allocator.html#a7a3ad4e33d57a47474c98e2f88e775d7',1,'mlx::core::metal::MetalAllocator::get_active_memory()'],['../namespacemlx_1_1core_1_1metal.html#a7b75c2639016ac4d350fa6c9da386667',1,'mlx::core::metal::get_active_memory()']]], ['get_5farange_5fkernel_19',['get_arange_kernel',['../namespacemlx_1_1core.html#a76f614e9956a6ca05a9be4db5a483446',1,'mlx::core']]], ['get_5fbinary_5fkernel_20',['get_binary_kernel',['../namespacemlx_1_1core.html#a4decd4a07d91487e6903f6e3c8b7513a',1,'mlx::core']]], diff --git a/docs/build/html/search/functions_9.js b/docs/build/html/search/functions_9.js index fd48d5717..e1edfbb0f 100644 --- a/docs/build/html/search/functions_9.js +++ b/docs/build/html/search/functions_9.js @@ -15,32 +15,33 @@ var searchData= ['init_12',['init',['../namespacemlx_1_1core_1_1distributed.html#a33633c058c7ec82cca4f237243c6810d',1,'mlx::core::distributed']]], ['init_5freduce_13',['init_reduce',['../reduce__init_8h.html#a0088604ac2eaa6940689ff12c4ba5fc2',1,'reduce_init.h']]], ['inner_14',['inner',['../group__ops.html#ga654fec16a9746b390916697a2ab2546e',1,'mlx::core']]], - ['inputs_15',['inputs',['../classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff',1,'mlx::core::array::inputs() const'],['../classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f',1,'mlx::core::array::inputs()']]], - ['intracing_16',['InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a7a77f19391498afa5dcea3509d241a70',1,'mlx::core::detail::InTracing']]], - ['inv_17',['inv',['../namespacemlx_1_1core_1_1linalg.html#ad966a0b6bff176c9f933534ed62389a2',1,'mlx::core::linalg']]], - ['inverse_18',['Inverse',['../classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad',1,'mlx::core::Inverse']]], - ['iofs_19',['iofs',['../classpocketfft_1_1detail_1_1multi__iter.html#ad33360d4a8ab8e6d72efadc6f9cb5bfa',1,'pocketfft::detail::multi_iter::iofs(size_t i) const'],['../classpocketfft_1_1detail_1_1multi__iter.html#a97462d97bdca6419d8d2f37c2031fe83',1,'pocketfft::detail::multi_iter::iofs(size_t j, size_t i) const']]], - ['irfft_20',['irfft',['../namespacemlx_1_1core_1_1fft.html#aafa721d0492e9f74913a6e86b4896ad8',1,'mlx::core::fft::irfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#afbd0035a3cf91f428838de1fcf01a3a3',1,'mlx::core::fft::irfft(const array &a, int axis=-1, StreamOrDevice s={})']]], - ['irfft2_21',['irfft2',['../namespacemlx_1_1core_1_1fft.html#a35754b00e98d7ef37ce8230c8887a933',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#af7c7bbbbce26c2775a77473502a8de02',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], - ['irfftn_22',['irfftn',['../namespacemlx_1_1core_1_1fft.html#a33f2973ea1b621e67064e46136d2960f',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a1c9ad11121c5879d5c04bbde2ee238c3',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaf5a7ef93b3426b94c2363a23a5a5b36',1,'mlx::core::fft::irfftn(const array &a, StreamOrDevice s={})']]], - ['is_5favailable_23',['is_available',['../classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40',1,'mlx::core::array::is_available()'],['../namespacemlx_1_1core_1_1metal.html#a0cdf2c08c7bc0927a86070adc206987f',1,'mlx::core::metal::is_available()'],['../namespacemlx_1_1core_1_1distributed.html#a95655473cd0032c06e5fe3fca85aeef3',1,'mlx::core::distributed::is_available()']]], - ['is_5fdonatable_24',['is_donatable',['../classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087',1,'mlx::core::array::is_donatable()'],['../namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84',1,'mlx::core::is_donatable()']]], - ['is_5fequivalent_25',['is_equivalent',['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#af08b1294f3f93505a96fdfa85b1edd62',1,'mlx::core::fast::ScaledDotProductAttention::is_equivalent()'],['../classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd',1,'mlx::core::Primitive::is_equivalent()'],['../classmlx_1_1core_1_1_abs.html#ab6f0ec56bc7c048382297e12dabadc67',1,'mlx::core::Abs::is_equivalent()'],['../classmlx_1_1core_1_1_add.html#aba0a35410c3aac53d0f7a0c283d9ee3f',1,'mlx::core::Add::is_equivalent()'],['../classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f',1,'mlx::core::AddMM::is_equivalent()'],['../classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35',1,'mlx::core::Arange::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cos.html#a39557461e3235801886675a9b7d25bf5',1,'mlx::core::ArcCos::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6928e827b9ac2e86e7d5b02b78150eee',1,'mlx::core::ArcCosh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sin.html#a13b5e39eeccaf32d94b8eb85b3b753ab',1,'mlx::core::ArcSin::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sinh.html#a63c7a765c7906242dc3371deec094f0f',1,'mlx::core::ArcSinh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan.html#a0e5b5fc7218143ecd0a8666d9137c34c',1,'mlx::core::ArcTan::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan2.html#aeaee58cd803d3ebf0b76574a409682cc',1,'mlx::core::ArcTan2::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tanh.html#ac8ecdd640043dab0461d49d7650679a2',1,'mlx::core::ArcTanh::is_equivalent()'],['../classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a',1,'mlx::core::ArgPartition::is_equivalent()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97',1,'mlx::core::ArgReduce::is_equivalent()'],['../classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845',1,'mlx::core::ArgSort::is_equivalent()'],['../classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af',1,'mlx::core::AsType::is_equivalent()'],['../classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094',1,'mlx::core::AsStrided::is_equivalent()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8',1,'mlx::core::BitwiseBinary::is_equivalent()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160',1,'mlx::core::BlockMaskedMM::is_equivalent()'],['../classmlx_1_1core_1_1_gather_m_m.html#a163f17f6ce2c002f22e81b302777342b',1,'mlx::core::GatherMM::is_equivalent()'],['../classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616',1,'mlx::core::Broadcast::is_equivalent()'],['../classmlx_1_1core_1_1_ceil.html#aacd90acb56eb0649c1cef807aa21df52',1,'mlx::core::Ceil::is_equivalent()'],['../classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10',1,'mlx::core::Compiled::is_equivalent()'],['../classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2',1,'mlx::core::Concatenate::is_equivalent()'],['../classmlx_1_1core_1_1_conjugate.html#af42f00a790c6bc5572bd8fe9e5b36c5e',1,'mlx::core::Conjugate::is_equivalent()'],['../classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de',1,'mlx::core::Convolution::is_equivalent()'],['../classmlx_1_1core_1_1_copy.html#afcfa39465015f638e294aa954ea0f3da',1,'mlx::core::Copy::is_equivalent()'],['../classmlx_1_1core_1_1_cos.html#ab611ca38c987915659f7ffcce0370417',1,'mlx::core::Cos::is_equivalent()'],['../classmlx_1_1core_1_1_cosh.html#ae0bacccaf501f5349db0c13cca776ff9',1,'mlx::core::Cosh::is_equivalent()'],['../classmlx_1_1core_1_1_divide.html#a3dda091f05c4164c29bb8129e9712650',1,'mlx::core::Divide::is_equivalent()'],['../classmlx_1_1core_1_1_div_mod.html#af5fcf8ec8515d46844cbeeab6dafb38a',1,'mlx::core::DivMod::is_equivalent()'],['../classmlx_1_1core_1_1_select.html#afc3c333fac7f902c98839921ef2874c8',1,'mlx::core::Select::is_equivalent()'],['../classmlx_1_1core_1_1_remainder.html#a802039faaa2ed7b763ec3d7debcce814',1,'mlx::core::Remainder::is_equivalent()'],['../classmlx_1_1core_1_1_equal.html#a58c1c5003e43f47dc0788c1851deaa02',1,'mlx::core::Equal::is_equivalent()'],['../classmlx_1_1core_1_1_erf.html#abe99dfbc2954c3a7d5dec56ab165ee82',1,'mlx::core::Erf::is_equivalent()'],['../classmlx_1_1core_1_1_erf_inv.html#aaac9e3b454ba564f9c6e804ab6562832',1,'mlx::core::ErfInv::is_equivalent()'],['../classmlx_1_1core_1_1_exp.html#ac6e44bffe7a643ab4ca51e74c7328357',1,'mlx::core::Exp::is_equivalent()'],['../classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06',1,'mlx::core::FFT::is_equivalent()'],['../classmlx_1_1core_1_1_floor.html#a24b64feb026c4fcd02fc481cffdb1c94',1,'mlx::core::Floor::is_equivalent()'],['../classmlx_1_1core_1_1_full.html#afafcbcae1e28597fe8f7fde289105792',1,'mlx::core::Full::is_equivalent()'],['../classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa',1,'mlx::core::Gather::is_equivalent()'],['../classmlx_1_1core_1_1_greater.html#a6877a6888614a618dc64296763ccabb1',1,'mlx::core::Greater::is_equivalent()'],['../classmlx_1_1core_1_1_greater_equal.html#a3daef8596b963026b602019bc56fc5fc',1,'mlx::core::GreaterEqual::is_equivalent()'],['../classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8',1,'mlx::core::Hadamard::is_equivalent()'],['../classmlx_1_1core_1_1_imag.html#a51c15ae82855edebba2ba779516465f5',1,'mlx::core::Imag::is_equivalent()'],['../classmlx_1_1core_1_1_less.html#a7d6ed6353a0dcefebd008026dbd3cd63',1,'mlx::core::Less::is_equivalent()'],['../classmlx_1_1core_1_1_less_equal.html#a76ee1438cf4bd109eae4e0b3472b26af',1,'mlx::core::LessEqual::is_equivalent()'],['../classmlx_1_1core_1_1_log.html#a2fc58ea4ca744db493b947d1136d05f8',1,'mlx::core::Log::is_equivalent()'],['../classmlx_1_1core_1_1_logical_not.html#aba53675da351cd9b71a73d475b4bbe99',1,'mlx::core::LogicalNot::is_equivalent()'],['../classmlx_1_1core_1_1_logical_and.html#a9572c35f72e0db2f7f86bbf42438a6be',1,'mlx::core::LogicalAnd::is_equivalent()'],['../classmlx_1_1core_1_1_logical_or.html#a9c8b10a5cf5c69fdc2362390197e4e71',1,'mlx::core::LogicalOr::is_equivalent()'],['../classmlx_1_1core_1_1_log_add_exp.html#a3cf9a202c05aff39919d713d6e2b32e4',1,'mlx::core::LogAddExp::is_equivalent()'],['../classmlx_1_1core_1_1_matmul.html#aab372b59eae0840fc4f75ef5719a2630',1,'mlx::core::Matmul::is_equivalent()'],['../classmlx_1_1core_1_1_maximum.html#a21fe93fbd7799682f481260aee8bdb46',1,'mlx::core::Maximum::is_equivalent()'],['../classmlx_1_1core_1_1_minimum.html#a56c54ee3293cc2cd84462b9ec7ac36b4',1,'mlx::core::Minimum::is_equivalent()'],['../classmlx_1_1core_1_1_multiply.html#ae288159fa2d6d35087a85aca8eafa9b2',1,'mlx::core::Multiply::is_equivalent()'],['../classmlx_1_1core_1_1_negative.html#ac2a4d8159c548639d6289980c8975823',1,'mlx::core::Negative::is_equivalent()'],['../classmlx_1_1core_1_1_not_equal.html#ac12fd6b3e2f2e7e4e622b59badf2c73d',1,'mlx::core::NotEqual::is_equivalent()'],['../classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f',1,'mlx::core::NumberOfElements::is_equivalent()'],['../classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b',1,'mlx::core::Pad::is_equivalent()'],['../classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8',1,'mlx::core::Partition::is_equivalent()'],['../classmlx_1_1core_1_1_power.html#a76b4ec9d1ff07f06189e414480453d68',1,'mlx::core::Power::is_equivalent()'],['../classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1',1,'mlx::core::QuantizedMatmul::is_equivalent()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11',1,'mlx::core::GatherQMM::is_equivalent()'],['../classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6',1,'mlx::core::RandomBits::is_equivalent()'],['../classmlx_1_1core_1_1_real.html#a6d9bed396862a9e9d6abfbdcd8d8d239',1,'mlx::core::Real::is_equivalent()'],['../classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3',1,'mlx::core::Reshape::is_equivalent()'],['../classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e',1,'mlx::core::Reduce::is_equivalent()'],['../classmlx_1_1core_1_1_round.html#aeb3d8607bbba7345a3142d4cbd4e6927',1,'mlx::core::Round::is_equivalent()'],['../classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6',1,'mlx::core::Scan::is_equivalent()'],['../classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f',1,'mlx::core::Scatter::is_equivalent()'],['../classmlx_1_1core_1_1_sigmoid.html#a04814ba1b0edf8299d5ca1bcb8749d8e',1,'mlx::core::Sigmoid::is_equivalent()'],['../classmlx_1_1core_1_1_sign.html#a8c0934acbcc4b146e5aacd35a8c445bb',1,'mlx::core::Sign::is_equivalent()'],['../classmlx_1_1core_1_1_sin.html#af00b0e5516f884996ce7a97e6c1e3e6a',1,'mlx::core::Sin::is_equivalent()'],['../classmlx_1_1core_1_1_sinh.html#adcb1878996fd4902cd550042dd6ad70d',1,'mlx::core::Sinh::is_equivalent()'],['../classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0',1,'mlx::core::Slice::is_equivalent()'],['../classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119',1,'mlx::core::SliceUpdate::is_equivalent()'],['../classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728',1,'mlx::core::Softmax::is_equivalent()'],['../classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511',1,'mlx::core::Sort::is_equivalent()'],['../classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345',1,'mlx::core::Split::is_equivalent()'],['../classmlx_1_1core_1_1_square.html#a6abc881d44071019aa15481e5ea75ab2',1,'mlx::core::Square::is_equivalent()'],['../classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46',1,'mlx::core::Sqrt::is_equivalent()'],['../classmlx_1_1core_1_1_stop_gradient.html#a327539298b21d800d26482b94fce41b3',1,'mlx::core::StopGradient::is_equivalent()'],['../classmlx_1_1core_1_1_subtract.html#af1c05e1e3f703ba916d54f8ccbbd102b',1,'mlx::core::Subtract::is_equivalent()'],['../classmlx_1_1core_1_1_tan.html#afdf46288e7f60ea7f878688347dff7e4',1,'mlx::core::Tan::is_equivalent()'],['../classmlx_1_1core_1_1_tanh.html#a0692a1de2373b86eb394252ed4fecfda',1,'mlx::core::Tanh::is_equivalent()'],['../classmlx_1_1core_1_1_uniform.html#abb6048807a7c5b2e35a77e06a17f801b',1,'mlx::core::Uniform::is_equivalent()'],['../classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64',1,'mlx::core::View::is_equivalent()'],['../classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab',1,'mlx::core::Transpose::is_equivalent()']]], - ['is_5fopen_26',['is_open',['../classmlx_1_1core_1_1io_1_1_reader.html#a780f504058bd9c80cb3d105046a9f985',1,'mlx::core::io::Reader::is_open()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a85aa36bdb0dbfb8c5b6cfd955b03417a',1,'mlx::core::io::Writer::is_open()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a653009adbcbce8248bc666df502fdbde',1,'mlx::core::io::ParallelFileReader::is_open()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#ad5d2ee671a81700cb1658c41309d6676',1,'mlx::core::io::FileWriter::is_open()']]], - ['is_5fpower_5fof_5f2_27',['is_power_of_2',['../namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32',1,'mlx::core']]], - ['is_5fready_28',['is_ready',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#ab41ecc5adb6187aa2682ca190fd920f3',1,'pocketfft::detail::threading::latch']]], - ['is_5fsame_5fshape_29',['is_same_shape',['../namespacemlx_1_1core.html#ad4b664de4a4abd305827b30879b9da33',1,'mlx::core']]], - ['is_5fscalar_30',['is_scalar',['../namespacemlx_1_1core.html#a985c60929757190e0b4ec51f57c767d0',1,'mlx::core']]], - ['is_5fsignaled_31',['is_signaled',['../classmlx_1_1core_1_1_event.html#a05a9a3de88185b4a89e154242b4e770a',1,'mlx::core::Event']]], - ['is_5fstatic_5fcast_32',['is_static_cast',['../namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f',1,'mlx::core']]], - ['is_5ftracer_33',['is_tracer',['../classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c',1,'mlx::core::array']]], - ['isclose_34',['isclose',['../group__ops.html#ga51eac95c04400921c54716de14b52491',1,'mlx::core']]], - ['isfinite_35',['isfinite',['../group__ops.html#ga725ff0789f934b1fdd54ee29e47022ff',1,'mlx::core']]], - ['isinf_36',['isinf',['../group__ops.html#ga8fc238d5e5d1153e69da8b36015d9844',1,'mlx::core']]], - ['isnan_37',['isnan',['../namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb',1,'metal::isnan()'],['../group__ops.html#ga175592792471b0ffb45196dca4711ba6',1,'mlx::core::isnan(const array &a, StreamOrDevice s={})']]], - ['isneginf_38',['isneginf',['../group__ops.html#ga1940523da381ed7be50656a3bc465ff3',1,'mlx::core']]], - ['isposinf_39',['isposinf',['../group__ops.html#gad80f7c4a58c12b6cb30a8b9a73008993',1,'mlx::core']]], - ['issubdtype_40',['issubdtype',['../namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7',1,'mlx::core::issubdtype(const Dtype &a, const Dtype &b)'],['../namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype &b)'],['../namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8',1,'mlx::core::issubdtype(const Dtype &a, const Dtype::Category &b)'],['../namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype::Category &b)']]], - ['item_41',['item',['../classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99',1,'mlx::core::array::item()'],['../classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7',1,'mlx::core::array::item() const']]], - ['itemsize_42',['itemsize',['../classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0',1,'mlx::core::array']]] + ['inputs_15',['inputs',['../classmlx_1_1core_1_1array.html#a2913abcdf71826827c8457f529825fff',1,'mlx::core::array::inputs() const'],['../classmlx_1_1core_1_1array.html#acffb082177f9b78f0c52e406adff972f',1,'mlx::core::array::inputs()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a27ded7e54bc1712063c874646b445509',1,'mlx::core::metal::CommandEncoder::inputs()']]], + ['insert_16',['insert',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#aaafe1a4305a107d4bcdd4f35d3df09b3',1,'mlx::core::metal::ResidencySet']]], + ['intracing_17',['InTracing',['../structmlx_1_1core_1_1detail_1_1_in_tracing.html#a7a77f19391498afa5dcea3509d241a70',1,'mlx::core::detail::InTracing']]], + ['inv_18',['inv',['../namespacemlx_1_1core_1_1linalg.html#ad966a0b6bff176c9f933534ed62389a2',1,'mlx::core::linalg']]], + ['inverse_19',['Inverse',['../classmlx_1_1core_1_1_inverse.html#a71467681e523abb725724490bfeb76ad',1,'mlx::core::Inverse']]], + ['iofs_20',['iofs',['../classpocketfft_1_1detail_1_1multi__iter.html#ad33360d4a8ab8e6d72efadc6f9cb5bfa',1,'pocketfft::detail::multi_iter::iofs(size_t i) const'],['../classpocketfft_1_1detail_1_1multi__iter.html#a97462d97bdca6419d8d2f37c2031fe83',1,'pocketfft::detail::multi_iter::iofs(size_t j, size_t i) const']]], + ['irfft_21',['irfft',['../namespacemlx_1_1core_1_1fft.html#aafa721d0492e9f74913a6e86b4896ad8',1,'mlx::core::fft::irfft(const array &a, int n, int axis, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#afbd0035a3cf91f428838de1fcf01a3a3',1,'mlx::core::fft::irfft(const array &a, int axis=-1, StreamOrDevice s={})']]], + ['irfft2_22',['irfft2',['../namespacemlx_1_1core_1_1fft.html#a35754b00e98d7ef37ce8230c8887a933',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#af7c7bbbbce26c2775a77473502a8de02',1,'mlx::core::fft::irfft2(const array &a, const std::vector< int > &axes={-2, -1}, StreamOrDevice s={})']]], + ['irfftn_23',['irfftn',['../namespacemlx_1_1core_1_1fft.html#a33f2973ea1b621e67064e46136d2960f',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &n, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#a1c9ad11121c5879d5c04bbde2ee238c3',1,'mlx::core::fft::irfftn(const array &a, const std::vector< int > &axes, StreamOrDevice s={})'],['../namespacemlx_1_1core_1_1fft.html#aaf5a7ef93b3426b94c2363a23a5a5b36',1,'mlx::core::fft::irfftn(const array &a, StreamOrDevice s={})']]], + ['is_5favailable_24',['is_available',['../classmlx_1_1core_1_1array.html#aebed1f37c19197be76105161102a8a40',1,'mlx::core::array::is_available()'],['../namespacemlx_1_1core_1_1metal.html#a0cdf2c08c7bc0927a86070adc206987f',1,'mlx::core::metal::is_available()'],['../namespacemlx_1_1core_1_1distributed.html#a95655473cd0032c06e5fe3fca85aeef3',1,'mlx::core::distributed::is_available()']]], + ['is_5fdonatable_25',['is_donatable',['../classmlx_1_1core_1_1array.html#a4677a404b5d191af20b52649225de087',1,'mlx::core::array::is_donatable()'],['../namespacemlx_1_1core.html#af650e831ce21759da1ac103037d08d84',1,'mlx::core::is_donatable()']]], + ['is_5fequivalent_26',['is_equivalent',['../classmlx_1_1core_1_1fast_1_1_scaled_dot_product_attention.html#af08b1294f3f93505a96fdfa85b1edd62',1,'mlx::core::fast::ScaledDotProductAttention::is_equivalent()'],['../classmlx_1_1core_1_1_primitive.html#a6140a502af4c2bbbc776ab26e9afebcd',1,'mlx::core::Primitive::is_equivalent()'],['../classmlx_1_1core_1_1_abs.html#ab6f0ec56bc7c048382297e12dabadc67',1,'mlx::core::Abs::is_equivalent()'],['../classmlx_1_1core_1_1_add.html#aba0a35410c3aac53d0f7a0c283d9ee3f',1,'mlx::core::Add::is_equivalent()'],['../classmlx_1_1core_1_1_add_m_m.html#a6e37c6882dba995a63fb6d8dfb01754f',1,'mlx::core::AddMM::is_equivalent()'],['../classmlx_1_1core_1_1_arange.html#a7b6a45cf9c4b109d4e0373f3fe576c35',1,'mlx::core::Arange::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cos.html#a39557461e3235801886675a9b7d25bf5',1,'mlx::core::ArcCos::is_equivalent()'],['../classmlx_1_1core_1_1_arc_cosh.html#a6928e827b9ac2e86e7d5b02b78150eee',1,'mlx::core::ArcCosh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sin.html#a13b5e39eeccaf32d94b8eb85b3b753ab',1,'mlx::core::ArcSin::is_equivalent()'],['../classmlx_1_1core_1_1_arc_sinh.html#a63c7a765c7906242dc3371deec094f0f',1,'mlx::core::ArcSinh::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan.html#a0e5b5fc7218143ecd0a8666d9137c34c',1,'mlx::core::ArcTan::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tan2.html#aeaee58cd803d3ebf0b76574a409682cc',1,'mlx::core::ArcTan2::is_equivalent()'],['../classmlx_1_1core_1_1_arc_tanh.html#ac8ecdd640043dab0461d49d7650679a2',1,'mlx::core::ArcTanh::is_equivalent()'],['../classmlx_1_1core_1_1_arg_partition.html#ad87509ce70b51fb75dfb9c3a05a5b31a',1,'mlx::core::ArgPartition::is_equivalent()'],['../classmlx_1_1core_1_1_arg_reduce.html#a03b81a670dcb1e39bf7279e4d4583b97',1,'mlx::core::ArgReduce::is_equivalent()'],['../classmlx_1_1core_1_1_arg_sort.html#a048cd09c557d29d1111726f97010a845',1,'mlx::core::ArgSort::is_equivalent()'],['../classmlx_1_1core_1_1_as_type.html#a8e6c8b2428ab15c4fb43f2e3a8fb38af',1,'mlx::core::AsType::is_equivalent()'],['../classmlx_1_1core_1_1_as_strided.html#a1738c6aa0a3a3eb68530f0d5b436e094',1,'mlx::core::AsStrided::is_equivalent()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a8cd6b916b4838a6c329cf4df8530c3b8',1,'mlx::core::BitwiseBinary::is_equivalent()'],['../classmlx_1_1core_1_1_block_masked_m_m.html#aef1c303955f9b8f445296372cf181160',1,'mlx::core::BlockMaskedMM::is_equivalent()'],['../classmlx_1_1core_1_1_gather_m_m.html#a163f17f6ce2c002f22e81b302777342b',1,'mlx::core::GatherMM::is_equivalent()'],['../classmlx_1_1core_1_1_broadcast.html#a0e27692b0090ec451954649a36042616',1,'mlx::core::Broadcast::is_equivalent()'],['../classmlx_1_1core_1_1_ceil.html#aacd90acb56eb0649c1cef807aa21df52',1,'mlx::core::Ceil::is_equivalent()'],['../classmlx_1_1core_1_1_compiled.html#a63e5016458887813b4a59dee5a0a3f10',1,'mlx::core::Compiled::is_equivalent()'],['../classmlx_1_1core_1_1_concatenate.html#aaf8a72a0c30114460caf519580cc35d2',1,'mlx::core::Concatenate::is_equivalent()'],['../classmlx_1_1core_1_1_conjugate.html#af42f00a790c6bc5572bd8fe9e5b36c5e',1,'mlx::core::Conjugate::is_equivalent()'],['../classmlx_1_1core_1_1_convolution.html#afb87708a5e3aab2e9e663daa9d8863de',1,'mlx::core::Convolution::is_equivalent()'],['../classmlx_1_1core_1_1_copy.html#afcfa39465015f638e294aa954ea0f3da',1,'mlx::core::Copy::is_equivalent()'],['../classmlx_1_1core_1_1_cos.html#ab611ca38c987915659f7ffcce0370417',1,'mlx::core::Cos::is_equivalent()'],['../classmlx_1_1core_1_1_cosh.html#ae0bacccaf501f5349db0c13cca776ff9',1,'mlx::core::Cosh::is_equivalent()'],['../classmlx_1_1core_1_1_divide.html#a3dda091f05c4164c29bb8129e9712650',1,'mlx::core::Divide::is_equivalent()'],['../classmlx_1_1core_1_1_div_mod.html#af5fcf8ec8515d46844cbeeab6dafb38a',1,'mlx::core::DivMod::is_equivalent()'],['../classmlx_1_1core_1_1_select.html#afc3c333fac7f902c98839921ef2874c8',1,'mlx::core::Select::is_equivalent()'],['../classmlx_1_1core_1_1_remainder.html#a802039faaa2ed7b763ec3d7debcce814',1,'mlx::core::Remainder::is_equivalent()'],['../classmlx_1_1core_1_1_equal.html#a58c1c5003e43f47dc0788c1851deaa02',1,'mlx::core::Equal::is_equivalent()'],['../classmlx_1_1core_1_1_erf.html#abe99dfbc2954c3a7d5dec56ab165ee82',1,'mlx::core::Erf::is_equivalent()'],['../classmlx_1_1core_1_1_erf_inv.html#aaac9e3b454ba564f9c6e804ab6562832',1,'mlx::core::ErfInv::is_equivalent()'],['../classmlx_1_1core_1_1_exp.html#ac6e44bffe7a643ab4ca51e74c7328357',1,'mlx::core::Exp::is_equivalent()'],['../classmlx_1_1core_1_1_f_f_t.html#a0ede3bc8b6d77d560c0a750b68fddc06',1,'mlx::core::FFT::is_equivalent()'],['../classmlx_1_1core_1_1_floor.html#a24b64feb026c4fcd02fc481cffdb1c94',1,'mlx::core::Floor::is_equivalent()'],['../classmlx_1_1core_1_1_full.html#afafcbcae1e28597fe8f7fde289105792',1,'mlx::core::Full::is_equivalent()'],['../classmlx_1_1core_1_1_gather.html#a23ff1406dbf0c770e75ad47440b467aa',1,'mlx::core::Gather::is_equivalent()'],['../classmlx_1_1core_1_1_greater.html#a6877a6888614a618dc64296763ccabb1',1,'mlx::core::Greater::is_equivalent()'],['../classmlx_1_1core_1_1_greater_equal.html#a3daef8596b963026b602019bc56fc5fc',1,'mlx::core::GreaterEqual::is_equivalent()'],['../classmlx_1_1core_1_1_hadamard.html#a8a528d8d69a7343bdfd704a3e74230b8',1,'mlx::core::Hadamard::is_equivalent()'],['../classmlx_1_1core_1_1_imag.html#a51c15ae82855edebba2ba779516465f5',1,'mlx::core::Imag::is_equivalent()'],['../classmlx_1_1core_1_1_less.html#a7d6ed6353a0dcefebd008026dbd3cd63',1,'mlx::core::Less::is_equivalent()'],['../classmlx_1_1core_1_1_less_equal.html#a76ee1438cf4bd109eae4e0b3472b26af',1,'mlx::core::LessEqual::is_equivalent()'],['../classmlx_1_1core_1_1_log.html#a2fc58ea4ca744db493b947d1136d05f8',1,'mlx::core::Log::is_equivalent()'],['../classmlx_1_1core_1_1_logical_not.html#aba53675da351cd9b71a73d475b4bbe99',1,'mlx::core::LogicalNot::is_equivalent()'],['../classmlx_1_1core_1_1_logical_and.html#a9572c35f72e0db2f7f86bbf42438a6be',1,'mlx::core::LogicalAnd::is_equivalent()'],['../classmlx_1_1core_1_1_logical_or.html#a9c8b10a5cf5c69fdc2362390197e4e71',1,'mlx::core::LogicalOr::is_equivalent()'],['../classmlx_1_1core_1_1_log_add_exp.html#a3cf9a202c05aff39919d713d6e2b32e4',1,'mlx::core::LogAddExp::is_equivalent()'],['../classmlx_1_1core_1_1_matmul.html#aab372b59eae0840fc4f75ef5719a2630',1,'mlx::core::Matmul::is_equivalent()'],['../classmlx_1_1core_1_1_maximum.html#a21fe93fbd7799682f481260aee8bdb46',1,'mlx::core::Maximum::is_equivalent()'],['../classmlx_1_1core_1_1_minimum.html#a56c54ee3293cc2cd84462b9ec7ac36b4',1,'mlx::core::Minimum::is_equivalent()'],['../classmlx_1_1core_1_1_multiply.html#ae288159fa2d6d35087a85aca8eafa9b2',1,'mlx::core::Multiply::is_equivalent()'],['../classmlx_1_1core_1_1_negative.html#ac2a4d8159c548639d6289980c8975823',1,'mlx::core::Negative::is_equivalent()'],['../classmlx_1_1core_1_1_not_equal.html#ac12fd6b3e2f2e7e4e622b59badf2c73d',1,'mlx::core::NotEqual::is_equivalent()'],['../classmlx_1_1core_1_1_number_of_elements.html#ad6a32565ccc64499e368e15bba0b438f',1,'mlx::core::NumberOfElements::is_equivalent()'],['../classmlx_1_1core_1_1_pad.html#aad7c3bfecafe435d6a8e807de4c7ea9b',1,'mlx::core::Pad::is_equivalent()'],['../classmlx_1_1core_1_1_partition.html#aabdf6ef4f2159b2bfe93e0e87d4772f8',1,'mlx::core::Partition::is_equivalent()'],['../classmlx_1_1core_1_1_power.html#a76b4ec9d1ff07f06189e414480453d68',1,'mlx::core::Power::is_equivalent()'],['../classmlx_1_1core_1_1_quantized_matmul.html#af28b36e3f40ea41785387800326cc8e1',1,'mlx::core::QuantizedMatmul::is_equivalent()'],['../classmlx_1_1core_1_1_gather_q_m_m.html#a6a7da6bcf657fcdb157c45bf35fdec11',1,'mlx::core::GatherQMM::is_equivalent()'],['../classmlx_1_1core_1_1_random_bits.html#a72ec915debf5823e7c0463045b2894e6',1,'mlx::core::RandomBits::is_equivalent()'],['../classmlx_1_1core_1_1_real.html#a6d9bed396862a9e9d6abfbdcd8d8d239',1,'mlx::core::Real::is_equivalent()'],['../classmlx_1_1core_1_1_reshape.html#abd07c53af476777a04307e0423784cf3',1,'mlx::core::Reshape::is_equivalent()'],['../classmlx_1_1core_1_1_reduce.html#abe8f3327d617d0dd7438f066497ae08e',1,'mlx::core::Reduce::is_equivalent()'],['../classmlx_1_1core_1_1_round.html#aeb3d8607bbba7345a3142d4cbd4e6927',1,'mlx::core::Round::is_equivalent()'],['../classmlx_1_1core_1_1_scan.html#a54445a4d677ca4fe2a58d08eb5223ac6',1,'mlx::core::Scan::is_equivalent()'],['../classmlx_1_1core_1_1_scatter.html#a0208172562abdc90472e6eb5f84c987f',1,'mlx::core::Scatter::is_equivalent()'],['../classmlx_1_1core_1_1_sigmoid.html#a04814ba1b0edf8299d5ca1bcb8749d8e',1,'mlx::core::Sigmoid::is_equivalent()'],['../classmlx_1_1core_1_1_sign.html#a8c0934acbcc4b146e5aacd35a8c445bb',1,'mlx::core::Sign::is_equivalent()'],['../classmlx_1_1core_1_1_sin.html#af00b0e5516f884996ce7a97e6c1e3e6a',1,'mlx::core::Sin::is_equivalent()'],['../classmlx_1_1core_1_1_sinh.html#adcb1878996fd4902cd550042dd6ad70d',1,'mlx::core::Sinh::is_equivalent()'],['../classmlx_1_1core_1_1_slice.html#a43202c3b8966ae1db9ab82072e4918b0',1,'mlx::core::Slice::is_equivalent()'],['../classmlx_1_1core_1_1_slice_update.html#a60f588acced42391e6e5615ae8d16119',1,'mlx::core::SliceUpdate::is_equivalent()'],['../classmlx_1_1core_1_1_softmax.html#a9215ed7bd36bc11276c58dfb9808d728',1,'mlx::core::Softmax::is_equivalent()'],['../classmlx_1_1core_1_1_sort.html#ae48f07cf641d54234fc4fb6529a33511',1,'mlx::core::Sort::is_equivalent()'],['../classmlx_1_1core_1_1_split.html#af25a0cc259573b9dce60d285eee18345',1,'mlx::core::Split::is_equivalent()'],['../classmlx_1_1core_1_1_square.html#a6abc881d44071019aa15481e5ea75ab2',1,'mlx::core::Square::is_equivalent()'],['../classmlx_1_1core_1_1_sqrt.html#ab871c2b8ab4a27a3f782a005d0e87c46',1,'mlx::core::Sqrt::is_equivalent()'],['../classmlx_1_1core_1_1_stop_gradient.html#a327539298b21d800d26482b94fce41b3',1,'mlx::core::StopGradient::is_equivalent()'],['../classmlx_1_1core_1_1_subtract.html#af1c05e1e3f703ba916d54f8ccbbd102b',1,'mlx::core::Subtract::is_equivalent()'],['../classmlx_1_1core_1_1_tan.html#afdf46288e7f60ea7f878688347dff7e4',1,'mlx::core::Tan::is_equivalent()'],['../classmlx_1_1core_1_1_tanh.html#a0692a1de2373b86eb394252ed4fecfda',1,'mlx::core::Tanh::is_equivalent()'],['../classmlx_1_1core_1_1_uniform.html#abb6048807a7c5b2e35a77e06a17f801b',1,'mlx::core::Uniform::is_equivalent()'],['../classmlx_1_1core_1_1_view.html#a7cb8403a96a47cb258caac4e3b850f64',1,'mlx::core::View::is_equivalent()'],['../classmlx_1_1core_1_1_transpose.html#a799ec3c3fa9f1b9e6177c755252a3eab',1,'mlx::core::Transpose::is_equivalent()'],['../classmlx_1_1core_1_1_eigh.html#a09414e3fe88a952408d164d6dd0af381',1,'mlx::core::Eigh::is_equivalent()']]], + ['is_5fopen_27',['is_open',['../classmlx_1_1core_1_1io_1_1_reader.html#a780f504058bd9c80cb3d105046a9f985',1,'mlx::core::io::Reader::is_open()'],['../classmlx_1_1core_1_1io_1_1_writer.html#a85aa36bdb0dbfb8c5b6cfd955b03417a',1,'mlx::core::io::Writer::is_open()'],['../classmlx_1_1core_1_1io_1_1_parallel_file_reader.html#a653009adbcbce8248bc666df502fdbde',1,'mlx::core::io::ParallelFileReader::is_open()'],['../classmlx_1_1core_1_1io_1_1_file_writer.html#ad5d2ee671a81700cb1658c41309d6676',1,'mlx::core::io::FileWriter::is_open()']]], + ['is_5fpower_5fof_5f2_28',['is_power_of_2',['../namespacemlx_1_1core.html#adacbc4526e8964b267a8ec3eb1bc1a32',1,'mlx::core']]], + ['is_5fready_29',['is_ready',['../classpocketfft_1_1detail_1_1threading_1_1latch.html#ab41ecc5adb6187aa2682ca190fd920f3',1,'pocketfft::detail::threading::latch']]], + ['is_5fsame_5fshape_30',['is_same_shape',['../namespacemlx_1_1core.html#ad4b664de4a4abd305827b30879b9da33',1,'mlx::core']]], + ['is_5fscalar_31',['is_scalar',['../namespacemlx_1_1core.html#a985c60929757190e0b4ec51f57c767d0',1,'mlx::core']]], + ['is_5fsignaled_32',['is_signaled',['../classmlx_1_1core_1_1_event.html#a05a9a3de88185b4a89e154242b4e770a',1,'mlx::core::Event']]], + ['is_5fstatic_5fcast_33',['is_static_cast',['../namespacemlx_1_1core.html#afd9e740e567f9d7c28e00113caf46d5f',1,'mlx::core']]], + ['is_5ftracer_34',['is_tracer',['../classmlx_1_1core_1_1array.html#af9acb115019b995354d366c4ac6b968c',1,'mlx::core::array']]], + ['isclose_35',['isclose',['../group__ops.html#ga51eac95c04400921c54716de14b52491',1,'mlx::core']]], + ['isfinite_36',['isfinite',['../group__ops.html#ga725ff0789f934b1fdd54ee29e47022ff',1,'mlx::core']]], + ['isinf_37',['isinf',['../group__ops.html#ga8fc238d5e5d1153e69da8b36015d9844',1,'mlx::core']]], + ['isnan_38',['isnan',['../namespacemetal.html#a83320ba983d90dd1fa5847b6940dc0bb',1,'metal::isnan()'],['../group__ops.html#ga175592792471b0ffb45196dca4711ba6',1,'mlx::core::isnan(const array &a, StreamOrDevice s={})']]], + ['isneginf_39',['isneginf',['../group__ops.html#ga1940523da381ed7be50656a3bc465ff3',1,'mlx::core']]], + ['isposinf_40',['isposinf',['../group__ops.html#gad80f7c4a58c12b6cb30a8b9a73008993',1,'mlx::core']]], + ['issubdtype_41',['issubdtype',['../namespacemlx_1_1core.html#aca9e69b06f4212eba44bf0ce6711d5f7',1,'mlx::core::issubdtype(const Dtype &a, const Dtype &b)'],['../namespacemlx_1_1core.html#aca39f224c1d17bde35dfcb9088430704',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype &b)'],['../namespacemlx_1_1core.html#ae9ee4a7c205df061c1caa7e62b7504e8',1,'mlx::core::issubdtype(const Dtype &a, const Dtype::Category &b)'],['../namespacemlx_1_1core.html#ab5b1a5a3d545a5de00c3117f76d71a1d',1,'mlx::core::issubdtype(const Dtype::Category &a, const Dtype::Category &b)']]], + ['item_42',['item',['../classmlx_1_1core_1_1array.html#a90c5afddc2fa3028c0f8099bd64c8a99',1,'mlx::core::array::item()'],['../classmlx_1_1core_1_1array.html#a8650a99a6b7549bc823b03ad92590ff7',1,'mlx::core::array::item() const']]], + ['itemsize_43',['itemsize',['../classmlx_1_1core_1_1array.html#af329d9432c92de87cbaa2de8454eefc0',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/functions_c.js b/docs/build/html/search/functions_c.js index 654fccfcd..26717f1c2 100644 --- a/docs/build/html/search/functions_c.js +++ b/docs/build/html/search/functions_c.js @@ -22,10 +22,10 @@ var searchData= ['load_19',['load',['../struct_read_writer.html#a120eaf4b5f32e80972a18d14e82a2d75',1,'ReadWriter::load() const'],['../struct_read_writer.html#a8a97ba42db5692898ef7391db08d8fd0',1,'ReadWriter::load() const'],['../struct_read_writer.html#a2506ee61be67826ac9494efb12a81900',1,'ReadWriter::load() const'],['../namespacemlx_1_1core.html#a954de19249da7c1fa39b89bdc47368aa',1,'mlx::core::load(array &out, size_t offset, const std::shared_ptr< io::Reader > &reader, bool swap_endianess)'],['../namespacemlx_1_1core.html#abada9bfa834d7423959362386720f3db',1,'mlx::core::load(std::shared_ptr< io::Reader > in_stream, StreamOrDevice s={})'],['../namespacemlx_1_1core.html#ac71a08bf4c052ae3c77e9e89cbea071d',1,'mlx::core::load(std::string file, StreamOrDevice s={})']]], ['load_5fgguf_20',['load_gguf',['../namespacemlx_1_1core.html#a2aa12b351ce559deb14cda0a5292c2ce',1,'mlx::core']]], ['load_5fpadded_21',['load_padded',['../struct_read_writer.html#add5bd3f647793a5a19d63197a19df73c',1,'ReadWriter::load_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#af3ce6bbb1a8dfb3bab1ae18d3eb45bc0',1,'ReadWriter::load_padded(int length, const device float2 *w_k) const'],['../struct_read_writer.html#ab116f4569bb9dc6eaef0d8d08472e239',1,'ReadWriter::load_padded(int length, const device float2 *w_k) const']]], - ['load_5fsafe_22',['load_safe',['../struct_g_e_m_v_kernel.html#a04bb72da9a93d6d1eba468fa311bbba7',1,'GEMVKernel::load_safe()'],['../struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b',1,'QuantizedBlockLoader::load_safe()'],['../structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d',1,'mlx::steel::BlockLoader::load_safe()'],['../kernels_2scan_8h.html#ae8eb101e538b85f8a4bcf451489ae0ac',1,'load_safe(): scan.h']]], + ['load_5fsafe_22',['load_safe',['../struct_g_e_m_v_kernel.html#a04bb72da9a93d6d1eba468fa311bbba7',1,'GEMVKernel::load_safe()'],['../struct_quantized_block_loader.html#a699dc9aa284b8fbf870310bbb224465b',1,'QuantizedBlockLoader::load_safe()'],['../structmlx_1_1steel_1_1_block_loader.html#abb0f4f66ec8b123627beb8eb4fbb609d',1,'mlx::steel::BlockLoader::load_safe()'],['../scan_8h.html#ae8eb101e538b85f8a4bcf451489ae0ac',1,'load_safe(): scan.h']]], ['load_5fsafetensors_23',['load_safetensors',['../namespacemlx_1_1core.html#a96cc40e1af8c4626c813ce4859f70a5c',1,'mlx::core::load_safetensors(std::shared_ptr< io::Reader > in_stream, StreamOrDevice s={})'],['../namespacemlx_1_1core.html#af7eea1682a38d363c56a066321e6d526',1,'mlx::core::load_safetensors(const std::string &file, StreamOrDevice s={})']]], ['load_5fstrided_24',['load_strided',['../struct_read_writer.html#a998ef484bade81f726b9edfc6b878197',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a3d9c8cbc582cad6b5218339d0f721559',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a795a71a8e1f154a5af415ebe1b3f0713',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a0935b946b8bf2e769427fcbf2da2f7be',1,'ReadWriter::load_strided(int stride, int overall_n)'],['../struct_read_writer.html#a7d45368c74a8b7c632659504b3273a13',1,'ReadWriter::load_strided(int stride, int overall_n)']]], - ['load_5funsafe_25',['load_unsafe',['../struct_g_e_m_v_kernel.html#a6013e9c5b2f72fa1311dd038172df0ce',1,'GEMVKernel::load_unsafe()'],['../struct_quantized_block_loader.html#a86009527cb4b53e4c21fd6b1f78cfefc',1,'QuantizedBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a961836be363409744e48e595d5e0c2ec',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a8034abc10483487fc94313e3674d1111',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a69e2f7c9814d1cc1c5c267be8618dc55',1,'mlx::steel::Conv2DWeightBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#aa11d1a142bc868df462f48a7102147f3',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a0e262b003ac0e7ee6272585eac921704',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a8f078982186421f5b484c0b53af9c655',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27',1,'mlx::steel::BlockLoader::load_unsafe()'],['../kernels_2scan_8h.html#a9c415d07921f3961bad0a00a34f4a9a3',1,'load_unsafe(U values[N_READS], const device T *input): scan.h']]], + ['load_5funsafe_25',['load_unsafe',['../struct_g_e_m_v_kernel.html#a6013e9c5b2f72fa1311dd038172df0ce',1,'GEMVKernel::load_unsafe()'],['../struct_quantized_block_loader.html#a86009527cb4b53e4c21fd6b1f78cfefc',1,'QuantizedBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a961836be363409744e48e595d5e0c2ec',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a8034abc10483487fc94313e3674d1111',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a69e2f7c9814d1cc1c5c267be8618dc55',1,'mlx::steel::Conv2DWeightBlockLoader::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#aa11d1a142bc868df462f48a7102147f3',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a0e262b003ac0e7ee6272585eac921704',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a3859ca11b5991ef6ee9b99afdc3ea30a',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a8f078982186421f5b484c0b53af9c655',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::load_unsafe()'],['../structmlx_1_1steel_1_1_block_loader.html#a6c9e27f11f48b34580ed2c7e9cad9a27',1,'mlx::steel::BlockLoader::load_unsafe()'],['../scan_8h.html#a9c415d07921f3961bad0a00a34f4a9a3',1,'load_unsafe(U values[N_READS], const device T *input): scan.h']]], ['load_5fvector_26',['load_vector',['../quantized_8h.html#a8dbace41de9e1e21dd59d016db11b3e9',1,'quantized.h']]], ['load_5fvector_5fsafe_27',['load_vector_safe',['../quantized_8h.html#aa69e143d646fad332c1a53e8c9b337b7',1,'quantized.h']]], ['location_28',['location',['../structlooped__elem__to__loc.html#accc6d4957a8aeb38f5062754793b74d2',1,'looped_elem_to_loc::location()'],['../structlooped__elem__to__loc_3_011_00_01offset__t_01_4.html#a368d2a2204cee5055386954acd5ccb90',1,'looped_elem_to_loc< 1, offset_t >::location()'],['../structlooped__elem__to__loc_3_010_00_01offset__t_01_4.html#a8c7aaffda0ca500d9f9566e5e74217a2',1,'looped_elem_to_loc< 0, offset_t >::location()']]], diff --git a/docs/build/html/search/functions_d.js b/docs/build/html/search/functions_d.js index cce34f82f..082d73a9c 100644 --- a/docs/build/html/search/functions_d.js +++ b/docs/build/html/search/functions_d.js @@ -42,8 +42,9 @@ var searchData= ['moveaxis_39',['moveaxis',['../group__ops.html#ga24067d10a842db2c9d509ea48135a2c3',1,'mlx::core']]], ['mpinplace_40',['MPINPLACE',['../namespacepocketfft_1_1detail.html#af5eedf3cdfc83c0a30807092c39a9ce2',1,'pocketfft::detail']]], ['mtl_5fdevice_41',['mtl_device',['../classmlx_1_1core_1_1metal_1_1_device.html#a31dba377f2be44a746db10d1b9367653',1,'mlx::core::metal::Device']]], - ['multi_5fiter_42',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html#a9be43bb18840202da6d17988fccc64b9',1,'pocketfft::detail::multi_iter']]], - ['multiply_43',['Multiply',['../classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c',1,'mlx::core::Multiply']]], - ['multiply_44',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], - ['multivariate_5fnormal_45',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] + ['mtl_5fresidency_5fset_42',['mtl_residency_set',['../classmlx_1_1core_1_1metal_1_1_residency_set.html#ac4bfe5ef5e2eaebc458a1ed1953d15e9',1,'mlx::core::metal::ResidencySet']]], + ['multi_5fiter_43',['multi_iter',['../classpocketfft_1_1detail_1_1multi__iter.html#a9be43bb18840202da6d17988fccc64b9',1,'pocketfft::detail::multi_iter']]], + ['multiply_44',['Multiply',['../classmlx_1_1core_1_1_multiply.html#aca5c50f900321f3eb4d6fbcbc225c00c',1,'mlx::core::Multiply']]], + ['multiply_45',['multiply',['../group__ops.html#gaf57392e641640b5d06e4c99518391c38',1,'mlx::core']]], + ['multivariate_5fnormal_46',['multivariate_normal',['../namespacemlx_1_1core_1_1random.html#a8c37da3c1c0c561cad7499d6d9db81fb',1,'mlx::core::random']]] ]; diff --git a/docs/build/html/search/functions_f.js b/docs/build/html/search/functions_f.js index d5d8e1569..56add4db0 100644 --- a/docs/build/html/search/functions_f.js +++ b/docs/build/html/search/functions_f.js @@ -15,7 +15,7 @@ var searchData= ['operator_26_12',['operator&',['../group__ops.html#gaf0d232de4cbfffda1e2c838f8afdf6ff',1,'mlx::core::operator&(const array &a, const array &b)'],['../namespacemlx_1_1core.html#a9ee95f97bbd69262d99d7bea3bf77631',1,'mlx::core::operator&(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0fefc3ae4f1350ebe05ec6098fd6bae3',1,'mlx::core::operator&(_MLX_BFloat16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a1e4cb758ccfe5c267baed9aeb0044834',1,'mlx::core::operator&(uint16_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab9d0f9910070231695d61de08cadb930',1,'mlx::core::operator&(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a889d401f425db79d1868aa3beea4829b',1,'mlx::core::operator&(_MLX_Float16 lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#a76dcd1fa3c68b386bc1d1d899a68a120',1,'mlx::core::operator&(uint16_t lhs, _MLX_Float16 rhs)']]], ['operator_26_26_13',['operator&&',['../group__ops.html#gaee1d774bb0843601d7a0a4257d616ae3',1,'mlx::core']]], ['operator_26_3d_14',['operator&=',['../namespacemlx_1_1core.html#a60c263ef46e552c3954688869734b513',1,'mlx::core::operator&=(_MLX_BFloat16 &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af9670fc8088339669c54c68b3a320e25',1,'mlx::core::operator&=(_MLX_BFloat16 &lhs, uint16_t rhs)'],['../namespacemlx_1_1core.html#ad1f96f0a02024f347b4c4431629407fc',1,'mlx::core::operator&=(_MLX_Float16 &lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae0540f16c4e7bd55d0e86a88495e4967',1,'mlx::core::operator&=(_MLX_Float16 &lhs, uint16_t rhs)']]], - ['operator_28_29_15',['operator()',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a4fd637f1a6d335826789af28ac089ecb',1,'pocketfft::detail::ExecC2C::operator()()'],['../structpocketfft_1_1detail_1_1_exec_hartley.html#a67c98b38d12440781053552b9a33bba1',1,'pocketfft::detail::ExecHartley::operator()()'],['../structpocketfft_1_1detail_1_1_exec_dcst.html#a67f4f56e3574c491695f8cb8a1e983d8',1,'pocketfft::detail::ExecDcst::operator()()'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#acdba1650962714e6afff51e9ca456970',1,'pocketfft::detail::ExecR2R::operator()()'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a0d657bc9a381dca1b5860b9a1b5a5702',1,'mlx::core::detail::Abs::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a564232db7d32811e2ae126c86de104f0',1,'mlx::core::detail::Abs::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a5fac7e6c8277d8706535a52820503c9d',1,'mlx::core::detail::Abs::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#af2c3723e648bd5ed2fe558cc20b7f5eb',1,'mlx::core::detail::Abs::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a57312cd8530dd0ede3b8037f9c401883',1,'mlx::core::detail::Abs::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#ab3b5e3853ed56bfbfa577d965c21112e',1,'mlx::core::detail::Abs::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_arc_cos.html#a04b4c9d1fc0160973aa28b1f809b9d51',1,'mlx::core::detail::ArcCos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_cosh.html#a767d354bec863942822ee0b9b6742a88',1,'mlx::core::detail::ArcCosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sin.html#ac69091929815e5317308b4088f5c2f46',1,'mlx::core::detail::ArcSin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sinh.html#ac7bf9bac66fef917f75494b2345e6aaf',1,'mlx::core::detail::ArcSinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan.html#aee87bf10c278a70ca788085d1b499afe',1,'mlx::core::detail::ArcTan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan2.html#a9040b7afcdb4969924aa782fa67f03ac',1,'mlx::core::detail::ArcTan2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a601e8c52bb938eb3a616756a35419e8b',1,'mlx::core::detail::ArcTanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a672f65e47d65e4e8d88be252bce0164b',1,'mlx::core::detail::Ceil::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a72a2cab2728fb5e1cc6329a539e5d573',1,'mlx::core::detail::Ceil::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#aa34590f6a41331be92988558a90dc6fa',1,'mlx::core::detail::Ceil::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af14120f3dd98f6198ea257d75be223f7',1,'mlx::core::detail::Ceil::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af263ce7743cf7319387baba616c375b5',1,'mlx::core::detail::Ceil::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a48f00affcd5c2ea1f81d821e019fec29',1,'mlx::core::detail::Ceil::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#ad4d24a44e8a328948393701dacb0ceac',1,'mlx::core::detail::Ceil::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a70da19b5c9c69f04b9f196bdf266f93c',1,'mlx::core::detail::Ceil::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af0e7e806b73c664ada837476f9d4d43b',1,'mlx::core::detail::Ceil::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#acc1bfc84a9b91f6e9764234cbe3b9687',1,'mlx::core::detail::Ceil::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_conjugate.html#a7e662d05c6998bd6ced8ad9c187324a5',1,'mlx::core::detail::Conjugate::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cos.html#ad4caef573f9d9071f8945a8efed231ad',1,'mlx::core::detail::Cos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cosh.html#a63591f49776d9aadc02200036ae38317',1,'mlx::core::detail::Cosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf.html#a168f8ccc6c8053b05dd1a48904ca8fd4',1,'mlx::core::detail::Erf::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html#acc93c0511141404208b35f302f8c1fcb',1,'mlx::core::detail::ErfInv::operator()()'],['../structmlx_1_1core_1_1detail_1_1_exp.html#a0846300cee28315e5b42f74acafbd1a1',1,'mlx::core::detail::Exp::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_exp.html#af247c0d19d59f3310fd0a081eb92cf8b',1,'mlx::core::detail::Exp::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_expm1.html#abf7e61b8387521e9d44334ce88d833a0',1,'mlx::core::detail::Expm1::operator()()'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a16c13cfe736098bffc81d655e172294a',1,'mlx::core::detail::Floor::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a9b6c4c34b6594b8c413abe31f34a73df',1,'mlx::core::detail::Floor::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#aca4c71204b3ceeca6329f7ea2b041f4c',1,'mlx::core::detail::Floor::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a3c3ab9e00d1fbd124802517e8c35fe02',1,'mlx::core::detail::Floor::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a4b5954ffc59c741dd7b86bafda69d5cc',1,'mlx::core::detail::Floor::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2e33b10bd5b04551054a87c601440bc7',1,'mlx::core::detail::Floor::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2500f971100919a694f78669a5e4f438',1,'mlx::core::detail::Floor::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a23df818301d68389e6e12f5a9ec1fbd7',1,'mlx::core::detail::Floor::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#ac988b4f265cf46c68609c9c8787c15fb',1,'mlx::core::detail::Floor::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a7f936e3fd53772bc189d845c73b53202',1,'mlx::core::detail::Floor::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782',1,'mlx::core::detail::Imag::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log.html#a0012a4e1744dbe9a28c3b5652be6e1c6',1,'mlx::core::detail::Log::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log2.html#a467bd4c995674721ff5fff6df33aead8',1,'mlx::core::detail::Log2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log10.html#a2633c5b772bbc9f8b66cffd4a3e01a3f',1,'mlx::core::detail::Log10::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log1p.html#a3220de8c6090c44aa2070b1fbb2dc340',1,'mlx::core::detail::Log1p::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html#a79799668ea5c364b0b4e2bc330e76253',1,'mlx::core::detail::LogicalNot::operator()()'],['../structmlx_1_1core_1_1detail_1_1_negative.html#afc4595c70ef7196df374cf4b2cc5e526',1,'mlx::core::detail::Negative::operator()()'],['../structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61',1,'mlx::core::detail::Real::operator()()'],['../structmlx_1_1core_1_1detail_1_1_round.html#a653f29c059bbfa6192378732a8a23351',1,'mlx::core::detail::Round::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_round.html#a82a984f13568051009e257fe85227da6',1,'mlx::core::detail::Round::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89',1,'mlx::core::detail::Sigmoid::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a64ed5013cee7ff18c7fe70bc04737e7b',1,'mlx::core::detail::Sign::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7106ed1f2f98a365fcb3e6ee39084748',1,'mlx::core::detail::Sign::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7163e8c068dcc460600ed04014dc9945',1,'mlx::core::detail::Sign::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#ae8f56c7134721c846240830169424c22',1,'mlx::core::detail::Sign::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a10ae519e9a74a327fc72c410e9ab2936',1,'mlx::core::detail::Sign::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a91be4e273f6c7ea5d44cfab380b77603',1,'mlx::core::detail::Sign::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sin.html#ae95671816529cc2188389af37a2f1a13',1,'mlx::core::detail::Sin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sinh.html#a9663ddf0fa4c0003576b48f3d5385f00',1,'mlx::core::detail::Sinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099',1,'mlx::core::detail::Square::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sqrt.html#aa5a4830b3ef7efab20ea88a110667efd',1,'mlx::core::detail::Sqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_rsqrt.html#a9af247be16bab83243038aac54446b79',1,'mlx::core::detail::Rsqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tan.html#aba397cd7ac05bbe06dfa9e3a64bdb05f',1,'mlx::core::detail::Tan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tanh.html#a1749ba1edfd53095ed7d45c0e53bab61',1,'mlx::core::detail::Tanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_add.html#a2d6011c35768b5fcd2bb75747b944353',1,'mlx::core::detail::Add::operator()()'],['../structmlx_1_1core_1_1detail_1_1_divide.html#a5e0d22e2084c4ca81bec0d457a46c662',1,'mlx::core::detail::Divide::operator()()'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a3bdaf1095ad883ecc0fecc455f02cbf3',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a52c3a2ba86fccb24d37d218ae8328954',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a0b0dd6ef5b08585fdf8355770da8d747',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a68fe542084fb94d9a5abd740fe07832b',1,'mlx::core::detail::Remainder::operator()(complex64_t numerator, complex64_t denominator)'],['../structmlx_1_1core_1_1detail_1_1_equal.html#a2994cf1884e7126e76d0a20b215fe3ab',1,'mlx::core::detail::Equal::operator()()'],['../structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf',1,'mlx::core::detail::NaNEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094',1,'mlx::core::detail::Greater::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30',1,'mlx::core::detail::GreaterEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb',1,'mlx::core::detail::Less::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7',1,'mlx::core::detail::LessEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5',1,'mlx::core::detail::LogAddExp::operator()()'],['../structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1',1,'mlx::core::detail::Multiply::operator()()'],['../structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d',1,'mlx::core::detail::NotEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a',1,'mlx::core::detail::Subtract::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8',1,'mlx::core::detail::LogicalAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a',1,'mlx::core::detail::LogicalOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb',1,'mlx::core::detail::Select::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700',1,'mlx::core::detail::BitwiseAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20',1,'mlx::core::detail::BitwiseOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0',1,'mlx::core::detail::BitwiseXor::operator()()'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a',1,'mlx::core::detail::LeftShift::operator()()'],['../structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620',1,'mlx::core::detail::RightShift::operator()()'],['../structmlx_1_1core_1_1_default_strided_reduce.html#a024682ab93b84e544a07e3a9c3c51fba',1,'mlx::core::DefaultStridedReduce::operator()()'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a08144c7a3cdf10af5e47f4575da3694f',1,'mlx::core::DefaultContiguousReduce::operator()()'],['../struct_add.html#ac5c66b63d63a222d3ae0ab8cc7c90eb5',1,'Add::operator()()'],['../struct_floor_divide.html#a2b328e4d768e718fa439f955c524666a',1,'FloorDivide::operator()(T x, T y)'],['../struct_floor_divide.html#afc16a2b2a745225e0bc95640f3fc0219',1,'FloorDivide::operator()(float x, float y)'],['../struct_floor_divide.html#ae91719a15f7e643d552129f476089c6a',1,'FloorDivide::operator()(half x, half y)'],['../struct_floor_divide.html#a4aa9f858626583e02bd79f747229bbca',1,'FloorDivide::operator()(bfloat16_t x, bfloat16_t y)'],['../struct_divide.html#a0a16b9194abc2ab7c61129f81a9bbb3d',1,'Divide::operator()()'],['../struct_remainder.html#ab7875512ff4341c580c6dc372e64fc58',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#a18150b5f4425e30b95ffabc6bb25cede',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ab3b75f54b56fd357c9755daadb2cafc2',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ae918ce0e246937d4fe04e2ea36e4b2c1',1,'Remainder::operator()(complex64_t x, complex64_t y)'],['../struct_equal.html#aa498087080900d4428ba428a6496a769',1,'Equal::operator()()'],['../struct_na_n_equal.html#a00220898e02db656d21dde9e9354a8dc',1,'NaNEqual::operator()(T x, T y)'],['../struct_na_n_equal.html#a6185e4554dce5b4659d21673c576be51',1,'NaNEqual::operator()(complex64_t x, complex64_t y)'],['../struct_greater.html#a98d7d8ee360cd0f469c6eb9a017560f5',1,'Greater::operator()()'],['../struct_greater_equal.html#ae69a3bccc567a46506cf0d296294ce80',1,'GreaterEqual::operator()()'],['../struct_less.html#a5ee0b31b2d9123dc4504f2979a5854d3',1,'Less::operator()()'],['../struct_less_equal.html#ae9f9a1b2eae548977139704f0044acfe',1,'LessEqual::operator()()'],['../struct_log_add_exp.html#ab32417f18e8ff68c15f78aceeb624edf',1,'LogAddExp::operator()()'],['../struct_maximum.html#a3ea0f42bc4cd80b68a98f189f9fa859c',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a0bc8fadc87f2c49fc440d625bfc97ca6',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a907e8793900be5927625377dab199644',1,'Maximum::operator()(complex64_t x, complex64_t y)'],['../struct_minimum.html#aa6113dfac3986c0f571fa53f65c5330e',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a0c939921de87ab9c6959238aac81a059',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a800fba087280f79c2f7e9aff75bed093',1,'Minimum::operator()(complex64_t x, complex64_t y)'],['../struct_multiply.html#a1327fc5a0713931afe997b0d4d2988e0',1,'Multiply::operator()()'],['../struct_not_equal.html#af008d73a5d9cde0b8309b7e8ee7438b2',1,'NotEqual::operator()(T x, T y)'],['../struct_not_equal.html#a14de494cea4e4869351202cad1149f17',1,'NotEqual::operator()(complex64_t x, complex64_t y)'],['../struct_power.html#a2b6df2a9e48155ff9734caca8504a79f',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a36829163d42973034a1f8a7ecc57a1de',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a27cdfb313c4e82b63bdcdaee923cbbef',1,'Power::operator()(complex64_t x, complex64_t y)'],['../struct_subtract.html#ae0856cd8d449074ca287baa7e460f68a',1,'Subtract::operator()()'],['../struct_logical_and.html#a8bc6bdabc0ea0678a46e2cf6217cb3a6',1,'LogicalAnd::operator()()'],['../struct_logical_or.html#ade6a931324a604a3119d2220d6f5460d',1,'LogicalOr::operator()()'],['../struct_bitwise_and.html#afb48af090b01dd0200963bc12d842e36',1,'BitwiseAnd::operator()()'],['../struct_bitwise_or.html#a41f847463daafa99ee56f4035578390f',1,'BitwiseOr::operator()()'],['../struct_bitwise_xor.html#a3a3e8a56caab739d40262d9349c9c485',1,'BitwiseXor::operator()()'],['../struct_left_shift.html#aa729747784c38bfdbba34794fcf5175b',1,'LeftShift::operator()()'],['../struct_right_shift.html#a2cc59b400c68342b0e43050431323c17',1,'RightShift::operator()()'],['../struct_arc_tan2.html#ac9b7729753e13be293ab700231d061ac',1,'ArcTan2::operator()()'],['../struct_div_mod.html#a8b5758f2ea18d4c903b462331b25abfe',1,'DivMod::operator()()'],['../struct_cum_sum.html#aacc713dde086ef04b54abb675131468e',1,'CumSum::operator()()'],['../struct_cum_prod.html#af1ffa2672332ca27e287c3ba59c73e1e',1,'CumProd::operator()()'],['../struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b',1,'CumProd< bool >::operator()()'],['../struct_cum_max.html#a781b9b955c5412466da6af6c70d73c06',1,'CumMax::operator()()'],['../struct_cum_min.html#ae0b8c3761e04fa538d304ca842281a66',1,'CumMin::operator()()'],['../struct_less_than.html#a2798eb377b411c93a4ed30cf35caade2',1,'LessThan::operator()()'],['../struct_select.html#adb51692aae3038de07dd745891bf9848',1,'Select::operator()()'],['../struct_abs.html#a9e7481dfcc162509769852026ff4a344',1,'Abs::operator()(T x)'],['../struct_abs.html#a0ca113fd036151c443df3f83cc667f28',1,'Abs::operator()(uint8_t x)'],['../struct_abs.html#adaeab32a7e377dc990077ab15f3dc4c2',1,'Abs::operator()(uint16_t x)'],['../struct_abs.html#a99d2a2f37a6cddd3168b0224f2a9b963',1,'Abs::operator()(uint32_t x)'],['../struct_abs.html#ac9cbc02422d930479303f240a7ea6c71',1,'Abs::operator()(uint64_t x)'],['../struct_abs.html#ac30835b27784d451bd2e4524c8eb9e11',1,'Abs::operator()(bool x)'],['../struct_abs.html#ab82917d6b30a2c579e7eb879d305c5fc',1,'Abs::operator()(complex64_t x)'],['../struct_arc_cos.html#a5553cecf58511e24e76ac97f2d90b9ac',1,'ArcCos::operator()()'],['../struct_arc_cosh.html#a5c9e7712c14c97298b23ec48e19abc58',1,'ArcCosh::operator()()'],['../struct_arc_sin.html#a0343872f2da93bae2bb0baadf49da022',1,'ArcSin::operator()()'],['../struct_arc_sinh.html#a3066fb7dc7c3180100fb55ff94af6a7a',1,'ArcSinh::operator()()'],['../struct_arc_tan.html#af3a0aec6acec8ae8f5e4c4d5cf8c91ba',1,'ArcTan::operator()()'],['../struct_arc_tanh.html#a37dc3e01ec2830de7e82ed6c6363ac88',1,'ArcTanh::operator()()'],['../struct_ceil.html#a5e2a4ef1b012f5d352064489156e5e44',1,'Ceil::operator()(T x)'],['../struct_ceil.html#a455cd8083ba859993077f2e078ae165b',1,'Ceil::operator()(int8_t x)'],['../struct_ceil.html#a2acb61bc658c7a216795e7f76ebcf98a',1,'Ceil::operator()(int16_t x)'],['../struct_ceil.html#aef8c37f7a8ee3fc80700d605a09891fb',1,'Ceil::operator()(int32_t x)'],['../struct_ceil.html#a93d0110511ad5dd200e12d37a3d7d6e3',1,'Ceil::operator()(int64_t x)'],['../struct_ceil.html#aa335b745fa26e0f443cdb36298105484',1,'Ceil::operator()(uint8_t x)'],['../struct_ceil.html#ade17e13b7f30f5c590fae1581a2013ac',1,'Ceil::operator()(uint16_t x)'],['../struct_ceil.html#a411c75cc35cdc088402e176a1defd22d',1,'Ceil::operator()(uint32_t x)'],['../struct_ceil.html#a9ac660ca29eef7a7429fceb7b917a68a',1,'Ceil::operator()(uint64_t x)'],['../struct_ceil.html#a40de367e62f06ebd7e1330afa93a9ad9',1,'Ceil::operator()(bool x)'],['../struct_cos.html#ae222f8710f6b8254c471ebd475aa5bda',1,'Cos::operator()(T x)'],['../struct_cos.html#a5f26feb1dcc4bec5f59a9ff511c5b163',1,'Cos::operator()(complex64_t x)'],['../struct_cosh.html#a5847ebeebb236fdc926798ddc16475ba',1,'Cosh::operator()(T x)'],['../struct_cosh.html#aefdd91298dac16d528d29ee47e2f7252',1,'Cosh::operator()(complex64_t x)'],['../struct_conjugate.html#acb0a2694285f1f57c7654b371ce8cbd8',1,'Conjugate::operator()()'],['../struct_erf.html#a80719402ad7f7d418859a6677d7b604d',1,'Erf::operator()()'],['../struct_erf_inv.html#afbf3668d1a512e889f093a0bc7673309',1,'ErfInv::operator()()'],['../struct_exp.html#a5ef395868e055348c0802fd5fe45669c',1,'Exp::operator()(T x)'],['../struct_exp.html#a2b341ac400c4d145397950eb60734336',1,'Exp::operator()(complex64_t x)'],['../struct_expm1.html#a4b834d42cf0b84daf03fec62c222091a',1,'Expm1::operator()()'],['../struct_floor.html#ace3551f28429081e9f3a3dab0c84212b',1,'Floor::operator()(T x)'],['../struct_floor.html#a10d7fd05b4c224c9f135451246d13014',1,'Floor::operator()(int8_t x)'],['../struct_floor.html#a2865a04a492e3590302f4bd3215a10d7',1,'Floor::operator()(int16_t x)'],['../struct_floor.html#a41012343ff0463ec44b4d06196f41182',1,'Floor::operator()(int32_t x)'],['../struct_floor.html#aae3181d15856796aa0628cf30c92aa2e',1,'Floor::operator()(int64_t x)'],['../struct_floor.html#ac6cf38d82c8e270911afdca4c69ad51b',1,'Floor::operator()(uint8_t x)'],['../struct_floor.html#a78969b9e2b53ae248e72a67259eea5d8',1,'Floor::operator()(uint16_t x)'],['../struct_floor.html#a959009320ed622ed45b39becab1d5b98',1,'Floor::operator()(uint32_t x)'],['../struct_floor.html#a7d04b83c3345cd867315cae2d7ff68ab',1,'Floor::operator()(uint64_t x)'],['../struct_floor.html#abea845fe5e8e6b93bd4bca8717337e0b',1,'Floor::operator()(bool x)'],['../struct_imag.html#a3b29e9f8a46c194d683f6a9938314400',1,'Imag::operator()()'],['../struct_log.html#a32a383cb6be06e616a75f23bf49089c3',1,'Log::operator()()'],['../struct_log2.html#ac1e067ecdcbdbffb6106e789c2b98b64',1,'Log2::operator()()'],['../struct_log10.html#ac596a74c1642a00f3eced07ee3334122',1,'Log10::operator()()'],['../struct_log1p.html#a4464c6e7bdbe55ffd7d961c695cd13ce',1,'Log1p::operator()()'],['../struct_logical_not.html#a8a620bac957ab8c09ac85adfddd96708',1,'LogicalNot::operator()()'],['../struct_negative.html#af6879b374314a559faa321e8cce3d710',1,'Negative::operator()()'],['../struct_real.html#a85b9c5b9e65297994fa26ff68e19e809',1,'Real::operator()()'],['../struct_round.html#aa06a0195867e2ceb679c403b6909a1c4',1,'Round::operator()(T x)'],['../struct_round.html#ad3a08f2276ff1033900bc0a7da812655',1,'Round::operator()(complex64_t x)'],['../struct_sigmoid.html#a75a24cd75cb4d4c9a072811b2d70ad55',1,'Sigmoid::operator()()'],['../struct_sign.html#aa3304c6b43bcad53061614b741d8403c',1,'Sign::operator()(T x)'],['../struct_sign.html#ac48992b675b8b28be1e27e1f2ec5d2f7',1,'Sign::operator()(uint32_t x)'],['../struct_sign.html#ae07a4249e1b61419a3b9ca6c337b7bb5',1,'Sign::operator()(complex64_t x)'],['../struct_sin.html#a7caf98c777521fa5d5c6ddaaa3b779fd',1,'Sin::operator()(T x)'],['../struct_sin.html#aa510cf4595b6d49065ab6b602d8fcb14',1,'Sin::operator()(complex64_t x)'],['../struct_sinh.html#a02cf32bcf560657b9ee34fb1affed8e2',1,'Sinh::operator()(T x)'],['../struct_sinh.html#a1f8ba1858d352ee68861cd6ea861af43',1,'Sinh::operator()(complex64_t x)'],['../struct_square.html#afde739fc544e45dd30964c02dca94310',1,'Square::operator()()'],['../struct_sqrt.html#ab9b16d2b9b03a1c54190f4479a56a4ad',1,'Sqrt::operator()()'],['../struct_rsqrt.html#ae16699fd829e40416436247a39233fda',1,'Rsqrt::operator()()'],['../struct_tan.html#a1e6fb8c691621c69cb9bd393de4f6e78',1,'Tan::operator()(T x)'],['../struct_tan.html#a2ef120c9f92b0d2e9cec8389eda05724',1,'Tan::operator()(complex64_t x)'],['../struct_tanh.html#adce11a7ad33226c6ecff34f46f5c45d7',1,'Tanh::operator()(T x)'],['../struct_tanh.html#aa8423b43c725bb4b88965a11e8cf20f6',1,'Tanh::operator()(complex64_t x)']]], + ['operator_28_29_15',['operator()',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a4fd637f1a6d335826789af28ac089ecb',1,'pocketfft::detail::ExecC2C::operator()()'],['../structpocketfft_1_1detail_1_1_exec_hartley.html#a67c98b38d12440781053552b9a33bba1',1,'pocketfft::detail::ExecHartley::operator()()'],['../structpocketfft_1_1detail_1_1_exec_dcst.html#a67f4f56e3574c491695f8cb8a1e983d8',1,'pocketfft::detail::ExecDcst::operator()()'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#acdba1650962714e6afff51e9ca456970',1,'pocketfft::detail::ExecR2R::operator()()'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a0d657bc9a381dca1b5860b9a1b5a5702',1,'mlx::core::detail::Abs::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a564232db7d32811e2ae126c86de104f0',1,'mlx::core::detail::Abs::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a5fac7e6c8277d8706535a52820503c9d',1,'mlx::core::detail::Abs::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#af2c3723e648bd5ed2fe558cc20b7f5eb',1,'mlx::core::detail::Abs::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#a57312cd8530dd0ede3b8037f9c401883',1,'mlx::core::detail::Abs::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_abs.html#ab3b5e3853ed56bfbfa577d965c21112e',1,'mlx::core::detail::Abs::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_arc_cos.html#a04b4c9d1fc0160973aa28b1f809b9d51',1,'mlx::core::detail::ArcCos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_cosh.html#a767d354bec863942822ee0b9b6742a88',1,'mlx::core::detail::ArcCosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sin.html#ac69091929815e5317308b4088f5c2f46',1,'mlx::core::detail::ArcSin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_sinh.html#ac7bf9bac66fef917f75494b2345e6aaf',1,'mlx::core::detail::ArcSinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan.html#aee87bf10c278a70ca788085d1b499afe',1,'mlx::core::detail::ArcTan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tan2.html#a9040b7afcdb4969924aa782fa67f03ac',1,'mlx::core::detail::ArcTan2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_arc_tanh.html#a601e8c52bb938eb3a616756a35419e8b',1,'mlx::core::detail::ArcTanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a672f65e47d65e4e8d88be252bce0164b',1,'mlx::core::detail::Ceil::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a72a2cab2728fb5e1cc6329a539e5d573',1,'mlx::core::detail::Ceil::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#aa34590f6a41331be92988558a90dc6fa',1,'mlx::core::detail::Ceil::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af14120f3dd98f6198ea257d75be223f7',1,'mlx::core::detail::Ceil::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af263ce7743cf7319387baba616c375b5',1,'mlx::core::detail::Ceil::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a48f00affcd5c2ea1f81d821e019fec29',1,'mlx::core::detail::Ceil::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#ad4d24a44e8a328948393701dacb0ceac',1,'mlx::core::detail::Ceil::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#a70da19b5c9c69f04b9f196bdf266f93c',1,'mlx::core::detail::Ceil::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#af0e7e806b73c664ada837476f9d4d43b',1,'mlx::core::detail::Ceil::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_ceil.html#acc1bfc84a9b91f6e9764234cbe3b9687',1,'mlx::core::detail::Ceil::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_conjugate.html#a7e662d05c6998bd6ced8ad9c187324a5',1,'mlx::core::detail::Conjugate::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cos.html#ad4caef573f9d9071f8945a8efed231ad',1,'mlx::core::detail::Cos::operator()()'],['../structmlx_1_1core_1_1detail_1_1_cosh.html#a63591f49776d9aadc02200036ae38317',1,'mlx::core::detail::Cosh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf.html#a168f8ccc6c8053b05dd1a48904ca8fd4',1,'mlx::core::detail::Erf::operator()()'],['../structmlx_1_1core_1_1detail_1_1_erf_inv.html#acc93c0511141404208b35f302f8c1fcb',1,'mlx::core::detail::ErfInv::operator()()'],['../structmlx_1_1core_1_1detail_1_1_exp.html#a0846300cee28315e5b42f74acafbd1a1',1,'mlx::core::detail::Exp::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_exp.html#af247c0d19d59f3310fd0a081eb92cf8b',1,'mlx::core::detail::Exp::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_expm1.html#abf7e61b8387521e9d44334ce88d833a0',1,'mlx::core::detail::Expm1::operator()()'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a16c13cfe736098bffc81d655e172294a',1,'mlx::core::detail::Floor::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a9b6c4c34b6594b8c413abe31f34a73df',1,'mlx::core::detail::Floor::operator()(int8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#aca4c71204b3ceeca6329f7ea2b041f4c',1,'mlx::core::detail::Floor::operator()(int16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a3c3ab9e00d1fbd124802517e8c35fe02',1,'mlx::core::detail::Floor::operator()(int32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a4b5954ffc59c741dd7b86bafda69d5cc',1,'mlx::core::detail::Floor::operator()(int64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2e33b10bd5b04551054a87c601440bc7',1,'mlx::core::detail::Floor::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a2500f971100919a694f78669a5e4f438',1,'mlx::core::detail::Floor::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a23df818301d68389e6e12f5a9ec1fbd7',1,'mlx::core::detail::Floor::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#ac988b4f265cf46c68609c9c8787c15fb',1,'mlx::core::detail::Floor::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_floor.html#a7f936e3fd53772bc189d845c73b53202',1,'mlx::core::detail::Floor::operator()(bool x)'],['../structmlx_1_1core_1_1detail_1_1_imag.html#a5bd82e2185f3779e398c179d42a3e782',1,'mlx::core::detail::Imag::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log.html#a0012a4e1744dbe9a28c3b5652be6e1c6',1,'mlx::core::detail::Log::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log2.html#a467bd4c995674721ff5fff6df33aead8',1,'mlx::core::detail::Log2::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log10.html#a2633c5b772bbc9f8b66cffd4a3e01a3f',1,'mlx::core::detail::Log10::operator()()'],['../structmlx_1_1core_1_1detail_1_1_log1p.html#a3220de8c6090c44aa2070b1fbb2dc340',1,'mlx::core::detail::Log1p::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_not.html#a79799668ea5c364b0b4e2bc330e76253',1,'mlx::core::detail::LogicalNot::operator()()'],['../structmlx_1_1core_1_1detail_1_1_negative.html#afc4595c70ef7196df374cf4b2cc5e526',1,'mlx::core::detail::Negative::operator()()'],['../structmlx_1_1core_1_1detail_1_1_real.html#ae84a939fdb5916257a7731cda66d4d61',1,'mlx::core::detail::Real::operator()()'],['../structmlx_1_1core_1_1detail_1_1_round.html#a653f29c059bbfa6192378732a8a23351',1,'mlx::core::detail::Round::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_round.html#a82a984f13568051009e257fe85227da6',1,'mlx::core::detail::Round::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sigmoid.html#a64b72561bfaf758632167f00648f4c89',1,'mlx::core::detail::Sigmoid::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a64ed5013cee7ff18c7fe70bc04737e7b',1,'mlx::core::detail::Sign::operator()(T x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7106ed1f2f98a365fcb3e6ee39084748',1,'mlx::core::detail::Sign::operator()(uint8_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a7163e8c068dcc460600ed04014dc9945',1,'mlx::core::detail::Sign::operator()(uint16_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#ae8f56c7134721c846240830169424c22',1,'mlx::core::detail::Sign::operator()(uint32_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a10ae519e9a74a327fc72c410e9ab2936',1,'mlx::core::detail::Sign::operator()(uint64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sign.html#a91be4e273f6c7ea5d44cfab380b77603',1,'mlx::core::detail::Sign::operator()(complex64_t x)'],['../structmlx_1_1core_1_1detail_1_1_sin.html#ae95671816529cc2188389af37a2f1a13',1,'mlx::core::detail::Sin::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sinh.html#a9663ddf0fa4c0003576b48f3d5385f00',1,'mlx::core::detail::Sinh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_square.html#a54e9e3c0d0896e142289e8282eab1099',1,'mlx::core::detail::Square::operator()()'],['../structmlx_1_1core_1_1detail_1_1_sqrt.html#aa5a4830b3ef7efab20ea88a110667efd',1,'mlx::core::detail::Sqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_rsqrt.html#a9af247be16bab83243038aac54446b79',1,'mlx::core::detail::Rsqrt::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tan.html#aba397cd7ac05bbe06dfa9e3a64bdb05f',1,'mlx::core::detail::Tan::operator()()'],['../structmlx_1_1core_1_1detail_1_1_tanh.html#a1749ba1edfd53095ed7d45c0e53bab61',1,'mlx::core::detail::Tanh::operator()()'],['../structmlx_1_1core_1_1detail_1_1_add.html#a2d6011c35768b5fcd2bb75747b944353',1,'mlx::core::detail::Add::operator()()'],['../structmlx_1_1core_1_1detail_1_1_divide.html#a5e0d22e2084c4ca81bec0d457a46c662',1,'mlx::core::detail::Divide::operator()()'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a3bdaf1095ad883ecc0fecc455f02cbf3',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a52c3a2ba86fccb24d37d218ae8328954',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a0b0dd6ef5b08585fdf8355770da8d747',1,'mlx::core::detail::Remainder::operator()(T numerator, T denominator)'],['../structmlx_1_1core_1_1detail_1_1_remainder.html#a68fe542084fb94d9a5abd740fe07832b',1,'mlx::core::detail::Remainder::operator()(complex64_t numerator, complex64_t denominator)'],['../structmlx_1_1core_1_1detail_1_1_equal.html#a2994cf1884e7126e76d0a20b215fe3ab',1,'mlx::core::detail::Equal::operator()()'],['../structmlx_1_1core_1_1detail_1_1_na_n_equal.html#a073b20b0d8d41ec8364b7c477421b9bf',1,'mlx::core::detail::NaNEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater.html#aa3844c2bae3c7a981739f642aa0dd094',1,'mlx::core::detail::Greater::operator()()'],['../structmlx_1_1core_1_1detail_1_1_greater_equal.html#a3b005f85522ad0e4b57044eed930ac30',1,'mlx::core::detail::GreaterEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less.html#a0b4032dff1ad2b387745cb000aabdcbb',1,'mlx::core::detail::Less::operator()()'],['../structmlx_1_1core_1_1detail_1_1_less_equal.html#a31e70f8830a07557697541301555a7a7',1,'mlx::core::detail::LessEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#a3eb37abec8426ebc42b8c685075c523a',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_maximum.html#af99345c7c8bc95ccab1b22c0792ac6fd',1,'mlx::core::detail::Maximum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#afca0861556416a8547dd8574528feb69',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_minimum.html#a64b2eecfbc56aaef7deb939423bac3f8',1,'mlx::core::detail::Minimum::operator()(T x, T y)'],['../structmlx_1_1core_1_1detail_1_1_log_add_exp.html#ad1663fd809acaa4038f90666436599e5',1,'mlx::core::detail::LogAddExp::operator()()'],['../structmlx_1_1core_1_1detail_1_1_multiply.html#a898b090966b047723513224b8d3b22f1',1,'mlx::core::detail::Multiply::operator()()'],['../structmlx_1_1core_1_1detail_1_1_not_equal.html#a23d662b5fd968dc17d3bee2595b5f99d',1,'mlx::core::detail::NotEqual::operator()()'],['../structmlx_1_1core_1_1detail_1_1_power.html#a2c047e1b488e6525447a224975a75db8',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_power.html#a9967db24b8f67d54b6aa3810e274f28c',1,'mlx::core::detail::Power::operator()(T base, T exp)'],['../structmlx_1_1core_1_1detail_1_1_subtract.html#a72ef05830615a2d5d9662926ed82672a',1,'mlx::core::detail::Subtract::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_and.html#a046536c1f2f9367983f052a213d7b7d8',1,'mlx::core::detail::LogicalAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_logical_or.html#afb134dbab79307d4ba597843c61d0b1a',1,'mlx::core::detail::LogicalOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_select.html#a930f9da2e6b3453e04f21382435a2cfb',1,'mlx::core::detail::Select::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_and.html#ae0bed77f95fe2b2f0b594addddd04700',1,'mlx::core::detail::BitwiseAnd::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_or.html#a5ab05734c5000b454975de6647a08d20',1,'mlx::core::detail::BitwiseOr::operator()()'],['../structmlx_1_1core_1_1detail_1_1_bitwise_xor.html#a0989e3bcd064ae06c33f660696a869a0',1,'mlx::core::detail::BitwiseXor::operator()()'],['../structmlx_1_1core_1_1detail_1_1_left_shift.html#a9385f580830a6ad163dd9bb8c4905e7a',1,'mlx::core::detail::LeftShift::operator()()'],['../structmlx_1_1core_1_1detail_1_1_right_shift.html#a154528ba50e89a4c532a181f135b1620',1,'mlx::core::detail::RightShift::operator()()'],['../structmlx_1_1core_1_1_default_strided_reduce.html#a024682ab93b84e544a07e3a9c3c51fba',1,'mlx::core::DefaultStridedReduce::operator()()'],['../structmlx_1_1core_1_1_default_contiguous_reduce.html#a08144c7a3cdf10af5e47f4575da3694f',1,'mlx::core::DefaultContiguousReduce::operator()()'],['../struct_add.html#ac5c66b63d63a222d3ae0ab8cc7c90eb5',1,'Add::operator()()'],['../struct_floor_divide.html#a2b328e4d768e718fa439f955c524666a',1,'FloorDivide::operator()(T x, T y)'],['../struct_floor_divide.html#afc16a2b2a745225e0bc95640f3fc0219',1,'FloorDivide::operator()(float x, float y)'],['../struct_floor_divide.html#ae91719a15f7e643d552129f476089c6a',1,'FloorDivide::operator()(half x, half y)'],['../struct_floor_divide.html#a4aa9f858626583e02bd79f747229bbca',1,'FloorDivide::operator()(bfloat16_t x, bfloat16_t y)'],['../struct_divide.html#a0a16b9194abc2ab7c61129f81a9bbb3d',1,'Divide::operator()()'],['../struct_remainder.html#ab7875512ff4341c580c6dc372e64fc58',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#a18150b5f4425e30b95ffabc6bb25cede',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ab3b75f54b56fd357c9755daadb2cafc2',1,'Remainder::operator()(T x, T y)'],['../struct_remainder.html#ae918ce0e246937d4fe04e2ea36e4b2c1',1,'Remainder::operator()(complex64_t x, complex64_t y)'],['../struct_equal.html#aa498087080900d4428ba428a6496a769',1,'Equal::operator()()'],['../struct_na_n_equal.html#a00220898e02db656d21dde9e9354a8dc',1,'NaNEqual::operator()(T x, T y)'],['../struct_na_n_equal.html#a6185e4554dce5b4659d21673c576be51',1,'NaNEqual::operator()(complex64_t x, complex64_t y)'],['../struct_greater.html#a98d7d8ee360cd0f469c6eb9a017560f5',1,'Greater::operator()()'],['../struct_greater_equal.html#ae69a3bccc567a46506cf0d296294ce80',1,'GreaterEqual::operator()()'],['../struct_less.html#a5ee0b31b2d9123dc4504f2979a5854d3',1,'Less::operator()()'],['../struct_less_equal.html#ae9f9a1b2eae548977139704f0044acfe',1,'LessEqual::operator()()'],['../struct_log_add_exp.html#ab32417f18e8ff68c15f78aceeb624edf',1,'LogAddExp::operator()()'],['../struct_maximum.html#a3ea0f42bc4cd80b68a98f189f9fa859c',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a0bc8fadc87f2c49fc440d625bfc97ca6',1,'Maximum::operator()(T x, T y)'],['../struct_maximum.html#a907e8793900be5927625377dab199644',1,'Maximum::operator()(complex64_t x, complex64_t y)'],['../struct_minimum.html#aa6113dfac3986c0f571fa53f65c5330e',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a0c939921de87ab9c6959238aac81a059',1,'Minimum::operator()(T x, T y)'],['../struct_minimum.html#a800fba087280f79c2f7e9aff75bed093',1,'Minimum::operator()(complex64_t x, complex64_t y)'],['../struct_multiply.html#a1327fc5a0713931afe997b0d4d2988e0',1,'Multiply::operator()()'],['../struct_not_equal.html#af008d73a5d9cde0b8309b7e8ee7438b2',1,'NotEqual::operator()(T x, T y)'],['../struct_not_equal.html#a14de494cea4e4869351202cad1149f17',1,'NotEqual::operator()(complex64_t x, complex64_t y)'],['../struct_power.html#a2b6df2a9e48155ff9734caca8504a79f',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a36829163d42973034a1f8a7ecc57a1de',1,'Power::operator()(T base, T exp)'],['../struct_power.html#a27cdfb313c4e82b63bdcdaee923cbbef',1,'Power::operator()(complex64_t x, complex64_t y)'],['../struct_subtract.html#ae0856cd8d449074ca287baa7e460f68a',1,'Subtract::operator()()'],['../struct_logical_and.html#a8bc6bdabc0ea0678a46e2cf6217cb3a6',1,'LogicalAnd::operator()()'],['../struct_logical_or.html#ade6a931324a604a3119d2220d6f5460d',1,'LogicalOr::operator()()'],['../struct_bitwise_and.html#afb48af090b01dd0200963bc12d842e36',1,'BitwiseAnd::operator()()'],['../struct_bitwise_or.html#a41f847463daafa99ee56f4035578390f',1,'BitwiseOr::operator()()'],['../struct_bitwise_xor.html#a3a3e8a56caab739d40262d9349c9c485',1,'BitwiseXor::operator()()'],['../struct_left_shift.html#aa729747784c38bfdbba34794fcf5175b',1,'LeftShift::operator()()'],['../struct_right_shift.html#a2cc59b400c68342b0e43050431323c17',1,'RightShift::operator()()'],['../struct_arc_tan2.html#ac9b7729753e13be293ab700231d061ac',1,'ArcTan2::operator()()'],['../struct_div_mod.html#a8b5758f2ea18d4c903b462331b25abfe',1,'DivMod::operator()()'],['../struct_cum_prod_3_01bool_01_4.html#ad634be0b139d10ce6d21332eef0d936b',1,'CumProd< bool >::operator()()'],['../struct_cum_max.html#a781b9b955c5412466da6af6c70d73c06',1,'CumMax::operator()()'],['../struct_cum_min.html#ae0b8c3761e04fa538d304ca842281a66',1,'CumMin::operator()()'],['../struct_less_than.html#a2798eb377b411c93a4ed30cf35caade2',1,'LessThan::operator()()'],['../struct_select.html#adb51692aae3038de07dd745891bf9848',1,'Select::operator()()'],['../struct_abs.html#a9e7481dfcc162509769852026ff4a344',1,'Abs::operator()(T x)'],['../struct_abs.html#a0ca113fd036151c443df3f83cc667f28',1,'Abs::operator()(uint8_t x)'],['../struct_abs.html#adaeab32a7e377dc990077ab15f3dc4c2',1,'Abs::operator()(uint16_t x)'],['../struct_abs.html#a99d2a2f37a6cddd3168b0224f2a9b963',1,'Abs::operator()(uint32_t x)'],['../struct_abs.html#ac9cbc02422d930479303f240a7ea6c71',1,'Abs::operator()(uint64_t x)'],['../struct_abs.html#ac30835b27784d451bd2e4524c8eb9e11',1,'Abs::operator()(bool x)'],['../struct_abs.html#ab82917d6b30a2c579e7eb879d305c5fc',1,'Abs::operator()(complex64_t x)'],['../struct_arc_cos.html#a5553cecf58511e24e76ac97f2d90b9ac',1,'ArcCos::operator()()'],['../struct_arc_cosh.html#a5c9e7712c14c97298b23ec48e19abc58',1,'ArcCosh::operator()()'],['../struct_arc_sin.html#a0343872f2da93bae2bb0baadf49da022',1,'ArcSin::operator()()'],['../struct_arc_sinh.html#a3066fb7dc7c3180100fb55ff94af6a7a',1,'ArcSinh::operator()()'],['../struct_arc_tan.html#af3a0aec6acec8ae8f5e4c4d5cf8c91ba',1,'ArcTan::operator()()'],['../struct_arc_tanh.html#a37dc3e01ec2830de7e82ed6c6363ac88',1,'ArcTanh::operator()()'],['../struct_ceil.html#a5e2a4ef1b012f5d352064489156e5e44',1,'Ceil::operator()(T x)'],['../struct_ceil.html#a455cd8083ba859993077f2e078ae165b',1,'Ceil::operator()(int8_t x)'],['../struct_ceil.html#a2acb61bc658c7a216795e7f76ebcf98a',1,'Ceil::operator()(int16_t x)'],['../struct_ceil.html#aef8c37f7a8ee3fc80700d605a09891fb',1,'Ceil::operator()(int32_t x)'],['../struct_ceil.html#a93d0110511ad5dd200e12d37a3d7d6e3',1,'Ceil::operator()(int64_t x)'],['../struct_ceil.html#aa335b745fa26e0f443cdb36298105484',1,'Ceil::operator()(uint8_t x)'],['../struct_ceil.html#ade17e13b7f30f5c590fae1581a2013ac',1,'Ceil::operator()(uint16_t x)'],['../struct_ceil.html#a411c75cc35cdc088402e176a1defd22d',1,'Ceil::operator()(uint32_t x)'],['../struct_ceil.html#a9ac660ca29eef7a7429fceb7b917a68a',1,'Ceil::operator()(uint64_t x)'],['../struct_ceil.html#a40de367e62f06ebd7e1330afa93a9ad9',1,'Ceil::operator()(bool x)'],['../struct_cos.html#ae222f8710f6b8254c471ebd475aa5bda',1,'Cos::operator()(T x)'],['../struct_cos.html#a5f26feb1dcc4bec5f59a9ff511c5b163',1,'Cos::operator()(complex64_t x)'],['../struct_cosh.html#a5847ebeebb236fdc926798ddc16475ba',1,'Cosh::operator()(T x)'],['../struct_cosh.html#aefdd91298dac16d528d29ee47e2f7252',1,'Cosh::operator()(complex64_t x)'],['../struct_conjugate.html#acb0a2694285f1f57c7654b371ce8cbd8',1,'Conjugate::operator()()'],['../struct_erf.html#a80719402ad7f7d418859a6677d7b604d',1,'Erf::operator()()'],['../struct_erf_inv.html#afbf3668d1a512e889f093a0bc7673309',1,'ErfInv::operator()()'],['../struct_exp.html#a5ef395868e055348c0802fd5fe45669c',1,'Exp::operator()(T x)'],['../struct_exp.html#a2b341ac400c4d145397950eb60734336',1,'Exp::operator()(complex64_t x)'],['../struct_expm1.html#a4b834d42cf0b84daf03fec62c222091a',1,'Expm1::operator()()'],['../struct_floor.html#ace3551f28429081e9f3a3dab0c84212b',1,'Floor::operator()(T x)'],['../struct_floor.html#a10d7fd05b4c224c9f135451246d13014',1,'Floor::operator()(int8_t x)'],['../struct_floor.html#a2865a04a492e3590302f4bd3215a10d7',1,'Floor::operator()(int16_t x)'],['../struct_floor.html#a41012343ff0463ec44b4d06196f41182',1,'Floor::operator()(int32_t x)'],['../struct_floor.html#aae3181d15856796aa0628cf30c92aa2e',1,'Floor::operator()(int64_t x)'],['../struct_floor.html#ac6cf38d82c8e270911afdca4c69ad51b',1,'Floor::operator()(uint8_t x)'],['../struct_floor.html#a78969b9e2b53ae248e72a67259eea5d8',1,'Floor::operator()(uint16_t x)'],['../struct_floor.html#a959009320ed622ed45b39becab1d5b98',1,'Floor::operator()(uint32_t x)'],['../struct_floor.html#a7d04b83c3345cd867315cae2d7ff68ab',1,'Floor::operator()(uint64_t x)'],['../struct_floor.html#abea845fe5e8e6b93bd4bca8717337e0b',1,'Floor::operator()(bool x)'],['../struct_imag.html#a3b29e9f8a46c194d683f6a9938314400',1,'Imag::operator()()'],['../struct_log.html#a32a383cb6be06e616a75f23bf49089c3',1,'Log::operator()()'],['../struct_log2.html#ac1e067ecdcbdbffb6106e789c2b98b64',1,'Log2::operator()()'],['../struct_log10.html#ac596a74c1642a00f3eced07ee3334122',1,'Log10::operator()()'],['../struct_log1p.html#a4464c6e7bdbe55ffd7d961c695cd13ce',1,'Log1p::operator()()'],['../struct_logical_not.html#a8a620bac957ab8c09ac85adfddd96708',1,'LogicalNot::operator()()'],['../struct_negative.html#af6879b374314a559faa321e8cce3d710',1,'Negative::operator()()'],['../struct_real.html#a85b9c5b9e65297994fa26ff68e19e809',1,'Real::operator()()'],['../struct_round.html#aa06a0195867e2ceb679c403b6909a1c4',1,'Round::operator()(T x)'],['../struct_round.html#ad3a08f2276ff1033900bc0a7da812655',1,'Round::operator()(complex64_t x)'],['../struct_sigmoid.html#a75a24cd75cb4d4c9a072811b2d70ad55',1,'Sigmoid::operator()()'],['../struct_sign.html#aa3304c6b43bcad53061614b741d8403c',1,'Sign::operator()(T x)'],['../struct_sign.html#ac48992b675b8b28be1e27e1f2ec5d2f7',1,'Sign::operator()(uint32_t x)'],['../struct_sign.html#ae07a4249e1b61419a3b9ca6c337b7bb5',1,'Sign::operator()(complex64_t x)'],['../struct_sin.html#a7caf98c777521fa5d5c6ddaaa3b779fd',1,'Sin::operator()(T x)'],['../struct_sin.html#aa510cf4595b6d49065ab6b602d8fcb14',1,'Sin::operator()(complex64_t x)'],['../struct_sinh.html#a02cf32bcf560657b9ee34fb1affed8e2',1,'Sinh::operator()(T x)'],['../struct_sinh.html#a1f8ba1858d352ee68861cd6ea861af43',1,'Sinh::operator()(complex64_t x)'],['../struct_square.html#afde739fc544e45dd30964c02dca94310',1,'Square::operator()()'],['../struct_sqrt.html#ab9b16d2b9b03a1c54190f4479a56a4ad',1,'Sqrt::operator()()'],['../struct_rsqrt.html#ae16699fd829e40416436247a39233fda',1,'Rsqrt::operator()()'],['../struct_tan.html#a1e6fb8c691621c69cb9bd393de4f6e78',1,'Tan::operator()(T x)'],['../struct_tan.html#a2ef120c9f92b0d2e9cec8389eda05724',1,'Tan::operator()(complex64_t x)'],['../struct_tanh.html#adce11a7ad33226c6ecff34f46f5c45d7',1,'Tanh::operator()(T x)'],['../struct_tanh.html#aa8423b43c725bb4b88965a11e8cf20f6',1,'Tanh::operator()(complex64_t x)']]], ['operator_2a_16',['operator*',['../structpocketfft_1_1detail_1_1cmplx.html#a26bf3d709a58f06228e502af6db8e5ac',1,'pocketfft::detail::cmplx::operator*(const T2 &other) const -> cmplx< decltype(r *other)>'],['../structpocketfft_1_1detail_1_1cmplx.html#ad9c591ef8ae976293f207937d273e9a1',1,'pocketfft::detail::cmplx::operator*(const cmplx< T2 > &other) const -> cmplx< decltype(r+other.r)>'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#a153756072fda6d3e53bcca11b46a1238',1,'mlx::core::array::ArrayIterator::operator*()'],['../backend_2metal_2kernels_2bf16_8h.html#a8f06316063fc91747533105f256b55b5',1,'operator*(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7b3bce3f6f17089d87e13e91f580a581',1,'operator*(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a54ae7216b82c5cea362f6b83e1df3a9b',1,'operator*(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a852689073c17596de4fb545bc046b380',1,'operator*(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a168300bbd04d8e97c5e4218cb14ae378',1,'operator*(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a6278bd2e0e2805090b33ef666bf7f6bb',1,'operator*(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aecf703522d9ce32dfeefe1e6e903db06',1,'operator*(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7cd44d27fa9a4f13df39894c34fdb348',1,'operator*(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aee64dc1890abb6d1035361cb8c751f96',1,'operator*(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad1a559ab88dbbb4fd2c7509d2c94e55b',1,'operator*(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a495ae2d9be5d97c4c6448fc4e50a03e1',1,'operator*(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a87ab4b7a502430da664ccb8abd383058',1,'operator*(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5f997839cf49c24ab594a0dff486a7bc',1,'operator*(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a681d4fb076973f58f7dac894ec62a385',1,'operator*(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga26c33f5cdb6fc10d272acd6e208034e0',1,'mlx::core::operator*(const array &a, const array &b)'],['../group__ops.html#gac22a67f7de797b1ae59029843cbdcab6',1,'mlx::core::operator*(T a, const array &b)'],['../group__ops.html#ga6f2369ed5fae8ff9b1528670a004dde2',1,'mlx::core::operator*(const array &a, T b)'],['../namespacemlx_1_1core.html#a0cc824d6318f97f7058918ab64ddfc25',1,'mlx::core::operator*(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a81e1c727c3fc48910b030cb65a9e7afa',1,'mlx::core::operator*(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a861d948220d8f48d46c68d2ddb16a096',1,'mlx::core::operator*(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a13d16561812679b36e68185dc4b2d04d',1,'mlx::core::operator*(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a5287610200ff573730c9c92413f48881',1,'mlx::core::operator*(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a377ccc6b4ef36767abca102dca56dc10',1,'mlx::core::operator*(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a5d696b63635ce6967526d6a410f7f6b1',1,'mlx::core::operator*(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abe90e9527bfa3e1c813d41df4a2372e7',1,'mlx::core::operator*(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a5f14963c77f96bcb5a3bef5661a86ba4',1,'mlx::core::operator*(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#acfb06fe9f5fee01dbb5a2b23bccfd0d3',1,'mlx::core::operator*(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#afc9a87f1fccbac05242b91bfbb35c24d',1,'mlx::core::operator*(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0b9678af9b487900cacf6639a4693de0',1,'mlx::core::operator*(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ad5950619081389e6ed7512f38358d33d',1,'mlx::core::operator*(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a65d25d082374761c05b056e1046d1d4e',1,'mlx::core::operator*(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a759191fb984e7737f0ef529c2053ad73',1,'mlx::core::operator*(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3a52675c3d4552b319dd9707844abdec',1,'mlx::core::operator*(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a45d67f5d80fba4d42e34c682a8d22beb',1,'mlx::core::operator*(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ad25880c67bbcbfafbe54dc16418bf736',1,'mlx::core::operator*(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a63c836e1141e07ae72cee770bad01200',1,'mlx::core::operator*(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a265a37b8ee4a97390213e9ec49693e66',1,'mlx::core::operator*(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab5a457da04dcb157a0b5172c4b2244b6',1,'mlx::core::operator*(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#aa56a8bda08be9ef3711496e216a75c95',1,'mlx::core::operator*(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af89612098dd355b1eefb841c753b36ab',1,'mlx::core::operator*(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a4552687a0637f710b5d55bb6378fcabe',1,'mlx::core::operator*(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af69db7def588d7da430434a69456e29c',1,'mlx::core::operator*(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a00af6e5095888f00791ee0ab6d993ad6',1,'mlx::core::operator*(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab48feddc1aa304383e5493923506ad7a',1,'mlx::core::operator*(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a0367b582e85162b4180e086f725e49e9',1,'mlx::core::operator*(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a45f0479526fbccdb00bc73ea7f3b7625',1,'mlx::core::operator*(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a394797646010ba9ef2a1f9b9a4b8ddd9',1,'mlx::core::operator*(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#acaaa86b59c7ceb2e092ac07f2a75225c',1,'mlx::core::operator*(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#a067d47823a322b88043cce7ce4a3ec78',1,'mlx::core::operator*(bfloat16_t lhs, float16_t rhs)']]], ['operator_2a_3d_17',['operator*=',['../structpocketfft_1_1detail_1_1cmplx.html#a683fd490182c9189fa2c05b1823edd93',1,'pocketfft::detail::cmplx::operator*=(T2 other)'],['../structpocketfft_1_1detail_1_1cmplx.html#a06f2c26c6fc4722e61b44da4c242ed87',1,'pocketfft::detail::cmplx::operator*=(const cmplx< T2 > &other)'],['../backend_2metal_2kernels_2bf16_8h.html#a7232b0a0e193b3c6172d6fc2578bf419',1,'operator*=(device _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ade65ebca11e38d56408c512df89b99f4',1,'operator*=(device float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af4348ce3425dd99d069e8fdf06e25a3c',1,'operator*=(thread _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2c3c5f793b3d957d7295d7f1faabebee',1,'operator*=(thread float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac66657077d55e94197b52b63acb50b7d',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a383165ea838cc3feeee4d9cf54aa77cc',1,'operator*=(threadgroup float &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab706af260b61f735b28464877d02137c',1,'operator*=(device _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a979374b1dd4e0eaf602326fa901336d1',1,'operator*=(device half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac815eec2c1b15a47b1c6ea6790e77d24',1,'operator*=(thread _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8110fae7bcc34a0de5927546b24aa935',1,'operator*=(thread half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae4acef3e7ae7dfe359422503f894e885',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adc268cdbc30500f3009f5de2b2f0f67a',1,'operator*=(threadgroup half &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a81f65b04a87a25c7eb1a751d1be9fa55',1,'operator*=(device _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08c1f916302eb9d48c93f8b7260538fe',1,'operator*=(device int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adc8e82b8f593b12c6d405e2250ab0f62',1,'operator*=(thread _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4611728172afea51860a77fdb06cafa0',1,'operator*=(thread int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0b8736e2ae24758b6e24ea72668df5b4',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad920df9579603f0b0ee2689eba330617',1,'operator*=(threadgroup int16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae97ab6c3ddcc2754b24f86319a5398be',1,'operator*=(device _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3ff4ff59f411010ac8502cfabda4bd6f',1,'operator*=(device int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abd3d82e2dec1847e97eb8fc3bab2985a',1,'operator*=(thread _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a738078eb7d5ff94ff48156a555d763a5',1,'operator*=(thread int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a435f2f4256aadb1b57fd62bb7f733cf7',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0e4377b120d6305335d296e031ee5b30',1,'operator*=(threadgroup int32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a917354f77eac26189da8a2f610a00074',1,'operator*=(device _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af725f935bfa0405e5ff17ede3ac47283',1,'operator*=(device int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7c56980c234a04260b8b19298085e526',1,'operator*=(thread _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab840ff9de0cdd0e9afffb8baa2a850a3',1,'operator*=(thread int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a73416a7415f3fe31525e33419e5e8aab',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a16978f4b16d954ef4d4cf0f32f6c0b94',1,'operator*=(threadgroup int64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a99aa4cc110d1c7aa3b4c8c5cbf9235b7',1,'operator*=(device _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2179abbc91ce8763e96e39e1917bfa6e',1,'operator*=(device uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab070ea4676d10a10ff3e9379a4068a57',1,'operator*=(thread _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0197e039d4c65bf49649a6f250c2d436',1,'operator*=(thread uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ad3565cc6fd1e088d052b1108aa065851',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint16_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a711693988c437c2fb4d7da505982fe21',1,'operator*=(threadgroup uint16_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aeff4c28986f98c23de1df17043edb0f5',1,'operator*=(device _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7dbf0c75df4817cb4ef8b60c417a89d0',1,'operator*=(device uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a323a80492cd17a49e2c3dd18f8c8b5cc',1,'operator*=(thread _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#adb465776d3868bda0525d632ffc4d129',1,'operator*=(thread uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a12a98d71d670b409b8065e0d61672d55',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5d00eb2ec2b0e15b2753d100694c45ae',1,'operator*=(threadgroup uint32_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1a2a683ff40490226eb1371fb905023d',1,'operator*=(device _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a4126fb7ed5bbb27a2332c543cf56a337',1,'operator*=(device uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab092d9790ef20fc0386707530aee89db',1,'operator*=(thread _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abff1fd2439e31e6e64a3d2fdee3c7821',1,'operator*=(thread uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a625dcb133f1f953f263e6200399866c6',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08b6071245513e1726ec68e3b63edc53',1,'operator*=(threadgroup uint64_t &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a13aa79165ec87710e977f33fe0361e91',1,'operator*=(device _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3796dcf819adb1ef8152f57ba63ff6b1',1,'operator*=(thread _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aaab79d0b4c9e9bdc059ace6ec58c5b00',1,'operator*=(threadgroup _MLX_BFloat16 &lhs, _MLX_BFloat16 rhs): bf16.h'],['../namespacemlx_1_1core.html#a0dd3893abc8986901872c8365ab1509d',1,'mlx::core::operator*=(_MLX_BFloat16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a3cc5c154e4ad9a83ad43da8513146fdc',1,'mlx::core::operator*=(float &lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a600e77dbc72e78207b5f5dbf4b298781',1,'mlx::core::operator*=(_MLX_Float16 &lhs, const float &rhs)'],['../namespacemlx_1_1core.html#a54833be1d44bc3adfc9ea218fc3685bd',1,'mlx::core::operator*=(float &lhs, _MLX_Float16 rhs)']]], ['operator_2b_18',['operator+',['../structpocketfft_1_1detail_1_1cmplx.html#a76447ef141c8732d57421749fc81b236',1,'pocketfft::detail::cmplx::operator+()'],['../structmlx_1_1core_1_1array_1_1_array_iterator.html#ae2adde594b5a4853f6bc78263a957d85',1,'mlx::core::array::ArrayIterator::operator+()'],['../backend_2metal_2kernels_2bf16_8h.html#a09c1a797eb7f43742578680899932f50',1,'operator+(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a551b970f73bb4a3b287653021d000b60',1,'operator+(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a43a225e7e548bb041f3a5d844faaf0da',1,'operator+(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a8b6c3fd9d068a2159084359df8b9b449',1,'operator+(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0a5bfe15d95ba540795f4c25ebfa4f07',1,'operator+(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa415ce182fe7582d885fe633fc3527ce',1,'operator+(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a62f891b7dbba0000749cf338f594bedb',1,'operator+(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab43932322f81bf322aa1b0deeee9a987',1,'operator+(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acd15d46ea5827a2a39898ccbb8352eb8',1,'operator+(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a006763fae6e0577fc168ec9446f0f747',1,'operator+(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a12a47e8ac0be788edff57ae0a96d7830',1,'operator+(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af87dfa2122e9c76042dc41fb7f338a87',1,'operator+(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af2737d09c887ee8cd43fdeabceddbe82',1,'operator+(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#ad6af5c6c5ed4898b49758618e5aee189',1,'operator+(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga26e5a043eaaaf066d1400adac9c11d0c',1,'mlx::core::operator+(const array &a, const array &b)'],['../group__ops.html#ga7d0ec8d01e7cefa6a6b25f11876761b5',1,'mlx::core::operator+(T a, const array &b)'],['../group__ops.html#ga7cc080a4f9d4a667f2099aa0dbfefadd',1,'mlx::core::operator+(const array &a, T b)'],['../namespacemlx_1_1core.html#ac14b984970cafd8fbe24d080949515cc',1,'mlx::core::operator+(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab076069c6f0047c548a8dc29d35dd36a',1,'mlx::core::operator+(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#aab9d96b0a168f4d05146000a6212b5d8',1,'mlx::core::operator+(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ac4e6f03d7e4ae701b4eefa784f36185b',1,'mlx::core::operator+(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a4cabd600a5271b0d416c91e8d31dd9c1',1,'mlx::core::operator+(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af26df9dc279d71b7cc10892c72162b58',1,'mlx::core::operator+(_MLX_BFloat16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#ac3b97eecec9bd8efb313f8f201560343',1,'mlx::core::operator+(bool lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2e3bb121cbde30c2e6d806df0d41ff59',1,'mlx::core::operator+(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ac87ecce4b44b0826e666a169ddc6f878',1,'mlx::core::operator+(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aed3d9cd32698ef0fe65b1280f103b3f5',1,'mlx::core::operator+(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a6fa13b9359cf3f575fbda5260e6e035d',1,'mlx::core::operator+(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#af240a6471ff827819192808bffeb857a',1,'mlx::core::operator+(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ac25a05679f312b724c406d8b282803c9',1,'mlx::core::operator+(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a54863a54f258acf2b5c734950618e4e1',1,'mlx::core::operator+(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a9f81f5ea8909db9660197217612ee446',1,'mlx::core::operator+(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a13e26c38da0a4e332e0ae4eb0aed9cb8',1,'mlx::core::operator+(const std::complex< float > &x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a59bb13a0bb7f748c8de34415b248bc57',1,'mlx::core::operator+(const complex64_t &x, const std::complex< float > &y)'],['../namespacemlx_1_1core.html#a38a44c412c8be4c8b952d3082cc7db74',1,'mlx::core::operator+(const complex64_t &x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a011dbdbd2413e59e744cf82b05431340',1,'mlx::core::operator+(bool x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a230e3b7c479add1b171fa0aaa3a8b13c',1,'mlx::core::operator+(const complex64_t &x, bool y)'],['../namespacemlx_1_1core.html#a3a6f43c2485f0d42293184f1aecbeaee',1,'mlx::core::operator+(uint32_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a766157c5d5d00fdf3da95eb7cb2981b9',1,'mlx::core::operator+(const complex64_t &x, uint32_t y)'],['../namespacemlx_1_1core.html#a64dceec2bb03eee963a2a1bc1ac69284',1,'mlx::core::operator+(uint64_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#ae36badb78a17cd7d13663a69645fc328',1,'mlx::core::operator+(const complex64_t &x, uint64_t y)'],['../namespacemlx_1_1core.html#ac1afa5d4c856e4b58109eff086e70ffd',1,'mlx::core::operator+(int32_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a8978def3c2cfe2a96314d564613b80db',1,'mlx::core::operator+(const complex64_t &x, int32_t y)'],['../namespacemlx_1_1core.html#a5b8af5ca4c0e37aba0b7530542bd64c2',1,'mlx::core::operator+(int64_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a3eaa72850205c18450c3af9a01cda219',1,'mlx::core::operator+(const complex64_t &x, int64_t y)'],['../namespacemlx_1_1core.html#ad38b38a3faf050735d45eed4438ee27a',1,'mlx::core::operator+(float16_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a358e66ff205bda3e8542427b6d2edadc',1,'mlx::core::operator+(const complex64_t &x, float16_t y)'],['../namespacemlx_1_1core.html#af56d4b85e329e39a825c01a50e3a2522',1,'mlx::core::operator+(bfloat16_t x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a806a495a129ebaab69cc57ca7db831d6',1,'mlx::core::operator+(const complex64_t &x, bfloat16_t y)'],['../namespacemlx_1_1core.html#a09fc6ebda917969383783a112a8547e7',1,'mlx::core::operator+(float x, const complex64_t &y)'],['../namespacemlx_1_1core.html#a7ed0e2cdb65612f54e67166762cb6408',1,'mlx::core::operator+(const complex64_t &x, float y)'],['../namespacemlx_1_1core.html#af7577c91b8c43682f0ebc9eb9758aae4',1,'mlx::core::operator+(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#abe36af9951afd8dd3ffe90ceedeb7f2b',1,'mlx::core::operator+(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#afb9f780dd056a4f975518f71a3b021ee',1,'mlx::core::operator+(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a6a8e093b24c4c789b7cd160f7e7f7de9',1,'mlx::core::operator+(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#af3a603690fd3de9e4f7f2035a4d25621',1,'mlx::core::operator+(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#afa2a4bccfeea9688ac922cb638341511',1,'mlx::core::operator+(_MLX_Float16 lhs, bool rhs)'],['../namespacemlx_1_1core.html#a6111e94d51de12391e5d68b765f28fc3',1,'mlx::core::operator+(bool lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7c7dd6d346e0cdf398a896f2c6958258',1,'mlx::core::operator+(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a00872a443f462b0ae0a30c84fb001bc0',1,'mlx::core::operator+(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a4f5d80d03bae6d8d90455d3c47a8c116',1,'mlx::core::operator+(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a78f1f388f9d81ed93f60311f4645d8d0',1,'mlx::core::operator+(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#aa43e1d6958c5d5a6fa9a625a1660e741',1,'mlx::core::operator+(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ae877e1d5e3cf57734da8b49535fe3fb3',1,'mlx::core::operator+(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a9a5ae769f67f886d59c8e292a8218550',1,'mlx::core::operator+(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a058878237ce50baa4c909d8d15448d7e',1,'mlx::core::operator+(uint64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a95fd207028f125eefbafe9e0522407fe',1,'mlx::core::operator+(float16_t lhs, bfloat16_t rhs)'],['../namespacemlx_1_1core.html#abc6425a3fbb386f5ea5964b42507e989',1,'mlx::core::operator+(bfloat16_t lhs, float16_t rhs)']]], @@ -29,7 +29,7 @@ var searchData= ['operator_3c_26',['operator<',['../backend_2metal_2kernels_2bf16_8h.html#a9ef6a57b7185e9ca49e255fec1a44e25',1,'operator<(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aab02c65bc38ea66335b2192ead4095a8',1,'operator<(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae91686513e284bcc9635833744bbdda1',1,'operator<(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2486f3b5de85b0d57f458d8f21f82b42',1,'operator<(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a435a2aec4c777b4b184ff5d24992e8a1',1,'operator<(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abdd04257e6a73883b5f56f1186d0e906',1,'operator<(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a69984aaa05ae1d4fccccf7f57e8ecb4a',1,'operator<(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a501cc01d5bf15d9f03aa28545f9624ea',1,'operator<(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1b029e4ca72125a5f9471f582c819705',1,'operator<(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0736a76f56578d26ba1422dc8b744a18',1,'operator<(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a24b1fa8998c892f90f8dde7c34fb10a5',1,'operator<(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#af80ff2020ec2c4b406c5fdae3fe55e63',1,'operator<(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac03f6eefb836373d37dc280b0d813d78',1,'operator<(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a67674e32596a9dae2258bb8e0e6a2058',1,'operator<(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#gaee41e2b8f61d563200ff03575ac1d6c3',1,'mlx::core::operator<(const array &a, const array &b)'],['../group__ops.html#ga1ef8ea11cf15ce628c54201fa42748ef',1,'mlx::core::operator<(T a, const array &b)'],['../group__ops.html#ga95e72226dc7a79c40b3d16f990922050',1,'mlx::core::operator<(const array &a, T b)'],['../namespacemlx_1_1core.html#a987d631e1508e8df55d98ddd57e4d086',1,'mlx::core::operator<(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad3fb46370cd8f0992866fad9e2c64a3c',1,'mlx::core::operator<(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a3026691bf7ee5095243a8611bf3411aa',1,'mlx::core::operator<(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0d42d6c1d5f77a96e2f296b8ebd79ee6',1,'mlx::core::operator<(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#ab5ce08a7de0a0ca00d61f7a7f8ea3ab4',1,'mlx::core::operator<(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abce8b7f24b61e5ec0f9a3afe20845caf',1,'mlx::core::operator<(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#aff97612627ae1ed260c43c0a7af0d306',1,'mlx::core::operator<(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a9119e518234df7923cae2b3802d59bf2',1,'mlx::core::operator<(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#aefb9b05ce8864ada99a920ab32017b89',1,'mlx::core::operator<(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#abc55f3676c2d112a6e9ab276bd6b1796',1,'mlx::core::operator<(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#afe6581a2c45f24d7fab1e4006c1e3c70',1,'mlx::core::operator<(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aca1d50cdd9506481dcc4cd1ad4a4f734',1,'mlx::core::operator<(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a310720f513b6a2490e9df80c65f1bfb3',1,'mlx::core::operator<(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a29e457a170b6cefb6ba1e394c96c6f7b',1,'mlx::core::operator<(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#afd4519985b6b207ec41ad8530d1036df',1,'mlx::core::operator<(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae1e41ca94022e43a00cdfc5845102daa',1,'mlx::core::operator<(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ac80f4022bffd95b57526685ce8e1cbc1',1,'mlx::core::operator<(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a3a8f6f0af477788c4f0aa98abfc5f1ab',1,'mlx::core::operator<(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a3728ed9b6cbd152bf675251a0501b466',1,'mlx::core::operator<(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a5b9ad811a5e1358100c5423dd70ea387',1,'mlx::core::operator<(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a5c77e1db83995d3e06a8a26265bce5d6',1,'mlx::core::operator<(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab8a0a3f70664049b35ce1887bd8ff5c2',1,'mlx::core::operator<(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a6652d93bfb2d426e261a1712a181a4d2',1,'mlx::core::operator<(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a03758b8d13da2de07cc4f4fc45d2854b',1,'mlx::core::operator<(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a325161b81a9ff179fd37d949780a17ba',1,'mlx::core::operator<(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a92eca79fce8233e4299343eee3996511',1,'mlx::core::operator<(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#adb016662b8f7eb680abfe1a421eabe72',1,'mlx::core::operator<(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_3c_3c_27',['operator<<',['../group__ops.html#gad656c30f9fd7d9467e405657b325aa7e',1,'mlx::core::operator<<(const array &a, const array &b)'],['../namespacemlx_1_1core.html#a1e5c30e316afa30c14bc48b92afdb794',1,'mlx::core::operator<<(std::ostream &os, const Device &d)'],['../namespacemlx_1_1core.html#a4ddd07021b36c848d6fb1dd9ac276822',1,'mlx::core::operator<<(std::ostream &os, const Stream &s)'],['../namespacemlx_1_1core.html#a0023c267cf81345fad65e7a797954cd3',1,'mlx::core::operator<<(std::ostream &os, const Dtype &d)'],['../namespacemlx_1_1core.html#a1fd58658474fb842d648dcf8f7d9f078',1,'mlx::core::operator<<(std::ostream &os, const Dtype::Kind &k)'],['../namespacemlx_1_1core.html#a123331f01188bd76e37623b63b6b4340',1,'mlx::core::operator<<(std::ostream &os, array a)'],['../namespacemlx_1_1core.html#a4e733bba89760abed32393e085812b22',1,'mlx::core::operator<<(std::ostream &os, const std::vector< int > &v)'],['../namespacemlx_1_1core.html#a6276bb9bad43ed4a27a1e2c3f5bfd990',1,'mlx::core::operator<<(std::ostream &os, const std::vector< size_t > &v)'],['../namespacemlx_1_1core.html#a5e5bd5c57b1cf19776bdb41e732861d9',1,'mlx::core::operator<<(std::ostream &os, const std::vector< int64_t > &v)'],['../namespacemlx_1_1core.html#a42a19c8442b173606e714364227e7d45',1,'mlx::core::operator<<(std::ostream &os, const complex64_t &v)'],['../namespacemlx_1_1core.html#a57eb97a5eba99a846ac429795e407574',1,'mlx::core::operator<<(std::ostream &os, const float16_t &v)'],['../namespacemlx_1_1core.html#a7db909d54cf07375e89424c32c07a29c',1,'mlx::core::operator<<(std::ostream &os, const bfloat16_t &v)']]], ['operator_3c_3d_28',['operator<=',['../backend_2metal_2kernels_2bf16_8h.html#af469c58cffeab488c681f4b33f02cd05',1,'operator<=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a5a81eae168dfafd299c2b94e3e8558cf',1,'operator<=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0f486bf02c6ad5b9b6a96d3450f03e47',1,'operator<=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#acba9efe192d22b7781b4622103c7a944',1,'operator<=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aff100489cc40ad276c2d5d67a9df67db',1,'operator<=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a7eac96f64ca42991caf819c8e8c8d2bc',1,'operator<=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a88c11cd37600de5480570da3d2ae5732',1,'operator<=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a08c7d12a0d16565fbf052dba2db8b22d',1,'operator<=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2b9de9624c0a507b4ead85f898ad9daf',1,'operator<=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a28f8d21c5eef047c701cf690ce9c2ef0',1,'operator<=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a14b56c687053ee2432398a25663c068f',1,'operator<=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0f360806708b95a3be400af0b8871b57',1,'operator<=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a80d288f22cadfdf5e904410349e616a1',1,'operator<=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#aee04c9a63c6716a99a027418354debb0',1,'operator<=(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga4c8b8a1632944acaae50f0de6c23ece6',1,'mlx::core::operator<=(const array &a, const array &b)'],['../group__ops.html#ga150a9be467c9f91482a6d6fc13504bc4',1,'mlx::core::operator<=(T a, const array &b)'],['../group__ops.html#ga624eeccef0cc4b130e1325abfea057cb',1,'mlx::core::operator<=(const array &a, T b)'],['../namespacemlx_1_1core.html#a0066a47cb21223ddebc77992ee874fb9',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2593dbace3ce50e7146d9514726a543f',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a88654bcf6c9728517a2933ca2e29a7c1',1,'mlx::core::operator<=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a5d4f449e9c1699b99fcf894dd15e8af3',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a6b678bea8fdcda1f11c6691b56a15211',1,'mlx::core::operator<=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae8aacc606ea16f018a90eae758830a35',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a25668dea4ffb51c7c00eeecb9530d1d8',1,'mlx::core::operator<=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a084558b6a5487549799c49c37c9e9652',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ade2e2a0daa79d5c52f278f85f03dde2e',1,'mlx::core::operator<=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a750a2d2b4976ad94b08994d081f83445',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ade5a175ff45347689ac4c798d04c8ffc',1,'mlx::core::operator<=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae25e0c01b46612f039313a4825ba6428',1,'mlx::core::operator<=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a5c90f16d8f6edf4b75c96b945b9fa591',1,'mlx::core::operator<=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a8cd6583fa0fc9957f993e00b2ec01d91',1,'mlx::core::operator<=(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#a012130a0458cbc30b88365e0e0eab232',1,'mlx::core::operator<=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae8c890bdcffadee8c5dab85c907f57eb',1,'mlx::core::operator<=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a43cb070553c1f2fffb32ef6670e30980',1,'mlx::core::operator<=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ac759b7798d668a99535e59e26d6ba192',1,'mlx::core::operator<=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a70e528a789b5660d98e783b045aaa379',1,'mlx::core::operator<=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a40bd8abb8a4d989ddabbb298518bd7f5',1,'mlx::core::operator<=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a4155d4b0c76f37ab5e0b54f9cd683f35',1,'mlx::core::operator<=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad8bb648d0603a206e0392990c911ca0b',1,'mlx::core::operator<=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ace72a5853f2afd6510dcb97d54fa650d',1,'mlx::core::operator<=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ab38f7a0d3c0809071ff5d3af859018d6',1,'mlx::core::operator<=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a7904b886d7b535a6af0a885d00597323',1,'mlx::core::operator<=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a57952168bd0b54c2677204d4ab1cb6e5',1,'mlx::core::operator<=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a6235dc5f4db517618bb3449b08c96e8b',1,'mlx::core::operator<=(uint64_t lhs, _MLX_Float16 rhs)']]], - ['operator_3d_29',['operator=',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4',1,'mlx::core::allocator::Allocator::operator=(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c',1,'mlx::core::allocator::Allocator::operator=(Allocator &&other)=delete'],['../classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36',1,'mlx::core::array::operator=(const array &other) &&=delete'],['../classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd',1,'mlx::core::array::operator=(array &&other) &&=delete'],['../classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479',1,'mlx::core::array::operator=(array &&other) &=default'],['../classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147',1,'mlx::core::array::operator=(const array &other) &'],['../structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748',1,'mlx::core::array::Data::operator=()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e',1,'mlx::core::metal::CommandEncoder::operator=()'],['../classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73',1,'mlx::core::metal::Device::operator=()'],['../classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b',1,'mlx::core::Primitive::operator=(const Primitive &other)=delete'],['../classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e',1,'mlx::core::Primitive::operator=(Primitive &&other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22',1,'mlx::core::UnaryPrimitive::operator=(const UnaryPrimitive &other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5',1,'mlx::core::UnaryPrimitive::operator=(UnaryPrimitive &&other)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ab170dbd2ce34c51e2eeebf5d08e7e2db',1,'mlx::core::scheduler::Scheduler::operator=(const Scheduler &)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a035ea35f4dd8ee985973080f14029379',1,'mlx::core::scheduler::Scheduler::operator=(Scheduler &&)=delete'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#a0f65b0523b8ddd989f338da6cb2860e3',1,'mlx::core::_MLX_BFloat16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#abb8cd44ee22b17c55333ff2eb4e13a14',1,'mlx::core::_MLX_BFloat16::operator=(const float &x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a608a099bf7116ee608dcfd31ea3ade2c',1,'mlx::core::_MLX_Float16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a35543c3653d477c46350697fb808373d',1,'mlx::core::_MLX_Float16::operator=(const float &x)']]], + ['operator_3d_29',['operator=',['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a027b84cddc8d476f736ac1f1a9991fe4',1,'mlx::core::allocator::Allocator::operator=(const Allocator &other)=delete'],['../classmlx_1_1core_1_1allocator_1_1_allocator.html#a2e971b47339b1d0849a334a902a9df3c',1,'mlx::core::allocator::Allocator::operator=(Allocator &&other)=delete'],['../classmlx_1_1core_1_1array.html#a8acf2b4c75f9b7f79da6675dbc36cf36',1,'mlx::core::array::operator=(const array &other) &&=delete'],['../classmlx_1_1core_1_1array.html#a5c89c2406a610b32943955f9a5060fbd',1,'mlx::core::array::operator=(array &&other) &&=delete'],['../classmlx_1_1core_1_1array.html#ad3277ff68f1336aa217f9cbe40181479',1,'mlx::core::array::operator=(array &&other) &=default'],['../classmlx_1_1core_1_1array.html#a5da41aabecf4c8055b7515341bf57147',1,'mlx::core::array::operator=(const array &other) &'],['../structmlx_1_1core_1_1array_1_1_data.html#a68e9417954fe811b5e41e6317a526748',1,'mlx::core::array::Data::operator=()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#a3f42a1362b4a513fa89e7b3dcc570a8e',1,'mlx::core::metal::CommandEncoder::operator=()'],['../classmlx_1_1core_1_1metal_1_1_device.html#ad1d6382fd18a46b1906e1b43e0bd2e73',1,'mlx::core::metal::Device::operator=()'],['../classmlx_1_1core_1_1metal_1_1_residency_set.html#aef97dbbc755940789f99a26164591c45',1,'mlx::core::metal::ResidencySet::operator=()'],['../classmlx_1_1core_1_1_primitive.html#a6b1be7ea92f3a7bb19875c70259dad6b',1,'mlx::core::Primitive::operator=(const Primitive &other)=delete'],['../classmlx_1_1core_1_1_primitive.html#a50bbddd43e1ba0cf5f127cd7aa756a9e',1,'mlx::core::Primitive::operator=(Primitive &&other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#a0a859309a4f192f2679e07f2e4ff4d22',1,'mlx::core::UnaryPrimitive::operator=(const UnaryPrimitive &other)=delete'],['../classmlx_1_1core_1_1_unary_primitive.html#ab90b2ea80f1d914be03cf44def5db5a5',1,'mlx::core::UnaryPrimitive::operator=(UnaryPrimitive &&other)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#ab170dbd2ce34c51e2eeebf5d08e7e2db',1,'mlx::core::scheduler::Scheduler::operator=(const Scheduler &)=delete'],['../classmlx_1_1core_1_1scheduler_1_1_scheduler.html#a035ea35f4dd8ee985973080f14029379',1,'mlx::core::scheduler::Scheduler::operator=(Scheduler &&)=delete'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#a0f65b0523b8ddd989f338da6cb2860e3',1,'mlx::core::_MLX_BFloat16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___b_float16.html#abb8cd44ee22b17c55333ff2eb4e13a14',1,'mlx::core::_MLX_BFloat16::operator=(const float &x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a608a099bf7116ee608dcfd31ea3ade2c',1,'mlx::core::_MLX_Float16::operator=(std::vector< bool >::reference x)'],['../structmlx_1_1core_1_1___m_l_x___float16.html#a35543c3653d477c46350697fb808373d',1,'mlx::core::_MLX_Float16::operator=(const float &x)']]], ['operator_3d_3d_30',['operator==',['../backend_2metal_2kernels_2bf16_8h.html#a49a13b06a325ed3cca4004b6a0cde065',1,'operator==(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a0aa3bfcfab53700488e5f386e6de60d5',1,'operator==(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3936148781ab1c4f33f58d12c116f370',1,'operator==(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae753526b669fba27771089dc809abd66',1,'operator==(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a05a4f197a71d0f16879032f44492bb79',1,'operator==(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae86f5917847b1ec9f313996250f2e0be',1,'operator==(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aab74ec4d33a64b92b908717d500f1ecf',1,'operator==(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac30a2c1fa6f172af903fdeb6a8632606',1,'operator==(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab4e9ad547aa23daa351075e0ecc58fa2',1,'operator==(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa5fa1a8f2b39c3508fe38205469756d1',1,'operator==(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aeadc1f36c6bdc219294ce9341d80afa5',1,'operator==(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a3ae2091ada1e39e857fbc53c97bdb79f',1,'operator==(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac7b4d295f3c7b1e09964f24f306422da',1,'operator==(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#abfc19f03616441245dfc7726b278f190',1,'operator==(complex64_t a, complex64_t b): complex.h'],['../namespacemlx_1_1core.html#a937503d72b66c661bf3f5fdcd98ef97c',1,'mlx::core::operator==(const Device &lhs, const Device &rhs)'],['../group__ops.html#gaa30cf69f3d22f65615f5e1696dd5703f',1,'mlx::core::operator==(const array &a, const array &b)'],['../group__ops.html#gaf115782d009ac2a547fcca395c9ec797',1,'mlx::core::operator==(T a, const array &b)'],['../group__ops.html#ga3ad3ed7aece2650943a35082dbe3a0a5',1,'mlx::core::operator==(const array &a, T b)'],['../namespacemlx_1_1core.html#ac470f937a379d6356c8f567c97cd7481',1,'mlx::core::operator==(const Stream &lhs, const Stream &rhs)'],['../namespacemlx_1_1core.html#aec63a0472cb943fe39f31e7678555572',1,'mlx::core::operator==(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad05311ca8e2f19ffe5849e963837cec7',1,'mlx::core::operator==(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#aaaf591cb2188381e6cbd857132d04eb7',1,'mlx::core::operator==(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a7ef33c33509ccccf1ab217500e8b3c1a',1,'mlx::core::operator==(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#abec4200a718b7c5ed80b7abcc4447260',1,'mlx::core::operator==(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ad853981b1c5ba69b07d54c7b77055d22',1,'mlx::core::operator==(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a752d6cb4172a9cb91e5da19582329c6d',1,'mlx::core::operator==(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0175beb3de139faa08479a88215b35ea',1,'mlx::core::operator==(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a61da2851cb3beeef28049228346c28b5',1,'mlx::core::operator==(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#aa24713cb9e39bacb516c992eb03d2b2b',1,'mlx::core::operator==(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a6d565dd93c46259f9486d9fdf0969589',1,'mlx::core::operator==(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a24e79a82557861de64dad66d36e6ff30',1,'mlx::core::operator==(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#af27d515ac390d62bd852b73ea759a947',1,'mlx::core::operator==(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ae3e1e8b7a5410e0edf35f31f74295e2f',1,'mlx::core::operator==(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#aaa22230a66b15c3e774d8ce45783a746',1,'mlx::core::operator==(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ae2a0bcdc171d7e9745d33e1d9aac4f8a',1,'mlx::core::operator==(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a331ec62442a8d3eb8ccba7b4de5168d1',1,'mlx::core::operator==(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#acfcaefe0990eb3533e2b11a6f2657492',1,'mlx::core::operator==(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a8d48dbd49cccff07777affb2a412058c',1,'mlx::core::operator==(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a88eae27edd22fa4418776672023cb276',1,'mlx::core::operator==(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a188b363f633ea360407b3f9cf4e1f1a6',1,'mlx::core::operator==(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ae065fe5c42c1a333d7858d19f6434fa9',1,'mlx::core::operator==(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a2f98db199deb6d7a82551fa4afec655a',1,'mlx::core::operator==(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a85f83add412cb320b5cd1c3da6aadbd5',1,'mlx::core::operator==(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a7e2cee66c3ca1b56f4f3d7fd1d6e0be1',1,'mlx::core::operator==(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#ad436557da5c7fea71fc58182a876cfe5',1,'mlx::core::operator==(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_3e_31',['operator>',['../backend_2metal_2kernels_2bf16_8h.html#ae394c0a10e47d1d047854a888402eb57',1,'operator>(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ab9cd098786d2f4c855c42e4a6f30ab3e',1,'operator>(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a55600f3b9859e2891e0e0b5690867b72',1,'operator>(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#afd7cdb8ed2a9820efe9cf322c06f188c',1,'operator>(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a31bbdbe0b62b90a4d6ea4bb0a7db586b',1,'operator>(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a68125e66f74eaffe5ea9267638ce870d',1,'operator>(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac89eb6b29edad8cca63727ab97171c29',1,'operator>(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a74e477567c9477c2cf0684f81ef4498f',1,'operator>(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2d37130b6fd79b425f5ba92b65e36bed',1,'operator>(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a41d55d167e9dc63bf29d15e0ff004869',1,'operator>(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aa95f9ebfdab3c5f524775651362ce914',1,'operator>(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2826bd301bb5393473ccd363f2052c0d',1,'operator>(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a62a512d0edd894759c69f724b970fbdb',1,'operator>(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#a032a8d3eec2384c9f03066f7fd945995',1,'operator>(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga74fd2777adef10e6fe628a9cdadb01cb',1,'mlx::core::operator>(const array &a, const array &b)'],['../group__ops.html#ga32e106e794e2c32e4e7decee2df2477f',1,'mlx::core::operator>(T a, const array &b)'],['../group__ops.html#ga96552b90e89923c5d2064cc427775ec5',1,'mlx::core::operator>(const array &a, T b)'],['../namespacemlx_1_1core.html#aedc4e9df4bf71c0ac34fcfae60cdf550',1,'mlx::core::operator>(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a14c188303d09b97867bcfd34519aa4a6',1,'mlx::core::operator>(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#ac97736fadafa7efa201624d0e1128ee8',1,'mlx::core::operator>(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a3c41a304126bc225bdc68062d1eb6e7e',1,'mlx::core::operator>(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#ab594f3ae1ee13227fae940fef0d00cb9',1,'mlx::core::operator>(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a01dabc077a872c115a9a9ccd95f1acec',1,'mlx::core::operator>(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#adabbd8768d216873617768249473a5c7',1,'mlx::core::operator>(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#adae1b14669d27ce1fe0c214771c07b77',1,'mlx::core::operator>(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#ab03a22961d99fa12d3e74b3116e94e8f',1,'mlx::core::operator>(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a42011a27a3d23a60be5be44ee7cac87c',1,'mlx::core::operator>(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a50f6a94bb36d89cf28817aff88ab89c8',1,'mlx::core::operator>(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ac173de50ee57b1b066d49363ba978c53',1,'mlx::core::operator>(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#ab09f1b4879aa3190c2f66c9bd1224021',1,'mlx::core::operator>(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a91eb6ca854217424129a55ae95a123b5',1,'mlx::core::operator>(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#a58d5795d8312599d101ae16f194e4a2a',1,'mlx::core::operator>(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#aafa3bbeda78610c4285f3e57042268f3',1,'mlx::core::operator>(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a8a928d76a6fbf3d336296401e14617a4',1,'mlx::core::operator>(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ade2f9222fd433cd4d673c6182f256235',1,'mlx::core::operator>(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#ae24c337810c841ff23e327efde7045e1',1,'mlx::core::operator>(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#acf401ede354fcc998b13ea6442994d7e',1,'mlx::core::operator>(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#a2bb28a9a0894a73ae1b27e7f4da0841a',1,'mlx::core::operator>(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a09d631e8a85fd7ae72e1a868b8f9b9cb',1,'mlx::core::operator>(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a49421ea65b5a98df080d75b1636b2157',1,'mlx::core::operator>(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a692ce931b660415e17f92d18a8e0d446',1,'mlx::core::operator>(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a579bb87b3ede5663d7cd68c7c0f6fb9e',1,'mlx::core::operator>(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#af810587a17e692f4eec256d3c3cd27de',1,'mlx::core::operator>(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a50f4177d3ca03a95fc2614e100c7391d',1,'mlx::core::operator>(uint64_t lhs, _MLX_Float16 rhs)']]], ['operator_3e_3d_32',['operator>=',['../backend_2metal_2kernels_2bf16_8h.html#a430dd11fbf4c6f39bc1506ab43b2341f',1,'operator>=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a64f6787a96386246f83a8981d274150e',1,'operator>=(_MLX_BFloat16 lhs, float rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1a788f82212afad30e4c2ee40f1c313c',1,'operator>=(float lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ae88617c4a012c5dc12781a349a28c886',1,'operator>=(_MLX_BFloat16 lhs, half rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a467a88531150a4d9d30fce07c49c126e',1,'operator>=(half lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a9e21c5ea9dd724dc2ca8c54ad908f09c',1,'operator>=(_MLX_BFloat16 lhs, int32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2f6286d222e2176bcbdc824c5d598100',1,'operator>=(int32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#abec53064aa96265385ecc57de5fbc74c',1,'operator>=(_MLX_BFloat16 lhs, uint32_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#ac766839f8f9e4863e8e18418c342c875',1,'operator>=(uint32_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a2807fa6862b0f9689c81199b1e695ed8',1,'operator>=(_MLX_BFloat16 lhs, int64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#aee3ae0d0d1f941463b06eca0bf041b2b',1,'operator>=(int64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a523eda93c809733368e2b45382d2add6',1,'operator>=(_MLX_BFloat16 lhs, uint64_t rhs): bf16.h'],['../backend_2metal_2kernels_2bf16_8h.html#a1f4e90909ac1c7280f4c7d1977c55fb7',1,'operator>=(uint64_t lhs, _MLX_BFloat16 rhs): bf16.h'],['../backend_2metal_2kernels_2complex_8h.html#aafbd686c180398c98b33d7643f893a46',1,'operator>=(complex64_t a, complex64_t b): complex.h'],['../group__ops.html#ga3a41895f25ed083a36994d95fa102546',1,'mlx::core::operator>=(const array &a, const array &b)'],['../group__ops.html#gaf509f2cb3b18963232f20d6c3bd229b2',1,'mlx::core::operator>=(T a, const array &b)'],['../group__ops.html#gafa0eb25d5978674bfc9e59d4145ec590',1,'mlx::core::operator>=(const array &a, T b)'],['../namespacemlx_1_1core.html#a8494764f5c686743ede66dc76d85d955',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a019df48807b506d9995856684bf7797a',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, float rhs)'],['../namespacemlx_1_1core.html#a96ab6405430efb887cdb5c828cb67d6e',1,'mlx::core::operator>=(float lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ac18be72269b1bcfb0249cc00a0600681',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, double rhs)'],['../namespacemlx_1_1core.html#aeb879815228efbd2c8f80986e1c8d41f',1,'mlx::core::operator>=(double lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a0051156f6a568f58cd54850f746fb507',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ae93556906e115625ed1b62d36cf21b70',1,'mlx::core::operator>=(int32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#ab81ad16e3be591dfc9e42ac3c19b055f',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a6cfe9b03e7c5f1eb9374208a552c3cc9',1,'mlx::core::operator>=(uint32_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a2f5add83812fb137dd9226c6c01e45d5',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#ad1014a836e7ce9301de8588eef1e89ee',1,'mlx::core::operator>=(int64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a17791561434dc995de9f268d145c0ed1',1,'mlx::core::operator>=(_MLX_BFloat16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a3755925b24a903045937464be117de2f',1,'mlx::core::operator>=(uint64_t lhs, _MLX_BFloat16 rhs)'],['../namespacemlx_1_1core.html#a6262aeb513d27fc8313293b261e72abb',1,'mlx::core::operator>=(const complex64_t &a, const complex64_t &b)'],['../namespacemlx_1_1core.html#a6feb4b3ea511b0eda4d1ec9725f3fb4c',1,'mlx::core::operator>=(_MLX_Float16 lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a03b3f7fcb755ec075985ab26336926f0',1,'mlx::core::operator>=(_MLX_Float16 lhs, float rhs)'],['../namespacemlx_1_1core.html#aecfbf5ef4872ae447eb4a374e4db28e4',1,'mlx::core::operator>=(float lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ae4690f349b2483f5d1a4b75aba67399f',1,'mlx::core::operator>=(_MLX_Float16 lhs, double rhs)'],['../namespacemlx_1_1core.html#a667e95146dd5199e67bcb121b984b1f0',1,'mlx::core::operator>=(double lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a3375f1562f148bdc07451f2b6e54e6df',1,'mlx::core::operator>=(_MLX_Float16 lhs, int32_t rhs)'],['../namespacemlx_1_1core.html#ae83df12368cb07ccb1c10c1117ff3922',1,'mlx::core::operator>=(int32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#ad41251938cf852b5560c1180944ebb49',1,'mlx::core::operator>=(_MLX_Float16 lhs, uint32_t rhs)'],['../namespacemlx_1_1core.html#a4ddb5ef0b88929086f9b09729fda0dde',1,'mlx::core::operator>=(uint32_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a0908a61ab261aff726922b33fa6ed159',1,'mlx::core::operator>=(_MLX_Float16 lhs, int64_t rhs)'],['../namespacemlx_1_1core.html#a0fdadf87edd8a0a57c63953fb0ebe053',1,'mlx::core::operator>=(int64_t lhs, _MLX_Float16 rhs)'],['../namespacemlx_1_1core.html#a47c82778e43032c0bbf5d59407e81dc9',1,'mlx::core::operator>=(_MLX_Float16 lhs, uint64_t rhs)'],['../namespacemlx_1_1core.html#a14e6c43b924eacca1b2dac1d5d00ca2b',1,'mlx::core::operator>=(uint64_t lhs, _MLX_Float16 rhs)']]], @@ -42,7 +42,7 @@ var searchData= ['operator_7c_7c_39',['operator||',['../group__ops.html#ga27af56a98270d4d76d139f0f9171b83a',1,'mlx::core']]], ['out_5fof_5fbounds_40',['out_of_bounds',['../struct_read_writer.html#a08e10626fbc789b6dff9172fd6c36f7c',1,'ReadWriter::out_of_bounds() const'],['../struct_read_writer.html#a6f946aea5452109dca7fc70ed39c6efe',1,'ReadWriter::out_of_bounds() const'],['../struct_read_writer.html#a8f40d7f343d32134fe27a694abfde6bf',1,'ReadWriter::out_of_bounds() const']]], ['outer_41',['outer',['../group__ops.html#ga866af24e10db2797e1c5a5986dbf6c0d',1,'mlx::core']]], - ['output_5fshapes_42',['output_shapes',['../classmlx_1_1core_1_1_primitive.html#a8849dc20991398f6f9a24d6785673853',1,'mlx::core::Primitive::output_shapes()'],['../classmlx_1_1core_1_1_abs.html#ab6a2b147f58c83439ecefb9189c2da32',1,'mlx::core::Abs::output_shapes()'],['../classmlx_1_1core_1_1_add.html#a9884fece6ca4061a65241c985fcf1594',1,'mlx::core::Add::output_shapes()'],['../classmlx_1_1core_1_1_arc_cos.html#a8ecd5b9a8cc9cba841768a5b2b497974',1,'mlx::core::ArcCos::output_shapes()'],['../classmlx_1_1core_1_1_arc_cosh.html#ae5d6660121f7f5a55824b95e7fd3dc6b',1,'mlx::core::ArcCosh::output_shapes()'],['../classmlx_1_1core_1_1_arc_sin.html#a1c6e478804eb5d171e4859b872db29f5',1,'mlx::core::ArcSin::output_shapes()'],['../classmlx_1_1core_1_1_arc_sinh.html#a6e0319a3cee5f6b9d43a3ac256b2c2ed',1,'mlx::core::ArcSinh::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan.html#aa5d1e60d50ffa77b1d0e14af8d7e127a',1,'mlx::core::ArcTan::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan2.html#a3f4ad806a0c59c2d1ae1c55c9889bf03',1,'mlx::core::ArcTan2::output_shapes()'],['../classmlx_1_1core_1_1_arc_tanh.html#a30246c56e1d75638c3696f84323861d8',1,'mlx::core::ArcTanh::output_shapes()'],['../classmlx_1_1core_1_1_arg_partition.html#a28608aee76a2db25f6455da561526c64',1,'mlx::core::ArgPartition::output_shapes()'],['../classmlx_1_1core_1_1_arg_reduce.html#a40a047cb3ed8d1445d42100b3fd85179',1,'mlx::core::ArgReduce::output_shapes()'],['../classmlx_1_1core_1_1_arg_sort.html#ac50e0b76c457aae944425b3a57c33859',1,'mlx::core::ArgSort::output_shapes()'],['../classmlx_1_1core_1_1_as_type.html#a18922e68006b5cf005355f5c9ac57ac4',1,'mlx::core::AsType::output_shapes()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a7d2dfa8884832fc1a94ce6400d0ed599',1,'mlx::core::BitwiseBinary::output_shapes()'],['../classmlx_1_1core_1_1_ceil.html#a1eb263c04df810e212855a17af0658ea',1,'mlx::core::Ceil::output_shapes()'],['../classmlx_1_1core_1_1_compiled.html#a453a10c68b7825def5b53207bc04a71c',1,'mlx::core::Compiled::output_shapes()'],['../classmlx_1_1core_1_1_conjugate.html#ada40413e9f210251476a37cc0d0ea37f',1,'mlx::core::Conjugate::output_shapes()'],['../classmlx_1_1core_1_1_copy.html#ac3d13ebc6464403962fa1a9897fe6df3',1,'mlx::core::Copy::output_shapes()'],['../classmlx_1_1core_1_1_cos.html#a05b2d43942aa1d93a40c20ae8b90a25b',1,'mlx::core::Cos::output_shapes()'],['../classmlx_1_1core_1_1_cosh.html#a1bef7feac9a387ea80e7fc774f579962',1,'mlx::core::Cosh::output_shapes()'],['../classmlx_1_1core_1_1_divide.html#ad514bed77ad94742e26c93e446940994',1,'mlx::core::Divide::output_shapes()'],['../classmlx_1_1core_1_1_div_mod.html#a61d835d777c8063089dc708898ff314b',1,'mlx::core::DivMod::output_shapes()'],['../classmlx_1_1core_1_1_select.html#a295cd22e2284f2216bc93fdcf0b54867',1,'mlx::core::Select::output_shapes()'],['../classmlx_1_1core_1_1_remainder.html#a74bf3a9723b59200573ff8bac9a0b666',1,'mlx::core::Remainder::output_shapes()'],['../classmlx_1_1core_1_1_equal.html#a2f91e9603f63ad539837356b1ff3e7a9',1,'mlx::core::Equal::output_shapes()'],['../classmlx_1_1core_1_1_erf.html#afa4abbd7786b474c44c336a95481d187',1,'mlx::core::Erf::output_shapes()'],['../classmlx_1_1core_1_1_erf_inv.html#a22a95594e68b43b50c05355c82779639',1,'mlx::core::ErfInv::output_shapes()'],['../classmlx_1_1core_1_1_exp.html#aee7ba8d5be4a11f4b8f359b0338ab670',1,'mlx::core::Exp::output_shapes()'],['../classmlx_1_1core_1_1_expm1.html#ab9dbf34806eb43b928722ed9e8feed08',1,'mlx::core::Expm1::output_shapes()'],['../classmlx_1_1core_1_1_floor.html#aaf86becc7bfba6ee2af0d1f6d8e25015',1,'mlx::core::Floor::output_shapes()'],['../classmlx_1_1core_1_1_greater.html#ab2167a38c3baff99f527f17eb4c71d46',1,'mlx::core::Greater::output_shapes()'],['../classmlx_1_1core_1_1_greater_equal.html#a636a9cc00b0333e49978f39814af640f',1,'mlx::core::GreaterEqual::output_shapes()'],['../classmlx_1_1core_1_1_hadamard.html#a458614bc7820ae56493eb56d813b2cde',1,'mlx::core::Hadamard::output_shapes()'],['../classmlx_1_1core_1_1_imag.html#ab396ef74748abd3d4121ffee33a08d48',1,'mlx::core::Imag::output_shapes()'],['../classmlx_1_1core_1_1_less.html#a5e8b56574ccb91c065548f4bda40e278',1,'mlx::core::Less::output_shapes()'],['../classmlx_1_1core_1_1_less_equal.html#a2e259f3de11f97f3bd38a2e65667d78f',1,'mlx::core::LessEqual::output_shapes()'],['../classmlx_1_1core_1_1_log.html#a113dcc95e2a1a052238b1f5c8935a63d',1,'mlx::core::Log::output_shapes()'],['../classmlx_1_1core_1_1_log1p.html#aebf8f5b6670f55fa24283a934f4b25df',1,'mlx::core::Log1p::output_shapes()'],['../classmlx_1_1core_1_1_logical_not.html#a4a40511a052a6627085be378bbebe69c',1,'mlx::core::LogicalNot::output_shapes()'],['../classmlx_1_1core_1_1_logical_and.html#a191d69d92c01ed5ad82d4688f1de2617',1,'mlx::core::LogicalAnd::output_shapes()'],['../classmlx_1_1core_1_1_logical_or.html#a26259843be2de75d5e07cb7ea94fcfe4',1,'mlx::core::LogicalOr::output_shapes()'],['../classmlx_1_1core_1_1_log_add_exp.html#ac35cf432ecdd141d957b55fc4bff6635',1,'mlx::core::LogAddExp::output_shapes()'],['../classmlx_1_1core_1_1_maximum.html#a7bb80360ba4b74d0b0f3f74a5ff90d1b',1,'mlx::core::Maximum::output_shapes()'],['../classmlx_1_1core_1_1_minimum.html#ab4a85741dffaa64d8ead028f11539d70',1,'mlx::core::Minimum::output_shapes()'],['../classmlx_1_1core_1_1_multiply.html#a072de3911113247c95c28d3b52400061',1,'mlx::core::Multiply::output_shapes()'],['../classmlx_1_1core_1_1_negative.html#a253c08c7461bf2dce05f555c8dbf0014',1,'mlx::core::Negative::output_shapes()'],['../classmlx_1_1core_1_1_not_equal.html#a5b10e99bc564197e7b16dccb0577d89a',1,'mlx::core::NotEqual::output_shapes()'],['../classmlx_1_1core_1_1_number_of_elements.html#aae36bb1e125c0a2d7cd54e78be0f2af8',1,'mlx::core::NumberOfElements::output_shapes()'],['../classmlx_1_1core_1_1_partition.html#ae5b792df683bc14dde89f75ac6bcbeaf',1,'mlx::core::Partition::output_shapes()'],['../classmlx_1_1core_1_1_power.html#a1c17867ea1bad8899adb38185c9423c1',1,'mlx::core::Power::output_shapes()'],['../classmlx_1_1core_1_1_real.html#a75d7b85e68a7a03ec911c7acc09ddde5',1,'mlx::core::Real::output_shapes()'],['../classmlx_1_1core_1_1_reduce.html#a0f73c2a55dc324145e11020c9b4d9a65',1,'mlx::core::Reduce::output_shapes()'],['../classmlx_1_1core_1_1_round.html#ad9a26817864dfc94b56e66bc6d80b047',1,'mlx::core::Round::output_shapes()'],['../classmlx_1_1core_1_1_sigmoid.html#a34572023c8748971289c2cb109ff9a43',1,'mlx::core::Sigmoid::output_shapes()'],['../classmlx_1_1core_1_1_sign.html#a719709b3c5d6b15a75614bdadd185f67',1,'mlx::core::Sign::output_shapes()'],['../classmlx_1_1core_1_1_sin.html#a46f059f04fd540f175f6031d28dc9f3a',1,'mlx::core::Sin::output_shapes()'],['../classmlx_1_1core_1_1_sinh.html#a4f10e7e6daf500575d97e077901e7d28',1,'mlx::core::Sinh::output_shapes()'],['../classmlx_1_1core_1_1_softmax.html#afea757ba328b9d8f35058793eae73e35',1,'mlx::core::Softmax::output_shapes()'],['../classmlx_1_1core_1_1_sort.html#a271545b66607b22e5f06a0fefe69f22d',1,'mlx::core::Sort::output_shapes()'],['../classmlx_1_1core_1_1_square.html#ac4c4927639cab1c5b91a074e7f68da02',1,'mlx::core::Square::output_shapes()'],['../classmlx_1_1core_1_1_sqrt.html#ae3d4f99729a7e72be7decf5a56d095d5',1,'mlx::core::Sqrt::output_shapes()'],['../classmlx_1_1core_1_1_stop_gradient.html#a12e7f55e087aea58b2a56f239c69bb4e',1,'mlx::core::StopGradient::output_shapes()'],['../classmlx_1_1core_1_1_subtract.html#a0fbf4bc9a0c76edc37ebb4083d98f3fc',1,'mlx::core::Subtract::output_shapes()'],['../classmlx_1_1core_1_1_tan.html#a7be9fd77491a48b07b6e126ab68bdf37',1,'mlx::core::Tan::output_shapes()'],['../classmlx_1_1core_1_1_tanh.html#a0392f51a9e51915d4691615757ba4325',1,'mlx::core::Tanh::output_shapes()']]], - ['outputs_43',['outputs',['../classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289',1,'mlx::core::array']]], + ['output_5fshapes_42',['output_shapes',['../classmlx_1_1core_1_1_primitive.html#a8849dc20991398f6f9a24d6785673853',1,'mlx::core::Primitive::output_shapes()'],['../classmlx_1_1core_1_1_abs.html#ab6a2b147f58c83439ecefb9189c2da32',1,'mlx::core::Abs::output_shapes()'],['../classmlx_1_1core_1_1_add.html#a9884fece6ca4061a65241c985fcf1594',1,'mlx::core::Add::output_shapes()'],['../classmlx_1_1core_1_1_arc_cos.html#a8ecd5b9a8cc9cba841768a5b2b497974',1,'mlx::core::ArcCos::output_shapes()'],['../classmlx_1_1core_1_1_arc_cosh.html#ae5d6660121f7f5a55824b95e7fd3dc6b',1,'mlx::core::ArcCosh::output_shapes()'],['../classmlx_1_1core_1_1_arc_sin.html#a1c6e478804eb5d171e4859b872db29f5',1,'mlx::core::ArcSin::output_shapes()'],['../classmlx_1_1core_1_1_arc_sinh.html#a6e0319a3cee5f6b9d43a3ac256b2c2ed',1,'mlx::core::ArcSinh::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan.html#aa5d1e60d50ffa77b1d0e14af8d7e127a',1,'mlx::core::ArcTan::output_shapes()'],['../classmlx_1_1core_1_1_arc_tan2.html#a3f4ad806a0c59c2d1ae1c55c9889bf03',1,'mlx::core::ArcTan2::output_shapes()'],['../classmlx_1_1core_1_1_arc_tanh.html#a30246c56e1d75638c3696f84323861d8',1,'mlx::core::ArcTanh::output_shapes()'],['../classmlx_1_1core_1_1_arg_partition.html#a28608aee76a2db25f6455da561526c64',1,'mlx::core::ArgPartition::output_shapes()'],['../classmlx_1_1core_1_1_arg_reduce.html#a40a047cb3ed8d1445d42100b3fd85179',1,'mlx::core::ArgReduce::output_shapes()'],['../classmlx_1_1core_1_1_arg_sort.html#ac50e0b76c457aae944425b3a57c33859',1,'mlx::core::ArgSort::output_shapes()'],['../classmlx_1_1core_1_1_as_type.html#a18922e68006b5cf005355f5c9ac57ac4',1,'mlx::core::AsType::output_shapes()'],['../classmlx_1_1core_1_1_bitwise_binary.html#a7d2dfa8884832fc1a94ce6400d0ed599',1,'mlx::core::BitwiseBinary::output_shapes()'],['../classmlx_1_1core_1_1_ceil.html#a1eb263c04df810e212855a17af0658ea',1,'mlx::core::Ceil::output_shapes()'],['../classmlx_1_1core_1_1_compiled.html#a453a10c68b7825def5b53207bc04a71c',1,'mlx::core::Compiled::output_shapes()'],['../classmlx_1_1core_1_1_conjugate.html#ada40413e9f210251476a37cc0d0ea37f',1,'mlx::core::Conjugate::output_shapes()'],['../classmlx_1_1core_1_1_copy.html#ac3d13ebc6464403962fa1a9897fe6df3',1,'mlx::core::Copy::output_shapes()'],['../classmlx_1_1core_1_1_cos.html#a05b2d43942aa1d93a40c20ae8b90a25b',1,'mlx::core::Cos::output_shapes()'],['../classmlx_1_1core_1_1_cosh.html#a1bef7feac9a387ea80e7fc774f579962',1,'mlx::core::Cosh::output_shapes()'],['../classmlx_1_1core_1_1_divide.html#ad514bed77ad94742e26c93e446940994',1,'mlx::core::Divide::output_shapes()'],['../classmlx_1_1core_1_1_div_mod.html#a61d835d777c8063089dc708898ff314b',1,'mlx::core::DivMod::output_shapes()'],['../classmlx_1_1core_1_1_select.html#a295cd22e2284f2216bc93fdcf0b54867',1,'mlx::core::Select::output_shapes()'],['../classmlx_1_1core_1_1_remainder.html#a74bf3a9723b59200573ff8bac9a0b666',1,'mlx::core::Remainder::output_shapes()'],['../classmlx_1_1core_1_1_equal.html#a2f91e9603f63ad539837356b1ff3e7a9',1,'mlx::core::Equal::output_shapes()'],['../classmlx_1_1core_1_1_erf.html#afa4abbd7786b474c44c336a95481d187',1,'mlx::core::Erf::output_shapes()'],['../classmlx_1_1core_1_1_erf_inv.html#a22a95594e68b43b50c05355c82779639',1,'mlx::core::ErfInv::output_shapes()'],['../classmlx_1_1core_1_1_exp.html#aee7ba8d5be4a11f4b8f359b0338ab670',1,'mlx::core::Exp::output_shapes()'],['../classmlx_1_1core_1_1_expm1.html#ab9dbf34806eb43b928722ed9e8feed08',1,'mlx::core::Expm1::output_shapes()'],['../classmlx_1_1core_1_1_floor.html#aaf86becc7bfba6ee2af0d1f6d8e25015',1,'mlx::core::Floor::output_shapes()'],['../classmlx_1_1core_1_1_greater.html#ab2167a38c3baff99f527f17eb4c71d46',1,'mlx::core::Greater::output_shapes()'],['../classmlx_1_1core_1_1_greater_equal.html#a636a9cc00b0333e49978f39814af640f',1,'mlx::core::GreaterEqual::output_shapes()'],['../classmlx_1_1core_1_1_hadamard.html#a458614bc7820ae56493eb56d813b2cde',1,'mlx::core::Hadamard::output_shapes()'],['../classmlx_1_1core_1_1_imag.html#ab396ef74748abd3d4121ffee33a08d48',1,'mlx::core::Imag::output_shapes()'],['../classmlx_1_1core_1_1_less.html#a5e8b56574ccb91c065548f4bda40e278',1,'mlx::core::Less::output_shapes()'],['../classmlx_1_1core_1_1_less_equal.html#a2e259f3de11f97f3bd38a2e65667d78f',1,'mlx::core::LessEqual::output_shapes()'],['../classmlx_1_1core_1_1_log.html#a113dcc95e2a1a052238b1f5c8935a63d',1,'mlx::core::Log::output_shapes()'],['../classmlx_1_1core_1_1_log1p.html#aebf8f5b6670f55fa24283a934f4b25df',1,'mlx::core::Log1p::output_shapes()'],['../classmlx_1_1core_1_1_logical_not.html#a4a40511a052a6627085be378bbebe69c',1,'mlx::core::LogicalNot::output_shapes()'],['../classmlx_1_1core_1_1_logical_and.html#a191d69d92c01ed5ad82d4688f1de2617',1,'mlx::core::LogicalAnd::output_shapes()'],['../classmlx_1_1core_1_1_logical_or.html#a26259843be2de75d5e07cb7ea94fcfe4',1,'mlx::core::LogicalOr::output_shapes()'],['../classmlx_1_1core_1_1_log_add_exp.html#ac35cf432ecdd141d957b55fc4bff6635',1,'mlx::core::LogAddExp::output_shapes()'],['../classmlx_1_1core_1_1_maximum.html#a7bb80360ba4b74d0b0f3f74a5ff90d1b',1,'mlx::core::Maximum::output_shapes()'],['../classmlx_1_1core_1_1_minimum.html#ab4a85741dffaa64d8ead028f11539d70',1,'mlx::core::Minimum::output_shapes()'],['../classmlx_1_1core_1_1_multiply.html#a072de3911113247c95c28d3b52400061',1,'mlx::core::Multiply::output_shapes()'],['../classmlx_1_1core_1_1_negative.html#a253c08c7461bf2dce05f555c8dbf0014',1,'mlx::core::Negative::output_shapes()'],['../classmlx_1_1core_1_1_not_equal.html#a5b10e99bc564197e7b16dccb0577d89a',1,'mlx::core::NotEqual::output_shapes()'],['../classmlx_1_1core_1_1_number_of_elements.html#aae36bb1e125c0a2d7cd54e78be0f2af8',1,'mlx::core::NumberOfElements::output_shapes()'],['../classmlx_1_1core_1_1_partition.html#ae5b792df683bc14dde89f75ac6bcbeaf',1,'mlx::core::Partition::output_shapes()'],['../classmlx_1_1core_1_1_power.html#a1c17867ea1bad8899adb38185c9423c1',1,'mlx::core::Power::output_shapes()'],['../classmlx_1_1core_1_1_real.html#a75d7b85e68a7a03ec911c7acc09ddde5',1,'mlx::core::Real::output_shapes()'],['../classmlx_1_1core_1_1_reduce.html#a0f73c2a55dc324145e11020c9b4d9a65',1,'mlx::core::Reduce::output_shapes()'],['../classmlx_1_1core_1_1_round.html#ad9a26817864dfc94b56e66bc6d80b047',1,'mlx::core::Round::output_shapes()'],['../classmlx_1_1core_1_1_sigmoid.html#a34572023c8748971289c2cb109ff9a43',1,'mlx::core::Sigmoid::output_shapes()'],['../classmlx_1_1core_1_1_sign.html#a719709b3c5d6b15a75614bdadd185f67',1,'mlx::core::Sign::output_shapes()'],['../classmlx_1_1core_1_1_sin.html#a46f059f04fd540f175f6031d28dc9f3a',1,'mlx::core::Sin::output_shapes()'],['../classmlx_1_1core_1_1_sinh.html#a4f10e7e6daf500575d97e077901e7d28',1,'mlx::core::Sinh::output_shapes()'],['../classmlx_1_1core_1_1_softmax.html#afea757ba328b9d8f35058793eae73e35',1,'mlx::core::Softmax::output_shapes()'],['../classmlx_1_1core_1_1_sort.html#a271545b66607b22e5f06a0fefe69f22d',1,'mlx::core::Sort::output_shapes()'],['../classmlx_1_1core_1_1_square.html#ac4c4927639cab1c5b91a074e7f68da02',1,'mlx::core::Square::output_shapes()'],['../classmlx_1_1core_1_1_sqrt.html#ae3d4f99729a7e72be7decf5a56d095d5',1,'mlx::core::Sqrt::output_shapes()'],['../classmlx_1_1core_1_1_stop_gradient.html#a12e7f55e087aea58b2a56f239c69bb4e',1,'mlx::core::StopGradient::output_shapes()'],['../classmlx_1_1core_1_1_subtract.html#a0fbf4bc9a0c76edc37ebb4083d98f3fc',1,'mlx::core::Subtract::output_shapes()'],['../classmlx_1_1core_1_1_tan.html#a7be9fd77491a48b07b6e126ab68bdf37',1,'mlx::core::Tan::output_shapes()'],['../classmlx_1_1core_1_1_tanh.html#a0392f51a9e51915d4691615757ba4325',1,'mlx::core::Tanh::output_shapes()'],['../classmlx_1_1core_1_1_eigh.html#a68c890a4172711fbab8baef8da40a9c5',1,'mlx::core::Eigh::output_shapes()']]], + ['outputs_43',['outputs',['../classmlx_1_1core_1_1array.html#a2c186fd527f984f0589d4183b4976289',1,'mlx::core::array::outputs()'],['../structmlx_1_1core_1_1metal_1_1_command_encoder.html#aefa48740fdee884f02e2d379bca4e78f',1,'mlx::core::metal::CommandEncoder::outputs()']]], ['overwrite_5fdescriptor_44',['overwrite_descriptor',['../classmlx_1_1core_1_1array.html#a95e6b156c8e05439f076b85c05079387',1,'mlx::core::array']]] ]; diff --git a/docs/build/html/search/variables_1.js b/docs/build/html/search/variables_1.js index ea5e5fa5e..29e2d1b4b 100644 --- a/docs/build/html/search/variables_1.js +++ b/docs/build/html/search/variables_1.js @@ -29,6 +29,7 @@ var searchData= ['bs_5foffset_26',['Bs_offset',['../structmlx_1_1steel_1_1_block_m_m_a.html#a92f6aeee432f53638447eac842f43eca',1,'mlx::steel::BlockMMA']]], ['bsimd_27',['Bsimd',['../structmlx_1_1steel_1_1_block_m_m_a.html#a3de506004b428d3487bae05ad9e757e6',1,'mlx::steel::BlockMMA']]], ['buf_28',['buf',['../struct_read_writer.html#a23bac3c96dd0265ddbee1f256be45ff5',1,'ReadWriter::buf'],['../backend_2metal_2allocator_8h.html#a15aa5cc1baf29be08d55cca88509e697',1,'buf: allocator.h']]], - ['buffer_29',['buffer',['../structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad',1,'mlx::core::array::Data']]], - ['buffers_30',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]] + ['buffer_29',['buffer',['../structmlx_1_1core_1_1array_1_1_data.html#a9a51e2d12ba505027cc0fca86bdd39ad',1,'mlx::core::array::Data::buffer'],['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a99183c92599edfeb75f7fa0f37e1d9eb',1,'mlx::core::metal::DeviceStream::buffer']]], + ['buffer_5fops_30',['buffer_ops',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#ab6048b329e65a59033834f3bdd351782',1,'mlx::core::metal::DeviceStream']]], + ['buffers_31',['buffers',['../struct_indices.html#ad705070a740579c07d109ae4f3d86e76',1,'Indices']]] ]; diff --git a/docs/build/html/search/variables_10.js b/docs/build/html/search/variables_10.js index c14e84f3b..fcebac343 100644 --- a/docs/build/html/search/variables_10.js +++ b/docs/build/html/search/variables_10.js @@ -1,5 +1,7 @@ var searchData= [ ['q_0',['q',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#adf608e22d0c0397217472408aab52631',1,'mlx::core::scheduler::StreamThread']]], - ['query_5fsequence_5flength_1',['QUERY_SEQUENCE_LENGTH',['../struct_m_l_x_scaled_dot_product_attention_params.html#a46cc2da6a069d822f36983ee18467e5c',1,'MLXScaledDotProductAttentionParams']]] + ['quad_5fsize_1',['QUAD_SIZE',['../quantized_8h.html#a803e4d5a1459844ba647aea5b004e133',1,'quantized.h']]], + ['query_5fsequence_5flength_2',['QUERY_SEQUENCE_LENGTH',['../struct_m_l_x_scaled_dot_product_attention_params.html#a46cc2da6a069d822f36983ee18467e5c',1,'MLXScaledDotProductAttentionParams']]], + ['queue_3',['queue',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a77c75a63c51ea56815a86bd882ed190d',1,'mlx::core::metal::DeviceStream']]] ]; diff --git a/docs/build/html/search/variables_12.js b/docs/build/html/search/variables_12.js index 26253855f..fd6ec46c4 100644 --- a/docs/build/html/search/variables_12.js +++ b/docs/build/html/search/variables_12.js @@ -2,38 +2,37 @@ var searchData= [ ['scale_0',['scale',['../struct_scale_op.html#a02043fac21c68fb8d6863a01f45ede4b',1,'ScaleOp']]], ['scales_1',['scales',['../struct_quantized_block_loader.html#a6123e4a9209d6eacb58b2c2344ed1ecf',1,'QuantizedBlockLoader']]], - ['scan_5fkernels_2',['scan_kernels',['../jit_2scan_8h.html#a35041ee4a053875a2240bdac5a3b4fae',1,'scan.h']]], - ['scatter_5fkernels_3',['scatter_kernels',['../jit_2indexing_8h.html#a768c949cd650a44c6b402fc1440c1a56',1,'indexing.h']]], - ['shape_4',['shape',['../structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae',1,'mlx::core::ReductionPlan::shape'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a',1,'mlx::core::fast::CustomKernelShapeInfo::shape']]], - ['shapes_5',['shapes',['../struct_indices.html#a5ab170f1a77636180889ddfffd4f7d2f',1,'Indices']]], - ['shp_6',['shp',['../classpocketfft_1_1detail_1_1arr__info.html#a2467e9e01de1ba4d7cd28c1af783da8d',1,'pocketfft::detail::arr_info']]], - ['signedinteger_7',['signedinteger',['../namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001',1,'mlx::core']]], - ['simd_5fsize_8',['SIMD_SIZE',['../quantized_8h.html#a62969a218d93680f5e35d0c61b160b99',1,'quantized.h']]], - ['simd_5fsize_9',['simd_size',['../backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3',1,'ops.h']]], - ['simd_5fstride_5fa_10',['simd_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab52d2644053c5bb28ab9b24fab8b194a',1,'mlx::steel::BlockMMA']]], - ['simd_5fstride_5fb_11',['simd_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#af5c60b04602f72b705192911ed8749da',1,'mlx::steel::BlockMMA']]], - ['sm_12',['sm',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3',1,'mlx::steel::BlockMMA']]], - ['sn_13',['sn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a',1,'mlx::steel::BlockMMA']]], - ['softmax_5fkernels_14',['softmax_kernels',['../jit_2softmax_8h.html#a1cbfb210a9a765c6620e9f1247ccef12',1,'softmax.h']]], - ['softmax_5fn_5freads_15',['SOFTMAX_N_READS',['../defines_8h.html#a722995df24286b27b7da3d74b73f768d',1,'defines.h']]], - ['split_5fk_5fpartition_5fsize_16',['split_k_partition_size',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a9f5a67b2343645b570e109c3837d4042',1,'mlx::steel::GEMMSpiltKParams']]], - ['split_5fk_5fpartition_5fstride_17',['split_k_partition_stride',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a12144ce89d404812cd862611d770b9fb',1,'mlx::steel::GEMMSpiltKParams']]], - ['split_5fk_5fpartitions_18',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], - ['src_19',['src',['../struct_quantized_block_loader.html#ad85c6b7e07c81307b3b91eb4dd7be30b',1,'QuantizedBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a656a46ee27486482b45ff90b3d626255',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a57552e9cfbafad71d47b2f3a8e027bdf',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7bfbcc4a1e3eef7aef5dd8e8c374a95f',1,'mlx::steel::Conv2DWeightBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#afe21e46e08523232830c25eb1b4ade16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b04a69952404a04029dacc424df6e8f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1ee2922961b5fcb1db577928c4d9d731',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a50f458dbb74d61be2ed24727d8d43614',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_block_loader.html#a13004952d0bf2030b95acb621a3779dd',1,'mlx::steel::BlockLoader::src']]], - ['src_5fld_20',['src_ld',['../struct_quantized_block_loader.html#a8050977d473d1a24fae5c833e609839e',1,'QuantizedBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7464ec687323fa79050702952ed9084f',1,'mlx::steel::Conv2DWeightBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#aa6bedc0cbb447eaf70c03f2e26df2cb2',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6918c1df7712c4e408e2871467ea7987',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src_ld'],['../structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d',1,'mlx::steel::BlockLoader::src_ld']]], - ['start_5frow_21',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], - ['steel_5fconv_5fgeneral_5fkernels_22',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], - ['steel_5fconv_5fkernels_23',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], - ['steel_5fgemm_5ffused_5fkernels_24',['steel_gemm_fused_kernels',['../steel__gemm_8h.html#a4c6009fd5357b730805f2fd4ba6e093e',1,'steel_gemm.h']]], - ['steel_5fgemm_5fmasked_5fkernels_25',['steel_gemm_masked_kernels',['../steel__gemm_8h.html#a62a358fd3ec5365081920d07aceb581c',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5faccum_5faxbpy_5fkernels_26',['steel_gemm_splitk_accum_axbpy_kernels',['../steel__gemm_8h.html#a40a86e1381c241aba8511e51a981a4bf',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5faccum_5fkernels_27',['steel_gemm_splitk_accum_kernels',['../steel__gemm_8h.html#a144a64b8d94f0371fb144e2cc308fcf9',1,'steel_gemm.h']]], - ['steel_5fgemm_5fsplitk_5fkernels_28',['steel_gemm_splitk_kernels',['../steel__gemm_8h.html#a92108ab01d826e38bca83d8569b947d9',1,'steel_gemm.h']]], - ['stop_29',['stop',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a456ad1c0c9e731833a2f8411c4ed51aa',1,'mlx::core::scheduler::StreamThread']]], - ['str_30',['str',['../classpocketfft_1_1detail_1_1arr__info.html#abe1f7b92501b4e0e5a38fd26294ac5a4',1,'pocketfft::detail::arr_info::str'],['../struct_m_l_x_conv_params.html#a862191e8ab1bc8a47aa1396b36d46058',1,'MLXConvParams::str']]], - ['stream_31',['stream',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a8462e4acffcd385c6248bd7102e6bcb1',1,'mlx::core::scheduler::StreamThread']]], - ['strided_5fdevice_5fidx_32',['strided_device_idx',['../struct_read_writer.html#a4c0b12484aac4fd6759d67c190391989',1,'ReadWriter']]], - ['strided_5fshared_5fidx_33',['strided_shared_idx',['../struct_read_writer.html#ace40adb02cfb33d89c98353327c251fc',1,'ReadWriter']]], - ['strides_34',['strides',['../structmlx_1_1core_1_1_reduction_plan.html#a9bf7cae845ab633247c1811613ece8bd',1,'mlx::core::ReductionPlan::strides'],['../struct_indices.html#a7f73d7652f0f751e6a06c2663e329a4a',1,'Indices::strides'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2',1,'mlx::core::fast::CustomKernelShapeInfo::strides']]], - ['swizzle_5flog_35',['swizzle_log',['../struct_m_l_x_fast_attention_params.html#a68a338d522ffeb6761b7b168869361e2',1,'MLXFastAttentionParams::swizzle_log'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ad0713159d4f710cd9a066596593d8840',1,'mlx::steel::ImplicitGemmConv2DParams::swizzle_log'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#af9ff2c06dd8994126634531440325be7',1,'mlx::steel::GEMMParams::swizzle_log']]] + ['scatter_5fkernels_2',['scatter_kernels',['../jit_2indexing_8h.html#a768c949cd650a44c6b402fc1440c1a56',1,'indexing.h']]], + ['shape_3',['shape',['../structmlx_1_1core_1_1_reduction_plan.html#a6cfa8771fa9caf6fdcc3d74c9fca83ae',1,'mlx::core::ReductionPlan::shape'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63db720fe0c2abc4b71e22a58a015f8a',1,'mlx::core::fast::CustomKernelShapeInfo::shape']]], + ['shapes_4',['shapes',['../struct_indices.html#a5ab170f1a77636180889ddfffd4f7d2f',1,'Indices']]], + ['shp_5',['shp',['../classpocketfft_1_1detail_1_1arr__info.html#a2467e9e01de1ba4d7cd28c1af783da8d',1,'pocketfft::detail::arr_info']]], + ['signedinteger_6',['signedinteger',['../namespacemlx_1_1core.html#a24e1618af591d737d73729665e868001',1,'mlx::core']]], + ['simd_5fsize_7',['SIMD_SIZE',['../quantized_8h.html#a62969a218d93680f5e35d0c61b160b99',1,'quantized.h']]], + ['simd_5fsize_8',['simd_size',['../backend_2metal_2kernels_2reduction_2ops_8h.html#a515b75d563a93d3c09ee677948dc83e3',1,'ops.h']]], + ['simd_5fstride_5fa_9',['simd_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab52d2644053c5bb28ab9b24fab8b194a',1,'mlx::steel::BlockMMA']]], + ['simd_5fstride_5fb_10',['simd_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#af5c60b04602f72b705192911ed8749da',1,'mlx::steel::BlockMMA']]], + ['sm_11',['sm',['../structmlx_1_1steel_1_1_block_m_m_a.html#aa85451edf6900fd6af164d4d50889ae3',1,'mlx::steel::BlockMMA']]], + ['sn_12',['sn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ade420e8b811d597345783c324c23a34a',1,'mlx::steel::BlockMMA']]], + ['softmax_5fkernels_13',['softmax_kernels',['../jit_2softmax_8h.html#a1cbfb210a9a765c6620e9f1247ccef12',1,'softmax.h']]], + ['softmax_5fn_5freads_14',['SOFTMAX_N_READS',['../defines_8h.html#a722995df24286b27b7da3d74b73f768d',1,'defines.h']]], + ['split_5fk_5fpartition_5fsize_15',['split_k_partition_size',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a9f5a67b2343645b570e109c3837d4042',1,'mlx::steel::GEMMSpiltKParams']]], + ['split_5fk_5fpartition_5fstride_16',['split_k_partition_stride',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a12144ce89d404812cd862611d770b9fb',1,'mlx::steel::GEMMSpiltKParams']]], + ['split_5fk_5fpartitions_17',['split_k_partitions',['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#ae06c27116905d4ff3b9b436e588a93fd',1,'mlx::steel::GEMMSpiltKParams']]], + ['src_18',['src',['../struct_quantized_block_loader.html#ad85c6b7e07c81307b3b91eb4dd7be30b',1,'QuantizedBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a656a46ee27486482b45ff90b3d626255',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a57552e9cfbafad71d47b2f3a8e027bdf',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7bfbcc4a1e3eef7aef5dd8e8c374a95f',1,'mlx::steel::Conv2DWeightBlockLoader::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#afe21e46e08523232830c25eb1b4ade16',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a8b04a69952404a04029dacc424df6e8f',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a1ee2922961b5fcb1db577928c4d9d731',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a50f458dbb74d61be2ed24727d8d43614',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src'],['../structmlx_1_1steel_1_1_block_loader.html#a13004952d0bf2030b95acb621a3779dd',1,'mlx::steel::BlockLoader::src']]], + ['src_5fld_19',['src_ld',['../struct_quantized_block_loader.html#a8050977d473d1a24fae5c833e609839e',1,'QuantizedBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a7464ec687323fa79050702952ed9084f',1,'mlx::steel::Conv2DWeightBlockLoader::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#aa6bedc0cbb447eaf70c03f2e26df2cb2',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::src_ld'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a6918c1df7712c4e408e2871467ea7987',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::src_ld'],['../structmlx_1_1steel_1_1_block_loader.html#aadafc50f7f06af434149d7469df4714d',1,'mlx::steel::BlockLoader::src_ld']]], + ['start_5frow_20',['start_row',['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a220e033b689c8d6a6f319dae02b38334',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral']]], + ['steel_5fconv_5fgeneral_5fkernels_21',['steel_conv_general_kernels',['../jit_2steel__conv_8h.html#ae4ca1720029316b08ea92b7662347d47',1,'steel_conv.h']]], + ['steel_5fconv_5fkernels_22',['steel_conv_kernels',['../jit_2steel__conv_8h.html#a386d79077465df56659416fd84adb513',1,'steel_conv.h']]], + ['steel_5fgemm_5ffused_5fkernels_23',['steel_gemm_fused_kernels',['../steel__gemm_8h.html#a4c6009fd5357b730805f2fd4ba6e093e',1,'steel_gemm.h']]], + ['steel_5fgemm_5fmasked_5fkernels_24',['steel_gemm_masked_kernels',['../steel__gemm_8h.html#a62a358fd3ec5365081920d07aceb581c',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5faccum_5faxbpy_5fkernels_25',['steel_gemm_splitk_accum_axbpy_kernels',['../steel__gemm_8h.html#a40a86e1381c241aba8511e51a981a4bf',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5faccum_5fkernels_26',['steel_gemm_splitk_accum_kernels',['../steel__gemm_8h.html#a144a64b8d94f0371fb144e2cc308fcf9',1,'steel_gemm.h']]], + ['steel_5fgemm_5fsplitk_5fkernels_27',['steel_gemm_splitk_kernels',['../steel__gemm_8h.html#a92108ab01d826e38bca83d8569b947d9',1,'steel_gemm.h']]], + ['stop_28',['stop',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a456ad1c0c9e731833a2f8411c4ed51aa',1,'mlx::core::scheduler::StreamThread']]], + ['str_29',['str',['../classpocketfft_1_1detail_1_1arr__info.html#abe1f7b92501b4e0e5a38fd26294ac5a4',1,'pocketfft::detail::arr_info::str'],['../struct_m_l_x_conv_params.html#a862191e8ab1bc8a47aa1396b36d46058',1,'MLXConvParams::str']]], + ['stream_30',['stream',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a8462e4acffcd385c6248bd7102e6bcb1',1,'mlx::core::scheduler::StreamThread']]], + ['strided_5fdevice_5fidx_31',['strided_device_idx',['../struct_read_writer.html#a4c0b12484aac4fd6759d67c190391989',1,'ReadWriter']]], + ['strided_5fshared_5fidx_32',['strided_shared_idx',['../struct_read_writer.html#ace40adb02cfb33d89c98353327c251fc',1,'ReadWriter']]], + ['strides_33',['strides',['../structmlx_1_1core_1_1_reduction_plan.html#a9bf7cae845ab633247c1811613ece8bd',1,'mlx::core::ReductionPlan::strides'],['../struct_indices.html#a7f73d7652f0f751e6a06c2663e329a4a',1,'Indices::strides'],['../structmlx_1_1core_1_1fast_1_1_custom_kernel_shape_info.html#a63954de7da62942ec69afcaaa19d46f2',1,'mlx::core::fast::CustomKernelShapeInfo::strides']]], + ['swizzle_5flog_34',['swizzle_log',['../struct_m_l_x_fast_attention_params.html#a68a338d522ffeb6761b7b168869361e2',1,'MLXFastAttentionParams::swizzle_log'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#ad0713159d4f710cd9a066596593d8840',1,'mlx::steel::ImplicitGemmConv2DParams::swizzle_log'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#af9ff2c06dd8994126634531440325be7',1,'mlx::steel::GEMMParams::swizzle_log']]] ]; diff --git a/docs/build/html/search/variables_13.js b/docs/build/html/search/variables_13.js index 81e6e3e34..57ce49b1b 100644 --- a/docs/build/html/search/variables_13.js +++ b/docs/build/html/search/variables_13.js @@ -1,28 +1,29 @@ var searchData= [ ['tcols_0',['TCOLS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a0b5303f3258e0a21862dead8e3f5401e',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a5adbd51e9adb6f7853724d83de4ff755',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a80cb90674f839d5d4ecfde384fa0a7a2',1,'mlx::steel::Conv2DWeightBlockLoader::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#ad2508cd5cdb51b2f611057e743b8fc6f',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acd54132d0928d0f6fb15b2f367e5d5e8',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#ae25c676b7318d78462ee89bcd80dc805',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::TCOLS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#aff021a6fae860b4ac01fb593b2720457',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::TCOLS']]], - ['tgp_5fmem_5fsize_1',['tgp_mem_size',['../struct_g_e_m_v_kernel.html#a9ef4d0e62094d7033069f5dda5efb236',1,'GEMVKernel::tgp_mem_size'],['../struct_g_e_m_v_t_kernel.html#a48a09a21d7b822f380d040c752b785d7',1,'GEMVTKernel::tgp_mem_size'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da',1,'mlx::steel::GEMMKernel::tgp_mem_size']]], - ['tgp_5fmem_5fsize_5fa_2',['tgp_mem_size_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fmem_5fsize_5fb_3',['tgp_mem_size_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a105af1069668028c6f1bc6d6dd162298',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fpadding_5fa_4',['tgp_padding_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fpadding_5fb_5',['tgp_padding_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094',1,'mlx::steel::GEMMKernel']]], - ['tgp_5fsize_6',['tgp_size',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64',1,'mlx::steel::GEMMKernel']]], - ['thread_7',['thread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a449de02bf2ac80d8fe2f208fa7eac359',1,'mlx::core::scheduler::StreamThread']]], - ['thread_5fidx_8',['thread_idx',['../struct_quantized_block_loader.html#a50821537ea747bc03295a09bb0eef475',1,'QuantizedBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a70da26a715135d973f88371a70255be9',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac18de37cde1459595bfe18b0d5ef146d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ab1cb2ade639787243e0325dcd3dc0a11',1,'mlx::steel::Conv2DWeightBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9642399b8066e29123524f36ebc7b482',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acacdac168004c87fee27c8554ac905a7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a401f0c7cf1588552556603c7ffba2316',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08a517bc50caf41155b98be0690bfe44',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b',1,'mlx::steel::BlockLoader::thread_idx']]], - ['threads_5fper_5ftg_9',['threads_per_tg',['../struct_read_writer.html#a64c58e358da22358df3075448ea23893',1,'ReadWriter']]], - ['threadsm_10',['threadsM',['../struct_g_e_m_v_kernel.html#a1dd943fcbf5e7be435fc36bed589a641',1,'GEMVKernel::threadsM'],['../struct_g_e_m_v_t_kernel.html#a4a53e73a581aa8881b1f86ce653519e6',1,'GEMVTKernel::threadsM']]], - ['threadsn_11',['threadsN',['../struct_g_e_m_v_kernel.html#a47bfab7d21dd18760d3e0937ad36b19d',1,'GEMVKernel::threadsN'],['../struct_g_e_m_v_t_kernel.html#ade6f15a9744616de9dd71498ad7e758d',1,'GEMVTKernel::threadsN']]], - ['tile_5fstride_12',['tile_stride',['../struct_quantized_block_loader.html#ac3f651c1a645291d1037a2cc8ded2320',1,'QuantizedBlockLoader::tile_stride'],['../structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d',1,'mlx::steel::BlockLoader::tile_stride']]], - ['tile_5fstride_5fa_13',['tile_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330',1,'mlx::steel::BlockMMA']]], - ['tile_5fstride_5fb_14',['tile_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4',1,'mlx::steel::BlockMMA']]], - ['tiles_5fm_15',['tiles_m',['../struct_m_l_x_fast_attention_params.html#a0df159c839fc27b9426b8ac4336cc0ad',1,'MLXFastAttentionParams::tiles_m'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a4c5e33edf70be99cf93ac5723c12eb24',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad23a5a7f74cd5859741a36e4bc7823ca',1,'mlx::steel::GEMMParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a0970989624e17088d5326c2e198cb95b',1,'mlx::steel::GEMMSpiltKParams::tiles_m']]], - ['tiles_5fn_16',['tiles_n',['../struct_m_l_x_fast_attention_params.html#a608aa256216ac6d80af00209303d2029',1,'MLXFastAttentionParams::tiles_n'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a76f9f381e7187a993d65128b9b681b2d',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0e6b8b629232f1b43fbce9a395174bed',1,'mlx::steel::GEMMParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a5b46dfb9cee3606efa05d217349a20a6',1,'mlx::steel::GEMMSpiltKParams::tiles_n']]], - ['tm_17',['TM',['../structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591',1,'mlx::steel::BlockMMA']]], - ['tm_18',['tm',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab84d70540d09ce115794f343849f016f',1,'mlx::steel::BlockMMA']]], - ['tm_5fstride_19',['TM_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307',1,'mlx::steel::BlockMMA']]], - ['tn_20',['TN',['../structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424',1,'mlx::steel::BlockMMA']]], - ['tn_21',['tn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ad7a2033983cfbb474c50c2878057d8f1',1,'mlx::steel::BlockMMA']]], - ['tn_5fstride_22',['TN_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50',1,'mlx::steel::BlockMMA']]], - ['trows_23',['TROWS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a2528ff5ed472e4ed35415ada42276b07',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3957fb263fe040fe70683fd1d7b06487',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a94f0ce5bb7d87bc1fb6a7c2ba2b892d4',1,'mlx::steel::Conv2DWeightBlockLoader::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a789683f9ac9d9309d07c05f3bdedd2fd',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a5cefb1285ed13ad3490198e9303453de',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a2aff22af70f685f858adea73f5575cf7',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acbc28f364381166faaeec2783dc88e10',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::TROWS']]], - ['type_24',['type',['../structpocketfft_1_1detail_1_1_exec_dcst.html#a9b170cbd74a9c6f45ac014ce349219ea',1,'pocketfft::detail::ExecDcst::type'],['../structmlx_1_1core_1_1_reduction_plan.html#a24e407f13d4d02156380ecc1a6748a76',1,'mlx::core::ReductionPlan::type'],['../structmlx_1_1core_1_1_device.html#a763264ec90f7f23c5dced36c3f0db2e5',1,'mlx::core::Device::type']]] + ['temporaries_1',['temporaries',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#aee88009117dfff1ad121eabe28d5f3de',1,'mlx::core::metal::DeviceStream']]], + ['tgp_5fmem_5fsize_2',['tgp_mem_size',['../struct_g_e_m_v_kernel.html#a9ef4d0e62094d7033069f5dda5efb236',1,'GEMVKernel::tgp_mem_size'],['../struct_g_e_m_v_t_kernel.html#a48a09a21d7b822f380d040c752b785d7',1,'GEMVTKernel::tgp_mem_size'],['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a1ec583584e69dcbbb72106390a4fc5da',1,'mlx::steel::GEMMKernel::tgp_mem_size']]], + ['tgp_5fmem_5fsize_5fa_3',['tgp_mem_size_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ac00b149d76a903c2f91b0f477dc5037f',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fmem_5fsize_5fb_4',['tgp_mem_size_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a105af1069668028c6f1bc6d6dd162298',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fpadding_5fa_5',['tgp_padding_a',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad547704ccbff6c2076abeffa6628c5a0',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fpadding_5fb_6',['tgp_padding_b',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#ad1b03941e869017558423c08b08bc094',1,'mlx::steel::GEMMKernel']]], + ['tgp_5fsize_7',['tgp_size',['../structmlx_1_1steel_1_1_g_e_m_m_kernel.html#a9058ddb73e30e83fb9c548ba22817d64',1,'mlx::steel::GEMMKernel']]], + ['thread_8',['thread',['../structmlx_1_1core_1_1scheduler_1_1_stream_thread.html#a449de02bf2ac80d8fe2f208fa7eac359',1,'mlx::core::scheduler::StreamThread']]], + ['thread_5fidx_9',['thread_idx',['../struct_quantized_block_loader.html#a50821537ea747bc03295a09bb0eef475',1,'QuantizedBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a70da26a715135d973f88371a70255be9',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#ac18de37cde1459595bfe18b0d5ef146d',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#ab1cb2ade639787243e0325dcd3dc0a11',1,'mlx::steel::Conv2DWeightBlockLoader::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a9642399b8066e29123524f36ebc7b482',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#acacdac168004c87fee27c8554ac905a7',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a401f0c7cf1588552556603c7ffba2316',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#a08a517bc50caf41155b98be0690bfe44',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::thread_idx'],['../structmlx_1_1steel_1_1_block_loader.html#a064e2cc77e0b1cf0f8027929e031775b',1,'mlx::steel::BlockLoader::thread_idx']]], + ['threads_5fper_5ftg_10',['threads_per_tg',['../struct_read_writer.html#a64c58e358da22358df3075448ea23893',1,'ReadWriter']]], + ['threadsm_11',['threadsM',['../struct_g_e_m_v_kernel.html#a1dd943fcbf5e7be435fc36bed589a641',1,'GEMVKernel::threadsM'],['../struct_g_e_m_v_t_kernel.html#a4a53e73a581aa8881b1f86ce653519e6',1,'GEMVTKernel::threadsM']]], + ['threadsn_12',['threadsN',['../struct_g_e_m_v_kernel.html#a47bfab7d21dd18760d3e0937ad36b19d',1,'GEMVKernel::threadsN'],['../struct_g_e_m_v_t_kernel.html#ade6f15a9744616de9dd71498ad7e758d',1,'GEMVTKernel::threadsN']]], + ['tile_5fstride_13',['tile_stride',['../struct_quantized_block_loader.html#ac3f651c1a645291d1037a2cc8ded2320',1,'QuantizedBlockLoader::tile_stride'],['../structmlx_1_1steel_1_1_block_loader.html#ab87876699d55473620c7ea99f9da911d',1,'mlx::steel::BlockLoader::tile_stride']]], + ['tile_5fstride_5fa_14',['tile_stride_a',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8fddaa78913cdc8eea5e1cf7d2776330',1,'mlx::steel::BlockMMA']]], + ['tile_5fstride_5fb_15',['tile_stride_b',['../structmlx_1_1steel_1_1_block_m_m_a.html#ae3f35453b3afbaac9df64ad5966b34a4',1,'mlx::steel::BlockMMA']]], + ['tiles_5fm_16',['tiles_m',['../struct_m_l_x_fast_attention_params.html#a0df159c839fc27b9426b8ac4336cc0ad',1,'MLXFastAttentionParams::tiles_m'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a4c5e33edf70be99cf93ac5723c12eb24',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#ad23a5a7f74cd5859741a36e4bc7823ca',1,'mlx::steel::GEMMParams::tiles_m'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a0970989624e17088d5326c2e198cb95b',1,'mlx::steel::GEMMSpiltKParams::tiles_m']]], + ['tiles_5fn_17',['tiles_n',['../struct_m_l_x_fast_attention_params.html#a608aa256216ac6d80af00209303d2029',1,'MLXFastAttentionParams::tiles_n'],['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a76f9f381e7187a993d65128b9b681b2d',1,'mlx::steel::ImplicitGemmConv2DParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_params.html#a0e6b8b629232f1b43fbce9a395174bed',1,'mlx::steel::GEMMParams::tiles_n'],['../structmlx_1_1steel_1_1_g_e_m_m_spilt_k_params.html#a5b46dfb9cee3606efa05d217349a20a6',1,'mlx::steel::GEMMSpiltKParams::tiles_n']]], + ['tm_18',['TM',['../structmlx_1_1steel_1_1_block_m_m_a.html#aba5f749fdf32d8bd9d9e29f2a9ae4591',1,'mlx::steel::BlockMMA']]], + ['tm_19',['tm',['../structmlx_1_1steel_1_1_block_m_m_a.html#ab84d70540d09ce115794f343849f016f',1,'mlx::steel::BlockMMA']]], + ['tm_5fstride_20',['TM_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a5b0029866f493363942133b55bff7307',1,'mlx::steel::BlockMMA']]], + ['tn_21',['TN',['../structmlx_1_1steel_1_1_block_m_m_a.html#a706ae779c1f8d2eb18f19c248567d424',1,'mlx::steel::BlockMMA']]], + ['tn_22',['tn',['../structmlx_1_1steel_1_1_block_m_m_a.html#ad7a2033983cfbb474c50c2878057d8f1',1,'mlx::steel::BlockMMA']]], + ['tn_5fstride_23',['TN_stride',['../structmlx_1_1steel_1_1_block_m_m_a.html#a8b3690b383afd26563efb38f9c375e50',1,'mlx::steel::BlockMMA']]], + ['trows_24',['TROWS',['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_large_filter.html#a2528ff5ed472e4ed35415ada42276b07',1,'mlx::steel::Conv2DInputBlockLoaderLargeFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_filter.html#a3957fb263fe040fe70683fd1d7b06487',1,'mlx::steel::Conv2DInputBlockLoaderSmallFilter::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader.html#a94f0ce5bb7d87bc1fb6a7c2ba2b892d4',1,'mlx::steel::Conv2DWeightBlockLoader::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_small_channels.html#a789683f9ac9d9309d07c05f3bdedd2fd',1,'mlx::steel::Conv2DInputBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_small_channels.html#a5cefb1285ed13ad3490198e9303453de',1,'mlx::steel::Conv2DWeightBlockLoaderSmallChannels::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_input_block_loader_general.html#a2aff22af70f685f858adea73f5575cf7',1,'mlx::steel::Conv2DInputBlockLoaderGeneral::TROWS'],['../structmlx_1_1steel_1_1_conv2_d_weight_block_loader_general.html#acbc28f364381166faaeec2783dc88e10',1,'mlx::steel::Conv2DWeightBlockLoaderGeneral::TROWS']]], + ['type_25',['type',['../structpocketfft_1_1detail_1_1_exec_dcst.html#a9b170cbd74a9c6f45ac014ce349219ea',1,'pocketfft::detail::ExecDcst::type'],['../structmlx_1_1core_1_1_reduction_plan.html#a24e407f13d4d02156380ecc1a6748a76',1,'mlx::core::ReductionPlan::type'],['../structmlx_1_1core_1_1_device.html#a763264ec90f7f23c5dced36c3f0db2e5',1,'mlx::core::Device::type']]] ]; diff --git a/docs/build/html/search/variables_4.js b/docs/build/html/search/variables_4.js index c570ff836..202519d36 100644 --- a/docs/build/html/search/variables_4.js +++ b/docs/build/html/search/variables_4.js @@ -3,5 +3,6 @@ var searchData= ['elem_0',['elem',['../struct_read_writer.html#a32b82adcd6ed324ce235e9f5ad780ede',1,'ReadWriter']]], ['elems_5fper_5fthread_1',['elems_per_thread',['../struct_read_writer.html#a444230a0182ce6ba1898c04ce6e669a7',1,'ReadWriter']]], ['elems_5fper_5fthread_5f_2',['elems_per_thread_',['../backend_2metal_2kernels_2fft_8h.html#ad395c11e6f2aee72cd1928fba93a35a3',1,'fft.h']]], - ['excess_3',['excess',['../structmlx_1_1steel_1_1_channel_helper.html#afc34bf92168c1865a9611b319dbcd000',1,'mlx::steel::ChannelHelper::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#ada22a8bd8a89078cfa28874055c8e753',1,'mlx::steel::ChannelHelper< 1 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acc490f3999230aa592c61bbed7eb7cfe',1,'mlx::steel::ChannelHelper< 2 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#aae404674763f3dc73c5ab29169f8b80f',1,'mlx::steel::ChannelHelper< 3 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#aecdd8331fec703d739a6f07b9b901ac8',1,'mlx::steel::ChannelHelper< 4 >::excess']]] + ['encoder_3',['encoder',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a58e435217b9922f882507ebf48bfbbdd',1,'mlx::core::metal::DeviceStream']]], + ['excess_4',['excess',['../structmlx_1_1steel_1_1_channel_helper.html#afc34bf92168c1865a9611b319dbcd000',1,'mlx::steel::ChannelHelper::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_011_01_4.html#ada22a8bd8a89078cfa28874055c8e753',1,'mlx::steel::ChannelHelper< 1 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_012_01_4.html#acc490f3999230aa592c61bbed7eb7cfe',1,'mlx::steel::ChannelHelper< 2 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_013_01_4.html#aae404674763f3dc73c5ab29169f8b80f',1,'mlx::steel::ChannelHelper< 3 >::excess'],['../structmlx_1_1steel_1_1_channel_helper_3_014_01_4.html#aecdd8331fec703d739a6f07b9b901ac8',1,'mlx::steel::ChannelHelper< 4 >::excess']]] ]; diff --git a/docs/build/html/search/variables_5.js b/docs/build/html/search/variables_5.js index 76598a520..7d19e69b1 100644 --- a/docs/build/html/search/variables_5.js +++ b/docs/build/html/search/variables_5.js @@ -6,12 +6,14 @@ var searchData= ['f_5fwgt_5fjump_5fh_3',['f_wgt_jump_h',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a198ba0c2740ab4ded99345edf58917a7',1,'mlx::steel::Conv2DGeneralJumpParams']]], ['f_5fwgt_5fjump_5fw_4',['f_wgt_jump_w',['../structmlx_1_1steel_1_1_conv2_d_general_jump_params.html#a568435a612574ab19a051a48055d4cfc',1,'mlx::steel::Conv2DGeneralJumpParams']]], ['fdc_5',['fdc',['../structmlx_1_1steel_1_1_g_e_m_m_add_m_m_params.html#a42efa2a1fddc11f71987377b9048f953',1,'mlx::steel::GEMMAddMMParams']]], - ['finite_5fmax_6',['finite_max',['../struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5',1,'Limits::finite_max'],['../struct_limits_3_01uint8__t_01_4.html#a55f48b89033e8c8683f8540ec6b23f02',1,'Limits< uint8_t >::finite_max'],['../struct_limits_3_01uint16__t_01_4.html#a9d517d8265ea1898b6b16e91b8595146',1,'Limits< uint16_t >::finite_max'],['../struct_limits_3_01uint32__t_01_4.html#a0698139f3fe440d7aa08ac5029d72235',1,'Limits< uint32_t >::finite_max'],['../struct_limits_3_01uint64__t_01_4.html#aff101ff38be5ccdbb9790aecb3069071',1,'Limits< uint64_t >::finite_max'],['../struct_limits_3_01int8__t_01_4.html#a24cdab873e0fb778393c69f1dc9ecf73',1,'Limits< int8_t >::finite_max'],['../struct_limits_3_01int16__t_01_4.html#acb2936d1cdbf347a9a014c8e036a5782',1,'Limits< int16_t >::finite_max'],['../struct_limits_3_01int32__t_01_4.html#aa9ed9f0e8c7400d8fc92e1cba9588794',1,'Limits< int32_t >::finite_max'],['../struct_limits_3_01int64__t_01_4.html#a6c7254b641878fa0fb9538814c45457a',1,'Limits< int64_t >::finite_max'],['../struct_limits_3_01half_01_4.html#aedaf0190aabf23da20510e558e2690b4',1,'Limits< half >::finite_max'],['../struct_limits_3_01float_01_4.html#a291eea590113fc1858b7f83f2e0c977d',1,'Limits< float >::finite_max'],['../struct_limits_3_01bfloat16__t_01_4.html#a6337dc35207b3f6f7185cd73eabac211',1,'Limits< bfloat16_t >::finite_max']]], - ['finite_5fmin_7',['finite_min',['../struct_limits.html#ae7469d21f2688797ca3e388d919ef05e',1,'Limits::finite_min'],['../struct_limits_3_01uint8__t_01_4.html#a60cea662971b09f78ef19f1da4760b73',1,'Limits< uint8_t >::finite_min'],['../struct_limits_3_01uint16__t_01_4.html#a1a7c029eccba4ab89743abdfaabfa7b4',1,'Limits< uint16_t >::finite_min'],['../struct_limits_3_01uint32__t_01_4.html#ad5d811fce62f44488190ff01d9e7608b',1,'Limits< uint32_t >::finite_min'],['../struct_limits_3_01uint64__t_01_4.html#a6556e7de6e0670da8f768bbc4479deae',1,'Limits< uint64_t >::finite_min'],['../struct_limits_3_01int8__t_01_4.html#a592797ce82cc2f7e27b0c477165b3452',1,'Limits< int8_t >::finite_min'],['../struct_limits_3_01int16__t_01_4.html#a158c4dbc9333939691b1637478e28e39',1,'Limits< int16_t >::finite_min'],['../struct_limits_3_01int32__t_01_4.html#ad9777dc6a84dcb9c63b598189ff0a4ff',1,'Limits< int32_t >::finite_min'],['../struct_limits_3_01int64__t_01_4.html#af80726162b44a741aae679f1fe85142a',1,'Limits< int64_t >::finite_min'],['../struct_limits_3_01half_01_4.html#a98d153748be68dbb428c50df3c0285ab',1,'Limits< half >::finite_min'],['../struct_limits_3_01float_01_4.html#afaa5162a47083447c5ac758d6dc02a8b',1,'Limits< float >::finite_min'],['../struct_limits_3_01bfloat16__t_01_4.html#ae4132a37154707cc31bbc1734636cf36',1,'Limits< bfloat16_t >::finite_min']]], - ['flip_8',['flip',['../struct_m_l_x_conv_params.html#a8b30cda15eda20f84f12db868f21d0ef',1,'MLXConvParams']]], - ['float16_9',['float16',['../namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec',1,'mlx::core']]], - ['float32_10',['float32',['../namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319',1,'mlx::core']]], - ['floating_11',['floating',['../namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a',1,'mlx::core']]], - ['forward_12',['FORWARD',['../namespacepocketfft_1_1detail.html#aecc5444a333360628be65a6f91ceb824',1,'pocketfft::detail']]], - ['forward_13',['forward',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a63e27292b327597674deede9debe1c43',1,'pocketfft::detail::ExecC2C::forward'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#a5ec66ebb2ccd079f62b068ddd1fc7bdf',1,'pocketfft::detail::ExecR2R::forward']]] + ['fence_6',['fence',['../structmlx_1_1core_1_1metal_1_1_fence.html#aeccd8f2b81418ae9fc446ae2b6e15b87',1,'mlx::core::metal::Fence::fence'],['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a876199de8da1efa9a362451029638499',1,'mlx::core::metal::DeviceStream::fence']]], + ['fence_5fmtx_7',['fence_mtx',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a6fa08cca881fc3798ae45994a11a4fcd',1,'mlx::core::metal::DeviceStream']]], + ['finite_5fmax_8',['finite_max',['../struct_limits.html#a5a3eae6d244fbea2aa7b9200001463e5',1,'Limits::finite_max'],['../struct_limits_3_01uint8__t_01_4.html#a55f48b89033e8c8683f8540ec6b23f02',1,'Limits< uint8_t >::finite_max'],['../struct_limits_3_01uint16__t_01_4.html#a9d517d8265ea1898b6b16e91b8595146',1,'Limits< uint16_t >::finite_max'],['../struct_limits_3_01uint32__t_01_4.html#a0698139f3fe440d7aa08ac5029d72235',1,'Limits< uint32_t >::finite_max'],['../struct_limits_3_01uint64__t_01_4.html#aff101ff38be5ccdbb9790aecb3069071',1,'Limits< uint64_t >::finite_max'],['../struct_limits_3_01int8__t_01_4.html#a24cdab873e0fb778393c69f1dc9ecf73',1,'Limits< int8_t >::finite_max'],['../struct_limits_3_01int16__t_01_4.html#acb2936d1cdbf347a9a014c8e036a5782',1,'Limits< int16_t >::finite_max'],['../struct_limits_3_01int32__t_01_4.html#aa9ed9f0e8c7400d8fc92e1cba9588794',1,'Limits< int32_t >::finite_max'],['../struct_limits_3_01int64__t_01_4.html#a6c7254b641878fa0fb9538814c45457a',1,'Limits< int64_t >::finite_max'],['../struct_limits_3_01half_01_4.html#aedaf0190aabf23da20510e558e2690b4',1,'Limits< half >::finite_max'],['../struct_limits_3_01float_01_4.html#a291eea590113fc1858b7f83f2e0c977d',1,'Limits< float >::finite_max'],['../struct_limits_3_01bfloat16__t_01_4.html#a6337dc35207b3f6f7185cd73eabac211',1,'Limits< bfloat16_t >::finite_max']]], + ['finite_5fmin_9',['finite_min',['../struct_limits.html#ae7469d21f2688797ca3e388d919ef05e',1,'Limits::finite_min'],['../struct_limits_3_01uint8__t_01_4.html#a60cea662971b09f78ef19f1da4760b73',1,'Limits< uint8_t >::finite_min'],['../struct_limits_3_01uint16__t_01_4.html#a1a7c029eccba4ab89743abdfaabfa7b4',1,'Limits< uint16_t >::finite_min'],['../struct_limits_3_01uint32__t_01_4.html#ad5d811fce62f44488190ff01d9e7608b',1,'Limits< uint32_t >::finite_min'],['../struct_limits_3_01uint64__t_01_4.html#a6556e7de6e0670da8f768bbc4479deae',1,'Limits< uint64_t >::finite_min'],['../struct_limits_3_01int8__t_01_4.html#a592797ce82cc2f7e27b0c477165b3452',1,'Limits< int8_t >::finite_min'],['../struct_limits_3_01int16__t_01_4.html#a158c4dbc9333939691b1637478e28e39',1,'Limits< int16_t >::finite_min'],['../struct_limits_3_01int32__t_01_4.html#ad9777dc6a84dcb9c63b598189ff0a4ff',1,'Limits< int32_t >::finite_min'],['../struct_limits_3_01int64__t_01_4.html#af80726162b44a741aae679f1fe85142a',1,'Limits< int64_t >::finite_min'],['../struct_limits_3_01half_01_4.html#a98d153748be68dbb428c50df3c0285ab',1,'Limits< half >::finite_min'],['../struct_limits_3_01float_01_4.html#afaa5162a47083447c5ac758d6dc02a8b',1,'Limits< float >::finite_min'],['../struct_limits_3_01bfloat16__t_01_4.html#ae4132a37154707cc31bbc1734636cf36',1,'Limits< bfloat16_t >::finite_min']]], + ['flip_10',['flip',['../struct_m_l_x_conv_params.html#a8b30cda15eda20f84f12db868f21d0ef',1,'MLXConvParams']]], + ['float16_11',['float16',['../namespacemlx_1_1core.html#abf228ee9d8ec48c03bb15adcc4e1f3ec',1,'mlx::core']]], + ['float32_12',['float32',['../namespacemlx_1_1core.html#a6894543b340321193dfb8052c438a319',1,'mlx::core']]], + ['floating_13',['floating',['../namespacemlx_1_1core.html#ac9f9ea13cf0661e671569d37d14a128a',1,'mlx::core']]], + ['forward_14',['FORWARD',['../namespacepocketfft_1_1detail.html#aecc5444a333360628be65a6f91ceb824',1,'pocketfft::detail']]], + ['forward_15',['forward',['../structpocketfft_1_1detail_1_1_exec_c2_c.html#a63e27292b327597674deede9debe1c43',1,'pocketfft::detail::ExecC2C::forward'],['../structpocketfft_1_1detail_1_1_exec_r2_r.html#a5ec66ebb2ccd079f62b068ddd1fc7bdf',1,'pocketfft::detail::ExecR2R::forward']]] ]; diff --git a/docs/build/html/search/variables_8.js b/docs/build/html/search/variables_8.js index ced82c0bc..e352ab11c 100644 --- a/docs/build/html/search/variables_8.js +++ b/docs/build/html/search/variables_8.js @@ -7,7 +7,7 @@ var searchData= ['in_5fstrides_4',['in_strides',['../struct_m_l_x_conv_params.html#ab25eade6573784985dbea1216f9068cf',1,'MLXConvParams']]], ['index_5',['index',['../structlooped__elem__to__loc.html#a29b154409551fea0a4ef50bf320ebc0a',1,'looped_elem_to_loc::index'],['../structmlx_1_1core_1_1_device.html#a5e345748fe318a267833ab7398b364ac',1,'mlx::core::Device::index'],['../structmlx_1_1core_1_1_stream.html#a9d0dafc1899333e1176eb2bbc0a8b626',1,'mlx::core::Stream::index']]], ['inexact_6',['inexact',['../namespacemlx_1_1core.html#a54c6fae21b7f2fea8e6f80011ef38534',1,'mlx::core']]], - ['init_7',['init',['../struct_cum_sum.html#a987f7a15eded60081b74abc103d3054b',1,'CumSum::init'],['../struct_cum_prod.html#acf2ae2daa84d477b413deea679cab9e5',1,'CumProd::init'],['../struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c',1,'CumProd< bool >::init'],['../struct_cum_max.html#a16480052a2eeb4340e546838aab59cc4',1,'CumMax::init'],['../struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9',1,'CumMin::init'],['../struct_less_than.html#abf97a6b0163048e4ba96460939dbd3a3',1,'LessThan::init']]], + ['init_7',['init',['../struct_cum_prod_3_01bool_01_4.html#ae7a8b0ba9e6898356b87b18766e76d2c',1,'CumProd< bool >::init'],['../struct_cum_max.html#a16480052a2eeb4340e546838aab59cc4',1,'CumMax::init'],['../struct_cum_min.html#a8b67f739c620d0cc194b533190990ab9',1,'CumMin::init'],['../struct_less_than.html#abf97a6b0163048e4ba96460939dbd3a3',1,'LessThan::init']]], ['inner_5flooper_8',['inner_looper',['../structlooped__elem__to__loc.html#a42c76764640618d721c48ef6b4f59189',1,'looped_elem_to_loc']]], ['inp_5fjump_5fc_9',['inp_jump_c',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a78d30e843d65d1829623afb0b607f0a5',1,'mlx::steel::ImplicitGemmConv2DParams']]], ['inp_5fjump_5fh_10',['inp_jump_h',['../structmlx_1_1steel_1_1_implicit_gemm_conv2_d_params.html#a03685a4066cdb11ffb647408e2c5b122',1,'mlx::steel::ImplicitGemmConv2DParams']]], diff --git a/docs/build/html/search/variables_e.js b/docs/build/html/search/variables_e.js index 5ca8b13c4..ed7d09cf6 100644 --- a/docs/build/html/search/variables_e.js +++ b/docs/build/html/search/variables_e.js @@ -6,5 +6,6 @@ var searchData= ['ortho_3',['ortho',['../structpocketfft_1_1detail_1_1_exec_dcst.html#aea17551a49acaca5e7808dc181d38b7f',1,'pocketfft::detail::ExecDcst']]], ['os_4',['oS',['../struct_m_l_x_conv_params.html#a19ccb9fecfccdc18b6a7f0cc43adbc6e',1,'MLXConvParams']]], ['out_5',['out',['../struct_read_writer.html#abea3b913c952c505d0ca4e529c7316ef',1,'ReadWriter']]], - ['out_5fstrides_6',['out_strides',['../struct_m_l_x_conv_params.html#a0c8b2cfc26859a2af9d39a2cfcc3aea6',1,'MLXConvParams']]] + ['out_5fstrides_6',['out_strides',['../struct_m_l_x_conv_params.html#a0c8b2cfc26859a2af9d39a2cfcc3aea6',1,'MLXConvParams']]], + ['outputs_7',['outputs',['../structmlx_1_1core_1_1metal_1_1_device_stream.html#a55a7a92c6abad369c99a5ede7a2521b9',1,'mlx::core::metal::DeviceStream']]] ]; diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 4236f0b1b..7e7aaf386 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"A Simple Example": [[484, "a-simple-example"]], "Array": [[313, null]], "Attention layer": [[5, "attention-layer"]], "Automatic Differentiation": [[478, "automatic-differentiation"]], "Automatic Vectorization": [[478, "automatic-vectorization"]], "Basics": [[482, "basics"]], "Basics of Compile": [[476, "basics-of-compile"]], "Binary Size Minimization": [[8, "binary-size-minimization"]], "Binding to Python": [[2, "binding-to-python"]], "Build Options": [[8, "id3"]], "Build Requirements": [[8, "build-requirements"]], "Build and Install": [[8, null]], "Build from source": [[8, "build-from-source"]], "Building and Binding": [[2, "building-and-binding"]], "Building with CMake": [[2, "building-with-cmake"]], "Building with setuptools": [[2, "building-with-setuptools"]], "C++ API": [[8, "c-api"]], "C++ API Reference": [[7, null]], "Common Optimizers": [[470, null]], "Compilation": [[476, null]], "Compiling Training Graphs": [[476, "compiling-training-graphs"]], "Complex Example": [[1, "complex-example"]], "Conversion to NumPy and Other Frameworks": [[481, null]], "Converting the weights": [[5, "converting-the-weights"]], "Custom Extensions in MLX": [[2, null]], "Custom Metal Kernels": [[1, null]], "Data Types": [[314, null]], "Debugging": [[476, "debugging"]], "Devices and Streams": [[315, null]], "Differences from NumPy": [[479, "differences-from-numpy"]], "Distributed Communication": [[316, null], [477, null]], "Download the code": [[2, null], [5, null]], "Encoder layer": [[5, "encoder-layer"]], "Example Speedup": [[476, "example-speedup"]], "Examples": [[7, null]], "FFT": [[318, null]], "Fast": [[317, null]], "Full model": [[5, "full-model"]], "Function Transforms": [[478, null]], "Function and Graph Transformations": [[482, "function-and-graph-transformations"]], "Functions": [[445, null]], "Further Reading": [[7, null]], "Generation": [[5, "generation"]], "Getting Started": [[477, "getting-started"]], "Grid Sample VJP": [[1, "grid-sample-vjp"]], "Implementing the CPU Back-end": [[2, "implementing-the-cpu-back-end"]], "Implementing the GPU Back-end": [[2, "implementing-the-gpu-back-end"]], "Implementing the Primitive": [[2, "implementing-the-primitive"]], "Implementing the model": [[5, "implementing-the-model"]], "In Place Updates": [[479, "in-place-updates"]], "Indexing Arrays": [[479, null]], "Initializers": [[446, null]], "Inspecting Modules": [[321, "inspecting-modules"]], "Install": [[7, null]], "Installing MPI": [[477, "installing-mpi"]], "Introducing the Example": [[2, "introducing-the-example"]], "JAX": [[481, "jax"]], "LLM inference": [[5, null]], "Layers": [[447, null]], "Lazy Evaluation": [[480, null]], "Linear Algebra": [[319, null]], "Linear Regression": [[4, null]], "Loss Functions": [[448, null]], "MLX": [[7, null]], "Metal": [[320, null]], "Metal Debugger": [[3, null]], "Metal not found": [[8, "metal-not-found"]], "Module": [[449, null]], "Multi-Layer Perceptron": [[6, null]], "Neural Networks": [[321, null]], "Only Compute What You Use": [[480, "only-compute-what-you-use"]], "Operations": [[0, null], [2, "operations"], [450, null]], "Operations and Primitives": [[2, "operations-and-primitives"]], "Optimizer": [[471, null]], "Optimizers": [[451, null]], "Parameters": [[321, "parameters"]], "Primitive Transforms": [[2, "primitive-transforms"]], "Primitives": [[2, "primitives"]], "Pure Functions": [[476, "pure-functions"]], "Putting it all together": [[5, "putting-it-all-together"]], "PyTorch": [[481, "pytorch"]], "Python API": [[8, "python-api"]], "Python API Reference": [[7, null]], "Python Installation": [[8, "python-installation"]], "Quick Start Guide": [[482, null]], "Quick Start with Neural Networks": [[321, "quick-start-with-neural-networks"]], "Random": [[473, null]], "Results": [[2, "results"]], "Saving and Loading": [[451, "saving-and-loading"]], "Saving and Loading Arrays": [[483, null]], "Schedulers": [[472, null]], "Scripts": [[2, "scripts"], [5, "scripts"]], "Serialization Formats": [[483, "id1"]], "Setting up Remote Hosts": [[477, "setting-up-remote-hosts"]], "Simple Example": [[1, "simple-example"]], "Specifying the Stream": [[485, "specifying-the-stream"]], "Supported Data Types": [[314, "id2"]], "TensorFlow": [[481, "tensorflow"]], "The Module Class": [[321, "the-module-class"]], "Training Example": [[477, "training-example"]], "Transformations with Compile": [[476, "transformations-with-compile"]], "Transforming Compute Graphs": [[480, "transforming-compute-graphs"]], "Transforms": [[474, null]], "Tree Utils": [[475, null]], "Troubleshooting": [[8, "troubleshooting"], [8, "id2"]], "Tuning All Reduce": [[477, "tuning-all-reduce"]], "Unified Memory": [[484, null]], "Updating the Parameters": [[321, "updating-the-parameters"]], "Usage": [[2, "usage"], [7, null]], "Using Shape/Strides": [[1, "using-shape-strides"]], "Using Streams": [[485, null]], "Using the Primitive": [[2, "using-the-primitive"]], "Value and Grad": [[321, "value-and-grad"]], "Weight loading and benchmarking": [[5, "weight-loading-and-benchmarking"]], "When to Evaluate": [[480, "when-to-evaluate"]], "Why Lazy Evaluation": [[480, "why-lazy-evaluation"]], "Xcode Workflow": [[3, "xcode-workflow"]], "mlx.core.Device": [[9, null]], "mlx.core.Dtype": [[10, null]], "mlx.core.DtypeCategory": [[11, null]], "mlx.core.Stream": [[312, null]], "mlx.core.abs": [[12, null]], "mlx.core.add": [[13, null]], "mlx.core.addmm": [[14, null]], "mlx.core.all": [[15, null]], "mlx.core.allclose": [[16, null]], "mlx.core.any": [[17, null]], "mlx.core.arange": [[18, null]], "mlx.core.arccos": [[19, null]], "mlx.core.arccosh": [[20, null]], "mlx.core.arcsin": [[21, null]], "mlx.core.arcsinh": [[22, null]], "mlx.core.arctan": [[23, null]], "mlx.core.arctan2": [[24, null]], "mlx.core.arctanh": [[25, null]], "mlx.core.argmax": [[26, null]], "mlx.core.argmin": [[27, null]], "mlx.core.argpartition": [[28, null]], "mlx.core.argsort": [[29, null]], "mlx.core.array": [[30, null]], "mlx.core.array.T": [[31, null]], "mlx.core.array.abs": [[32, null]], "mlx.core.array.all": [[33, null]], "mlx.core.array.any": [[34, null]], "mlx.core.array.argmax": [[35, null]], "mlx.core.array.argmin": [[36, null]], "mlx.core.array.astype": [[37, null]], "mlx.core.array.at": [[38, null]], "mlx.core.array.conj": [[39, null]], "mlx.core.array.cos": [[40, null]], "mlx.core.array.cummax": [[41, null]], "mlx.core.array.cummin": [[42, null]], "mlx.core.array.cumprod": [[43, null]], "mlx.core.array.cumsum": [[44, null]], "mlx.core.array.diag": [[45, null]], "mlx.core.array.diagonal": [[46, null]], "mlx.core.array.dtype": [[47, null]], "mlx.core.array.exp": [[48, null]], "mlx.core.array.flatten": [[49, null]], "mlx.core.array.item": [[50, null]], "mlx.core.array.itemsize": [[51, null]], "mlx.core.array.log": [[52, null]], "mlx.core.array.log10": [[53, null]], "mlx.core.array.log1p": [[54, null]], "mlx.core.array.log2": [[55, null]], "mlx.core.array.logsumexp": [[56, null]], "mlx.core.array.max": [[57, null]], "mlx.core.array.mean": [[58, null]], "mlx.core.array.min": [[59, null]], "mlx.core.array.moveaxis": [[60, null]], "mlx.core.array.nbytes": [[61, null]], "mlx.core.array.ndim": [[62, null]], "mlx.core.array.prod": [[63, null]], "mlx.core.array.reciprocal": [[64, null]], "mlx.core.array.reshape": [[65, null]], "mlx.core.array.round": [[66, null]], "mlx.core.array.rsqrt": [[67, null]], "mlx.core.array.shape": [[68, null]], "mlx.core.array.sin": [[69, null]], "mlx.core.array.size": [[70, null]], "mlx.core.array.split": [[71, null]], "mlx.core.array.sqrt": [[72, null]], "mlx.core.array.square": [[73, null]], "mlx.core.array.squeeze": [[74, null]], "mlx.core.array.std": [[75, null]], "mlx.core.array.sum": [[76, null]], "mlx.core.array.swapaxes": [[77, null]], "mlx.core.array.tolist": [[78, null]], "mlx.core.array.transpose": [[79, null]], "mlx.core.array.var": [[80, null]], "mlx.core.array.view": [[81, null]], "mlx.core.array_equal": [[82, null]], "mlx.core.as_strided": [[83, null]], "mlx.core.atleast_1d": [[84, null]], "mlx.core.atleast_2d": [[85, null]], "mlx.core.atleast_3d": [[86, null]], "mlx.core.bitwise_and": [[87, null]], "mlx.core.bitwise_or": [[88, null]], "mlx.core.bitwise_xor": [[89, null]], "mlx.core.block_masked_mm": [[90, null]], "mlx.core.broadcast_to": [[91, null]], "mlx.core.ceil": [[92, null]], "mlx.core.clip": [[93, null]], "mlx.core.compile": [[94, null]], "mlx.core.concatenate": [[95, null]], "mlx.core.conj": [[96, null]], "mlx.core.conjugate": [[97, null]], "mlx.core.conv1d": [[98, null]], "mlx.core.conv2d": [[99, null]], "mlx.core.conv3d": [[100, null]], "mlx.core.conv_general": [[101, null]], "mlx.core.conv_transpose1d": [[102, null]], "mlx.core.conv_transpose2d": [[103, null]], "mlx.core.conv_transpose3d": [[104, null]], "mlx.core.convolve": [[105, null]], "mlx.core.cos": [[106, null]], "mlx.core.cosh": [[107, null]], "mlx.core.cummax": [[108, null]], "mlx.core.cummin": [[109, null]], "mlx.core.cumprod": [[110, null]], "mlx.core.cumsum": [[111, null]], "mlx.core.custom_function": [[112, null]], "mlx.core.default_device": [[113, null]], "mlx.core.default_stream": [[114, null]], "mlx.core.degrees": [[115, null]], "mlx.core.dequantize": [[116, null]], "mlx.core.diag": [[117, null]], "mlx.core.diagonal": [[118, null]], "mlx.core.disable_compile": [[119, null]], "mlx.core.distributed.Group": [[120, null]], "mlx.core.distributed.all_gather": [[121, null]], "mlx.core.distributed.all_sum": [[122, null]], "mlx.core.distributed.init": [[123, null]], "mlx.core.distributed.is_available": [[124, null]], "mlx.core.distributed.recv": [[125, null]], "mlx.core.distributed.recv_like": [[126, null]], "mlx.core.distributed.send": [[127, null]], "mlx.core.divide": [[128, null]], "mlx.core.divmod": [[129, null]], "mlx.core.einsum": [[130, null]], "mlx.core.einsum_path": [[131, null]], "mlx.core.enable_compile": [[132, null]], "mlx.core.equal": [[133, null]], "mlx.core.erf": [[134, null]], "mlx.core.erfinv": [[135, null]], "mlx.core.eval": [[136, null]], "mlx.core.exp": [[137, null]], "mlx.core.expand_dims": [[138, null]], "mlx.core.expm1": [[139, null]], "mlx.core.eye": [[140, null]], "mlx.core.fast.affine_quantize": [[141, null]], "mlx.core.fast.layer_norm": [[142, null]], "mlx.core.fast.metal_kernel": [[143, null]], "mlx.core.fast.rms_norm": [[144, null]], "mlx.core.fast.rope": [[145, null]], "mlx.core.fast.scaled_dot_product_attention": [[146, null]], "mlx.core.fft.fft": [[147, null]], "mlx.core.fft.fft2": [[148, null]], "mlx.core.fft.fftn": [[149, null]], "mlx.core.fft.ifft": [[150, null]], "mlx.core.fft.ifft2": [[151, null]], "mlx.core.fft.ifftn": [[152, null]], "mlx.core.fft.irfft": [[153, null]], "mlx.core.fft.irfft2": [[154, null]], "mlx.core.fft.irfftn": [[155, null]], "mlx.core.fft.rfft": [[156, null]], "mlx.core.fft.rfft2": [[157, null]], "mlx.core.fft.rfftn": [[158, null]], "mlx.core.flatten": [[159, null]], "mlx.core.floor": [[160, null]], "mlx.core.floor_divide": [[161, null]], "mlx.core.full": [[162, null]], "mlx.core.gather_mm": [[163, null]], "mlx.core.gather_qmm": [[164, null]], "mlx.core.grad": [[165, null]], "mlx.core.greater": [[166, null]], "mlx.core.greater_equal": [[167, null]], "mlx.core.hadamard_transform": [[168, null]], "mlx.core.identity": [[169, null]], "mlx.core.imag": [[170, null]], "mlx.core.inner": [[171, null]], "mlx.core.isclose": [[172, null]], "mlx.core.isfinite": [[173, null]], "mlx.core.isinf": [[174, null]], "mlx.core.isnan": [[175, null]], "mlx.core.isneginf": [[176, null]], "mlx.core.isposinf": [[177, null]], "mlx.core.issubdtype": [[178, null]], "mlx.core.jvp": [[179, null]], "mlx.core.left_shift": [[180, null]], "mlx.core.less": [[181, null]], "mlx.core.less_equal": [[182, null]], "mlx.core.linalg.cholesky": [[183, null]], "mlx.core.linalg.cholesky_inv": [[184, null]], "mlx.core.linalg.cross": [[185, null]], "mlx.core.linalg.inv": [[186, null]], "mlx.core.linalg.norm": [[187, null]], "mlx.core.linalg.qr": [[188, null]], "mlx.core.linalg.svd": [[189, null]], "mlx.core.linalg.tri_inv": [[190, null]], "mlx.core.linspace": [[191, null]], "mlx.core.load": [[192, null]], "mlx.core.log": [[193, null]], "mlx.core.log10": [[194, null]], "mlx.core.log1p": [[195, null]], "mlx.core.log2": [[196, null]], "mlx.core.logaddexp": [[197, null]], "mlx.core.logical_and": [[198, null]], "mlx.core.logical_not": [[199, null]], "mlx.core.logical_or": [[200, null]], "mlx.core.logsumexp": [[201, null]], "mlx.core.matmul": [[202, null]], "mlx.core.max": [[203, null]], "mlx.core.maximum": [[204, null]], "mlx.core.mean": [[205, null]], "mlx.core.meshgrid": [[206, null]], "mlx.core.metal.clear_cache": [[207, null]], "mlx.core.metal.device_info": [[208, null]], "mlx.core.metal.get_active_memory": [[209, null]], "mlx.core.metal.get_cache_memory": [[210, null]], "mlx.core.metal.get_peak_memory": [[211, null]], "mlx.core.metal.is_available": [[212, null]], "mlx.core.metal.reset_peak_memory": [[213, null]], "mlx.core.metal.set_cache_limit": [[214, null]], "mlx.core.metal.set_memory_limit": [[215, null]], "mlx.core.metal.start_capture": [[216, null]], "mlx.core.metal.stop_capture": [[217, null]], "mlx.core.min": [[218, null]], "mlx.core.minimum": [[219, null]], "mlx.core.moveaxis": [[220, null]], "mlx.core.multiply": [[221, null]], "mlx.core.nan_to_num": [[222, null]], "mlx.core.negative": [[223, null]], "mlx.core.new_stream": [[224, null]], "mlx.core.not_equal": [[225, null]], "mlx.core.ones": [[226, null]], "mlx.core.ones_like": [[227, null]], "mlx.core.outer": [[228, null]], "mlx.core.pad": [[229, null]], "mlx.core.partition": [[230, null]], "mlx.core.power": [[231, null]], "mlx.core.prod": [[232, null]], "mlx.core.put_along_axis": [[233, null]], "mlx.core.quantize": [[234, null]], "mlx.core.quantized_matmul": [[235, null]], "mlx.core.radians": [[236, null]], "mlx.core.random.bernoulli": [[237, null]], "mlx.core.random.categorical": [[238, null]], "mlx.core.random.gumbel": [[239, null]], "mlx.core.random.key": [[240, null]], "mlx.core.random.laplace": [[241, null]], "mlx.core.random.multivariate_normal": [[242, null]], "mlx.core.random.normal": [[243, null]], "mlx.core.random.permutation": [[244, null]], "mlx.core.random.randint": [[245, null]], "mlx.core.random.seed": [[246, null]], "mlx.core.random.split": [[247, null]], "mlx.core.random.truncated_normal": [[248, null]], "mlx.core.random.uniform": [[249, null]], "mlx.core.real": [[250, null]], "mlx.core.reciprocal": [[251, null]], "mlx.core.remainder": [[252, null]], "mlx.core.repeat": [[253, null]], "mlx.core.reshape": [[254, null]], "mlx.core.right_shift": [[255, null]], "mlx.core.roll": [[256, null]], "mlx.core.round": [[257, null]], "mlx.core.rsqrt": [[258, null]], "mlx.core.save": [[259, null]], "mlx.core.save_gguf": [[260, null]], "mlx.core.save_safetensors": [[261, null]], "mlx.core.savez": [[262, null]], "mlx.core.savez_compressed": [[263, null]], "mlx.core.set_default_device": [[264, null]], "mlx.core.set_default_stream": [[265, null]], "mlx.core.sigmoid": [[266, null]], "mlx.core.sign": [[267, null]], "mlx.core.sin": [[268, null]], "mlx.core.sinh": [[269, null]], "mlx.core.softmax": [[270, null]], "mlx.core.sort": [[271, null]], "mlx.core.split": [[272, null]], "mlx.core.sqrt": [[273, null]], "mlx.core.square": [[274, null]], "mlx.core.squeeze": [[275, null]], "mlx.core.stack": [[276, null]], "mlx.core.std": [[277, null]], "mlx.core.stop_gradient": [[278, null]], "mlx.core.stream": [[279, null]], "mlx.core.subtract": [[280, null]], "mlx.core.sum": [[281, null]], "mlx.core.swapaxes": [[282, null]], "mlx.core.synchronize": [[283, null]], "mlx.core.take": [[284, null]], "mlx.core.take_along_axis": [[285, null]], "mlx.core.tan": [[286, null]], "mlx.core.tanh": [[287, null]], "mlx.core.tensordot": [[288, null]], "mlx.core.tile": [[289, null]], "mlx.core.topk": [[290, null]], "mlx.core.trace": [[291, null]], "mlx.core.transpose": [[292, null]], "mlx.core.tri": [[293, null]], "mlx.core.tril": [[294, null]], "mlx.core.triu": [[295, null]], "mlx.core.value_and_grad": [[296, null]], "mlx.core.var": [[297, null]], "mlx.core.view": [[298, null]], "mlx.core.vjp": [[299, null]], "mlx.core.vmap": [[300, null]], "mlx.core.where": [[301, null]], "mlx.core.zeros": [[302, null]], "mlx.core.zeros_like": [[303, null]], "mlx.nn.ALiBi": [[322, null]], "mlx.nn.AvgPool1d": [[323, null]], "mlx.nn.AvgPool2d": [[324, null]], "mlx.nn.BatchNorm": [[325, null]], "mlx.nn.CELU": [[326, null]], "mlx.nn.Conv1d": [[327, null]], "mlx.nn.Conv2d": [[328, null]], "mlx.nn.Conv3d": [[329, null]], "mlx.nn.ConvTranspose1d": [[330, null]], "mlx.nn.ConvTranspose2d": [[331, null]], "mlx.nn.ConvTranspose3d": [[332, null]], "mlx.nn.Dropout": [[333, null]], "mlx.nn.Dropout2d": [[334, null]], "mlx.nn.Dropout3d": [[335, null]], "mlx.nn.ELU": [[336, null]], "mlx.nn.Embedding": [[337, null]], "mlx.nn.GELU": [[338, null]], "mlx.nn.GLU": [[339, null]], "mlx.nn.GRU": [[340, null]], "mlx.nn.GroupNorm": [[341, null]], "mlx.nn.HardShrink": [[342, null]], "mlx.nn.HardTanh": [[343, null]], "mlx.nn.Hardswish": [[344, null]], "mlx.nn.InstanceNorm": [[345, null]], "mlx.nn.LSTM": [[346, null]], "mlx.nn.LayerNorm": [[347, null]], "mlx.nn.LeakyReLU": [[348, null]], "mlx.nn.Linear": [[349, null]], "mlx.nn.LogSigmoid": [[350, null]], "mlx.nn.LogSoftmax": [[351, null]], "mlx.nn.MaxPool1d": [[352, null]], "mlx.nn.MaxPool2d": [[353, null]], "mlx.nn.Mish": [[354, null]], "mlx.nn.Module.apply": [[355, null]], "mlx.nn.Module.apply_to_modules": [[356, null]], "mlx.nn.Module.children": [[357, null]], "mlx.nn.Module.eval": [[358, null]], "mlx.nn.Module.filter_and_map": [[359, null]], "mlx.nn.Module.freeze": [[360, null]], "mlx.nn.Module.leaf_modules": [[361, null]], "mlx.nn.Module.load_weights": [[362, null]], "mlx.nn.Module.modules": [[363, null]], "mlx.nn.Module.named_modules": [[364, null]], "mlx.nn.Module.parameters": [[365, null]], "mlx.nn.Module.save_weights": [[366, null]], "mlx.nn.Module.set_dtype": [[367, null]], "mlx.nn.Module.state": [[368, null]], "mlx.nn.Module.train": [[369, null]], "mlx.nn.Module.trainable_parameters": [[370, null]], "mlx.nn.Module.training": [[371, null]], "mlx.nn.Module.unfreeze": [[372, null]], "mlx.nn.Module.update": [[373, null]], "mlx.nn.Module.update_modules": [[374, null]], "mlx.nn.MultiHeadAttention": [[375, null]], "mlx.nn.PReLU": [[376, null]], "mlx.nn.QuantizedEmbedding": [[377, null]], "mlx.nn.QuantizedLinear": [[378, null]], "mlx.nn.RMSNorm": [[379, null]], "mlx.nn.RNN": [[380, null]], "mlx.nn.ReLU": [[381, null]], "mlx.nn.ReLU6": [[382, null]], "mlx.nn.RoPE": [[383, null]], "mlx.nn.SELU": [[384, null]], "mlx.nn.Sequential": [[385, null]], "mlx.nn.SiLU": [[386, null]], "mlx.nn.Sigmoid": [[387, null]], "mlx.nn.SinusoidalPositionalEncoding": [[388, null]], "mlx.nn.Softmax": [[389, null]], "mlx.nn.Softmin": [[390, null]], "mlx.nn.Softplus": [[391, null]], "mlx.nn.Softshrink": [[392, null]], "mlx.nn.Softsign": [[393, null]], "mlx.nn.Step": [[394, null]], "mlx.nn.Tanh": [[395, null]], "mlx.nn.Transformer": [[396, null]], "mlx.nn.Upsample": [[397, null]], "mlx.nn.celu": [[406, null]], "mlx.nn.elu": [[407, null]], "mlx.nn.gelu": [[408, null]], "mlx.nn.gelu_approx": [[409, null]], "mlx.nn.gelu_fast_approx": [[410, null]], "mlx.nn.glu": [[411, null]], "mlx.nn.hard_shrink": [[412, null]], "mlx.nn.hard_tanh": [[413, null]], "mlx.nn.hardswish": [[414, null]], "mlx.nn.init.constant": [[398, null]], "mlx.nn.init.glorot_normal": [[399, null]], "mlx.nn.init.glorot_uniform": [[400, null]], "mlx.nn.init.he_normal": [[401, null]], "mlx.nn.init.he_uniform": [[402, null]], "mlx.nn.init.identity": [[403, null]], "mlx.nn.init.normal": [[404, null]], "mlx.nn.init.uniform": [[405, null]], "mlx.nn.leaky_relu": [[415, null]], "mlx.nn.log_sigmoid": [[416, null]], "mlx.nn.log_softmax": [[417, null]], "mlx.nn.losses.binary_cross_entropy": [[418, null]], "mlx.nn.losses.cosine_similarity_loss": [[419, null]], "mlx.nn.losses.cross_entropy": [[420, null]], "mlx.nn.losses.gaussian_nll_loss": [[421, null]], "mlx.nn.losses.hinge_loss": [[422, null]], "mlx.nn.losses.huber_loss": [[423, null]], "mlx.nn.losses.kl_div_loss": [[424, null]], "mlx.nn.losses.l1_loss": [[425, null]], "mlx.nn.losses.log_cosh_loss": [[426, null]], "mlx.nn.losses.margin_ranking_loss": [[427, null]], "mlx.nn.losses.mse_loss": [[428, null]], "mlx.nn.losses.nll_loss": [[429, null]], "mlx.nn.losses.smooth_l1_loss": [[430, null]], "mlx.nn.losses.triplet_loss": [[431, null]], "mlx.nn.mish": [[432, null]], "mlx.nn.prelu": [[433, null]], "mlx.nn.quantize": [[304, null]], "mlx.nn.relu": [[434, null]], "mlx.nn.relu6": [[435, null]], "mlx.nn.selu": [[436, null]], "mlx.nn.sigmoid": [[437, null]], "mlx.nn.silu": [[438, null]], "mlx.nn.softmax": [[439, null]], "mlx.nn.softmin": [[440, null]], "mlx.nn.softplus": [[441, null]], "mlx.nn.softshrink": [[442, null]], "mlx.nn.step": [[443, null]], "mlx.nn.tanh": [[444, null]], "mlx.nn.value_and_grad": [[305, null]], "mlx.optimizers.AdaDelta": [[452, null]], "mlx.optimizers.Adafactor": [[453, null]], "mlx.optimizers.Adagrad": [[454, null]], "mlx.optimizers.Adam": [[455, null]], "mlx.optimizers.AdamW": [[456, null]], "mlx.optimizers.Adamax": [[457, null]], "mlx.optimizers.Lion": [[458, null]], "mlx.optimizers.Optimizer.apply_gradients": [[459, null]], "mlx.optimizers.Optimizer.init": [[460, null]], "mlx.optimizers.Optimizer.state": [[461, null]], "mlx.optimizers.Optimizer.update": [[462, null]], "mlx.optimizers.RMSprop": [[463, null]], "mlx.optimizers.SGD": [[464, null]], "mlx.optimizers.clip_grad_norm": [[306, null]], "mlx.optimizers.cosine_decay": [[465, null]], "mlx.optimizers.exponential_decay": [[466, null]], "mlx.optimizers.join_schedules": [[467, null]], "mlx.optimizers.linear_schedule": [[468, null]], "mlx.optimizers.step_decay": [[469, null]], "mlx.utils.tree_flatten": [[307, null]], "mlx.utils.tree_map": [[308, null]], "mlx.utils.tree_map_with_path": [[309, null]], "mlx.utils.tree_reduce": [[310, null]], "mlx.utils.tree_unflatten": [[311, null]], "x86 Shell": [[8, "x86-shell"]]}, "docnames": ["cpp/ops", "dev/custom_metal_kernels", "dev/extensions", "dev/metal_debugger", "examples/linear_regression", "examples/llama-inference", "examples/mlp", "index", "install", "python/_autosummary/mlx.core.Device", "python/_autosummary/mlx.core.Dtype", "python/_autosummary/mlx.core.DtypeCategory", "python/_autosummary/mlx.core.abs", "python/_autosummary/mlx.core.add", "python/_autosummary/mlx.core.addmm", "python/_autosummary/mlx.core.all", "python/_autosummary/mlx.core.allclose", "python/_autosummary/mlx.core.any", "python/_autosummary/mlx.core.arange", "python/_autosummary/mlx.core.arccos", "python/_autosummary/mlx.core.arccosh", "python/_autosummary/mlx.core.arcsin", "python/_autosummary/mlx.core.arcsinh", "python/_autosummary/mlx.core.arctan", "python/_autosummary/mlx.core.arctan2", "python/_autosummary/mlx.core.arctanh", "python/_autosummary/mlx.core.argmax", "python/_autosummary/mlx.core.argmin", "python/_autosummary/mlx.core.argpartition", "python/_autosummary/mlx.core.argsort", "python/_autosummary/mlx.core.array", "python/_autosummary/mlx.core.array.T", "python/_autosummary/mlx.core.array.abs", "python/_autosummary/mlx.core.array.all", "python/_autosummary/mlx.core.array.any", "python/_autosummary/mlx.core.array.argmax", "python/_autosummary/mlx.core.array.argmin", "python/_autosummary/mlx.core.array.astype", "python/_autosummary/mlx.core.array.at", "python/_autosummary/mlx.core.array.conj", "python/_autosummary/mlx.core.array.cos", "python/_autosummary/mlx.core.array.cummax", "python/_autosummary/mlx.core.array.cummin", "python/_autosummary/mlx.core.array.cumprod", "python/_autosummary/mlx.core.array.cumsum", "python/_autosummary/mlx.core.array.diag", "python/_autosummary/mlx.core.array.diagonal", "python/_autosummary/mlx.core.array.dtype", "python/_autosummary/mlx.core.array.exp", "python/_autosummary/mlx.core.array.flatten", "python/_autosummary/mlx.core.array.item", "python/_autosummary/mlx.core.array.itemsize", "python/_autosummary/mlx.core.array.log", "python/_autosummary/mlx.core.array.log10", "python/_autosummary/mlx.core.array.log1p", "python/_autosummary/mlx.core.array.log2", "python/_autosummary/mlx.core.array.logsumexp", "python/_autosummary/mlx.core.array.max", "python/_autosummary/mlx.core.array.mean", "python/_autosummary/mlx.core.array.min", "python/_autosummary/mlx.core.array.moveaxis", "python/_autosummary/mlx.core.array.nbytes", "python/_autosummary/mlx.core.array.ndim", "python/_autosummary/mlx.core.array.prod", "python/_autosummary/mlx.core.array.reciprocal", "python/_autosummary/mlx.core.array.reshape", "python/_autosummary/mlx.core.array.round", "python/_autosummary/mlx.core.array.rsqrt", "python/_autosummary/mlx.core.array.shape", "python/_autosummary/mlx.core.array.sin", "python/_autosummary/mlx.core.array.size", "python/_autosummary/mlx.core.array.split", "python/_autosummary/mlx.core.array.sqrt", "python/_autosummary/mlx.core.array.square", "python/_autosummary/mlx.core.array.squeeze", "python/_autosummary/mlx.core.array.std", "python/_autosummary/mlx.core.array.sum", "python/_autosummary/mlx.core.array.swapaxes", "python/_autosummary/mlx.core.array.tolist", "python/_autosummary/mlx.core.array.transpose", "python/_autosummary/mlx.core.array.var", "python/_autosummary/mlx.core.array.view", "python/_autosummary/mlx.core.array_equal", "python/_autosummary/mlx.core.as_strided", "python/_autosummary/mlx.core.atleast_1d", "python/_autosummary/mlx.core.atleast_2d", "python/_autosummary/mlx.core.atleast_3d", "python/_autosummary/mlx.core.bitwise_and", "python/_autosummary/mlx.core.bitwise_or", "python/_autosummary/mlx.core.bitwise_xor", "python/_autosummary/mlx.core.block_masked_mm", "python/_autosummary/mlx.core.broadcast_to", "python/_autosummary/mlx.core.ceil", "python/_autosummary/mlx.core.clip", "python/_autosummary/mlx.core.compile", "python/_autosummary/mlx.core.concatenate", "python/_autosummary/mlx.core.conj", "python/_autosummary/mlx.core.conjugate", "python/_autosummary/mlx.core.conv1d", "python/_autosummary/mlx.core.conv2d", "python/_autosummary/mlx.core.conv3d", "python/_autosummary/mlx.core.conv_general", "python/_autosummary/mlx.core.conv_transpose1d", "python/_autosummary/mlx.core.conv_transpose2d", "python/_autosummary/mlx.core.conv_transpose3d", "python/_autosummary/mlx.core.convolve", "python/_autosummary/mlx.core.cos", "python/_autosummary/mlx.core.cosh", "python/_autosummary/mlx.core.cummax", "python/_autosummary/mlx.core.cummin", "python/_autosummary/mlx.core.cumprod", "python/_autosummary/mlx.core.cumsum", "python/_autosummary/mlx.core.custom_function", "python/_autosummary/mlx.core.default_device", "python/_autosummary/mlx.core.default_stream", "python/_autosummary/mlx.core.degrees", "python/_autosummary/mlx.core.dequantize", "python/_autosummary/mlx.core.diag", "python/_autosummary/mlx.core.diagonal", "python/_autosummary/mlx.core.disable_compile", "python/_autosummary/mlx.core.distributed.Group", "python/_autosummary/mlx.core.distributed.all_gather", "python/_autosummary/mlx.core.distributed.all_sum", "python/_autosummary/mlx.core.distributed.init", "python/_autosummary/mlx.core.distributed.is_available", "python/_autosummary/mlx.core.distributed.recv", "python/_autosummary/mlx.core.distributed.recv_like", "python/_autosummary/mlx.core.distributed.send", "python/_autosummary/mlx.core.divide", "python/_autosummary/mlx.core.divmod", "python/_autosummary/mlx.core.einsum", "python/_autosummary/mlx.core.einsum_path", "python/_autosummary/mlx.core.enable_compile", "python/_autosummary/mlx.core.equal", "python/_autosummary/mlx.core.erf", "python/_autosummary/mlx.core.erfinv", "python/_autosummary/mlx.core.eval", "python/_autosummary/mlx.core.exp", "python/_autosummary/mlx.core.expand_dims", "python/_autosummary/mlx.core.expm1", "python/_autosummary/mlx.core.eye", "python/_autosummary/mlx.core.fast.affine_quantize", "python/_autosummary/mlx.core.fast.layer_norm", "python/_autosummary/mlx.core.fast.metal_kernel", "python/_autosummary/mlx.core.fast.rms_norm", "python/_autosummary/mlx.core.fast.rope", "python/_autosummary/mlx.core.fast.scaled_dot_product_attention", "python/_autosummary/mlx.core.fft.fft", "python/_autosummary/mlx.core.fft.fft2", "python/_autosummary/mlx.core.fft.fftn", "python/_autosummary/mlx.core.fft.ifft", "python/_autosummary/mlx.core.fft.ifft2", "python/_autosummary/mlx.core.fft.ifftn", "python/_autosummary/mlx.core.fft.irfft", "python/_autosummary/mlx.core.fft.irfft2", "python/_autosummary/mlx.core.fft.irfftn", "python/_autosummary/mlx.core.fft.rfft", "python/_autosummary/mlx.core.fft.rfft2", "python/_autosummary/mlx.core.fft.rfftn", "python/_autosummary/mlx.core.flatten", "python/_autosummary/mlx.core.floor", "python/_autosummary/mlx.core.floor_divide", "python/_autosummary/mlx.core.full", "python/_autosummary/mlx.core.gather_mm", "python/_autosummary/mlx.core.gather_qmm", "python/_autosummary/mlx.core.grad", "python/_autosummary/mlx.core.greater", "python/_autosummary/mlx.core.greater_equal", "python/_autosummary/mlx.core.hadamard_transform", "python/_autosummary/mlx.core.identity", "python/_autosummary/mlx.core.imag", "python/_autosummary/mlx.core.inner", "python/_autosummary/mlx.core.isclose", "python/_autosummary/mlx.core.isfinite", "python/_autosummary/mlx.core.isinf", "python/_autosummary/mlx.core.isnan", "python/_autosummary/mlx.core.isneginf", "python/_autosummary/mlx.core.isposinf", "python/_autosummary/mlx.core.issubdtype", "python/_autosummary/mlx.core.jvp", "python/_autosummary/mlx.core.left_shift", "python/_autosummary/mlx.core.less", "python/_autosummary/mlx.core.less_equal", "python/_autosummary/mlx.core.linalg.cholesky", "python/_autosummary/mlx.core.linalg.cholesky_inv", "python/_autosummary/mlx.core.linalg.cross", "python/_autosummary/mlx.core.linalg.inv", "python/_autosummary/mlx.core.linalg.norm", "python/_autosummary/mlx.core.linalg.qr", "python/_autosummary/mlx.core.linalg.svd", "python/_autosummary/mlx.core.linalg.tri_inv", "python/_autosummary/mlx.core.linspace", "python/_autosummary/mlx.core.load", "python/_autosummary/mlx.core.log", "python/_autosummary/mlx.core.log10", "python/_autosummary/mlx.core.log1p", "python/_autosummary/mlx.core.log2", "python/_autosummary/mlx.core.logaddexp", "python/_autosummary/mlx.core.logical_and", "python/_autosummary/mlx.core.logical_not", "python/_autosummary/mlx.core.logical_or", "python/_autosummary/mlx.core.logsumexp", "python/_autosummary/mlx.core.matmul", "python/_autosummary/mlx.core.max", "python/_autosummary/mlx.core.maximum", "python/_autosummary/mlx.core.mean", "python/_autosummary/mlx.core.meshgrid", "python/_autosummary/mlx.core.metal.clear_cache", "python/_autosummary/mlx.core.metal.device_info", "python/_autosummary/mlx.core.metal.get_active_memory", "python/_autosummary/mlx.core.metal.get_cache_memory", "python/_autosummary/mlx.core.metal.get_peak_memory", "python/_autosummary/mlx.core.metal.is_available", "python/_autosummary/mlx.core.metal.reset_peak_memory", "python/_autosummary/mlx.core.metal.set_cache_limit", "python/_autosummary/mlx.core.metal.set_memory_limit", "python/_autosummary/mlx.core.metal.start_capture", "python/_autosummary/mlx.core.metal.stop_capture", "python/_autosummary/mlx.core.min", "python/_autosummary/mlx.core.minimum", "python/_autosummary/mlx.core.moveaxis", "python/_autosummary/mlx.core.multiply", "python/_autosummary/mlx.core.nan_to_num", "python/_autosummary/mlx.core.negative", "python/_autosummary/mlx.core.new_stream", "python/_autosummary/mlx.core.not_equal", "python/_autosummary/mlx.core.ones", "python/_autosummary/mlx.core.ones_like", "python/_autosummary/mlx.core.outer", "python/_autosummary/mlx.core.pad", "python/_autosummary/mlx.core.partition", "python/_autosummary/mlx.core.power", "python/_autosummary/mlx.core.prod", "python/_autosummary/mlx.core.put_along_axis", "python/_autosummary/mlx.core.quantize", "python/_autosummary/mlx.core.quantized_matmul", "python/_autosummary/mlx.core.radians", "python/_autosummary/mlx.core.random.bernoulli", "python/_autosummary/mlx.core.random.categorical", "python/_autosummary/mlx.core.random.gumbel", "python/_autosummary/mlx.core.random.key", "python/_autosummary/mlx.core.random.laplace", "python/_autosummary/mlx.core.random.multivariate_normal", "python/_autosummary/mlx.core.random.normal", "python/_autosummary/mlx.core.random.permutation", "python/_autosummary/mlx.core.random.randint", "python/_autosummary/mlx.core.random.seed", "python/_autosummary/mlx.core.random.split", "python/_autosummary/mlx.core.random.truncated_normal", "python/_autosummary/mlx.core.random.uniform", "python/_autosummary/mlx.core.real", "python/_autosummary/mlx.core.reciprocal", "python/_autosummary/mlx.core.remainder", "python/_autosummary/mlx.core.repeat", "python/_autosummary/mlx.core.reshape", "python/_autosummary/mlx.core.right_shift", "python/_autosummary/mlx.core.roll", "python/_autosummary/mlx.core.round", "python/_autosummary/mlx.core.rsqrt", "python/_autosummary/mlx.core.save", "python/_autosummary/mlx.core.save_gguf", "python/_autosummary/mlx.core.save_safetensors", "python/_autosummary/mlx.core.savez", "python/_autosummary/mlx.core.savez_compressed", "python/_autosummary/mlx.core.set_default_device", "python/_autosummary/mlx.core.set_default_stream", "python/_autosummary/mlx.core.sigmoid", "python/_autosummary/mlx.core.sign", "python/_autosummary/mlx.core.sin", "python/_autosummary/mlx.core.sinh", "python/_autosummary/mlx.core.softmax", "python/_autosummary/mlx.core.sort", "python/_autosummary/mlx.core.split", "python/_autosummary/mlx.core.sqrt", "python/_autosummary/mlx.core.square", "python/_autosummary/mlx.core.squeeze", "python/_autosummary/mlx.core.stack", "python/_autosummary/mlx.core.std", "python/_autosummary/mlx.core.stop_gradient", "python/_autosummary/mlx.core.stream", "python/_autosummary/mlx.core.subtract", "python/_autosummary/mlx.core.sum", "python/_autosummary/mlx.core.swapaxes", "python/_autosummary/mlx.core.synchronize", "python/_autosummary/mlx.core.take", "python/_autosummary/mlx.core.take_along_axis", "python/_autosummary/mlx.core.tan", "python/_autosummary/mlx.core.tanh", "python/_autosummary/mlx.core.tensordot", "python/_autosummary/mlx.core.tile", "python/_autosummary/mlx.core.topk", "python/_autosummary/mlx.core.trace", "python/_autosummary/mlx.core.transpose", "python/_autosummary/mlx.core.tri", "python/_autosummary/mlx.core.tril", "python/_autosummary/mlx.core.triu", "python/_autosummary/mlx.core.value_and_grad", "python/_autosummary/mlx.core.var", "python/_autosummary/mlx.core.view", "python/_autosummary/mlx.core.vjp", "python/_autosummary/mlx.core.vmap", "python/_autosummary/mlx.core.where", "python/_autosummary/mlx.core.zeros", "python/_autosummary/mlx.core.zeros_like", "python/_autosummary/mlx.nn.quantize", "python/_autosummary/mlx.nn.value_and_grad", "python/_autosummary/mlx.optimizers.clip_grad_norm", "python/_autosummary/mlx.utils.tree_flatten", "python/_autosummary/mlx.utils.tree_map", "python/_autosummary/mlx.utils.tree_map_with_path", "python/_autosummary/mlx.utils.tree_reduce", "python/_autosummary/mlx.utils.tree_unflatten", "python/_autosummary/stream_class", "python/array", "python/data_types", "python/devices_and_streams", "python/distributed", "python/fast", "python/fft", "python/linalg", "python/metal", "python/nn", "python/nn/_autosummary/mlx.nn.ALiBi", "python/nn/_autosummary/mlx.nn.AvgPool1d", "python/nn/_autosummary/mlx.nn.AvgPool2d", "python/nn/_autosummary/mlx.nn.BatchNorm", "python/nn/_autosummary/mlx.nn.CELU", "python/nn/_autosummary/mlx.nn.Conv1d", "python/nn/_autosummary/mlx.nn.Conv2d", "python/nn/_autosummary/mlx.nn.Conv3d", "python/nn/_autosummary/mlx.nn.ConvTranspose1d", "python/nn/_autosummary/mlx.nn.ConvTranspose2d", "python/nn/_autosummary/mlx.nn.ConvTranspose3d", "python/nn/_autosummary/mlx.nn.Dropout", "python/nn/_autosummary/mlx.nn.Dropout2d", "python/nn/_autosummary/mlx.nn.Dropout3d", "python/nn/_autosummary/mlx.nn.ELU", "python/nn/_autosummary/mlx.nn.Embedding", "python/nn/_autosummary/mlx.nn.GELU", "python/nn/_autosummary/mlx.nn.GLU", "python/nn/_autosummary/mlx.nn.GRU", "python/nn/_autosummary/mlx.nn.GroupNorm", "python/nn/_autosummary/mlx.nn.HardShrink", "python/nn/_autosummary/mlx.nn.HardTanh", "python/nn/_autosummary/mlx.nn.Hardswish", "python/nn/_autosummary/mlx.nn.InstanceNorm", "python/nn/_autosummary/mlx.nn.LSTM", "python/nn/_autosummary/mlx.nn.LayerNorm", "python/nn/_autosummary/mlx.nn.LeakyReLU", "python/nn/_autosummary/mlx.nn.Linear", "python/nn/_autosummary/mlx.nn.LogSigmoid", "python/nn/_autosummary/mlx.nn.LogSoftmax", "python/nn/_autosummary/mlx.nn.MaxPool1d", "python/nn/_autosummary/mlx.nn.MaxPool2d", "python/nn/_autosummary/mlx.nn.Mish", "python/nn/_autosummary/mlx.nn.Module.apply", "python/nn/_autosummary/mlx.nn.Module.apply_to_modules", "python/nn/_autosummary/mlx.nn.Module.children", "python/nn/_autosummary/mlx.nn.Module.eval", "python/nn/_autosummary/mlx.nn.Module.filter_and_map", "python/nn/_autosummary/mlx.nn.Module.freeze", "python/nn/_autosummary/mlx.nn.Module.leaf_modules", "python/nn/_autosummary/mlx.nn.Module.load_weights", "python/nn/_autosummary/mlx.nn.Module.modules", "python/nn/_autosummary/mlx.nn.Module.named_modules", "python/nn/_autosummary/mlx.nn.Module.parameters", "python/nn/_autosummary/mlx.nn.Module.save_weights", "python/nn/_autosummary/mlx.nn.Module.set_dtype", "python/nn/_autosummary/mlx.nn.Module.state", "python/nn/_autosummary/mlx.nn.Module.train", "python/nn/_autosummary/mlx.nn.Module.trainable_parameters", "python/nn/_autosummary/mlx.nn.Module.training", "python/nn/_autosummary/mlx.nn.Module.unfreeze", "python/nn/_autosummary/mlx.nn.Module.update", "python/nn/_autosummary/mlx.nn.Module.update_modules", "python/nn/_autosummary/mlx.nn.MultiHeadAttention", "python/nn/_autosummary/mlx.nn.PReLU", "python/nn/_autosummary/mlx.nn.QuantizedEmbedding", "python/nn/_autosummary/mlx.nn.QuantizedLinear", "python/nn/_autosummary/mlx.nn.RMSNorm", "python/nn/_autosummary/mlx.nn.RNN", "python/nn/_autosummary/mlx.nn.ReLU", "python/nn/_autosummary/mlx.nn.ReLU6", "python/nn/_autosummary/mlx.nn.RoPE", "python/nn/_autosummary/mlx.nn.SELU", "python/nn/_autosummary/mlx.nn.Sequential", "python/nn/_autosummary/mlx.nn.SiLU", "python/nn/_autosummary/mlx.nn.Sigmoid", "python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding", "python/nn/_autosummary/mlx.nn.Softmax", "python/nn/_autosummary/mlx.nn.Softmin", "python/nn/_autosummary/mlx.nn.Softplus", "python/nn/_autosummary/mlx.nn.Softshrink", "python/nn/_autosummary/mlx.nn.Softsign", "python/nn/_autosummary/mlx.nn.Step", "python/nn/_autosummary/mlx.nn.Tanh", "python/nn/_autosummary/mlx.nn.Transformer", "python/nn/_autosummary/mlx.nn.Upsample", "python/nn/_autosummary/mlx.nn.init.constant", "python/nn/_autosummary/mlx.nn.init.glorot_normal", "python/nn/_autosummary/mlx.nn.init.glorot_uniform", "python/nn/_autosummary/mlx.nn.init.he_normal", "python/nn/_autosummary/mlx.nn.init.he_uniform", "python/nn/_autosummary/mlx.nn.init.identity", "python/nn/_autosummary/mlx.nn.init.normal", "python/nn/_autosummary/mlx.nn.init.uniform", "python/nn/_autosummary_functions/mlx.nn.celu", "python/nn/_autosummary_functions/mlx.nn.elu", "python/nn/_autosummary_functions/mlx.nn.gelu", "python/nn/_autosummary_functions/mlx.nn.gelu_approx", "python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx", "python/nn/_autosummary_functions/mlx.nn.glu", "python/nn/_autosummary_functions/mlx.nn.hard_shrink", "python/nn/_autosummary_functions/mlx.nn.hard_tanh", "python/nn/_autosummary_functions/mlx.nn.hardswish", "python/nn/_autosummary_functions/mlx.nn.leaky_relu", "python/nn/_autosummary_functions/mlx.nn.log_sigmoid", "python/nn/_autosummary_functions/mlx.nn.log_softmax", "python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy", "python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss", "python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy", "python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss", "python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss", "python/nn/_autosummary_functions/mlx.nn.losses.huber_loss", "python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss", "python/nn/_autosummary_functions/mlx.nn.losses.l1_loss", "python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss", "python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss", "python/nn/_autosummary_functions/mlx.nn.losses.mse_loss", "python/nn/_autosummary_functions/mlx.nn.losses.nll_loss", "python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss", "python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss", "python/nn/_autosummary_functions/mlx.nn.mish", "python/nn/_autosummary_functions/mlx.nn.prelu", "python/nn/_autosummary_functions/mlx.nn.relu", "python/nn/_autosummary_functions/mlx.nn.relu6", "python/nn/_autosummary_functions/mlx.nn.selu", "python/nn/_autosummary_functions/mlx.nn.sigmoid", "python/nn/_autosummary_functions/mlx.nn.silu", "python/nn/_autosummary_functions/mlx.nn.softmax", "python/nn/_autosummary_functions/mlx.nn.softmin", "python/nn/_autosummary_functions/mlx.nn.softplus", "python/nn/_autosummary_functions/mlx.nn.softshrink", "python/nn/_autosummary_functions/mlx.nn.step", "python/nn/_autosummary_functions/mlx.nn.tanh", "python/nn/functions", "python/nn/init", "python/nn/layers", "python/nn/losses", "python/nn/module", "python/ops", "python/optimizers", "python/optimizers/_autosummary/mlx.optimizers.AdaDelta", "python/optimizers/_autosummary/mlx.optimizers.Adafactor", "python/optimizers/_autosummary/mlx.optimizers.Adagrad", "python/optimizers/_autosummary/mlx.optimizers.Adam", "python/optimizers/_autosummary/mlx.optimizers.AdamW", "python/optimizers/_autosummary/mlx.optimizers.Adamax", "python/optimizers/_autosummary/mlx.optimizers.Lion", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.init", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.state", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.update", "python/optimizers/_autosummary/mlx.optimizers.RMSprop", "python/optimizers/_autosummary/mlx.optimizers.SGD", "python/optimizers/_autosummary/mlx.optimizers.cosine_decay", "python/optimizers/_autosummary/mlx.optimizers.exponential_decay", "python/optimizers/_autosummary/mlx.optimizers.join_schedules", "python/optimizers/_autosummary/mlx.optimizers.linear_schedule", "python/optimizers/_autosummary/mlx.optimizers.step_decay", "python/optimizers/common_optimizers", "python/optimizers/optimizer", "python/optimizers/schedulers", "python/random", "python/transforms", "python/tree_utils", "usage/compile", "usage/distributed", "usage/function_transforms", "usage/indexing", "usage/lazy_evaluation", "usage/numpy", "usage/quick_start", "usage/saving_and_loading", "usage/unified_memory", "usage/using_streams"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["cpp/ops.rst", "dev/custom_metal_kernels.rst", "dev/extensions.rst", "dev/metal_debugger.rst", "examples/linear_regression.rst", "examples/llama-inference.rst", "examples/mlp.rst", "index.rst", "install.rst", "python/_autosummary/mlx.core.Device.rst", "python/_autosummary/mlx.core.Dtype.rst", "python/_autosummary/mlx.core.DtypeCategory.rst", "python/_autosummary/mlx.core.abs.rst", "python/_autosummary/mlx.core.add.rst", "python/_autosummary/mlx.core.addmm.rst", "python/_autosummary/mlx.core.all.rst", "python/_autosummary/mlx.core.allclose.rst", "python/_autosummary/mlx.core.any.rst", "python/_autosummary/mlx.core.arange.rst", "python/_autosummary/mlx.core.arccos.rst", "python/_autosummary/mlx.core.arccosh.rst", "python/_autosummary/mlx.core.arcsin.rst", "python/_autosummary/mlx.core.arcsinh.rst", "python/_autosummary/mlx.core.arctan.rst", "python/_autosummary/mlx.core.arctan2.rst", "python/_autosummary/mlx.core.arctanh.rst", "python/_autosummary/mlx.core.argmax.rst", "python/_autosummary/mlx.core.argmin.rst", "python/_autosummary/mlx.core.argpartition.rst", "python/_autosummary/mlx.core.argsort.rst", "python/_autosummary/mlx.core.array.rst", "python/_autosummary/mlx.core.array.T.rst", "python/_autosummary/mlx.core.array.abs.rst", "python/_autosummary/mlx.core.array.all.rst", "python/_autosummary/mlx.core.array.any.rst", "python/_autosummary/mlx.core.array.argmax.rst", "python/_autosummary/mlx.core.array.argmin.rst", "python/_autosummary/mlx.core.array.astype.rst", "python/_autosummary/mlx.core.array.at.rst", "python/_autosummary/mlx.core.array.conj.rst", "python/_autosummary/mlx.core.array.cos.rst", "python/_autosummary/mlx.core.array.cummax.rst", "python/_autosummary/mlx.core.array.cummin.rst", "python/_autosummary/mlx.core.array.cumprod.rst", "python/_autosummary/mlx.core.array.cumsum.rst", "python/_autosummary/mlx.core.array.diag.rst", "python/_autosummary/mlx.core.array.diagonal.rst", "python/_autosummary/mlx.core.array.dtype.rst", "python/_autosummary/mlx.core.array.exp.rst", "python/_autosummary/mlx.core.array.flatten.rst", "python/_autosummary/mlx.core.array.item.rst", "python/_autosummary/mlx.core.array.itemsize.rst", "python/_autosummary/mlx.core.array.log.rst", "python/_autosummary/mlx.core.array.log10.rst", "python/_autosummary/mlx.core.array.log1p.rst", "python/_autosummary/mlx.core.array.log2.rst", "python/_autosummary/mlx.core.array.logsumexp.rst", "python/_autosummary/mlx.core.array.max.rst", "python/_autosummary/mlx.core.array.mean.rst", "python/_autosummary/mlx.core.array.min.rst", "python/_autosummary/mlx.core.array.moveaxis.rst", "python/_autosummary/mlx.core.array.nbytes.rst", "python/_autosummary/mlx.core.array.ndim.rst", "python/_autosummary/mlx.core.array.prod.rst", "python/_autosummary/mlx.core.array.reciprocal.rst", "python/_autosummary/mlx.core.array.reshape.rst", "python/_autosummary/mlx.core.array.round.rst", "python/_autosummary/mlx.core.array.rsqrt.rst", "python/_autosummary/mlx.core.array.shape.rst", "python/_autosummary/mlx.core.array.sin.rst", "python/_autosummary/mlx.core.array.size.rst", "python/_autosummary/mlx.core.array.split.rst", "python/_autosummary/mlx.core.array.sqrt.rst", "python/_autosummary/mlx.core.array.square.rst", "python/_autosummary/mlx.core.array.squeeze.rst", "python/_autosummary/mlx.core.array.std.rst", "python/_autosummary/mlx.core.array.sum.rst", "python/_autosummary/mlx.core.array.swapaxes.rst", "python/_autosummary/mlx.core.array.tolist.rst", "python/_autosummary/mlx.core.array.transpose.rst", "python/_autosummary/mlx.core.array.var.rst", "python/_autosummary/mlx.core.array.view.rst", "python/_autosummary/mlx.core.array_equal.rst", "python/_autosummary/mlx.core.as_strided.rst", "python/_autosummary/mlx.core.atleast_1d.rst", "python/_autosummary/mlx.core.atleast_2d.rst", "python/_autosummary/mlx.core.atleast_3d.rst", "python/_autosummary/mlx.core.bitwise_and.rst", "python/_autosummary/mlx.core.bitwise_or.rst", "python/_autosummary/mlx.core.bitwise_xor.rst", "python/_autosummary/mlx.core.block_masked_mm.rst", "python/_autosummary/mlx.core.broadcast_to.rst", "python/_autosummary/mlx.core.ceil.rst", "python/_autosummary/mlx.core.clip.rst", "python/_autosummary/mlx.core.compile.rst", "python/_autosummary/mlx.core.concatenate.rst", "python/_autosummary/mlx.core.conj.rst", "python/_autosummary/mlx.core.conjugate.rst", "python/_autosummary/mlx.core.conv1d.rst", "python/_autosummary/mlx.core.conv2d.rst", "python/_autosummary/mlx.core.conv3d.rst", "python/_autosummary/mlx.core.conv_general.rst", "python/_autosummary/mlx.core.conv_transpose1d.rst", "python/_autosummary/mlx.core.conv_transpose2d.rst", "python/_autosummary/mlx.core.conv_transpose3d.rst", "python/_autosummary/mlx.core.convolve.rst", "python/_autosummary/mlx.core.cos.rst", "python/_autosummary/mlx.core.cosh.rst", "python/_autosummary/mlx.core.cummax.rst", "python/_autosummary/mlx.core.cummin.rst", "python/_autosummary/mlx.core.cumprod.rst", "python/_autosummary/mlx.core.cumsum.rst", "python/_autosummary/mlx.core.custom_function.rst", "python/_autosummary/mlx.core.default_device.rst", "python/_autosummary/mlx.core.default_stream.rst", "python/_autosummary/mlx.core.degrees.rst", "python/_autosummary/mlx.core.dequantize.rst", "python/_autosummary/mlx.core.diag.rst", "python/_autosummary/mlx.core.diagonal.rst", "python/_autosummary/mlx.core.disable_compile.rst", "python/_autosummary/mlx.core.distributed.Group.rst", "python/_autosummary/mlx.core.distributed.all_gather.rst", "python/_autosummary/mlx.core.distributed.all_sum.rst", "python/_autosummary/mlx.core.distributed.init.rst", "python/_autosummary/mlx.core.distributed.is_available.rst", "python/_autosummary/mlx.core.distributed.recv.rst", "python/_autosummary/mlx.core.distributed.recv_like.rst", "python/_autosummary/mlx.core.distributed.send.rst", "python/_autosummary/mlx.core.divide.rst", "python/_autosummary/mlx.core.divmod.rst", "python/_autosummary/mlx.core.einsum.rst", "python/_autosummary/mlx.core.einsum_path.rst", "python/_autosummary/mlx.core.enable_compile.rst", "python/_autosummary/mlx.core.equal.rst", "python/_autosummary/mlx.core.erf.rst", "python/_autosummary/mlx.core.erfinv.rst", "python/_autosummary/mlx.core.eval.rst", "python/_autosummary/mlx.core.exp.rst", "python/_autosummary/mlx.core.expand_dims.rst", "python/_autosummary/mlx.core.expm1.rst", "python/_autosummary/mlx.core.eye.rst", "python/_autosummary/mlx.core.fast.affine_quantize.rst", "python/_autosummary/mlx.core.fast.layer_norm.rst", "python/_autosummary/mlx.core.fast.metal_kernel.rst", "python/_autosummary/mlx.core.fast.rms_norm.rst", "python/_autosummary/mlx.core.fast.rope.rst", "python/_autosummary/mlx.core.fast.scaled_dot_product_attention.rst", "python/_autosummary/mlx.core.fft.fft.rst", "python/_autosummary/mlx.core.fft.fft2.rst", "python/_autosummary/mlx.core.fft.fftn.rst", "python/_autosummary/mlx.core.fft.ifft.rst", "python/_autosummary/mlx.core.fft.ifft2.rst", "python/_autosummary/mlx.core.fft.ifftn.rst", "python/_autosummary/mlx.core.fft.irfft.rst", "python/_autosummary/mlx.core.fft.irfft2.rst", "python/_autosummary/mlx.core.fft.irfftn.rst", "python/_autosummary/mlx.core.fft.rfft.rst", "python/_autosummary/mlx.core.fft.rfft2.rst", "python/_autosummary/mlx.core.fft.rfftn.rst", "python/_autosummary/mlx.core.flatten.rst", "python/_autosummary/mlx.core.floor.rst", "python/_autosummary/mlx.core.floor_divide.rst", "python/_autosummary/mlx.core.full.rst", "python/_autosummary/mlx.core.gather_mm.rst", "python/_autosummary/mlx.core.gather_qmm.rst", "python/_autosummary/mlx.core.grad.rst", "python/_autosummary/mlx.core.greater.rst", "python/_autosummary/mlx.core.greater_equal.rst", "python/_autosummary/mlx.core.hadamard_transform.rst", "python/_autosummary/mlx.core.identity.rst", "python/_autosummary/mlx.core.imag.rst", "python/_autosummary/mlx.core.inner.rst", "python/_autosummary/mlx.core.isclose.rst", "python/_autosummary/mlx.core.isfinite.rst", "python/_autosummary/mlx.core.isinf.rst", "python/_autosummary/mlx.core.isnan.rst", "python/_autosummary/mlx.core.isneginf.rst", "python/_autosummary/mlx.core.isposinf.rst", "python/_autosummary/mlx.core.issubdtype.rst", "python/_autosummary/mlx.core.jvp.rst", "python/_autosummary/mlx.core.left_shift.rst", "python/_autosummary/mlx.core.less.rst", "python/_autosummary/mlx.core.less_equal.rst", "python/_autosummary/mlx.core.linalg.cholesky.rst", "python/_autosummary/mlx.core.linalg.cholesky_inv.rst", "python/_autosummary/mlx.core.linalg.cross.rst", "python/_autosummary/mlx.core.linalg.inv.rst", "python/_autosummary/mlx.core.linalg.norm.rst", "python/_autosummary/mlx.core.linalg.qr.rst", "python/_autosummary/mlx.core.linalg.svd.rst", "python/_autosummary/mlx.core.linalg.tri_inv.rst", "python/_autosummary/mlx.core.linspace.rst", "python/_autosummary/mlx.core.load.rst", "python/_autosummary/mlx.core.log.rst", "python/_autosummary/mlx.core.log10.rst", "python/_autosummary/mlx.core.log1p.rst", "python/_autosummary/mlx.core.log2.rst", "python/_autosummary/mlx.core.logaddexp.rst", "python/_autosummary/mlx.core.logical_and.rst", "python/_autosummary/mlx.core.logical_not.rst", "python/_autosummary/mlx.core.logical_or.rst", "python/_autosummary/mlx.core.logsumexp.rst", "python/_autosummary/mlx.core.matmul.rst", "python/_autosummary/mlx.core.max.rst", "python/_autosummary/mlx.core.maximum.rst", "python/_autosummary/mlx.core.mean.rst", "python/_autosummary/mlx.core.meshgrid.rst", "python/_autosummary/mlx.core.metal.clear_cache.rst", "python/_autosummary/mlx.core.metal.device_info.rst", "python/_autosummary/mlx.core.metal.get_active_memory.rst", "python/_autosummary/mlx.core.metal.get_cache_memory.rst", "python/_autosummary/mlx.core.metal.get_peak_memory.rst", "python/_autosummary/mlx.core.metal.is_available.rst", "python/_autosummary/mlx.core.metal.reset_peak_memory.rst", "python/_autosummary/mlx.core.metal.set_cache_limit.rst", "python/_autosummary/mlx.core.metal.set_memory_limit.rst", "python/_autosummary/mlx.core.metal.start_capture.rst", "python/_autosummary/mlx.core.metal.stop_capture.rst", "python/_autosummary/mlx.core.min.rst", "python/_autosummary/mlx.core.minimum.rst", "python/_autosummary/mlx.core.moveaxis.rst", "python/_autosummary/mlx.core.multiply.rst", "python/_autosummary/mlx.core.nan_to_num.rst", "python/_autosummary/mlx.core.negative.rst", "python/_autosummary/mlx.core.new_stream.rst", "python/_autosummary/mlx.core.not_equal.rst", "python/_autosummary/mlx.core.ones.rst", "python/_autosummary/mlx.core.ones_like.rst", "python/_autosummary/mlx.core.outer.rst", "python/_autosummary/mlx.core.pad.rst", "python/_autosummary/mlx.core.partition.rst", "python/_autosummary/mlx.core.power.rst", "python/_autosummary/mlx.core.prod.rst", "python/_autosummary/mlx.core.put_along_axis.rst", "python/_autosummary/mlx.core.quantize.rst", "python/_autosummary/mlx.core.quantized_matmul.rst", "python/_autosummary/mlx.core.radians.rst", "python/_autosummary/mlx.core.random.bernoulli.rst", "python/_autosummary/mlx.core.random.categorical.rst", "python/_autosummary/mlx.core.random.gumbel.rst", "python/_autosummary/mlx.core.random.key.rst", "python/_autosummary/mlx.core.random.laplace.rst", "python/_autosummary/mlx.core.random.multivariate_normal.rst", "python/_autosummary/mlx.core.random.normal.rst", "python/_autosummary/mlx.core.random.permutation.rst", "python/_autosummary/mlx.core.random.randint.rst", "python/_autosummary/mlx.core.random.seed.rst", "python/_autosummary/mlx.core.random.split.rst", "python/_autosummary/mlx.core.random.truncated_normal.rst", "python/_autosummary/mlx.core.random.uniform.rst", "python/_autosummary/mlx.core.real.rst", "python/_autosummary/mlx.core.reciprocal.rst", "python/_autosummary/mlx.core.remainder.rst", "python/_autosummary/mlx.core.repeat.rst", "python/_autosummary/mlx.core.reshape.rst", "python/_autosummary/mlx.core.right_shift.rst", "python/_autosummary/mlx.core.roll.rst", "python/_autosummary/mlx.core.round.rst", "python/_autosummary/mlx.core.rsqrt.rst", "python/_autosummary/mlx.core.save.rst", "python/_autosummary/mlx.core.save_gguf.rst", "python/_autosummary/mlx.core.save_safetensors.rst", "python/_autosummary/mlx.core.savez.rst", "python/_autosummary/mlx.core.savez_compressed.rst", "python/_autosummary/mlx.core.set_default_device.rst", "python/_autosummary/mlx.core.set_default_stream.rst", "python/_autosummary/mlx.core.sigmoid.rst", "python/_autosummary/mlx.core.sign.rst", "python/_autosummary/mlx.core.sin.rst", "python/_autosummary/mlx.core.sinh.rst", "python/_autosummary/mlx.core.softmax.rst", "python/_autosummary/mlx.core.sort.rst", "python/_autosummary/mlx.core.split.rst", "python/_autosummary/mlx.core.sqrt.rst", "python/_autosummary/mlx.core.square.rst", "python/_autosummary/mlx.core.squeeze.rst", "python/_autosummary/mlx.core.stack.rst", "python/_autosummary/mlx.core.std.rst", "python/_autosummary/mlx.core.stop_gradient.rst", "python/_autosummary/mlx.core.stream.rst", "python/_autosummary/mlx.core.subtract.rst", "python/_autosummary/mlx.core.sum.rst", "python/_autosummary/mlx.core.swapaxes.rst", "python/_autosummary/mlx.core.synchronize.rst", "python/_autosummary/mlx.core.take.rst", "python/_autosummary/mlx.core.take_along_axis.rst", "python/_autosummary/mlx.core.tan.rst", "python/_autosummary/mlx.core.tanh.rst", "python/_autosummary/mlx.core.tensordot.rst", "python/_autosummary/mlx.core.tile.rst", "python/_autosummary/mlx.core.topk.rst", "python/_autosummary/mlx.core.trace.rst", "python/_autosummary/mlx.core.transpose.rst", "python/_autosummary/mlx.core.tri.rst", "python/_autosummary/mlx.core.tril.rst", "python/_autosummary/mlx.core.triu.rst", "python/_autosummary/mlx.core.value_and_grad.rst", "python/_autosummary/mlx.core.var.rst", "python/_autosummary/mlx.core.view.rst", "python/_autosummary/mlx.core.vjp.rst", "python/_autosummary/mlx.core.vmap.rst", "python/_autosummary/mlx.core.where.rst", "python/_autosummary/mlx.core.zeros.rst", "python/_autosummary/mlx.core.zeros_like.rst", "python/_autosummary/mlx.nn.quantize.rst", "python/_autosummary/mlx.nn.value_and_grad.rst", "python/_autosummary/mlx.optimizers.clip_grad_norm.rst", "python/_autosummary/mlx.utils.tree_flatten.rst", "python/_autosummary/mlx.utils.tree_map.rst", "python/_autosummary/mlx.utils.tree_map_with_path.rst", "python/_autosummary/mlx.utils.tree_reduce.rst", "python/_autosummary/mlx.utils.tree_unflatten.rst", "python/_autosummary/stream_class.rst", "python/array.rst", "python/data_types.rst", "python/devices_and_streams.rst", "python/distributed.rst", "python/fast.rst", "python/fft.rst", "python/linalg.rst", "python/metal.rst", "python/nn.rst", "python/nn/_autosummary/mlx.nn.ALiBi.rst", "python/nn/_autosummary/mlx.nn.AvgPool1d.rst", "python/nn/_autosummary/mlx.nn.AvgPool2d.rst", "python/nn/_autosummary/mlx.nn.BatchNorm.rst", "python/nn/_autosummary/mlx.nn.CELU.rst", "python/nn/_autosummary/mlx.nn.Conv1d.rst", "python/nn/_autosummary/mlx.nn.Conv2d.rst", "python/nn/_autosummary/mlx.nn.Conv3d.rst", "python/nn/_autosummary/mlx.nn.ConvTranspose1d.rst", "python/nn/_autosummary/mlx.nn.ConvTranspose2d.rst", "python/nn/_autosummary/mlx.nn.ConvTranspose3d.rst", "python/nn/_autosummary/mlx.nn.Dropout.rst", "python/nn/_autosummary/mlx.nn.Dropout2d.rst", "python/nn/_autosummary/mlx.nn.Dropout3d.rst", "python/nn/_autosummary/mlx.nn.ELU.rst", "python/nn/_autosummary/mlx.nn.Embedding.rst", "python/nn/_autosummary/mlx.nn.GELU.rst", "python/nn/_autosummary/mlx.nn.GLU.rst", "python/nn/_autosummary/mlx.nn.GRU.rst", "python/nn/_autosummary/mlx.nn.GroupNorm.rst", "python/nn/_autosummary/mlx.nn.HardShrink.rst", "python/nn/_autosummary/mlx.nn.HardTanh.rst", "python/nn/_autosummary/mlx.nn.Hardswish.rst", "python/nn/_autosummary/mlx.nn.InstanceNorm.rst", "python/nn/_autosummary/mlx.nn.LSTM.rst", "python/nn/_autosummary/mlx.nn.LayerNorm.rst", "python/nn/_autosummary/mlx.nn.LeakyReLU.rst", "python/nn/_autosummary/mlx.nn.Linear.rst", "python/nn/_autosummary/mlx.nn.LogSigmoid.rst", "python/nn/_autosummary/mlx.nn.LogSoftmax.rst", "python/nn/_autosummary/mlx.nn.MaxPool1d.rst", "python/nn/_autosummary/mlx.nn.MaxPool2d.rst", "python/nn/_autosummary/mlx.nn.Mish.rst", "python/nn/_autosummary/mlx.nn.Module.apply.rst", "python/nn/_autosummary/mlx.nn.Module.apply_to_modules.rst", "python/nn/_autosummary/mlx.nn.Module.children.rst", "python/nn/_autosummary/mlx.nn.Module.eval.rst", "python/nn/_autosummary/mlx.nn.Module.filter_and_map.rst", "python/nn/_autosummary/mlx.nn.Module.freeze.rst", "python/nn/_autosummary/mlx.nn.Module.leaf_modules.rst", "python/nn/_autosummary/mlx.nn.Module.load_weights.rst", "python/nn/_autosummary/mlx.nn.Module.modules.rst", "python/nn/_autosummary/mlx.nn.Module.named_modules.rst", "python/nn/_autosummary/mlx.nn.Module.parameters.rst", "python/nn/_autosummary/mlx.nn.Module.save_weights.rst", "python/nn/_autosummary/mlx.nn.Module.set_dtype.rst", "python/nn/_autosummary/mlx.nn.Module.state.rst", "python/nn/_autosummary/mlx.nn.Module.train.rst", "python/nn/_autosummary/mlx.nn.Module.trainable_parameters.rst", "python/nn/_autosummary/mlx.nn.Module.training.rst", "python/nn/_autosummary/mlx.nn.Module.unfreeze.rst", "python/nn/_autosummary/mlx.nn.Module.update.rst", "python/nn/_autosummary/mlx.nn.Module.update_modules.rst", "python/nn/_autosummary/mlx.nn.MultiHeadAttention.rst", "python/nn/_autosummary/mlx.nn.PReLU.rst", "python/nn/_autosummary/mlx.nn.QuantizedEmbedding.rst", "python/nn/_autosummary/mlx.nn.QuantizedLinear.rst", "python/nn/_autosummary/mlx.nn.RMSNorm.rst", "python/nn/_autosummary/mlx.nn.RNN.rst", "python/nn/_autosummary/mlx.nn.ReLU.rst", "python/nn/_autosummary/mlx.nn.ReLU6.rst", "python/nn/_autosummary/mlx.nn.RoPE.rst", "python/nn/_autosummary/mlx.nn.SELU.rst", "python/nn/_autosummary/mlx.nn.Sequential.rst", "python/nn/_autosummary/mlx.nn.SiLU.rst", "python/nn/_autosummary/mlx.nn.Sigmoid.rst", "python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.rst", "python/nn/_autosummary/mlx.nn.Softmax.rst", "python/nn/_autosummary/mlx.nn.Softmin.rst", "python/nn/_autosummary/mlx.nn.Softplus.rst", "python/nn/_autosummary/mlx.nn.Softshrink.rst", "python/nn/_autosummary/mlx.nn.Softsign.rst", "python/nn/_autosummary/mlx.nn.Step.rst", "python/nn/_autosummary/mlx.nn.Tanh.rst", "python/nn/_autosummary/mlx.nn.Transformer.rst", "python/nn/_autosummary/mlx.nn.Upsample.rst", "python/nn/_autosummary/mlx.nn.init.constant.rst", "python/nn/_autosummary/mlx.nn.init.glorot_normal.rst", "python/nn/_autosummary/mlx.nn.init.glorot_uniform.rst", "python/nn/_autosummary/mlx.nn.init.he_normal.rst", "python/nn/_autosummary/mlx.nn.init.he_uniform.rst", "python/nn/_autosummary/mlx.nn.init.identity.rst", "python/nn/_autosummary/mlx.nn.init.normal.rst", "python/nn/_autosummary/mlx.nn.init.uniform.rst", "python/nn/_autosummary_functions/mlx.nn.celu.rst", "python/nn/_autosummary_functions/mlx.nn.elu.rst", "python/nn/_autosummary_functions/mlx.nn.gelu.rst", "python/nn/_autosummary_functions/mlx.nn.gelu_approx.rst", "python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx.rst", "python/nn/_autosummary_functions/mlx.nn.glu.rst", "python/nn/_autosummary_functions/mlx.nn.hard_shrink.rst", "python/nn/_autosummary_functions/mlx.nn.hard_tanh.rst", "python/nn/_autosummary_functions/mlx.nn.hardswish.rst", "python/nn/_autosummary_functions/mlx.nn.leaky_relu.rst", "python/nn/_autosummary_functions/mlx.nn.log_sigmoid.rst", "python/nn/_autosummary_functions/mlx.nn.log_softmax.rst", "python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy.rst", "python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy.rst", "python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.l1_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.mse_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.nll_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss.rst", "python/nn/_autosummary_functions/mlx.nn.mish.rst", "python/nn/_autosummary_functions/mlx.nn.prelu.rst", "python/nn/_autosummary_functions/mlx.nn.relu.rst", "python/nn/_autosummary_functions/mlx.nn.relu6.rst", "python/nn/_autosummary_functions/mlx.nn.selu.rst", "python/nn/_autosummary_functions/mlx.nn.sigmoid.rst", "python/nn/_autosummary_functions/mlx.nn.silu.rst", "python/nn/_autosummary_functions/mlx.nn.softmax.rst", "python/nn/_autosummary_functions/mlx.nn.softmin.rst", "python/nn/_autosummary_functions/mlx.nn.softplus.rst", "python/nn/_autosummary_functions/mlx.nn.softshrink.rst", "python/nn/_autosummary_functions/mlx.nn.step.rst", "python/nn/_autosummary_functions/mlx.nn.tanh.rst", "python/nn/functions.rst", "python/nn/init.rst", "python/nn/layers.rst", "python/nn/losses.rst", "python/nn/module.rst", "python/ops.rst", "python/optimizers.rst", "python/optimizers/_autosummary/mlx.optimizers.AdaDelta.rst", "python/optimizers/_autosummary/mlx.optimizers.Adafactor.rst", "python/optimizers/_autosummary/mlx.optimizers.Adagrad.rst", "python/optimizers/_autosummary/mlx.optimizers.Adam.rst", "python/optimizers/_autosummary/mlx.optimizers.AdamW.rst", "python/optimizers/_autosummary/mlx.optimizers.Adamax.rst", "python/optimizers/_autosummary/mlx.optimizers.Lion.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.init.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.state.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.update.rst", "python/optimizers/_autosummary/mlx.optimizers.RMSprop.rst", "python/optimizers/_autosummary/mlx.optimizers.SGD.rst", "python/optimizers/_autosummary/mlx.optimizers.cosine_decay.rst", "python/optimizers/_autosummary/mlx.optimizers.exponential_decay.rst", "python/optimizers/_autosummary/mlx.optimizers.join_schedules.rst", "python/optimizers/_autosummary/mlx.optimizers.linear_schedule.rst", "python/optimizers/_autosummary/mlx.optimizers.step_decay.rst", "python/optimizers/common_optimizers.rst", "python/optimizers/optimizer.rst", "python/optimizers/schedulers.rst", "python/random.rst", "python/transforms.rst", "python/tree_utils.rst", "usage/compile.rst", "usage/distributed.rst", "usage/function_transforms.rst", "usage/indexing.rst", "usage/lazy_evaluation.rst", "usage/numpy.rst", "usage/quick_start.rst", "usage/saving_and_loading.rst", "usage/unified_memory.rst", "usage/using_streams.rst"], "indexentries": {"__init__() (array method)": [[30, "mlx.core.array.__init__", false]], "__init__() (custom_function method)": [[112, "mlx.core.custom_function.__init__", false]], "__init__() (device method)": [[9, "mlx.core.Device.__init__", false]], "__init__() (dtype method)": [[10, "mlx.core.Dtype.__init__", false]], "__init__() (dtypecategory method)": [[11, "mlx.core.DtypeCategory.__init__", false]], "__init__() (group method)": [[120, "mlx.core.distributed.Group.__init__", false]], "__init__() (stream method)": [[312, "mlx.core.Stream.__init__", false]], "abs (c++ function)": [[0, "_CPPv43absRK5array14StreamOrDevice", false]], "abs() (array method)": [[32, "mlx.core.array.abs", false]], "abs() (in module mlx.core)": [[12, "mlx.core.abs", false]], "adadelta (class in mlx.optimizers)": [[452, "mlx.optimizers.AdaDelta", false]], "adafactor (class in mlx.optimizers)": [[453, "mlx.optimizers.Adafactor", false]], "adagrad (class in mlx.optimizers)": [[454, "mlx.optimizers.Adagrad", false]], "adam (class in mlx.optimizers)": [[455, "mlx.optimizers.Adam", false]], "adamax (class in mlx.optimizers)": [[457, "mlx.optimizers.Adamax", false]], "adamw (class in mlx.optimizers)": [[456, "mlx.optimizers.AdamW", false]], "add (c++ function)": [[0, "_CPPv43addRK5arrayRK5array14StreamOrDevice", false]], "add() (in module mlx.core)": [[13, "mlx.core.add", false]], "addmm (c++ function)": [[0, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", false]], "addmm() (in module mlx.core)": [[14, "mlx.core.addmm", false]], "affine_quantize() (in module mlx.core.fast)": [[141, "mlx.core.fast.affine_quantize", false]], "alibi (class in mlx.nn)": [[322, "mlx.nn.ALiBi", false]], "all (c++ function)": [[0, "_CPPv43allRK5array14StreamOrDevice", false], [0, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43allRK5arrayb14StreamOrDevice", false], [0, "_CPPv43allRK5arrayib14StreamOrDevice", false]], "all() (array method)": [[33, "mlx.core.array.all", false]], "all() (in module mlx.core)": [[15, "mlx.core.all", false]], "all_gather() (in module mlx.core.distributed)": [[121, "mlx.core.distributed.all_gather", false]], "all_sum() (in module mlx.core.distributed)": [[122, "mlx.core.distributed.all_sum", false]], "allclose (c++ function)": [[0, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", false]], "allclose() (in module mlx.core)": [[16, "mlx.core.allclose", false]], "any (c++ function)": [[0, "_CPPv43anyRK5array14StreamOrDevice", false], [0, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43anyRK5arrayb14StreamOrDevice", false], [0, "_CPPv43anyRK5arrayib14StreamOrDevice", false]], "any() (array method)": [[34, "mlx.core.array.any", false]], "any() (in module mlx.core)": [[17, "mlx.core.any", false]], "apply() (module method)": [[355, "mlx.nn.Module.apply", false]], "apply_gradients() (optimizer method)": [[459, "mlx.optimizers.Optimizer.apply_gradients", false]], "apply_to_modules() (module method)": [[356, "mlx.nn.Module.apply_to_modules", false]], "arange (c++ function)": [[0, "_CPPv46aranged14StreamOrDevice", false], [0, "_CPPv46aranged5Dtype14StreamOrDevice", false], [0, "_CPPv46arangedd14StreamOrDevice", false], [0, "_CPPv46arangedd5Dtype14StreamOrDevice", false], [0, "_CPPv46arangeddd14StreamOrDevice", false], [0, "_CPPv46arangeddd5Dtype14StreamOrDevice", false], [0, "_CPPv46arangei14StreamOrDevice", false], [0, "_CPPv46arangeii14StreamOrDevice", false], [0, "_CPPv46arangeiii14StreamOrDevice", false]], "arange() (in module mlx.core)": [[18, "mlx.core.arange", false]], "arccos (c++ function)": [[0, "_CPPv46arccosRK5array14StreamOrDevice", false]], "arccos() (in module mlx.core)": [[19, "mlx.core.arccos", false]], "arccosh (c++ function)": [[0, "_CPPv47arccoshRK5array14StreamOrDevice", false]], "arccosh() (in module mlx.core)": [[20, "mlx.core.arccosh", false]], "arcsin (c++ function)": [[0, "_CPPv46arcsinRK5array14StreamOrDevice", false]], "arcsin() (in module mlx.core)": [[21, "mlx.core.arcsin", false]], "arcsinh (c++ function)": [[0, "_CPPv47arcsinhRK5array14StreamOrDevice", false]], "arcsinh() (in module mlx.core)": [[22, "mlx.core.arcsinh", false]], "arctan (c++ function)": [[0, "_CPPv46arctanRK5array14StreamOrDevice", false]], "arctan() (in module mlx.core)": [[23, "mlx.core.arctan", false]], "arctan2 (c++ function)": [[0, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", false]], "arctan2() (in module mlx.core)": [[24, "mlx.core.arctan2", false]], "arctanh (c++ function)": [[0, "_CPPv47arctanhRK5array14StreamOrDevice", false]], "arctanh() (in module mlx.core)": [[25, "mlx.core.arctanh", false]], "argmax (c++ function)": [[0, "_CPPv46argmaxRK5array14StreamOrDevice", false], [0, "_CPPv46argmaxRK5arrayb14StreamOrDevice", false], [0, "_CPPv46argmaxRK5arrayib14StreamOrDevice", false]], "argmax() (array method)": [[35, "mlx.core.array.argmax", false]], "argmax() (in module mlx.core)": [[26, "mlx.core.argmax", false]], "argmin (c++ function)": [[0, "_CPPv46argminRK5array14StreamOrDevice", false], [0, "_CPPv46argminRK5arrayb14StreamOrDevice", false], [0, "_CPPv46argminRK5arrayib14StreamOrDevice", false]], "argmin() (array method)": [[36, "mlx.core.array.argmin", false]], "argmin() (in module mlx.core)": [[27, "mlx.core.argmin", false]], "argpartition (c++ function)": [[0, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", false], [0, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", false]], "argpartition() (in module mlx.core)": [[28, "mlx.core.argpartition", false]], "argsort (c++ function)": [[0, "_CPPv47argsortRK5array14StreamOrDevice", false], [0, "_CPPv47argsortRK5arrayi14StreamOrDevice", false]], "argsort() (in module mlx.core)": [[29, "mlx.core.argsort", false]], "array (class in mlx.core)": [[30, "mlx.core.array", false]], "array_equal (c++ function)": [[0, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", false], [0, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", false]], "array_equal() (in module mlx.core)": [[82, "mlx.core.array_equal", false]], "as_strided (c++ function)": [[0, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", false]], "as_strided() (in module mlx.core)": [[83, "mlx.core.as_strided", false]], "astype (c++ function)": [[0, "_CPPv46astype5array5Dtype14StreamOrDevice", false]], "astype() (array method)": [[37, "mlx.core.array.astype", false]], "at (array property)": [[38, "mlx.core.array.at", false]], "atleast_1d (c++ function)": [[0, "_CPPv410atleast_1dRK5array14StreamOrDevice", false], [0, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "atleast_1d() (in module mlx.core)": [[84, "mlx.core.atleast_1d", false]], "atleast_2d (c++ function)": [[0, "_CPPv410atleast_2dRK5array14StreamOrDevice", false], [0, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "atleast_2d() (in module mlx.core)": [[85, "mlx.core.atleast_2d", false]], "atleast_3d (c++ function)": [[0, "_CPPv410atleast_3dRK5array14StreamOrDevice", false], [0, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "atleast_3d() (in module mlx.core)": [[86, "mlx.core.atleast_3d", false]], "avgpool1d (class in mlx.nn)": [[323, "mlx.nn.AvgPool1d", false]], "avgpool2d (class in mlx.nn)": [[324, "mlx.nn.AvgPool2d", false]], "batchnorm (class in mlx.nn)": [[325, "mlx.nn.BatchNorm", false]], "bernoulli() (in module mlx.core.random)": [[237, "mlx.core.random.bernoulli", false]], "binary_cross_entropy (class in mlx.nn.losses)": [[418, "mlx.nn.losses.binary_cross_entropy", false]], "bitwise_and (c++ function)": [[0, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", false]], "bitwise_and() (in module mlx.core)": [[87, "mlx.core.bitwise_and", false]], "bitwise_or (c++ function)": [[0, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", false]], "bitwise_or() (in module mlx.core)": [[88, "mlx.core.bitwise_or", false]], "bitwise_xor (c++ function)": [[0, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", false]], "bitwise_xor() (in module mlx.core)": [[89, "mlx.core.bitwise_xor", false]], "block_masked_mm (c++ function)": [[0, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", false]], "block_masked_mm() (in module mlx.core)": [[90, "mlx.core.block_masked_mm", false]], "broadcast_arrays (c++ function)": [[0, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "broadcast_to (c++ function)": [[0, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "broadcast_to() (in module mlx.core)": [[91, "mlx.core.broadcast_to", false]], "categorical() (in module mlx.core.random)": [[238, "mlx.core.random.categorical", false]], "ceil (c++ function)": [[0, "_CPPv44ceilRK5array14StreamOrDevice", false]], "ceil() (in module mlx.core)": [[92, "mlx.core.ceil", false]], "celu (class in mlx.nn)": [[326, "mlx.nn.CELU", false], [406, "mlx.nn.celu", false]], "children() (module method)": [[357, "mlx.nn.Module.children", false]], "cholesky() (in module mlx.core.linalg)": [[183, "mlx.core.linalg.cholesky", false]], "cholesky_inv() (in module mlx.core.linalg)": [[184, "mlx.core.linalg.cholesky_inv", false]], "clear_cache() (in module mlx.core.metal)": [[207, "mlx.core.metal.clear_cache", false]], "clip (c++ function)": [[0, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", false]], "clip() (in module mlx.core)": [[93, "mlx.core.clip", false]], "clip_grad_norm() (in module mlx.optimizers)": [[306, "mlx.optimizers.clip_grad_norm", false]], "compile() (in module mlx.core)": [[94, "mlx.core.compile", false]], "concatenate (c++ function)": [[0, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", false], [0, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", false]], "concatenate() (in module mlx.core)": [[95, "mlx.core.concatenate", false]], "conj() (array method)": [[39, "mlx.core.array.conj", false]], "conj() (in module mlx.core)": [[96, "mlx.core.conj", false]], "conjugate (c++ function)": [[0, "_CPPv49conjugateRK5array14StreamOrDevice", false]], "conjugate() (in module mlx.core)": [[97, "mlx.core.conjugate", false]], "constant() (in module mlx.nn.init)": [[398, "mlx.nn.init.constant", false]], "conv1d (c++ function)": [[0, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", false]], "conv1d (class in mlx.nn)": [[327, "mlx.nn.Conv1d", false]], "conv1d() (in module mlx.core)": [[98, "mlx.core.conv1d", false]], "conv2d (c++ function)": [[0, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", false]], "conv2d (class in mlx.nn)": [[328, "mlx.nn.Conv2d", false]], "conv2d() (in module mlx.core)": [[99, "mlx.core.conv2d", false]], "conv3d (c++ function)": [[0, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", false]], "conv3d (class in mlx.nn)": [[329, "mlx.nn.Conv3d", false]], "conv3d() (in module mlx.core)": [[100, "mlx.core.conv3d", false]], "conv_general (c++ function)": [[0, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", false], [0, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", false]], "conv_general() (in module mlx.core)": [[101, "mlx.core.conv_general", false]], "conv_transpose1d (c++ function)": [[0, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", false]], "conv_transpose1d() (in module mlx.core)": [[102, "mlx.core.conv_transpose1d", false]], "conv_transpose2d (c++ function)": [[0, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", false]], "conv_transpose2d() (in module mlx.core)": [[103, "mlx.core.conv_transpose2d", false]], "conv_transpose3d (c++ function)": [[0, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", false]], "conv_transpose3d() (in module mlx.core)": [[104, "mlx.core.conv_transpose3d", false]], "convolve() (in module mlx.core)": [[105, "mlx.core.convolve", false]], "convtranspose1d (class in mlx.nn)": [[330, "mlx.nn.ConvTranspose1d", false]], "convtranspose2d (class in mlx.nn)": [[331, "mlx.nn.ConvTranspose2d", false]], "convtranspose3d (class in mlx.nn)": [[332, "mlx.nn.ConvTranspose3d", false]], "copy (c++ function)": [[0, "_CPPv44copy5array14StreamOrDevice", false]], "cos (c++ function)": [[0, "_CPPv43cosRK5array14StreamOrDevice", false]], "cos() (array method)": [[40, "mlx.core.array.cos", false]], "cos() (in module mlx.core)": [[106, "mlx.core.cos", false]], "cosh (c++ function)": [[0, "_CPPv44coshRK5array14StreamOrDevice", false]], "cosh() (in module mlx.core)": [[107, "mlx.core.cosh", false]], "cosine_decay() (in module mlx.optimizers)": [[465, "mlx.optimizers.cosine_decay", false]], "cosine_similarity_loss (class in mlx.nn.losses)": [[419, "mlx.nn.losses.cosine_similarity_loss", false]], "cross() (in module mlx.core.linalg)": [[185, "mlx.core.linalg.cross", false]], "cross_entropy (class in mlx.nn.losses)": [[420, "mlx.nn.losses.cross_entropy", false]], "cummax (c++ function)": [[0, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", false]], "cummax() (array method)": [[41, "mlx.core.array.cummax", false]], "cummax() (in module mlx.core)": [[108, "mlx.core.cummax", false]], "cummin (c++ function)": [[0, "_CPPv46cumminRK5arrayibb14StreamOrDevice", false]], "cummin() (array method)": [[42, "mlx.core.array.cummin", false]], "cummin() (in module mlx.core)": [[109, "mlx.core.cummin", false]], "cumprod (c++ function)": [[0, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", false]], "cumprod() (array method)": [[43, "mlx.core.array.cumprod", false]], "cumprod() (in module mlx.core)": [[110, "mlx.core.cumprod", false]], "cumsum (c++ function)": [[0, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", false]], "cumsum() (array method)": [[44, "mlx.core.array.cumsum", false]], "cumsum() (in module mlx.core)": [[111, "mlx.core.cumsum", false]], "custom_function (class in mlx.core)": [[112, "mlx.core.custom_function", false]], "default_device() (in module mlx.core)": [[113, "mlx.core.default_device", false]], "default_stream() (in module mlx.core)": [[114, "mlx.core.default_stream", false]], "degrees (c++ function)": [[0, "_CPPv47degreesRK5array14StreamOrDevice", false]], "degrees() (in module mlx.core)": [[115, "mlx.core.degrees", false]], "depends (c++ function)": [[0, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", false]], "dequantize (c++ function)": [[0, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", false]], "dequantize() (in module mlx.core)": [[116, "mlx.core.dequantize", false]], "device (class in mlx.core)": [[9, "mlx.core.Device", false]], "device_info() (in module mlx.core.metal)": [[208, "mlx.core.metal.device_info", false]], "diag (c++ function)": [[0, "_CPPv44diagRK5arrayi14StreamOrDevice", false]], "diag() (array method)": [[45, "mlx.core.array.diag", false]], "diag() (in module mlx.core)": [[117, "mlx.core.diag", false]], "diagonal (c++ function)": [[0, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", false]], "diagonal() (array method)": [[46, "mlx.core.array.diagonal", false]], "diagonal() (in module mlx.core)": [[118, "mlx.core.diagonal", false]], "disable_compile() (in module mlx.core)": [[119, "mlx.core.disable_compile", false]], "divide (c++ function)": [[0, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", false]], "divide() (in module mlx.core)": [[128, "mlx.core.divide", false]], "divmod (c++ function)": [[0, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", false]], "divmod() (in module mlx.core)": [[129, "mlx.core.divmod", false]], "dropout (class in mlx.nn)": [[333, "mlx.nn.Dropout", false]], "dropout2d (class in mlx.nn)": [[334, "mlx.nn.Dropout2d", false]], "dropout3d (class in mlx.nn)": [[335, "mlx.nn.Dropout3d", false]], "dtype (array property)": [[47, "mlx.core.array.dtype", false]], "dtype (class in mlx.core)": [[10, "mlx.core.Dtype", false]], "dtypecategory (class in mlx.core)": [[11, "mlx.core.DtypeCategory", false]], "einsum() (in module mlx.core)": [[130, "mlx.core.einsum", false]], "einsum_path() (in module mlx.core)": [[131, "mlx.core.einsum_path", false]], "elu (class in mlx.nn)": [[336, "mlx.nn.ELU", false], [407, "mlx.nn.elu", false]], "embedding (class in mlx.nn)": [[337, "mlx.nn.Embedding", false]], "enable_compile() (in module mlx.core)": [[132, "mlx.core.enable_compile", false]], "equal (c++ function)": [[0, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", false]], "equal() (in module mlx.core)": [[133, "mlx.core.equal", false]], "erf (c++ function)": [[0, "_CPPv43erfRK5array14StreamOrDevice", false]], "erf() (in module mlx.core)": [[134, "mlx.core.erf", false]], "erfinv (c++ function)": [[0, "_CPPv46erfinvRK5array14StreamOrDevice", false]], "erfinv() (in module mlx.core)": [[135, "mlx.core.erfinv", false]], "eval() (in module mlx.core)": [[136, "mlx.core.eval", false]], "eval() (module method)": [[358, "mlx.nn.Module.eval", false]], "exp (c++ function)": [[0, "_CPPv43expRK5array14StreamOrDevice", false]], "exp() (array method)": [[48, "mlx.core.array.exp", false]], "exp() (in module mlx.core)": [[137, "mlx.core.exp", false]], "expand_dims (c++ function)": [[0, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", false]], "expand_dims() (in module mlx.core)": [[138, "mlx.core.expand_dims", false]], "expm1 (c++ function)": [[0, "_CPPv45expm1RK5array14StreamOrDevice", false]], "expm1() (in module mlx.core)": [[139, "mlx.core.expm1", false]], "exponential_decay() (in module mlx.optimizers)": [[466, "mlx.optimizers.exponential_decay", false]], "eye (c++ function)": [[0, "_CPPv43eyei14StreamOrDevice", false], [0, "_CPPv43eyei5Dtype14StreamOrDevice", false], [0, "_CPPv43eyeii14StreamOrDevice", false], [0, "_CPPv43eyeiii14StreamOrDevice", false], [0, "_CPPv43eyeiii5Dtype14StreamOrDevice", false]], "eye() (in module mlx.core)": [[140, "mlx.core.eye", false]], "fft() (in module mlx.core.fft)": [[147, "mlx.core.fft.fft", false]], "fft2() (in module mlx.core.fft)": [[148, "mlx.core.fft.fft2", false]], "fftn() (in module mlx.core.fft)": [[149, "mlx.core.fft.fftn", false]], "filter_and_map() (module method)": [[359, "mlx.nn.Module.filter_and_map", false]], "flatten (c++ function)": [[0, "_CPPv47flattenRK5array14StreamOrDevice", false], [0, "_CPPv47flattenRK5arrayii14StreamOrDevice", false]], "flatten() (array method)": [[49, "mlx.core.array.flatten", false]], "flatten() (in module mlx.core)": [[159, "mlx.core.flatten", false]], "floor (c++ function)": [[0, "_CPPv45floorRK5array14StreamOrDevice", false]], "floor() (in module mlx.core)": [[160, "mlx.core.floor", false]], "floor_divide (c++ function)": [[0, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", false]], "floor_divide() (in module mlx.core)": [[161, "mlx.core.floor_divide", false]], "freeze() (module method)": [[360, "mlx.nn.Module.freeze", false]], "full (c++ function)": [[0, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", false], [0, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", false], [0, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", false], [0, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", false]], "full() (in module mlx.core)": [[162, "mlx.core.full", false]], "gather (c++ function)": [[0, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false]], "gather_mm (c++ function)": [[0, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", false]], "gather_mm() (in module mlx.core)": [[163, "mlx.core.gather_mm", false]], "gather_qmm (c++ function)": [[0, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", false]], "gather_qmm() (in module mlx.core)": [[164, "mlx.core.gather_qmm", false]], "gaussian_nll_loss (class in mlx.nn.losses)": [[421, "mlx.nn.losses.gaussian_nll_loss", false]], "gelu (class in mlx.nn)": [[338, "mlx.nn.GELU", false], [408, "mlx.nn.gelu", false]], "gelu_approx (class in mlx.nn)": [[409, "mlx.nn.gelu_approx", false]], "gelu_fast_approx (class in mlx.nn)": [[410, "mlx.nn.gelu_fast_approx", false]], "get_active_memory() (in module mlx.core.metal)": [[209, "mlx.core.metal.get_active_memory", false]], "get_cache_memory() (in module mlx.core.metal)": [[210, "mlx.core.metal.get_cache_memory", false]], "get_peak_memory() (in module mlx.core.metal)": [[211, "mlx.core.metal.get_peak_memory", false]], "glorot_normal() (in module mlx.nn.init)": [[399, "mlx.nn.init.glorot_normal", false]], "glorot_uniform() (in module mlx.nn.init)": [[400, "mlx.nn.init.glorot_uniform", false]], "glu (class in mlx.nn)": [[339, "mlx.nn.GLU", false], [411, "mlx.nn.glu", false]], "grad() (in module mlx.core)": [[165, "mlx.core.grad", false]], "greater (c++ function)": [[0, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", false]], "greater() (in module mlx.core)": [[166, "mlx.core.greater", false]], "greater_equal (c++ function)": [[0, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", false]], "greater_equal() (in module mlx.core)": [[167, "mlx.core.greater_equal", false]], "group (class in mlx.core.distributed)": [[120, "mlx.core.distributed.Group", false]], "groupnorm (class in mlx.nn)": [[341, "mlx.nn.GroupNorm", false]], "gru (class in mlx.nn)": [[340, "mlx.nn.GRU", false]], "gumbel() (in module mlx.core.random)": [[239, "mlx.core.random.gumbel", false]], "hadamard_transform (c++ function)": [[0, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", false]], "hadamard_transform() (in module mlx.core)": [[168, "mlx.core.hadamard_transform", false]], "hard_shrink (class in mlx.nn)": [[412, "mlx.nn.hard_shrink", false]], "hard_tanh (class in mlx.nn)": [[413, "mlx.nn.hard_tanh", false]], "hardshrink (class in mlx.nn)": [[342, "mlx.nn.HardShrink", false]], "hardswish (class in mlx.nn)": [[344, "mlx.nn.Hardswish", false], [414, "mlx.nn.hardswish", false]], "hardtanh (class in mlx.nn)": [[343, "mlx.nn.HardTanh", false]], "he_normal() (in module mlx.nn.init)": [[401, "mlx.nn.init.he_normal", false]], "he_uniform() (in module mlx.nn.init)": [[402, "mlx.nn.init.he_uniform", false]], "hinge_loss (class in mlx.nn.losses)": [[422, "mlx.nn.losses.hinge_loss", false]], "huber_loss (class in mlx.nn.losses)": [[423, "mlx.nn.losses.huber_loss", false]], "identity (c++ function)": [[0, "_CPPv48identityi14StreamOrDevice", false], [0, "_CPPv48identityi5Dtype14StreamOrDevice", false]], "identity() (in module mlx.core)": [[169, "mlx.core.identity", false]], "identity() (in module mlx.nn.init)": [[403, "mlx.nn.init.identity", false]], "ifft() (in module mlx.core.fft)": [[150, "mlx.core.fft.ifft", false]], "ifft2() (in module mlx.core.fft)": [[151, "mlx.core.fft.ifft2", false]], "ifftn() (in module mlx.core.fft)": [[152, "mlx.core.fft.ifftn", false]], "imag (c++ function)": [[0, "_CPPv44imagRK5array14StreamOrDevice", false]], "imag() (in module mlx.core)": [[170, "mlx.core.imag", false]], "init() (in module mlx.core.distributed)": [[123, "mlx.core.distributed.init", false]], "init() (optimizer method)": [[460, "mlx.optimizers.Optimizer.init", false]], "inner (c++ function)": [[0, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", false]], "inner() (in module mlx.core)": [[171, "mlx.core.inner", false]], "instancenorm (class in mlx.nn)": [[345, "mlx.nn.InstanceNorm", false]], "inv() (in module mlx.core.linalg)": [[186, "mlx.core.linalg.inv", false]], "irfft() (in module mlx.core.fft)": [[153, "mlx.core.fft.irfft", false]], "irfft2() (in module mlx.core.fft)": [[154, "mlx.core.fft.irfft2", false]], "irfftn() (in module mlx.core.fft)": [[155, "mlx.core.fft.irfftn", false]], "is_available() (in module mlx.core.distributed)": [[124, "mlx.core.distributed.is_available", false]], "is_available() (in module mlx.core.metal)": [[212, "mlx.core.metal.is_available", false]], "isclose (c++ function)": [[0, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", false]], "isclose() (in module mlx.core)": [[172, "mlx.core.isclose", false]], "isfinite (c++ function)": [[0, "_CPPv48isfiniteRK5array14StreamOrDevice", false]], "isfinite() (in module mlx.core)": [[173, "mlx.core.isfinite", false]], "isinf (c++ function)": [[0, "_CPPv45isinfRK5array14StreamOrDevice", false]], "isinf() (in module mlx.core)": [[174, "mlx.core.isinf", false]], "isnan (c++ function)": [[0, "_CPPv45isnanRK5array14StreamOrDevice", false]], "isnan() (in module mlx.core)": [[175, "mlx.core.isnan", false]], "isneginf (c++ function)": [[0, "_CPPv48isneginfRK5array14StreamOrDevice", false]], "isneginf() (in module mlx.core)": [[176, "mlx.core.isneginf", false]], "isposinf (c++ function)": [[0, "_CPPv48isposinfRK5array14StreamOrDevice", false]], "isposinf() (in module mlx.core)": [[177, "mlx.core.isposinf", false]], "issubdtype() (in module mlx.core)": [[178, "mlx.core.issubdtype", false]], "item() (array method)": [[50, "mlx.core.array.item", false]], "itemsize (array property)": [[51, "mlx.core.array.itemsize", false]], "join_schedules() (in module mlx.optimizers)": [[467, "mlx.optimizers.join_schedules", false]], "jvp() (in module mlx.core)": [[179, "mlx.core.jvp", false]], "key() (in module mlx.core.random)": [[240, "mlx.core.random.key", false]], "kl_div_loss (class in mlx.nn.losses)": [[424, "mlx.nn.losses.kl_div_loss", false]], "l1_loss (class in mlx.nn.losses)": [[425, "mlx.nn.losses.l1_loss", false]], "laplace() (in module mlx.core.random)": [[241, "mlx.core.random.laplace", false]], "layer_norm() (in module mlx.core.fast)": [[142, "mlx.core.fast.layer_norm", false]], "layernorm (class in mlx.nn)": [[347, "mlx.nn.LayerNorm", false]], "leaf_modules() (module method)": [[361, "mlx.nn.Module.leaf_modules", false]], "leaky_relu (class in mlx.nn)": [[415, "mlx.nn.leaky_relu", false]], "leakyrelu (class in mlx.nn)": [[348, "mlx.nn.LeakyReLU", false]], "left_shift (c++ function)": [[0, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", false]], "left_shift() (in module mlx.core)": [[180, "mlx.core.left_shift", false]], "less (c++ function)": [[0, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", false]], "less() (in module mlx.core)": [[181, "mlx.core.less", false]], "less_equal (c++ function)": [[0, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", false]], "less_equal() (in module mlx.core)": [[182, "mlx.core.less_equal", false]], "linear (class in mlx.nn)": [[349, "mlx.nn.Linear", false]], "linear_schedule() (in module mlx.optimizers)": [[468, "mlx.optimizers.linear_schedule", false]], "linspace (c++ function)": [[0, "_CPPv48linspaceddi5Dtype14StreamOrDevice", false]], "linspace() (in module mlx.core)": [[191, "mlx.core.linspace", false]], "lion (class in mlx.optimizers)": [[458, "mlx.optimizers.Lion", false]], "load() (in module mlx.core)": [[192, "mlx.core.load", false]], "load_weights() (module method)": [[362, "mlx.nn.Module.load_weights", false]], "log (c++ function)": [[0, "_CPPv43logRK5array14StreamOrDevice", false]], "log() (array method)": [[52, "mlx.core.array.log", false]], "log() (in module mlx.core)": [[193, "mlx.core.log", false]], "log10 (c++ function)": [[0, "_CPPv45log10RK5array14StreamOrDevice", false]], "log10() (array method)": [[53, "mlx.core.array.log10", false]], "log10() (in module mlx.core)": [[194, "mlx.core.log10", false]], "log1p (c++ function)": [[0, "_CPPv45log1pRK5array14StreamOrDevice", false]], "log1p() (array method)": [[54, "mlx.core.array.log1p", false]], "log1p() (in module mlx.core)": [[195, "mlx.core.log1p", false]], "log2 (c++ function)": [[0, "_CPPv44log2RK5array14StreamOrDevice", false]], "log2() (array method)": [[55, "mlx.core.array.log2", false]], "log2() (in module mlx.core)": [[196, "mlx.core.log2", false]], "log_cosh_loss (class in mlx.nn.losses)": [[426, "mlx.nn.losses.log_cosh_loss", false]], "log_sigmoid (class in mlx.nn)": [[416, "mlx.nn.log_sigmoid", false]], "log_softmax (class in mlx.nn)": [[417, "mlx.nn.log_softmax", false]], "logaddexp (c++ function)": [[0, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", false]], "logaddexp() (in module mlx.core)": [[197, "mlx.core.logaddexp", false]], "logical_and (c++ function)": [[0, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", false]], "logical_and() (in module mlx.core)": [[198, "mlx.core.logical_and", false]], "logical_not (c++ function)": [[0, "_CPPv411logical_notRK5array14StreamOrDevice", false]], "logical_not() (in module mlx.core)": [[199, "mlx.core.logical_not", false]], "logical_or (c++ function)": [[0, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", false]], "logical_or() (in module mlx.core)": [[200, "mlx.core.logical_or", false]], "logsigmoid (class in mlx.nn)": [[350, "mlx.nn.LogSigmoid", false]], "logsoftmax (class in mlx.nn)": [[351, "mlx.nn.LogSoftmax", false]], "logsumexp (c++ function)": [[0, "_CPPv49logsumexpRK5array14StreamOrDevice", false], [0, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", false], [0, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", false]], "logsumexp() (array method)": [[56, "mlx.core.array.logsumexp", false]], "logsumexp() (in module mlx.core)": [[201, "mlx.core.logsumexp", false]], "lstm (class in mlx.nn)": [[346, "mlx.nn.LSTM", false]], "margin_ranking_loss (class in mlx.nn.losses)": [[427, "mlx.nn.losses.margin_ranking_loss", false]], "matmul (c++ function)": [[0, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", false]], "matmul() (in module mlx.core)": [[202, "mlx.core.matmul", false]], "max (c++ function)": [[0, "_CPPv43maxRK5array14StreamOrDevice", false], [0, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43maxRK5arrayb14StreamOrDevice", false], [0, "_CPPv43maxRK5arrayib14StreamOrDevice", false]], "max() (array method)": [[57, "mlx.core.array.max", false]], "max() (in module mlx.core)": [[203, "mlx.core.max", false]], "maximum (c++ function)": [[0, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", false]], "maximum() (in module mlx.core)": [[204, "mlx.core.maximum", false]], "maxpool1d (class in mlx.nn)": [[352, "mlx.nn.MaxPool1d", false]], "maxpool2d (class in mlx.nn)": [[353, "mlx.nn.MaxPool2d", false]], "mean (c++ function)": [[0, "_CPPv44meanRK5array14StreamOrDevice", false], [0, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv44meanRK5arrayb14StreamOrDevice", false], [0, "_CPPv44meanRK5arrayib14StreamOrDevice", false]], "mean() (array method)": [[58, "mlx.core.array.mean", false]], "mean() (in module mlx.core)": [[205, "mlx.core.mean", false]], "meshgrid (c++ function)": [[0, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", false]], "meshgrid() (in module mlx.core)": [[206, "mlx.core.meshgrid", false]], "metal_kernel() (in module mlx.core.fast)": [[143, "mlx.core.fast.metal_kernel", false]], "min (c++ function)": [[0, "_CPPv43minRK5array14StreamOrDevice", false], [0, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43minRK5arrayb14StreamOrDevice", false], [0, "_CPPv43minRK5arrayib14StreamOrDevice", false]], "min() (array method)": [[59, "mlx.core.array.min", false]], "min() (in module mlx.core)": [[218, "mlx.core.min", false]], "minimum (c++ function)": [[0, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", false]], "minimum() (in module mlx.core)": [[219, "mlx.core.minimum", false]], "mish (class in mlx.nn)": [[354, "mlx.nn.Mish", false], [432, "mlx.nn.mish", false]], "module (class in mlx.nn)": [[449, "mlx.nn.Module", false]], "modules() (module method)": [[363, "mlx.nn.Module.modules", false]], "moveaxis (c++ function)": [[0, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", false]], "moveaxis() (array method)": [[60, "mlx.core.array.moveaxis", false]], "moveaxis() (in module mlx.core)": [[220, "mlx.core.moveaxis", false]], "mse_loss (class in mlx.nn.losses)": [[428, "mlx.nn.losses.mse_loss", false]], "multiheadattention (class in mlx.nn)": [[375, "mlx.nn.MultiHeadAttention", false]], "multiply (c++ function)": [[0, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", false]], "multiply() (in module mlx.core)": [[221, "mlx.core.multiply", false]], "multivariate_normal() (in module mlx.core.random)": [[242, "mlx.core.random.multivariate_normal", false]], "named_modules() (module method)": [[364, "mlx.nn.Module.named_modules", false]], "nan_to_num (c++ function)": [[0, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", false]], "nan_to_num() (in module mlx.core)": [[222, "mlx.core.nan_to_num", false]], "nbytes (array property)": [[61, "mlx.core.array.nbytes", false]], "ndim (array property)": [[62, "mlx.core.array.ndim", false]], "negative (c++ function)": [[0, "_CPPv48negativeRK5array14StreamOrDevice", false]], "negative() (in module mlx.core)": [[223, "mlx.core.negative", false]], "new_stream() (in module mlx.core)": [[224, "mlx.core.new_stream", false]], "nll_loss (class in mlx.nn.losses)": [[429, "mlx.nn.losses.nll_loss", false]], "norm() (in module mlx.core.linalg)": [[187, "mlx.core.linalg.norm", false]], "normal() (in module mlx.core.random)": [[243, "mlx.core.random.normal", false]], "normal() (in module mlx.nn.init)": [[404, "mlx.nn.init.normal", false]], "not_equal (c++ function)": [[0, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", false]], "not_equal() (in module mlx.core)": [[225, "mlx.core.not_equal", false]], "number_of_elements (c++ function)": [[0, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", false]], "ones (c++ function)": [[0, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", false]], "ones() (in module mlx.core)": [[226, "mlx.core.ones", false]], "ones_like (c++ function)": [[0, "_CPPv49ones_likeRK5array14StreamOrDevice", false]], "ones_like() (in module mlx.core)": [[227, "mlx.core.ones_like", false]], "operator!= (c++ function)": [[0, "_CPPv4I0Ene5array1TRK5array", false], [0, "_CPPv4I0Ene5arrayRK5array1T", false], [0, "_CPPv4neRK5arrayRK5array", false]], "operator% (c++ function)": [[0, "_CPPv4I0Erm5array1TRK5array", false], [0, "_CPPv4I0Erm5arrayRK5array1T", false], [0, "_CPPv4rmRK5arrayRK5array", false]], "operator& (c++ function)": [[0, "_CPPv4anRK5arrayRK5array", false]], "operator&& (c++ function)": [[0, "_CPPv4aaRK5arrayRK5array", false]], "operator* (c++ function)": [[0, "_CPPv4I0Eml5array1TRK5array", false], [0, "_CPPv4I0Eml5arrayRK5array1T", false], [0, "_CPPv4mlRK5arrayRK5array", false]], "operator+ (c++ function)": [[0, "_CPPv4I0Epl5array1TRK5array", false], [0, "_CPPv4I0Epl5arrayRK5array1T", false], [0, "_CPPv4plRK5arrayRK5array", false]], "operator- (c++ function)": [[0, "_CPPv4I0Emi5array1TRK5array", false], [0, "_CPPv4I0Emi5arrayRK5array1T", false], [0, "_CPPv4miRK5array", false], [0, "_CPPv4miRK5arrayRK5array", false]], "operator/ (c++ function)": [[0, "_CPPv4dvRK5arrayRK5array", false], [0, "_CPPv4dvRK5arrayd", false], [0, "_CPPv4dvdRK5array", false]], "operator< (c++ function)": [[0, "_CPPv4I0Elt5array1TRK5array", false], [0, "_CPPv4I0Elt5arrayRK5array1T", false], [0, "_CPPv4ltRK5arrayRK5array", false]], "operator<< (c++ function)": [[0, "_CPPv4lsRK5arrayRK5array", false]], "operator<= (c++ function)": [[0, "_CPPv4I0Ele5array1TRK5array", false], [0, "_CPPv4I0Ele5arrayRK5array1T", false], [0, "_CPPv4leRK5arrayRK5array", false]], "operator== (c++ function)": [[0, "_CPPv4I0Eeq5array1TRK5array", false], [0, "_CPPv4I0Eeq5arrayRK5array1T", false], [0, "_CPPv4eqRK5arrayRK5array", false]], "operator> (c++ function)": [[0, "_CPPv4I0Egt5array1TRK5array", false], [0, "_CPPv4I0Egt5arrayRK5array1T", false], [0, "_CPPv4gtRK5arrayRK5array", false]], "operator>= (c++ function)": [[0, "_CPPv4I0Ege5array1TRK5array", false], [0, "_CPPv4I0Ege5arrayRK5array1T", false], [0, "_CPPv4geRK5arrayRK5array", false]], "operator>> (c++ function)": [[0, "_CPPv4rsRK5arrayRK5array", false]], "operator^ (c++ function)": [[0, "_CPPv4eoRK5arrayRK5array", false]], "operator| (c++ function)": [[0, "_CPPv4orRK5arrayRK5array", false]], "operator|| (c++ function)": [[0, "_CPPv4ooRK5arrayRK5array", false]], "optimizer (class in mlx.optimizers)": [[471, "mlx.optimizers.Optimizer", false]], "outer (c++ function)": [[0, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", false]], "outer() (in module mlx.core)": [[228, "mlx.core.outer", false]], "pad (c++ function)": [[0, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", false]], "pad() (in module mlx.core)": [[229, "mlx.core.pad", false]], "parameters() (module method)": [[365, "mlx.nn.Module.parameters", false]], "partition (c++ function)": [[0, "_CPPv49partitionRK5arrayi14StreamOrDevice", false], [0, "_CPPv49partitionRK5arrayii14StreamOrDevice", false]], "partition() (in module mlx.core)": [[230, "mlx.core.partition", false]], "permutation() (in module mlx.core.random)": [[244, "mlx.core.random.permutation", false]], "power (c++ function)": [[0, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", false]], "power() (in module mlx.core)": [[231, "mlx.core.power", false]], "prelu (class in mlx.nn)": [[376, "mlx.nn.PReLU", false], [433, "mlx.nn.prelu", false]], "prod (c++ function)": [[0, "_CPPv44prodRK5array14StreamOrDevice", false], [0, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv44prodRK5arrayb14StreamOrDevice", false], [0, "_CPPv44prodRK5arrayib14StreamOrDevice", false]], "prod() (array method)": [[63, "mlx.core.array.prod", false]], "prod() (in module mlx.core)": [[232, "mlx.core.prod", false]], "put_along_axis (c++ function)": [[0, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false]], "put_along_axis() (in module mlx.core)": [[233, "mlx.core.put_along_axis", false]], "qr() (in module mlx.core.linalg)": [[188, "mlx.core.linalg.qr", false]], "quantize (c++ function)": [[0, "_CPPv48quantizeRK5arrayii14StreamOrDevice", false]], "quantize() (in module mlx.core)": [[234, "mlx.core.quantize", false]], "quantize() (in module mlx.nn)": [[304, "mlx.nn.quantize", false]], "quantized_matmul (c++ function)": [[0, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", false]], "quantized_matmul() (in module mlx.core)": [[235, "mlx.core.quantized_matmul", false]], "quantizedembedding (class in mlx.nn)": [[377, "mlx.nn.QuantizedEmbedding", false]], "quantizedlinear (class in mlx.nn)": [[378, "mlx.nn.QuantizedLinear", false]], "radians (c++ function)": [[0, "_CPPv47radiansRK5array14StreamOrDevice", false]], "radians() (in module mlx.core)": [[236, "mlx.core.radians", false]], "randint() (in module mlx.core.random)": [[245, "mlx.core.random.randint", false]], "real (c++ function)": [[0, "_CPPv44realRK5array14StreamOrDevice", false]], "real() (in module mlx.core)": [[250, "mlx.core.real", false]], "reciprocal (c++ function)": [[0, "_CPPv410reciprocalRK5array14StreamOrDevice", false]], "reciprocal() (array method)": [[64, "mlx.core.array.reciprocal", false]], "reciprocal() (in module mlx.core)": [[251, "mlx.core.reciprocal", false]], "recv() (in module mlx.core.distributed)": [[125, "mlx.core.distributed.recv", false]], "recv_like() (in module mlx.core.distributed)": [[126, "mlx.core.distributed.recv_like", false]], "relu (class in mlx.nn)": [[381, "mlx.nn.ReLU", false], [434, "mlx.nn.relu", false]], "relu6 (class in mlx.nn)": [[382, "mlx.nn.ReLU6", false], [435, "mlx.nn.relu6", false]], "remainder (c++ function)": [[0, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", false]], "remainder() (in module mlx.core)": [[252, "mlx.core.remainder", false]], "repeat (c++ function)": [[0, "_CPPv46repeatRK5arrayi14StreamOrDevice", false], [0, "_CPPv46repeatRK5arrayii14StreamOrDevice", false]], "repeat() (in module mlx.core)": [[253, "mlx.core.repeat", false]], "reset_peak_memory() (in module mlx.core.metal)": [[213, "mlx.core.metal.reset_peak_memory", false]], "reshape (c++ function)": [[0, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "reshape() (array method)": [[65, "mlx.core.array.reshape", false]], "reshape() (in module mlx.core)": [[254, "mlx.core.reshape", false]], "rfft() (in module mlx.core.fft)": [[156, "mlx.core.fft.rfft", false]], "rfft2() (in module mlx.core.fft)": [[157, "mlx.core.fft.rfft2", false]], "rfftn() (in module mlx.core.fft)": [[158, "mlx.core.fft.rfftn", false]], "right_shift (c++ function)": [[0, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", false]], "right_shift() (in module mlx.core)": [[255, "mlx.core.right_shift", false]], "rms_norm() (in module mlx.core.fast)": [[144, "mlx.core.fast.rms_norm", false]], "rmsnorm (class in mlx.nn)": [[379, "mlx.nn.RMSNorm", false]], "rmsprop (class in mlx.optimizers)": [[463, "mlx.optimizers.RMSprop", false]], "rnn (class in mlx.nn)": [[380, "mlx.nn.RNN", false]], "roll (c++ function)": [[0, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayi14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayii14StreamOrDevice", false]], "roll() (in module mlx.core)": [[256, "mlx.core.roll", false]], "rope (class in mlx.nn)": [[383, "mlx.nn.RoPE", false]], "rope() (in module mlx.core.fast)": [[145, "mlx.core.fast.rope", false]], "round (c++ function)": [[0, "_CPPv45roundRK5array14StreamOrDevice", false], [0, "_CPPv45roundRK5arrayi14StreamOrDevice", false]], "round() (array method)": [[66, "mlx.core.array.round", false]], "round() (in module mlx.core)": [[257, "mlx.core.round", false]], "rsqrt (c++ function)": [[0, "_CPPv45rsqrtRK5array14StreamOrDevice", false]], "rsqrt() (array method)": [[67, "mlx.core.array.rsqrt", false]], "rsqrt() (in module mlx.core)": [[258, "mlx.core.rsqrt", false]], "save() (in module mlx.core)": [[259, "mlx.core.save", false]], "save_gguf() (in module mlx.core)": [[260, "mlx.core.save_gguf", false]], "save_safetensors() (in module mlx.core)": [[261, "mlx.core.save_safetensors", false]], "save_weights() (module method)": [[366, "mlx.nn.Module.save_weights", false]], "savez() (in module mlx.core)": [[262, "mlx.core.savez", false]], "savez_compressed() (in module mlx.core)": [[263, "mlx.core.savez_compressed", false]], "scaled_dot_product_attention() (in module mlx.core.fast)": [[146, "mlx.core.fast.scaled_dot_product_attention", false]], "scatter (c++ function)": [[0, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_add (c++ function)": [[0, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_max (c++ function)": [[0, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_min (c++ function)": [[0, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_prod (c++ function)": [[0, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "seed() (in module mlx.core.random)": [[246, "mlx.core.random.seed", false]], "selu (class in mlx.nn)": [[384, "mlx.nn.SELU", false], [436, "mlx.nn.selu", false]], "send() (in module mlx.core.distributed)": [[127, "mlx.core.distributed.send", false]], "sequential (class in mlx.nn)": [[385, "mlx.nn.Sequential", false]], "set_cache_limit() (in module mlx.core.metal)": [[214, "mlx.core.metal.set_cache_limit", false]], "set_default_device() (in module mlx.core)": [[264, "mlx.core.set_default_device", false]], "set_default_stream() (in module mlx.core)": [[265, "mlx.core.set_default_stream", false]], "set_dtype() (module method)": [[367, "mlx.nn.Module.set_dtype", false]], "set_memory_limit() (in module mlx.core.metal)": [[215, "mlx.core.metal.set_memory_limit", false]], "sgd (class in mlx.optimizers)": [[464, "mlx.optimizers.SGD", false]], "shape (array property)": [[68, "mlx.core.array.shape", false]], "sigmoid (c++ function)": [[0, "_CPPv47sigmoidRK5array14StreamOrDevice", false]], "sigmoid (class in mlx.nn)": [[387, "mlx.nn.Sigmoid", false], [437, "mlx.nn.sigmoid", false]], "sigmoid() (in module mlx.core)": [[266, "mlx.core.sigmoid", false]], "sign (c++ function)": [[0, "_CPPv44signRK5array14StreamOrDevice", false]], "sign() (in module mlx.core)": [[267, "mlx.core.sign", false]], "silu (class in mlx.nn)": [[386, "mlx.nn.SiLU", false], [438, "mlx.nn.silu", false]], "sin (c++ function)": [[0, "_CPPv43sinRK5array14StreamOrDevice", false]], "sin() (array method)": [[69, "mlx.core.array.sin", false]], "sin() (in module mlx.core)": [[268, "mlx.core.sin", false]], "sinh (c++ function)": [[0, "_CPPv44sinhRK5array14StreamOrDevice", false]], "sinh() (in module mlx.core)": [[269, "mlx.core.sinh", false]], "sinusoidalpositionalencoding (class in mlx.nn)": [[388, "mlx.nn.SinusoidalPositionalEncoding", false]], "size (array property)": [[70, "mlx.core.array.size", false]], "slice (c++ function)": [[0, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false]], "slice_update (c++ function)": [[0, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false]], "smooth_l1_loss (class in mlx.nn.losses)": [[430, "mlx.nn.losses.smooth_l1_loss", false]], "softmax (c++ function)": [[0, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv47softmaxRK5arrayb14StreamOrDevice", false], [0, "_CPPv47softmaxRK5arrayib14StreamOrDevice", false]], "softmax (class in mlx.nn)": [[389, "mlx.nn.Softmax", false], [439, "mlx.nn.softmax", false]], "softmax() (in module mlx.core)": [[270, "mlx.core.softmax", false]], "softmin (class in mlx.nn)": [[390, "mlx.nn.Softmin", false], [440, "mlx.nn.softmin", false]], "softplus (class in mlx.nn)": [[391, "mlx.nn.Softplus", false], [441, "mlx.nn.softplus", false]], "softshrink (class in mlx.nn)": [[392, "mlx.nn.Softshrink", false], [442, "mlx.nn.softshrink", false]], "softsign (class in mlx.nn)": [[393, "mlx.nn.Softsign", false]], "sort (c++ function)": [[0, "_CPPv44sortRK5array14StreamOrDevice", false], [0, "_CPPv44sortRK5arrayi14StreamOrDevice", false]], "sort() (in module mlx.core)": [[271, "mlx.core.sort", false]], "split (c++ function)": [[0, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", false], [0, "_CPPv45splitRK5arrayi14StreamOrDevice", false], [0, "_CPPv45splitRK5arrayii14StreamOrDevice", false]], "split() (array method)": [[71, "mlx.core.array.split", false]], "split() (in module mlx.core)": [[272, "mlx.core.split", false]], "split() (in module mlx.core.random)": [[247, "mlx.core.random.split", false]], "sqrt (c++ function)": [[0, "_CPPv44sqrtRK5array14StreamOrDevice", false]], "sqrt() (array method)": [[72, "mlx.core.array.sqrt", false]], "sqrt() (in module mlx.core)": [[273, "mlx.core.sqrt", false]], "square (c++ function)": [[0, "_CPPv46squareRK5array14StreamOrDevice", false]], "square() (array method)": [[73, "mlx.core.array.square", false]], "square() (in module mlx.core)": [[274, "mlx.core.square", false]], "squeeze (c++ function)": [[0, "_CPPv47squeezeRK5array14StreamOrDevice", false], [0, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv47squeezeRK5arrayi14StreamOrDevice", false]], "squeeze() (array method)": [[74, "mlx.core.array.squeeze", false]], "squeeze() (in module mlx.core)": [[275, "mlx.core.squeeze", false]], "stack (c++ function)": [[0, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", false], [0, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", false]], "stack() (in module mlx.core)": [[276, "mlx.core.stack", false]], "start_capture() (in module mlx.core.metal)": [[216, "mlx.core.metal.start_capture", false]], "state (module property)": [[368, "mlx.nn.Module.state", false]], "state (optimizer property)": [[461, "mlx.optimizers.Optimizer.state", false]], "std (c++ function)": [[0, "_CPPv4StRK5array14StreamOrDevice", false], [0, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", false], [0, "_CPPv4StRK5arraybi14StreamOrDevice", false], [0, "_CPPv4StRK5arrayibi14StreamOrDevice", false]], "std() (array method)": [[75, "mlx.core.array.std", false]], "std() (in module mlx.core)": [[277, "mlx.core.std", false]], "step (class in mlx.nn)": [[394, "mlx.nn.Step", false], [443, "mlx.nn.step", false]], "step_decay() (in module mlx.optimizers)": [[469, "mlx.optimizers.step_decay", false]], "stop_capture() (in module mlx.core.metal)": [[217, "mlx.core.metal.stop_capture", false]], "stop_gradient (c++ function)": [[0, "_CPPv413stop_gradientRK5array14StreamOrDevice", false]], "stop_gradient() (in module mlx.core)": [[278, "mlx.core.stop_gradient", false]], "stream (class in mlx.core)": [[312, "mlx.core.Stream", false]], "stream() (in module mlx.core)": [[279, "mlx.core.stream", false]], "subtract (c++ function)": [[0, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", false]], "subtract() (in module mlx.core)": [[280, "mlx.core.subtract", false]], "sum (c++ function)": [[0, "_CPPv43sumRK5array14StreamOrDevice", false], [0, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43sumRK5arrayb14StreamOrDevice", false], [0, "_CPPv43sumRK5arrayib14StreamOrDevice", false]], "sum() (array method)": [[76, "mlx.core.array.sum", false]], "sum() (in module mlx.core)": [[281, "mlx.core.sum", false]], "svd() (in module mlx.core.linalg)": [[189, "mlx.core.linalg.svd", false]], "swapaxes (c++ function)": [[0, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", false]], "swapaxes() (array method)": [[77, "mlx.core.array.swapaxes", false]], "swapaxes() (in module mlx.core)": [[282, "mlx.core.swapaxes", false]], "synchronize() (in module mlx.core)": [[283, "mlx.core.synchronize", false]], "t (array property)": [[31, "mlx.core.array.T", false]], "take (c++ function)": [[0, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", false], [0, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv44takeRK5arrayi14StreamOrDevice", false], [0, "_CPPv44takeRK5arrayii14StreamOrDevice", false]], "take() (in module mlx.core)": [[284, "mlx.core.take", false]], "take_along_axis (c++ function)": [[0, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", false]], "take_along_axis() (in module mlx.core)": [[285, "mlx.core.take_along_axis", false]], "tan (c++ function)": [[0, "_CPPv43tanRK5array14StreamOrDevice", false]], "tan() (in module mlx.core)": [[286, "mlx.core.tan", false]], "tanh (c++ function)": [[0, "_CPPv44tanhRK5array14StreamOrDevice", false]], "tanh (class in mlx.nn)": [[395, "mlx.nn.Tanh", false], [444, "mlx.nn.tanh", false]], "tanh() (in module mlx.core)": [[287, "mlx.core.tanh", false]], "tensordot (c++ function)": [[0, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", false], [0, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false]], "tensordot() (in module mlx.core)": [[288, "mlx.core.tensordot", false]], "tile (c++ function)": [[0, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "tile() (in module mlx.core)": [[289, "mlx.core.tile", false]], "tolist() (array method)": [[78, "mlx.core.array.tolist", false]], "topk (c++ function)": [[0, "_CPPv44topkRK5arrayi14StreamOrDevice", false], [0, "_CPPv44topkRK5arrayii14StreamOrDevice", false]], "topk() (in module mlx.core)": [[290, "mlx.core.topk", false]], "trace (c++ function)": [[0, "_CPPv45traceRK5array14StreamOrDevice", false], [0, "_CPPv45traceRK5arrayiii14StreamOrDevice", false], [0, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", false]], "trace() (in module mlx.core)": [[291, "mlx.core.trace", false]], "train() (module method)": [[369, "mlx.nn.Module.train", false]], "trainable_parameters() (module method)": [[370, "mlx.nn.Module.trainable_parameters", false]], "training (module property)": [[371, "mlx.nn.Module.training", false]], "transformer (class in mlx.nn)": [[396, "mlx.nn.Transformer", false]], "transpose (c++ function)": [[0, "_CPPv49transposeRK5array14StreamOrDevice", false], [0, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", false], [0, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "transpose() (array method)": [[79, "mlx.core.array.transpose", false]], "transpose() (in module mlx.core)": [[292, "mlx.core.transpose", false]], "tree_flatten() (in module mlx.utils)": [[307, "mlx.utils.tree_flatten", false]], "tree_map() (in module mlx.utils)": [[308, "mlx.utils.tree_map", false]], "tree_map_with_path() (in module mlx.utils)": [[309, "mlx.utils.tree_map_with_path", false]], "tree_reduce() (in module mlx.utils)": [[310, "mlx.utils.tree_reduce", false]], "tree_unflatten() (in module mlx.utils)": [[311, "mlx.utils.tree_unflatten", false]], "tri (c++ function)": [[0, "_CPPv43trii5Dtype14StreamOrDevice", false], [0, "_CPPv43triiii5Dtype14StreamOrDevice", false]], "tri() (in module mlx.core)": [[293, "mlx.core.tri", false]], "tri_inv() (in module mlx.core.linalg)": [[190, "mlx.core.linalg.tri_inv", false]], "tril (c++ function)": [[0, "_CPPv44tril5arrayi14StreamOrDevice", false]], "tril() (in module mlx.core)": [[294, "mlx.core.tril", false]], "triplet_loss (class in mlx.nn.losses)": [[431, "mlx.nn.losses.triplet_loss", false]], "triu (c++ function)": [[0, "_CPPv44triu5arrayi14StreamOrDevice", false]], "triu() (in module mlx.core)": [[295, "mlx.core.triu", false]], "truncated_normal() (in module mlx.core.random)": [[248, "mlx.core.random.truncated_normal", false]], "unfreeze() (module method)": [[372, "mlx.nn.Module.unfreeze", false]], "uniform() (in module mlx.core.random)": [[249, "mlx.core.random.uniform", false]], "uniform() (in module mlx.nn.init)": [[405, "mlx.nn.init.uniform", false]], "update() (module method)": [[373, "mlx.nn.Module.update", false]], "update() (optimizer method)": [[462, "mlx.optimizers.Optimizer.update", false]], "update_modules() (module method)": [[374, "mlx.nn.Module.update_modules", false]], "upsample (class in mlx.nn)": [[397, "mlx.nn.Upsample", false]], "value_and_grad() (in module mlx.core)": [[296, "mlx.core.value_and_grad", false]], "value_and_grad() (in module mlx.nn)": [[305, "mlx.nn.value_and_grad", false]], "var (c++ function)": [[0, "_CPPv43varRK5array14StreamOrDevice", false], [0, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", false], [0, "_CPPv43varRK5arraybi14StreamOrDevice", false], [0, "_CPPv43varRK5arrayibi14StreamOrDevice", false]], "var() (array method)": [[80, "mlx.core.array.var", false]], "var() (in module mlx.core)": [[297, "mlx.core.var", false]], "view (c++ function)": [[0, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", false]], "view() (array method)": [[81, "mlx.core.array.view", false]], "view() (in module mlx.core)": [[298, "mlx.core.view", false]], "vjp() (in module mlx.core)": [[299, "mlx.core.vjp", false]], "vmap() (in module mlx.core)": [[300, "mlx.core.vmap", false]], "where (c++ function)": [[0, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", false]], "where() (in module mlx.core)": [[301, "mlx.core.where", false]], "zeros (c++ function)": [[0, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", false]], "zeros() (in module mlx.core)": [[302, "mlx.core.zeros", false]], "zeros_like (c++ function)": [[0, "_CPPv410zeros_likeRK5array14StreamOrDevice", false]], "zeros_like() (in module mlx.core)": [[303, "mlx.core.zeros_like", false]]}, "objects": {"": [[0, 0, 1, "_CPPv43absRK5array14StreamOrDevice", "abs"], [0, 1, 1, "_CPPv43absRK5array14StreamOrDevice", "abs::a"], [0, 1, 1, "_CPPv43absRK5array14StreamOrDevice", "abs::s"], [0, 0, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add"], [0, 1, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add::a"], [0, 1, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add::b"], [0, 1, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add::s"], [0, 0, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::a"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::alpha"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::b"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::beta"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::c"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::s"], [0, 0, 1, "_CPPv43allRK5array14StreamOrDevice", "all"], [0, 0, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all"], [0, 0, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all"], [0, 0, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all"], [0, 1, 1, "_CPPv43allRK5array14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::axes"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::axis"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::keepdims"], [0, 1, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all::keepdims"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::keepdims"], [0, 1, 1, "_CPPv43allRK5array14StreamOrDevice", "all::s"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::s"], [0, 1, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all::s"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::s"], [0, 0, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::a"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::atol"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::b"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::equal_nan"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::rtol"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::s"], [0, 0, 1, "_CPPv43anyRK5array14StreamOrDevice", "any"], [0, 0, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any"], [0, 0, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any"], [0, 0, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any"], [0, 1, 1, "_CPPv43anyRK5array14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::axes"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::axis"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::keepdims"], [0, 1, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any::keepdims"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::keepdims"], [0, 1, 1, "_CPPv43anyRK5array14StreamOrDevice", "any::s"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::s"], [0, 1, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any::s"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::s"], [0, 0, 1, "_CPPv46aranged14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangedd14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeddd14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangei14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeii14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeiii14StreamOrDevice", "arange"], [0, 1, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange::dtype"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::dtype"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::dtype"], [0, 1, 1, "_CPPv46aranged14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangedd14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangei14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeii14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangedd14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeii14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::step"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::step"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::step"], [0, 1, 1, "_CPPv46aranged14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangedd14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangei14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeii14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::stop"], [0, 0, 1, "_CPPv46arccosRK5array14StreamOrDevice", "arccos"], [0, 1, 1, "_CPPv46arccosRK5array14StreamOrDevice", "arccos::a"], [0, 1, 1, "_CPPv46arccosRK5array14StreamOrDevice", "arccos::s"], [0, 0, 1, "_CPPv47arccoshRK5array14StreamOrDevice", "arccosh"], [0, 1, 1, "_CPPv47arccoshRK5array14StreamOrDevice", "arccosh::a"], [0, 1, 1, "_CPPv47arccoshRK5array14StreamOrDevice", "arccosh::s"], [0, 0, 1, "_CPPv46arcsinRK5array14StreamOrDevice", "arcsin"], [0, 1, 1, "_CPPv46arcsinRK5array14StreamOrDevice", "arcsin::a"], [0, 1, 1, "_CPPv46arcsinRK5array14StreamOrDevice", "arcsin::s"], [0, 0, 1, "_CPPv47arcsinhRK5array14StreamOrDevice", "arcsinh"], [0, 1, 1, "_CPPv47arcsinhRK5array14StreamOrDevice", "arcsinh::a"], [0, 1, 1, "_CPPv47arcsinhRK5array14StreamOrDevice", "arcsinh::s"], [0, 0, 1, "_CPPv46arctanRK5array14StreamOrDevice", "arctan"], [0, 0, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2"], [0, 1, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2::a"], [0, 1, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2::b"], [0, 1, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2::s"], [0, 1, 1, "_CPPv46arctanRK5array14StreamOrDevice", "arctan::a"], [0, 1, 1, "_CPPv46arctanRK5array14StreamOrDevice", "arctan::s"], [0, 0, 1, "_CPPv47arctanhRK5array14StreamOrDevice", "arctanh"], [0, 1, 1, "_CPPv47arctanhRK5array14StreamOrDevice", "arctanh::a"], [0, 1, 1, "_CPPv47arctanhRK5array14StreamOrDevice", "arctanh::s"], [0, 0, 1, "_CPPv46argmaxRK5array14StreamOrDevice", "argmax"], [0, 0, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax"], [0, 0, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax"], [0, 1, 1, "_CPPv46argmaxRK5array14StreamOrDevice", "argmax::a"], [0, 1, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax::a"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::a"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::axis"], [0, 1, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax::keepdims"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::keepdims"], [0, 1, 1, "_CPPv46argmaxRK5array14StreamOrDevice", "argmax::s"], [0, 1, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax::s"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::s"], [0, 0, 1, "_CPPv46argminRK5array14StreamOrDevice", "argmin"], [0, 0, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin"], [0, 0, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin"], [0, 1, 1, "_CPPv46argminRK5array14StreamOrDevice", "argmin::a"], [0, 1, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin::a"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::a"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::axis"], [0, 1, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin::keepdims"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::keepdims"], [0, 1, 1, "_CPPv46argminRK5array14StreamOrDevice", "argmin::s"], [0, 1, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin::s"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::s"], [0, 0, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition"], [0, 0, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition"], [0, 1, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition::a"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::a"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::axis"], [0, 1, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition::kth"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::kth"], [0, 1, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition::s"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::s"], [0, 0, 1, "_CPPv47argsortRK5array14StreamOrDevice", "argsort"], [0, 0, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort"], [0, 1, 1, "_CPPv47argsortRK5array14StreamOrDevice", "argsort::a"], [0, 1, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort::a"], [0, 1, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort::axis"], [0, 1, 1, "_CPPv47argsortRK5array14StreamOrDevice", "argsort::s"], [0, 1, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort::s"], [0, 0, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal"], [0, 0, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal::a"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::a"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal::b"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::b"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::equal_nan"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal::s"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::s"], [0, 0, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::a"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::offset"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::s"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::shape"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::strides"], [0, 0, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype"], [0, 1, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype::a"], [0, 1, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype::dtype"], [0, 1, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype::s"], [0, 0, 1, "_CPPv410atleast_1dRK5array14StreamOrDevice", "atleast_1d"], [0, 0, 1, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_1d"], [0, 1, 1, "_CPPv410atleast_1dRK5array14StreamOrDevice", "atleast_1d::a"], [0, 1, 1, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_1d::a"], [0, 1, 1, "_CPPv410atleast_1dRK5array14StreamOrDevice", "atleast_1d::s"], [0, 1, 1, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_1d::s"], [0, 0, 1, "_CPPv410atleast_2dRK5array14StreamOrDevice", "atleast_2d"], [0, 0, 1, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_2d"], [0, 1, 1, "_CPPv410atleast_2dRK5array14StreamOrDevice", "atleast_2d::a"], [0, 1, 1, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_2d::a"], [0, 1, 1, "_CPPv410atleast_2dRK5array14StreamOrDevice", "atleast_2d::s"], [0, 1, 1, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_2d::s"], [0, 0, 1, "_CPPv410atleast_3dRK5array14StreamOrDevice", "atleast_3d"], [0, 0, 1, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_3d"], [0, 1, 1, "_CPPv410atleast_3dRK5array14StreamOrDevice", "atleast_3d::a"], [0, 1, 1, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_3d::a"], [0, 1, 1, "_CPPv410atleast_3dRK5array14StreamOrDevice", "atleast_3d::s"], [0, 1, 1, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_3d::s"], [0, 0, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and"], [0, 1, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and::a"], [0, 1, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and::b"], [0, 1, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and::s"], [0, 0, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or"], [0, 1, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or::a"], [0, 1, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or::b"], [0, 1, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or::s"], [0, 0, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor"], [0, 1, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor::a"], [0, 1, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor::b"], [0, 1, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor::s"], [0, 0, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::a"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::b"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::block_size"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::mask_lhs"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::mask_out"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::mask_rhs"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::s"], [0, 0, 1, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", "broadcast_arrays"], [0, 1, 1, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", "broadcast_arrays::inputs"], [0, 1, 1, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", "broadcast_arrays::s"], [0, 0, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to"], [0, 1, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to::a"], [0, 1, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to::s"], [0, 1, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to::shape"], [0, 0, 1, "_CPPv44ceilRK5array14StreamOrDevice", "ceil"], [0, 1, 1, "_CPPv44ceilRK5array14StreamOrDevice", "ceil::a"], [0, 1, 1, "_CPPv44ceilRK5array14StreamOrDevice", "ceil::s"], [0, 0, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::a"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::a_max"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::a_min"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::s"], [0, 0, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", "concatenate"], [0, 0, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", "concatenate::arrays"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate::arrays"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate::axis"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", "concatenate::s"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate::s"], [0, 0, 1, "_CPPv49conjugateRK5array14StreamOrDevice", "conjugate"], [0, 1, 1, "_CPPv49conjugateRK5array14StreamOrDevice", "conjugate::a"], [0, 1, 1, "_CPPv49conjugateRK5array14StreamOrDevice", "conjugate::s"], [0, 0, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::dilation"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::groups"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::input"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::padding"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::s"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::stride"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::weight"], [0, 0, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::dilation"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::groups"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::input"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::padding"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::s"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::stride"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::weight"], [0, 0, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::dilation"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::groups"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::input"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::padding"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::s"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::stride"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::weight"], [0, 0, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general"], [0, 0, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::flip"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::flip"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::groups"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::groups"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input_dilation"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input_dilation"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::kernel_dilation"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::kernel_dilation"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::padding"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::padding_hi"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::padding_lo"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::s"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::s"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::stride"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::stride"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::weight"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::weight"], [0, 0, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::dilation"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::groups"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::input"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::padding"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::s"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::stride"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::weight"], [0, 0, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::dilation"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::groups"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::input"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::padding"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::s"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::stride"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::weight"], [0, 0, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::dilation"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::groups"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::input"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::padding"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::s"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::stride"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::weight"], [0, 0, 1, "_CPPv44copy5array14StreamOrDevice", "copy"], [0, 1, 1, "_CPPv44copy5array14StreamOrDevice", "copy::a"], [0, 1, 1, "_CPPv44copy5array14StreamOrDevice", "copy::s"], [0, 0, 1, "_CPPv43cosRK5array14StreamOrDevice", "cos"], [0, 1, 1, "_CPPv43cosRK5array14StreamOrDevice", "cos::a"], [0, 1, 1, "_CPPv43cosRK5array14StreamOrDevice", "cos::s"], [0, 0, 1, "_CPPv44coshRK5array14StreamOrDevice", "cosh"], [0, 1, 1, "_CPPv44coshRK5array14StreamOrDevice", "cosh::a"], [0, 1, 1, "_CPPv44coshRK5array14StreamOrDevice", "cosh::s"], [0, 0, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::a"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::axis"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::inclusive"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::reverse"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::s"], [0, 0, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::a"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::axis"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::inclusive"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::reverse"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::s"], [0, 0, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::a"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::axis"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::inclusive"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::reverse"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::s"], [0, 0, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::a"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::axis"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::inclusive"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::reverse"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::s"], [0, 0, 1, "_CPPv47degreesRK5array14StreamOrDevice", "degrees"], [0, 1, 1, "_CPPv47degreesRK5array14StreamOrDevice", "degrees::a"], [0, 1, 1, "_CPPv47degreesRK5array14StreamOrDevice", "degrees::s"], [0, 0, 1, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", "depends"], [0, 1, 1, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", "depends::dependencies"], [0, 1, 1, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", "depends::inputs"], [0, 0, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::biases"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::bits"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::group_size"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::s"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::scales"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::w"], [0, 0, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag"], [0, 1, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag::a"], [0, 1, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag::k"], [0, 1, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag::s"], [0, 0, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::a"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::axis1"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::axis2"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::offset"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::s"], [0, 0, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide"], [0, 1, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide::a"], [0, 1, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide::b"], [0, 1, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide::s"], [0, 0, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod"], [0, 1, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod::a"], [0, 1, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod::b"], [0, 1, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod::s"], [0, 0, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal"], [0, 1, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal::a"], [0, 1, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal::b"], [0, 1, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal::s"], [0, 0, 1, "_CPPv43erfRK5array14StreamOrDevice", "erf"], [0, 1, 1, "_CPPv43erfRK5array14StreamOrDevice", "erf::a"], [0, 1, 1, "_CPPv43erfRK5array14StreamOrDevice", "erf::s"], [0, 0, 1, "_CPPv46erfinvRK5array14StreamOrDevice", "erfinv"], [0, 1, 1, "_CPPv46erfinvRK5array14StreamOrDevice", "erfinv::a"], [0, 1, 1, "_CPPv46erfinvRK5array14StreamOrDevice", "erfinv::s"], [0, 0, 1, "_CPPv43expRK5array14StreamOrDevice", "exp"], [0, 1, 1, "_CPPv43expRK5array14StreamOrDevice", "exp::a"], [0, 1, 1, "_CPPv43expRK5array14StreamOrDevice", "exp::s"], [0, 0, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims"], [0, 0, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims::a"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims::a"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims::axes"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims::axis"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims::s"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims::s"], [0, 0, 1, "_CPPv45expm1RK5array14StreamOrDevice", "expm1"], [0, 1, 1, "_CPPv45expm1RK5array14StreamOrDevice", "expm1::a"], [0, 1, 1, "_CPPv45expm1RK5array14StreamOrDevice", "expm1::s"], [0, 0, 1, "_CPPv43eyei14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyeii14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyeiii14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye"], [0, 1, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye::dtype"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::dtype"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::k"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::k"], [0, 1, 1, "_CPPv43eyeii14StreamOrDevice", "eye::m"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::m"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::m"], [0, 1, 1, "_CPPv43eyei14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyeii14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyei14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyeii14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::s"], [0, 0, 1, "_CPPv47flattenRK5array14StreamOrDevice", "flatten"], [0, 0, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten"], [0, 1, 1, "_CPPv47flattenRK5array14StreamOrDevice", "flatten::a"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::a"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::end_axis"], [0, 1, 1, "_CPPv47flattenRK5array14StreamOrDevice", "flatten::s"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::s"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::start_axis"], [0, 0, 1, "_CPPv45floorRK5array14StreamOrDevice", "floor"], [0, 1, 1, "_CPPv45floorRK5array14StreamOrDevice", "floor::a"], [0, 1, 1, "_CPPv45floorRK5array14StreamOrDevice", "floor::s"], [0, 0, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide"], [0, 1, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide::a"], [0, 1, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide::b"], [0, 1, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide::s"], [0, 0, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full"], [0, 0, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full"], [0, 0, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full"], [0, 0, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full"], [0, 2, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::T"], [0, 2, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::T"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::dtype"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::dtype"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::val"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::val"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full::vals"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::vals"], [0, 0, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather"], [0, 0, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::a"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::a"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::axes"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::axis"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::indices"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::indices"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::s"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::s"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::slice_sizes"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::slice_sizes"], [0, 0, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::a"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::b"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::lhs_indices"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::rhs_indices"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::s"], [0, 0, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::biases"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::bits"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::group_size"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::lhs_indices"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::rhs_indices"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::s"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::scales"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::transpose"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::w"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::x"], [0, 0, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater"], [0, 1, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater::a"], [0, 1, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater::b"], [0, 1, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater::s"], [0, 0, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal"], [0, 1, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal::a"], [0, 1, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal::b"], [0, 1, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal::s"], [0, 0, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform"], [0, 1, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform::a"], [0, 1, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform::s"], [0, 1, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform::scale"], [0, 0, 1, "_CPPv48identityi14StreamOrDevice", "identity"], [0, 0, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity"], [0, 1, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity::dtype"], [0, 1, 1, "_CPPv48identityi14StreamOrDevice", "identity::n"], [0, 1, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity::n"], [0, 1, 1, "_CPPv48identityi14StreamOrDevice", "identity::s"], [0, 1, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity::s"], [0, 0, 1, "_CPPv44imagRK5array14StreamOrDevice", "imag"], [0, 1, 1, "_CPPv44imagRK5array14StreamOrDevice", "imag::a"], [0, 1, 1, "_CPPv44imagRK5array14StreamOrDevice", "imag::s"], [0, 0, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner"], [0, 1, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner::a"], [0, 1, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner::b"], [0, 1, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner::s"], [0, 0, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::a"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::atol"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::b"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::equal_nan"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::rtol"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::s"], [0, 0, 1, "_CPPv48isfiniteRK5array14StreamOrDevice", "isfinite"], [0, 1, 1, "_CPPv48isfiniteRK5array14StreamOrDevice", "isfinite::a"], [0, 1, 1, "_CPPv48isfiniteRK5array14StreamOrDevice", "isfinite::s"], [0, 0, 1, "_CPPv45isinfRK5array14StreamOrDevice", "isinf"], [0, 1, 1, "_CPPv45isinfRK5array14StreamOrDevice", "isinf::a"], [0, 1, 1, "_CPPv45isinfRK5array14StreamOrDevice", "isinf::s"], [0, 0, 1, "_CPPv45isnanRK5array14StreamOrDevice", "isnan"], [0, 1, 1, "_CPPv45isnanRK5array14StreamOrDevice", "isnan::a"], [0, 1, 1, "_CPPv45isnanRK5array14StreamOrDevice", "isnan::s"], [0, 0, 1, "_CPPv48isneginfRK5array14StreamOrDevice", "isneginf"], [0, 1, 1, "_CPPv48isneginfRK5array14StreamOrDevice", "isneginf::a"], [0, 1, 1, "_CPPv48isneginfRK5array14StreamOrDevice", "isneginf::s"], [0, 0, 1, "_CPPv48isposinfRK5array14StreamOrDevice", "isposinf"], [0, 1, 1, "_CPPv48isposinfRK5array14StreamOrDevice", "isposinf::a"], [0, 1, 1, "_CPPv48isposinfRK5array14StreamOrDevice", "isposinf::s"], [0, 0, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift"], [0, 1, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift::a"], [0, 1, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift::b"], [0, 1, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift::s"], [0, 0, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less"], [0, 1, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less::a"], [0, 1, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less::b"], [0, 1, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less::s"], [0, 0, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal"], [0, 1, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal::a"], [0, 1, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal::b"], [0, 1, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal::s"], [0, 0, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::dtype"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::num"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::s"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::start"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::stop"], [0, 0, 1, "_CPPv43logRK5array14StreamOrDevice", "log"], [0, 0, 1, "_CPPv45log10RK5array14StreamOrDevice", "log10"], [0, 1, 1, "_CPPv45log10RK5array14StreamOrDevice", "log10::a"], [0, 1, 1, "_CPPv45log10RK5array14StreamOrDevice", "log10::s"], [0, 0, 1, "_CPPv45log1pRK5array14StreamOrDevice", "log1p"], [0, 1, 1, "_CPPv45log1pRK5array14StreamOrDevice", "log1p::a"], [0, 1, 1, "_CPPv45log1pRK5array14StreamOrDevice", "log1p::s"], [0, 0, 1, "_CPPv44log2RK5array14StreamOrDevice", "log2"], [0, 1, 1, "_CPPv44log2RK5array14StreamOrDevice", "log2::a"], [0, 1, 1, "_CPPv44log2RK5array14StreamOrDevice", "log2::s"], [0, 1, 1, "_CPPv43logRK5array14StreamOrDevice", "log::a"], [0, 1, 1, "_CPPv43logRK5array14StreamOrDevice", "log::s"], [0, 0, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp"], [0, 1, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp::a"], [0, 1, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp::b"], [0, 1, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp::s"], [0, 0, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and"], [0, 1, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and::a"], [0, 1, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and::b"], [0, 1, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and::s"], [0, 0, 1, "_CPPv411logical_notRK5array14StreamOrDevice", "logical_not"], [0, 1, 1, "_CPPv411logical_notRK5array14StreamOrDevice", "logical_not::a"], [0, 1, 1, "_CPPv411logical_notRK5array14StreamOrDevice", "logical_not::s"], [0, 0, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or"], [0, 1, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or::a"], [0, 1, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or::b"], [0, 1, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or::s"], [0, 0, 1, "_CPPv49logsumexpRK5array14StreamOrDevice", "logsumexp"], [0, 0, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp"], [0, 0, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp"], [0, 0, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp"], [0, 1, 1, "_CPPv49logsumexpRK5array14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::axes"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::axis"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::keepdims"], [0, 1, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp::keepdims"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::keepdims"], [0, 1, 1, "_CPPv49logsumexpRK5array14StreamOrDevice", "logsumexp::s"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::s"], [0, 1, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp::s"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::s"], [0, 0, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul"], [0, 1, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul::a"], [0, 1, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul::b"], [0, 1, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul::s"], [0, 0, 1, "_CPPv43maxRK5array14StreamOrDevice", "max"], [0, 0, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max"], [0, 0, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max"], [0, 0, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max"], [0, 1, 1, "_CPPv43maxRK5array14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::axes"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::axis"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::keepdims"], [0, 1, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max::keepdims"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::keepdims"], [0, 1, 1, "_CPPv43maxRK5array14StreamOrDevice", "max::s"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::s"], [0, 1, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max::s"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::s"], [0, 0, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum"], [0, 1, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum::a"], [0, 1, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum::b"], [0, 1, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum::s"], [0, 0, 1, "_CPPv44meanRK5array14StreamOrDevice", "mean"], [0, 0, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean"], [0, 0, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean"], [0, 0, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean"], [0, 1, 1, "_CPPv44meanRK5array14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::axes"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::axis"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::keepdims"], [0, 1, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean::keepdims"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::keepdims"], [0, 1, 1, "_CPPv44meanRK5array14StreamOrDevice", "mean::s"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::s"], [0, 1, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean::s"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::s"], [0, 0, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::arrays"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::indexing"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::s"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::sparse"], [0, 0, 1, "_CPPv43minRK5array14StreamOrDevice", "min"], [0, 0, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min"], [0, 0, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min"], [0, 0, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min"], [0, 1, 1, "_CPPv43minRK5array14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::axes"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::axis"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::keepdims"], [0, 1, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min::keepdims"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::keepdims"], [0, 1, 1, "_CPPv43minRK5array14StreamOrDevice", "min::s"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::s"], [0, 1, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min::s"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::s"], [0, 0, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum"], [0, 1, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum::a"], [0, 1, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum::b"], [0, 1, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum::s"], [0, 0, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::a"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::destination"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::s"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::source"], [0, 0, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply"], [0, 1, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply::a"], [0, 1, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply::b"], [0, 1, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply::s"], [0, 0, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::a"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::nan"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::neginf"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::posinf"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::s"], [0, 0, 1, "_CPPv48negativeRK5array14StreamOrDevice", "negative"], [0, 1, 1, "_CPPv48negativeRK5array14StreamOrDevice", "negative::a"], [0, 1, 1, "_CPPv48negativeRK5array14StreamOrDevice", "negative::s"], [0, 0, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal"], [0, 1, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal::a"], [0, 1, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal::b"], [0, 1, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal::s"], [0, 0, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::a"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::axes"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::dtype"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::inverted"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::s"], [0, 0, 1, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", "ones"], [0, 0, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones::dtype"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", "ones::s"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones::s"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", "ones::shape"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones::shape"], [0, 0, 1, "_CPPv49ones_likeRK5array14StreamOrDevice", "ones_like"], [0, 1, 1, "_CPPv49ones_likeRK5array14StreamOrDevice", "ones_like::a"], [0, 1, 1, "_CPPv49ones_likeRK5array14StreamOrDevice", "ones_like::s"], [0, 0, 1, "_CPPv4I0Ene5array1TRK5array", "operator!="], [0, 0, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!="], [0, 0, 1, "_CPPv4neRK5arrayRK5array", "operator!="], [0, 2, 1, "_CPPv4I0Ene5array1TRK5array", "operator!=::T"], [0, 2, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!=::T"], [0, 1, 1, "_CPPv4I0Ene5array1TRK5array", "operator!=::a"], [0, 1, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!=::a"], [0, 1, 1, "_CPPv4neRK5arrayRK5array", "operator!=::a"], [0, 1, 1, "_CPPv4I0Ene5array1TRK5array", "operator!=::b"], [0, 1, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!=::b"], [0, 1, 1, "_CPPv4neRK5arrayRK5array", "operator!=::b"], [0, 0, 1, "_CPPv4I0Erm5array1TRK5array", "operator%"], [0, 0, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%"], [0, 0, 1, "_CPPv4rmRK5arrayRK5array", "operator%"], [0, 2, 1, "_CPPv4I0Erm5array1TRK5array", "operator%::T"], [0, 2, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%::T"], [0, 1, 1, "_CPPv4I0Erm5array1TRK5array", "operator%::a"], [0, 1, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%::a"], [0, 1, 1, "_CPPv4rmRK5arrayRK5array", "operator%::a"], [0, 1, 1, "_CPPv4I0Erm5array1TRK5array", "operator%::b"], [0, 1, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%::b"], [0, 1, 1, "_CPPv4rmRK5arrayRK5array", "operator%::b"], [0, 0, 1, "_CPPv4anRK5arrayRK5array", "operator&"], [0, 0, 1, "_CPPv4aaRK5arrayRK5array", "operator&&"], [0, 1, 1, "_CPPv4aaRK5arrayRK5array", "operator&&::a"], [0, 1, 1, "_CPPv4aaRK5arrayRK5array", "operator&&::b"], [0, 1, 1, "_CPPv4anRK5arrayRK5array", "operator&::a"], [0, 1, 1, "_CPPv4anRK5arrayRK5array", "operator&::b"], [0, 0, 1, "_CPPv4I0Eml5array1TRK5array", "operator*"], [0, 0, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*"], [0, 0, 1, "_CPPv4mlRK5arrayRK5array", "operator*"], [0, 2, 1, "_CPPv4I0Eml5array1TRK5array", "operator*::T"], [0, 2, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*::T"], [0, 1, 1, "_CPPv4I0Eml5array1TRK5array", "operator*::a"], [0, 1, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*::a"], [0, 1, 1, "_CPPv4mlRK5arrayRK5array", "operator*::a"], [0, 1, 1, "_CPPv4I0Eml5array1TRK5array", "operator*::b"], [0, 1, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*::b"], [0, 1, 1, "_CPPv4mlRK5arrayRK5array", "operator*::b"], [0, 0, 1, "_CPPv4I0Epl5array1TRK5array", "operator+"], [0, 0, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+"], [0, 0, 1, "_CPPv4plRK5arrayRK5array", "operator+"], [0, 2, 1, "_CPPv4I0Epl5array1TRK5array", "operator+::T"], [0, 2, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+::T"], [0, 1, 1, "_CPPv4I0Epl5array1TRK5array", "operator+::a"], [0, 1, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+::a"], [0, 1, 1, "_CPPv4plRK5arrayRK5array", "operator+::a"], [0, 1, 1, "_CPPv4I0Epl5array1TRK5array", "operator+::b"], [0, 1, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+::b"], [0, 1, 1, "_CPPv4plRK5arrayRK5array", "operator+::b"], [0, 0, 1, "_CPPv4I0Emi5array1TRK5array", "operator-"], [0, 0, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-"], [0, 0, 1, "_CPPv4miRK5array", "operator-"], [0, 0, 1, "_CPPv4miRK5arrayRK5array", "operator-"], [0, 2, 1, "_CPPv4I0Emi5array1TRK5array", "operator-::T"], [0, 2, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-::T"], [0, 1, 1, "_CPPv4I0Emi5array1TRK5array", "operator-::a"], [0, 1, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-::a"], [0, 1, 1, "_CPPv4miRK5array", "operator-::a"], [0, 1, 1, "_CPPv4miRK5arrayRK5array", "operator-::a"], [0, 1, 1, "_CPPv4I0Emi5array1TRK5array", "operator-::b"], [0, 1, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-::b"], [0, 1, 1, "_CPPv4miRK5arrayRK5array", "operator-::b"], [0, 0, 1, "_CPPv4dvRK5arrayRK5array", "operator/"], [0, 0, 1, "_CPPv4dvRK5arrayd", "operator/"], [0, 0, 1, "_CPPv4dvdRK5array", "operator/"], [0, 1, 1, "_CPPv4dvRK5arrayRK5array", "operator/::a"], [0, 1, 1, "_CPPv4dvRK5arrayd", "operator/::a"], [0, 1, 1, "_CPPv4dvdRK5array", "operator/::a"], [0, 1, 1, "_CPPv4dvRK5arrayRK5array", "operator/::b"], [0, 1, 1, "_CPPv4dvRK5arrayd", "operator/::b"], [0, 1, 1, "_CPPv4dvdRK5array", "operator/::b"], [0, 0, 1, "_CPPv4I0Elt5array1TRK5array", "operator<"], [0, 0, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<"], [0, 0, 1, "_CPPv4ltRK5arrayRK5array", "operator<"], [0, 2, 1, "_CPPv4I0Elt5array1TRK5array", "operator<::T"], [0, 2, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<::T"], [0, 1, 1, "_CPPv4I0Elt5array1TRK5array", "operator<::a"], [0, 1, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<::a"], [0, 1, 1, "_CPPv4ltRK5arrayRK5array", "operator<::a"], [0, 1, 1, "_CPPv4I0Elt5array1TRK5array", "operator<::b"], [0, 1, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<::b"], [0, 1, 1, "_CPPv4ltRK5arrayRK5array", "operator<::b"], [0, 0, 1, "_CPPv4lsRK5arrayRK5array", "operator<<"], [0, 1, 1, "_CPPv4lsRK5arrayRK5array", "operator<<::a"], [0, 1, 1, "_CPPv4lsRK5arrayRK5array", "operator<<::b"], [0, 0, 1, "_CPPv4I0Ele5array1TRK5array", "operator<="], [0, 0, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<="], [0, 0, 1, "_CPPv4leRK5arrayRK5array", "operator<="], [0, 2, 1, "_CPPv4I0Ele5array1TRK5array", "operator<=::T"], [0, 2, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<=::T"], [0, 1, 1, "_CPPv4I0Ele5array1TRK5array", "operator<=::a"], [0, 1, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<=::a"], [0, 1, 1, "_CPPv4leRK5arrayRK5array", "operator<=::a"], [0, 1, 1, "_CPPv4I0Ele5array1TRK5array", "operator<=::b"], [0, 1, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<=::b"], [0, 1, 1, "_CPPv4leRK5arrayRK5array", "operator<=::b"], [0, 0, 1, "_CPPv4I0Eeq5array1TRK5array", "operator=="], [0, 0, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator=="], [0, 0, 1, "_CPPv4eqRK5arrayRK5array", "operator=="], [0, 2, 1, "_CPPv4I0Eeq5array1TRK5array", "operator==::T"], [0, 2, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator==::T"], [0, 1, 1, "_CPPv4I0Eeq5array1TRK5array", "operator==::a"], [0, 1, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator==::a"], [0, 1, 1, "_CPPv4eqRK5arrayRK5array", "operator==::a"], [0, 1, 1, "_CPPv4I0Eeq5array1TRK5array", "operator==::b"], [0, 1, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator==::b"], [0, 1, 1, "_CPPv4eqRK5arrayRK5array", "operator==::b"], [0, 0, 1, "_CPPv4I0Egt5array1TRK5array", "operator>"], [0, 0, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>"], [0, 0, 1, "_CPPv4gtRK5arrayRK5array", "operator>"], [0, 2, 1, "_CPPv4I0Egt5array1TRK5array", "operator>::T"], [0, 2, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>::T"], [0, 1, 1, "_CPPv4I0Egt5array1TRK5array", "operator>::a"], [0, 1, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>::a"], [0, 1, 1, "_CPPv4gtRK5arrayRK5array", "operator>::a"], [0, 1, 1, "_CPPv4I0Egt5array1TRK5array", "operator>::b"], [0, 1, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>::b"], [0, 1, 1, "_CPPv4gtRK5arrayRK5array", "operator>::b"], [0, 0, 1, "_CPPv4I0Ege5array1TRK5array", "operator>="], [0, 0, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>="], [0, 0, 1, "_CPPv4geRK5arrayRK5array", "operator>="], [0, 2, 1, "_CPPv4I0Ege5array1TRK5array", "operator>=::T"], [0, 2, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>=::T"], [0, 1, 1, "_CPPv4I0Ege5array1TRK5array", "operator>=::a"], [0, 1, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>=::a"], [0, 1, 1, "_CPPv4geRK5arrayRK5array", "operator>=::a"], [0, 1, 1, "_CPPv4I0Ege5array1TRK5array", "operator>=::b"], [0, 1, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>=::b"], [0, 1, 1, "_CPPv4geRK5arrayRK5array", "operator>=::b"], [0, 0, 1, "_CPPv4rsRK5arrayRK5array", "operator>>"], [0, 1, 1, "_CPPv4rsRK5arrayRK5array", "operator>>::a"], [0, 1, 1, "_CPPv4rsRK5arrayRK5array", "operator>>::b"], [0, 0, 1, "_CPPv4eoRK5arrayRK5array", "operator^"], [0, 1, 1, "_CPPv4eoRK5arrayRK5array", "operator^::a"], [0, 1, 1, "_CPPv4eoRK5arrayRK5array", "operator^::b"], [0, 0, 1, "_CPPv4orRK5arrayRK5array", "operator|"], [0, 1, 1, "_CPPv4orRK5arrayRK5array", "operator|::a"], [0, 1, 1, "_CPPv4orRK5arrayRK5array", "operator|::b"], [0, 0, 1, "_CPPv4ooRK5arrayRK5array", "operator||"], [0, 1, 1, "_CPPv4ooRK5arrayRK5array", "operator||::a"], [0, 1, 1, "_CPPv4ooRK5arrayRK5array", "operator||::b"], [0, 0, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer"], [0, 1, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer::a"], [0, 1, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer::b"], [0, 1, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer::s"], [0, 0, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 0, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 0, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 0, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::axes"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::high_pad_size"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::low_pad_size"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_width"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_width"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_width"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 0, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition"], [0, 0, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition"], [0, 1, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition::a"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::a"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::axis"], [0, 1, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition::kth"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::kth"], [0, 1, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition::s"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::s"], [0, 0, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power"], [0, 1, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power::a"], [0, 1, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power::b"], [0, 1, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power::s"], [0, 0, 1, "_CPPv44prodRK5array14StreamOrDevice", "prod"], [0, 0, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod"], [0, 0, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod"], [0, 0, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod"], [0, 1, 1, "_CPPv44prodRK5array14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::axes"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::axis"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::keepdims"], [0, 1, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod::keepdims"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::keepdims"], [0, 1, 1, "_CPPv44prodRK5array14StreamOrDevice", "prod::s"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::s"], [0, 1, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod::s"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::s"], [0, 0, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::a"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::axis"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::indices"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::s"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::values"], [0, 0, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::bits"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::group_size"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::s"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::w"], [0, 0, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::biases"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::bits"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::group_size"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::s"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::scales"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::transpose"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::w"], [0, 1, 1, "_CPPv416quantized_matmulRK5arrayRK5arrayRK5arrayRK5arraybii14StreamOrDevice", "quantized_matmul::x"], [0, 0, 1, "_CPPv47radiansRK5array14StreamOrDevice", "radians"], [0, 1, 1, "_CPPv47radiansRK5array14StreamOrDevice", "radians::a"], [0, 1, 1, "_CPPv47radiansRK5array14StreamOrDevice", "radians::s"], [0, 0, 1, "_CPPv44realRK5array14StreamOrDevice", "real"], [0, 1, 1, "_CPPv44realRK5array14StreamOrDevice", "real::a"], [0, 1, 1, "_CPPv44realRK5array14StreamOrDevice", "real::s"], [0, 0, 1, "_CPPv410reciprocalRK5array14StreamOrDevice", "reciprocal"], [0, 1, 1, "_CPPv410reciprocalRK5array14StreamOrDevice", "reciprocal::a"], [0, 1, 1, "_CPPv410reciprocalRK5array14StreamOrDevice", "reciprocal::s"], [0, 0, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder"], [0, 1, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder::a"], [0, 1, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder::b"], [0, 1, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder::s"], [0, 0, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat"], [0, 0, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat"], [0, 1, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat::arr"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::arr"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::axis"], [0, 1, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat::repeats"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::repeats"], [0, 1, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat::s"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::s"], [0, 0, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape"], [0, 1, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape::a"], [0, 1, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape::s"], [0, 1, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape::shape"], [0, 0, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift"], [0, 1, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift::a"], [0, 1, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift::b"], [0, 1, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift::s"], [0, 0, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::axes"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::axes"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::axis"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::axis"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::shift"], [0, 0, 1, "_CPPv45roundRK5array14StreamOrDevice", "round"], [0, 0, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round"], [0, 1, 1, "_CPPv45roundRK5array14StreamOrDevice", "round::a"], [0, 1, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round::a"], [0, 1, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round::decimals"], [0, 1, 1, "_CPPv45roundRK5array14StreamOrDevice", "round::s"], [0, 1, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round::s"], [0, 0, 1, "_CPPv45rsqrtRK5array14StreamOrDevice", "rsqrt"], [0, 1, 1, "_CPPv45rsqrtRK5array14StreamOrDevice", "rsqrt::a"], [0, 1, 1, "_CPPv45rsqrtRK5array14StreamOrDevice", "rsqrt::s"], [0, 0, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter"], [0, 0, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::a"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::a"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::axes"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::axis"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::indices"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::indices"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::s"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::s"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::updates"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::updates"], [0, 0, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add"], [0, 0, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::a"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::a"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::axes"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::axis"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::indices"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::indices"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::s"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::s"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::updates"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::updates"], [0, 0, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max"], [0, 0, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::a"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::a"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::axes"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::axis"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::indices"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::indices"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::s"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::s"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::updates"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::updates"], [0, 0, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min"], [0, 0, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::a"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::a"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::axes"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::axis"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::indices"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::indices"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::s"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::s"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::updates"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::updates"], [0, 0, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod"], [0, 0, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::a"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::a"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::axes"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::axis"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::indices"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::indices"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::s"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::s"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::updates"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::updates"], [0, 0, 1, "_CPPv47sigmoidRK5array14StreamOrDevice", "sigmoid"], [0, 1, 1, "_CPPv47sigmoidRK5array14StreamOrDevice", "sigmoid::a"], [0, 1, 1, "_CPPv47sigmoidRK5array14StreamOrDevice", "sigmoid::s"], [0, 0, 1, "_CPPv44signRK5array14StreamOrDevice", "sign"], [0, 1, 1, "_CPPv44signRK5array14StreamOrDevice", "sign::a"], [0, 1, 1, "_CPPv44signRK5array14StreamOrDevice", "sign::s"], [0, 0, 1, "_CPPv43sinRK5array14StreamOrDevice", "sin"], [0, 1, 1, "_CPPv43sinRK5array14StreamOrDevice", "sin::a"], [0, 1, 1, "_CPPv43sinRK5array14StreamOrDevice", "sin::s"], [0, 0, 1, "_CPPv44sinhRK5array14StreamOrDevice", "sinh"], [0, 1, 1, "_CPPv44sinhRK5array14StreamOrDevice", "sinh::a"], [0, 1, 1, "_CPPv44sinhRK5array14StreamOrDevice", "sinh::s"], [0, 0, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice"], [0, 0, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::a"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::a"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::s"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::s"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::start"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::start"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::stop"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::stop"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::strides"], [0, 0, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update"], [0, 0, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::s"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::s"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::src"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::src"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::start"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::start"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::stop"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::stop"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::strides"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::update"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::update"], [0, 0, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax"], [0, 0, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax"], [0, 0, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::a"], [0, 1, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax::a"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::a"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::axes"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::axis"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::precise"], [0, 1, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax::precise"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::precise"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::s"], [0, 1, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax::s"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::s"], [0, 0, 1, "_CPPv44sortRK5array14StreamOrDevice", "sort"], [0, 0, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort"], [0, 1, 1, "_CPPv44sortRK5array14StreamOrDevice", "sort::a"], [0, 1, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort::a"], [0, 1, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort::axis"], [0, 1, 1, "_CPPv44sortRK5array14StreamOrDevice", "sort::s"], [0, 1, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort::s"], [0, 0, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split"], [0, 0, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split"], [0, 0, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split"], [0, 0, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::axis"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::axis"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split::indices"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::indices"], [0, 1, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split::num_splits"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::num_splits"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split::s"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::s"], [0, 1, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split::s"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::s"], [0, 0, 1, "_CPPv44sqrtRK5array14StreamOrDevice", "sqrt"], [0, 1, 1, "_CPPv44sqrtRK5array14StreamOrDevice", "sqrt::a"], [0, 1, 1, "_CPPv44sqrtRK5array14StreamOrDevice", "sqrt::s"], [0, 0, 1, "_CPPv46squareRK5array14StreamOrDevice", "square"], [0, 1, 1, "_CPPv46squareRK5array14StreamOrDevice", "square::a"], [0, 1, 1, "_CPPv46squareRK5array14StreamOrDevice", "square::s"], [0, 0, 1, "_CPPv47squeezeRK5array14StreamOrDevice", "squeeze"], [0, 0, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze"], [0, 0, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze"], [0, 1, 1, "_CPPv47squeezeRK5array14StreamOrDevice", "squeeze::a"], [0, 1, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze::a"], [0, 1, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze::a"], [0, 1, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze::axes"], [0, 1, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze::axis"], [0, 1, 1, "_CPPv47squeezeRK5array14StreamOrDevice", "squeeze::s"], [0, 1, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze::s"], [0, 1, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze::s"], [0, 0, 1, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", "stack"], [0, 0, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", "stack::arrays"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack::arrays"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack::axis"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", "stack::s"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack::s"], [0, 0, 1, "_CPPv4StRK5array14StreamOrDevice", "std"], [0, 0, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std"], [0, 0, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std"], [0, 0, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std"], [0, 1, 1, "_CPPv4StRK5array14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::axes"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::axis"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::ddof"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::ddof"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::ddof"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::keepdims"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::keepdims"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::keepdims"], [0, 1, 1, "_CPPv4StRK5array14StreamOrDevice", "std::s"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::s"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::s"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::s"], [0, 0, 1, "_CPPv413stop_gradientRK5array14StreamOrDevice", "stop_gradient"], [0, 1, 1, "_CPPv413stop_gradientRK5array14StreamOrDevice", "stop_gradient::a"], [0, 1, 1, "_CPPv413stop_gradientRK5array14StreamOrDevice", "stop_gradient::s"], [0, 0, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract"], [0, 1, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract::a"], [0, 1, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract::b"], [0, 1, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract::s"], [0, 0, 1, "_CPPv43sumRK5array14StreamOrDevice", "sum"], [0, 0, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum"], [0, 0, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum"], [0, 0, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum"], [0, 1, 1, "_CPPv43sumRK5array14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::axes"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::axis"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::keepdims"], [0, 1, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum::keepdims"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::keepdims"], [0, 1, 1, "_CPPv43sumRK5array14StreamOrDevice", "sum::s"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::s"], [0, 1, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum::s"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::s"], [0, 0, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::a"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::axis1"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::axis2"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::s"], [0, 0, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take"], [0, 0, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take"], [0, 0, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take"], [0, 0, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take"], [0, 1, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::axis"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::axis"], [0, 1, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take::index"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::index"], [0, 1, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take::indices"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::indices"], [0, 1, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take::s"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::s"], [0, 1, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take::s"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::s"], [0, 0, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::a"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::axis"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::indices"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::s"], [0, 0, 1, "_CPPv43tanRK5array14StreamOrDevice", "tan"], [0, 1, 1, "_CPPv43tanRK5array14StreamOrDevice", "tan::a"], [0, 1, 1, "_CPPv43tanRK5array14StreamOrDevice", "tan::s"], [0, 0, 1, "_CPPv44tanhRK5array14StreamOrDevice", "tanh"], [0, 1, 1, "_CPPv44tanhRK5array14StreamOrDevice", "tanh::a"], [0, 1, 1, "_CPPv44tanhRK5array14StreamOrDevice", "tanh::s"], [0, 0, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot"], [0, 0, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::a"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::a"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::axes_a"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::axes_b"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::axis"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::b"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::b"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::s"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::s"], [0, 0, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile"], [0, 1, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile::arr"], [0, 1, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile::reps"], [0, 1, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile::s"], [0, 0, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk"], [0, 0, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk"], [0, 1, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk::a"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::a"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::axis"], [0, 1, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk::k"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::k"], [0, 1, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk::s"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::s"], [0, 0, 1, "_CPPv45traceRK5array14StreamOrDevice", "trace"], [0, 0, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace"], [0, 0, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace"], [0, 1, 1, "_CPPv45traceRK5array14StreamOrDevice", "trace::a"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::a"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::a"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::axis1"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::axis1"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::axis2"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::axis2"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::dtype"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::offset"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::offset"], [0, 1, 1, "_CPPv45traceRK5array14StreamOrDevice", "trace::s"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::s"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::s"], [0, 0, 1, "_CPPv49transposeRK5array14StreamOrDevice", "transpose"], [0, 0, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose"], [0, 0, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose"], [0, 1, 1, "_CPPv49transposeRK5array14StreamOrDevice", "transpose::a"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose::a"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose::a"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose::axes"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose::axes"], [0, 1, 1, "_CPPv49transposeRK5array14StreamOrDevice", "transpose::s"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose::s"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose::s"], [0, 0, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri"], [0, 0, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::k"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::m"], [0, 1, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri::n"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::n"], [0, 1, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri::s"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::s"], [0, 1, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri::type"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::type"], [0, 0, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril"], [0, 1, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril::k"], [0, 1, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril::s"], [0, 1, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril::x"], [0, 0, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu"], [0, 1, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu::k"], [0, 1, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu::s"], [0, 1, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu::x"], [0, 0, 1, "_CPPv43varRK5array14StreamOrDevice", "var"], [0, 0, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var"], [0, 0, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var"], [0, 0, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var"], [0, 1, 1, "_CPPv43varRK5array14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::axes"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::axis"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::ddof"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::ddof"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::ddof"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::keepdims"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::keepdims"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::keepdims"], [0, 1, 1, "_CPPv43varRK5array14StreamOrDevice", "var::s"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::s"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::s"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::s"], [0, 0, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view"], [0, 1, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view::a"], [0, 1, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view::dtype"], [0, 1, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view::s"], [0, 0, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::condition"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::s"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::x"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::y"], [0, 0, 1, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", "zeros"], [0, 0, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros::dtype"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", "zeros::s"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros::s"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", "zeros::shape"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros::shape"], [0, 0, 1, "_CPPv410zeros_likeRK5array14StreamOrDevice", "zeros_like"], [0, 1, 1, "_CPPv410zeros_likeRK5array14StreamOrDevice", "zeros_like::a"], [0, 1, 1, "_CPPv410zeros_likeRK5array14StreamOrDevice", "zeros_like::s"]], "mlx.core": [[9, 3, 1, "", "Device"], [10, 3, 1, "", "Dtype"], [11, 3, 1, "", "DtypeCategory"], [312, 3, 1, "", "Stream"], [12, 5, 1, "", "abs"], [13, 5, 1, "", "add"], [14, 5, 1, "", "addmm"], [15, 5, 1, "", "all"], [16, 5, 1, "", "allclose"], [17, 5, 1, "", "any"], [18, 5, 1, "", "arange"], [19, 5, 1, "", "arccos"], [20, 5, 1, "", "arccosh"], [21, 5, 1, "", "arcsin"], [22, 5, 1, "", "arcsinh"], [23, 5, 1, "", "arctan"], [24, 5, 1, "", "arctan2"], [25, 5, 1, "", "arctanh"], [26, 5, 1, "", "argmax"], [27, 5, 1, "", "argmin"], [28, 5, 1, "", "argpartition"], [29, 5, 1, "", "argsort"], [30, 3, 1, "", "array"], [82, 5, 1, "", "array_equal"], [83, 5, 1, "", "as_strided"], [84, 5, 1, "", "atleast_1d"], [85, 5, 1, "", "atleast_2d"], [86, 5, 1, "", "atleast_3d"], [87, 5, 1, "", "bitwise_and"], [88, 5, 1, "", "bitwise_or"], [89, 5, 1, "", "bitwise_xor"], [90, 5, 1, "", "block_masked_mm"], [91, 5, 1, "", "broadcast_to"], [92, 5, 1, "", "ceil"], [93, 5, 1, "", "clip"], [94, 5, 1, "", "compile"], [95, 5, 1, "", "concatenate"], [96, 5, 1, "", "conj"], [97, 5, 1, "", "conjugate"], [98, 5, 1, "", "conv1d"], [99, 5, 1, "", "conv2d"], [100, 5, 1, "", "conv3d"], [101, 5, 1, "", "conv_general"], [102, 5, 1, "", "conv_transpose1d"], [103, 5, 1, "", "conv_transpose2d"], [104, 5, 1, "", "conv_transpose3d"], [105, 5, 1, "", "convolve"], [106, 5, 1, "", "cos"], [107, 5, 1, "", "cosh"], [108, 5, 1, "", "cummax"], [109, 5, 1, "", "cummin"], [110, 5, 1, "", "cumprod"], [111, 5, 1, "", "cumsum"], [112, 3, 1, "", "custom_function"], [113, 5, 1, "", "default_device"], [114, 5, 1, "", "default_stream"], [115, 5, 1, "", "degrees"], [116, 5, 1, "", "dequantize"], [117, 5, 1, "", "diag"], [118, 5, 1, "", "diagonal"], [119, 5, 1, "", "disable_compile"], [128, 5, 1, "", "divide"], [129, 5, 1, "", "divmod"], [130, 5, 1, "", "einsum"], [131, 5, 1, "", "einsum_path"], [132, 5, 1, "", "enable_compile"], [133, 5, 1, "", "equal"], [134, 5, 1, "", "erf"], [135, 5, 1, "", "erfinv"], [136, 5, 1, "", "eval"], [137, 5, 1, "", "exp"], [138, 5, 1, "", "expand_dims"], [139, 5, 1, "", "expm1"], [140, 5, 1, "", "eye"], [159, 5, 1, "", "flatten"], [160, 5, 1, "", "floor"], [161, 5, 1, "", "floor_divide"], [162, 5, 1, "", "full"], [163, 5, 1, "", "gather_mm"], [164, 5, 1, "", "gather_qmm"], [165, 5, 1, "", "grad"], [166, 5, 1, "", "greater"], [167, 5, 1, "", "greater_equal"], [168, 5, 1, "", "hadamard_transform"], [169, 5, 1, "", "identity"], [170, 5, 1, "", "imag"], [171, 5, 1, "", "inner"], [172, 5, 1, "", "isclose"], [173, 5, 1, "", "isfinite"], [174, 5, 1, "", "isinf"], [175, 5, 1, "", "isnan"], [176, 5, 1, "", "isneginf"], [177, 5, 1, "", "isposinf"], [178, 5, 1, "", "issubdtype"], [179, 5, 1, "", "jvp"], [180, 5, 1, "", "left_shift"], [181, 5, 1, "", "less"], [182, 5, 1, "", "less_equal"], [191, 5, 1, "", "linspace"], [192, 5, 1, "", "load"], [193, 5, 1, "", "log"], [194, 5, 1, "", "log10"], [195, 5, 1, "", "log1p"], [196, 5, 1, "", "log2"], [197, 5, 1, "", "logaddexp"], [198, 5, 1, "", "logical_and"], [199, 5, 1, "", "logical_not"], [200, 5, 1, "", "logical_or"], [201, 5, 1, "", "logsumexp"], [202, 5, 1, "", "matmul"], [203, 5, 1, "", "max"], [204, 5, 1, "", "maximum"], [205, 5, 1, "", "mean"], [206, 5, 1, "", "meshgrid"], [218, 5, 1, "", "min"], [219, 5, 1, "", "minimum"], [220, 5, 1, "", "moveaxis"], [221, 5, 1, "", "multiply"], [222, 5, 1, "", "nan_to_num"], [223, 5, 1, "", "negative"], [224, 5, 1, "", "new_stream"], [225, 5, 1, "", "not_equal"], [226, 5, 1, "", "ones"], [227, 5, 1, "", "ones_like"], [228, 5, 1, "", "outer"], [229, 5, 1, "", "pad"], [230, 5, 1, "", "partition"], [231, 5, 1, "", "power"], [232, 5, 1, "", "prod"], [233, 5, 1, "", "put_along_axis"], [234, 5, 1, "", "quantize"], [235, 5, 1, "", "quantized_matmul"], [236, 5, 1, "", "radians"], [250, 5, 1, "", "real"], [251, 5, 1, "", "reciprocal"], [252, 5, 1, "", "remainder"], [253, 5, 1, "", "repeat"], [254, 5, 1, "", "reshape"], [255, 5, 1, "", "right_shift"], [256, 5, 1, "", "roll"], [257, 5, 1, "", "round"], [258, 5, 1, "", "rsqrt"], [259, 5, 1, "", "save"], [260, 5, 1, "", "save_gguf"], [261, 5, 1, "", "save_safetensors"], [262, 5, 1, "", "savez"], [263, 5, 1, "", "savez_compressed"], [264, 5, 1, "", "set_default_device"], [265, 5, 1, "", "set_default_stream"], [266, 5, 1, "", "sigmoid"], [267, 5, 1, "", "sign"], [268, 5, 1, "", "sin"], [269, 5, 1, "", "sinh"], [270, 5, 1, "", "softmax"], [271, 5, 1, "", "sort"], [272, 5, 1, "", "split"], [273, 5, 1, "", "sqrt"], [274, 5, 1, "", "square"], [275, 5, 1, "", "squeeze"], [276, 5, 1, "", "stack"], [277, 5, 1, "", "std"], [278, 5, 1, "", "stop_gradient"], [279, 5, 1, "", "stream"], [280, 5, 1, "", "subtract"], [281, 5, 1, "", "sum"], [282, 5, 1, "", "swapaxes"], [283, 5, 1, "", "synchronize"], [284, 5, 1, "", "take"], [285, 5, 1, "", "take_along_axis"], [286, 5, 1, "", "tan"], [287, 5, 1, "", "tanh"], [288, 5, 1, "", "tensordot"], [289, 5, 1, "", "tile"], [290, 5, 1, "", "topk"], [291, 5, 1, "", "trace"], [292, 5, 1, "", "transpose"], [293, 5, 1, "", "tri"], [294, 5, 1, "", "tril"], [295, 5, 1, "", "triu"], [296, 5, 1, "", "value_and_grad"], [297, 5, 1, "", "var"], [298, 5, 1, "", "view"], [299, 5, 1, "", "vjp"], [300, 5, 1, "", "vmap"], [301, 5, 1, "", "where"], [302, 5, 1, "", "zeros"], [303, 5, 1, "", "zeros_like"]], "mlx.core.Device": [[9, 4, 1, "", "__init__"]], "mlx.core.Dtype": [[10, 4, 1, "", "__init__"]], "mlx.core.DtypeCategory": [[11, 4, 1, "", "__init__"]], "mlx.core.Stream": [[312, 4, 1, "", "__init__"]], "mlx.core.array": [[31, 6, 1, "", "T"], [30, 4, 1, "", "__init__"], [32, 4, 1, "", "abs"], [33, 4, 1, "", "all"], [34, 4, 1, "", "any"], [35, 4, 1, "", "argmax"], [36, 4, 1, "", "argmin"], [37, 4, 1, "", "astype"], [38, 6, 1, "", "at"], [39, 4, 1, "", "conj"], [40, 4, 1, "", "cos"], [41, 4, 1, "", "cummax"], [42, 4, 1, "", "cummin"], [43, 4, 1, "", "cumprod"], [44, 4, 1, "", "cumsum"], [45, 4, 1, "", "diag"], [46, 4, 1, "", "diagonal"], [47, 6, 1, "", "dtype"], [48, 4, 1, "", "exp"], [49, 4, 1, "", "flatten"], [50, 4, 1, "", "item"], [51, 6, 1, "", "itemsize"], [52, 4, 1, "", "log"], [53, 4, 1, "", "log10"], [54, 4, 1, "", "log1p"], [55, 4, 1, "", "log2"], [56, 4, 1, "", "logsumexp"], [57, 4, 1, "", "max"], [58, 4, 1, "", "mean"], [59, 4, 1, "", "min"], [60, 4, 1, "", "moveaxis"], [61, 6, 1, "", "nbytes"], [62, 6, 1, "", "ndim"], [63, 4, 1, "", "prod"], [64, 4, 1, "", "reciprocal"], [65, 4, 1, "", "reshape"], [66, 4, 1, "", "round"], [67, 4, 1, "", "rsqrt"], [68, 6, 1, "", "shape"], [69, 4, 1, "", "sin"], [70, 6, 1, "", "size"], [71, 4, 1, "", "split"], [72, 4, 1, "", "sqrt"], [73, 4, 1, "", "square"], [74, 4, 1, "", "squeeze"], [75, 4, 1, "", "std"], [76, 4, 1, "", "sum"], [77, 4, 1, "", "swapaxes"], [78, 4, 1, "", "tolist"], [79, 4, 1, "", "transpose"], [80, 4, 1, "", "var"], [81, 4, 1, "", "view"]], "mlx.core.custom_function": [[112, 4, 1, "", "__init__"]], "mlx.core.distributed": [[120, 3, 1, "", "Group"], [121, 5, 1, "", "all_gather"], [122, 5, 1, "", "all_sum"], [123, 5, 1, "", "init"], [124, 5, 1, "", "is_available"], [125, 5, 1, "", "recv"], [126, 5, 1, "", "recv_like"], [127, 5, 1, "", "send"]], "mlx.core.distributed.Group": [[120, 4, 1, "", "__init__"]], "mlx.core.fast": [[141, 5, 1, "", "affine_quantize"], [142, 5, 1, "", "layer_norm"], [143, 5, 1, "", "metal_kernel"], [144, 5, 1, "", "rms_norm"], [145, 5, 1, "", "rope"], [146, 5, 1, "", "scaled_dot_product_attention"]], "mlx.core.fft": [[147, 5, 1, "", "fft"], [148, 5, 1, "", "fft2"], [149, 5, 1, "", "fftn"], [150, 5, 1, "", "ifft"], [151, 5, 1, "", "ifft2"], [152, 5, 1, "", "ifftn"], [153, 5, 1, "", "irfft"], [154, 5, 1, "", "irfft2"], [155, 5, 1, "", "irfftn"], [156, 5, 1, "", "rfft"], [157, 5, 1, "", "rfft2"], [158, 5, 1, "", "rfftn"]], "mlx.core.linalg": [[183, 5, 1, "", "cholesky"], [184, 5, 1, "", "cholesky_inv"], [185, 5, 1, "", "cross"], [186, 5, 1, "", "inv"], [187, 5, 1, "", "norm"], [188, 5, 1, "", "qr"], [189, 5, 1, "", "svd"], [190, 5, 1, "", "tri_inv"]], "mlx.core.metal": [[207, 5, 1, "", "clear_cache"], [208, 5, 1, "", "device_info"], [209, 5, 1, "", "get_active_memory"], [210, 5, 1, "", "get_cache_memory"], [211, 5, 1, "", "get_peak_memory"], [212, 5, 1, "", "is_available"], [213, 5, 1, "", "reset_peak_memory"], [214, 5, 1, "", "set_cache_limit"], [215, 5, 1, "", "set_memory_limit"], [216, 5, 1, "", "start_capture"], [217, 5, 1, "", "stop_capture"]], "mlx.core.random": [[237, 5, 1, "", "bernoulli"], [238, 5, 1, "", "categorical"], [239, 5, 1, "", "gumbel"], [240, 5, 1, "", "key"], [241, 5, 1, "", "laplace"], [242, 5, 1, "", "multivariate_normal"], [243, 5, 1, "", "normal"], [244, 5, 1, "", "permutation"], [245, 5, 1, "", "randint"], [246, 5, 1, "", "seed"], [247, 5, 1, "", "split"], [248, 5, 1, "", "truncated_normal"], [249, 5, 1, "", "uniform"]], "mlx.nn": [[322, 3, 1, "", "ALiBi"], [323, 3, 1, "", "AvgPool1d"], [324, 3, 1, "", "AvgPool2d"], [325, 3, 1, "", "BatchNorm"], [326, 3, 1, "", "CELU"], [327, 3, 1, "", "Conv1d"], [328, 3, 1, "", "Conv2d"], [329, 3, 1, "", "Conv3d"], [330, 3, 1, "", "ConvTranspose1d"], [331, 3, 1, "", "ConvTranspose2d"], [332, 3, 1, "", "ConvTranspose3d"], [333, 3, 1, "", "Dropout"], [334, 3, 1, "", "Dropout2d"], [335, 3, 1, "", "Dropout3d"], [336, 3, 1, "", "ELU"], [337, 3, 1, "", "Embedding"], [338, 3, 1, "", "GELU"], [339, 3, 1, "", "GLU"], [340, 3, 1, "", "GRU"], [341, 3, 1, "", "GroupNorm"], [342, 3, 1, "", "HardShrink"], [343, 3, 1, "", "HardTanh"], [344, 3, 1, "", "Hardswish"], [345, 3, 1, "", "InstanceNorm"], [346, 3, 1, "", "LSTM"], [347, 3, 1, "", "LayerNorm"], [348, 3, 1, "", "LeakyReLU"], [349, 3, 1, "", "Linear"], [350, 3, 1, "", "LogSigmoid"], [351, 3, 1, "", "LogSoftmax"], [352, 3, 1, "", "MaxPool1d"], [353, 3, 1, "", "MaxPool2d"], [354, 3, 1, "", "Mish"], [449, 3, 1, "", "Module"], [375, 3, 1, "", "MultiHeadAttention"], [376, 3, 1, "", "PReLU"], [377, 3, 1, "", "QuantizedEmbedding"], [378, 3, 1, "", "QuantizedLinear"], [379, 3, 1, "", "RMSNorm"], [380, 3, 1, "", "RNN"], [381, 3, 1, "", "ReLU"], [382, 3, 1, "", "ReLU6"], [383, 3, 1, "", "RoPE"], [384, 3, 1, "", "SELU"], [385, 3, 1, "", "Sequential"], [386, 3, 1, "", "SiLU"], [387, 3, 1, "", "Sigmoid"], [388, 3, 1, "", "SinusoidalPositionalEncoding"], [389, 3, 1, "", "Softmax"], [390, 3, 1, "", "Softmin"], [391, 3, 1, "", "Softplus"], [392, 3, 1, "", "Softshrink"], [393, 3, 1, "", "Softsign"], [394, 3, 1, "", "Step"], [395, 3, 1, "", "Tanh"], [396, 3, 1, "", "Transformer"], [397, 3, 1, "", "Upsample"], [406, 3, 1, "", "celu"], [407, 3, 1, "", "elu"], [408, 3, 1, "", "gelu"], [409, 3, 1, "", "gelu_approx"], [410, 3, 1, "", "gelu_fast_approx"], [411, 3, 1, "", "glu"], [412, 3, 1, "", "hard_shrink"], [413, 3, 1, "", "hard_tanh"], [414, 3, 1, "", "hardswish"], [415, 3, 1, "", "leaky_relu"], [416, 3, 1, "", "log_sigmoid"], [417, 3, 1, "", "log_softmax"], [432, 3, 1, "", "mish"], [433, 3, 1, "", "prelu"], [304, 5, 1, "", "quantize"], [434, 3, 1, "", "relu"], [435, 3, 1, "", "relu6"], [436, 3, 1, "", "selu"], [437, 3, 1, "", "sigmoid"], [438, 3, 1, "", "silu"], [439, 3, 1, "", "softmax"], [440, 3, 1, "", "softmin"], [441, 3, 1, "", "softplus"], [442, 3, 1, "", "softshrink"], [443, 3, 1, "", "step"], [444, 3, 1, "", "tanh"], [305, 5, 1, "", "value_and_grad"]], "mlx.nn.Module": [[355, 4, 1, "", "apply"], [356, 4, 1, "", "apply_to_modules"], [357, 4, 1, "", "children"], [358, 4, 1, "", "eval"], [359, 4, 1, "", "filter_and_map"], [360, 4, 1, "", "freeze"], [361, 4, 1, "", "leaf_modules"], [362, 4, 1, "", "load_weights"], [363, 4, 1, "", "modules"], [364, 4, 1, "", "named_modules"], [365, 4, 1, "", "parameters"], [366, 4, 1, "", "save_weights"], [367, 4, 1, "", "set_dtype"], [368, 6, 1, "", "state"], [369, 4, 1, "", "train"], [370, 4, 1, "", "trainable_parameters"], [371, 6, 1, "", "training"], [372, 4, 1, "", "unfreeze"], [373, 4, 1, "", "update"], [374, 4, 1, "", "update_modules"]], "mlx.nn.init": [[398, 5, 1, "", "constant"], [399, 5, 1, "", "glorot_normal"], [400, 5, 1, "", "glorot_uniform"], [401, 5, 1, "", "he_normal"], [402, 5, 1, "", "he_uniform"], [403, 5, 1, "", "identity"], [404, 5, 1, "", "normal"], [405, 5, 1, "", "uniform"]], "mlx.nn.losses": [[418, 3, 1, "", "binary_cross_entropy"], [419, 3, 1, "", "cosine_similarity_loss"], [420, 3, 1, "", "cross_entropy"], [421, 3, 1, "", "gaussian_nll_loss"], [422, 3, 1, "", "hinge_loss"], [423, 3, 1, "", "huber_loss"], [424, 3, 1, "", "kl_div_loss"], [425, 3, 1, "", "l1_loss"], [426, 3, 1, "", "log_cosh_loss"], [427, 3, 1, "", "margin_ranking_loss"], [428, 3, 1, "", "mse_loss"], [429, 3, 1, "", "nll_loss"], [430, 3, 1, "", "smooth_l1_loss"], [431, 3, 1, "", "triplet_loss"]], "mlx.optimizers": [[452, 3, 1, "", "AdaDelta"], [453, 3, 1, "", "Adafactor"], [454, 3, 1, "", "Adagrad"], [455, 3, 1, "", "Adam"], [456, 3, 1, "", "AdamW"], [457, 3, 1, "", "Adamax"], [458, 3, 1, "", "Lion"], [471, 3, 1, "", "Optimizer"], [463, 3, 1, "", "RMSprop"], [464, 3, 1, "", "SGD"], [306, 5, 1, "", "clip_grad_norm"], [465, 5, 1, "", "cosine_decay"], [466, 5, 1, "", "exponential_decay"], [467, 5, 1, "", "join_schedules"], [468, 5, 1, "", "linear_schedule"], [469, 5, 1, "", "step_decay"]], "mlx.optimizers.Optimizer": [[459, 4, 1, "", "apply_gradients"], [460, 4, 1, "", "init"], [461, 6, 1, "", "state"], [462, 4, 1, "", "update"]], "mlx.utils": [[307, 5, 1, "", "tree_flatten"], [308, 5, 1, "", "tree_map"], [309, 5, 1, "", "tree_map_with_path"], [310, 5, 1, "", "tree_reduce"], [311, 5, 1, "", "tree_unflatten"]]}, "objnames": {"0": ["cpp", "function", "C++ function"], "1": ["cpp", "functionParam", "C++ function parameter"], "2": ["cpp", "templateParam", "C++ template parameter"], "3": ["py", "class", "Python class"], "4": ["py", "method", "Python method"], "5": ["py", "function", "Python function"], "6": ["py", "property", "Python property"]}, "objtypes": {"0": "cpp:function", "1": "cpp:functionParam", "2": "cpp:templateParam", "3": "py:class", "4": "py:method", "5": "py:function", "6": "py:property"}, "terms": {"": [0, 1, 2, 4, 5, 6, 47, 51, 62, 94, 114, 116, 141, 148, 149, 151, 152, 154, 155, 157, 158, 165, 184, 187, 189, 192, 205, 228, 234, 238, 257, 260, 261, 277, 279, 296, 297, 298, 300, 305, 321, 324, 340, 346, 353, 359, 360, 362, 366, 367, 368, 372, 380, 451, 460, 461, 473, 476, 478, 480, 481, 482, 483, 484], "0": [0, 1, 2, 4, 5, 6, 8, 9, 14, 18, 38, 45, 46, 49, 66, 71, 75, 80, 83, 95, 98, 99, 100, 101, 102, 103, 104, 117, 118, 140, 143, 146, 159, 163, 165, 186, 187, 188, 190, 207, 214, 222, 229, 237, 241, 243, 244, 249, 253, 257, 272, 276, 277, 291, 293, 294, 295, 296, 297, 300, 306, 307, 309, 310, 321, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 341, 342, 345, 347, 348, 352, 353, 376, 381, 383, 388, 392, 394, 396, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 412, 413, 414, 415, 418, 420, 422, 423, 427, 430, 431, 433, 434, 435, 436, 442, 443, 446, 449, 452, 453, 455, 456, 457, 458, 460, 463, 464, 465, 466, 467, 468, 469, 473, 476, 477, 478, 479, 480, 481, 482, 483], "00005": 4, "0001": 388, "0005": 409, "001": 453, "00364": 4, "01": [4, 348, 415, 456], "0137595": 401, "015": 410, "0184009": 402, "02264": 400, "025": 478, "02765": 401, "0300242": 402, "044715": [338, 409], "0485873": 420, "05": [16, 172, 325, 341, 345, 347, 379], "0507": 436, "05202": 5, "06": [421, 431, 452], "0638": 427, "06450": 347, "0645099": 404, "06561": 466, "06675": 458, "07467": 379, "08": [16, 172, 419, 454, 455, 456, 457, 463], "08022": 345, "081": 469, "08415": 410, "08494": 341, "08619": 402, "08681": [354, 432], "09864": 5, "0999938": 467, "0999961": 465, "0f": 0, "1": [0, 1, 2, 3, 5, 6, 14, 18, 28, 29, 38, 46, 49, 98, 99, 100, 101, 102, 103, 104, 117, 118, 139, 143, 146, 147, 148, 150, 151, 153, 154, 155, 156, 157, 158, 159, 168, 171, 178, 184, 185, 187, 188, 202, 206, 215, 228, 230, 234, 238, 241, 242, 243, 249, 266, 271, 284, 290, 291, 296, 306, 309, 310, 314, 321, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 339, 340, 341, 345, 346, 347, 349, 352, 353, 376, 379, 380, 383, 387, 388, 394, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 409, 410, 411, 413, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 427, 429, 430, 431, 436, 437, 439, 440, 441, 443, 446, 449, 451, 452, 453, 454, 455, 456, 457, 458, 460, 463, 464, 465, 466, 467, 468, 469, 476, 477, 478, 479, 481, 482, 483, 484], "10": [0, 3, 5, 6, 194, 257, 262, 308, 321, 362, 446, 467, 469, 476, 477, 479], "100": [2, 4, 5, 418, 468, 476, 478, 480, 484], "1000": [465, 476], "10000": 383, "101": 468, "1024": [1, 5], "105361": 418, "109": 2, "10_000": 4, "10x": 458, "11": 187, "114": 2, "12": [5, 168, 467], "1212": 452, "12451": 400, "128": [262, 321], "13": 8, "14": 8, "15": [1, 8, 187, 310, 476], "150594": 399, "15268": 401, "16": [1, 143, 314, 323, 345, 352, 355, 449], "1606": 410, "1607": [345, 347], "16384": 168, "16506": 402, "17": 8, "177208": 401, "1803": 341, "1908": [354, 432], "1910": 379, "191107": 399, "1985": 187, "1_000": 4, "1d": [0, 98, 102, 105, 260, 285], "1e": [0, 4, 6, 16, 172, 325, 341, 345, 347, 348, 379, 419, 421, 431, 451, 452, 453, 454, 455, 456, 457, 460, 463, 465, 466, 467, 468, 469], "1e3": 476, "1st": 234, "2": [0, 1, 2, 4, 5, 6, 38, 99, 103, 117, 118, 134, 148, 151, 153, 154, 155, 156, 157, 158, 159, 168, 178, 183, 184, 185, 186, 187, 188, 189, 190, 196, 202, 234, 242, 247, 288, 291, 293, 294, 295, 306, 310, 314, 321, 323, 324, 328, 331, 338, 348, 352, 353, 379, 388, 397, 398, 399, 400, 401, 402, 403, 404, 405, 409, 420, 421, 423, 430, 431, 446, 449, 451, 452, 454, 455, 456, 460, 463, 476, 477, 478, 479, 480, 481, 482, 483, 484], "20": [168, 187], "200": [5, 467], "2002": 5, "2011": 454, "2012": [452, 463], "2015": [334, 455, 457], "2019": [5, 456], "2020": 5, "2021": 5, "20397": 418, "20_000": 5, "21": [5, 469], "2104": 5, "223144": 418, "223404": 400, "225": 187, "225763": 427, "2302": 458, "23607": [187, 188], "24": 8, "24264": 187, "247": 5, "25": [376, 397], "25211": 401, "256": [1, 2, 6, 143], "256995": 427, "28": 168, "2d": [0, 99, 103, 118, 234, 325, 334], "2nd": 234, "2x": 481, "3": [0, 1, 2, 5, 8, 100, 104, 159, 178, 185, 187, 188, 306, 310, 329, 332, 338, 397, 400, 402, 409, 414, 453, 458, 473, 476, 479, 481, 482], "30": 453, "3118": 481, "32": [1, 5, 6, 90, 234, 235, 314, 324, 353, 379, 476], "330": 5, "33333": 397, "348587": 420, "363207": 399, "36788": 476, "379159": 400, "380709": 404, "39": 5, "390": 478, "3d": [0, 2, 100, 104, 325, 335, 397], "3f": [2, 6, 476], "3x": 2, "4": [0, 1, 2, 5, 116, 141, 143, 159, 164, 187, 234, 235, 262, 304, 310, 314, 323, 324, 325, 345, 352, 353, 377, 378, 396, 397, 399, 400, 401, 418, 476, 477, 479, 482, 484], "4096": [476, 478, 484], "40x": 1, "41421": 187, "417497": 405, "42": 311, "437": 5, "44": 5, "447214": 188, "458835": 401, "475": 5, "48095": 399, "4d": [1, 397], "4m": 1, "5": [0, 1, 2, 4, 5, 8, 187, 215, 237, 310, 323, 325, 333, 334, 335, 338, 342, 345, 352, 392, 397, 398, 401, 402, 409, 412, 430, 442, 446, 451, 463, 465, 466, 476, 478, 479], "50": [0, 191], "500": [5, 484], "5000": 2, "510826": 418, "512": [2, 3, 5, 396, 484], "534422": 404, "539245": 418, "53947": 399, "55": 1, "5701": 452, "573409": 427, "57771": 188, "579": 5, "5f": 4, "6": [1, 2, 5, 187, 262, 382, 396, 400, 409, 410, 414, 421, 431, 435, 463, 476, 479, 482], "61278": 399, "617261": 405, "628": 5, "633": 5, "64": [0, 1, 90, 116, 141, 164, 234, 235, 304, 314, 377, 378], "64331": 402, "666329": 402, "66667": 397, "67326": 436, "676": 1, "690": 5, "6967": 401, "7": [2, 5, 187, 234, 479], "702": [338, 410], "71828": 476, "74166": 187, "74597": 187, "75": 397, "75596": 427, "75787": 401, "765166": 427, "773433": 427, "776856": 400, "793615": 402, "79854": 402, "7b": 5, "7m": 1, "8": [0, 1, 2, 5, 8, 187, 234, 314, 324, 345, 353, 396, 419, 452, 453, 454, 455, 456, 457, 463, 476, 479, 482, 484], "8192": [5, 168], "84804": 187, "863726": 405, "883935": 405, "890597": 400, "894427": 188, "89613": 399, "8gb": 5, "8x": 1, "9": [8, 187, 420, 452, 455, 456, 457, 458, 460, 466, 469, 481], "90041": 400, "912766": 400, "916291": 418, "95": 6, "982273": 404, "99": [458, 463], "995016": 399, "999": [455, 456, 457], "A": [0, 2, 5, 7, 8, 9, 68, 82, 94, 142, 143, 144, 146, 165, 178, 179, 184, 187, 188, 189, 192, 201, 202, 203, 208, 218, 234, 237, 238, 239, 241, 242, 243, 244, 245, 248, 249, 272, 276, 279, 296, 299, 300, 304, 305, 306, 307, 308, 309, 310, 311, 312, 321, 325, 334, 340, 341, 345, 347, 359, 363, 364, 367, 373, 374, 379, 385, 388, 396, 399, 400, 402, 410, 431, 432, 449, 451, 455, 457, 459, 460, 462, 467, 476, 477, 478, 480, 481], "AS": 163, "And": [5, 397], "As": [6, 38, 284, 321, 476], "At": 93, "But": 484, "By": [5, 304, 367, 418, 478, 481], "For": [0, 1, 2, 5, 8, 38, 146, 163, 178, 187, 234, 311, 321, 325, 334, 338, 355, 360, 369, 372, 378, 383, 388, 397, 399, 400, 401, 402, 418, 446, 451, 473, 476, 477, 478, 479, 480, 481, 482, 483, 484], "If": [0, 1, 2, 5, 8, 15, 16, 17, 18, 26, 27, 28, 29, 78, 82, 83, 93, 95, 105, 108, 109, 110, 111, 117, 118, 121, 122, 123, 125, 126, 127, 136, 142, 145, 156, 157, 158, 161, 162, 165, 172, 183, 184, 185, 187, 192, 201, 202, 203, 205, 206, 214, 215, 218, 222, 226, 229, 230, 232, 233, 238, 242, 244, 253, 256, 270, 271, 272, 277, 281, 283, 284, 285, 288, 290, 291, 296, 297, 300, 302, 304, 308, 310, 325, 327, 328, 329, 330, 331, 332, 341, 347, 349, 360, 362, 372, 378, 380, 383, 385, 388, 397, 418, 420, 431, 453, 476, 477, 478, 480, 483, 484, 485], "In": [0, 1, 2, 5, 6, 38, 202, 234, 308, 321, 334, 341, 449, 452, 454, 455, 457, 458, 459, 475, 476, 477, 478, 480, 483, 484], "It": [2, 5, 8, 126, 165, 265, 296, 306, 310, 321, 374, 378, 459, 471, 481, 483], "Its": 321, "No": [2, 5], "Not": [94, 225, 476], "ON": [3, 8], "Of": 478, "On": [1, 476, 478, 480], "One": [147, 150, 156, 229, 258, 476, 478], "THE": 8, "That": 5, "The": [0, 1, 2, 3, 5, 6, 7, 8, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 47, 51, 61, 62, 68, 78, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 185, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 210, 211, 214, 215, 216, 218, 219, 220, 221, 223, 225, 226, 227, 228, 229, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 260, 261, 266, 267, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 314, 316, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 339, 340, 341, 345, 346, 347, 349, 352, 353, 355, 356, 360, 362, 366, 367, 368, 369, 372, 373, 374, 375, 377, 378, 379, 380, 383, 385, 388, 394, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 411, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 443, 446, 449, 451, 452, 453, 454, 455, 456, 457, 458, 461, 463, 464, 465, 468, 471, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485], "Then": [4, 8], "There": [1, 2, 321, 397, 476], "These": [1, 2, 94, 233, 285, 420, 484], "To": [0, 2, 3, 4, 5, 6, 8, 214, 321, 446, 451, 476, 477, 478, 482], "With": 2, "_": [1, 3, 4, 5, 309, 321, 465, 466, 467, 468, 469, 473, 476, 480, 484], "__call__": [1, 5, 6, 321, 449], "__init__": [2, 5, 6, 9, 10, 11, 30, 112, 120, 312, 321, 449], "__main__": [2, 5], "__name__": [2, 5], "_a": 2, "_ext": 2, "_f": 187, "_in": [399, 400], "_out": [399, 400], "_p": 431, "_size": [323, 324, 352, 353], "_val": 413, "a1": 163, "a2": 163, "a_": 187, "a_max": [0, 93], "a_min": [0, 93], "a_ndim": 1, "a_shap": 1, "a_strid": 1, "a_view": 481, "ab": [0, 16, 172, 187, 296, 341, 345, 347, 354, 379, 410, 432, 476], "abil": 477, "abl": [2, 234], "about": [1, 2, 5, 6, 131, 208, 480, 484], "abov": [1, 2, 5, 234, 294, 321, 397, 456, 477, 478, 479, 480, 484], "absolut": [0, 12, 16, 172, 409, 410, 430], "acc": 310, "acceler": [2, 325], "access": [0, 5, 50, 321, 449, 460, 477, 480, 484], "accord": [0, 239, 301, 304, 375, 399, 400, 401, 402], "accordingli": 2, "accross": 8, "accumul": [310, 379], "accuraci": 6, "accustom": 5, "achiev": [321, 477], "across": [1, 2, 341, 477], "act": [2, 426], "action": 321, "activ": [2, 8, 209, 334, 394, 396, 412, 432, 442, 443, 445, 476], "actual": [5, 18, 362, 449, 480], "ad": [0, 1, 2, 4, 8, 142, 345, 449, 452, 453, 454, 455, 456, 457, 463, 477, 480, 483], "adadelta": 451, "adafactor": 451, "adagrad": 451, "adam": [451, 457, 458, 467, 468], "adamax": 451, "adamw": [451, 458], "adapt": [452, 453, 454, 477], "add": [0, 1, 2, 3, 5, 14, 38, 138, 197, 229, 234, 327, 328, 329, 330, 331, 332, 478, 484], "add_argu": 5, "add_depend": 2, "add_librari": 2, "addit": [0, 2, 5, 8, 13, 14, 142, 144, 146, 192, 325, 341, 347, 375, 379, 449, 478], "addmm": 0, "address": 2, "adjac": 334, "advanc": [5, 476], "advantag": 484, "advis": 481, "affin": [325, 341, 345, 347, 349, 378], "after": [2, 5, 6, 28, 159, 161, 164, 207, 230, 234, 325, 341, 347, 355, 356, 360, 362, 369, 372, 373, 374, 375, 396, 430, 476, 484], "after_1": 229, "after_2": 229, "after_i": 229, "after_n": 229, "afternoon": 5, "again": [5, 8, 321, 476], "against": 0, "aggreg": 375, "ago": 5, "ai": 112, "ainv": [186, 190], "albeit": 484, "algebra": 7, "algorithm": [397, 458], "alia": [96, 97, 338], "alibi": 321, "align": [184, 234, 324, 340, 346, 353], "align_corn": 397, "all": [0, 1, 2, 3, 6, 8, 16, 28, 38, 84, 85, 86, 94, 99, 100, 101, 103, 104, 112, 121, 122, 123, 140, 149, 152, 155, 158, 163, 164, 189, 202, 229, 230, 256, 275, 304, 321, 355, 356, 360, 363, 364, 365, 370, 372, 375, 388, 396, 397, 446, 449, 471, 473, 476, 479, 480, 482, 485], "all_avg": 477, "all_reduce_grad": 477, "all_sum": 477, "allclos": [0, 1, 143], "alloc": [2, 210, 214, 215, 449], "allow": [0, 1, 2, 178, 306, 321, 374, 449, 471, 477, 479, 482], "almost": 5, "alon": [2, 481], "along": [0, 2, 26, 27, 94, 95, 108, 109, 110, 111, 121, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 163, 164, 168, 185, 187, 233, 244, 253, 256, 270, 272, 276, 284, 285, 288, 289, 290, 291, 298, 321, 339, 380, 411], "alpha": [0, 2, 14, 234, 326, 336, 406, 407, 431, 433, 436, 456, 463], "alpha_": 2, "alreadi": [2, 3, 5, 477], "also": [0, 1, 2, 5, 6, 7, 8, 11, 13, 87, 88, 89, 119, 128, 129, 133, 149, 152, 155, 158, 166, 167, 180, 181, 182, 197, 204, 219, 221, 225, 231, 234, 252, 255, 280, 304, 305, 316, 321, 359, 373, 375, 377, 378, 386, 408, 436, 438, 445, 451, 476, 477, 478, 479, 480, 481, 482, 485], "altern": 473, "alwai": [1, 83, 209, 307, 478], "am": 5, "among": 2, "amount": [5, 211, 323, 352], "amus": 5, "an": [0, 1, 2, 3, 5, 6, 8, 10, 15, 17, 30, 84, 85, 86, 91, 98, 99, 100, 101, 102, 103, 104, 120, 125, 126, 127, 136, 140, 142, 146, 159, 162, 169, 173, 183, 187, 192, 215, 220, 226, 227, 229, 232, 233, 234, 235, 244, 253, 254, 256, 257, 272, 275, 282, 284, 285, 288, 289, 293, 300, 302, 303, 307, 308, 309, 310, 321, 323, 324, 333, 338, 341, 346, 347, 349, 352, 353, 355, 375, 376, 378, 380, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 409, 433, 446, 451, 452, 462, 466, 471, 473, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485], "anaconda": 477, "anchor": 431, "angl": [115, 236, 348], "angular": [145, 383], "ani": [0, 1, 2, 5, 7, 18, 94, 307, 308, 309, 310, 311, 321, 338, 355, 356, 359, 368, 378, 396, 397, 446, 468, 475, 476, 478, 480, 482, 483, 484], "anonym": 476, "anoth": [0, 93, 178, 202, 280, 301, 314, 321, 355, 476, 478, 479, 484], "anwywher": 8, "anyhow": 5, "anymor": 5, "anyth": [5, 296, 480], "anytim": 480, "api": [1, 2, 338, 477, 478], "app": 8, "append": [5, 202, 476, 480], "appl": [2, 5, 7, 8, 484], "appli": [0, 38, 145, 146, 163, 189, 308, 309, 310, 321, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 338, 339, 341, 342, 343, 344, 345, 347, 348, 349, 350, 351, 352, 353, 354, 356, 369, 376, 378, 379, 380, 381, 382, 384, 386, 387, 389, 390, 391, 392, 393, 394, 395, 397, 406, 407, 408, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 446, 459, 462, 468, 471, 476, 477], "applic": [3, 8], "apply_fn": 356, "apply_gradi": 451, "apply_to_modul": [321, 360], "approach": [426, 478], "appropri": [2, 476], "approx": 338, "approxim": [16, 338, 408, 409, 410], "ar": [0, 1, 2, 4, 5, 6, 7, 8, 16, 18, 82, 90, 91, 93, 94, 101, 105, 112, 118, 125, 126, 136, 140, 143, 148, 149, 151, 152, 154, 155, 157, 158, 159, 164, 165, 172, 173, 174, 175, 176, 177, 178, 179, 187, 188, 192, 202, 215, 228, 229, 230, 234, 235, 237, 238, 239, 244, 245, 248, 249, 256, 262, 263, 275, 276, 284, 296, 299, 300, 304, 307, 308, 314, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 341, 345, 347, 349, 362, 375, 378, 397, 418, 420, 421, 445, 449, 451, 458, 460, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484], "arang": [0, 1, 187, 244, 314, 397, 479, 481], "arbitrari": [307, 449], "arbitrarili": [1, 94, 321, 475, 478, 482], "arc": 0, "arcco": 0, "arccosh": 0, "architectur": [5, 8, 208, 321, 374, 484], "archiv": 483, "arcsin": 0, "arcsinh": 0, "arctan": 0, "arctan2": 0, "arctanh": 0, "arg": [2, 5, 10, 18, 120, 136, 262, 263], "arg1": 178, "arg2": 178, "argmax": [0, 6], "argmin": 0, "argnam": [165, 296], "argnum": [2, 165, 296, 478], "argpars": 5, "argpartit": 0, "argsort": 0, "argument": [1, 31, 65, 79, 94, 136, 165, 296, 308, 309, 310, 321, 397, 473, 477, 478, 483, 484, 485], "argumentpars": 5, "ari": [84, 85, 86], "aris": 481, "arm": 8, "arm64": 8, "around": 5, "arr": [0, 259, 479], "arr_0": 483, "arrai": [0, 1, 2, 5, 6, 7, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 306, 321, 325, 346, 355, 362, 365, 370, 376, 397, 398, 399, 400, 401, 402, 403, 404, 405, 411, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 443, 446, 449, 452, 453, 454, 455, 456, 457, 458, 463, 464, 465, 466, 467, 468, 469, 476, 477, 478, 480, 481, 482, 484], "array_equ": [0, 16, 172], "arrayfir": 7, "arxiv": [5, 341, 345, 347, 354, 379, 410, 432, 452, 458], "as_strid": 0, "ask": [5, 477], "assert": [1, 2, 143], "assign": [0, 2, 38, 449], "associ": [2, 262, 263, 480], "assum": [0, 2, 5, 90, 185, 188, 308, 321, 323, 324, 341, 352, 353], "astyp": [0, 1, 2, 5, 143, 355, 481], "atleast": 0, "atleast_1d": 0, "atleast_2d": 0, "atleast_3d": 0, "atol": [0, 16, 172], "atom": [1, 143], "atomic_fetch_add_explicit": 1, "atomic_output": [1, 143], "attach": 2, "attempt": 94, "attend": 375, "attent": [146, 360, 375, 388, 396], "attention_norm": 5, "attribut": [1, 9, 10, 11, 30, 312, 368, 449, 471], "audio": 397, "auto": [0, 2, 8], "autom": 478, "automat": [1, 2, 7, 143, 192, 477, 482, 483, 484], "autoregress": 5, "avail": [2, 4, 5, 6, 8, 10, 124, 212, 316, 484], "averag": [323, 324, 452, 453, 455, 456, 457, 477], "avgpool1d": 321, "avgpool2d": 321, "avoid": [1, 2, 367, 476], "awai": [2, 5], "awar": [476, 480], "ax": [0, 2, 15, 17, 26, 27, 79, 112, 138, 148, 149, 151, 152, 154, 155, 157, 158, 159, 171, 187, 201, 203, 205, 218, 229, 232, 256, 270, 275, 277, 281, 282, 288, 292, 297, 478], "axes_a": 0, "axes_b": 0, "axi": [0, 2, 5, 6, 15, 17, 26, 27, 28, 29, 33, 34, 35, 36, 41, 42, 43, 44, 56, 57, 58, 59, 63, 71, 74, 75, 76, 80, 95, 108, 109, 110, 111, 118, 121, 138, 142, 144, 147, 150, 153, 154, 155, 156, 157, 158, 159, 168, 185, 187, 201, 203, 205, 218, 220, 229, 230, 232, 233, 238, 244, 253, 256, 270, 271, 272, 275, 276, 277, 281, 282, 284, 285, 289, 290, 291, 292, 297, 298, 300, 323, 324, 339, 352, 353, 380, 411, 417, 419, 420, 424, 429, 431, 439, 440, 479], "axis1": [0, 46, 77, 118, 282, 291], "axis2": [0, 46, 77, 118, 282, 291], "axpbi": 2, "axpby_": 2, "axpby_gener": 2, "axpby_general_": 2, "axpby_impl": 2, "axpby_impl_acceler": 2, "b": [0, 1, 2, 3, 5, 13, 14, 16, 24, 82, 87, 88, 89, 90, 128, 129, 133, 143, 161, 163, 166, 167, 171, 172, 180, 181, 182, 185, 187, 197, 198, 200, 202, 204, 219, 221, 225, 228, 231, 234, 241, 252, 255, 280, 288, 296, 309, 310, 339, 349, 380, 397, 411, 478, 479, 480, 481, 482, 483, 484], "b1": 163, "b2": 163, "b_": [340, 346], "b_stride": 1, "ba": [455, 457], "back": [5, 112, 212, 481], "backend": [1, 8, 123, 124], "backward": [1, 476, 478], "bad": 480, "balanc": 426, "baltimor": 187, "bandwidth": [476, 477], "bar": 477, "base": [0, 2, 145, 187, 194, 196, 231, 383, 396, 449, 451, 457, 471, 473, 476, 479], "base_idx": 1, "basi": 471, "basic": [4, 257, 478], "batch": [5, 14, 90, 163, 164, 202, 242, 325, 327, 328, 329, 330, 331, 332, 334, 335, 340, 346, 375, 380, 397, 480], "batch_idx": 1, "batch_iter": [6, 451], "batch_siz": [6, 451], "batchnorm": 321, "becaus": [5, 209, 321, 480], "been": [0, 2, 5, 210, 480], "befor": [1, 2, 5, 8, 28, 143, 230, 359, 396, 460, 477, 479, 480], "before_1": 229, "before_2": 229, "before_i": 229, "before_n": 229, "beforehand": 228, "beggin": 256, "begin": [83, 184, 211, 234, 324, 340, 346, 353, 394, 412, 423, 430, 436, 442, 443], "behav": 112, "behavior": [242, 426, 479, 480], "behaviour": [112, 183, 184], "behind": 478, "being": [278, 321], "bell": 2, "below": [2, 8, 187, 293, 295, 314, 397, 480], "bench": 2, "benchmark": [2, 476], "benefici": [334, 335, 480], "best": 477, "beta": [0, 2, 14, 116, 141, 234, 325, 341, 345, 347, 430, 451, 455, 456, 457, 458], "beta_": 2, "beta_1": [453, 455, 456, 457, 458], "beta_2": [455, 456, 457, 458], "better": [478, 484], "between": [0, 2, 7, 93, 159, 396, 419, 422, 423, 426, 467, 477, 480, 481, 484], "beyond": [256, 465, 468], "bfloat16": [2, 11, 168, 314, 481], "bfloat16_t": 2, "bia": [5, 116, 141, 142, 164, 234, 235, 308, 321, 327, 328, 329, 330, 331, 332, 340, 346, 347, 349, 360, 362, 372, 375, 378, 380, 455, 456, 457, 460, 478], "bias": [0, 116, 141, 164, 234, 235, 340, 346, 360, 372, 375], "bicub": 397, "big": [1, 476], "bigger": [5, 453], "bilinear": [1, 397], "binari": [192, 259, 260, 261, 262, 263, 298, 394, 418, 443, 476], "binary_cross_entropi": [321, 476], "bit": [0, 116, 141, 164, 180, 234, 235, 255, 304, 314, 355, 377, 378, 379], "bitwis": [0, 87, 88, 89, 180, 255], "bitwise_and": 0, "bitwise_or": 0, "bitwise_xor": 0, "block": [0, 2, 5, 90, 396], "block_masked_mm": 0, "block_siz": [0, 90], "bn": 325, "bodi": [1, 143], "bool": [0, 1, 2, 15, 16, 17, 26, 27, 33, 34, 35, 36, 41, 42, 43, 44, 56, 57, 58, 59, 63, 75, 76, 78, 80, 82, 94, 101, 108, 109, 110, 111, 123, 124, 143, 145, 164, 172, 178, 183, 184, 187, 190, 192, 201, 203, 205, 206, 212, 215, 218, 232, 235, 277, 281, 297, 325, 327, 328, 329, 330, 331, 332, 340, 341, 345, 346, 347, 349, 355, 359, 360, 362, 367, 369, 372, 375, 378, 380, 383, 388, 396, 397, 418, 421, 453, 464], "bool_": [11, 314], "boolean": [0, 16, 82, 172, 173, 174, 175, 176, 177, 178, 198, 199, 200, 314, 371, 479], "both": [1, 2, 13, 87, 88, 89, 128, 129, 133, 166, 167, 178, 180, 181, 182, 187, 197, 204, 219, 221, 225, 231, 238, 252, 255, 280, 304, 323, 324, 345, 346, 352, 353, 451, 476, 477, 478, 482, 484], "bottom": 397, "bound": [0, 245, 248, 249, 338, 405, 476, 479, 484], "boundari": 467, "bracket": 5, "brain": 314, "break": 481, "bregler": 334, "broadcast": [0, 2, 13, 16, 87, 88, 89, 91, 93, 128, 129, 133, 162, 166, 167, 172, 180, 181, 182, 197, 202, 204, 219, 221, 225, 231, 233, 237, 238, 242, 248, 249, 252, 255, 280, 285, 301, 375], "broadcast_arrai": [0, 2], "broadcast_to": 0, "broadcasted_input": 2, "brought": 7, "btl_tcp_link": 477, "buffer": [1, 2, 209, 481], "bui": 5, "build": [3, 5, 7, 401, 449, 476], "build_ext": [2, 8], "build_shared_lib": [2, 8], "built": [1, 2, 8, 480], "bundl": 5, "byte": [51, 61, 209, 210, 211, 214, 215, 314], "c": [0, 1, 2, 5, 14, 187, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 345, 346, 352, 353, 481, 482, 484], "c_": [346, 458], "c_in": [98, 99, 100, 101, 102, 103, 104], "c_j": [323, 324, 352, 353], "c_out": [98, 99, 100, 101, 102, 103, 104], "c_pad": 1, "c_t": [346, 458], "cach": [5, 8, 207, 209, 210, 214, 476], "cahc": 8, "calcul": [187, 418, 421, 427, 453], "call": [2, 3, 5, 6, 31, 126, 161, 207, 211, 321, 337, 360, 372, 377, 385, 449, 451, 460, 476, 477, 478, 480], "callabl": [94, 112, 143, 165, 179, 296, 299, 300, 304, 305, 307, 308, 309, 310, 355, 356, 359, 367, 380, 385, 396, 398, 399, 400, 401, 402, 403, 404, 405, 452, 453, 454, 455, 456, 457, 458, 463, 464, 465, 466, 467, 468, 469], "can": [1, 2, 3, 5, 7, 8, 13, 18, 65, 79, 83, 87, 88, 89, 94, 118, 119, 120, 128, 129, 133, 136, 166, 167, 180, 181, 182, 187, 197, 204, 219, 221, 225, 231, 237, 238, 245, 248, 249, 252, 255, 260, 280, 291, 296, 310, 321, 324, 337, 338, 353, 359, 372, 377, 385, 397, 420, 446, 449, 451, 459, 460, 473, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485], "cannot": [5, 93, 479, 481], "captur": [2, 3, 94, 216, 217, 321, 476], "care": [5, 480], "carri": 2, "cartesian": 206, "case": [2, 5, 121, 122, 123, 125, 126, 127, 149, 152, 153, 155, 156, 157, 158, 159, 183, 184, 185, 186, 188, 189, 190, 202, 254, 275, 324, 334, 353, 394, 412, 430, 436, 442, 443, 459, 460, 476, 478, 482, 483, 484, 485], "cast": [2, 37, 156, 157, 158, 192, 355, 367, 481], "caster": 2, "categor": 5, "categori": [11, 178, 314], "catlas_saxpbi": 2, "caus": [321, 476, 480], "causal": 5, "caution": 83, "cd": [3, 8], "cdf": [239, 338, 408], "cdot": [410, 419, 422, 438], "ceil": 0, "ceildiv": 1, "cell": 346, "celu": 321, "certain": [2, 369, 476], "chang": [83, 94, 265, 298, 373, 378, 397, 423, 430, 476, 481], "channel": [1, 98, 99, 100, 101, 102, 103, 104, 325, 327, 328, 329, 330, 331, 332, 334, 335], "channel_idx": 1, "charact": 307, "check": [0, 2, 8, 82, 124, 178, 212, 362, 478, 479], "checklist": 477, "checkout": [3, 476], "checkpoint": [396, 451], "chen": 458, "child": 374, "children": 321, "chip": 8, "choleski": 184, "choos": [5, 145, 383], "chosen": 131, "clamp": 159, "clang": 8, "clariti": 478, "class": [2, 5, 6, 9, 10, 11, 30, 112, 120, 312, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 449, 452, 453, 454, 455, 456, 457, 458, 463, 464, 471], "class_pred": 304, "classif": [401, 402], "classifi": 6, "classmethod": [377, 378], "clear": 207, "click": 8, "clip": [0, 306, 418, 453], "clip_threshold": 453, "clipped_grad": 306, "clone": 8, "close": [4, 7, 8, 16, 172], "closer": 308, "cmake": [3, 8], "cmake_arg": 3, "cmake_build_parallel_level": 8, "cmake_build_typ": 8, "cmake_current_list_dir": 2, "cmake_host_system_processor": 8, "cmake_library_output_directori": 2, "cmakebuild": 2, "cmakeextens": 2, "cmakelist": 2, "cmdclass": 2, "co": [0, 2, 112, 388, 478], "code": [1, 143, 476, 477, 480], "coeffici": [2, 452, 453, 455, 456, 457, 458], "col": 293, "col_contigu": 2, "cold": 8, "collect": [2, 308, 309, 475], "column": [2, 140, 169, 234], "com": [8, 477], "combin": [5, 189, 310], "come": [2, 5, 477, 478], "command": [2, 3, 8, 477], "command_buff": 2, "common": [2, 451, 476, 480], "commonli": [6, 373, 446, 476], "commun": [7, 120, 123, 124], "compar": [2, 82, 476], "comparison": [16, 133, 166, 167, 181, 182, 225], "compat": [5, 238, 242, 338, 483], "compil": [0, 3, 7, 8, 119, 132, 143, 477, 478, 480], "compiled_fun": 476, "compiled_grad_fn": 476, "complet": [4, 5, 8, 215, 373, 374, 478, 484], "complex": [2, 96, 97, 154, 155, 156, 157, 158, 170, 250, 307, 314, 321, 374, 476, 478], "complex64": [2, 11, 314], "complex64_t": 2, "complexflo": 11, "compon": [2, 5], "compos": [7, 321, 476, 478, 482], "composit": 482, "compress": 263, "compromis": 5, "comput": [0, 1, 2, 4, 5, 6, 7, 8, 108, 109, 110, 111, 112, 116, 131, 139, 141, 145, 165, 179, 183, 184, 185, 186, 187, 190, 197, 205, 228, 234, 252, 270, 277, 278, 288, 296, 297, 299, 305, 321, 325, 340, 341, 345, 346, 347, 360, 373, 378, 379, 383, 396, 399, 400, 401, 402, 409, 410, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 451, 452, 453, 455, 456, 457, 458, 462, 476, 477, 478, 482, 484], "computation": 480, "compute_encod": 2, "concaten": [0, 5, 121], "concept": 449, "concis": 5, "concret": [2, 340, 346, 349, 380, 480, 484], "conda": [8, 477], "condit": [0, 2, 301, 484], "config": [2, 477], "configu": 451, "configur": [116, 141, 477], "confirm": 477, "confus": 6, "conj": 97, "conjug": [0, 96], "connect": 477, "consecut": [145, 234, 383], "consequ": 5, "consid": [5, 16, 82, 172, 307, 308, 309, 341, 475], "consider": 476, "const": [0, 1, 2, 421], "constant": [0, 2, 5, 8, 142, 144, 229, 321, 325, 341, 347, 379, 421, 431, 463, 465, 476, 481], "constant_valu": 229, "constitut": 308, "construct": [0, 2, 6, 45, 117, 162, 226, 289, 302], "consum": 480, "contain": [2, 5, 8, 28, 29, 68, 94, 118, 131, 153, 154, 155, 163, 164, 187, 198, 199, 200, 234, 272, 301, 306, 321, 359, 361, 362, 368, 396, 427, 446, 449, 476, 477, 478], "content": [8, 359, 476], "context": 279, "contigu": [1, 2, 83, 143], "continu": [326, 406, 478], "contract": [0, 131], "contrast": 456, "contribut": 2, "contriv": [478, 484], "control": [0, 348, 473, 480], "conv": 105, "conv1d": [0, 321], "conv2d": [0, 321], "conv3d": [0, 321], "conv_gener": 0, "conv_transpose1d": 0, "conv_transpose2d": 0, "conv_transpose3d": 0, "conveni": [1, 2, 6, 178], "convent": [18, 105, 130, 131, 397, 456], "convers": 7, "convert": [0, 1, 2, 78, 84, 85, 86, 115, 159, 236, 377, 378, 480, 481, 482], "convolut": [0, 98, 99, 100, 101, 102, 103, 104, 105, 327, 328, 329, 330, 331, 332, 334, 335], "convolv": [98, 99, 100, 101, 102, 103, 104], "convtranspose1d": 321, "convtranspose2d": 321, "convtranspose3d": 321, "coordin": [0, 206], "copi": [0, 1, 2, 5, 7, 230, 271, 481], "copy_inplac": 2, "copytyp": 2, "core": [1, 2, 3, 4, 5, 6, 304, 321, 323, 324, 325, 345, 352, 353, 362, 365, 367, 370, 397, 398, 399, 400, 401, 402, 403, 404, 405, 418, 420, 427, 446, 449, 451, 476, 477, 481, 482], "corner": 397, "correct": [2, 8, 455, 456, 457, 479, 480], "correctli": 38, "correl": [101, 334], "correspond": [0, 2, 15, 17, 78, 93, 116, 118, 141, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 201, 203, 218, 232, 281, 288, 300, 308, 478], "cos_first": 388, "cosh": [0, 426], "cosin": [0, 19, 20, 106, 107, 419, 465, 467, 478], "cosine_decai": [451, 467], "cosine_similarity_loss": 321, "cost": [8, 453, 477, 480], "costli": 480, "cot": 1, "cot_index": 1, "cotan": [2, 112], "cotang": [1, 2, 112, 299], "could": [5, 321], "count": [321, 467], "counter": 473, "cours": 478, "coursera": 463, "cov": 242, "covari": [242, 325], "cover": 2, "cpp": 2, "cpu": [7, 8, 188, 476, 484], "cpython": 2, "crash": [83, 476], "creat": [0, 2, 5, 8, 83, 123, 140, 169, 279, 321, 449, 451, 467, 476, 479, 481], "create_additive_causal_mask": 5, "criteria": 2, "cross": [6, 101, 418, 420], "cross_entropi": [6, 321], "crowd": 5, "cry": 5, "cubic": 397, "cummax": 0, "cummin": 0, "cumprod": 0, "cumsum": 0, "cumul": [0, 83, 108, 109, 110, 111], "current": [5, 7, 8, 83, 90, 100, 103, 104, 127, 208, 210, 234, 310, 321, 453, 477, 480], "custom": [7, 112, 143, 396], "custom_decod": 396, "custom_encod": 396, "custom_funct": 1, "custom_kernel_myexp_float": 1, "custom_tim": 2, "cvpr": 334, "cycl": 475, "d": [0, 1, 2, 5, 100, 104, 117, 118, 171, 187, 202, 206, 228, 284, 291, 293, 294, 295, 311, 329, 332, 335, 340, 346, 380, 452, 455, 457, 484], "d1": 484, "d2": 484, "d2fdx2": 478, "d_i": 349, "dampen": 464, "darwin": 2, "data": [0, 2, 6, 7, 10, 18, 125, 140, 156, 157, 162, 169, 191, 222, 226, 239, 248, 291, 293, 298, 302, 335, 398, 399, 400, 401, 402, 403, 404, 405, 476, 477, 479, 481], "dataset": [4, 477, 480], "datatyp": 51, "dbuild_shared_lib": 8, "dcmake_build_typ": 8, "ddof": [0, 75, 80, 277, 297], "deal": 476, "debug": [1, 3, 477], "debugg": 7, "decai": [453, 456, 458, 464, 465, 466, 469], "decay_r": [453, 466, 469], "decay_step": 465, "decent": 6, "decid": [308, 359], "decim": [0, 66, 257], "declar": 2, "decltyp": 1, "decod": 396, "decomposit": [183, 184, 189], "decor": [1, 112], "decoupl": 456, "deep": [325, 399, 400, 401, 402], "def": [1, 2, 4, 5, 6, 112, 143, 296, 321, 449, 476, 477, 478, 479, 480, 481, 484], "default": [1, 2, 8, 14, 15, 16, 17, 18, 26, 27, 28, 29, 82, 83, 90, 94, 95, 98, 99, 100, 101, 102, 103, 104, 112, 113, 114, 116, 117, 118, 121, 122, 123, 125, 126, 127, 140, 141, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 163, 164, 165, 168, 169, 172, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 201, 203, 205, 206, 214, 215, 218, 222, 226, 229, 230, 232, 234, 235, 237, 238, 239, 241, 242, 243, 244, 245, 247, 248, 249, 253, 254, 257, 264, 265, 271, 272, 275, 276, 277, 279, 281, 283, 288, 290, 291, 292, 293, 294, 295, 296, 297, 300, 302, 304, 314, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 336, 339, 340, 342, 345, 346, 348, 349, 352, 353, 355, 360, 362, 367, 369, 372, 375, 376, 377, 378, 380, 383, 388, 392, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 411, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 449, 452, 453, 454, 455, 456, 457, 458, 463, 464, 465, 473, 475, 476, 478, 481, 483, 485], "default_devic": 485, "default_stream": 485, "defin": [1, 2, 4, 5, 6, 8, 112, 126, 143, 164, 185, 187, 235, 304, 307, 481], "definit": [112, 183, 184, 242], "degre": [0, 236, 431], "delta": [423, 452], "delv": [401, 402], "demonstr": 481, "denomin": [345, 419, 452, 454, 455, 456, 457, 463], "dens": [206, 484], "depend": [0, 2, 3, 4, 8, 78, 187, 340, 346, 380, 477, 479, 483, 484], "depth": [307, 329, 332, 335, 478], "dequant": [0, 234], "deriv": [2, 478, 480], "descend": 357, "descent": [464, 476, 480], "describ": [2, 480], "descript": [2, 5, 314], "design": [1, 4, 7, 473, 484], "destin": [0, 2, 60, 127, 220, 233], "destroi": 476, "detach": 478, "detail": [1, 2, 10, 214, 321, 334, 383, 388, 397, 399, 400, 401, 402, 452, 454, 455, 457, 458, 479, 482], "determin": [0, 2, 118, 242, 310, 314, 366, 483], "dev": [2, 8], "develop": [2, 8], "developer_dir": 8, "deviat": [0, 243, 277, 399, 401, 404], "deviatoin": 0, "devic": [1, 2, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 121, 122, 125, 126, 127, 128, 129, 130, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 215, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 301, 302, 303, 312, 484, 485], "devicetyp": 9, "df": 481, "dfdx": [478, 479], "dft": [147, 148, 149, 150, 151, 152, 156, 157, 158], "dhwc": 335, "diag": [0, 189], "diagon": [0, 45, 117, 140, 291, 293, 294, 295], "dict": [94, 136, 192, 208, 260, 261, 262, 306, 365, 370, 373, 374, 449, 451, 459, 460, 462, 475, 478, 483], "dict_kei": [308, 460], "dictionari": [5, 94, 192, 208, 260, 261, 306, 307, 310, 321, 359, 368, 373, 374, 461, 475, 483], "did": 5, "diff": 2, "differ": [7, 178, 280, 298, 430, 478], "differenti": [1, 2, 7, 326, 406], "difficult": 478, "difficulti": [399, 400], "dilat": [0, 98, 99, 100, 101, 102, 103, 104, 327, 328, 330, 331], "dim": [1, 5, 145, 146, 337, 341, 345, 347, 375, 377, 379, 383, 388, 396], "dimens": [0, 2, 5, 15, 17, 26, 27, 62, 68, 78, 84, 85, 86, 94, 99, 100, 101, 103, 104, 118, 138, 145, 154, 155, 157, 158, 159, 163, 164, 171, 183, 184, 186, 187, 188, 189, 190, 201, 202, 203, 205, 218, 232, 233, 234, 238, 247, 277, 281, 285, 288, 292, 297, 325, 327, 328, 329, 330, 331, 332, 334, 335, 339, 340, 341, 345, 346, 347, 375, 379, 380, 383, 396, 397, 411, 420, 476, 478], "dimension": [30, 142, 144, 147, 148, 149, 150, 151, 152, 156, 157, 158, 323, 324, 325, 327, 328, 329, 330, 331, 332, 337, 349, 352, 353, 377, 378, 388, 479, 481], "direct": [2, 5, 357, 458, 484], "directli": [2, 5, 83], "directori": [2, 5, 8], "disabl": [119, 214, 476], "disable_compil": 476, "disappoint": 5, "discard": [5, 307], "discov": 8, "discoveri": 458, "discret": [105, 147, 148, 149, 150, 151, 152, 156, 157, 158, 337, 377], "discuss": 2, "disk": 5, "dispatch": 2, "dispatchthread": 2, "displai": 321, "distanc": [5, 431], "distribut": [7, 8, 237, 238, 239, 241, 242, 243, 248, 249, 349, 399, 400, 401, 402, 404, 405, 421, 424, 429, 431, 446], "diverg": 424, "divid": [0, 2, 38, 161, 234, 252, 477], "divis": [0, 128, 161, 234, 252], "divisor": [277, 297], "divmod": 0, "dloss_dw": 478, "dloss_dx": 478, "dlpack": 481, "dlvalu": 296, "dmlx_build_cpu": 8, "dmlx_build_gguf": 8, "dmlx_build_safetensor": 8, "dmlx_metal_debug": 3, "dmlx_metal_jit": 8, "do": [0, 2, 5, 8, 298, 321, 361, 372, 446, 449, 456, 476, 477, 478, 480], "doc": [2, 6, 477], "document": [2, 3, 65, 79, 260, 261, 314, 476, 478, 479], "doe": [0, 2, 3, 5, 8, 209, 298, 306, 321, 476, 479, 480, 481], "doesn": [2, 321], "domain": [248, 477], "don": [1, 8, 476, 484], "done": [321, 333, 379, 476, 477, 480, 481], "dot": [183, 186, 190, 288, 307, 364, 375], "doubl": [0, 5], "doubt": 5, "down": [5, 306], "dparam": 296, "draw": 238, "drop": 359, "dropout": [321, 334, 335, 369, 396, 476], "dropout2d": 321, "dropout3d": 321, "dst": 127, "dt": 134, "dtype": [0, 1, 2, 5, 11, 18, 30, 37, 38, 78, 81, 125, 126, 140, 143, 159, 162, 169, 178, 187, 188, 191, 226, 239, 241, 242, 243, 245, 248, 249, 291, 293, 298, 302, 314, 367, 397, 398, 399, 400, 401, 402, 403, 404, 405, 418, 420, 427, 465, 466, 467, 468, 469, 476, 477, 478, 479, 481, 482, 483], "dtypecategori": [178, 314], "dual": 426, "duchi": 454, "dure": [3, 94, 333, 334, 335, 397, 481], "dx": 112, "dy": 112, "dyld": 477, "dyld_library_path": 477, "dylib": 2, "dynam": 480, "e": [2, 6, 8, 112, 134, 143, 163, 164, 179, 266, 325, 327, 328, 329, 330, 331, 332, 334, 335, 341, 345, 347, 360, 379, 416, 417, 439, 440, 445, 451, 454, 476, 480, 485], "e5": 314, "e8": 314, "each": [0, 1, 2, 68, 116, 136, 141, 145, 164, 178, 183, 184, 186, 189, 190, 202, 206, 229, 234, 235, 238, 253, 262, 263, 272, 289, 292, 298, 300, 301, 334, 335, 337, 340, 341, 346, 380, 383, 396, 418, 420, 473, 476, 477, 480], "eager": 480, "earli": 334, "earlier": 2, "eas": 5, "easi": [2, 321, 477], "easier": [1, 480], "edg": [93, 229, 397, 476], "edit": [8, 374], "effect": [334, 476, 480], "effici": [5, 7, 163, 334, 383, 480, 482], "einstein": [130, 131], "einsum": 131, "either": [8, 13, 65, 78, 79, 87, 88, 89, 93, 128, 129, 133, 161, 166, 167, 180, 181, 182, 187, 197, 202, 204, 219, 221, 225, 231, 252, 255, 280, 296, 324, 353, 385, 397, 401, 402, 481], "elem": [1, 143], "elem_to_loc": [1, 2], "element": [0, 1, 2, 12, 13, 19, 20, 21, 22, 23, 24, 25, 28, 70, 83, 87, 88, 89, 92, 106, 107, 108, 109, 110, 111, 116, 128, 129, 133, 134, 135, 137, 139, 140, 141, 160, 161, 164, 166, 167, 172, 173, 174, 175, 176, 177, 180, 181, 182, 193, 194, 195, 196, 197, 198, 199, 200, 204, 206, 219, 221, 223, 225, 230, 231, 234, 235, 251, 252, 253, 255, 256, 258, 266, 267, 268, 269, 273, 274, 280, 284, 286, 287, 290, 296, 298, 301, 326, 333, 334, 335, 340, 344, 346, 354, 376, 380, 383, 387, 406, 413, 414, 416, 417, 432, 433, 435, 438, 439, 440, 441, 476, 478], "elementwis": [1, 96, 97], "elif": 5, "ellipsi": 479, "elman": 380, "els": [0, 2, 5, 321, 360, 477, 480], "elsewher": [293, 479], "elu": [321, 436], "emb": [5, 337, 377, 388], "embed": [5, 304, 321, 377, 383, 388, 419], "empti": [127, 242], "enabl": [3, 5, 8, 94, 132, 464], "encod": [2, 145, 383, 388, 396, 420], "encount": [2, 478], "end": [118, 184, 212, 234, 256, 324, 340, 346, 353, 394, 412, 423, 430, 436, 442, 443, 465, 468], "end_axi": [0, 49, 159], "end_encod": 2, "endif": 2, "endswith": 360, "enhanc": [5, 383, 480], "enjoi": 2, "enough": [2, 480], "ensur": [0, 1, 2, 8, 143, 306, 426, 477], "ensure_row_contigu": [1, 143], "enter": 5, "entir": [15, 17, 26, 27, 201, 203, 205, 218, 232, 277, 281, 297, 334, 335], "entri": [0, 244, 334, 335], "entropi": [6, 418, 420], "enumer": 321, "environ": [8, 119, 132, 477], "ep": [4, 142, 144, 325, 341, 345, 347, 379, 419, 421, 431, 451, 452, 453, 454, 455, 456, 457, 463], "epoch": 6, "epsilon": [325, 341, 345, 347, 379, 419, 421, 452, 454, 455, 456, 457, 463], "epsilon_1": 453, "epsilon_2": 453, "equal": [0, 16, 28, 82, 140, 167, 172, 182, 225, 230, 245, 272, 345, 349], "equal_nan": [0, 16, 82, 172], "equat": [130, 131], "equival": [0, 2, 31, 65, 79, 126, 129, 161, 164, 168, 284, 326, 336, 338, 342, 343, 344, 350, 351, 374, 376, 378, 381, 382, 384, 386, 389, 390, 391, 392, 393, 395], "erf": [0, 135, 476], "erfinv": 0, "error": [0, 2, 8, 123, 134, 135, 215, 272, 338, 408, 409, 410, 426, 428, 478, 481], "error_norm": 4, "estim": [455, 457], "eta": 458, "etc": [2, 234, 321, 397, 477], "eval": [2, 3, 4, 5, 6, 321, 449, 451, 476, 477, 478, 480, 482], "eval_cpu": 2, "eval_fn": 6, "eval_gpu": 2, "evalu": [2, 5, 6, 7, 127, 136, 179, 299, 321, 358, 369, 449, 451, 476, 482], "even": [1, 2, 5, 94, 476, 480, 481], "evenli": [0, 191], "everi": [234, 308, 451, 469, 478], "everyth": [5, 477], "everywher": 0, "exact": [409, 410], "exactli": [2, 5, 145, 362, 478], "exampl": [0, 3, 4, 5, 6, 8, 18, 38, 112, 143, 159, 178, 187, 188, 279, 284, 306, 309, 310, 321, 323, 324, 325, 345, 352, 353, 360, 362, 369, 372, 397, 398, 399, 400, 401, 402, 403, 404, 405, 418, 420, 427, 446, 451, 460, 465, 466, 467, 468, 469, 473, 478, 479, 480, 481, 482, 483], "exce": 306, "exceed": 215, "except": [7, 140, 153, 154, 156, 157, 158, 341, 362, 479, 481], "exclud": [233, 285], "exclus": [0, 83, 89], "execut": [2, 8, 84, 85, 86, 211, 481, 484], "exist": [2, 3, 5, 360, 372], "exp": [0, 1, 139, 143, 197, 201, 239, 270, 326, 336, 387, 406, 407, 424, 436, 437, 441, 476, 484], "exp_elementwis": [1, 143], "expand_dim": 0, "expect": [2, 5, 327, 328, 329, 330, 331, 332, 333, 334, 335, 388, 396, 421, 476, 479], "expens": 396, "expensive_fun": 480, "experiment": 481, "explain": 2, "explicit": [2, 460, 473, 481], "explicitli": [163, 321, 473], "explor": 8, "expm1": 0, "exponenti": [0, 137, 139, 326, 336, 384, 406, 407, 436, 466], "exponential_decai": 451, "export": 8, "ext_modul": 2, "extend": [2, 229], "extens": [7, 192, 216, 366, 483], "extern": 481, "extra": [1, 308, 309], "extract": [0, 5, 45, 117, 118, 321, 359, 449, 477], "extras_requir": 2, "extrem": [479, 480], "ey": [0, 5, 186, 190], "f": [0, 2, 4, 6, 112, 187, 321, 346, 456, 476, 481], "f_jvp": 112, "f_t": 346, "f_vjp": 112, "f_vmap": 112, "face": 5, "factor": [2, 14, 168, 183, 184, 188, 397, 420, 466, 469], "fall": [2, 112], "fallback": 2, "fals": [0, 1, 2, 5, 15, 16, 17, 26, 27, 33, 34, 35, 36, 41, 42, 43, 44, 56, 57, 58, 59, 63, 75, 76, 80, 82, 94, 101, 108, 109, 110, 111, 123, 143, 172, 178, 183, 184, 187, 190, 192, 201, 203, 205, 206, 215, 218, 232, 277, 281, 297, 301, 304, 307, 308, 309, 310, 314, 341, 345, 347, 349, 360, 362, 372, 375, 378, 383, 388, 396, 397, 418, 421, 453, 464, 481], "famili": 5, "fan": [399, 400, 401, 402], "fan_in": [399, 400, 401, 402], "fan_out": [399, 400, 401, 402], "far": 451, "fast": [1, 7, 338, 410, 477, 484], "faster": [1, 2, 8, 129, 408, 418, 476, 478], "featur": [1, 7, 98, 99, 100, 101, 102, 103, 104, 145, 325, 340, 341, 345, 346, 347, 349, 378, 379, 380, 383, 396, 397, 476, 480], "feed": 5, "feed_forward": 5, "feedforward": [399, 400], "feel": 5, "fetch": 1, "few": [1, 2, 5, 6, 7, 8, 477, 480, 482], "ffn": 5, "ffn_norm": 5, "fft": 7, "figur": 477, "file": [5, 8, 192, 259, 260, 261, 262, 263, 362, 366, 477, 478, 483], "file_or_weight": 362, "fill": [0, 2, 162, 227, 293, 303, 398, 399, 400, 401, 402, 404, 405], "filter": [0, 105, 327, 328, 329, 330, 331, 332, 355, 359], "filter_and_map": 321, "filter_fn": [355, 359], "final": [2, 4, 5, 6, 168, 465, 468], "find": [2, 4, 8, 477], "find_packag": 2, "finder": 8, "fine": [473, 480], "finetun": 321, "finish": 2, "finit": [0, 173, 222], "first": [0, 1, 2, 3, 4, 5, 6, 8, 118, 121, 159, 165, 178, 180, 189, 198, 200, 202, 230, 247, 255, 282, 288, 291, 296, 307, 309, 310, 321, 324, 341, 353, 397, 419, 427, 453, 455, 456, 457, 460, 476, 478, 481, 484], "first_lay": 480, "fit": [2, 234, 484], "five": 476, "fix": [2, 5, 8, 480], "flag": [2, 8, 476, 481], "flat": [163, 164, 307, 311], "flat_param": 262, "flatten": [0, 28, 29, 108, 109, 110, 111, 187, 228, 230, 233, 253, 256, 271, 284, 285, 290, 307], "flexibl": 7, "flexibli": 374, "flip": [0, 101, 105], "float": [0, 1, 2, 11, 14, 16, 18, 78, 142, 143, 144, 145, 146, 161, 162, 168, 172, 178, 187, 222, 235, 237, 241, 243, 306, 314, 325, 333, 334, 335, 341, 345, 347, 355, 367, 379, 383, 388, 394, 396, 397, 398, 399, 400, 401, 402, 404, 405, 419, 420, 421, 423, 427, 430, 431, 442, 443, 452, 453, 454, 455, 456, 457, 458, 463, 464, 465, 466, 468, 469], "float16": [1, 2, 11, 143, 168, 192, 314, 355, 480, 481], "float16_t": [1, 2], "float32": [0, 1, 2, 11, 18, 140, 143, 146, 168, 169, 178, 187, 188, 191, 226, 239, 241, 242, 243, 248, 249, 293, 302, 314, 397, 398, 399, 400, 401, 402, 403, 404, 405, 418, 420, 427, 465, 466, 467, 468, 469, 476, 477, 478, 479, 480, 481, 482, 483], "float64": 178, "floor": [0, 1, 161], "floor_divid": 0, "flow": [0, 278, 480], "flush": 2, "fn": [305, 308, 309, 310, 482], "follow": [1, 2, 5, 6, 7, 8, 18, 105, 116, 141, 163, 187, 229, 234, 309, 321, 409, 410, 424, 452, 453, 454, 455, 456, 457, 458, 464, 473, 476, 477, 478, 484], "foo": 477, "food": 5, "forc": [5, 6, 321, 477, 482], "forg": 8, "formal": [116, 141, 234], "format": [5, 192, 259, 260, 261, 262, 263, 481], "formul": [326, 336], "formula": 430, "forth": 397, "forward": [1, 2, 296, 476, 480], "found": 359, "four": 325, "fourier": [147, 148, 149, 150, 151, 152, 156, 157, 158], "frac": [134, 234, 266, 323, 324, 325, 333, 334, 335, 341, 345, 347, 349, 352, 353, 379, 387, 399, 400, 401, 402, 419, 421, 423, 426, 437, 439, 440, 452, 454, 455, 456, 457, 463], "fraction": 18, "framework": [2, 7], "free": 214, "freez": [321, 372, 449], "freq": 145, "frequenc": [145, 383, 388], "frequent": [476, 480], "friend": 5, "fro": 187, "frobeniu": 187, "from": [0, 1, 2, 5, 6, 7, 83, 115, 116, 118, 121, 122, 125, 126, 127, 141, 143, 154, 155, 157, 158, 162, 163, 168, 187, 192, 202, 206, 211, 214, 227, 234, 236, 237, 238, 239, 240, 241, 245, 248, 262, 275, 278, 280, 284, 285, 290, 291, 301, 303, 307, 308, 309, 310, 311, 321, 349, 360, 362, 375, 399, 400, 401, 402, 404, 405, 421, 430, 446, 451, 475, 476, 477, 478, 480, 481, 482, 483, 484], "from_embed": 377, "from_linear": 378, "front": 2, "frozen": [321, 360, 370, 372, 378, 449], "fuction": 129, "full": [0, 1, 2, 6, 65, 79, 105, 270, 373, 374, 421, 476, 477, 480], "full_turn": 388, "fulli": [2, 7, 476, 477, 481, 484], "fun": [94, 165, 179, 296, 299, 300, 476, 479, 480, 484], "fun1": 480, "func": 380, "function": [0, 1, 2, 3, 4, 5, 6, 7, 16, 18, 83, 94, 112, 129, 134, 135, 143, 165, 172, 179, 183, 184, 186, 187, 188, 189, 190, 202, 266, 296, 299, 300, 305, 306, 308, 309, 310, 321, 326, 336, 338, 339, 342, 343, 344, 350, 351, 354, 356, 360, 367, 372, 376, 380, 381, 382, 384, 385, 386, 387, 389, 390, 391, 392, 393, 394, 395, 396, 408, 409, 410, 411, 412, 413, 414, 416, 417, 418, 432, 437, 439, 440, 441, 442, 443, 444, 446, 451, 460, 473, 475, 477, 479, 480, 481, 483], "functool": 476, "further": [2, 8, 478], "fuse": [1, 476], "fusibl": 476, "futur": [5, 378, 479, 480], "g": [3, 8, 112, 143, 187, 234, 346, 445, 463, 464, 480, 485], "g_t": [346, 452, 454, 455, 456, 457, 458, 463, 464], "gain": [399, 400, 401, 402], "gamma": [325, 341, 345, 347, 379, 399, 400, 401, 402], "gap": 1, "gate": [339, 340, 411], "gather": [0, 121, 163, 164], "gather_mm": [0, 164], "gather_qmm": 0, "gaurante": 298, "gaussian": [4, 338, 408, 409, 410, 421], "gaussian_nll_loss": 321, "gelu": [321, 409, 410, 476], "gelu_approx": [321, 338, 408], "gelu_fast_approx": [321, 338, 408], "geluapprox": 338, "gelufast": 338, "gener": [0, 1, 2, 3, 4, 11, 18, 101, 140, 143, 154, 155, 191, 206, 237, 242, 243, 244, 245, 248, 249, 396, 473, 476, 479, 480, 485], "general_": 2, "generate_stub": 8, "geq": [394, 443], "get": [2, 4, 6, 8, 99, 100, 101, 103, 104, 113, 114, 208, 209, 210, 211, 240, 321, 476, 478, 480, 484], "get_cache_memori": 207, "get_command_encod": 2, "get_kernel": 2, "gguf": [8, 192, 260, 483], "gh": 1, "gii": 1, "git": 8, "github": [4, 6, 8, 476], "give": [2, 5, 6, 28, 476], "given": [0, 2, 8, 15, 17, 28, 38, 83, 91, 93, 95, 108, 109, 110, 111, 116, 118, 131, 136, 138, 141, 147, 148, 149, 150, 151, 152, 156, 157, 158, 162, 163, 187, 201, 203, 205, 214, 218, 222, 224, 232, 242, 244, 245, 256, 257, 265, 270, 272, 277, 281, 283, 289, 290, 291, 293, 294, 295, 297, 312, 323, 324, 333, 352, 353, 359, 375, 419, 421, 427], "gix": 1, "gix_mult": 1, "giy_mult": 1, "global": [119, 121, 122, 123, 125, 126, 127, 132, 246, 306, 473, 476], "glorot": [399, 400], "glorot_norm": 321, "glorot_uniform": 321, "glu": [5, 321], "gm": 1, "gn": 1, "go": [2, 5, 478], "golub": 187, "good": [2, 8, 451, 476, 477, 484], "goroshin": 334, "gower": 5, "gpu": [1, 3, 7, 8, 208, 476, 479, 484], "gputrac": [3, 216], "grad": [2, 4, 6, 296, 306, 451, 459, 476, 477, 478, 479, 480, 482], "grad_fn": [4, 476, 478], "gradient": [0, 4, 6, 112, 165, 278, 296, 305, 306, 321, 360, 373, 378, 396, 426, 449, 451, 452, 453, 455, 456, 457, 458, 459, 462, 464, 476, 477, 478, 479, 480, 481, 482], "grain": 473, "graph": [2, 5, 6, 7, 478], "great": 3, "greater": [0, 5, 28, 139, 167, 230, 306, 394, 443], "greater_equ": 0, "grep": 8, "grid": [2, 143, 206], "grid_dim": 2, "grid_grad": 1, "grid_idx": 1, "grid_sampl": 1, "grid_sample_grad": 1, "grid_sample_ref": 1, "grid_sample_vjp": 1, "grid_shap": 1, "grid_siz": 1, "ground": [4, 5, 420, 430], "group": [0, 1, 98, 99, 100, 101, 102, 103, 104, 116, 121, 122, 123, 125, 126, 127, 141, 146, 164, 234, 235, 298, 304, 327, 341, 377, 378, 477], "group_dim": 2, "group_siz": [0, 116, 141, 164, 234, 235, 304, 377, 378], "groupnorm": 321, "grow": 480, "gru": 321, "guid": [2, 7], "gw": 1, "h": [1, 2, 98, 99, 100, 102, 103, 104, 187, 324, 325, 328, 329, 331, 332, 334, 335, 340, 346, 353, 380, 478, 480], "h_": [324, 340, 346, 353, 380], "h_in": 1, "h_stride": 1, "h_t": [340, 346, 380], "ha": [2, 3, 5, 6, 7, 8, 78, 94, 118, 127, 153, 154, 156, 157, 158, 165, 183, 184, 186, 189, 190, 206, 210, 238, 325, 340, 346, 349, 380, 449, 451, 476, 479, 480, 482, 484], "had": 5, "hadamard": [0, 168], "hadamard_transform": 0, "half": [2, 18, 245, 249, 383, 480], "halv": [339, 411], "hand": [5, 478, 480], "handi": 478, "handl": [2, 321, 476], "happen": [2, 5, 142, 396, 451, 476, 480], "happi": 5, "hard": 5, "hard_shrink": [321, 342], "hard_tanh": [321, 343], "hardshrink": [321, 412], "hardswish": 321, "hardtanh": [321, 413], "hat": [116, 141, 234], "have": [0, 1, 2, 5, 8, 16, 82, 84, 85, 86, 90, 121, 154, 155, 157, 158, 164, 172, 202, 216, 238, 298, 307, 346, 375, 385, 458, 460, 475, 476, 477, 479, 480, 484], "haven": 5, "hazan": 454, "he": [5, 401, 402], "he_norm": 321, "he_uniform": 321, "head": [146, 375, 396], "header": [2, 143], "heart": 5, "heavi": 5, "height": [324, 325, 328, 329, 331, 332, 334, 335, 353], "hello": [307, 311], "help": [2, 5, 476, 484], "helper": [5, 143, 476], "henc": [0, 2, 234, 476], "hendryck": 410, "here": [2, 5, 451, 476, 478, 480, 483, 484], "hf": 346, "hg": 346, "hh": 380, "hi": [5, 346], "hidden": [340, 346, 380, 396], "hidden_dim": [6, 449, 451], "hidden_s": [340, 346, 380], "hierarchi": 314, "high": [245, 249, 321, 337, 405, 446], "high_pad_s": 0, "higher": [2, 171, 427, 478], "highli": 8, "him": 5, "hing": 422, "hinge_loss": 321, "hinton": 463, "hit": 2, "hn": 340, "ho": 346, "hold": [2, 5, 10, 11, 187, 476], "homebrew": 477, "hopkin": 187, "host": 2, "host1": 477, "host2": 477, "host_nam": [1, 2], "hostfil": 477, "hostnam": 477, "hot": 420, "hour": 5, "how": [2, 5, 6, 321, 323, 324, 327, 328, 329, 330, 331, 332, 337, 352, 353, 377, 397, 459, 476, 479, 484], "howev": [2, 112, 321, 338, 341, 460, 473, 476, 477, 480, 481], "hr": 340, "http": [341, 345, 347, 354, 379, 410, 432], "huber": 423, "huber_loss": 321, "human": [401, 402], "hundr": 8, "hurri": 5, "hutter": 456, "hyperbol": [0, 20, 22, 25, 107, 269, 287, 395, 444], "hz": 340, "i": [0, 1, 2, 3, 5, 6, 7, 8, 16, 18, 28, 37, 78, 83, 93, 99, 100, 101, 103, 104, 105, 108, 109, 110, 111, 112, 117, 118, 121, 122, 124, 125, 126, 127, 129, 136, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 168, 172, 173, 178, 179, 183, 184, 185, 186, 187, 188, 189, 190, 192, 197, 201, 202, 206, 212, 215, 229, 230, 233, 234, 235, 242, 243, 244, 254, 256, 259, 260, 261, 266, 270, 272, 277, 278, 283, 284, 285, 288, 291, 292, 296, 297, 298, 299, 300, 301, 304, 306, 307, 308, 309, 310, 314, 316, 321, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 338, 340, 341, 345, 346, 347, 349, 352, 353, 359, 360, 366, 368, 369, 371, 372, 374, 375, 376, 378, 379, 380, 383, 388, 394, 396, 397, 401, 402, 408, 410, 418, 419, 421, 426, 427, 430, 431, 433, 438, 443, 449, 451, 453, 456, 458, 459, 460, 465, 467, 468, 473, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485], "i386": 8, "i_n": 1, "i_nw": 1, "i_s": 1, "i_sw": 1, "i_t": 346, "iclr": [455, 456, 457], "id": [6, 8], "idea": [478, 480], "idempot": [360, 372], "ident": [0, 112, 140, 278, 321, 369], "identifi": [2, 307, 475], "idim": 6, "idiom": [6, 476], "idx": [38, 479], "ie": [372, 477], "ieee": 314, "ignor": [5, 38, 93, 94, 136, 453], "ih": 380, "ii": 1, "ij": 206, "imag": [0, 328, 329, 331, 332, 334, 335, 397], "imagenet": [401, 402], "imaginari": 170, "immedi": [5, 355], "implement": [0, 1, 4, 6, 145, 146, 187, 337, 359, 375, 383, 385, 388, 394, 396, 397, 443, 452, 453, 454, 455, 457, 458, 459, 471, 476, 478], "impli": 298, "implicit": [473, 476, 478], "implicitli": 480, "import": [2, 3, 4, 5, 6, 8, 112, 168, 187, 262, 296, 307, 308, 309, 310, 311, 321, 323, 324, 325, 345, 352, 353, 362, 397, 418, 420, 427, 446, 449, 451, 476, 477, 478, 479, 480, 481, 482], "improv": [1, 2, 3, 5, 418, 452, 453, 454, 455, 456, 457, 463, 476, 477], "in_ax": [300, 478], "in_channel": [327, 328, 329, 330, 331, 332], "in_dim": [321, 449], "in_proj": 449, "inci": 2, "includ": [1, 2, 108, 109, 110, 111, 143, 209, 210, 215, 347, 356, 368, 378, 421, 451, 476, 478, 479, 482, 483, 485], "include_dir": 2, "inclus": [0, 41, 42, 43, 44, 108, 109, 110, 111, 159], "incom": 2, "inconveni": 476, "incorpor": 481, "incorrect": 481, "increment": 18, "incur": [5, 8], "incx": 2, "independ": [120, 334, 335], "index": [0, 1, 2, 7, 9, 28, 38, 138, 140, 165, 206, 230, 284, 285, 296, 312], "indic": [0, 2, 16, 26, 27, 28, 29, 38, 163, 164, 165, 172, 173, 174, 175, 176, 177, 178, 189, 233, 272, 284, 285, 296, 369, 371, 420, 427, 467, 479], "indices_or_sect": [71, 272], "indirectli": 481, "individu": [321, 334, 335], "ineffici": [479, 480], "inexact": [11, 178], "inf": [187, 222, 375], "infer": [7, 162, 192, 291, 477], "infin": [0, 174, 176, 177, 222, 352, 353, 457], "infinit": [16, 172, 173], "info": [5, 8], "inform": [3, 5, 6, 8, 131, 208, 260, 261, 314, 321, 325, 338, 375, 478, 484], "inherit": [6, 475], "inifn": 174, "init": [321, 376, 446, 451, 465, 466, 468, 469, 477], "init_fn": [398, 399, 400, 401, 402, 403, 404, 405, 446], "init_valu": 1, "initi": [1, 3, 4, 5, 123, 310, 321, 325, 341, 345, 347, 349, 376, 379, 398, 399, 400, 401, 402, 403, 404, 405, 449, 460, 465, 466, 468, 469, 476, 477, 480], "initializer_list": 0, "inject": 0, "inlin": 0, "inner": [0, 476], "inorm": 345, "inp": [1, 143], "inp_ndim": 1, "inp_shap": 1, "inp_strid": 1, "inplac": [2, 8], "input": [0, 1, 2, 4, 5, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 117, 118, 121, 122, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 225, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 244, 247, 250, 251, 252, 253, 254, 255, 256, 257, 258, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 294, 295, 296, 297, 298, 300, 301, 303, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 337, 339, 340, 341, 345, 346, 347, 349, 352, 353, 375, 378, 379, 380, 383, 394, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 411, 418, 419, 421, 422, 423, 424, 426, 427, 429, 431, 443, 446, 476, 478, 479, 482, 483], "input_dil": [0, 101], "input_dim": [6, 321, 349, 378], "input_nam": [1, 143], "input_s": [340, 346, 380], "inputs1": 427, "inputs2": 427, "insert": [118, 138, 484], "insid": 476, "inspect": [3, 476, 482], "inspir": 7, "instabl": 431, "instal": 2, "instanc": [5, 38, 112, 234, 311, 321, 345, 355, 356, 357, 360, 362, 363, 364, 369, 372, 373, 374, 385, 449, 481], "instancenorm": 321, "instanti": [1, 2, 6, 480], "instantiate_axpbi": 2, "instead": [2, 8, 112, 321, 374, 388, 477, 478, 480], "int": [0, 1, 2, 5, 6, 9, 15, 17, 18, 26, 27, 28, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 49, 56, 57, 58, 59, 60, 63, 66, 68, 71, 74, 75, 76, 77, 78, 80, 83, 90, 91, 95, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 116, 117, 118, 125, 126, 127, 131, 138, 140, 141, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 164, 165, 169, 178, 185, 187, 191, 201, 203, 205, 208, 209, 210, 211, 214, 215, 218, 220, 226, 229, 230, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 253, 254, 256, 257, 270, 271, 272, 275, 276, 277, 281, 282, 284, 285, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 300, 302, 304, 312, 321, 323, 324, 325, 327, 328, 329, 330, 331, 332, 337, 339, 340, 341, 345, 346, 347, 349, 352, 353, 375, 377, 378, 379, 380, 383, 388, 396, 411, 419, 420, 424, 429, 431, 449, 465, 467, 468, 469], "int16": 314, "int32": [0, 1, 11, 18, 38, 159, 178, 187, 245, 314, 397, 479, 482], "int64": [11, 314], "int8": [11, 314], "int_0": 134, "integ": [0, 11, 161, 163, 164, 178, 187, 208, 229, 234, 235, 237, 244, 245, 272, 284, 288, 300, 314, 337, 367, 467, 479], "integr": [18, 284, 480], "intend": [0, 476], "interact": 396, "interest": 484, "interfac": 2, "intermedi": 481, "intern": 325, "interpol": 397, "interv": [18, 191, 245, 249], "introduc": [0, 256], "intuit": 321, "invalid": [0, 83], "invers": [0, 19, 20, 21, 22, 23, 24, 25, 135, 150, 151, 152, 153, 154, 155, 184, 186, 190], "invert": 0, "involv": [451, 476], "ip": 477, "is_avail": 123, "is_equival": 2, "is_floating_point": 2, "is_leaf": [307, 308, 309, 310], "is_leaf_fn": 359, "isclos": 0, "isfinit": 0, "ish": 5, "ishmael": 5, "isinf": 0, "isnan": 0, "isneginf": 0, "isposinf": 0, "issu": [477, 478, 481], "issubdtyp": [11, 314], "item": [0, 2, 4, 5, 6, 308, 451, 480, 481, 482], "iter": [4, 6, 189, 308, 309, 473, 476, 480], "iterm": 8, "itertool": [5, 308], "its": [0, 1, 2, 8, 184, 202, 230, 247, 293, 305, 311, 321, 378, 451, 455, 456, 457, 477, 481, 484], "itself": [2, 304, 460], "ix": 1, "ix_n": 1, "ix_nw": 1, "ix_s": 1, "ix_sw": 1, "iy_n": 1, "iy_nw": 1, "iy_s": 1, "iy_sw": 1, "j": [5, 8, 187, 334, 454, 455, 457], "j8": 2, "jacobian": [2, 179, 299, 482], "jain": 334, "jax": [7, 473], "jit": 143, "jmlr": 454, "jnp": 481, "john": 187, "join": 467, "join_schedul": 451, "jointli": 242, "just": [2, 6, 347, 476, 479], "jvp": [2, 112, 482], "k": [0, 5, 45, 90, 117, 140, 146, 163, 168, 290, 293, 294, 295, 323, 349, 352, 360], "k_h": [324, 353], "k_w": [324, 353], "kaim": 402, "keep": [2, 15, 17, 26, 27, 201, 203, 205, 218, 232, 277, 281, 297, 321, 359, 478, 480], "keepdim": [0, 15, 17, 26, 27, 33, 34, 35, 36, 56, 57, 58, 59, 63, 75, 76, 80, 187, 201, 203, 205, 218, 232, 270, 277, 281, 297], "kei": [1, 3, 5, 146, 208, 237, 238, 239, 241, 242, 243, 244, 245, 247, 248, 249, 307, 308, 359, 360, 372, 375, 460, 473, 475, 478], "kernel": [2, 7, 8, 98, 99, 100, 101, 102, 103, 104, 143, 323, 324, 352, 353, 476, 479], "kernel_dil": [0, 101], "kernel_s": [323, 324, 327, 328, 329, 330, 331, 332, 352, 353], "key_cach": 5, "key_input_dim": 375, "key_proj": 5, "keyword": [165, 262, 263, 296, 308, 321, 473, 483, 485], "kind": 5, "kingma": [455, 457], "kl_div_loss": 321, "kname": 2, "know": [2, 5], "known": [386, 438], "kth": [0, 28, 230], "kullback": 424, "kw_onli": 2, "kwarg": [10, 120, 262, 263, 485], "l": [5, 6, 183, 184, 321, 323, 325, 327, 330, 340, 346, 352, 380, 430], "l1": [296, 423, 425, 426, 430], "l1_loss": 321, "l2": [423, 426, 464], "l2_loss": 321, "l_": [323, 352, 423], "la": 187, "label": [3, 4, 420, 427], "label_smooth": 420, "lack": 479, "lambd": [342, 392, 412, 442], "lambda": [308, 309, 310, 321, 342, 355, 360, 367, 392, 412, 436, 442, 452, 453, 454, 455, 456, 457, 458, 463, 464, 476, 477, 478], "languag": [1, 2], "larg": [5, 321, 375, 426, 476, 477, 480], "larger": [1, 145, 383, 458], "largest": [187, 222, 290], "lasso": 296, "last": [0, 1, 5, 29, 78, 142, 144, 149, 152, 154, 155, 157, 158, 159, 163, 164, 171, 183, 184, 186, 188, 189, 190, 202, 211, 238, 271, 288, 298, 327, 328, 329, 330, 331, 332, 334, 335, 341, 397, 481], "latenc": 477, "later": [3, 8, 451], "latest": 476, "launch": [1, 2, 123, 477, 479], "layer": [7, 142, 304, 321, 323, 324, 334, 335, 340, 341, 346, 347, 349, 352, 353, 369, 374, 377, 378, 380, 385, 396, 445, 449], "layer_s": 6, "layernorm": 321, "layout": 1, "lazi": [7, 449, 482], "lazili": [5, 321], "lceil": 90, "ld": [340, 346, 380], "ldot": [323, 324, 352, 353], "lead": [0, 18, 83, 476], "leaf": [94, 304, 307, 308, 309, 310, 359], "leaf_modul": 321, "leaki": [348, 415], "leaky_relu": 321, "leakyrelu": 321, "learn": [4, 6, 7, 325, 341, 345, 347, 376, 379, 451, 452, 453, 454, 455, 456, 457, 458, 463, 464], "learnabl": [327, 328, 329, 330, 331, 332, 385], "learning_r": [6, 451, 452, 453, 454, 455, 456, 457, 458, 460, 463, 464, 465, 466, 467, 468, 469, 476], "least": [5, 84, 85, 86, 93, 183, 184, 186, 188, 189, 190, 234], "leav": [2, 136, 308, 309, 310], "lectur": 463, "lecun": 334, "left": [0, 5, 145, 180, 187, 234, 256, 323, 324, 338, 352, 353, 383, 397, 409, 410, 421, 423, 431], "left_shift": 0, "leibler": 424, "len": [5, 149, 152, 155, 158, 168, 467], "length": [5, 275, 325, 327, 330, 340, 346, 380, 467], "leq": [423, 436], "less": [0, 5, 28, 182, 230, 383, 430], "less_equ": 0, "let": [1, 2, 4, 5, 184, 476, 478, 480, 481], "level": [0, 163, 164, 401, 402], "lfloor": [323, 324, 352, 353], "lh": [340, 346, 380], "lhs_indic": [0, 163, 164], "lhs_mask": 90, "lib": 477, "libmlx": 8, "libmlx_ext": 2, "libmpi": 477, "librari": [2, 8, 316, 321], "like": [2, 5, 7, 126, 178, 227, 303, 335, 426, 460, 462, 476, 477, 478, 480, 481, 482, 484], "likelihood": [421, 429], "limit": [0, 2, 93, 214, 215, 479], "linalg": 168, "line": [5, 477, 480, 481], "linear": [0, 2, 5, 6, 7, 304, 308, 321, 326, 336, 338, 339, 348, 362, 378, 380, 381, 382, 384, 386, 397, 406, 407, 408, 409, 410, 411, 415, 434, 435, 436, 438, 446, 449, 460, 468, 476], "linear1": 5, "linear2": 5, "linear3": 5, "linear_schedul": [451, 467], "linearli": 375, "link": [2, 8], "linspac": 0, "lion": 451, "list": [1, 5, 10, 15, 17, 30, 71, 78, 83, 84, 85, 86, 91, 94, 95, 101, 131, 136, 143, 148, 149, 151, 152, 154, 155, 157, 158, 162, 165, 179, 187, 201, 203, 205, 206, 218, 226, 229, 232, 237, 238, 239, 241, 242, 243, 245, 248, 249, 260, 270, 272, 276, 277, 281, 288, 289, 292, 296, 297, 299, 302, 307, 310, 311, 321, 360, 362, 363, 364, 365, 370, 372, 373, 374, 449, 451, 455, 456, 457, 458, 467, 475, 476, 477, 478, 480], "liter": [2, 229, 397, 401, 402, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431], "littl": 5, "liu": 5, "live": [7, 143, 484], "ll": [1, 4, 6, 423, 476, 478], "llama": 5, "llamaattent": 5, "llamaencoderlay": 5, "llm": 7, "load": [6, 7, 316, 362, 477], "load_weight": [321, 480], "loader": 6, "loader_path": 2, "loan": 187, "loc": [1, 241, 243], "local": [321, 334, 477], "locat": [0, 2, 83, 373, 374, 477, 484], "log": [0, 195, 197, 201, 350, 351, 416, 417, 418, 421, 424, 426, 429, 441], "log10": 0, "log1p": 0, "log2": 0, "log_cosh_loss": 321, "log_sigmoid": [321, 350], "log_softmax": [321, 351], "logaddexp": 0, "logarithm": [0, 193, 194, 195, 196], "logcosh": 426, "logic": [0, 2, 198, 199, 200], "logical_and": 0, "logical_not": 0, "logical_or": 0, "logist": [0, 4, 266, 410, 438], "logit": [5, 238, 418, 420, 476], "logsigmoid": 321, "logsoftmax": 321, "logsumexp": 0, "long": 5, "longer": [5, 105, 478], "look": [2, 5, 477], "lookup": 337, "loop": [5, 6, 476, 477, 478, 480], "loshchilov": 456, "loss": [4, 6, 296, 321, 451, 476, 477, 478, 480], "loss_and_grad": 321, "loss_and_grad_fn": [6, 451, 476, 478], "loss_fn": [4, 6, 451, 476, 478], "loss_grad_fn": 477, "lot": [477, 478], "low": [245, 249, 405, 446], "low_pad_s": 0, "lower": [183, 184, 190, 234, 245, 248, 249, 293, 405], "lr": [4, 458], "lr_schedul": [465, 466, 467, 469], "lstm": 321, "lto": 2, "lu": 5, "luckili": 480, "lvalu": 296, "m": [0, 2, 5, 8, 90, 140, 163, 168, 187, 293, 323, 324, 352, 353, 452, 476], "m1": [1, 5, 476, 478, 484], "m10": 314, "m7": 314, "m_": [455, 456, 457, 458], "m_t": [455, 456, 457, 458], "mac": 477, "machin": [5, 7, 8, 463, 477], "maco": 8, "macosx": 8, "made": [5, 316], "mai": [2, 187, 304, 334, 477, 478, 479], "main": [7, 118, 140, 143, 291, 308, 309, 321, 477], "maintain": [334, 335, 458], "major": [0, 2], "make": [1, 2, 3, 5, 6, 8, 202, 224, 265, 321, 465, 466, 468, 469, 476, 480, 482, 484], "make_shar": 2, "malloc_or_wait": 2, "man": 5, "manag": [279, 473, 477, 484], "mani": [2, 83, 272, 327, 328, 329, 330, 331, 332, 337, 377, 476, 477, 480], "manual": 321, "map": [2, 6, 38, 192, 308, 337, 355], "map_fn": [355, 359], "map_torch_to_mlx": 5, "margin": [427, 431], "margin_ranking_loss": 321, "mask": [0, 5, 90, 146, 369, 375, 479], "mask_lh": [0, 90], "mask_n": 1, "mask_nw": 1, "mask_out": [0, 90], "mask_rh": [0, 90], "mask_s": 1, "mask_sw": 1, "matadata": 192, "match": [8, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 209, 362, 397, 420, 477, 479, 481], "materi": [5, 7], "math": [5, 431, 476], "mathbf": 184, "mathcal": 349, "mathemat": 187, "mathrm": [134, 266, 345], "matmul": [0, 163, 484], "matric": [187, 188, 189], "matrix": [0, 4, 14, 45, 90, 116, 117, 140, 141, 163, 164, 168, 169, 183, 184, 186, 187, 188, 189, 190, 202, 206, 234, 235, 242, 377, 378, 403, 446], "matter": [5, 321], "max": [0, 1, 2, 187, 204, 326, 352, 353, 376, 406, 413, 414, 419, 421, 422, 427, 431, 433, 435, 453, 457, 476, 478, 484], "max_": [352, 353], "max_buffer_s": 208, "max_freq": 388, "max_i": 234, "max_norm": 306, "max_recommended_working_set_s": 208, "max_val": 413, "maximum": [0, 6, 26, 38, 93, 108, 211, 215, 306, 321, 348, 381, 388, 409, 410, 415, 434, 449, 480], "maxpool1d": 321, "maxpool2d": 321, "maxtotalthreadsperthreadgroup": 2, "mca": 477, "md": 187, "me": 5, "mean": [0, 1, 4, 5, 6, 144, 241, 242, 243, 296, 321, 325, 341, 360, 379, 404, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 476, 478, 481], "meant": 112, "measur": 484, "mechan": 396, "medic": 335, "meet": 8, "member": [2, 321, 365, 370], "memori": [0, 1, 2, 7, 83, 207, 209, 210, 211, 213, 214, 215, 396, 449, 453, 476, 480, 481], "memory_order_relax": 1, "memory_s": 208, "memoryview": [480, 481], "merg": 476, "meshgrid": 0, "metadata": [4, 192, 260, 261], "metal": [2, 7, 143], "metal_captur": 3, "metal_kernel": 1, "metal_path": 8, "metallib": [2, 8], "method": [2, 5, 9, 10, 30, 112, 120, 304, 312, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 366, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 449, 452, 453, 454, 455, 456, 457, 458, 460, 463, 464, 471], "millisecond": [8, 476, 484], "min": [0, 2, 187, 219, 326, 376, 406, 413, 414, 433, 435], "min_freq": 388, "min_i": 234, "min_val": 413, "mind": [2, 5], "mine": 5, "minibatch": 6, "minim": 477, "minimum": [0, 27, 38, 93, 109, 388, 418, 419], "minsizerel": 8, "minu": 139, "minut": 5, "mish": 321, "miss": [362, 483], "mix": 479, "mkdir": [3, 8], "ml": 8, "mlp": [6, 321, 396, 451], "mlp_dim": [5, 396], "mlx": [1, 3, 4, 5, 6, 8, 316, 321, 446, 449, 451, 473, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484], "mlx_build_benchmark": 8, "mlx_build_cpu": 8, "mlx_build_exampl": 8, "mlx_build_gguf": 8, "mlx_build_met": [2, 8], "mlx_build_metallib": 2, "mlx_build_python_bind": 8, "mlx_build_safetensor": 8, "mlx_build_test": 8, "mlx_disable_compil": [119, 132, 476], "mlx_ext": 2, "mlx_ext_metallib": 2, "mlx_include_dir": 2, "mlx_metal_debug": [3, 8], "mlx_metal_jit": 8, "mlx_sample_extens": 2, "mlx_trace": 3, "mnist": 6, "mode": [0, 1, 2, 105, 229, 358, 369, 371, 397, 401, 402, 477], "model": [4, 6, 7, 262, 304, 305, 308, 309, 321, 355, 358, 360, 362, 366, 369, 371, 372, 373, 375, 396, 446, 449, 451, 459, 460, 462, 476, 477, 480], "modest": 2, "modif": 481, "modifi": 481, "modul": [2, 5, 6, 304, 305, 385, 396, 446, 462, 475, 476, 480], "moment": [5, 453, 455, 456, 457], "momentum": [325, 458, 460, 464, 476], "monei": 5, "monoton": 432, "more": [1, 2, 3, 6, 10, 78, 118, 163, 183, 184, 186, 189, 190, 202, 214, 215, 260, 261, 314, 321, 325, 334, 383, 388, 396, 397, 399, 400, 401, 402, 418, 473, 476, 477, 478, 479, 482, 484], "most": [2, 238, 321, 462, 476, 477, 478, 479, 480], "move": [0, 2, 220, 484], "moveaxi": 0, "mpi": 316, "mpiexec": 477, "mpirun": 477, "mse": 296, "mse_loss": 321, "mtl": 2, "mtl_capture_en": 3, "mtlcommandbuff": 2, "mu": 464, "much": [1, 2, 5, 323, 324, 352, 353, 476, 480], "multi": [7, 146, 327, 328, 329, 330, 331, 332, 479, 481], "multidimension": 206, "multiheadattent": [5, 321], "multipl": [0, 1, 8, 14, 90, 142, 144, 163, 164, 202, 221, 234, 235, 375, 388, 466, 467, 469, 476, 480, 483], "multipli": [0, 2, 38, 164, 234, 235, 333, 388, 397], "murtadha": 5, "must": [0, 1, 2, 3, 8, 90, 93, 145, 162, 164, 187, 237, 238, 242, 245, 248, 249, 301, 397, 481], "mx": [1, 2, 3, 4, 5, 6, 38, 96, 97, 112, 123, 126, 143, 159, 178, 187, 188, 192, 244, 262, 296, 306, 321, 323, 324, 325, 336, 345, 348, 352, 353, 355, 362, 366, 381, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 415, 418, 419, 420, 424, 427, 434, 444, 446, 449, 451, 473, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485], "my": [5, 8], "my_devic": 485, "my_path": 262, "myexp": [1, 143], "myexp_strid": 1, "mymlp": 449, "n": [0, 1, 2, 5, 30, 90, 98, 99, 100, 101, 102, 103, 104, 140, 147, 149, 150, 152, 153, 156, 158, 168, 169, 242, 277, 293, 297, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 340, 346, 352, 353, 380, 397, 426, 431, 477], "n_i": [323, 324, 352, 353], "n_t": 340, "naiv": [2, 478], "naive_add": 478, "name": [1, 2, 143, 164, 192, 234, 235, 260, 261, 262, 263, 321, 341, 359, 362, 364, 477, 479, 483], "named_modul": 321, "nan": [0, 16, 82, 172, 173, 175, 222], "nan_to_num": 0, "nanobind": [2, 396], "nanobind_add_modul": 2, "nativ": 8, "natur": [0, 193, 195, 480], "nb": 2, "nb_domain": 2, "nb_func": 396, "nb_modul": 2, "nb_static": 2, "nbyte": 2, "nc": 325, "ndarrai": [30, 479, 480, 482], "ndhwc": [329, 332, 335], "ndim": [0, 1, 2, 159, 187, 189, 397], "ne": 1, "nearest": [1, 397], "necessari": 321, "necessarili": 290, "need": [1, 2, 5, 6, 7, 8, 82, 234, 321, 373, 374, 388, 396, 473, 477, 478, 480, 481, 482, 484], "neg": [0, 118, 159, 176, 222, 256, 291, 348, 352, 353, 375, 421, 429, 431, 479], "negat": [0, 223], "negative_slop": [348, 415], "neginf": [0, 222], "neighbor": 397, "neither": [165, 296], "nelem": 2, "nervou": 5, "nest": [78, 94, 310, 321, 449, 475, 478], "nesterov": 464, "network": [5, 7, 325, 334, 337, 399, 400, 446, 449, 463, 477], "neural": [5, 7, 337, 399, 400, 432, 446, 449, 463], "never": [5, 480], "new": [0, 2, 6, 91, 118, 220, 224, 254, 276, 292, 298, 308, 309, 367, 375, 449, 451, 462, 467, 476, 479, 480, 481], "new_tre": 309, "next": [2, 5, 6, 214], "nh": [340, 346, 380], "nhwc": [325, 328, 331], "nice": [478, 480], "nlc": [325, 327, 330], "nld": [340, 346, 380], "nlh": [340, 346, 380], "nll": [421, 429], "nll_loss": 321, "nn": [2, 5, 6, 262, 308, 321, 446, 449, 451, 460, 462, 476, 480], "nobodi": 5, "node": [94, 136, 300, 309, 310], "nois": 4, "noisi": 4, "nomins": 2, "non": [0, 1, 2, 8, 206, 370, 380, 432, 449], "none": [1, 2, 5, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 118, 119, 121, 122, 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 213, 216, 217, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 300, 301, 302, 303, 304, 307, 308, 309, 310, 312, 323, 324, 338, 352, 353, 355, 359, 360, 367, 372, 375, 380, 388, 396, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 453, 471, 479], "nonlinear": [380, 476], "nonzero": 479, "noop": 372, "nor": [2, 165, 296], "norm": [5, 144, 306, 341, 431, 457, 458], "norm1": 5, "norm2": 5, "norm_first": 396, "normal": [1, 2, 4, 5, 142, 143, 144, 242, 248, 321, 323, 324, 325, 341, 345, 347, 352, 353, 379, 396, 399, 401, 481, 484], "not_equ": 0, "notabl": [5, 7], "notat": [116, 141, 307, 364], "note": [0, 2, 5, 8, 16, 18, 83, 90, 94, 100, 103, 104, 112, 146, 154, 155, 164, 172, 187, 209, 234, 238, 298, 304, 321, 379, 397, 451, 481, 483], "noth": [5, 321, 480], "notic": [5, 478, 483], "now": [1, 2, 5, 8, 378, 476, 477, 481], "np": [1, 5, 6, 477, 481, 482], "npy": [192, 259, 483], "npz": [5, 192, 262, 263, 362, 366, 483], "nuclear": 187, "nullopt": 0, "num": [0, 5, 191, 247], "num_class": [6, 451], "num_decoder_lay": 396, "num_embed": [337, 377], "num_encoder_lay": 396, "num_epoch": [6, 451], "num_exampl": 4, "num_featur": [4, 325], "num_group": 341, "num_head": [5, 375, 396], "num_it": 4, "num_lay": [5, 6, 451], "num_param": 321, "num_paramet": 376, "num_sampl": 238, "num_split": 0, "number": [0, 2, 11, 18, 61, 70, 94, 99, 100, 101, 103, 104, 116, 140, 141, 164, 165, 169, 179, 191, 222, 229, 234, 235, 238, 241, 243, 247, 249, 253, 256, 257, 288, 289, 293, 296, 299, 300, 304, 321, 325, 327, 328, 329, 330, 331, 332, 334, 335, 341, 345, 375, 376, 396, 397, 399, 400, 401, 402, 465, 467, 468, 473, 476, 478, 485], "number_of_el": 0, "numer": [5, 142, 144, 187, 197, 201, 270, 325, 341, 345, 347, 379, 418, 419, 421, 431, 452, 453, 454, 455, 456, 457, 463, 476, 480], "numpi": [2, 5, 6, 7, 13, 16, 18, 87, 88, 89, 91, 128, 129, 133, 166, 167, 172, 180, 181, 182, 197, 202, 204, 219, 221, 225, 231, 252, 255, 280, 480, 482, 483], "nw": 1, "nwhc": 334, "o": [2, 8, 146, 346], "o_t": 346, "obj": 260, "object": [3, 10, 30, 50, 78, 94, 143, 178, 262, 300, 307, 308, 309, 310, 314, 334, 396, 475], "observ": 5, "occupi": [116, 141, 164, 234, 235], "occur": 481, "odim": 6, "odot": [340, 346], "off": [5, 8, 480], "offer": 426, "offset": [0, 1, 2, 5, 46, 83, 118, 142, 145, 291], "often": 335, "ok": [362, 478], "okai": [476, 480], "old": 5, "omit": [455, 457, 477], "onc": [2, 8, 476], "one": [0, 2, 5, 8, 38, 78, 84, 93, 99, 100, 101, 103, 104, 138, 140, 142, 144, 145, 187, 195, 202, 235, 238, 275, 280, 314, 372, 397, 420, 477, 484], "ones": [0, 2, 5, 227, 262, 293, 373, 374, 451, 477, 479], "ones_lik": 0, "onli": [1, 2, 5, 7, 8, 82, 90, 99, 100, 101, 103, 104, 187, 234, 242, 298, 321, 359, 360, 362, 367, 369, 372, 373, 374, 449, 476, 477, 478, 483, 484], "onlin": 454, "op": [1, 2, 228, 298, 360, 480], "open": [3, 8, 18, 245, 249], "openmpi": 477, "oper": [3, 5, 7, 9, 37, 84, 85, 86, 101, 146, 163, 164, 231, 233, 270, 278, 285, 312, 321, 396, 458, 476, 477, 478, 479, 480, 481, 482, 484, 485], "operand": [130, 131, 163], "opportun": 476, "opt": [459, 477], "optim": [3, 4, 6, 7, 373, 476, 477, 478, 480], "option": [0, 3, 5, 14, 15, 17, 18, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 84, 85, 86, 90, 94, 95, 98, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 111, 112, 116, 117, 118, 121, 122, 123, 125, 126, 127, 140, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 163, 164, 165, 169, 176, 177, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 201, 203, 205, 206, 215, 218, 222, 226, 229, 230, 232, 234, 235, 237, 238, 239, 241, 242, 243, 244, 245, 247, 248, 249, 253, 254, 256, 270, 271, 272, 275, 276, 277, 281, 283, 284, 288, 290, 291, 292, 293, 294, 295, 296, 297, 300, 302, 304, 307, 308, 309, 310, 323, 324, 325, 327, 328, 329, 330, 331, 332, 340, 346, 349, 352, 353, 355, 359, 360, 362, 367, 372, 375, 377, 378, 380, 383, 388, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 452, 453, 454, 455, 456, 457, 458, 460, 463, 464, 465, 473, 476, 483, 485], "ord": 187, "order": [0, 1, 28, 83, 101, 131, 187, 230, 234, 290, 321, 341, 373, 385, 460, 476, 478], "ordinari": 171, "org": [341, 345, 347, 354, 379, 410, 432], "origin": [5, 118, 306, 325, 368, 399, 400, 401, 402, 452, 453, 454, 455, 457, 458, 481], "orthonorm": 168, "ostream": 2, "ostringstream": 2, "other": [0, 2, 5, 7, 178, 187, 321, 361, 449, 458, 476, 477, 479, 480, 482], "other_input": 321, "otherwis": [18, 101, 123, 215, 244, 304, 307, 308, 309, 310, 360, 362, 372, 394, 396, 397, 412, 418, 423, 430, 442, 443, 480, 481], "ouptut": 8, "our": [1, 2, 5, 6, 385, 452, 453, 454, 455, 457, 458, 477], "out": [0, 1, 2, 8, 90, 143, 323, 324, 334, 335, 352, 353, 369, 476, 477, 478, 479], "out_ax": [300, 478], "out_channel": [327, 328, 329, 330, 331, 332], "out_dim": [321, 449], "out_dtyp": 2, "out_idx": 2, "out_mask": 90, "out_proj": [5, 449], "out_ptr": 2, "out_shap": [1, 2], "outer": [0, 476, 480], "outlier": 426, "output": [0, 1, 2, 5, 8, 15, 16, 17, 18, 28, 83, 90, 91, 94, 96, 97, 108, 109, 110, 111, 112, 130, 140, 142, 143, 144, 145, 146, 153, 156, 157, 158, 162, 163, 165, 168, 169, 172, 187, 191, 201, 203, 205, 206, 218, 222, 226, 227, 230, 232, 233, 237, 238, 239, 241, 242, 243, 245, 248, 249, 262, 263, 270, 275, 277, 281, 285, 291, 293, 296, 297, 298, 299, 300, 301, 302, 303, 323, 324, 325, 327, 328, 329, 330, 331, 332, 345, 349, 352, 353, 375, 378, 394, 396, 397, 399, 400, 401, 402, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 443, 446, 476, 477, 478, 479, 480, 481, 482, 483, 484], "output_dim": [6, 321, 349, 378], "output_directori": 2, "output_dtyp": [1, 143], "output_fil": 5, "output_nam": [1, 143], "output_shap": [1, 143], "outsid": [143, 159], "over": [0, 2, 5, 6, 15, 17, 26, 27, 28, 29, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 149, 152, 155, 158, 171, 187, 189, 191, 201, 203, 205, 218, 230, 232, 258, 270, 271, 277, 281, 288, 290, 297, 325, 327, 328, 329, 330, 331, 332, 341, 347, 379, 420, 465, 468, 477, 478], "overal": 2, "overhead": [476, 480, 484], "overlap": 1, "overload": 18, "overrid": [2, 132], "overview": 3, "overwrit": 5, "own": [8, 481], "owndata": 481, "p": [8, 237, 321, 333, 334, 335, 431, 455, 457], "pack": [164, 234, 235], "packag": [2, 4, 6, 8, 316, 446, 477], "package_data": 2, "pad": [0, 1, 98, 99, 100, 101, 102, 103, 104, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 323, 324, 327, 328, 329, 330, 331, 332, 352, 353], "pad_valu": 0, "pad_width": [0, 229], "padding_hi": 0, "padding_lo": 0, "page": 482, "pain": 5, "pair": [0, 2, 229, 362, 383], "pairwis": 431, "pan": 5, "paper": [325, 388, 452, 453, 454, 455, 457, 458], "parallel": [477, 484], "param": [296, 321, 446, 478], "paramet": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 214, 215, 216, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 345, 346, 347, 348, 349, 352, 353, 355, 356, 359, 360, 362, 367, 368, 369, 372, 373, 374, 375, 376, 377, 378, 379, 380, 383, 385, 388, 392, 394, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 411, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 443, 445, 446, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 462, 463, 464, 465, 466, 467, 468, 469, 471, 476, 477, 478, 480], "parameter_scal": 453, "parametr": [376, 433], "pars": 5, "parse_arg": 5, "parser": 5, "part": [1, 2, 170, 250, 478, 479], "partial": [373, 374, 476, 480], "particip": [121, 122, 125, 126, 127], "particular": [234, 341], "particularli": 476, "partit": [0, 28], "pass": [1, 2, 5, 6, 65, 79, 228, 229, 296, 305, 307, 308, 309, 321, 360, 372, 373, 374, 385, 476, 477, 480], "password": 477, "path": [3, 8, 131, 216, 262, 263, 304, 309, 362, 477], "pattern": [321, 480], "peak": [211, 213], "penalti": 464, "pep": 481, "per": [5, 6, 116, 141, 164, 234, 235, 304, 325, 341, 345, 347, 379, 471, 476, 477, 480], "perceptron": 7, "perf_count": 476, "perfectli": 480, "perform": [0, 1, 2, 3, 5, 7, 14, 90, 101, 108, 109, 110, 111, 127, 130, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 163, 164, 168, 202, 235, 257, 270, 284, 321, 341, 396, 401, 402, 451, 476, 477, 479, 480, 484], "perhap": [2, 5], "perm": 6, "permtuat": 244, "permut": [0, 6], "persist": 8, "pg": 187, "phi": [338, 408], "physic": 477, "pi": [134, 338, 388, 409, 478], "pick": 2, "pip": [2, 8], "pipelin": 2, "pixel": 334, "place": [2, 5, 38, 256, 257, 304, 477, 480, 481], "placehold": 476, "plai": [2, 5], "plain": 385, "plan": [2, 476], "platform": 8, "plu": [0, 195], "point": [0, 2, 4, 5, 8, 83, 161, 235, 314], "pointer": 2, "pool": [323, 324, 352, 353, 484], "popul": 2, "portion": 333, "posinf": [0, 222], "posit": [0, 5, 28, 118, 145, 159, 165, 177, 183, 184, 220, 222, 230, 242, 256, 291, 296, 308, 321, 327, 328, 329, 330, 331, 332, 375, 383, 388, 421, 431], "possibl": [272, 337, 377, 476, 477, 479, 484], "possibli": [5, 14, 90, 163, 202, 306], "postur": 5, "potenti": 215, "power": [0, 478, 481], "practic": [2, 476], "pre": [8, 146, 418], "preced": 341, "precis": [0, 2, 5, 139, 146, 321, 338, 379, 418, 459, 476], "preclud": 321, "pred": [422, 426], "predic": [304, 367], "predict": [418, 421, 422, 423, 424, 425, 426, 428, 429, 430], "prefix": [300, 307], "prelu": 321, "prepar": [2, 5], "prepend": [3, 202], "preprint": [5, 452, 458], "preprocessor": 8, "present": 1, "preserv": [254, 478], "press": [5, 187], "pressur": 2, "pretti": [476, 480], "prevent": [278, 431, 481], "previou": [214, 215], "primal": [1, 2, 112, 179, 299], "primit": 478, "print": [1, 2, 4, 5, 6, 8, 306, 307, 308, 309, 311, 321, 473, 476, 477, 478, 479, 480, 481, 482], "prior": [233, 284, 285], "priorit": 478, "privat": 2, "prng": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 473], "prob": 418, "probabl": [8, 245, 333, 334, 335, 378, 418, 420, 424, 484], "problem": [4, 6, 321], "process": [5, 101, 105, 120, 121, 122, 123, 125, 126, 127, 308, 309, 335, 337, 396, 475, 477], "processor": 8, "prod": [0, 1], "produc": [0, 2, 8, 94, 375, 446], "product": [0, 2, 14, 83, 110, 171, 179, 185, 202, 228, 232, 288, 299, 375, 482], "profil": 3, "program": [211, 477], "programmat": 374, "project": [3, 5, 375], "project_source_dir": 2, "promot": 2, "promote_typ": 2, "promoted_dtyp": 2, "prompt": 5, "propag": [478, 479], "properti": [31, 38, 47, 51, 61, 62, 68, 70, 368, 371, 461, 478], "proportion": 306, "protocol": 481, "provid": [0, 2, 5, 83, 116, 141, 165, 244, 256, 288, 296, 308, 310, 316, 321, 355, 360, 362, 372, 373, 374, 377, 378, 396, 397, 445, 449, 477, 483, 485], "pseudo": 473, "pth": 5, "public": [2, 321], "pun": 0, "pure": [1, 321, 451], "purpos": [1, 187], "purs": 5, "push": 2, "push_back": 2, "put": [0, 1, 6, 233, 476, 477], "put_along_axi": 0, "py": [2, 5, 8, 477], "pypi": 8, "python": [1, 3, 5, 50, 68, 78, 136, 307, 308, 309, 310, 311, 449, 459, 460, 462, 475, 477, 478, 481], "python_requir": 2, "pytorch": [5, 7, 338, 341, 478], "pytorch_compat": 341, "q": [146, 188], "qualifi": 477, "quantiz": [0, 116, 141, 164, 192, 235, 377, 378], "quantized_matmul": 0, "quantizedembed": 321, "quantizedlinear": 321, "quarter": 5, "queri": [5, 146, 375], "query_input_dim": 375, "query_proj": 5, "question": [5, 480], "queue": 3, "quick": [2, 7], "quit": [478, 481], "quotient": [0, 128, 129, 161], "r": [2, 5, 188, 296, 334, 340], "r_t": 340, "race": 484, "radian": [0, 115], "rag": 5, "rain": 5, "rais": [0, 5, 187, 215, 231, 272, 362], "ram": 5, "random": [1, 2, 3, 4, 5, 6, 7, 143, 323, 324, 325, 345, 352, 353, 362, 369, 476, 478, 484, 485], "randomli": [4, 5, 244, 333, 334, 335], "rang": [0, 2, 3, 4, 5, 6, 8, 18, 159, 163, 191, 400, 402, 409, 410, 451, 465, 466, 467, 468, 469, 473, 476, 478, 480, 484], "rank": [0, 125, 126, 127, 427, 477], "rate": [4, 451, 452, 453, 454, 455, 456, 457, 458, 463, 464], "rather": [2, 478, 484], "ratio": [0, 24], "rceil": 90, "re": [6, 8, 446], "readabl": 3, "readi": 2, "real": [0, 153, 154, 155, 156, 157, 158, 183, 184], "realli": 347, "reason": [1, 5, 479], "reboot": 8, "receiv": [125, 126, 304, 467, 481], "reciproc": [0, 258], "reclaim": 214, "recommend": [8, 215, 458], "recompil": [94, 476], "record": [3, 211, 480], "recreat": [311, 451], "rectifi": [348, 381, 382, 401, 402, 415, 434, 435], "recurr": [340, 346, 380], "recurs": [321, 359, 360, 365, 370, 372, 449], "recv": 126, "redirect": 2, "reduc": [0, 1, 8, 15, 17, 26, 27, 122, 201, 203, 205, 218, 232, 277, 281, 297, 310, 325, 396, 426], "reduct": [15, 17, 122, 201, 203, 218, 232, 310, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 477], "redund": 478, "refer": [187, 345, 354, 368, 399, 400, 401, 402, 410, 432, 479], "reflect": [368, 476, 479, 481], "regard": 338, "regardless": [83, 146], "regist": [2, 6], "register_librari": 2, "regress": [7, 426], "regular": [38, 334, 432, 456, 476, 479], "regularli": 2, "reimplement": 2, "rel": [16, 172, 453, 476], "relative_step": 453, "relax": 215, "relev": 2, "reli": [1, 2], "relu": [321, 376, 396, 433, 446], "relu6": 321, "remain": [0, 5, 296, 309, 333, 334, 335, 477], "remaind": [0, 129], "remov": [0, 118, 202, 238, 275, 420], "rep": [0, 289], "repeat": [0, 289], "repeatedli": 4, "repetit": 253, "replac": [0, 5, 222, 373, 374, 396, 430], "replai": 3, "repli": 5, "repo": [4, 6, 8, 476], "report": [209, 215], "repres": [2, 5, 120, 123, 164, 427, 431, 481], "represent": [5, 234, 298, 307, 311], "request": 2, "requir": [1, 2, 5, 321, 477, 480, 481], "requires_grad": 478, "rerun": [476, 480], "rescal": 306, "research": 7, "reset": 213, "reset_peak_memori": 211, "reshap": [0, 5, 187, 397, 479], "resolv": 2, "resourc": 2, "respect": [2, 4, 6, 142, 144, 163, 164, 165, 234, 296, 308, 321, 325, 338, 341, 345, 347, 449, 478, 482], "respons": 2, "rest": [5, 145, 308, 309, 383], "restart": 8, "restor": 256, "result": [0, 5, 14, 18, 38, 78, 83, 94, 142, 144, 164, 187, 202, 235, 242, 253, 276, 308, 309, 310, 388, 418, 476, 478, 481], "resum": 5, "return": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 50, 68, 78, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 214, 215, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 257, 258, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 321, 340, 346, 355, 356, 357, 359, 360, 361, 362, 363, 364, 365, 369, 370, 372, 373, 374, 380, 398, 399, 400, 401, 402, 403, 404, 405, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 446, 449, 459, 475, 476, 477, 478, 479, 480, 481, 483, 484], "return_metadata": 192, "revers": [0, 2, 41, 42, 43, 44, 83, 108, 109, 110, 111, 292, 388], "rf": 8, "rfft": 153, "rfft2": 154, "rfftn": 155, "rfloor": [323, 324, 352, 353], "rho": 452, "rhs_indic": [0, 163, 164], "rhs_mask": 90, "right": [0, 1, 2, 8, 234, 255, 256, 323, 324, 338, 352, 353, 397, 409, 410, 421, 423, 431], "right_shift": 0, "rm": [5, 8, 144, 453], "rmsnorm": [5, 321], "rmsprop": 451, "rnn": [321, 340], "roadcast": 245, "robust": 426, "roform": [5, 383], "roll": 0, "root": [0, 5, 144, 258, 273, 379], "rope": [5, 321], "rosetta": 8, "rotari": [5, 145, 383], "rotat": [145, 383], "round": [0, 234], "routin": 2, "row": [0, 1, 2, 83, 140, 143, 169, 234, 293], "row_contigu": 2, "rpath": 2, "rsqrt": 0, "rtol": [0, 16, 172], "rule": [2, 451], "run": [1, 2, 3, 5, 6, 7, 8, 9, 143, 228, 312, 325, 355, 452, 453, 455, 456, 457, 476, 477, 480, 484, 485], "runtim": [5, 123, 316, 476, 477], "runtime_error": 2, "safetensor": [8, 192, 261, 362, 366, 451, 480, 483], "sai": [2, 5, 446, 480], "said": 5, "sake": 478, "same": [0, 2, 5, 8, 16, 38, 82, 91, 94, 99, 100, 101, 103, 104, 105, 121, 142, 144, 153, 156, 157, 158, 164, 165, 172, 179, 229, 238, 256, 257, 298, 299, 301, 309, 321, 324, 325, 333, 341, 345, 353, 377, 398, 399, 400, 401, 402, 403, 404, 405, 420, 431, 449, 459, 473, 476, 477, 479, 484], "sampl": [2, 4, 5, 191, 237, 238, 239, 241, 242, 245, 248, 249, 399, 400, 401, 402, 404, 405, 421, 427, 431, 473, 476], "sat": 5, "save": [3, 5, 7, 192, 216, 234, 260, 261, 262, 263, 366, 480], "save_gguf": 483, "save_safetensor": [366, 451, 483], "save_weight": 321, "savez": [5, 366, 483], "savez_compress": 483, "saw": [5, 478], "scalar": [0, 2, 13, 14, 16, 30, 50, 78, 82, 87, 88, 89, 90, 91, 93, 128, 129, 133, 161, 162, 165, 166, 167, 168, 172, 180, 181, 182, 191, 197, 198, 199, 200, 202, 204, 219, 221, 222, 225, 229, 231, 237, 245, 248, 249, 252, 255, 260, 280, 296, 298, 301, 305, 431, 478, 480, 482], "scale": [0, 2, 5, 14, 116, 141, 142, 144, 145, 146, 164, 168, 234, 235, 241, 243, 306, 334, 335, 347, 375, 383, 384, 388, 397, 436, 453], "scale_arr": 2, "scale_factor": 397, "scale_paramet": 453, "scatter": 0, "scatter_add": 0, "scatter_max": 0, "scatter_min": 0, "scatter_prod": 0, "schedul": [2, 215, 451, 465, 466, 467, 468, 469, 471, 484], "schema": 3, "scipi": 168, "scope": 321, "score": [5, 146, 427], "sdk": 8, "se": 1, "second": [5, 8, 118, 178, 180, 198, 200, 202, 255, 282, 291, 296, 324, 353, 419, 427, 453, 455, 456, 457, 478, 484], "second_layer_a": 480, "second_layer_b": 480, "secret": 5, "section": [1, 5, 8, 272, 431, 476, 477, 478], "see": [1, 2, 5, 6, 8, 10, 11, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 187, 214, 260, 261, 304, 314, 321, 325, 326, 334, 336, 338, 342, 343, 344, 350, 351, 358, 376, 377, 378, 381, 382, 383, 384, 386, 388, 389, 390, 391, 392, 393, 395, 397, 399, 400, 401, 402, 408, 409, 410, 436, 476, 477, 478, 479, 482, 484], "seed": 240, "seen": 481, "select": [0, 3, 8, 290, 301, 355, 359, 367], "self": [5, 6, 9, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 112, 312, 321, 432, 449], "selu": 321, "semant": [13, 87, 88, 89, 91, 128, 129, 133, 166, 167, 180, 181, 182, 197, 202, 204, 219, 221, 225, 231, 252, 255, 280, 484], "semi": [183, 184, 242], "send": 477, "sennrich": 5, "sensit": 426, "sentencepiec": 5, "separ": [5, 65, 79, 341, 427], "sequenc": [5, 15, 17, 33, 34, 56, 57, 58, 59, 63, 71, 74, 75, 76, 80, 83, 91, 101, 125, 138, 143, 148, 149, 151, 152, 154, 155, 157, 158, 162, 201, 203, 205, 218, 226, 232, 237, 238, 239, 241, 242, 243, 245, 248, 249, 254, 270, 272, 275, 277, 281, 288, 289, 292, 297, 302, 325, 327, 330, 340, 346, 380, 396, 473, 484], "sequenti": [321, 446], "seri": 8, "serial": 451, "set": [2, 5, 6, 8, 94, 112, 119, 121, 122, 123, 125, 126, 127, 132, 142, 145, 208, 214, 215, 264, 265, 279, 338, 347, 349, 358, 360, 367, 368, 369, 372, 373, 378, 383, 394, 419, 431, 443, 449, 451, 453, 460, 473, 478, 480], "set_data": 2, "set_default_devic": 2, "set_dtyp": 321, "set_input_arrai": 2, "set_memory_limit": 214, "set_output_arrai": 2, "setbyt": 2, "setcomputepipelinest": 2, "setup": [2, 4, 6, 8, 476], "sever": [5, 8, 98, 99, 100, 101, 102, 103, 104, 262, 263, 476, 483], "sgd": [4, 6, 451, 458, 460, 465, 466, 469, 476], "shade": [1, 2], "shall": 5, "shape": [0, 2, 3, 5, 6, 65, 82, 83, 90, 91, 94, 98, 99, 100, 101, 102, 103, 104, 118, 121, 125, 126, 143, 146, 147, 150, 153, 156, 157, 158, 162, 163, 168, 179, 186, 190, 202, 226, 227, 237, 238, 239, 241, 242, 243, 245, 248, 249, 254, 256, 298, 299, 301, 302, 303, 321, 323, 324, 325, 327, 328, 329, 330, 331, 332, 334, 335, 340, 345, 346, 349, 352, 353, 362, 380, 398, 399, 400, 401, 402, 403, 404, 405, 420, 431, 451, 476, 478, 479, 482, 484], "shapeless": [0, 94], "share": [7, 116, 141, 164, 234, 235, 298, 477], "shazeer": 5, "shift": [0, 180, 255, 256, 325], "shop": 5, "should": [2, 4, 5, 6, 8, 83, 118, 121, 142, 143, 144, 146, 179, 207, 216, 233, 234, 285, 291, 296, 299, 304, 307, 321, 327, 328, 329, 330, 331, 332, 334, 335, 369, 375, 385, 420, 422, 427, 449, 475, 476, 477, 478, 480, 481, 485], "show": [8, 314, 476], "shown": 2, "shuffl": 6, "side": [0, 229, 323, 324, 352, 353, 476], "sigma": [338, 339, 340, 346, 387, 399, 400, 401, 402, 410, 411, 416, 437, 438], "sigmoid": [0, 5, 321, 350, 386, 410, 416, 418, 438], "sign": [0, 16, 172, 314, 458], "signal": [105, 397], "signatur": [1, 143], "signedinteg": [11, 178], "signific": 234, "silent": [156, 157, 158], "silicon": [2, 5, 7, 8, 484], "silu": 321, "simd": 1, "simd_sum": 1, "simdgroup": 1, "simdgroup_s": 1, "similar": [5, 164, 178, 308, 373, 374, 375, 419, 481, 483], "similarli": [2, 8, 202, 478, 480], "simpl": [2, 5, 6, 321, 337, 445, 451, 476, 477, 478, 480], "simple_axpbi": 2, "simple_tim": 2, "simplest": [2, 321, 477], "simpli": [2, 5, 8, 336, 348, 381, 407, 415, 434, 444, 449, 476, 477, 478], "simplic": 0, "simultan": 1, "sin": [0, 112, 388, 478, 482], "sinc": [1, 2, 5, 6, 164, 211, 449, 458, 467, 481, 484], "sine": [0, 21, 22, 268, 269, 478], "sing": 187, "singer": 454, "singl": [2, 6, 136, 179, 192, 206, 229, 299, 324, 353, 476, 479, 483], "singleton": [0, 15, 17, 26, 27, 123, 201, 202, 203, 205, 218, 232, 277, 281, 297], "singular": [187, 189], "sinh": 0, "sinusoid": 388, "sinusoidalpositionalencod": 321, "size": [0, 1, 2, 5, 6, 51, 68, 90, 99, 100, 103, 104, 116, 138, 141, 142, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 162, 164, 168, 169, 178, 185, 187, 210, 215, 234, 235, 238, 254, 272, 275, 298, 304, 321, 323, 324, 327, 328, 329, 330, 331, 332, 337, 345, 352, 353, 377, 378, 397, 453, 477, 480, 481], "size_t": [0, 2], "sizeof": 2, "skip": [3, 83], "slice": [0, 479], "slice_s": 0, "slice_upd": 0, "slight": [5, 480], "slightli": [383, 484], "slope": 348, "slot": 477, "slow": 476, "slowli": 5, "small": [5, 139, 142, 144, 325, 341, 347, 379, 421, 426, 431, 476, 477, 484], "smaller": [0, 8, 230, 458, 476], "smallest": 187, "smile": 5, "smooth": [420, 430, 463], "smooth_l1_loss": 321, "sned": 127, "snippet": 477, "so": [1, 2, 5, 8, 165, 168, 296, 333, 397, 451, 476, 477, 480, 484], "softmax": [0, 5, 146, 321, 351, 417, 420], "softmin": 321, "softplu": [321, 354, 432], "softshrink": 321, "softsign": 321, "solv": 321, "some": [0, 2, 4, 5, 6, 360, 372, 451, 460, 476, 478, 480], "someon": 5, "someth": [4, 5, 479], "sonoma": 8, "soon": 5, "sort": [0, 28, 29, 230, 290], "sourc": [0, 1, 2, 3, 60, 125, 126, 143, 220, 292, 477], "space": [0, 2, 191, 418, 429], "spars": [0, 206], "spatial": [99, 100, 101, 103, 104, 323, 341, 352, 397], "speak": [5, 187], "special": 2, "specif": [1, 2, 8, 477, 478], "specifi": [0, 2, 18, 37, 99, 100, 101, 103, 104, 118, 154, 155, 162, 165, 185, 187, 191, 220, 226, 233, 238, 253, 282, 284, 285, 288, 291, 292, 296, 300, 302, 325, 394, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 443, 477, 478, 484], "speed": [1, 2], "spent": 5, "split": [0, 339, 341, 411], "splittabl": 473, "sqrt": [0, 5, 134, 146, 168, 325, 338, 341, 345, 347, 349, 379, 388, 399, 400, 401, 402, 409, 452, 454, 455, 456, 463, 476], "squar": [0, 4, 5, 144, 169, 186, 190, 258, 273, 296, 308, 321, 379, 428, 430, 452, 453, 455, 456, 457, 478, 481], "squeez": [0, 397, 476], "src": [0, 125, 126], "ssh": 477, "stabil": [142, 144, 325, 341, 345, 347, 379, 418, 419, 421, 452, 453, 454, 455, 456, 457, 463], "stabl": [197, 201, 270, 426], "stable_abi": 2, "stack": [0, 476], "standard": [0, 1, 6, 50, 78, 202, 239, 243, 277, 396, 399, 401, 404, 477, 482], "starmap": [5, 308], "start": [0, 1, 2, 4, 5, 7, 8, 18, 145, 191, 216, 272, 310, 476, 479, 484], "start_axi": [0, 49, 159], "start_captur": 3, "state": [5, 6, 321, 340, 346, 380, 451, 460, 473, 476], "static": 8, "static_cast": 2, "std": [0, 2, 404], "step": [0, 3, 5, 6, 18, 321, 340, 346, 380, 453, 460, 465, 467, 468, 469, 476, 477], "step_decai": 451, "step_siz": 469, "still": [5, 8, 187, 476, 480], "stochast": [454, 455, 457, 464, 480], "stood": 5, "stop": [0, 2, 5, 18, 191, 217, 278, 478, 479], "stop_captur": 3, "stop_gradi": [0, 478], "storag": 83, "store": 5, "str": [2, 105, 130, 131, 143, 165, 187, 192, 206, 208, 216, 259, 260, 261, 262, 263, 296, 307, 311, 355, 356, 359, 360, 362, 364, 366, 372, 397, 401, 402, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431], "straight": 5, "strang": 5, "stream": [2, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 121, 122, 125, 126, 127, 128, 129, 130, 133, 134, 135, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 301, 302, 303, 477, 484], "streamcontext": 279, "streamordevic": [0, 2], "street": 5, "strength": [458, 464], "strict": [123, 166, 181, 360, 362, 372], "strictli": 187, "stride": [0, 2, 83, 98, 99, 100, 101, 102, 103, 104, 323, 324, 327, 328, 329, 330, 331, 332, 352, 353, 383, 479], "string": [0, 2, 131, 143, 208, 229, 481, 483], "structur": [2, 459, 478], "stub": 8, "style": [2, 13, 16, 87, 88, 89, 128, 129, 133, 166, 167, 172, 180, 181, 182, 197, 202, 204, 219, 221, 225, 231, 252, 255, 280], "su": 5, "sub": [0, 6, 118, 247, 291, 304], "subarrai": [118, 272], "subclass": 449, "subdtyp": 178, "subgradi": 454, "sublinear": 453, "submodul": [5, 6, 321, 356, 360, 361, 372, 374], "subscript": [130, 131], "subsect": 5, "subsequ": 451, "subset": [321, 359], "substanti": 8, "subtract": [0, 38], "subtyp": [178, 314], "sudo": 8, "sum": [0, 2, 4, 13, 111, 122, 171, 187, 201, 270, 288, 291, 321, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 477, 479, 481], "sum_": [187, 323, 324, 426], "sum_i": 417, "sum_j": [439, 440], "summat": [130, 131], "super": [5, 6, 321, 449], "superset": [308, 459], "support": [1, 2, 5, 7, 8, 16, 90, 100, 103, 104, 146, 159, 168, 172, 183, 184, 186, 188, 189, 190, 192, 202, 234, 242, 477, 478, 479, 481, 483], "suppos": [478, 484], "sure": [2, 3, 5, 8, 321, 476], "surpass": [401, 402], "surpris": 5, "sw": 1, "swap": [0, 105, 215, 282, 374], "swapax": [0, 112], "swiglu": 5, "swish": [386, 438], "switch": 8, "symbol": 458, "symmetr": [99, 100, 103, 104, 183, 184], "synchron": [2, 476], "syntax": [38, 479], "synthet": 4, "system": [5, 8, 208, 209, 210], "t": [0, 1, 2, 5, 8, 134, 143, 146, 164, 183, 184, 235, 296, 321, 323, 340, 346, 352, 380, 452, 453, 454, 455, 456, 457, 458, 463, 464, 476, 478, 484], "tabl": [1, 187, 314, 337], "take": [0, 2, 5, 6, 87, 88, 89, 94, 163, 165, 179, 204, 219, 227, 235, 285, 296, 299, 300, 303, 309, 310, 375, 418, 473, 477, 478, 479, 483, 484, 485], "take_along_axi": [0, 479], "taken": [118, 284, 291], "talk": 477, "tan": 0, "tangent": [0, 2, 23, 24, 25, 112, 179, 286, 287, 395, 444], "tangent_i": 2, "tangent_x": 2, "tanh": [0, 321, 338, 340, 346, 354, 380, 409, 432], "target": [2, 296, 418, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 476], "target_include_directori": 2, "target_link_librari": 2, "target_link_opt": 2, "target_sourc": 2, "task": [215, 426], "tau": 464, "tcp": 477, "tell": [5, 476, 481], "temp": 5, "templat": [0, 1, 2, 143], "ten": [478, 480], "tend": 458, "tensor": [192, 288, 323, 324, 352, 353, 431, 481], "tensordot": 0, "term": [2, 421, 452, 453, 454, 455, 456, 457, 463], "termin": 8, "test": [6, 8, 477], "test_imag": 6, "test_label": 6, "text": [5, 323, 324, 338, 340, 346, 352, 353, 354, 380, 387, 394, 399, 400, 401, 402, 409, 412, 413, 414, 421, 422, 423, 426, 427, 430, 432, 433, 436, 437, 442, 443, 453, 458], "textrm": [234, 338, 339, 408, 411], "tf": 481, "tgp_size": 2, "th": [108, 109, 110, 111, 117, 140, 467], "than": [1, 2, 5, 78, 105, 118, 129, 145, 163, 166, 167, 181, 182, 183, 184, 186, 189, 190, 202, 214, 306, 308, 383, 394, 397, 427, 430, 443, 453, 458, 476, 478, 484], "thank": 480, "thei": [1, 2, 4, 5, 8, 16, 105, 164, 172, 385, 422, 449, 458, 475, 476, 477, 480, 482, 483, 484], "them": [0, 2, 5, 121, 321, 360, 372, 477, 484], "themselv": [2, 476], "thi": [0, 1, 2, 5, 6, 8, 15, 16, 17, 18, 26, 27, 28, 29, 83, 112, 132, 143, 163, 164, 168, 172, 179, 183, 184, 186, 187, 188, 189, 190, 197, 201, 202, 203, 205, 207, 209, 218, 230, 232, 238, 265, 270, 271, 272, 277, 281, 284, 290, 297, 306, 309, 310, 321, 333, 334, 335, 339, 340, 346, 356, 357, 359, 360, 363, 364, 365, 370, 372, 373, 374, 375, 378, 380, 394, 399, 400, 401, 402, 409, 410, 411, 418, 426, 443, 449, 460, 475, 476, 477, 478, 480, 481, 483], "thing": [2, 5, 477], "third": 185, "thompson": 334, "those": [2, 5, 321], "though": [2, 5, 476, 480, 481], "thousand": 480, "thread": [1, 2], "thread_index_in_simdgroup": 1, "thread_position_in_grid": [1, 2, 143], "threadgroup": [1, 2, 143], "threads_per_simdgroup": 1, "three": [5, 86, 397], "threefri": 473, "threshold": [394, 423, 430, 443], "through": [1, 2, 278, 396, 458, 476, 478, 481], "throw": [2, 94, 123], "thu": [5, 321], "thumb": 451, "tic": 476, "tieleman": 463, "tile": [0, 146], "time": [2, 5, 8, 215, 289, 321, 323, 324, 340, 346, 352, 353, 380, 476, 478, 480, 484], "timeit": [476, 478], "titl": 2, "tmp": [1, 143], "to_quant": 304, "to_stream": 2, "toc": 476, "togeth": [0, 1, 2, 6, 234, 308, 309, 477], "tok_embed": 5, "token": [5, 337, 377], "told": 5, "toler": [0, 16, 172], "too": [178, 476, 480], "took": 5, "tool": 8, "top": [2, 290, 349, 397], "topk": 0, "torch": [5, 481], "torch_weight": 5, "total": 478, "total_norm": 306, "tpi": 476, "trace": [0, 3, 476], "trace_fil": 3, "tracer": 373, "track": [2, 321, 325], "track_running_stat": 325, "trade": 480, "tradit": [5, 145, 334, 335, 383], "train": [5, 6, 321, 325, 333, 334, 335, 358, 360, 372, 399, 400], "train_imag": [6, 451], "train_label": [6, 451], "trainabl": [6, 305, 321, 449], "trainable_paramet": [321, 359, 460], "transform": [1, 5, 7, 112, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 168, 305, 321, 325, 341, 347, 349, 359, 360, 372, 378, 383, 479], "transformerencod": 262, "transit": 467, "translat": [142, 347], "transpos": [0, 5, 31, 102, 103, 104, 164, 235, 330, 331, 332], "treat": [0, 2, 154, 155, 157, 158, 284, 397, 476], "tree": [7, 94, 136, 165, 296, 300, 307, 308, 309, 310, 311, 459, 460, 462, 471, 478], "tree_flatten": [262, 308, 311, 321, 451], "tree_map": [309, 321, 477], "tree_unflatten": [5, 451], "trembl": 5, "tri": 0, "triangl": 293, "triangular": [183, 184, 190], "tril": 0, "trilinear": 397, "triplet": 431, "triplet_loss": 321, "triu": 0, "true": [0, 1, 2, 4, 5, 16, 41, 42, 43, 44, 82, 94, 108, 109, 110, 111, 143, 145, 164, 172, 178, 183, 184, 187, 192, 206, 215, 235, 270, 301, 304, 307, 308, 309, 310, 314, 321, 325, 327, 328, 329, 330, 331, 332, 340, 341, 345, 346, 347, 349, 359, 360, 362, 369, 372, 378, 380, 383, 388, 396, 397, 418, 426, 453], "truncat": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 248], "truth": [4, 420, 430], "try": [2, 8], "tupl": [0, 30, 65, 68, 79, 95, 99, 100, 101, 103, 104, 125, 129, 131, 136, 138, 179, 187, 188, 189, 229, 234, 254, 256, 275, 296, 299, 307, 308, 309, 310, 311, 323, 324, 328, 329, 331, 332, 352, 353, 362, 364, 385, 397, 453, 455, 456, 457, 458, 475, 478], "tutori": 2, "twice": 484, "two": [0, 2, 13, 14, 16, 24, 82, 85, 87, 88, 89, 90, 118, 128, 133, 148, 151, 157, 163, 164, 166, 167, 172, 181, 182, 183, 184, 185, 186, 188, 189, 190, 197, 202, 204, 219, 221, 225, 228, 282, 310, 324, 339, 346, 353, 411, 419, 476, 477, 478, 479, 484], "txt": 2, "type": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 68, 78, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 214, 215, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 257, 258, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 306, 307, 310, 321, 367, 396, 398, 399, 400, 401, 402, 403, 404, 405, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 476, 479], "type_nam": 2, "type_to_nam": 2, "typenam": [0, 1, 2], "typic": [0, 146, 337, 451, 476, 480], "u": [1, 2, 183, 189, 349, 374, 471, 480], "u_": 452, "u_t": 452, "uint": [1, 2, 143], "uint16": [11, 314], "uint3": 1, "uint32": [11, 26, 27, 28, 29, 238, 314], "uint64": [11, 314], "uint8": [11, 314], "ultra": 5, "unabl": 8, "unam": 8, "unari": 476, "unchang": [145, 278, 383], "uncheck": 8, "uncompress": 262, "undefin": [0, 28, 112, 183, 184, 230, 242, 479], "under": [2, 187], "underli": [2, 298], "understand": [5, 399, 400], "unexpect": [2, 18], "unfreez": [321, 360], "unfrozen": 372, "unifi": 7, "uniform": [3, 321, 349, 362, 400, 402, 446, 473, 476, 478, 484], "uniformli": 249, "unintend": 0, "union": [18, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 176, 177, 178, 208, 260, 279], "uniqu": [2, 473], "unique_ptr": 2, "unit": [326, 336, 338, 339, 340, 348, 381, 382, 384, 386, 399, 400, 401, 402, 406, 407, 408, 409, 410, 411, 415, 434, 435, 436, 438], "unittest": 8, "univers": 187, "unless": [5, 16, 172, 187, 449], "unlik": [5, 16, 172, 334, 335, 368], "unnecessari": [2, 5], "unnorm": [238, 418, 420], "unscal": 453, "unsign": [164, 234, 235, 314], "unsignedinteg": 11, "unspecifi": [15, 17, 18, 26, 27, 28, 29, 95, 108, 109, 110, 111, 162, 201, 203, 205, 218, 226, 230, 232, 253, 270, 271, 277, 281, 284, 290, 291, 297, 302, 485], "unsqueez": 5, "unsupport": 192, "until": [2, 480, 482], "unus": 2, "up": [1, 2, 5, 112, 476], "upcast": 2, "updat": [0, 1, 2, 4, 5, 6, 38, 94, 304, 308, 310, 325, 355, 356, 362, 367, 368, 369, 374, 451, 453, 456, 458, 459, 460, 464, 465, 466, 467, 468, 469, 476, 477, 480], "update_modul": 321, "upon": [5, 308, 309], "upper": [183, 184, 190, 234, 245, 248, 249, 405], "upsampl": 321, "us": [0, 3, 4, 5, 6, 7, 8, 18, 38, 83, 112, 116, 119, 121, 122, 125, 126, 127, 129, 141, 143, 145, 159, 164, 180, 183, 184, 185, 186, 187, 188, 189, 190, 202, 209, 210, 211, 214, 234, 235, 253, 254, 255, 256, 283, 307, 310, 314, 316, 321, 324, 334, 337, 338, 340, 346, 349, 353, 355, 359, 366, 373, 375, 377, 378, 380, 383, 388, 396, 397, 401, 402, 409, 410, 419, 446, 449, 451, 452, 453, 455, 456, 457, 458, 459, 460, 473, 475, 476, 477, 478, 479, 482, 484], "usag": [112, 396, 476], "user": [2, 5, 321], "usual": [337, 377, 475, 480], "util": [1, 2, 5, 7, 8, 262, 321, 451, 477], "v": [5, 105, 146, 321, 360, 481], "v_": [452, 454, 455, 456, 457, 463, 464], "v_t": [452, 454, 455, 456, 457, 463, 464], "val": [0, 30, 162], "valid": [6, 105, 159, 300, 307, 360, 372, 475], "valid_parameter_filt": 355, "valu": [0, 1, 4, 5, 11, 12, 16, 18, 26, 27, 50, 78, 82, 93, 140, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 172, 185, 187, 189, 191, 208, 222, 229, 233, 237, 238, 239, 241, 242, 243, 245, 248, 249, 256, 260, 284, 285, 296, 300, 305, 307, 308, 309, 310, 314, 324, 326, 333, 334, 335, 336, 342, 345, 349, 353, 359, 375, 376, 392, 394, 396, 398, 418, 419, 420, 421, 422, 423, 425, 426, 427, 428, 429, 430, 443, 449, 453, 456, 465, 466, 468, 469, 478], "value_and_grad": [6, 112, 321, 373, 449, 451, 462, 476, 478, 481, 482], "value_and_grad_fn": 480, "value_cach": 5, "value_dim": 375, "value_input_dim": 375, "value_output_dim": 375, "value_proj": 5, "valueerror": [187, 362, 478], "values_hat": 5, "van": 187, "var": [0, 325, 341, 345, 347, 421], "variabl": [8, 94, 119, 132, 165, 179, 296, 299, 300, 477], "varianc": [0, 277, 297, 325, 341, 421], "variant": [5, 430, 457], "variou": 187, "vector": [0, 2, 4, 7, 171, 179, 187, 284, 299, 300, 337, 420, 482], "verbos": [1, 143], "veri": [5, 375, 477, 480, 484], "verifi": [4, 8], "versa": 256, "version": [2, 8, 116, 141, 197, 201, 234, 270, 300, 473, 478, 479], "versu": 476, "via": [8, 112, 459, 462, 477, 480, 481], "vice": 256, "video": 335, "view": [0, 3, 83, 481], "virtual": 2, "vjp": [2, 112, 482], "vmap": [2, 112, 478, 480, 482], "vmap_add": 478, "vocab_s": 5, "vocabulari": [337, 377], "void": [1, 2], "vt": 189, "w": [0, 1, 4, 99, 100, 103, 104, 116, 141, 164, 234, 235, 296, 309, 324, 325, 328, 329, 331, 332, 334, 335, 349, 353, 451, 464, 478], "w1": [5, 306], "w2": [5, 306], "w3": 5, "w_": [324, 340, 346, 353, 380, 452, 453, 454, 455, 456, 457, 458, 463, 464], "w_1": 234, "w_g": 234, "w_i": [116, 141, 234], "w_in": 1, "w_q": 234, "w_star": 4, "w_stride": 1, "w_t": [452, 454, 455, 456, 457, 458, 463, 464], "wa": [5, 83, 125, 126, 477, 480], "wai": [2, 5, 8, 321, 397, 476, 477, 478, 479], "wait": [2, 5, 215], "walk": 5, "walkthrough": 2, "walsh": 168, "want": [1, 5, 477, 478, 484], "warm": [2, 476], "warmup": [467, 468], "warmup_init": 453, "watch": [5, 476], "wd": 458, "we": [0, 1, 2, 4, 5, 6, 116, 125, 126, 141, 164, 234, 235, 321, 337, 377, 385, 456, 458, 473, 475, 476, 477, 478, 480, 484], "weight": [0, 4, 98, 99, 100, 101, 102, 103, 104, 142, 144, 308, 321, 362, 366, 377, 378, 418, 420, 449, 453, 456, 458, 460, 464, 478, 480], "weight_decai": [453, 456, 458, 464], "weight_fil": 5, "weights_fp16": 480, "well": [5, 321, 360, 372, 375, 480], "wen": 5, "went": 5, "were": [5, 484], "wet": 5, "what": [2, 5, 308], "whatsoev": 5, "whc": 334, "when": [0, 1, 2, 5, 7, 8, 94, 101, 112, 127, 183, 184, 186, 187, 189, 190, 192, 327, 328, 329, 330, 331, 332, 397, 401, 402, 418, 424, 430, 449, 451, 467, 473, 476, 477, 484], "where": [0, 6, 140, 172, 184, 234, 296, 300, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 338, 340, 341, 345, 346, 347, 349, 352, 353, 359, 376, 379, 380, 394, 401, 402, 407, 408, 410, 421, 427, 433, 436, 438, 443, 460, 477, 478, 479], "wherea": 478, "whether": [143, 164, 190, 235, 340, 346, 359, 375, 380, 418, 421, 427], "which": [0, 1, 2, 5, 6, 7, 8, 18, 37, 83, 94, 101, 118, 121, 122, 125, 126, 127, 136, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 165, 173, 174, 175, 176, 177, 179, 183, 184, 185, 186, 187, 188, 189, 190, 192, 206, 216, 234, 238, 239, 253, 254, 256, 259, 260, 261, 262, 263, 275, 276, 284, 291, 296, 299, 300, 304, 324, 334, 335, 338, 353, 355, 359, 383, 418, 420, 423, 427, 430, 446, 459, 460, 473, 476, 477, 478, 479, 480, 484, 485], "while": [2, 3, 5, 8, 254, 383, 480, 481], "whistl": 2, "who": 5, "whose": [140, 304, 305], "why": 5, "wide": 480, "width": [324, 325, 328, 329, 331, 332, 334, 335, 353, 377, 378], "window": [8, 323, 324, 352, 353], "wipe": 8, "wise": [0, 2, 12, 13, 19, 20, 21, 22, 23, 24, 25, 87, 88, 89, 92, 106, 107, 128, 129, 133, 134, 135, 137, 139, 160, 161, 166, 167, 172, 180, 181, 182, 193, 194, 195, 196, 197, 198, 199, 200, 204, 219, 221, 223, 225, 231, 251, 252, 255, 258, 266, 267, 268, 269, 273, 274, 280, 286, 287, 326, 334, 335, 344, 354, 376, 387, 406, 413, 414, 416, 417, 432, 433, 435, 438, 439, 440, 441, 476], "wish": 8, "with_logit": 418, "within": [0, 3, 28, 172], "without": [1, 5, 7, 278, 375, 445, 475, 476, 477, 480, 481, 484], "wk": 5, "wl": 2, "wo": 5, "won": 476, "word": 0, "work": [2, 3, 5, 215, 476, 477, 478, 479, 480], "workhors": 321, "world": [311, 477], "worri": [1, 480], "would": [2, 5, 397, 477, 479, 480, 481, 484], "wq": 5, "wrap": [112, 321], "write": [0, 1, 2, 5, 321, 481], "written": 2, "wrt": 305, "wv": 5, "x": [0, 1, 2, 4, 5, 6, 38, 90, 112, 121, 122, 126, 127, 134, 139, 142, 143, 144, 164, 168, 169, 187, 235, 239, 244, 257, 262, 266, 294, 295, 301, 308, 310, 321, 323, 324, 325, 326, 336, 338, 339, 341, 345, 347, 348, 349, 352, 353, 354, 355, 376, 379, 381, 387, 388, 394, 397, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 430, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 449, 451, 458, 476, 477, 478, 479, 480, 481, 482, 484], "x1": 419, "x2": 419, "x86_64": 8, "x_1": [419, 427], "x_2": [419, 427], "x_cast": 2, "x_grad": 1, "x_i": [417, 439, 440], "x_j": [439, 440], "x_offset": 2, "x_ptr": 2, "x_shape": 1, "x_stride": 2, "x_t": [340, 346, 380], "x_view": 481, "xcode": 8, "xcodeproj": 3, "xcrun": 8, "xf": 346, "xg": 346, "xi": 346, "xn": 340, "xo": 346, "xor": 89, "xr": 340, "xy": [0, 206], "xz": 340, "x\u00b2": 481, "y": [0, 2, 4, 5, 6, 38, 112, 168, 301, 321, 325, 334, 341, 345, 347, 349, 379, 422, 427, 430, 451, 454, 476, 477, 478, 480, 481], "y_": [422, 426], "y_cast": 2, "y_hat": 321, "y_offset": 2, "y_ptr": 2, "y_stride": 2, "ye": 5, "year": 5, "yet": [5, 187, 321, 449, 460, 478, 479, 480, 482], "yield": [5, 6, 473], "you": [2, 3, 5, 6, 7, 8, 321, 388, 396, 446, 473, 476, 477, 478, 479, 481, 483, 484], "your": [2, 5, 8, 449, 478, 480], "z": [2, 340, 476, 480], "z_t": 340, "zeiler": 452, "zero": [0, 140, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 185, 206, 213, 293, 294, 295, 303, 321, 323, 324, 333, 334, 335, 362, 398, 399, 400, 401, 402, 403, 404, 405, 446, 451, 453, 479], "zero_grad": 478, "zeros_lik": 0, "zhang": 5, "zip": [5, 6], "zip_saf": 2}, "titles": ["Operations", "Custom Metal Kernels", "Custom Extensions in MLX", "Metal Debugger", "Linear Regression", "LLM inference", "Multi-Layer Perceptron", "MLX", "Build and Install", "mlx.core.Device", "mlx.core.Dtype", "mlx.core.DtypeCategory", "mlx.core.abs", "mlx.core.add", "mlx.core.addmm", "mlx.core.all", "mlx.core.allclose", "mlx.core.any", "mlx.core.arange", "mlx.core.arccos", "mlx.core.arccosh", "mlx.core.arcsin", "mlx.core.arcsinh", "mlx.core.arctan", "mlx.core.arctan2", "mlx.core.arctanh", "mlx.core.argmax", "mlx.core.argmin", "mlx.core.argpartition", "mlx.core.argsort", "mlx.core.array", "mlx.core.array.T", "mlx.core.array.abs", "mlx.core.array.all", "mlx.core.array.any", "mlx.core.array.argmax", "mlx.core.array.argmin", "mlx.core.array.astype", "mlx.core.array.at", "mlx.core.array.conj", "mlx.core.array.cos", "mlx.core.array.cummax", "mlx.core.array.cummin", "mlx.core.array.cumprod", "mlx.core.array.cumsum", "mlx.core.array.diag", "mlx.core.array.diagonal", "mlx.core.array.dtype", "mlx.core.array.exp", "mlx.core.array.flatten", "mlx.core.array.item", "mlx.core.array.itemsize", "mlx.core.array.log", "mlx.core.array.log10", "mlx.core.array.log1p", "mlx.core.array.log2", "mlx.core.array.logsumexp", "mlx.core.array.max", "mlx.core.array.mean", "mlx.core.array.min", "mlx.core.array.moveaxis", "mlx.core.array.nbytes", "mlx.core.array.ndim", "mlx.core.array.prod", "mlx.core.array.reciprocal", "mlx.core.array.reshape", "mlx.core.array.round", "mlx.core.array.rsqrt", "mlx.core.array.shape", "mlx.core.array.sin", "mlx.core.array.size", "mlx.core.array.split", "mlx.core.array.sqrt", "mlx.core.array.square", "mlx.core.array.squeeze", "mlx.core.array.std", "mlx.core.array.sum", "mlx.core.array.swapaxes", "mlx.core.array.tolist", "mlx.core.array.transpose", "mlx.core.array.var", "mlx.core.array.view", "mlx.core.array_equal", "mlx.core.as_strided", "mlx.core.atleast_1d", "mlx.core.atleast_2d", "mlx.core.atleast_3d", "mlx.core.bitwise_and", "mlx.core.bitwise_or", "mlx.core.bitwise_xor", "mlx.core.block_masked_mm", "mlx.core.broadcast_to", "mlx.core.ceil", "mlx.core.clip", "mlx.core.compile", "mlx.core.concatenate", "mlx.core.conj", "mlx.core.conjugate", "mlx.core.conv1d", "mlx.core.conv2d", "mlx.core.conv3d", "mlx.core.conv_general", "mlx.core.conv_transpose1d", "mlx.core.conv_transpose2d", "mlx.core.conv_transpose3d", "mlx.core.convolve", "mlx.core.cos", "mlx.core.cosh", "mlx.core.cummax", "mlx.core.cummin", "mlx.core.cumprod", "mlx.core.cumsum", "mlx.core.custom_function", "mlx.core.default_device", "mlx.core.default_stream", "mlx.core.degrees", "mlx.core.dequantize", "mlx.core.diag", "mlx.core.diagonal", "mlx.core.disable_compile", "mlx.core.distributed.Group", "mlx.core.distributed.all_gather", "mlx.core.distributed.all_sum", "mlx.core.distributed.init", "mlx.core.distributed.is_available", "mlx.core.distributed.recv", "mlx.core.distributed.recv_like", "mlx.core.distributed.send", "mlx.core.divide", "mlx.core.divmod", "mlx.core.einsum", "mlx.core.einsum_path", "mlx.core.enable_compile", "mlx.core.equal", "mlx.core.erf", "mlx.core.erfinv", "mlx.core.eval", "mlx.core.exp", "mlx.core.expand_dims", "mlx.core.expm1", "mlx.core.eye", "mlx.core.fast.affine_quantize", "mlx.core.fast.layer_norm", "mlx.core.fast.metal_kernel", "mlx.core.fast.rms_norm", "mlx.core.fast.rope", "mlx.core.fast.scaled_dot_product_attention", "mlx.core.fft.fft", "mlx.core.fft.fft2", "mlx.core.fft.fftn", "mlx.core.fft.ifft", "mlx.core.fft.ifft2", "mlx.core.fft.ifftn", "mlx.core.fft.irfft", "mlx.core.fft.irfft2", "mlx.core.fft.irfftn", "mlx.core.fft.rfft", "mlx.core.fft.rfft2", "mlx.core.fft.rfftn", "mlx.core.flatten", "mlx.core.floor", "mlx.core.floor_divide", "mlx.core.full", "mlx.core.gather_mm", "mlx.core.gather_qmm", "mlx.core.grad", "mlx.core.greater", "mlx.core.greater_equal", "mlx.core.hadamard_transform", "mlx.core.identity", "mlx.core.imag", "mlx.core.inner", "mlx.core.isclose", "mlx.core.isfinite", "mlx.core.isinf", "mlx.core.isnan", "mlx.core.isneginf", "mlx.core.isposinf", "mlx.core.issubdtype", "mlx.core.jvp", "mlx.core.left_shift", "mlx.core.less", "mlx.core.less_equal", "mlx.core.linalg.cholesky", "mlx.core.linalg.cholesky_inv", "mlx.core.linalg.cross", "mlx.core.linalg.inv", "mlx.core.linalg.norm", "mlx.core.linalg.qr", "mlx.core.linalg.svd", "mlx.core.linalg.tri_inv", "mlx.core.linspace", "mlx.core.load", "mlx.core.log", "mlx.core.log10", "mlx.core.log1p", "mlx.core.log2", "mlx.core.logaddexp", "mlx.core.logical_and", "mlx.core.logical_not", "mlx.core.logical_or", "mlx.core.logsumexp", "mlx.core.matmul", "mlx.core.max", "mlx.core.maximum", "mlx.core.mean", "mlx.core.meshgrid", "mlx.core.metal.clear_cache", "mlx.core.metal.device_info", "mlx.core.metal.get_active_memory", "mlx.core.metal.get_cache_memory", "mlx.core.metal.get_peak_memory", "mlx.core.metal.is_available", "mlx.core.metal.reset_peak_memory", "mlx.core.metal.set_cache_limit", "mlx.core.metal.set_memory_limit", "mlx.core.metal.start_capture", "mlx.core.metal.stop_capture", "mlx.core.min", "mlx.core.minimum", "mlx.core.moveaxis", "mlx.core.multiply", "mlx.core.nan_to_num", "mlx.core.negative", "mlx.core.new_stream", "mlx.core.not_equal", "mlx.core.ones", "mlx.core.ones_like", "mlx.core.outer", "mlx.core.pad", "mlx.core.partition", "mlx.core.power", "mlx.core.prod", "mlx.core.put_along_axis", "mlx.core.quantize", "mlx.core.quantized_matmul", "mlx.core.radians", "mlx.core.random.bernoulli", "mlx.core.random.categorical", "mlx.core.random.gumbel", "mlx.core.random.key", "mlx.core.random.laplace", "mlx.core.random.multivariate_normal", "mlx.core.random.normal", "mlx.core.random.permutation", "mlx.core.random.randint", "mlx.core.random.seed", "mlx.core.random.split", "mlx.core.random.truncated_normal", "mlx.core.random.uniform", "mlx.core.real", "mlx.core.reciprocal", "mlx.core.remainder", "mlx.core.repeat", "mlx.core.reshape", "mlx.core.right_shift", "mlx.core.roll", "mlx.core.round", "mlx.core.rsqrt", "mlx.core.save", "mlx.core.save_gguf", "mlx.core.save_safetensors", "mlx.core.savez", "mlx.core.savez_compressed", "mlx.core.set_default_device", "mlx.core.set_default_stream", "mlx.core.sigmoid", "mlx.core.sign", "mlx.core.sin", "mlx.core.sinh", "mlx.core.softmax", "mlx.core.sort", "mlx.core.split", "mlx.core.sqrt", "mlx.core.square", "mlx.core.squeeze", "mlx.core.stack", "mlx.core.std", "mlx.core.stop_gradient", "mlx.core.stream", "mlx.core.subtract", "mlx.core.sum", "mlx.core.swapaxes", "mlx.core.synchronize", "mlx.core.take", "mlx.core.take_along_axis", "mlx.core.tan", "mlx.core.tanh", "mlx.core.tensordot", "mlx.core.tile", "mlx.core.topk", "mlx.core.trace", "mlx.core.transpose", "mlx.core.tri", "mlx.core.tril", "mlx.core.triu", "mlx.core.value_and_grad", "mlx.core.var", "mlx.core.view", "mlx.core.vjp", "mlx.core.vmap", "mlx.core.where", "mlx.core.zeros", "mlx.core.zeros_like", "mlx.nn.quantize", "mlx.nn.value_and_grad", "mlx.optimizers.clip_grad_norm", "mlx.utils.tree_flatten", "mlx.utils.tree_map", "mlx.utils.tree_map_with_path", "mlx.utils.tree_reduce", "mlx.utils.tree_unflatten", "mlx.core.Stream", "Array", "Data Types", "Devices and Streams", "Distributed Communication", "Fast", "FFT", "Linear Algebra", "Metal", "Neural Networks", "mlx.nn.ALiBi", "mlx.nn.AvgPool1d", "mlx.nn.AvgPool2d", "mlx.nn.BatchNorm", "mlx.nn.CELU", "mlx.nn.Conv1d", "mlx.nn.Conv2d", "mlx.nn.Conv3d", "mlx.nn.ConvTranspose1d", "mlx.nn.ConvTranspose2d", "mlx.nn.ConvTranspose3d", "mlx.nn.Dropout", "mlx.nn.Dropout2d", "mlx.nn.Dropout3d", "mlx.nn.ELU", "mlx.nn.Embedding", "mlx.nn.GELU", "mlx.nn.GLU", "mlx.nn.GRU", "mlx.nn.GroupNorm", "mlx.nn.HardShrink", "mlx.nn.HardTanh", "mlx.nn.Hardswish", "mlx.nn.InstanceNorm", "mlx.nn.LSTM", "mlx.nn.LayerNorm", "mlx.nn.LeakyReLU", "mlx.nn.Linear", "mlx.nn.LogSigmoid", "mlx.nn.LogSoftmax", "mlx.nn.MaxPool1d", "mlx.nn.MaxPool2d", "mlx.nn.Mish", "mlx.nn.Module.apply", "mlx.nn.Module.apply_to_modules", "mlx.nn.Module.children", "mlx.nn.Module.eval", "mlx.nn.Module.filter_and_map", "mlx.nn.Module.freeze", "mlx.nn.Module.leaf_modules", "mlx.nn.Module.load_weights", "mlx.nn.Module.modules", "mlx.nn.Module.named_modules", "mlx.nn.Module.parameters", "mlx.nn.Module.save_weights", "mlx.nn.Module.set_dtype", "mlx.nn.Module.state", "mlx.nn.Module.train", "mlx.nn.Module.trainable_parameters", "mlx.nn.Module.training", "mlx.nn.Module.unfreeze", "mlx.nn.Module.update", "mlx.nn.Module.update_modules", "mlx.nn.MultiHeadAttention", "mlx.nn.PReLU", "mlx.nn.QuantizedEmbedding", "mlx.nn.QuantizedLinear", "mlx.nn.RMSNorm", "mlx.nn.RNN", "mlx.nn.ReLU", "mlx.nn.ReLU6", "mlx.nn.RoPE", "mlx.nn.SELU", "mlx.nn.Sequential", "mlx.nn.SiLU", "mlx.nn.Sigmoid", "mlx.nn.SinusoidalPositionalEncoding", "mlx.nn.Softmax", "mlx.nn.Softmin", "mlx.nn.Softplus", "mlx.nn.Softshrink", "mlx.nn.Softsign", "mlx.nn.Step", "mlx.nn.Tanh", "mlx.nn.Transformer", "mlx.nn.Upsample", "mlx.nn.init.constant", "mlx.nn.init.glorot_normal", "mlx.nn.init.glorot_uniform", "mlx.nn.init.he_normal", "mlx.nn.init.he_uniform", "mlx.nn.init.identity", "mlx.nn.init.normal", "mlx.nn.init.uniform", "mlx.nn.celu", "mlx.nn.elu", "mlx.nn.gelu", "mlx.nn.gelu_approx", "mlx.nn.gelu_fast_approx", "mlx.nn.glu", "mlx.nn.hard_shrink", "mlx.nn.hard_tanh", "mlx.nn.hardswish", "mlx.nn.leaky_relu", "mlx.nn.log_sigmoid", "mlx.nn.log_softmax", "mlx.nn.losses.binary_cross_entropy", "mlx.nn.losses.cosine_similarity_loss", "mlx.nn.losses.cross_entropy", "mlx.nn.losses.gaussian_nll_loss", "mlx.nn.losses.hinge_loss", "mlx.nn.losses.huber_loss", "mlx.nn.losses.kl_div_loss", "mlx.nn.losses.l1_loss", "mlx.nn.losses.log_cosh_loss", "mlx.nn.losses.margin_ranking_loss", "mlx.nn.losses.mse_loss", "mlx.nn.losses.nll_loss", "mlx.nn.losses.smooth_l1_loss", "mlx.nn.losses.triplet_loss", "mlx.nn.mish", "mlx.nn.prelu", "mlx.nn.relu", "mlx.nn.relu6", "mlx.nn.selu", "mlx.nn.sigmoid", "mlx.nn.silu", "mlx.nn.softmax", "mlx.nn.softmin", "mlx.nn.softplus", "mlx.nn.softshrink", "mlx.nn.step", "mlx.nn.tanh", "Functions", "Initializers", "Layers", "Loss Functions", "Module", "Operations", "Optimizers", "mlx.optimizers.AdaDelta", "mlx.optimizers.Adafactor", "mlx.optimizers.Adagrad", "mlx.optimizers.Adam", "mlx.optimizers.AdamW", "mlx.optimizers.Adamax", "mlx.optimizers.Lion", "mlx.optimizers.Optimizer.apply_gradients", "mlx.optimizers.Optimizer.init", "mlx.optimizers.Optimizer.state", "mlx.optimizers.Optimizer.update", "mlx.optimizers.RMSprop", "mlx.optimizers.SGD", "mlx.optimizers.cosine_decay", "mlx.optimizers.exponential_decay", "mlx.optimizers.join_schedules", "mlx.optimizers.linear_schedule", "mlx.optimizers.step_decay", "Common Optimizers", "Optimizer", "Schedulers", "Random", "Transforms", "Tree Utils", "Compilation", "Distributed Communication", "Function Transforms", "Indexing Arrays", "Lazy Evaluation", "Conversion to NumPy and Other Frameworks", "Quick Start Guide", "Saving and Loading Arrays", "Unified Memory", "Using Streams"], "titleterms": {"A": 484, "In": 479, "The": 321, "ab": [12, 32], "adadelta": 452, "adafactor": 453, "adagrad": 454, "adam": 455, "adamax": 457, "adamw": 456, "add": 13, "addmm": 14, "affine_quant": 141, "algebra": 319, "alibi": 322, "all": [5, 15, 33, 477], "all_gath": 121, "all_sum": 122, "allclos": 16, "ani": [17, 34], "api": [7, 8], "appli": 355, "apply_gradi": 459, "apply_to_modul": 356, "arang": 18, "arcco": 19, "arccosh": 20, "arcsin": 21, "arcsinh": 22, "arctan": 23, "arctan2": 24, "arctanh": 25, "argmax": [26, 35], "argmin": [27, 36], "argpartit": 28, "argsort": 29, "arrai": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 313, 479, 483], "array_equ": 82, "as_strid": 83, "astyp": 37, "atleast_1d": 84, "atleast_2d": 85, "atleast_3d": 86, "attent": 5, "automat": 478, "avgpool1d": 323, "avgpool2d": 324, "back": 2, "basic": [476, 482], "batchnorm": 325, "benchmark": 5, "bernoulli": 237, "binari": 8, "binary_cross_entropi": 418, "bind": 2, "bitwise_and": 87, "bitwise_or": 88, "bitwise_xor": 89, "block_masked_mm": 90, "broadcast_to": 91, "build": [2, 8], "c": [7, 8], "categor": 238, "ceil": 92, "celu": [326, 406], "children": 357, "choleski": 183, "cholesky_inv": 184, "class": 321, "clear_cach": 207, "clip": 93, "clip_grad_norm": 306, "cmake": 2, "co": [40, 106], "code": [2, 5], "common": 470, "commun": [316, 477], "compil": [94, 476], "complex": 1, "comput": 480, "concaten": 95, "conj": [39, 96], "conjug": 97, "constant": 398, "conv1d": [98, 327], "conv2d": [99, 328], "conv3d": [100, 329], "conv_gener": 101, "conv_transpose1d": 102, "conv_transpose2d": 103, "conv_transpose3d": 104, "convers": 481, "convert": 5, "convolv": 105, "convtranspose1d": 330, "convtranspose2d": 331, "convtranspose3d": 332, "core": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 312], "cosh": 107, "cosine_decai": 465, "cosine_similarity_loss": 419, "cpu": 2, "cross": 185, "cross_entropi": 420, "cummax": [41, 108], "cummin": [42, 109], "cumprod": [43, 110], "cumsum": [44, 111], "custom": [1, 2], "custom_funct": 112, "data": 314, "debug": 476, "debugg": 3, "default_devic": 113, "default_stream": 114, "degre": 115, "dequant": 116, "devic": [9, 315], "device_info": 208, "diag": [45, 117], "diagon": [46, 118], "differ": 479, "differenti": 478, "disable_compil": 119, "distribut": [120, 121, 122, 123, 124, 125, 126, 127, 316, 477], "divid": 128, "divmod": 129, "download": [2, 5], "dropout": 333, "dropout2d": 334, "dropout3d": 335, "dtype": [10, 47], "dtypecategori": 11, "einsum": 130, "einsum_path": 131, "elu": [336, 407], "embed": 337, "enable_compil": 132, "encod": 5, "end": 2, "equal": 133, "erf": 134, "erfinv": 135, "eval": [136, 358], "evalu": 480, "exampl": [1, 2, 7, 476, 477, 484], "exp": [48, 137], "expand_dim": 138, "expm1": 139, "exponential_decai": 466, "extens": 2, "ey": 140, "fast": [141, 142, 143, 144, 145, 146, 317], "fft": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 318], "fft2": 148, "fftn": 149, "filter_and_map": 359, "flatten": [49, 159], "floor": 160, "floor_divid": 161, "format": 483, "found": 8, "framework": 481, "freez": 360, "from": [8, 479], "full": [5, 162], "function": [445, 448, 476, 478, 482], "further": 7, "gather_mm": 163, "gather_qmm": 164, "gaussian_nll_loss": 421, "gelu": [338, 408], "gelu_approx": 409, "gelu_fast_approx": 410, "gener": 5, "get": 477, "get_active_memori": 209, "get_cache_memori": 210, "get_peak_memori": 211, "glorot_norm": 399, "glorot_uniform": 400, "glu": [339, 411], "gpu": 2, "grad": [165, 321], "graph": [476, 480, 482], "greater": 166, "greater_equ": 167, "grid": 1, "group": 120, "groupnorm": 341, "gru": 340, "guid": 482, "gumbel": 239, "hadamard_transform": 168, "hard_shrink": 412, "hard_tanh": 413, "hardshrink": 342, "hardswish": [344, 414], "hardtanh": 343, "he_norm": 401, "he_uniform": 402, "hinge_loss": 422, "host": 477, "huber_loss": 423, "ident": [169, 403], "ifft": 150, "ifft2": 151, "ifftn": 152, "imag": 170, "implement": [2, 5], "index": 479, "infer": 5, "init": [123, 398, 399, 400, 401, 402, 403, 404, 405, 460], "initi": 446, "inner": 171, "inspect": 321, "instal": [7, 8, 477], "instancenorm": 345, "introduc": 2, "inv": 186, "irfft": 153, "irfft2": 154, "irfftn": 155, "is_avail": [124, 212], "isclos": 172, "isfinit": 173, "isinf": 174, "isnan": 175, "isneginf": 176, "isposinf": 177, "issubdtyp": 178, "item": 50, "items": 51, "jax": 481, "join_schedul": 467, "jvp": 179, "kei": 240, "kernel": 1, "kl_div_loss": 424, "l1_loss": 425, "laplac": 241, "layer": [5, 6, 447], "layer_norm": 142, "layernorm": 347, "lazi": 480, "leaf_modul": 361, "leaky_relu": 415, "leakyrelu": 348, "left_shift": 180, "less": 181, "less_equ": 182, "linalg": [183, 184, 185, 186, 187, 188, 189, 190], "linear": [4, 319, 349], "linear_schedul": 468, "linspac": 191, "lion": 458, "llm": 5, "load": [5, 192, 451, 483], "load_weight": 362, "log": [52, 193], "log10": [53, 194], "log1p": [54, 195], "log2": [55, 196], "log_cosh_loss": 426, "log_sigmoid": 416, "log_softmax": 417, "logaddexp": 197, "logical_and": 198, "logical_not": 199, "logical_or": 200, "logsigmoid": 350, "logsoftmax": 351, "logsumexp": [56, 201], "loss": [418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 448], "lstm": 346, "margin_ranking_loss": 427, "matmul": 202, "max": [57, 203], "maximum": 204, "maxpool1d": 352, "maxpool2d": 353, "mean": [58, 205], "memori": 484, "meshgrid": 206, "metal": [1, 3, 8, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 320], "metal_kernel": 143, "min": [59, 218], "minim": 8, "minimum": 219, "mish": [354, 432], "mlx": [2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469], "model": 5, "modul": [321, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 449], "moveaxi": [60, 220], "mpi": 477, "mse_loss": 428, "multi": 6, "multiheadattent": 375, "multipli": 221, "multivariate_norm": 242, "named_modul": 364, "nan_to_num": 222, "nbyte": 61, "ndim": 62, "neg": 223, "network": 321, "neural": 321, "new_stream": 224, "nll_loss": 429, "nn": [304, 305, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444], "norm": 187, "normal": [243, 404], "not_equ": 225, "numpi": [479, 481], "ones": 226, "ones_lik": 227, "onli": 480, "oper": [0, 2, 450], "optim": [306, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471], "option": 8, "other": 481, "outer": 228, "pad": 229, "paramet": [321, 365], "partit": 230, "perceptron": 6, "permut": 244, "place": 479, "power": 231, "prelu": [376, 433], "primit": 2, "prod": [63, 232], "pure": 476, "put": 5, "put_along_axi": 233, "python": [2, 7, 8], "pytorch": 481, "qr": 188, "quantiz": [234, 304], "quantized_matmul": 235, "quantizedembed": 377, "quantizedlinear": 378, "quick": [321, 482], "radian": 236, "randint": 245, "random": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 473], "read": 7, "real": 250, "reciproc": [64, 251], "recv": 125, "recv_lik": 126, "reduc": 477, "refer": 7, "regress": 4, "relu": [381, 434], "relu6": [382, 435], "remaind": 252, "remot": 477, "repeat": 253, "requir": 8, "reset_peak_memori": 213, "reshap": [65, 254], "result": 2, "rfft": 156, "rfft2": 157, "rfftn": 158, "right_shift": 255, "rms_norm": 144, "rmsnorm": 379, "rmsprop": 463, "rnn": 380, "roll": 256, "rope": [145, 383], "round": [66, 257], "rsqrt": [67, 258], "sampl": 1, "save": [259, 451, 483], "save_gguf": 260, "save_safetensor": 261, "save_weight": 366, "savez": 262, "savez_compress": 263, "scaled_dot_product_attent": 146, "schedul": 472, "script": [2, 5], "seed": 246, "selu": [384, 436], "send": 127, "sequenti": 385, "serial": 483, "set": 477, "set_cache_limit": 214, "set_default_devic": 264, "set_default_stream": 265, "set_dtyp": 367, "set_memory_limit": 215, "setuptool": 2, "sgd": 464, "shape": [1, 68], "shell": 8, "sigmoid": [266, 387, 437], "sign": 267, "silu": [386, 438], "simpl": [1, 484], "sin": [69, 268], "sinh": 269, "sinusoidalpositionalencod": 388, "size": [8, 70], "smooth_l1_loss": 430, "softmax": [270, 389, 439], "softmin": [390, 440], "softplu": [391, 441], "softshrink": [392, 442], "softsign": 393, "sort": 271, "sourc": 8, "specifi": 485, "speedup": 476, "split": [71, 247, 272], "sqrt": [72, 273], "squar": [73, 274], "squeez": [74, 275], "stack": 276, "start": [321, 477, 482], "start_captur": 216, "state": [368, 461], "std": [75, 277], "step": [394, 443], "step_decai": 469, "stop_captur": 217, "stop_gradi": 278, "stream": [279, 312, 315, 485], "stride": 1, "subtract": 280, "sum": [76, 281], "support": 314, "svd": 189, "swapax": [77, 282], "synchron": 283, "t": 31, "take": 284, "take_along_axi": 285, "tan": 286, "tanh": [287, 395, 444], "tensordot": 288, "tensorflow": 481, "tile": 289, "togeth": 5, "tolist": 78, "topk": 290, "trace": 291, "train": [369, 371, 476, 477], "trainable_paramet": 370, "transform": [2, 396, 474, 476, 478, 480, 482], "transpos": [79, 292], "tree": 475, "tree_flatten": 307, "tree_map": 308, "tree_map_with_path": 309, "tree_reduc": 310, "tree_unflatten": 311, "tri": 293, "tri_inv": 190, "tril": 294, "triplet_loss": 431, "triu": 295, "troubleshoot": 8, "truncated_norm": 248, "tune": 477, "type": 314, "unfreez": 372, "unifi": 484, "uniform": [249, 405], "up": 477, "updat": [321, 373, 462, 479], "update_modul": 374, "upsampl": 397, "us": [1, 2, 480, 485], "usag": [2, 7], "util": [307, 308, 309, 310, 311, 475], "valu": 321, "value_and_grad": [296, 305], "var": [80, 297], "vector": 478, "view": [81, 298], "vjp": [1, 299], "vmap": 300, "weight": 5, "what": 480, "when": 480, "where": 301, "why": 480, "workflow": 3, "x86": 8, "xcode": 3, "you": 480, "zero": 302, "zeros_lik": 303}}) \ No newline at end of file +Search.setIndex({"alltitles": {"A Simple Example": [[487, "a-simple-example"]], "Array": [[316, null]], "Attention layer": [[5, "attention-layer"]], "Automatic Differentiation": [[481, "automatic-differentiation"]], "Automatic Vectorization": [[481, "automatic-vectorization"]], "Basics": [[485, "basics"]], "Basics of Compile": [[479, "basics-of-compile"]], "Binary Size Minimization": [[8, "binary-size-minimization"]], "Binding to Python": [[2, "binding-to-python"]], "Build Options": [[8, "id3"]], "Build Requirements": [[8, "build-requirements"]], "Build and Install": [[8, null]], "Build from source": [[8, "build-from-source"]], "Building and Binding": [[2, "building-and-binding"]], "Building with CMake": [[2, "building-with-cmake"]], "Building with setuptools": [[2, "building-with-setuptools"]], "C++ API": [[8, "c-api"]], "C++ API Reference": [[7, null]], "Common Optimizers": [[473, null]], "Compilation": [[479, null]], "Compiling Training Graphs": [[479, "compiling-training-graphs"]], "Complex Example": [[1, "complex-example"]], "Conversion to NumPy and Other Frameworks": [[484, null]], "Converting the weights": [[5, "converting-the-weights"]], "Custom Extensions in MLX": [[2, null]], "Custom Metal Kernels": [[1, null]], "Data Types": [[317, null]], "Debugging": [[479, "debugging"]], "Devices and Streams": [[318, null]], "Differences from NumPy": [[482, "differences-from-numpy"]], "Distributed Communication": [[319, null], [480, null]], "Download the code": [[2, null], [5, null]], "Encoder layer": [[5, "encoder-layer"]], "Example Speedup": [[479, "example-speedup"]], "Examples": [[7, null]], "FFT": [[321, null]], "Fast": [[320, null]], "Full model": [[5, "full-model"]], "Function Transforms": [[481, null]], "Function and Graph Transformations": [[485, "function-and-graph-transformations"]], "Functions": [[448, null]], "Further Reading": [[7, null]], "Generation": [[5, "generation"]], "Getting Started": [[480, "getting-started"]], "Grid Sample VJP": [[1, "grid-sample-vjp"]], "Implementing the CPU Back-end": [[2, "implementing-the-cpu-back-end"]], "Implementing the GPU Back-end": [[2, "implementing-the-gpu-back-end"]], "Implementing the Primitive": [[2, "implementing-the-primitive"]], "Implementing the model": [[5, "implementing-the-model"]], "In Place Updates": [[482, "in-place-updates"]], "Indexing Arrays": [[482, null]], "Initializers": [[449, null]], "Inspecting Modules": [[324, "inspecting-modules"]], "Install": [[7, null]], "Installing MPI": [[480, "installing-mpi"]], "Introducing the Example": [[2, "introducing-the-example"]], "JAX": [[484, "jax"]], "LLM inference": [[5, null]], "Layers": [[450, null]], "Lazy Evaluation": [[483, null]], "Linear Algebra": [[322, null]], "Linear Regression": [[4, null]], "Loss Functions": [[451, null]], "MLX": [[7, null]], "Metal": [[323, null]], "Metal Debugger": [[3, null]], "Metal not found": [[8, "metal-not-found"]], "Module": [[452, null]], "Multi-Layer Perceptron": [[6, null]], "Neural Networks": [[324, null]], "Only Compute What You Use": [[483, "only-compute-what-you-use"]], "Operations": [[0, null], [2, "operations"], [453, null]], "Operations and Primitives": [[2, "operations-and-primitives"]], "Optimizer": [[474, null]], "Optimizers": [[454, null]], "Parameters": [[324, "parameters"]], "Primitive Transforms": [[2, "primitive-transforms"]], "Primitives": [[2, "primitives"]], "Pure Functions": [[479, "pure-functions"]], "Putting it all together": [[5, "putting-it-all-together"]], "PyTorch": [[484, "pytorch"]], "Python API": [[8, "python-api"]], "Python API Reference": [[7, null]], "Python Installation": [[8, "python-installation"]], "Quick Start Guide": [[485, null]], "Quick Start with Neural Networks": [[324, "quick-start-with-neural-networks"]], "Random": [[476, null]], "Results": [[2, "results"]], "Saving and Loading": [[454, "saving-and-loading"]], "Saving and Loading Arrays": [[486, null]], "Schedulers": [[475, null]], "Scripts": [[2, "scripts"], [5, "scripts"]], "Serialization Formats": [[486, "id1"]], "Setting up Remote Hosts": [[480, "setting-up-remote-hosts"]], "Simple Example": [[1, "simple-example"]], "Specifying the Stream": [[488, "specifying-the-stream"]], "Supported Data Types": [[317, "id2"]], "TensorFlow": [[484, "tensorflow"]], "The Module Class": [[324, "the-module-class"]], "Training Example": [[480, "training-example"]], "Transformations with Compile": [[479, "transformations-with-compile"]], "Transforming Compute Graphs": [[483, "transforming-compute-graphs"]], "Transforms": [[477, null]], "Tree Utils": [[478, null]], "Troubleshooting": [[8, "troubleshooting"], [8, "id2"]], "Tuning All Reduce": [[480, "tuning-all-reduce"]], "Unified Memory": [[487, null]], "Updating the Parameters": [[324, "updating-the-parameters"]], "Usage": [[2, "usage"], [7, null]], "Using Shape/Strides": [[1, "using-shape-strides"]], "Using Streams": [[488, null]], "Using the Primitive": [[2, "using-the-primitive"]], "Value and Grad": [[324, "value-and-grad"]], "Weight loading and benchmarking": [[5, "weight-loading-and-benchmarking"]], "When to Evaluate": [[483, "when-to-evaluate"]], "Why Lazy Evaluation": [[483, "why-lazy-evaluation"]], "Xcode Workflow": [[3, "xcode-workflow"]], "mlx.core.Device": [[9, null]], "mlx.core.Dtype": [[10, null]], "mlx.core.DtypeCategory": [[11, null]], "mlx.core.Stream": [[315, null]], "mlx.core.abs": [[12, null]], "mlx.core.add": [[13, null]], "mlx.core.addmm": [[14, null]], "mlx.core.all": [[15, null]], "mlx.core.allclose": [[16, null]], "mlx.core.any": [[17, null]], "mlx.core.arange": [[18, null]], "mlx.core.arccos": [[19, null]], "mlx.core.arccosh": [[20, null]], "mlx.core.arcsin": [[21, null]], "mlx.core.arcsinh": [[22, null]], "mlx.core.arctan": [[23, null]], "mlx.core.arctan2": [[24, null]], "mlx.core.arctanh": [[25, null]], "mlx.core.argmax": [[26, null]], "mlx.core.argmin": [[27, null]], "mlx.core.argpartition": [[28, null]], "mlx.core.argsort": [[29, null]], "mlx.core.array": [[30, null]], "mlx.core.array.T": [[31, null]], "mlx.core.array.abs": [[32, null]], "mlx.core.array.all": [[33, null]], "mlx.core.array.any": [[34, null]], "mlx.core.array.argmax": [[35, null]], "mlx.core.array.argmin": [[36, null]], "mlx.core.array.astype": [[37, null]], "mlx.core.array.at": [[38, null]], "mlx.core.array.conj": [[39, null]], "mlx.core.array.cos": [[40, null]], "mlx.core.array.cummax": [[41, null]], "mlx.core.array.cummin": [[42, null]], "mlx.core.array.cumprod": [[43, null]], "mlx.core.array.cumsum": [[44, null]], "mlx.core.array.diag": [[45, null]], "mlx.core.array.diagonal": [[46, null]], "mlx.core.array.dtype": [[47, null]], "mlx.core.array.exp": [[48, null]], "mlx.core.array.flatten": [[49, null]], "mlx.core.array.item": [[50, null]], "mlx.core.array.itemsize": [[51, null]], "mlx.core.array.log": [[52, null]], "mlx.core.array.log10": [[53, null]], "mlx.core.array.log1p": [[54, null]], "mlx.core.array.log2": [[55, null]], "mlx.core.array.logsumexp": [[56, null]], "mlx.core.array.max": [[57, null]], "mlx.core.array.mean": [[58, null]], "mlx.core.array.min": [[59, null]], "mlx.core.array.moveaxis": [[60, null]], "mlx.core.array.nbytes": [[61, null]], "mlx.core.array.ndim": [[62, null]], "mlx.core.array.prod": [[63, null]], "mlx.core.array.reciprocal": [[64, null]], "mlx.core.array.reshape": [[65, null]], "mlx.core.array.round": [[66, null]], "mlx.core.array.rsqrt": [[67, null]], "mlx.core.array.shape": [[68, null]], "mlx.core.array.sin": [[69, null]], "mlx.core.array.size": [[70, null]], "mlx.core.array.split": [[71, null]], "mlx.core.array.sqrt": [[72, null]], "mlx.core.array.square": [[73, null]], "mlx.core.array.squeeze": [[74, null]], "mlx.core.array.std": [[75, null]], "mlx.core.array.sum": [[76, null]], "mlx.core.array.swapaxes": [[77, null]], "mlx.core.array.tolist": [[78, null]], "mlx.core.array.transpose": [[79, null]], "mlx.core.array.var": [[80, null]], "mlx.core.array.view": [[81, null]], "mlx.core.array_equal": [[82, null]], "mlx.core.as_strided": [[83, null]], "mlx.core.atleast_1d": [[84, null]], "mlx.core.atleast_2d": [[85, null]], "mlx.core.atleast_3d": [[86, null]], "mlx.core.bitwise_and": [[87, null]], "mlx.core.bitwise_or": [[88, null]], "mlx.core.bitwise_xor": [[89, null]], "mlx.core.block_masked_mm": [[90, null]], "mlx.core.broadcast_to": [[91, null]], "mlx.core.ceil": [[92, null]], "mlx.core.clip": [[93, null]], "mlx.core.compile": [[94, null]], "mlx.core.concatenate": [[95, null]], "mlx.core.conj": [[96, null]], "mlx.core.conjugate": [[97, null]], "mlx.core.conv1d": [[98, null]], "mlx.core.conv2d": [[99, null]], "mlx.core.conv3d": [[100, null]], "mlx.core.conv_general": [[101, null]], "mlx.core.conv_transpose1d": [[102, null]], "mlx.core.conv_transpose2d": [[103, null]], "mlx.core.conv_transpose3d": [[104, null]], "mlx.core.convolve": [[105, null]], "mlx.core.cos": [[106, null]], "mlx.core.cosh": [[107, null]], "mlx.core.cummax": [[108, null]], "mlx.core.cummin": [[109, null]], "mlx.core.cumprod": [[110, null]], "mlx.core.cumsum": [[111, null]], "mlx.core.custom_function": [[112, null]], "mlx.core.default_device": [[113, null]], "mlx.core.default_stream": [[114, null]], "mlx.core.degrees": [[115, null]], "mlx.core.dequantize": [[116, null]], "mlx.core.diag": [[117, null]], "mlx.core.diagonal": [[118, null]], "mlx.core.disable_compile": [[119, null]], "mlx.core.distributed.Group": [[120, null]], "mlx.core.distributed.all_gather": [[121, null]], "mlx.core.distributed.all_sum": [[122, null]], "mlx.core.distributed.init": [[123, null]], "mlx.core.distributed.is_available": [[124, null]], "mlx.core.distributed.recv": [[125, null]], "mlx.core.distributed.recv_like": [[126, null]], "mlx.core.distributed.send": [[127, null]], "mlx.core.divide": [[128, null]], "mlx.core.divmod": [[129, null]], "mlx.core.einsum": [[130, null]], "mlx.core.einsum_path": [[131, null]], "mlx.core.enable_compile": [[132, null]], "mlx.core.equal": [[133, null]], "mlx.core.erf": [[134, null]], "mlx.core.erfinv": [[135, null]], "mlx.core.eval": [[136, null]], "mlx.core.exp": [[137, null]], "mlx.core.expand_dims": [[138, null]], "mlx.core.expm1": [[139, null]], "mlx.core.eye": [[140, null]], "mlx.core.fast.affine_quantize": [[141, null]], "mlx.core.fast.layer_norm": [[142, null]], "mlx.core.fast.metal_kernel": [[143, null]], "mlx.core.fast.rms_norm": [[144, null]], "mlx.core.fast.rope": [[145, null]], "mlx.core.fast.scaled_dot_product_attention": [[146, null]], "mlx.core.fft.fft": [[147, null]], "mlx.core.fft.fft2": [[148, null]], "mlx.core.fft.fftn": [[149, null]], "mlx.core.fft.ifft": [[150, null]], "mlx.core.fft.ifft2": [[151, null]], "mlx.core.fft.ifftn": [[152, null]], "mlx.core.fft.irfft": [[153, null]], "mlx.core.fft.irfft2": [[154, null]], "mlx.core.fft.irfftn": [[155, null]], "mlx.core.fft.rfft": [[156, null]], "mlx.core.fft.rfft2": [[157, null]], "mlx.core.fft.rfftn": [[158, null]], "mlx.core.flatten": [[159, null]], "mlx.core.floor": [[160, null]], "mlx.core.floor_divide": [[161, null]], "mlx.core.full": [[162, null]], "mlx.core.gather_mm": [[163, null]], "mlx.core.gather_qmm": [[164, null]], "mlx.core.grad": [[165, null]], "mlx.core.greater": [[166, null]], "mlx.core.greater_equal": [[167, null]], "mlx.core.hadamard_transform": [[168, null]], "mlx.core.identity": [[169, null]], "mlx.core.imag": [[170, null]], "mlx.core.inner": [[171, null]], "mlx.core.isclose": [[172, null]], "mlx.core.isfinite": [[173, null]], "mlx.core.isinf": [[174, null]], "mlx.core.isnan": [[175, null]], "mlx.core.isneginf": [[176, null]], "mlx.core.isposinf": [[177, null]], "mlx.core.issubdtype": [[178, null]], "mlx.core.jvp": [[179, null]], "mlx.core.left_shift": [[180, null]], "mlx.core.less": [[181, null]], "mlx.core.less_equal": [[182, null]], "mlx.core.linalg.cholesky": [[183, null]], "mlx.core.linalg.cholesky_inv": [[184, null]], "mlx.core.linalg.cross": [[185, null]], "mlx.core.linalg.eigh": [[186, null]], "mlx.core.linalg.eigvalsh": [[187, null]], "mlx.core.linalg.inv": [[188, null]], "mlx.core.linalg.norm": [[189, null]], "mlx.core.linalg.qr": [[190, null]], "mlx.core.linalg.svd": [[191, null]], "mlx.core.linalg.tri_inv": [[192, null]], "mlx.core.linspace": [[193, null]], "mlx.core.load": [[194, null]], "mlx.core.log": [[195, null]], "mlx.core.log10": [[196, null]], "mlx.core.log1p": [[197, null]], "mlx.core.log2": [[198, null]], "mlx.core.logaddexp": [[199, null]], "mlx.core.logical_and": [[200, null]], "mlx.core.logical_not": [[201, null]], "mlx.core.logical_or": [[202, null]], "mlx.core.logsumexp": [[203, null]], "mlx.core.matmul": [[204, null]], "mlx.core.max": [[205, null]], "mlx.core.maximum": [[206, null]], "mlx.core.mean": [[207, null]], "mlx.core.meshgrid": [[208, null]], "mlx.core.metal.clear_cache": [[209, null]], "mlx.core.metal.device_info": [[210, null]], "mlx.core.metal.get_active_memory": [[211, null]], "mlx.core.metal.get_cache_memory": [[212, null]], "mlx.core.metal.get_peak_memory": [[213, null]], "mlx.core.metal.is_available": [[214, null]], "mlx.core.metal.reset_peak_memory": [[215, null]], "mlx.core.metal.set_cache_limit": [[216, null]], "mlx.core.metal.set_memory_limit": [[217, null]], "mlx.core.metal.set_wired_limit": [[218, null]], "mlx.core.metal.start_capture": [[219, null]], "mlx.core.metal.stop_capture": [[220, null]], "mlx.core.min": [[221, null]], "mlx.core.minimum": [[222, null]], "mlx.core.moveaxis": [[223, null]], "mlx.core.multiply": [[224, null]], "mlx.core.nan_to_num": [[225, null]], "mlx.core.negative": [[226, null]], "mlx.core.new_stream": [[227, null]], "mlx.core.not_equal": [[228, null]], "mlx.core.ones": [[229, null]], "mlx.core.ones_like": [[230, null]], "mlx.core.outer": [[231, null]], "mlx.core.pad": [[232, null]], "mlx.core.partition": [[233, null]], "mlx.core.power": [[234, null]], "mlx.core.prod": [[235, null]], "mlx.core.put_along_axis": [[236, null]], "mlx.core.quantize": [[237, null]], "mlx.core.quantized_matmul": [[238, null]], "mlx.core.radians": [[239, null]], "mlx.core.random.bernoulli": [[240, null]], "mlx.core.random.categorical": [[241, null]], "mlx.core.random.gumbel": [[242, null]], "mlx.core.random.key": [[243, null]], "mlx.core.random.laplace": [[244, null]], "mlx.core.random.multivariate_normal": [[245, null]], "mlx.core.random.normal": [[246, null]], "mlx.core.random.permutation": [[247, null]], "mlx.core.random.randint": [[248, null]], "mlx.core.random.seed": [[249, null]], "mlx.core.random.split": [[250, null]], "mlx.core.random.truncated_normal": [[251, null]], "mlx.core.random.uniform": [[252, null]], "mlx.core.real": [[253, null]], "mlx.core.reciprocal": [[254, null]], "mlx.core.remainder": [[255, null]], "mlx.core.repeat": [[256, null]], "mlx.core.reshape": [[257, null]], "mlx.core.right_shift": [[258, null]], "mlx.core.roll": [[259, null]], "mlx.core.round": [[260, null]], "mlx.core.rsqrt": [[261, null]], "mlx.core.save": [[262, null]], "mlx.core.save_gguf": [[263, null]], "mlx.core.save_safetensors": [[264, null]], "mlx.core.savez": [[265, null]], "mlx.core.savez_compressed": [[266, null]], "mlx.core.set_default_device": [[267, null]], "mlx.core.set_default_stream": [[268, null]], "mlx.core.sigmoid": [[269, null]], "mlx.core.sign": [[270, null]], "mlx.core.sin": [[271, null]], "mlx.core.sinh": [[272, null]], "mlx.core.softmax": [[273, null]], "mlx.core.sort": [[274, null]], "mlx.core.split": [[275, null]], "mlx.core.sqrt": [[276, null]], "mlx.core.square": [[277, null]], "mlx.core.squeeze": [[278, null]], "mlx.core.stack": [[279, null]], "mlx.core.std": [[280, null]], "mlx.core.stop_gradient": [[281, null]], "mlx.core.stream": [[282, null]], "mlx.core.subtract": [[283, null]], "mlx.core.sum": [[284, null]], "mlx.core.swapaxes": [[285, null]], "mlx.core.synchronize": [[286, null]], "mlx.core.take": [[287, null]], "mlx.core.take_along_axis": [[288, null]], "mlx.core.tan": [[289, null]], "mlx.core.tanh": [[290, null]], "mlx.core.tensordot": [[291, null]], "mlx.core.tile": [[292, null]], "mlx.core.topk": [[293, null]], "mlx.core.trace": [[294, null]], "mlx.core.transpose": [[295, null]], "mlx.core.tri": [[296, null]], "mlx.core.tril": [[297, null]], "mlx.core.triu": [[298, null]], "mlx.core.value_and_grad": [[299, null]], "mlx.core.var": [[300, null]], "mlx.core.view": [[301, null]], "mlx.core.vjp": [[302, null]], "mlx.core.vmap": [[303, null]], "mlx.core.where": [[304, null]], "mlx.core.zeros": [[305, null]], "mlx.core.zeros_like": [[306, null]], "mlx.nn.ALiBi": [[325, null]], "mlx.nn.AvgPool1d": [[326, null]], "mlx.nn.AvgPool2d": [[327, null]], "mlx.nn.BatchNorm": [[328, null]], "mlx.nn.CELU": [[329, null]], "mlx.nn.Conv1d": [[330, null]], "mlx.nn.Conv2d": [[331, null]], "mlx.nn.Conv3d": [[332, null]], "mlx.nn.ConvTranspose1d": [[333, null]], "mlx.nn.ConvTranspose2d": [[334, null]], "mlx.nn.ConvTranspose3d": [[335, null]], "mlx.nn.Dropout": [[336, null]], "mlx.nn.Dropout2d": [[337, null]], "mlx.nn.Dropout3d": [[338, null]], "mlx.nn.ELU": [[339, null]], "mlx.nn.Embedding": [[340, null]], "mlx.nn.GELU": [[341, null]], "mlx.nn.GLU": [[342, null]], "mlx.nn.GRU": [[343, null]], "mlx.nn.GroupNorm": [[344, null]], "mlx.nn.HardShrink": [[345, null]], "mlx.nn.HardTanh": [[346, null]], "mlx.nn.Hardswish": [[347, null]], "mlx.nn.InstanceNorm": [[348, null]], "mlx.nn.LSTM": [[349, null]], "mlx.nn.LayerNorm": [[350, null]], "mlx.nn.LeakyReLU": [[351, null]], "mlx.nn.Linear": [[352, null]], "mlx.nn.LogSigmoid": [[353, null]], "mlx.nn.LogSoftmax": [[354, null]], "mlx.nn.MaxPool1d": [[355, null]], "mlx.nn.MaxPool2d": [[356, null]], "mlx.nn.Mish": [[357, null]], "mlx.nn.Module.apply": [[358, null]], "mlx.nn.Module.apply_to_modules": [[359, null]], "mlx.nn.Module.children": [[360, null]], "mlx.nn.Module.eval": [[361, null]], "mlx.nn.Module.filter_and_map": [[362, null]], "mlx.nn.Module.freeze": [[363, null]], "mlx.nn.Module.leaf_modules": [[364, null]], "mlx.nn.Module.load_weights": [[365, null]], "mlx.nn.Module.modules": [[366, null]], "mlx.nn.Module.named_modules": [[367, null]], "mlx.nn.Module.parameters": [[368, null]], "mlx.nn.Module.save_weights": [[369, null]], "mlx.nn.Module.set_dtype": [[370, null]], "mlx.nn.Module.state": [[371, null]], "mlx.nn.Module.train": [[372, null]], "mlx.nn.Module.trainable_parameters": [[373, null]], "mlx.nn.Module.training": [[374, null]], "mlx.nn.Module.unfreeze": [[375, null]], "mlx.nn.Module.update": [[376, null]], "mlx.nn.Module.update_modules": [[377, null]], "mlx.nn.MultiHeadAttention": [[378, null]], "mlx.nn.PReLU": [[379, null]], "mlx.nn.QuantizedEmbedding": [[380, null]], "mlx.nn.QuantizedLinear": [[381, null]], "mlx.nn.RMSNorm": [[382, null]], "mlx.nn.RNN": [[383, null]], "mlx.nn.ReLU": [[384, null]], "mlx.nn.ReLU6": [[385, null]], "mlx.nn.RoPE": [[386, null]], "mlx.nn.SELU": [[387, null]], "mlx.nn.Sequential": [[388, null]], "mlx.nn.SiLU": [[389, null]], "mlx.nn.Sigmoid": [[390, null]], "mlx.nn.SinusoidalPositionalEncoding": [[391, null]], "mlx.nn.Softmax": [[392, null]], "mlx.nn.Softmin": [[393, null]], "mlx.nn.Softplus": [[394, null]], "mlx.nn.Softshrink": [[395, null]], "mlx.nn.Softsign": [[396, null]], "mlx.nn.Step": [[397, null]], "mlx.nn.Tanh": [[398, null]], "mlx.nn.Transformer": [[399, null]], "mlx.nn.Upsample": [[400, null]], "mlx.nn.celu": [[409, null]], "mlx.nn.elu": [[410, null]], "mlx.nn.gelu": [[411, null]], "mlx.nn.gelu_approx": [[412, null]], "mlx.nn.gelu_fast_approx": [[413, null]], "mlx.nn.glu": [[414, null]], "mlx.nn.hard_shrink": [[415, null]], "mlx.nn.hard_tanh": [[416, null]], "mlx.nn.hardswish": [[417, null]], "mlx.nn.init.constant": [[401, null]], "mlx.nn.init.glorot_normal": [[402, null]], "mlx.nn.init.glorot_uniform": [[403, null]], "mlx.nn.init.he_normal": [[404, null]], "mlx.nn.init.he_uniform": [[405, null]], "mlx.nn.init.identity": [[406, null]], "mlx.nn.init.normal": [[407, null]], "mlx.nn.init.uniform": [[408, null]], "mlx.nn.leaky_relu": [[418, null]], "mlx.nn.log_sigmoid": [[419, null]], "mlx.nn.log_softmax": [[420, null]], "mlx.nn.losses.binary_cross_entropy": [[421, null]], "mlx.nn.losses.cosine_similarity_loss": [[422, null]], "mlx.nn.losses.cross_entropy": [[423, null]], "mlx.nn.losses.gaussian_nll_loss": [[424, null]], "mlx.nn.losses.hinge_loss": [[425, null]], "mlx.nn.losses.huber_loss": [[426, null]], "mlx.nn.losses.kl_div_loss": [[427, null]], "mlx.nn.losses.l1_loss": [[428, null]], "mlx.nn.losses.log_cosh_loss": [[429, null]], "mlx.nn.losses.margin_ranking_loss": [[430, null]], "mlx.nn.losses.mse_loss": [[431, null]], "mlx.nn.losses.nll_loss": [[432, null]], "mlx.nn.losses.smooth_l1_loss": [[433, null]], "mlx.nn.losses.triplet_loss": [[434, null]], "mlx.nn.mish": [[435, null]], "mlx.nn.prelu": [[436, null]], "mlx.nn.quantize": [[307, null]], "mlx.nn.relu": [[437, null]], "mlx.nn.relu6": [[438, null]], "mlx.nn.selu": [[439, null]], "mlx.nn.sigmoid": [[440, null]], "mlx.nn.silu": [[441, null]], "mlx.nn.softmax": [[442, null]], "mlx.nn.softmin": [[443, null]], "mlx.nn.softplus": [[444, null]], "mlx.nn.softshrink": [[445, null]], "mlx.nn.step": [[446, null]], "mlx.nn.tanh": [[447, null]], "mlx.nn.value_and_grad": [[308, null]], "mlx.optimizers.AdaDelta": [[455, null]], "mlx.optimizers.Adafactor": [[456, null]], "mlx.optimizers.Adagrad": [[457, null]], "mlx.optimizers.Adam": [[458, null]], "mlx.optimizers.AdamW": [[459, null]], "mlx.optimizers.Adamax": [[460, null]], "mlx.optimizers.Lion": [[461, null]], "mlx.optimizers.Optimizer.apply_gradients": [[462, null]], "mlx.optimizers.Optimizer.init": [[463, null]], "mlx.optimizers.Optimizer.state": [[464, null]], "mlx.optimizers.Optimizer.update": [[465, null]], "mlx.optimizers.RMSprop": [[466, null]], "mlx.optimizers.SGD": [[467, null]], "mlx.optimizers.clip_grad_norm": [[309, null]], "mlx.optimizers.cosine_decay": [[468, null]], "mlx.optimizers.exponential_decay": [[469, null]], "mlx.optimizers.join_schedules": [[470, null]], "mlx.optimizers.linear_schedule": [[471, null]], "mlx.optimizers.step_decay": [[472, null]], "mlx.utils.tree_flatten": [[310, null]], "mlx.utils.tree_map": [[311, null]], "mlx.utils.tree_map_with_path": [[312, null]], "mlx.utils.tree_reduce": [[313, null]], "mlx.utils.tree_unflatten": [[314, null]], "x86 Shell": [[8, "x86-shell"]]}, "docnames": ["cpp/ops", "dev/custom_metal_kernels", "dev/extensions", "dev/metal_debugger", "examples/linear_regression", "examples/llama-inference", "examples/mlp", "index", "install", "python/_autosummary/mlx.core.Device", "python/_autosummary/mlx.core.Dtype", "python/_autosummary/mlx.core.DtypeCategory", "python/_autosummary/mlx.core.abs", "python/_autosummary/mlx.core.add", "python/_autosummary/mlx.core.addmm", "python/_autosummary/mlx.core.all", "python/_autosummary/mlx.core.allclose", "python/_autosummary/mlx.core.any", "python/_autosummary/mlx.core.arange", "python/_autosummary/mlx.core.arccos", "python/_autosummary/mlx.core.arccosh", "python/_autosummary/mlx.core.arcsin", "python/_autosummary/mlx.core.arcsinh", "python/_autosummary/mlx.core.arctan", "python/_autosummary/mlx.core.arctan2", "python/_autosummary/mlx.core.arctanh", "python/_autosummary/mlx.core.argmax", "python/_autosummary/mlx.core.argmin", "python/_autosummary/mlx.core.argpartition", "python/_autosummary/mlx.core.argsort", "python/_autosummary/mlx.core.array", "python/_autosummary/mlx.core.array.T", "python/_autosummary/mlx.core.array.abs", "python/_autosummary/mlx.core.array.all", "python/_autosummary/mlx.core.array.any", "python/_autosummary/mlx.core.array.argmax", "python/_autosummary/mlx.core.array.argmin", "python/_autosummary/mlx.core.array.astype", "python/_autosummary/mlx.core.array.at", "python/_autosummary/mlx.core.array.conj", "python/_autosummary/mlx.core.array.cos", "python/_autosummary/mlx.core.array.cummax", "python/_autosummary/mlx.core.array.cummin", "python/_autosummary/mlx.core.array.cumprod", "python/_autosummary/mlx.core.array.cumsum", "python/_autosummary/mlx.core.array.diag", "python/_autosummary/mlx.core.array.diagonal", "python/_autosummary/mlx.core.array.dtype", "python/_autosummary/mlx.core.array.exp", "python/_autosummary/mlx.core.array.flatten", "python/_autosummary/mlx.core.array.item", "python/_autosummary/mlx.core.array.itemsize", "python/_autosummary/mlx.core.array.log", "python/_autosummary/mlx.core.array.log10", "python/_autosummary/mlx.core.array.log1p", "python/_autosummary/mlx.core.array.log2", "python/_autosummary/mlx.core.array.logsumexp", "python/_autosummary/mlx.core.array.max", "python/_autosummary/mlx.core.array.mean", "python/_autosummary/mlx.core.array.min", "python/_autosummary/mlx.core.array.moveaxis", "python/_autosummary/mlx.core.array.nbytes", "python/_autosummary/mlx.core.array.ndim", "python/_autosummary/mlx.core.array.prod", "python/_autosummary/mlx.core.array.reciprocal", "python/_autosummary/mlx.core.array.reshape", "python/_autosummary/mlx.core.array.round", "python/_autosummary/mlx.core.array.rsqrt", "python/_autosummary/mlx.core.array.shape", "python/_autosummary/mlx.core.array.sin", "python/_autosummary/mlx.core.array.size", "python/_autosummary/mlx.core.array.split", "python/_autosummary/mlx.core.array.sqrt", "python/_autosummary/mlx.core.array.square", "python/_autosummary/mlx.core.array.squeeze", "python/_autosummary/mlx.core.array.std", "python/_autosummary/mlx.core.array.sum", "python/_autosummary/mlx.core.array.swapaxes", "python/_autosummary/mlx.core.array.tolist", "python/_autosummary/mlx.core.array.transpose", "python/_autosummary/mlx.core.array.var", "python/_autosummary/mlx.core.array.view", "python/_autosummary/mlx.core.array_equal", "python/_autosummary/mlx.core.as_strided", "python/_autosummary/mlx.core.atleast_1d", "python/_autosummary/mlx.core.atleast_2d", "python/_autosummary/mlx.core.atleast_3d", "python/_autosummary/mlx.core.bitwise_and", "python/_autosummary/mlx.core.bitwise_or", "python/_autosummary/mlx.core.bitwise_xor", "python/_autosummary/mlx.core.block_masked_mm", "python/_autosummary/mlx.core.broadcast_to", "python/_autosummary/mlx.core.ceil", "python/_autosummary/mlx.core.clip", "python/_autosummary/mlx.core.compile", "python/_autosummary/mlx.core.concatenate", "python/_autosummary/mlx.core.conj", "python/_autosummary/mlx.core.conjugate", "python/_autosummary/mlx.core.conv1d", "python/_autosummary/mlx.core.conv2d", "python/_autosummary/mlx.core.conv3d", "python/_autosummary/mlx.core.conv_general", "python/_autosummary/mlx.core.conv_transpose1d", "python/_autosummary/mlx.core.conv_transpose2d", "python/_autosummary/mlx.core.conv_transpose3d", "python/_autosummary/mlx.core.convolve", "python/_autosummary/mlx.core.cos", "python/_autosummary/mlx.core.cosh", "python/_autosummary/mlx.core.cummax", "python/_autosummary/mlx.core.cummin", "python/_autosummary/mlx.core.cumprod", "python/_autosummary/mlx.core.cumsum", "python/_autosummary/mlx.core.custom_function", "python/_autosummary/mlx.core.default_device", "python/_autosummary/mlx.core.default_stream", "python/_autosummary/mlx.core.degrees", "python/_autosummary/mlx.core.dequantize", "python/_autosummary/mlx.core.diag", "python/_autosummary/mlx.core.diagonal", "python/_autosummary/mlx.core.disable_compile", "python/_autosummary/mlx.core.distributed.Group", "python/_autosummary/mlx.core.distributed.all_gather", "python/_autosummary/mlx.core.distributed.all_sum", "python/_autosummary/mlx.core.distributed.init", "python/_autosummary/mlx.core.distributed.is_available", "python/_autosummary/mlx.core.distributed.recv", "python/_autosummary/mlx.core.distributed.recv_like", "python/_autosummary/mlx.core.distributed.send", "python/_autosummary/mlx.core.divide", "python/_autosummary/mlx.core.divmod", "python/_autosummary/mlx.core.einsum", "python/_autosummary/mlx.core.einsum_path", "python/_autosummary/mlx.core.enable_compile", "python/_autosummary/mlx.core.equal", "python/_autosummary/mlx.core.erf", "python/_autosummary/mlx.core.erfinv", "python/_autosummary/mlx.core.eval", "python/_autosummary/mlx.core.exp", "python/_autosummary/mlx.core.expand_dims", "python/_autosummary/mlx.core.expm1", "python/_autosummary/mlx.core.eye", "python/_autosummary/mlx.core.fast.affine_quantize", "python/_autosummary/mlx.core.fast.layer_norm", "python/_autosummary/mlx.core.fast.metal_kernel", "python/_autosummary/mlx.core.fast.rms_norm", "python/_autosummary/mlx.core.fast.rope", "python/_autosummary/mlx.core.fast.scaled_dot_product_attention", "python/_autosummary/mlx.core.fft.fft", "python/_autosummary/mlx.core.fft.fft2", "python/_autosummary/mlx.core.fft.fftn", "python/_autosummary/mlx.core.fft.ifft", "python/_autosummary/mlx.core.fft.ifft2", "python/_autosummary/mlx.core.fft.ifftn", "python/_autosummary/mlx.core.fft.irfft", "python/_autosummary/mlx.core.fft.irfft2", "python/_autosummary/mlx.core.fft.irfftn", "python/_autosummary/mlx.core.fft.rfft", "python/_autosummary/mlx.core.fft.rfft2", "python/_autosummary/mlx.core.fft.rfftn", "python/_autosummary/mlx.core.flatten", "python/_autosummary/mlx.core.floor", "python/_autosummary/mlx.core.floor_divide", "python/_autosummary/mlx.core.full", "python/_autosummary/mlx.core.gather_mm", "python/_autosummary/mlx.core.gather_qmm", "python/_autosummary/mlx.core.grad", "python/_autosummary/mlx.core.greater", "python/_autosummary/mlx.core.greater_equal", "python/_autosummary/mlx.core.hadamard_transform", "python/_autosummary/mlx.core.identity", "python/_autosummary/mlx.core.imag", "python/_autosummary/mlx.core.inner", "python/_autosummary/mlx.core.isclose", "python/_autosummary/mlx.core.isfinite", "python/_autosummary/mlx.core.isinf", "python/_autosummary/mlx.core.isnan", "python/_autosummary/mlx.core.isneginf", "python/_autosummary/mlx.core.isposinf", "python/_autosummary/mlx.core.issubdtype", "python/_autosummary/mlx.core.jvp", "python/_autosummary/mlx.core.left_shift", "python/_autosummary/mlx.core.less", "python/_autosummary/mlx.core.less_equal", "python/_autosummary/mlx.core.linalg.cholesky", "python/_autosummary/mlx.core.linalg.cholesky_inv", "python/_autosummary/mlx.core.linalg.cross", "python/_autosummary/mlx.core.linalg.eigh", "python/_autosummary/mlx.core.linalg.eigvalsh", "python/_autosummary/mlx.core.linalg.inv", "python/_autosummary/mlx.core.linalg.norm", "python/_autosummary/mlx.core.linalg.qr", "python/_autosummary/mlx.core.linalg.svd", "python/_autosummary/mlx.core.linalg.tri_inv", "python/_autosummary/mlx.core.linspace", "python/_autosummary/mlx.core.load", "python/_autosummary/mlx.core.log", "python/_autosummary/mlx.core.log10", "python/_autosummary/mlx.core.log1p", "python/_autosummary/mlx.core.log2", "python/_autosummary/mlx.core.logaddexp", "python/_autosummary/mlx.core.logical_and", "python/_autosummary/mlx.core.logical_not", "python/_autosummary/mlx.core.logical_or", "python/_autosummary/mlx.core.logsumexp", "python/_autosummary/mlx.core.matmul", "python/_autosummary/mlx.core.max", "python/_autosummary/mlx.core.maximum", "python/_autosummary/mlx.core.mean", "python/_autosummary/mlx.core.meshgrid", "python/_autosummary/mlx.core.metal.clear_cache", "python/_autosummary/mlx.core.metal.device_info", "python/_autosummary/mlx.core.metal.get_active_memory", "python/_autosummary/mlx.core.metal.get_cache_memory", "python/_autosummary/mlx.core.metal.get_peak_memory", "python/_autosummary/mlx.core.metal.is_available", "python/_autosummary/mlx.core.metal.reset_peak_memory", "python/_autosummary/mlx.core.metal.set_cache_limit", "python/_autosummary/mlx.core.metal.set_memory_limit", "python/_autosummary/mlx.core.metal.set_wired_limit", "python/_autosummary/mlx.core.metal.start_capture", "python/_autosummary/mlx.core.metal.stop_capture", "python/_autosummary/mlx.core.min", "python/_autosummary/mlx.core.minimum", "python/_autosummary/mlx.core.moveaxis", "python/_autosummary/mlx.core.multiply", "python/_autosummary/mlx.core.nan_to_num", "python/_autosummary/mlx.core.negative", "python/_autosummary/mlx.core.new_stream", "python/_autosummary/mlx.core.not_equal", "python/_autosummary/mlx.core.ones", "python/_autosummary/mlx.core.ones_like", "python/_autosummary/mlx.core.outer", "python/_autosummary/mlx.core.pad", "python/_autosummary/mlx.core.partition", "python/_autosummary/mlx.core.power", "python/_autosummary/mlx.core.prod", "python/_autosummary/mlx.core.put_along_axis", "python/_autosummary/mlx.core.quantize", "python/_autosummary/mlx.core.quantized_matmul", "python/_autosummary/mlx.core.radians", "python/_autosummary/mlx.core.random.bernoulli", "python/_autosummary/mlx.core.random.categorical", "python/_autosummary/mlx.core.random.gumbel", "python/_autosummary/mlx.core.random.key", "python/_autosummary/mlx.core.random.laplace", "python/_autosummary/mlx.core.random.multivariate_normal", "python/_autosummary/mlx.core.random.normal", "python/_autosummary/mlx.core.random.permutation", "python/_autosummary/mlx.core.random.randint", "python/_autosummary/mlx.core.random.seed", "python/_autosummary/mlx.core.random.split", "python/_autosummary/mlx.core.random.truncated_normal", "python/_autosummary/mlx.core.random.uniform", "python/_autosummary/mlx.core.real", "python/_autosummary/mlx.core.reciprocal", "python/_autosummary/mlx.core.remainder", "python/_autosummary/mlx.core.repeat", "python/_autosummary/mlx.core.reshape", "python/_autosummary/mlx.core.right_shift", "python/_autosummary/mlx.core.roll", "python/_autosummary/mlx.core.round", "python/_autosummary/mlx.core.rsqrt", "python/_autosummary/mlx.core.save", "python/_autosummary/mlx.core.save_gguf", "python/_autosummary/mlx.core.save_safetensors", "python/_autosummary/mlx.core.savez", "python/_autosummary/mlx.core.savez_compressed", "python/_autosummary/mlx.core.set_default_device", "python/_autosummary/mlx.core.set_default_stream", "python/_autosummary/mlx.core.sigmoid", "python/_autosummary/mlx.core.sign", "python/_autosummary/mlx.core.sin", "python/_autosummary/mlx.core.sinh", "python/_autosummary/mlx.core.softmax", "python/_autosummary/mlx.core.sort", "python/_autosummary/mlx.core.split", "python/_autosummary/mlx.core.sqrt", "python/_autosummary/mlx.core.square", "python/_autosummary/mlx.core.squeeze", "python/_autosummary/mlx.core.stack", "python/_autosummary/mlx.core.std", "python/_autosummary/mlx.core.stop_gradient", "python/_autosummary/mlx.core.stream", "python/_autosummary/mlx.core.subtract", "python/_autosummary/mlx.core.sum", "python/_autosummary/mlx.core.swapaxes", "python/_autosummary/mlx.core.synchronize", "python/_autosummary/mlx.core.take", "python/_autosummary/mlx.core.take_along_axis", "python/_autosummary/mlx.core.tan", "python/_autosummary/mlx.core.tanh", "python/_autosummary/mlx.core.tensordot", "python/_autosummary/mlx.core.tile", "python/_autosummary/mlx.core.topk", "python/_autosummary/mlx.core.trace", "python/_autosummary/mlx.core.transpose", "python/_autosummary/mlx.core.tri", "python/_autosummary/mlx.core.tril", "python/_autosummary/mlx.core.triu", "python/_autosummary/mlx.core.value_and_grad", "python/_autosummary/mlx.core.var", "python/_autosummary/mlx.core.view", "python/_autosummary/mlx.core.vjp", "python/_autosummary/mlx.core.vmap", "python/_autosummary/mlx.core.where", "python/_autosummary/mlx.core.zeros", "python/_autosummary/mlx.core.zeros_like", "python/_autosummary/mlx.nn.quantize", "python/_autosummary/mlx.nn.value_and_grad", "python/_autosummary/mlx.optimizers.clip_grad_norm", "python/_autosummary/mlx.utils.tree_flatten", "python/_autosummary/mlx.utils.tree_map", "python/_autosummary/mlx.utils.tree_map_with_path", "python/_autosummary/mlx.utils.tree_reduce", "python/_autosummary/mlx.utils.tree_unflatten", "python/_autosummary/stream_class", "python/array", "python/data_types", "python/devices_and_streams", "python/distributed", "python/fast", "python/fft", "python/linalg", "python/metal", "python/nn", "python/nn/_autosummary/mlx.nn.ALiBi", "python/nn/_autosummary/mlx.nn.AvgPool1d", "python/nn/_autosummary/mlx.nn.AvgPool2d", "python/nn/_autosummary/mlx.nn.BatchNorm", "python/nn/_autosummary/mlx.nn.CELU", "python/nn/_autosummary/mlx.nn.Conv1d", "python/nn/_autosummary/mlx.nn.Conv2d", "python/nn/_autosummary/mlx.nn.Conv3d", "python/nn/_autosummary/mlx.nn.ConvTranspose1d", "python/nn/_autosummary/mlx.nn.ConvTranspose2d", "python/nn/_autosummary/mlx.nn.ConvTranspose3d", "python/nn/_autosummary/mlx.nn.Dropout", "python/nn/_autosummary/mlx.nn.Dropout2d", "python/nn/_autosummary/mlx.nn.Dropout3d", "python/nn/_autosummary/mlx.nn.ELU", "python/nn/_autosummary/mlx.nn.Embedding", "python/nn/_autosummary/mlx.nn.GELU", "python/nn/_autosummary/mlx.nn.GLU", "python/nn/_autosummary/mlx.nn.GRU", "python/nn/_autosummary/mlx.nn.GroupNorm", "python/nn/_autosummary/mlx.nn.HardShrink", "python/nn/_autosummary/mlx.nn.HardTanh", "python/nn/_autosummary/mlx.nn.Hardswish", "python/nn/_autosummary/mlx.nn.InstanceNorm", "python/nn/_autosummary/mlx.nn.LSTM", "python/nn/_autosummary/mlx.nn.LayerNorm", "python/nn/_autosummary/mlx.nn.LeakyReLU", "python/nn/_autosummary/mlx.nn.Linear", "python/nn/_autosummary/mlx.nn.LogSigmoid", "python/nn/_autosummary/mlx.nn.LogSoftmax", "python/nn/_autosummary/mlx.nn.MaxPool1d", "python/nn/_autosummary/mlx.nn.MaxPool2d", "python/nn/_autosummary/mlx.nn.Mish", "python/nn/_autosummary/mlx.nn.Module.apply", "python/nn/_autosummary/mlx.nn.Module.apply_to_modules", "python/nn/_autosummary/mlx.nn.Module.children", "python/nn/_autosummary/mlx.nn.Module.eval", "python/nn/_autosummary/mlx.nn.Module.filter_and_map", "python/nn/_autosummary/mlx.nn.Module.freeze", "python/nn/_autosummary/mlx.nn.Module.leaf_modules", "python/nn/_autosummary/mlx.nn.Module.load_weights", "python/nn/_autosummary/mlx.nn.Module.modules", "python/nn/_autosummary/mlx.nn.Module.named_modules", "python/nn/_autosummary/mlx.nn.Module.parameters", "python/nn/_autosummary/mlx.nn.Module.save_weights", "python/nn/_autosummary/mlx.nn.Module.set_dtype", "python/nn/_autosummary/mlx.nn.Module.state", "python/nn/_autosummary/mlx.nn.Module.train", "python/nn/_autosummary/mlx.nn.Module.trainable_parameters", "python/nn/_autosummary/mlx.nn.Module.training", "python/nn/_autosummary/mlx.nn.Module.unfreeze", "python/nn/_autosummary/mlx.nn.Module.update", "python/nn/_autosummary/mlx.nn.Module.update_modules", "python/nn/_autosummary/mlx.nn.MultiHeadAttention", "python/nn/_autosummary/mlx.nn.PReLU", "python/nn/_autosummary/mlx.nn.QuantizedEmbedding", "python/nn/_autosummary/mlx.nn.QuantizedLinear", "python/nn/_autosummary/mlx.nn.RMSNorm", "python/nn/_autosummary/mlx.nn.RNN", "python/nn/_autosummary/mlx.nn.ReLU", "python/nn/_autosummary/mlx.nn.ReLU6", "python/nn/_autosummary/mlx.nn.RoPE", "python/nn/_autosummary/mlx.nn.SELU", "python/nn/_autosummary/mlx.nn.Sequential", "python/nn/_autosummary/mlx.nn.SiLU", "python/nn/_autosummary/mlx.nn.Sigmoid", "python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding", "python/nn/_autosummary/mlx.nn.Softmax", "python/nn/_autosummary/mlx.nn.Softmin", "python/nn/_autosummary/mlx.nn.Softplus", "python/nn/_autosummary/mlx.nn.Softshrink", "python/nn/_autosummary/mlx.nn.Softsign", "python/nn/_autosummary/mlx.nn.Step", "python/nn/_autosummary/mlx.nn.Tanh", "python/nn/_autosummary/mlx.nn.Transformer", "python/nn/_autosummary/mlx.nn.Upsample", "python/nn/_autosummary/mlx.nn.init.constant", "python/nn/_autosummary/mlx.nn.init.glorot_normal", "python/nn/_autosummary/mlx.nn.init.glorot_uniform", "python/nn/_autosummary/mlx.nn.init.he_normal", "python/nn/_autosummary/mlx.nn.init.he_uniform", "python/nn/_autosummary/mlx.nn.init.identity", "python/nn/_autosummary/mlx.nn.init.normal", "python/nn/_autosummary/mlx.nn.init.uniform", "python/nn/_autosummary_functions/mlx.nn.celu", "python/nn/_autosummary_functions/mlx.nn.elu", "python/nn/_autosummary_functions/mlx.nn.gelu", "python/nn/_autosummary_functions/mlx.nn.gelu_approx", "python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx", "python/nn/_autosummary_functions/mlx.nn.glu", "python/nn/_autosummary_functions/mlx.nn.hard_shrink", "python/nn/_autosummary_functions/mlx.nn.hard_tanh", "python/nn/_autosummary_functions/mlx.nn.hardswish", "python/nn/_autosummary_functions/mlx.nn.leaky_relu", "python/nn/_autosummary_functions/mlx.nn.log_sigmoid", "python/nn/_autosummary_functions/mlx.nn.log_softmax", "python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy", "python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss", "python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy", "python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss", "python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss", "python/nn/_autosummary_functions/mlx.nn.losses.huber_loss", "python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss", "python/nn/_autosummary_functions/mlx.nn.losses.l1_loss", "python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss", "python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss", "python/nn/_autosummary_functions/mlx.nn.losses.mse_loss", "python/nn/_autosummary_functions/mlx.nn.losses.nll_loss", "python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss", "python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss", "python/nn/_autosummary_functions/mlx.nn.mish", "python/nn/_autosummary_functions/mlx.nn.prelu", "python/nn/_autosummary_functions/mlx.nn.relu", "python/nn/_autosummary_functions/mlx.nn.relu6", "python/nn/_autosummary_functions/mlx.nn.selu", "python/nn/_autosummary_functions/mlx.nn.sigmoid", "python/nn/_autosummary_functions/mlx.nn.silu", "python/nn/_autosummary_functions/mlx.nn.softmax", "python/nn/_autosummary_functions/mlx.nn.softmin", "python/nn/_autosummary_functions/mlx.nn.softplus", "python/nn/_autosummary_functions/mlx.nn.softshrink", "python/nn/_autosummary_functions/mlx.nn.step", "python/nn/_autosummary_functions/mlx.nn.tanh", "python/nn/functions", "python/nn/init", "python/nn/layers", "python/nn/losses", "python/nn/module", "python/ops", "python/optimizers", "python/optimizers/_autosummary/mlx.optimizers.AdaDelta", "python/optimizers/_autosummary/mlx.optimizers.Adafactor", "python/optimizers/_autosummary/mlx.optimizers.Adagrad", "python/optimizers/_autosummary/mlx.optimizers.Adam", "python/optimizers/_autosummary/mlx.optimizers.AdamW", "python/optimizers/_autosummary/mlx.optimizers.Adamax", "python/optimizers/_autosummary/mlx.optimizers.Lion", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.init", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.state", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.update", "python/optimizers/_autosummary/mlx.optimizers.RMSprop", "python/optimizers/_autosummary/mlx.optimizers.SGD", "python/optimizers/_autosummary/mlx.optimizers.cosine_decay", "python/optimizers/_autosummary/mlx.optimizers.exponential_decay", "python/optimizers/_autosummary/mlx.optimizers.join_schedules", "python/optimizers/_autosummary/mlx.optimizers.linear_schedule", "python/optimizers/_autosummary/mlx.optimizers.step_decay", "python/optimizers/common_optimizers", "python/optimizers/optimizer", "python/optimizers/schedulers", "python/random", "python/transforms", "python/tree_utils", "usage/compile", "usage/distributed", "usage/function_transforms", "usage/indexing", "usage/lazy_evaluation", "usage/numpy", "usage/quick_start", "usage/saving_and_loading", "usage/unified_memory", "usage/using_streams"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["cpp/ops.rst", "dev/custom_metal_kernels.rst", "dev/extensions.rst", "dev/metal_debugger.rst", "examples/linear_regression.rst", "examples/llama-inference.rst", "examples/mlp.rst", "index.rst", "install.rst", "python/_autosummary/mlx.core.Device.rst", "python/_autosummary/mlx.core.Dtype.rst", "python/_autosummary/mlx.core.DtypeCategory.rst", "python/_autosummary/mlx.core.abs.rst", "python/_autosummary/mlx.core.add.rst", "python/_autosummary/mlx.core.addmm.rst", "python/_autosummary/mlx.core.all.rst", "python/_autosummary/mlx.core.allclose.rst", "python/_autosummary/mlx.core.any.rst", "python/_autosummary/mlx.core.arange.rst", "python/_autosummary/mlx.core.arccos.rst", "python/_autosummary/mlx.core.arccosh.rst", "python/_autosummary/mlx.core.arcsin.rst", "python/_autosummary/mlx.core.arcsinh.rst", "python/_autosummary/mlx.core.arctan.rst", "python/_autosummary/mlx.core.arctan2.rst", "python/_autosummary/mlx.core.arctanh.rst", "python/_autosummary/mlx.core.argmax.rst", "python/_autosummary/mlx.core.argmin.rst", "python/_autosummary/mlx.core.argpartition.rst", "python/_autosummary/mlx.core.argsort.rst", "python/_autosummary/mlx.core.array.rst", "python/_autosummary/mlx.core.array.T.rst", "python/_autosummary/mlx.core.array.abs.rst", "python/_autosummary/mlx.core.array.all.rst", "python/_autosummary/mlx.core.array.any.rst", "python/_autosummary/mlx.core.array.argmax.rst", "python/_autosummary/mlx.core.array.argmin.rst", "python/_autosummary/mlx.core.array.astype.rst", "python/_autosummary/mlx.core.array.at.rst", "python/_autosummary/mlx.core.array.conj.rst", "python/_autosummary/mlx.core.array.cos.rst", "python/_autosummary/mlx.core.array.cummax.rst", "python/_autosummary/mlx.core.array.cummin.rst", "python/_autosummary/mlx.core.array.cumprod.rst", "python/_autosummary/mlx.core.array.cumsum.rst", "python/_autosummary/mlx.core.array.diag.rst", "python/_autosummary/mlx.core.array.diagonal.rst", "python/_autosummary/mlx.core.array.dtype.rst", "python/_autosummary/mlx.core.array.exp.rst", "python/_autosummary/mlx.core.array.flatten.rst", "python/_autosummary/mlx.core.array.item.rst", "python/_autosummary/mlx.core.array.itemsize.rst", "python/_autosummary/mlx.core.array.log.rst", "python/_autosummary/mlx.core.array.log10.rst", "python/_autosummary/mlx.core.array.log1p.rst", "python/_autosummary/mlx.core.array.log2.rst", "python/_autosummary/mlx.core.array.logsumexp.rst", "python/_autosummary/mlx.core.array.max.rst", "python/_autosummary/mlx.core.array.mean.rst", "python/_autosummary/mlx.core.array.min.rst", "python/_autosummary/mlx.core.array.moveaxis.rst", "python/_autosummary/mlx.core.array.nbytes.rst", "python/_autosummary/mlx.core.array.ndim.rst", "python/_autosummary/mlx.core.array.prod.rst", "python/_autosummary/mlx.core.array.reciprocal.rst", "python/_autosummary/mlx.core.array.reshape.rst", "python/_autosummary/mlx.core.array.round.rst", "python/_autosummary/mlx.core.array.rsqrt.rst", "python/_autosummary/mlx.core.array.shape.rst", "python/_autosummary/mlx.core.array.sin.rst", "python/_autosummary/mlx.core.array.size.rst", "python/_autosummary/mlx.core.array.split.rst", "python/_autosummary/mlx.core.array.sqrt.rst", "python/_autosummary/mlx.core.array.square.rst", "python/_autosummary/mlx.core.array.squeeze.rst", "python/_autosummary/mlx.core.array.std.rst", "python/_autosummary/mlx.core.array.sum.rst", "python/_autosummary/mlx.core.array.swapaxes.rst", "python/_autosummary/mlx.core.array.tolist.rst", "python/_autosummary/mlx.core.array.transpose.rst", "python/_autosummary/mlx.core.array.var.rst", "python/_autosummary/mlx.core.array.view.rst", "python/_autosummary/mlx.core.array_equal.rst", "python/_autosummary/mlx.core.as_strided.rst", "python/_autosummary/mlx.core.atleast_1d.rst", "python/_autosummary/mlx.core.atleast_2d.rst", "python/_autosummary/mlx.core.atleast_3d.rst", "python/_autosummary/mlx.core.bitwise_and.rst", "python/_autosummary/mlx.core.bitwise_or.rst", "python/_autosummary/mlx.core.bitwise_xor.rst", "python/_autosummary/mlx.core.block_masked_mm.rst", "python/_autosummary/mlx.core.broadcast_to.rst", "python/_autosummary/mlx.core.ceil.rst", "python/_autosummary/mlx.core.clip.rst", "python/_autosummary/mlx.core.compile.rst", "python/_autosummary/mlx.core.concatenate.rst", "python/_autosummary/mlx.core.conj.rst", "python/_autosummary/mlx.core.conjugate.rst", "python/_autosummary/mlx.core.conv1d.rst", "python/_autosummary/mlx.core.conv2d.rst", "python/_autosummary/mlx.core.conv3d.rst", "python/_autosummary/mlx.core.conv_general.rst", "python/_autosummary/mlx.core.conv_transpose1d.rst", "python/_autosummary/mlx.core.conv_transpose2d.rst", "python/_autosummary/mlx.core.conv_transpose3d.rst", "python/_autosummary/mlx.core.convolve.rst", "python/_autosummary/mlx.core.cos.rst", "python/_autosummary/mlx.core.cosh.rst", "python/_autosummary/mlx.core.cummax.rst", "python/_autosummary/mlx.core.cummin.rst", "python/_autosummary/mlx.core.cumprod.rst", "python/_autosummary/mlx.core.cumsum.rst", "python/_autosummary/mlx.core.custom_function.rst", "python/_autosummary/mlx.core.default_device.rst", "python/_autosummary/mlx.core.default_stream.rst", "python/_autosummary/mlx.core.degrees.rst", "python/_autosummary/mlx.core.dequantize.rst", "python/_autosummary/mlx.core.diag.rst", "python/_autosummary/mlx.core.diagonal.rst", "python/_autosummary/mlx.core.disable_compile.rst", "python/_autosummary/mlx.core.distributed.Group.rst", "python/_autosummary/mlx.core.distributed.all_gather.rst", "python/_autosummary/mlx.core.distributed.all_sum.rst", "python/_autosummary/mlx.core.distributed.init.rst", "python/_autosummary/mlx.core.distributed.is_available.rst", "python/_autosummary/mlx.core.distributed.recv.rst", "python/_autosummary/mlx.core.distributed.recv_like.rst", "python/_autosummary/mlx.core.distributed.send.rst", "python/_autosummary/mlx.core.divide.rst", "python/_autosummary/mlx.core.divmod.rst", "python/_autosummary/mlx.core.einsum.rst", "python/_autosummary/mlx.core.einsum_path.rst", "python/_autosummary/mlx.core.enable_compile.rst", "python/_autosummary/mlx.core.equal.rst", "python/_autosummary/mlx.core.erf.rst", "python/_autosummary/mlx.core.erfinv.rst", "python/_autosummary/mlx.core.eval.rst", "python/_autosummary/mlx.core.exp.rst", "python/_autosummary/mlx.core.expand_dims.rst", "python/_autosummary/mlx.core.expm1.rst", "python/_autosummary/mlx.core.eye.rst", "python/_autosummary/mlx.core.fast.affine_quantize.rst", "python/_autosummary/mlx.core.fast.layer_norm.rst", "python/_autosummary/mlx.core.fast.metal_kernel.rst", "python/_autosummary/mlx.core.fast.rms_norm.rst", "python/_autosummary/mlx.core.fast.rope.rst", "python/_autosummary/mlx.core.fast.scaled_dot_product_attention.rst", "python/_autosummary/mlx.core.fft.fft.rst", "python/_autosummary/mlx.core.fft.fft2.rst", "python/_autosummary/mlx.core.fft.fftn.rst", "python/_autosummary/mlx.core.fft.ifft.rst", "python/_autosummary/mlx.core.fft.ifft2.rst", "python/_autosummary/mlx.core.fft.ifftn.rst", "python/_autosummary/mlx.core.fft.irfft.rst", "python/_autosummary/mlx.core.fft.irfft2.rst", "python/_autosummary/mlx.core.fft.irfftn.rst", "python/_autosummary/mlx.core.fft.rfft.rst", "python/_autosummary/mlx.core.fft.rfft2.rst", "python/_autosummary/mlx.core.fft.rfftn.rst", "python/_autosummary/mlx.core.flatten.rst", "python/_autosummary/mlx.core.floor.rst", "python/_autosummary/mlx.core.floor_divide.rst", "python/_autosummary/mlx.core.full.rst", "python/_autosummary/mlx.core.gather_mm.rst", "python/_autosummary/mlx.core.gather_qmm.rst", "python/_autosummary/mlx.core.grad.rst", "python/_autosummary/mlx.core.greater.rst", "python/_autosummary/mlx.core.greater_equal.rst", "python/_autosummary/mlx.core.hadamard_transform.rst", "python/_autosummary/mlx.core.identity.rst", "python/_autosummary/mlx.core.imag.rst", "python/_autosummary/mlx.core.inner.rst", "python/_autosummary/mlx.core.isclose.rst", "python/_autosummary/mlx.core.isfinite.rst", "python/_autosummary/mlx.core.isinf.rst", "python/_autosummary/mlx.core.isnan.rst", "python/_autosummary/mlx.core.isneginf.rst", "python/_autosummary/mlx.core.isposinf.rst", "python/_autosummary/mlx.core.issubdtype.rst", "python/_autosummary/mlx.core.jvp.rst", "python/_autosummary/mlx.core.left_shift.rst", "python/_autosummary/mlx.core.less.rst", "python/_autosummary/mlx.core.less_equal.rst", "python/_autosummary/mlx.core.linalg.cholesky.rst", "python/_autosummary/mlx.core.linalg.cholesky_inv.rst", "python/_autosummary/mlx.core.linalg.cross.rst", "python/_autosummary/mlx.core.linalg.eigh.rst", "python/_autosummary/mlx.core.linalg.eigvalsh.rst", "python/_autosummary/mlx.core.linalg.inv.rst", "python/_autosummary/mlx.core.linalg.norm.rst", "python/_autosummary/mlx.core.linalg.qr.rst", "python/_autosummary/mlx.core.linalg.svd.rst", "python/_autosummary/mlx.core.linalg.tri_inv.rst", "python/_autosummary/mlx.core.linspace.rst", "python/_autosummary/mlx.core.load.rst", "python/_autosummary/mlx.core.log.rst", "python/_autosummary/mlx.core.log10.rst", "python/_autosummary/mlx.core.log1p.rst", "python/_autosummary/mlx.core.log2.rst", "python/_autosummary/mlx.core.logaddexp.rst", "python/_autosummary/mlx.core.logical_and.rst", "python/_autosummary/mlx.core.logical_not.rst", "python/_autosummary/mlx.core.logical_or.rst", "python/_autosummary/mlx.core.logsumexp.rst", "python/_autosummary/mlx.core.matmul.rst", "python/_autosummary/mlx.core.max.rst", "python/_autosummary/mlx.core.maximum.rst", "python/_autosummary/mlx.core.mean.rst", "python/_autosummary/mlx.core.meshgrid.rst", "python/_autosummary/mlx.core.metal.clear_cache.rst", "python/_autosummary/mlx.core.metal.device_info.rst", "python/_autosummary/mlx.core.metal.get_active_memory.rst", "python/_autosummary/mlx.core.metal.get_cache_memory.rst", "python/_autosummary/mlx.core.metal.get_peak_memory.rst", "python/_autosummary/mlx.core.metal.is_available.rst", "python/_autosummary/mlx.core.metal.reset_peak_memory.rst", "python/_autosummary/mlx.core.metal.set_cache_limit.rst", "python/_autosummary/mlx.core.metal.set_memory_limit.rst", "python/_autosummary/mlx.core.metal.set_wired_limit.rst", "python/_autosummary/mlx.core.metal.start_capture.rst", "python/_autosummary/mlx.core.metal.stop_capture.rst", "python/_autosummary/mlx.core.min.rst", "python/_autosummary/mlx.core.minimum.rst", "python/_autosummary/mlx.core.moveaxis.rst", "python/_autosummary/mlx.core.multiply.rst", "python/_autosummary/mlx.core.nan_to_num.rst", "python/_autosummary/mlx.core.negative.rst", "python/_autosummary/mlx.core.new_stream.rst", "python/_autosummary/mlx.core.not_equal.rst", "python/_autosummary/mlx.core.ones.rst", "python/_autosummary/mlx.core.ones_like.rst", "python/_autosummary/mlx.core.outer.rst", "python/_autosummary/mlx.core.pad.rst", "python/_autosummary/mlx.core.partition.rst", "python/_autosummary/mlx.core.power.rst", "python/_autosummary/mlx.core.prod.rst", "python/_autosummary/mlx.core.put_along_axis.rst", "python/_autosummary/mlx.core.quantize.rst", "python/_autosummary/mlx.core.quantized_matmul.rst", "python/_autosummary/mlx.core.radians.rst", "python/_autosummary/mlx.core.random.bernoulli.rst", "python/_autosummary/mlx.core.random.categorical.rst", "python/_autosummary/mlx.core.random.gumbel.rst", "python/_autosummary/mlx.core.random.key.rst", "python/_autosummary/mlx.core.random.laplace.rst", "python/_autosummary/mlx.core.random.multivariate_normal.rst", "python/_autosummary/mlx.core.random.normal.rst", "python/_autosummary/mlx.core.random.permutation.rst", "python/_autosummary/mlx.core.random.randint.rst", "python/_autosummary/mlx.core.random.seed.rst", "python/_autosummary/mlx.core.random.split.rst", "python/_autosummary/mlx.core.random.truncated_normal.rst", "python/_autosummary/mlx.core.random.uniform.rst", "python/_autosummary/mlx.core.real.rst", "python/_autosummary/mlx.core.reciprocal.rst", "python/_autosummary/mlx.core.remainder.rst", "python/_autosummary/mlx.core.repeat.rst", "python/_autosummary/mlx.core.reshape.rst", "python/_autosummary/mlx.core.right_shift.rst", "python/_autosummary/mlx.core.roll.rst", "python/_autosummary/mlx.core.round.rst", "python/_autosummary/mlx.core.rsqrt.rst", "python/_autosummary/mlx.core.save.rst", "python/_autosummary/mlx.core.save_gguf.rst", "python/_autosummary/mlx.core.save_safetensors.rst", "python/_autosummary/mlx.core.savez.rst", "python/_autosummary/mlx.core.savez_compressed.rst", "python/_autosummary/mlx.core.set_default_device.rst", "python/_autosummary/mlx.core.set_default_stream.rst", "python/_autosummary/mlx.core.sigmoid.rst", "python/_autosummary/mlx.core.sign.rst", "python/_autosummary/mlx.core.sin.rst", "python/_autosummary/mlx.core.sinh.rst", "python/_autosummary/mlx.core.softmax.rst", "python/_autosummary/mlx.core.sort.rst", "python/_autosummary/mlx.core.split.rst", "python/_autosummary/mlx.core.sqrt.rst", "python/_autosummary/mlx.core.square.rst", "python/_autosummary/mlx.core.squeeze.rst", "python/_autosummary/mlx.core.stack.rst", "python/_autosummary/mlx.core.std.rst", "python/_autosummary/mlx.core.stop_gradient.rst", "python/_autosummary/mlx.core.stream.rst", "python/_autosummary/mlx.core.subtract.rst", "python/_autosummary/mlx.core.sum.rst", "python/_autosummary/mlx.core.swapaxes.rst", "python/_autosummary/mlx.core.synchronize.rst", "python/_autosummary/mlx.core.take.rst", "python/_autosummary/mlx.core.take_along_axis.rst", "python/_autosummary/mlx.core.tan.rst", "python/_autosummary/mlx.core.tanh.rst", "python/_autosummary/mlx.core.tensordot.rst", "python/_autosummary/mlx.core.tile.rst", "python/_autosummary/mlx.core.topk.rst", "python/_autosummary/mlx.core.trace.rst", "python/_autosummary/mlx.core.transpose.rst", "python/_autosummary/mlx.core.tri.rst", "python/_autosummary/mlx.core.tril.rst", "python/_autosummary/mlx.core.triu.rst", "python/_autosummary/mlx.core.value_and_grad.rst", "python/_autosummary/mlx.core.var.rst", "python/_autosummary/mlx.core.view.rst", "python/_autosummary/mlx.core.vjp.rst", "python/_autosummary/mlx.core.vmap.rst", "python/_autosummary/mlx.core.where.rst", "python/_autosummary/mlx.core.zeros.rst", "python/_autosummary/mlx.core.zeros_like.rst", "python/_autosummary/mlx.nn.quantize.rst", "python/_autosummary/mlx.nn.value_and_grad.rst", "python/_autosummary/mlx.optimizers.clip_grad_norm.rst", "python/_autosummary/mlx.utils.tree_flatten.rst", "python/_autosummary/mlx.utils.tree_map.rst", "python/_autosummary/mlx.utils.tree_map_with_path.rst", "python/_autosummary/mlx.utils.tree_reduce.rst", "python/_autosummary/mlx.utils.tree_unflatten.rst", "python/_autosummary/stream_class.rst", "python/array.rst", "python/data_types.rst", "python/devices_and_streams.rst", "python/distributed.rst", "python/fast.rst", "python/fft.rst", "python/linalg.rst", "python/metal.rst", "python/nn.rst", "python/nn/_autosummary/mlx.nn.ALiBi.rst", "python/nn/_autosummary/mlx.nn.AvgPool1d.rst", "python/nn/_autosummary/mlx.nn.AvgPool2d.rst", "python/nn/_autosummary/mlx.nn.BatchNorm.rst", "python/nn/_autosummary/mlx.nn.CELU.rst", "python/nn/_autosummary/mlx.nn.Conv1d.rst", "python/nn/_autosummary/mlx.nn.Conv2d.rst", "python/nn/_autosummary/mlx.nn.Conv3d.rst", "python/nn/_autosummary/mlx.nn.ConvTranspose1d.rst", "python/nn/_autosummary/mlx.nn.ConvTranspose2d.rst", "python/nn/_autosummary/mlx.nn.ConvTranspose3d.rst", "python/nn/_autosummary/mlx.nn.Dropout.rst", "python/nn/_autosummary/mlx.nn.Dropout2d.rst", "python/nn/_autosummary/mlx.nn.Dropout3d.rst", "python/nn/_autosummary/mlx.nn.ELU.rst", "python/nn/_autosummary/mlx.nn.Embedding.rst", "python/nn/_autosummary/mlx.nn.GELU.rst", "python/nn/_autosummary/mlx.nn.GLU.rst", "python/nn/_autosummary/mlx.nn.GRU.rst", "python/nn/_autosummary/mlx.nn.GroupNorm.rst", "python/nn/_autosummary/mlx.nn.HardShrink.rst", "python/nn/_autosummary/mlx.nn.HardTanh.rst", "python/nn/_autosummary/mlx.nn.Hardswish.rst", "python/nn/_autosummary/mlx.nn.InstanceNorm.rst", "python/nn/_autosummary/mlx.nn.LSTM.rst", "python/nn/_autosummary/mlx.nn.LayerNorm.rst", "python/nn/_autosummary/mlx.nn.LeakyReLU.rst", "python/nn/_autosummary/mlx.nn.Linear.rst", "python/nn/_autosummary/mlx.nn.LogSigmoid.rst", "python/nn/_autosummary/mlx.nn.LogSoftmax.rst", "python/nn/_autosummary/mlx.nn.MaxPool1d.rst", "python/nn/_autosummary/mlx.nn.MaxPool2d.rst", "python/nn/_autosummary/mlx.nn.Mish.rst", "python/nn/_autosummary/mlx.nn.Module.apply.rst", "python/nn/_autosummary/mlx.nn.Module.apply_to_modules.rst", "python/nn/_autosummary/mlx.nn.Module.children.rst", "python/nn/_autosummary/mlx.nn.Module.eval.rst", "python/nn/_autosummary/mlx.nn.Module.filter_and_map.rst", "python/nn/_autosummary/mlx.nn.Module.freeze.rst", "python/nn/_autosummary/mlx.nn.Module.leaf_modules.rst", "python/nn/_autosummary/mlx.nn.Module.load_weights.rst", "python/nn/_autosummary/mlx.nn.Module.modules.rst", "python/nn/_autosummary/mlx.nn.Module.named_modules.rst", "python/nn/_autosummary/mlx.nn.Module.parameters.rst", "python/nn/_autosummary/mlx.nn.Module.save_weights.rst", "python/nn/_autosummary/mlx.nn.Module.set_dtype.rst", "python/nn/_autosummary/mlx.nn.Module.state.rst", "python/nn/_autosummary/mlx.nn.Module.train.rst", "python/nn/_autosummary/mlx.nn.Module.trainable_parameters.rst", "python/nn/_autosummary/mlx.nn.Module.training.rst", "python/nn/_autosummary/mlx.nn.Module.unfreeze.rst", "python/nn/_autosummary/mlx.nn.Module.update.rst", "python/nn/_autosummary/mlx.nn.Module.update_modules.rst", "python/nn/_autosummary/mlx.nn.MultiHeadAttention.rst", "python/nn/_autosummary/mlx.nn.PReLU.rst", "python/nn/_autosummary/mlx.nn.QuantizedEmbedding.rst", "python/nn/_autosummary/mlx.nn.QuantizedLinear.rst", "python/nn/_autosummary/mlx.nn.RMSNorm.rst", "python/nn/_autosummary/mlx.nn.RNN.rst", "python/nn/_autosummary/mlx.nn.ReLU.rst", "python/nn/_autosummary/mlx.nn.ReLU6.rst", "python/nn/_autosummary/mlx.nn.RoPE.rst", "python/nn/_autosummary/mlx.nn.SELU.rst", "python/nn/_autosummary/mlx.nn.Sequential.rst", "python/nn/_autosummary/mlx.nn.SiLU.rst", "python/nn/_autosummary/mlx.nn.Sigmoid.rst", "python/nn/_autosummary/mlx.nn.SinusoidalPositionalEncoding.rst", "python/nn/_autosummary/mlx.nn.Softmax.rst", "python/nn/_autosummary/mlx.nn.Softmin.rst", "python/nn/_autosummary/mlx.nn.Softplus.rst", "python/nn/_autosummary/mlx.nn.Softshrink.rst", "python/nn/_autosummary/mlx.nn.Softsign.rst", "python/nn/_autosummary/mlx.nn.Step.rst", "python/nn/_autosummary/mlx.nn.Tanh.rst", "python/nn/_autosummary/mlx.nn.Transformer.rst", "python/nn/_autosummary/mlx.nn.Upsample.rst", "python/nn/_autosummary/mlx.nn.init.constant.rst", "python/nn/_autosummary/mlx.nn.init.glorot_normal.rst", "python/nn/_autosummary/mlx.nn.init.glorot_uniform.rst", "python/nn/_autosummary/mlx.nn.init.he_normal.rst", "python/nn/_autosummary/mlx.nn.init.he_uniform.rst", "python/nn/_autosummary/mlx.nn.init.identity.rst", "python/nn/_autosummary/mlx.nn.init.normal.rst", "python/nn/_autosummary/mlx.nn.init.uniform.rst", "python/nn/_autosummary_functions/mlx.nn.celu.rst", "python/nn/_autosummary_functions/mlx.nn.elu.rst", "python/nn/_autosummary_functions/mlx.nn.gelu.rst", "python/nn/_autosummary_functions/mlx.nn.gelu_approx.rst", "python/nn/_autosummary_functions/mlx.nn.gelu_fast_approx.rst", "python/nn/_autosummary_functions/mlx.nn.glu.rst", "python/nn/_autosummary_functions/mlx.nn.hard_shrink.rst", "python/nn/_autosummary_functions/mlx.nn.hard_tanh.rst", "python/nn/_autosummary_functions/mlx.nn.hardswish.rst", "python/nn/_autosummary_functions/mlx.nn.leaky_relu.rst", "python/nn/_autosummary_functions/mlx.nn.log_sigmoid.rst", "python/nn/_autosummary_functions/mlx.nn.log_softmax.rst", "python/nn/_autosummary_functions/mlx.nn.losses.binary_cross_entropy.rst", "python/nn/_autosummary_functions/mlx.nn.losses.cosine_similarity_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.cross_entropy.rst", "python/nn/_autosummary_functions/mlx.nn.losses.gaussian_nll_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.hinge_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.huber_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.kl_div_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.l1_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.log_cosh_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.margin_ranking_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.mse_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.nll_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.smooth_l1_loss.rst", "python/nn/_autosummary_functions/mlx.nn.losses.triplet_loss.rst", "python/nn/_autosummary_functions/mlx.nn.mish.rst", "python/nn/_autosummary_functions/mlx.nn.prelu.rst", "python/nn/_autosummary_functions/mlx.nn.relu.rst", "python/nn/_autosummary_functions/mlx.nn.relu6.rst", "python/nn/_autosummary_functions/mlx.nn.selu.rst", "python/nn/_autosummary_functions/mlx.nn.sigmoid.rst", "python/nn/_autosummary_functions/mlx.nn.silu.rst", "python/nn/_autosummary_functions/mlx.nn.softmax.rst", "python/nn/_autosummary_functions/mlx.nn.softmin.rst", "python/nn/_autosummary_functions/mlx.nn.softplus.rst", "python/nn/_autosummary_functions/mlx.nn.softshrink.rst", "python/nn/_autosummary_functions/mlx.nn.step.rst", "python/nn/_autosummary_functions/mlx.nn.tanh.rst", "python/nn/functions.rst", "python/nn/init.rst", "python/nn/layers.rst", "python/nn/losses.rst", "python/nn/module.rst", "python/ops.rst", "python/optimizers.rst", "python/optimizers/_autosummary/mlx.optimizers.AdaDelta.rst", "python/optimizers/_autosummary/mlx.optimizers.Adafactor.rst", "python/optimizers/_autosummary/mlx.optimizers.Adagrad.rst", "python/optimizers/_autosummary/mlx.optimizers.Adam.rst", "python/optimizers/_autosummary/mlx.optimizers.AdamW.rst", "python/optimizers/_autosummary/mlx.optimizers.Adamax.rst", "python/optimizers/_autosummary/mlx.optimizers.Lion.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.apply_gradients.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.init.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.state.rst", "python/optimizers/_autosummary/mlx.optimizers.Optimizer.update.rst", "python/optimizers/_autosummary/mlx.optimizers.RMSprop.rst", "python/optimizers/_autosummary/mlx.optimizers.SGD.rst", "python/optimizers/_autosummary/mlx.optimizers.cosine_decay.rst", "python/optimizers/_autosummary/mlx.optimizers.exponential_decay.rst", "python/optimizers/_autosummary/mlx.optimizers.join_schedules.rst", "python/optimizers/_autosummary/mlx.optimizers.linear_schedule.rst", "python/optimizers/_autosummary/mlx.optimizers.step_decay.rst", "python/optimizers/common_optimizers.rst", "python/optimizers/optimizer.rst", "python/optimizers/schedulers.rst", "python/random.rst", "python/transforms.rst", "python/tree_utils.rst", "usage/compile.rst", "usage/distributed.rst", "usage/function_transforms.rst", "usage/indexing.rst", "usage/lazy_evaluation.rst", "usage/numpy.rst", "usage/quick_start.rst", "usage/saving_and_loading.rst", "usage/unified_memory.rst", "usage/using_streams.rst"], "indexentries": {"__init__() (array method)": [[30, "mlx.core.array.__init__", false]], "__init__() (custom_function method)": [[112, "mlx.core.custom_function.__init__", false]], "__init__() (device method)": [[9, "mlx.core.Device.__init__", false]], "__init__() (dtype method)": [[10, "mlx.core.Dtype.__init__", false]], "__init__() (dtypecategory method)": [[11, "mlx.core.DtypeCategory.__init__", false]], "__init__() (group method)": [[120, "mlx.core.distributed.Group.__init__", false]], "__init__() (stream method)": [[315, "mlx.core.Stream.__init__", false]], "abs (c++ function)": [[0, "_CPPv43absRK5array14StreamOrDevice", false]], "abs() (array method)": [[32, "mlx.core.array.abs", false]], "abs() (in module mlx.core)": [[12, "mlx.core.abs", false]], "adadelta (class in mlx.optimizers)": [[455, "mlx.optimizers.AdaDelta", false]], "adafactor (class in mlx.optimizers)": [[456, "mlx.optimizers.Adafactor", false]], "adagrad (class in mlx.optimizers)": [[457, "mlx.optimizers.Adagrad", false]], "adam (class in mlx.optimizers)": [[458, "mlx.optimizers.Adam", false]], "adamax (class in mlx.optimizers)": [[460, "mlx.optimizers.Adamax", false]], "adamw (class in mlx.optimizers)": [[459, "mlx.optimizers.AdamW", false]], "add (c++ function)": [[0, "_CPPv43addRK5arrayRK5array14StreamOrDevice", false]], "add() (in module mlx.core)": [[13, "mlx.core.add", false]], "addmm (c++ function)": [[0, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", false]], "addmm() (in module mlx.core)": [[14, "mlx.core.addmm", false]], "affine_quantize() (in module mlx.core.fast)": [[141, "mlx.core.fast.affine_quantize", false]], "alibi (class in mlx.nn)": [[325, "mlx.nn.ALiBi", false]], "all (c++ function)": [[0, "_CPPv43allRK5array14StreamOrDevice", false], [0, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43allRK5arrayb14StreamOrDevice", false], [0, "_CPPv43allRK5arrayib14StreamOrDevice", false]], "all() (array method)": [[33, "mlx.core.array.all", false]], "all() (in module mlx.core)": [[15, "mlx.core.all", false]], "all_gather() (in module mlx.core.distributed)": [[121, "mlx.core.distributed.all_gather", false]], "all_sum() (in module mlx.core.distributed)": [[122, "mlx.core.distributed.all_sum", false]], "allclose (c++ function)": [[0, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", false]], "allclose() (in module mlx.core)": [[16, "mlx.core.allclose", false]], "any (c++ function)": [[0, "_CPPv43anyRK5array14StreamOrDevice", false], [0, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43anyRK5arrayb14StreamOrDevice", false], [0, "_CPPv43anyRK5arrayib14StreamOrDevice", false]], "any() (array method)": [[34, "mlx.core.array.any", false]], "any() (in module mlx.core)": [[17, "mlx.core.any", false]], "apply() (module method)": [[358, "mlx.nn.Module.apply", false]], "apply_gradients() (optimizer method)": [[462, "mlx.optimizers.Optimizer.apply_gradients", false]], "apply_to_modules() (module method)": [[359, "mlx.nn.Module.apply_to_modules", false]], "arange (c++ function)": [[0, "_CPPv46aranged14StreamOrDevice", false], [0, "_CPPv46aranged5Dtype14StreamOrDevice", false], [0, "_CPPv46arangedd14StreamOrDevice", false], [0, "_CPPv46arangedd5Dtype14StreamOrDevice", false], [0, "_CPPv46arangeddd14StreamOrDevice", false], [0, "_CPPv46arangeddd5Dtype14StreamOrDevice", false], [0, "_CPPv46arangei14StreamOrDevice", false], [0, "_CPPv46arangeii14StreamOrDevice", false], [0, "_CPPv46arangeiii14StreamOrDevice", false]], "arange() (in module mlx.core)": [[18, "mlx.core.arange", false]], "arccos (c++ function)": [[0, "_CPPv46arccosRK5array14StreamOrDevice", false]], "arccos() (in module mlx.core)": [[19, "mlx.core.arccos", false]], "arccosh (c++ function)": [[0, "_CPPv47arccoshRK5array14StreamOrDevice", false]], "arccosh() (in module mlx.core)": [[20, "mlx.core.arccosh", false]], "arcsin (c++ function)": [[0, "_CPPv46arcsinRK5array14StreamOrDevice", false]], "arcsin() (in module mlx.core)": [[21, "mlx.core.arcsin", false]], "arcsinh (c++ function)": [[0, "_CPPv47arcsinhRK5array14StreamOrDevice", false]], "arcsinh() (in module mlx.core)": [[22, "mlx.core.arcsinh", false]], "arctan (c++ function)": [[0, "_CPPv46arctanRK5array14StreamOrDevice", false]], "arctan() (in module mlx.core)": [[23, "mlx.core.arctan", false]], "arctan2 (c++ function)": [[0, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", false]], "arctan2() (in module mlx.core)": [[24, "mlx.core.arctan2", false]], "arctanh (c++ function)": [[0, "_CPPv47arctanhRK5array14StreamOrDevice", false]], "arctanh() (in module mlx.core)": [[25, "mlx.core.arctanh", false]], "argmax (c++ function)": [[0, "_CPPv46argmaxRK5array14StreamOrDevice", false], [0, "_CPPv46argmaxRK5arrayb14StreamOrDevice", false], [0, "_CPPv46argmaxRK5arrayib14StreamOrDevice", false]], "argmax() (array method)": [[35, "mlx.core.array.argmax", false]], "argmax() (in module mlx.core)": [[26, "mlx.core.argmax", false]], "argmin (c++ function)": [[0, "_CPPv46argminRK5array14StreamOrDevice", false], [0, "_CPPv46argminRK5arrayb14StreamOrDevice", false], [0, "_CPPv46argminRK5arrayib14StreamOrDevice", false]], "argmin() (array method)": [[36, "mlx.core.array.argmin", false]], "argmin() (in module mlx.core)": [[27, "mlx.core.argmin", false]], "argpartition (c++ function)": [[0, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", false], [0, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", false]], "argpartition() (in module mlx.core)": [[28, "mlx.core.argpartition", false]], "argsort (c++ function)": [[0, "_CPPv47argsortRK5array14StreamOrDevice", false], [0, "_CPPv47argsortRK5arrayi14StreamOrDevice", false]], "argsort() (in module mlx.core)": [[29, "mlx.core.argsort", false]], "array (class in mlx.core)": [[30, "mlx.core.array", false]], "array_equal (c++ function)": [[0, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", false], [0, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", false]], "array_equal() (in module mlx.core)": [[82, "mlx.core.array_equal", false]], "as_strided (c++ function)": [[0, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", false]], "as_strided() (in module mlx.core)": [[83, "mlx.core.as_strided", false]], "astype (c++ function)": [[0, "_CPPv46astype5array5Dtype14StreamOrDevice", false]], "astype() (array method)": [[37, "mlx.core.array.astype", false]], "at (array property)": [[38, "mlx.core.array.at", false]], "atleast_1d (c++ function)": [[0, "_CPPv410atleast_1dRK5array14StreamOrDevice", false], [0, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "atleast_1d() (in module mlx.core)": [[84, "mlx.core.atleast_1d", false]], "atleast_2d (c++ function)": [[0, "_CPPv410atleast_2dRK5array14StreamOrDevice", false], [0, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "atleast_2d() (in module mlx.core)": [[85, "mlx.core.atleast_2d", false]], "atleast_3d (c++ function)": [[0, "_CPPv410atleast_3dRK5array14StreamOrDevice", false], [0, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "atleast_3d() (in module mlx.core)": [[86, "mlx.core.atleast_3d", false]], "avgpool1d (class in mlx.nn)": [[326, "mlx.nn.AvgPool1d", false]], "avgpool2d (class in mlx.nn)": [[327, "mlx.nn.AvgPool2d", false]], "batchnorm (class in mlx.nn)": [[328, "mlx.nn.BatchNorm", false]], "bernoulli() (in module mlx.core.random)": [[240, "mlx.core.random.bernoulli", false]], "binary_cross_entropy (class in mlx.nn.losses)": [[421, "mlx.nn.losses.binary_cross_entropy", false]], "bitwise_and (c++ function)": [[0, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", false]], "bitwise_and() (in module mlx.core)": [[87, "mlx.core.bitwise_and", false]], "bitwise_or (c++ function)": [[0, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", false]], "bitwise_or() (in module mlx.core)": [[88, "mlx.core.bitwise_or", false]], "bitwise_xor (c++ function)": [[0, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", false]], "bitwise_xor() (in module mlx.core)": [[89, "mlx.core.bitwise_xor", false]], "block_masked_mm (c++ function)": [[0, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", false]], "block_masked_mm() (in module mlx.core)": [[90, "mlx.core.block_masked_mm", false]], "broadcast_arrays (c++ function)": [[0, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", false]], "broadcast_to (c++ function)": [[0, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "broadcast_to() (in module mlx.core)": [[91, "mlx.core.broadcast_to", false]], "categorical() (in module mlx.core.random)": [[241, "mlx.core.random.categorical", false]], "ceil (c++ function)": [[0, "_CPPv44ceilRK5array14StreamOrDevice", false]], "ceil() (in module mlx.core)": [[92, "mlx.core.ceil", false]], "celu (class in mlx.nn)": [[329, "mlx.nn.CELU", false], [409, "mlx.nn.celu", false]], "children() (module method)": [[360, "mlx.nn.Module.children", false]], "cholesky() (in module mlx.core.linalg)": [[183, "mlx.core.linalg.cholesky", false]], "cholesky_inv() (in module mlx.core.linalg)": [[184, "mlx.core.linalg.cholesky_inv", false]], "clear_cache() (in module mlx.core.metal)": [[209, "mlx.core.metal.clear_cache", false]], "clip (c++ function)": [[0, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", false]], "clip() (in module mlx.core)": [[93, "mlx.core.clip", false]], "clip_grad_norm() (in module mlx.optimizers)": [[309, "mlx.optimizers.clip_grad_norm", false]], "compile() (in module mlx.core)": [[94, "mlx.core.compile", false]], "concatenate (c++ function)": [[0, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", false], [0, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", false]], "concatenate() (in module mlx.core)": [[95, "mlx.core.concatenate", false]], "conj() (array method)": [[39, "mlx.core.array.conj", false]], "conj() (in module mlx.core)": [[96, "mlx.core.conj", false]], "conjugate (c++ function)": [[0, "_CPPv49conjugateRK5array14StreamOrDevice", false]], "conjugate() (in module mlx.core)": [[97, "mlx.core.conjugate", false]], "constant() (in module mlx.nn.init)": [[401, "mlx.nn.init.constant", false]], "conv1d (c++ function)": [[0, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", false]], "conv1d (class in mlx.nn)": [[330, "mlx.nn.Conv1d", false]], "conv1d() (in module mlx.core)": [[98, "mlx.core.conv1d", false]], "conv2d (c++ function)": [[0, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", false]], "conv2d (class in mlx.nn)": [[331, "mlx.nn.Conv2d", false]], "conv2d() (in module mlx.core)": [[99, "mlx.core.conv2d", false]], "conv3d (c++ function)": [[0, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", false]], "conv3d (class in mlx.nn)": [[332, "mlx.nn.Conv3d", false]], "conv3d() (in module mlx.core)": [[100, "mlx.core.conv3d", false]], "conv_general (c++ function)": [[0, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", false], [0, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", false]], "conv_general() (in module mlx.core)": [[101, "mlx.core.conv_general", false]], "conv_transpose1d (c++ function)": [[0, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", false]], "conv_transpose1d() (in module mlx.core)": [[102, "mlx.core.conv_transpose1d", false]], "conv_transpose2d (c++ function)": [[0, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", false]], "conv_transpose2d() (in module mlx.core)": [[103, "mlx.core.conv_transpose2d", false]], "conv_transpose3d (c++ function)": [[0, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", false]], "conv_transpose3d() (in module mlx.core)": [[104, "mlx.core.conv_transpose3d", false]], "convolve() (in module mlx.core)": [[105, "mlx.core.convolve", false]], "convtranspose1d (class in mlx.nn)": [[333, "mlx.nn.ConvTranspose1d", false]], "convtranspose2d (class in mlx.nn)": [[334, "mlx.nn.ConvTranspose2d", false]], "convtranspose3d (class in mlx.nn)": [[335, "mlx.nn.ConvTranspose3d", false]], "copy (c++ function)": [[0, "_CPPv44copy5array14StreamOrDevice", false]], "cos (c++ function)": [[0, "_CPPv43cosRK5array14StreamOrDevice", false]], "cos() (array method)": [[40, "mlx.core.array.cos", false]], "cos() (in module mlx.core)": [[106, "mlx.core.cos", false]], "cosh (c++ function)": [[0, "_CPPv44coshRK5array14StreamOrDevice", false]], "cosh() (in module mlx.core)": [[107, "mlx.core.cosh", false]], "cosine_decay() (in module mlx.optimizers)": [[468, "mlx.optimizers.cosine_decay", false]], "cosine_similarity_loss (class in mlx.nn.losses)": [[422, "mlx.nn.losses.cosine_similarity_loss", false]], "cross() (in module mlx.core.linalg)": [[185, "mlx.core.linalg.cross", false]], "cross_entropy (class in mlx.nn.losses)": [[423, "mlx.nn.losses.cross_entropy", false]], "cummax (c++ function)": [[0, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", false]], "cummax() (array method)": [[41, "mlx.core.array.cummax", false]], "cummax() (in module mlx.core)": [[108, "mlx.core.cummax", false]], "cummin (c++ function)": [[0, "_CPPv46cumminRK5arrayibb14StreamOrDevice", false]], "cummin() (array method)": [[42, "mlx.core.array.cummin", false]], "cummin() (in module mlx.core)": [[109, "mlx.core.cummin", false]], "cumprod (c++ function)": [[0, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", false]], "cumprod() (array method)": [[43, "mlx.core.array.cumprod", false]], "cumprod() (in module mlx.core)": [[110, "mlx.core.cumprod", false]], "cumsum (c++ function)": [[0, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", false]], "cumsum() (array method)": [[44, "mlx.core.array.cumsum", false]], "cumsum() (in module mlx.core)": [[111, "mlx.core.cumsum", false]], "custom_function (class in mlx.core)": [[112, "mlx.core.custom_function", false]], "default_device() (in module mlx.core)": [[113, "mlx.core.default_device", false]], "default_stream() (in module mlx.core)": [[114, "mlx.core.default_stream", false]], "degrees (c++ function)": [[0, "_CPPv47degreesRK5array14StreamOrDevice", false]], "degrees() (in module mlx.core)": [[115, "mlx.core.degrees", false]], "depends (c++ function)": [[0, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", false]], "dequantize (c++ function)": [[0, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", false]], "dequantize() (in module mlx.core)": [[116, "mlx.core.dequantize", false]], "device (class in mlx.core)": [[9, "mlx.core.Device", false]], "device_info() (in module mlx.core.metal)": [[210, "mlx.core.metal.device_info", false]], "diag (c++ function)": [[0, "_CPPv44diagRK5arrayi14StreamOrDevice", false]], "diag() (array method)": [[45, "mlx.core.array.diag", false]], "diag() (in module mlx.core)": [[117, "mlx.core.diag", false]], "diagonal (c++ function)": [[0, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", false]], "diagonal() (array method)": [[46, "mlx.core.array.diagonal", false]], "diagonal() (in module mlx.core)": [[118, "mlx.core.diagonal", false]], "disable_compile() (in module mlx.core)": [[119, "mlx.core.disable_compile", false]], "divide (c++ function)": [[0, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", false]], "divide() (in module mlx.core)": [[128, "mlx.core.divide", false]], "divmod (c++ function)": [[0, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", false]], "divmod() (in module mlx.core)": [[129, "mlx.core.divmod", false]], "dropout (class in mlx.nn)": [[336, "mlx.nn.Dropout", false]], "dropout2d (class in mlx.nn)": [[337, "mlx.nn.Dropout2d", false]], "dropout3d (class in mlx.nn)": [[338, "mlx.nn.Dropout3d", false]], "dtype (array property)": [[47, "mlx.core.array.dtype", false]], "dtype (class in mlx.core)": [[10, "mlx.core.Dtype", false]], "dtypecategory (class in mlx.core)": [[11, "mlx.core.DtypeCategory", false]], "eigh() (in module mlx.core.linalg)": [[186, "mlx.core.linalg.eigh", false]], "eigvalsh() (in module mlx.core.linalg)": [[187, "mlx.core.linalg.eigvalsh", false]], "einsum() (in module mlx.core)": [[130, "mlx.core.einsum", false]], "einsum_path() (in module mlx.core)": [[131, "mlx.core.einsum_path", false]], "elu (class in mlx.nn)": [[339, "mlx.nn.ELU", false], [410, "mlx.nn.elu", false]], "embedding (class in mlx.nn)": [[340, "mlx.nn.Embedding", false]], "enable_compile() (in module mlx.core)": [[132, "mlx.core.enable_compile", false]], "equal (c++ function)": [[0, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", false]], "equal() (in module mlx.core)": [[133, "mlx.core.equal", false]], "erf (c++ function)": [[0, "_CPPv43erfRK5array14StreamOrDevice", false]], "erf() (in module mlx.core)": [[134, "mlx.core.erf", false]], "erfinv (c++ function)": [[0, "_CPPv46erfinvRK5array14StreamOrDevice", false]], "erfinv() (in module mlx.core)": [[135, "mlx.core.erfinv", false]], "eval() (in module mlx.core)": [[136, "mlx.core.eval", false]], "eval() (module method)": [[361, "mlx.nn.Module.eval", false]], "exp (c++ function)": [[0, "_CPPv43expRK5array14StreamOrDevice", false]], "exp() (array method)": [[48, "mlx.core.array.exp", false]], "exp() (in module mlx.core)": [[137, "mlx.core.exp", false]], "expand_dims (c++ function)": [[0, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", false]], "expand_dims() (in module mlx.core)": [[138, "mlx.core.expand_dims", false]], "expm1 (c++ function)": [[0, "_CPPv45expm1RK5array14StreamOrDevice", false]], "expm1() (in module mlx.core)": [[139, "mlx.core.expm1", false]], "exponential_decay() (in module mlx.optimizers)": [[469, "mlx.optimizers.exponential_decay", false]], "eye (c++ function)": [[0, "_CPPv43eyei14StreamOrDevice", false], [0, "_CPPv43eyei5Dtype14StreamOrDevice", false], [0, "_CPPv43eyeii14StreamOrDevice", false], [0, "_CPPv43eyeiii14StreamOrDevice", false], [0, "_CPPv43eyeiii5Dtype14StreamOrDevice", false]], "eye() (in module mlx.core)": [[140, "mlx.core.eye", false]], "fft() (in module mlx.core.fft)": [[147, "mlx.core.fft.fft", false]], "fft2() (in module mlx.core.fft)": [[148, "mlx.core.fft.fft2", false]], "fftn() (in module mlx.core.fft)": [[149, "mlx.core.fft.fftn", false]], "filter_and_map() (module method)": [[362, "mlx.nn.Module.filter_and_map", false]], "flatten (c++ function)": [[0, "_CPPv47flattenRK5array14StreamOrDevice", false], [0, "_CPPv47flattenRK5arrayii14StreamOrDevice", false]], "flatten() (array method)": [[49, "mlx.core.array.flatten", false]], "flatten() (in module mlx.core)": [[159, "mlx.core.flatten", false]], "floor (c++ function)": [[0, "_CPPv45floorRK5array14StreamOrDevice", false]], "floor() (in module mlx.core)": [[160, "mlx.core.floor", false]], "floor_divide (c++ function)": [[0, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", false]], "floor_divide() (in module mlx.core)": [[161, "mlx.core.floor_divide", false]], "freeze() (module method)": [[363, "mlx.nn.Module.freeze", false]], "full (c++ function)": [[0, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", false], [0, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", false], [0, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", false], [0, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", false]], "full() (in module mlx.core)": [[162, "mlx.core.full", false]], "gather (c++ function)": [[0, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false]], "gather_mm (c++ function)": [[0, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", false]], "gather_mm() (in module mlx.core)": [[163, "mlx.core.gather_mm", false]], "gather_qmm (c++ function)": [[0, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", false]], "gather_qmm() (in module mlx.core)": [[164, "mlx.core.gather_qmm", false]], "gaussian_nll_loss (class in mlx.nn.losses)": [[424, "mlx.nn.losses.gaussian_nll_loss", false]], "gelu (class in mlx.nn)": [[341, "mlx.nn.GELU", false], [411, "mlx.nn.gelu", false]], "gelu_approx (class in mlx.nn)": [[412, "mlx.nn.gelu_approx", false]], "gelu_fast_approx (class in mlx.nn)": [[413, "mlx.nn.gelu_fast_approx", false]], "get_active_memory() (in module mlx.core.metal)": [[211, "mlx.core.metal.get_active_memory", false]], "get_cache_memory() (in module mlx.core.metal)": [[212, "mlx.core.metal.get_cache_memory", false]], "get_peak_memory() (in module mlx.core.metal)": [[213, "mlx.core.metal.get_peak_memory", false]], "glorot_normal() (in module mlx.nn.init)": [[402, "mlx.nn.init.glorot_normal", false]], "glorot_uniform() (in module mlx.nn.init)": [[403, "mlx.nn.init.glorot_uniform", false]], "glu (class in mlx.nn)": [[342, "mlx.nn.GLU", false], [414, "mlx.nn.glu", false]], "grad() (in module mlx.core)": [[165, "mlx.core.grad", false]], "greater (c++ function)": [[0, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", false]], "greater() (in module mlx.core)": [[166, "mlx.core.greater", false]], "greater_equal (c++ function)": [[0, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", false]], "greater_equal() (in module mlx.core)": [[167, "mlx.core.greater_equal", false]], "group (class in mlx.core.distributed)": [[120, "mlx.core.distributed.Group", false]], "groupnorm (class in mlx.nn)": [[344, "mlx.nn.GroupNorm", false]], "gru (class in mlx.nn)": [[343, "mlx.nn.GRU", false]], "gumbel() (in module mlx.core.random)": [[242, "mlx.core.random.gumbel", false]], "hadamard_transform (c++ function)": [[0, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", false]], "hadamard_transform() (in module mlx.core)": [[168, "mlx.core.hadamard_transform", false]], "hard_shrink (class in mlx.nn)": [[415, "mlx.nn.hard_shrink", false]], "hard_tanh (class in mlx.nn)": [[416, "mlx.nn.hard_tanh", false]], "hardshrink (class in mlx.nn)": [[345, "mlx.nn.HardShrink", false]], "hardswish (class in mlx.nn)": [[347, "mlx.nn.Hardswish", false], [417, "mlx.nn.hardswish", false]], "hardtanh (class in mlx.nn)": [[346, "mlx.nn.HardTanh", false]], "he_normal() (in module mlx.nn.init)": [[404, "mlx.nn.init.he_normal", false]], "he_uniform() (in module mlx.nn.init)": [[405, "mlx.nn.init.he_uniform", false]], "hinge_loss (class in mlx.nn.losses)": [[425, "mlx.nn.losses.hinge_loss", false]], "huber_loss (class in mlx.nn.losses)": [[426, "mlx.nn.losses.huber_loss", false]], "identity (c++ function)": [[0, "_CPPv48identityi14StreamOrDevice", false], [0, "_CPPv48identityi5Dtype14StreamOrDevice", false]], "identity() (in module mlx.core)": [[169, "mlx.core.identity", false]], "identity() (in module mlx.nn.init)": [[406, "mlx.nn.init.identity", false]], "ifft() (in module mlx.core.fft)": [[150, "mlx.core.fft.ifft", false]], "ifft2() (in module mlx.core.fft)": [[151, "mlx.core.fft.ifft2", false]], "ifftn() (in module mlx.core.fft)": [[152, "mlx.core.fft.ifftn", false]], "imag (c++ function)": [[0, "_CPPv44imagRK5array14StreamOrDevice", false]], "imag() (in module mlx.core)": [[170, "mlx.core.imag", false]], "init() (in module mlx.core.distributed)": [[123, "mlx.core.distributed.init", false]], "init() (optimizer method)": [[463, "mlx.optimizers.Optimizer.init", false]], "inner (c++ function)": [[0, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", false]], "inner() (in module mlx.core)": [[171, "mlx.core.inner", false]], "instancenorm (class in mlx.nn)": [[348, "mlx.nn.InstanceNorm", false]], "inv() (in module mlx.core.linalg)": [[188, "mlx.core.linalg.inv", false]], "irfft() (in module mlx.core.fft)": [[153, "mlx.core.fft.irfft", false]], "irfft2() (in module mlx.core.fft)": [[154, "mlx.core.fft.irfft2", false]], "irfftn() (in module mlx.core.fft)": [[155, "mlx.core.fft.irfftn", false]], "is_available() (in module mlx.core.distributed)": [[124, "mlx.core.distributed.is_available", false]], "is_available() (in module mlx.core.metal)": [[214, "mlx.core.metal.is_available", false]], "isclose (c++ function)": [[0, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", false]], "isclose() (in module mlx.core)": [[172, "mlx.core.isclose", false]], "isfinite (c++ function)": [[0, "_CPPv48isfiniteRK5array14StreamOrDevice", false]], "isfinite() (in module mlx.core)": [[173, "mlx.core.isfinite", false]], "isinf (c++ function)": [[0, "_CPPv45isinfRK5array14StreamOrDevice", false]], "isinf() (in module mlx.core)": [[174, "mlx.core.isinf", false]], "isnan (c++ function)": [[0, "_CPPv45isnanRK5array14StreamOrDevice", false]], "isnan() (in module mlx.core)": [[175, "mlx.core.isnan", false]], "isneginf (c++ function)": [[0, "_CPPv48isneginfRK5array14StreamOrDevice", false]], "isneginf() (in module mlx.core)": [[176, "mlx.core.isneginf", false]], "isposinf (c++ function)": [[0, "_CPPv48isposinfRK5array14StreamOrDevice", false]], "isposinf() (in module mlx.core)": [[177, "mlx.core.isposinf", false]], "issubdtype() (in module mlx.core)": [[178, "mlx.core.issubdtype", false]], "item() (array method)": [[50, "mlx.core.array.item", false]], "itemsize (array property)": [[51, "mlx.core.array.itemsize", false]], "join_schedules() (in module mlx.optimizers)": [[470, "mlx.optimizers.join_schedules", false]], "jvp() (in module mlx.core)": [[179, "mlx.core.jvp", false]], "key() (in module mlx.core.random)": [[243, "mlx.core.random.key", false]], "kl_div_loss (class in mlx.nn.losses)": [[427, "mlx.nn.losses.kl_div_loss", false]], "l1_loss (class in mlx.nn.losses)": [[428, "mlx.nn.losses.l1_loss", false]], "laplace() (in module mlx.core.random)": [[244, "mlx.core.random.laplace", false]], "layer_norm() (in module mlx.core.fast)": [[142, "mlx.core.fast.layer_norm", false]], "layernorm (class in mlx.nn)": [[350, "mlx.nn.LayerNorm", false]], "leaf_modules() (module method)": [[364, "mlx.nn.Module.leaf_modules", false]], "leaky_relu (class in mlx.nn)": [[418, "mlx.nn.leaky_relu", false]], "leakyrelu (class in mlx.nn)": [[351, "mlx.nn.LeakyReLU", false]], "left_shift (c++ function)": [[0, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", false]], "left_shift() (in module mlx.core)": [[180, "mlx.core.left_shift", false]], "less (c++ function)": [[0, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", false]], "less() (in module mlx.core)": [[181, "mlx.core.less", false]], "less_equal (c++ function)": [[0, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", false]], "less_equal() (in module mlx.core)": [[182, "mlx.core.less_equal", false]], "linear (class in mlx.nn)": [[352, "mlx.nn.Linear", false]], "linear_schedule() (in module mlx.optimizers)": [[471, "mlx.optimizers.linear_schedule", false]], "linspace (c++ function)": [[0, "_CPPv48linspaceddi5Dtype14StreamOrDevice", false]], "linspace() (in module mlx.core)": [[193, "mlx.core.linspace", false]], "lion (class in mlx.optimizers)": [[461, "mlx.optimizers.Lion", false]], "load() (in module mlx.core)": [[194, "mlx.core.load", false]], "load_weights() (module method)": [[365, "mlx.nn.Module.load_weights", false]], "log (c++ function)": [[0, "_CPPv43logRK5array14StreamOrDevice", false]], "log() (array method)": [[52, "mlx.core.array.log", false]], "log() (in module mlx.core)": [[195, "mlx.core.log", false]], "log10 (c++ function)": [[0, "_CPPv45log10RK5array14StreamOrDevice", false]], "log10() (array method)": [[53, "mlx.core.array.log10", false]], "log10() (in module mlx.core)": [[196, "mlx.core.log10", false]], "log1p (c++ function)": [[0, "_CPPv45log1pRK5array14StreamOrDevice", false]], "log1p() (array method)": [[54, "mlx.core.array.log1p", false]], "log1p() (in module mlx.core)": [[197, "mlx.core.log1p", false]], "log2 (c++ function)": [[0, "_CPPv44log2RK5array14StreamOrDevice", false]], "log2() (array method)": [[55, "mlx.core.array.log2", false]], "log2() (in module mlx.core)": [[198, "mlx.core.log2", false]], "log_cosh_loss (class in mlx.nn.losses)": [[429, "mlx.nn.losses.log_cosh_loss", false]], "log_sigmoid (class in mlx.nn)": [[419, "mlx.nn.log_sigmoid", false]], "log_softmax (class in mlx.nn)": [[420, "mlx.nn.log_softmax", false]], "logaddexp (c++ function)": [[0, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", false]], "logaddexp() (in module mlx.core)": [[199, "mlx.core.logaddexp", false]], "logical_and (c++ function)": [[0, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", false]], "logical_and() (in module mlx.core)": [[200, "mlx.core.logical_and", false]], "logical_not (c++ function)": [[0, "_CPPv411logical_notRK5array14StreamOrDevice", false]], "logical_not() (in module mlx.core)": [[201, "mlx.core.logical_not", false]], "logical_or (c++ function)": [[0, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", false]], "logical_or() (in module mlx.core)": [[202, "mlx.core.logical_or", false]], "logsigmoid (class in mlx.nn)": [[353, "mlx.nn.LogSigmoid", false]], "logsoftmax (class in mlx.nn)": [[354, "mlx.nn.LogSoftmax", false]], "logsumexp (c++ function)": [[0, "_CPPv49logsumexpRK5array14StreamOrDevice", false], [0, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", false], [0, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", false]], "logsumexp() (array method)": [[56, "mlx.core.array.logsumexp", false]], "logsumexp() (in module mlx.core)": [[203, "mlx.core.logsumexp", false]], "lstm (class in mlx.nn)": [[349, "mlx.nn.LSTM", false]], "margin_ranking_loss (class in mlx.nn.losses)": [[430, "mlx.nn.losses.margin_ranking_loss", false]], "matmul (c++ function)": [[0, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", false]], "matmul() (in module mlx.core)": [[204, "mlx.core.matmul", false]], "max (c++ function)": [[0, "_CPPv43maxRK5array14StreamOrDevice", false], [0, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43maxRK5arrayb14StreamOrDevice", false], [0, "_CPPv43maxRK5arrayib14StreamOrDevice", false]], "max() (array method)": [[57, "mlx.core.array.max", false]], "max() (in module mlx.core)": [[205, "mlx.core.max", false]], "maximum (c++ function)": [[0, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", false]], "maximum() (in module mlx.core)": [[206, "mlx.core.maximum", false]], "maxpool1d (class in mlx.nn)": [[355, "mlx.nn.MaxPool1d", false]], "maxpool2d (class in mlx.nn)": [[356, "mlx.nn.MaxPool2d", false]], "mean (c++ function)": [[0, "_CPPv44meanRK5array14StreamOrDevice", false], [0, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv44meanRK5arrayb14StreamOrDevice", false], [0, "_CPPv44meanRK5arrayib14StreamOrDevice", false]], "mean() (array method)": [[58, "mlx.core.array.mean", false]], "mean() (in module mlx.core)": [[207, "mlx.core.mean", false]], "meshgrid (c++ function)": [[0, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", false]], "meshgrid() (in module mlx.core)": [[208, "mlx.core.meshgrid", false]], "metal_kernel() (in module mlx.core.fast)": [[143, "mlx.core.fast.metal_kernel", false]], "min (c++ function)": [[0, "_CPPv43minRK5array14StreamOrDevice", false], [0, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43minRK5arrayb14StreamOrDevice", false], [0, "_CPPv43minRK5arrayib14StreamOrDevice", false]], "min() (array method)": [[59, "mlx.core.array.min", false]], "min() (in module mlx.core)": [[221, "mlx.core.min", false]], "minimum (c++ function)": [[0, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", false]], "minimum() (in module mlx.core)": [[222, "mlx.core.minimum", false]], "mish (class in mlx.nn)": [[357, "mlx.nn.Mish", false], [435, "mlx.nn.mish", false]], "module (class in mlx.nn)": [[452, "mlx.nn.Module", false]], "modules() (module method)": [[366, "mlx.nn.Module.modules", false]], "moveaxis (c++ function)": [[0, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", false]], "moveaxis() (array method)": [[60, "mlx.core.array.moveaxis", false]], "moveaxis() (in module mlx.core)": [[223, "mlx.core.moveaxis", false]], "mse_loss (class in mlx.nn.losses)": [[431, "mlx.nn.losses.mse_loss", false]], "multiheadattention (class in mlx.nn)": [[378, "mlx.nn.MultiHeadAttention", false]], "multiply (c++ function)": [[0, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", false]], "multiply() (in module mlx.core)": [[224, "mlx.core.multiply", false]], "multivariate_normal() (in module mlx.core.random)": [[245, "mlx.core.random.multivariate_normal", false]], "named_modules() (module method)": [[367, "mlx.nn.Module.named_modules", false]], "nan_to_num (c++ function)": [[0, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", false]], "nan_to_num() (in module mlx.core)": [[225, "mlx.core.nan_to_num", false]], "nbytes (array property)": [[61, "mlx.core.array.nbytes", false]], "ndim (array property)": [[62, "mlx.core.array.ndim", false]], "negative (c++ function)": [[0, "_CPPv48negativeRK5array14StreamOrDevice", false]], "negative() (in module mlx.core)": [[226, "mlx.core.negative", false]], "new_stream() (in module mlx.core)": [[227, "mlx.core.new_stream", false]], "nll_loss (class in mlx.nn.losses)": [[432, "mlx.nn.losses.nll_loss", false]], "norm() (in module mlx.core.linalg)": [[189, "mlx.core.linalg.norm", false]], "normal() (in module mlx.core.random)": [[246, "mlx.core.random.normal", false]], "normal() (in module mlx.nn.init)": [[407, "mlx.nn.init.normal", false]], "not_equal (c++ function)": [[0, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", false]], "not_equal() (in module mlx.core)": [[228, "mlx.core.not_equal", false]], "number_of_elements (c++ function)": [[0, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", false]], "ones (c++ function)": [[0, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", false]], "ones() (in module mlx.core)": [[229, "mlx.core.ones", false]], "ones_like (c++ function)": [[0, "_CPPv49ones_likeRK5array14StreamOrDevice", false]], "ones_like() (in module mlx.core)": [[230, "mlx.core.ones_like", false]], "operator!= (c++ function)": [[0, "_CPPv4I0Ene5array1TRK5array", false], [0, "_CPPv4I0Ene5arrayRK5array1T", false], [0, "_CPPv4neRK5arrayRK5array", false]], "operator% (c++ function)": [[0, "_CPPv4I0Erm5array1TRK5array", false], [0, "_CPPv4I0Erm5arrayRK5array1T", false], [0, "_CPPv4rmRK5arrayRK5array", false]], "operator& (c++ function)": [[0, "_CPPv4anRK5arrayRK5array", false]], "operator&& (c++ function)": [[0, "_CPPv4aaRK5arrayRK5array", false]], "operator* (c++ function)": [[0, "_CPPv4I0Eml5array1TRK5array", false], [0, "_CPPv4I0Eml5arrayRK5array1T", false], [0, "_CPPv4mlRK5arrayRK5array", false]], "operator+ (c++ function)": [[0, "_CPPv4I0Epl5array1TRK5array", false], [0, "_CPPv4I0Epl5arrayRK5array1T", false], [0, "_CPPv4plRK5arrayRK5array", false]], "operator- (c++ function)": [[0, "_CPPv4I0Emi5array1TRK5array", false], [0, "_CPPv4I0Emi5arrayRK5array1T", false], [0, "_CPPv4miRK5array", false], [0, "_CPPv4miRK5arrayRK5array", false]], "operator/ (c++ function)": [[0, "_CPPv4dvRK5arrayRK5array", false], [0, "_CPPv4dvRK5arrayd", false], [0, "_CPPv4dvdRK5array", false]], "operator< (c++ function)": [[0, "_CPPv4I0Elt5array1TRK5array", false], [0, "_CPPv4I0Elt5arrayRK5array1T", false], [0, "_CPPv4ltRK5arrayRK5array", false]], "operator<< (c++ function)": [[0, "_CPPv4lsRK5arrayRK5array", false]], "operator<= (c++ function)": [[0, "_CPPv4I0Ele5array1TRK5array", false], [0, "_CPPv4I0Ele5arrayRK5array1T", false], [0, "_CPPv4leRK5arrayRK5array", false]], "operator== (c++ function)": [[0, "_CPPv4I0Eeq5array1TRK5array", false], [0, "_CPPv4I0Eeq5arrayRK5array1T", false], [0, "_CPPv4eqRK5arrayRK5array", false]], "operator> (c++ function)": [[0, "_CPPv4I0Egt5array1TRK5array", false], [0, "_CPPv4I0Egt5arrayRK5array1T", false], [0, "_CPPv4gtRK5arrayRK5array", false]], "operator>= (c++ function)": [[0, "_CPPv4I0Ege5array1TRK5array", false], [0, "_CPPv4I0Ege5arrayRK5array1T", false], [0, "_CPPv4geRK5arrayRK5array", false]], "operator>> (c++ function)": [[0, "_CPPv4rsRK5arrayRK5array", false]], "operator^ (c++ function)": [[0, "_CPPv4eoRK5arrayRK5array", false]], "operator| (c++ function)": [[0, "_CPPv4orRK5arrayRK5array", false]], "operator|| (c++ function)": [[0, "_CPPv4ooRK5arrayRK5array", false]], "optimizer (class in mlx.optimizers)": [[474, "mlx.optimizers.Optimizer", false]], "outer (c++ function)": [[0, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", false]], "outer() (in module mlx.core)": [[231, "mlx.core.outer", false]], "pad (c++ function)": [[0, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", false], [0, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", false]], "pad() (in module mlx.core)": [[232, "mlx.core.pad", false]], "parameters() (module method)": [[368, "mlx.nn.Module.parameters", false]], "partition (c++ function)": [[0, "_CPPv49partitionRK5arrayi14StreamOrDevice", false], [0, "_CPPv49partitionRK5arrayii14StreamOrDevice", false]], "partition() (in module mlx.core)": [[233, "mlx.core.partition", false]], "permutation() (in module mlx.core.random)": [[247, "mlx.core.random.permutation", false]], "power (c++ function)": [[0, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", false]], "power() (in module mlx.core)": [[234, "mlx.core.power", false]], "prelu (class in mlx.nn)": [[379, "mlx.nn.PReLU", false], [436, "mlx.nn.prelu", false]], "prod (c++ function)": [[0, "_CPPv44prodRK5array14StreamOrDevice", false], [0, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv44prodRK5arrayb14StreamOrDevice", false], [0, "_CPPv44prodRK5arrayib14StreamOrDevice", false]], "prod() (array method)": [[63, "mlx.core.array.prod", false]], "prod() (in module mlx.core)": [[235, "mlx.core.prod", false]], "put_along_axis (c++ function)": [[0, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false]], "put_along_axis() (in module mlx.core)": [[236, "mlx.core.put_along_axis", false]], "qr() (in module mlx.core.linalg)": [[190, "mlx.core.linalg.qr", false]], "quantize (c++ function)": [[0, "_CPPv48quantizeRK5arrayii14StreamOrDevice", false]], "quantize() (in module mlx.core)": [[237, "mlx.core.quantize", false]], "quantize() (in module mlx.nn)": [[307, "mlx.nn.quantize", false]], "quantized_matmul (c++ function)": [[0, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", false]], "quantized_matmul() (in module mlx.core)": [[238, "mlx.core.quantized_matmul", false]], "quantizedembedding (class in mlx.nn)": [[380, "mlx.nn.QuantizedEmbedding", false]], "quantizedlinear (class in mlx.nn)": [[381, "mlx.nn.QuantizedLinear", false]], "radians (c++ function)": [[0, "_CPPv47radiansRK5array14StreamOrDevice", false]], "radians() (in module mlx.core)": [[239, "mlx.core.radians", false]], "randint() (in module mlx.core.random)": [[248, "mlx.core.random.randint", false]], "real (c++ function)": [[0, "_CPPv44realRK5array14StreamOrDevice", false]], "real() (in module mlx.core)": [[253, "mlx.core.real", false]], "reciprocal (c++ function)": [[0, "_CPPv410reciprocalRK5array14StreamOrDevice", false]], "reciprocal() (array method)": [[64, "mlx.core.array.reciprocal", false]], "reciprocal() (in module mlx.core)": [[254, "mlx.core.reciprocal", false]], "recv() (in module mlx.core.distributed)": [[125, "mlx.core.distributed.recv", false]], "recv_like() (in module mlx.core.distributed)": [[126, "mlx.core.distributed.recv_like", false]], "relu (class in mlx.nn)": [[384, "mlx.nn.ReLU", false], [437, "mlx.nn.relu", false]], "relu6 (class in mlx.nn)": [[385, "mlx.nn.ReLU6", false], [438, "mlx.nn.relu6", false]], "remainder (c++ function)": [[0, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", false]], "remainder() (in module mlx.core)": [[255, "mlx.core.remainder", false]], "repeat (c++ function)": [[0, "_CPPv46repeatRK5arrayi14StreamOrDevice", false], [0, "_CPPv46repeatRK5arrayii14StreamOrDevice", false]], "repeat() (in module mlx.core)": [[256, "mlx.core.repeat", false]], "reset_peak_memory() (in module mlx.core.metal)": [[215, "mlx.core.metal.reset_peak_memory", false]], "reshape (c++ function)": [[0, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "reshape() (array method)": [[65, "mlx.core.array.reshape", false]], "reshape() (in module mlx.core)": [[257, "mlx.core.reshape", false]], "rfft() (in module mlx.core.fft)": [[156, "mlx.core.fft.rfft", false]], "rfft2() (in module mlx.core.fft)": [[157, "mlx.core.fft.rfft2", false]], "rfftn() (in module mlx.core.fft)": [[158, "mlx.core.fft.rfftn", false]], "right_shift (c++ function)": [[0, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", false]], "right_shift() (in module mlx.core)": [[258, "mlx.core.right_shift", false]], "rms_norm() (in module mlx.core.fast)": [[144, "mlx.core.fast.rms_norm", false]], "rmsnorm (class in mlx.nn)": [[382, "mlx.nn.RMSNorm", false]], "rmsprop (class in mlx.optimizers)": [[466, "mlx.optimizers.RMSprop", false]], "rnn (class in mlx.nn)": [[383, "mlx.nn.RNN", false]], "roll (c++ function)": [[0, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayi14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv44rollRK5arrayii14StreamOrDevice", false]], "roll() (in module mlx.core)": [[259, "mlx.core.roll", false]], "rope (class in mlx.nn)": [[386, "mlx.nn.RoPE", false]], "rope() (in module mlx.core.fast)": [[145, "mlx.core.fast.rope", false]], "round (c++ function)": [[0, "_CPPv45roundRK5array14StreamOrDevice", false], [0, "_CPPv45roundRK5arrayi14StreamOrDevice", false]], "round() (array method)": [[66, "mlx.core.array.round", false]], "round() (in module mlx.core)": [[260, "mlx.core.round", false]], "rsqrt (c++ function)": [[0, "_CPPv45rsqrtRK5array14StreamOrDevice", false]], "rsqrt() (array method)": [[67, "mlx.core.array.rsqrt", false]], "rsqrt() (in module mlx.core)": [[261, "mlx.core.rsqrt", false]], "save() (in module mlx.core)": [[262, "mlx.core.save", false]], "save_gguf() (in module mlx.core)": [[263, "mlx.core.save_gguf", false]], "save_safetensors() (in module mlx.core)": [[264, "mlx.core.save_safetensors", false]], "save_weights() (module method)": [[369, "mlx.nn.Module.save_weights", false]], "savez() (in module mlx.core)": [[265, "mlx.core.savez", false]], "savez_compressed() (in module mlx.core)": [[266, "mlx.core.savez_compressed", false]], "scaled_dot_product_attention() (in module mlx.core.fast)": [[146, "mlx.core.fast.scaled_dot_product_attention", false]], "scatter (c++ function)": [[0, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_add (c++ function)": [[0, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_max (c++ function)": [[0, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_min (c++ function)": [[0, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "scatter_prod (c++ function)": [[0, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", false]], "seed() (in module mlx.core.random)": [[249, "mlx.core.random.seed", false]], "selu (class in mlx.nn)": [[387, "mlx.nn.SELU", false], [439, "mlx.nn.selu", false]], "send() (in module mlx.core.distributed)": [[127, "mlx.core.distributed.send", false]], "sequential (class in mlx.nn)": [[388, "mlx.nn.Sequential", false]], "set_cache_limit() (in module mlx.core.metal)": [[216, "mlx.core.metal.set_cache_limit", false]], "set_default_device() (in module mlx.core)": [[267, "mlx.core.set_default_device", false]], "set_default_stream() (in module mlx.core)": [[268, "mlx.core.set_default_stream", false]], "set_dtype() (module method)": [[370, "mlx.nn.Module.set_dtype", false]], "set_memory_limit() (in module mlx.core.metal)": [[217, "mlx.core.metal.set_memory_limit", false]], "set_wired_limit() (in module mlx.core.metal)": [[218, "mlx.core.metal.set_wired_limit", false]], "sgd (class in mlx.optimizers)": [[467, "mlx.optimizers.SGD", false]], "shape (array property)": [[68, "mlx.core.array.shape", false]], "sigmoid (c++ function)": [[0, "_CPPv47sigmoidRK5array14StreamOrDevice", false]], "sigmoid (class in mlx.nn)": [[390, "mlx.nn.Sigmoid", false], [440, "mlx.nn.sigmoid", false]], "sigmoid() (in module mlx.core)": [[269, "mlx.core.sigmoid", false]], "sign (c++ function)": [[0, "_CPPv44signRK5array14StreamOrDevice", false]], "sign() (in module mlx.core)": [[270, "mlx.core.sign", false]], "silu (class in mlx.nn)": [[389, "mlx.nn.SiLU", false], [441, "mlx.nn.silu", false]], "sin (c++ function)": [[0, "_CPPv43sinRK5array14StreamOrDevice", false]], "sin() (array method)": [[69, "mlx.core.array.sin", false]], "sin() (in module mlx.core)": [[271, "mlx.core.sin", false]], "sinh (c++ function)": [[0, "_CPPv44sinhRK5array14StreamOrDevice", false]], "sinh() (in module mlx.core)": [[272, "mlx.core.sinh", false]], "sinusoidalpositionalencoding (class in mlx.nn)": [[391, "mlx.nn.SinusoidalPositionalEncoding", false]], "size (array property)": [[70, "mlx.core.array.size", false]], "slice (c++ function)": [[0, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false]], "slice_update (c++ function)": [[0, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", false]], "smooth_l1_loss (class in mlx.nn.losses)": [[433, "mlx.nn.losses.smooth_l1_loss", false]], "softmax (c++ function)": [[0, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv47softmaxRK5arrayb14StreamOrDevice", false], [0, "_CPPv47softmaxRK5arrayib14StreamOrDevice", false]], "softmax (class in mlx.nn)": [[392, "mlx.nn.Softmax", false], [442, "mlx.nn.softmax", false]], "softmax() (in module mlx.core)": [[273, "mlx.core.softmax", false]], "softmin (class in mlx.nn)": [[393, "mlx.nn.Softmin", false], [443, "mlx.nn.softmin", false]], "softplus (class in mlx.nn)": [[394, "mlx.nn.Softplus", false], [444, "mlx.nn.softplus", false]], "softshrink (class in mlx.nn)": [[395, "mlx.nn.Softshrink", false], [445, "mlx.nn.softshrink", false]], "softsign (class in mlx.nn)": [[396, "mlx.nn.Softsign", false]], "sort (c++ function)": [[0, "_CPPv44sortRK5array14StreamOrDevice", false], [0, "_CPPv44sortRK5arrayi14StreamOrDevice", false]], "sort() (in module mlx.core)": [[274, "mlx.core.sort", false]], "split (c++ function)": [[0, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", false], [0, "_CPPv45splitRK5arrayi14StreamOrDevice", false], [0, "_CPPv45splitRK5arrayii14StreamOrDevice", false]], "split() (array method)": [[71, "mlx.core.array.split", false]], "split() (in module mlx.core)": [[275, "mlx.core.split", false]], "split() (in module mlx.core.random)": [[250, "mlx.core.random.split", false]], "sqrt (c++ function)": [[0, "_CPPv44sqrtRK5array14StreamOrDevice", false]], "sqrt() (array method)": [[72, "mlx.core.array.sqrt", false]], "sqrt() (in module mlx.core)": [[276, "mlx.core.sqrt", false]], "square (c++ function)": [[0, "_CPPv46squareRK5array14StreamOrDevice", false]], "square() (array method)": [[73, "mlx.core.array.square", false]], "square() (in module mlx.core)": [[277, "mlx.core.square", false]], "squeeze (c++ function)": [[0, "_CPPv47squeezeRK5array14StreamOrDevice", false], [0, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv47squeezeRK5arrayi14StreamOrDevice", false]], "squeeze() (array method)": [[74, "mlx.core.array.squeeze", false]], "squeeze() (in module mlx.core)": [[278, "mlx.core.squeeze", false]], "stack (c++ function)": [[0, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", false], [0, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", false]], "stack() (in module mlx.core)": [[279, "mlx.core.stack", false]], "start_capture() (in module mlx.core.metal)": [[219, "mlx.core.metal.start_capture", false]], "state (module property)": [[371, "mlx.nn.Module.state", false]], "state (optimizer property)": [[464, "mlx.optimizers.Optimizer.state", false]], "std (c++ function)": [[0, "_CPPv4StRK5array14StreamOrDevice", false], [0, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", false], [0, "_CPPv4StRK5arraybi14StreamOrDevice", false], [0, "_CPPv4StRK5arrayibi14StreamOrDevice", false]], "std() (array method)": [[75, "mlx.core.array.std", false]], "std() (in module mlx.core)": [[280, "mlx.core.std", false]], "step (class in mlx.nn)": [[397, "mlx.nn.Step", false], [446, "mlx.nn.step", false]], "step_decay() (in module mlx.optimizers)": [[472, "mlx.optimizers.step_decay", false]], "stop_capture() (in module mlx.core.metal)": [[220, "mlx.core.metal.stop_capture", false]], "stop_gradient (c++ function)": [[0, "_CPPv413stop_gradientRK5array14StreamOrDevice", false]], "stop_gradient() (in module mlx.core)": [[281, "mlx.core.stop_gradient", false]], "stream (class in mlx.core)": [[315, "mlx.core.Stream", false]], "stream() (in module mlx.core)": [[282, "mlx.core.stream", false]], "subtract (c++ function)": [[0, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", false]], "subtract() (in module mlx.core)": [[283, "mlx.core.subtract", false]], "sum (c++ function)": [[0, "_CPPv43sumRK5array14StreamOrDevice", false], [0, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", false], [0, "_CPPv43sumRK5arrayb14StreamOrDevice", false], [0, "_CPPv43sumRK5arrayib14StreamOrDevice", false]], "sum() (array method)": [[76, "mlx.core.array.sum", false]], "sum() (in module mlx.core)": [[284, "mlx.core.sum", false]], "svd() (in module mlx.core.linalg)": [[191, "mlx.core.linalg.svd", false]], "swapaxes (c++ function)": [[0, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", false]], "swapaxes() (array method)": [[77, "mlx.core.array.swapaxes", false]], "swapaxes() (in module mlx.core)": [[285, "mlx.core.swapaxes", false]], "synchronize() (in module mlx.core)": [[286, "mlx.core.synchronize", false]], "t (array property)": [[31, "mlx.core.array.T", false]], "take (c++ function)": [[0, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", false], [0, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", false], [0, "_CPPv44takeRK5arrayi14StreamOrDevice", false], [0, "_CPPv44takeRK5arrayii14StreamOrDevice", false]], "take() (in module mlx.core)": [[287, "mlx.core.take", false]], "take_along_axis (c++ function)": [[0, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", false]], "take_along_axis() (in module mlx.core)": [[288, "mlx.core.take_along_axis", false]], "tan (c++ function)": [[0, "_CPPv43tanRK5array14StreamOrDevice", false]], "tan() (in module mlx.core)": [[289, "mlx.core.tan", false]], "tanh (c++ function)": [[0, "_CPPv44tanhRK5array14StreamOrDevice", false]], "tanh (class in mlx.nn)": [[398, "mlx.nn.Tanh", false], [447, "mlx.nn.tanh", false]], "tanh() (in module mlx.core)": [[290, "mlx.core.tanh", false]], "tensordot (c++ function)": [[0, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", false], [0, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", false]], "tensordot() (in module mlx.core)": [[291, "mlx.core.tensordot", false]], "tile (c++ function)": [[0, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "tile() (in module mlx.core)": [[292, "mlx.core.tile", false]], "tolist() (array method)": [[78, "mlx.core.array.tolist", false]], "topk (c++ function)": [[0, "_CPPv44topkRK5arrayi14StreamOrDevice", false], [0, "_CPPv44topkRK5arrayii14StreamOrDevice", false]], "topk() (in module mlx.core)": [[293, "mlx.core.topk", false]], "trace (c++ function)": [[0, "_CPPv45traceRK5array14StreamOrDevice", false], [0, "_CPPv45traceRK5arrayiii14StreamOrDevice", false], [0, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", false]], "trace() (in module mlx.core)": [[294, "mlx.core.trace", false]], "train() (module method)": [[372, "mlx.nn.Module.train", false]], "trainable_parameters() (module method)": [[373, "mlx.nn.Module.trainable_parameters", false]], "training (module property)": [[374, "mlx.nn.Module.training", false]], "transformer (class in mlx.nn)": [[399, "mlx.nn.Transformer", false]], "transpose (c++ function)": [[0, "_CPPv49transposeRK5array14StreamOrDevice", false], [0, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", false], [0, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", false]], "transpose() (array method)": [[79, "mlx.core.array.transpose", false]], "transpose() (in module mlx.core)": [[295, "mlx.core.transpose", false]], "tree_flatten() (in module mlx.utils)": [[310, "mlx.utils.tree_flatten", false]], "tree_map() (in module mlx.utils)": [[311, "mlx.utils.tree_map", false]], "tree_map_with_path() (in module mlx.utils)": [[312, "mlx.utils.tree_map_with_path", false]], "tree_reduce() (in module mlx.utils)": [[313, "mlx.utils.tree_reduce", false]], "tree_unflatten() (in module mlx.utils)": [[314, "mlx.utils.tree_unflatten", false]], "tri (c++ function)": [[0, "_CPPv43trii5Dtype14StreamOrDevice", false], [0, "_CPPv43triiii5Dtype14StreamOrDevice", false]], "tri() (in module mlx.core)": [[296, "mlx.core.tri", false]], "tri_inv() (in module mlx.core.linalg)": [[192, "mlx.core.linalg.tri_inv", false]], "tril (c++ function)": [[0, "_CPPv44tril5arrayi14StreamOrDevice", false]], "tril() (in module mlx.core)": [[297, "mlx.core.tril", false]], "triplet_loss (class in mlx.nn.losses)": [[434, "mlx.nn.losses.triplet_loss", false]], "triu (c++ function)": [[0, "_CPPv44triu5arrayi14StreamOrDevice", false]], "triu() (in module mlx.core)": [[298, "mlx.core.triu", false]], "truncated_normal() (in module mlx.core.random)": [[251, "mlx.core.random.truncated_normal", false]], "unfreeze() (module method)": [[375, "mlx.nn.Module.unfreeze", false]], "uniform() (in module mlx.core.random)": [[252, "mlx.core.random.uniform", false]], "uniform() (in module mlx.nn.init)": [[408, "mlx.nn.init.uniform", false]], "update() (module method)": [[376, "mlx.nn.Module.update", false]], "update() (optimizer method)": [[465, "mlx.optimizers.Optimizer.update", false]], "update_modules() (module method)": [[377, "mlx.nn.Module.update_modules", false]], "upsample (class in mlx.nn)": [[400, "mlx.nn.Upsample", false]], "value_and_grad() (in module mlx.core)": [[299, "mlx.core.value_and_grad", false]], "value_and_grad() (in module mlx.nn)": [[308, "mlx.nn.value_and_grad", false]], "var (c++ function)": [[0, "_CPPv43varRK5array14StreamOrDevice", false], [0, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", false], [0, "_CPPv43varRK5arraybi14StreamOrDevice", false], [0, "_CPPv43varRK5arrayibi14StreamOrDevice", false]], "var() (array method)": [[80, "mlx.core.array.var", false]], "var() (in module mlx.core)": [[300, "mlx.core.var", false]], "view (c++ function)": [[0, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", false]], "view() (array method)": [[81, "mlx.core.array.view", false]], "view() (in module mlx.core)": [[301, "mlx.core.view", false]], "vjp() (in module mlx.core)": [[302, "mlx.core.vjp", false]], "vmap() (in module mlx.core)": [[303, "mlx.core.vmap", false]], "where (c++ function)": [[0, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", false]], "where() (in module mlx.core)": [[304, "mlx.core.where", false]], "zeros (c++ function)": [[0, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", false], [0, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", false]], "zeros() (in module mlx.core)": [[305, "mlx.core.zeros", false]], "zeros_like (c++ function)": [[0, "_CPPv410zeros_likeRK5array14StreamOrDevice", false]], "zeros_like() (in module mlx.core)": [[306, "mlx.core.zeros_like", false]]}, "objects": {"": [[0, 0, 1, "_CPPv43absRK5array14StreamOrDevice", "abs"], [0, 1, 1, "_CPPv43absRK5array14StreamOrDevice", "abs::a"], [0, 1, 1, "_CPPv43absRK5array14StreamOrDevice", "abs::s"], [0, 0, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add"], [0, 1, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add::a"], [0, 1, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add::b"], [0, 1, 1, "_CPPv43addRK5arrayRK5array14StreamOrDevice", "add::s"], [0, 0, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::a"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::alpha"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::b"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::beta"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::c"], [0, 1, 1, "_CPPv45addmm5array5array5arrayRKfRKf14StreamOrDevice", "addmm::s"], [0, 0, 1, "_CPPv43allRK5array14StreamOrDevice", "all"], [0, 0, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all"], [0, 0, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all"], [0, 0, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all"], [0, 1, 1, "_CPPv43allRK5array14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::a"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::axes"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::axis"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::keepdims"], [0, 1, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all::keepdims"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::keepdims"], [0, 1, 1, "_CPPv43allRK5array14StreamOrDevice", "all::s"], [0, 1, 1, "_CPPv43allRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "all::s"], [0, 1, 1, "_CPPv43allRK5arrayb14StreamOrDevice", "all::s"], [0, 1, 1, "_CPPv43allRK5arrayib14StreamOrDevice", "all::s"], [0, 0, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::a"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::atol"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::b"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::equal_nan"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::rtol"], [0, 1, 1, "_CPPv48allcloseRK5arrayRK5arrayddb14StreamOrDevice", "allclose::s"], [0, 0, 1, "_CPPv43anyRK5array14StreamOrDevice", "any"], [0, 0, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any"], [0, 0, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any"], [0, 0, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any"], [0, 1, 1, "_CPPv43anyRK5array14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::a"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::axes"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::axis"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::keepdims"], [0, 1, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any::keepdims"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::keepdims"], [0, 1, 1, "_CPPv43anyRK5array14StreamOrDevice", "any::s"], [0, 1, 1, "_CPPv43anyRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "any::s"], [0, 1, 1, "_CPPv43anyRK5arrayb14StreamOrDevice", "any::s"], [0, 1, 1, "_CPPv43anyRK5arrayib14StreamOrDevice", "any::s"], [0, 0, 1, "_CPPv46aranged14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangedd14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeddd14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangei14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeii14StreamOrDevice", "arange"], [0, 0, 1, "_CPPv46arangeiii14StreamOrDevice", "arange"], [0, 1, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange::dtype"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::dtype"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::dtype"], [0, 1, 1, "_CPPv46aranged14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangedd14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangei14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeii14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::s"], [0, 1, 1, "_CPPv46arangedd14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeii14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::start"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::step"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::step"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::step"], [0, 1, 1, "_CPPv46aranged14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46aranged5Dtype14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangedd14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangedd5Dtype14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeddd14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeddd5Dtype14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangei14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeii14StreamOrDevice", "arange::stop"], [0, 1, 1, "_CPPv46arangeiii14StreamOrDevice", "arange::stop"], [0, 0, 1, "_CPPv46arccosRK5array14StreamOrDevice", "arccos"], [0, 1, 1, "_CPPv46arccosRK5array14StreamOrDevice", "arccos::a"], [0, 1, 1, "_CPPv46arccosRK5array14StreamOrDevice", "arccos::s"], [0, 0, 1, "_CPPv47arccoshRK5array14StreamOrDevice", "arccosh"], [0, 1, 1, "_CPPv47arccoshRK5array14StreamOrDevice", "arccosh::a"], [0, 1, 1, "_CPPv47arccoshRK5array14StreamOrDevice", "arccosh::s"], [0, 0, 1, "_CPPv46arcsinRK5array14StreamOrDevice", "arcsin"], [0, 1, 1, "_CPPv46arcsinRK5array14StreamOrDevice", "arcsin::a"], [0, 1, 1, "_CPPv46arcsinRK5array14StreamOrDevice", "arcsin::s"], [0, 0, 1, "_CPPv47arcsinhRK5array14StreamOrDevice", "arcsinh"], [0, 1, 1, "_CPPv47arcsinhRK5array14StreamOrDevice", "arcsinh::a"], [0, 1, 1, "_CPPv47arcsinhRK5array14StreamOrDevice", "arcsinh::s"], [0, 0, 1, "_CPPv46arctanRK5array14StreamOrDevice", "arctan"], [0, 0, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2"], [0, 1, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2::a"], [0, 1, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2::b"], [0, 1, 1, "_CPPv47arctan2RK5arrayRK5array14StreamOrDevice", "arctan2::s"], [0, 1, 1, "_CPPv46arctanRK5array14StreamOrDevice", "arctan::a"], [0, 1, 1, "_CPPv46arctanRK5array14StreamOrDevice", "arctan::s"], [0, 0, 1, "_CPPv47arctanhRK5array14StreamOrDevice", "arctanh"], [0, 1, 1, "_CPPv47arctanhRK5array14StreamOrDevice", "arctanh::a"], [0, 1, 1, "_CPPv47arctanhRK5array14StreamOrDevice", "arctanh::s"], [0, 0, 1, "_CPPv46argmaxRK5array14StreamOrDevice", "argmax"], [0, 0, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax"], [0, 0, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax"], [0, 1, 1, "_CPPv46argmaxRK5array14StreamOrDevice", "argmax::a"], [0, 1, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax::a"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::a"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::axis"], [0, 1, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax::keepdims"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::keepdims"], [0, 1, 1, "_CPPv46argmaxRK5array14StreamOrDevice", "argmax::s"], [0, 1, 1, "_CPPv46argmaxRK5arrayb14StreamOrDevice", "argmax::s"], [0, 1, 1, "_CPPv46argmaxRK5arrayib14StreamOrDevice", "argmax::s"], [0, 0, 1, "_CPPv46argminRK5array14StreamOrDevice", "argmin"], [0, 0, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin"], [0, 0, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin"], [0, 1, 1, "_CPPv46argminRK5array14StreamOrDevice", "argmin::a"], [0, 1, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin::a"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::a"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::axis"], [0, 1, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin::keepdims"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::keepdims"], [0, 1, 1, "_CPPv46argminRK5array14StreamOrDevice", "argmin::s"], [0, 1, 1, "_CPPv46argminRK5arrayb14StreamOrDevice", "argmin::s"], [0, 1, 1, "_CPPv46argminRK5arrayib14StreamOrDevice", "argmin::s"], [0, 0, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition"], [0, 0, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition"], [0, 1, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition::a"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::a"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::axis"], [0, 1, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition::kth"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::kth"], [0, 1, 1, "_CPPv412argpartitionRK5arrayi14StreamOrDevice", "argpartition::s"], [0, 1, 1, "_CPPv412argpartitionRK5arrayii14StreamOrDevice", "argpartition::s"], [0, 0, 1, "_CPPv47argsortRK5array14StreamOrDevice", "argsort"], [0, 0, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort"], [0, 1, 1, "_CPPv47argsortRK5array14StreamOrDevice", "argsort::a"], [0, 1, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort::a"], [0, 1, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort::axis"], [0, 1, 1, "_CPPv47argsortRK5array14StreamOrDevice", "argsort::s"], [0, 1, 1, "_CPPv47argsortRK5arrayi14StreamOrDevice", "argsort::s"], [0, 0, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal"], [0, 0, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal::a"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::a"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal::b"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::b"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::equal_nan"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5array14StreamOrDevice", "array_equal::s"], [0, 1, 1, "_CPPv411array_equalRK5arrayRK5arrayb14StreamOrDevice", "array_equal::s"], [0, 0, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::a"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::offset"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::s"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::shape"], [0, 1, 1, "_CPPv410as_strided5arrayNSt6vectorIiEENSt6vectorI6size_tEE6size_t14StreamOrDevice", "as_strided::strides"], [0, 0, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype"], [0, 1, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype::a"], [0, 1, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype::dtype"], [0, 1, 1, "_CPPv46astype5array5Dtype14StreamOrDevice", "astype::s"], [0, 0, 1, "_CPPv410atleast_1dRK5array14StreamOrDevice", "atleast_1d"], [0, 0, 1, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_1d"], [0, 1, 1, "_CPPv410atleast_1dRK5array14StreamOrDevice", "atleast_1d::a"], [0, 1, 1, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_1d::a"], [0, 1, 1, "_CPPv410atleast_1dRK5array14StreamOrDevice", "atleast_1d::s"], [0, 1, 1, "_CPPv410atleast_1dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_1d::s"], [0, 0, 1, "_CPPv410atleast_2dRK5array14StreamOrDevice", "atleast_2d"], [0, 0, 1, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_2d"], [0, 1, 1, "_CPPv410atleast_2dRK5array14StreamOrDevice", "atleast_2d::a"], [0, 1, 1, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_2d::a"], [0, 1, 1, "_CPPv410atleast_2dRK5array14StreamOrDevice", "atleast_2d::s"], [0, 1, 1, "_CPPv410atleast_2dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_2d::s"], [0, 0, 1, "_CPPv410atleast_3dRK5array14StreamOrDevice", "atleast_3d"], [0, 0, 1, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_3d"], [0, 1, 1, "_CPPv410atleast_3dRK5array14StreamOrDevice", "atleast_3d::a"], [0, 1, 1, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_3d::a"], [0, 1, 1, "_CPPv410atleast_3dRK5array14StreamOrDevice", "atleast_3d::s"], [0, 1, 1, "_CPPv410atleast_3dRKNSt6vectorI5arrayEE14StreamOrDevice", "atleast_3d::s"], [0, 0, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and"], [0, 1, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and::a"], [0, 1, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and::b"], [0, 1, 1, "_CPPv411bitwise_andRK5arrayRK5array14StreamOrDevice", "bitwise_and::s"], [0, 0, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or"], [0, 1, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or::a"], [0, 1, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or::b"], [0, 1, 1, "_CPPv410bitwise_orRK5arrayRK5array14StreamOrDevice", "bitwise_or::s"], [0, 0, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor"], [0, 1, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor::a"], [0, 1, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor::b"], [0, 1, 1, "_CPPv411bitwise_xorRK5arrayRK5array14StreamOrDevice", "bitwise_xor::s"], [0, 0, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::a"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::b"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::block_size"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::mask_lhs"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::mask_out"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::mask_rhs"], [0, 1, 1, "_CPPv415block_masked_mm5array5arrayiNSt8optionalI5arrayEENSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "block_masked_mm::s"], [0, 0, 1, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", "broadcast_arrays"], [0, 1, 1, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", "broadcast_arrays::inputs"], [0, 1, 1, "_CPPv416broadcast_arraysRKNSt6vectorI5arrayEE14StreamOrDevice", "broadcast_arrays::s"], [0, 0, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to"], [0, 1, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to::a"], [0, 1, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to::s"], [0, 1, 1, "_CPPv412broadcast_toRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "broadcast_to::shape"], [0, 0, 1, "_CPPv44ceilRK5array14StreamOrDevice", "ceil"], [0, 1, 1, "_CPPv44ceilRK5array14StreamOrDevice", "ceil::a"], [0, 1, 1, "_CPPv44ceilRK5array14StreamOrDevice", "ceil::s"], [0, 0, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::a"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::a_max"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::a_min"], [0, 1, 1, "_CPPv44clipRK5arrayRKNSt8optionalI5arrayEERKNSt8optionalI5arrayEE14StreamOrDevice", "clip::s"], [0, 0, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", "concatenate"], [0, 0, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", "concatenate::arrays"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate::arrays"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate::axis"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEE14StreamOrDevice", "concatenate::s"], [0, 1, 1, "_CPPv411concatenateRKNSt6vectorI5arrayEEi14StreamOrDevice", "concatenate::s"], [0, 0, 1, "_CPPv49conjugateRK5array14StreamOrDevice", "conjugate"], [0, 1, 1, "_CPPv49conjugateRK5array14StreamOrDevice", "conjugate::a"], [0, 1, 1, "_CPPv49conjugateRK5array14StreamOrDevice", "conjugate::s"], [0, 0, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::dilation"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::groups"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::input"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::padding"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::s"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::stride"], [0, 1, 1, "_CPPv46conv1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv1d::weight"], [0, 0, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::dilation"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::groups"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::input"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::padding"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::s"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::stride"], [0, 1, 1, "_CPPv46conv2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv2d::weight"], [0, 0, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::dilation"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::groups"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::input"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::padding"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::s"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::stride"], [0, 1, 1, "_CPPv46conv3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv3d::weight"], [0, 0, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general"], [0, 0, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::flip"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::flip"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::groups"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::groups"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input_dilation"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::input_dilation"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::kernel_dilation"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::kernel_dilation"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::padding"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::padding_hi"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::padding_lo"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::s"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::s"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::stride"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::stride"], [0, 1, 1, "_CPPv412conv_general5array5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::weight"], [0, 1, 1, "_CPPv412conv_generalRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEENSt6vectorIiEEib14StreamOrDevice", "conv_general::weight"], [0, 0, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::dilation"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::groups"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::input"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::padding"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::s"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::stride"], [0, 1, 1, "_CPPv416conv_transpose1dRK5arrayRK5arrayiiii14StreamOrDevice", "conv_transpose1d::weight"], [0, 0, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::dilation"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::groups"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::input"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::padding"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::s"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::stride"], [0, 1, 1, "_CPPv416conv_transpose2dRK5arrayRK5arrayRKNSt4pairIiiEERKNSt4pairIiiEERKNSt4pairIiiEEi14StreamOrDevice", "conv_transpose2d::weight"], [0, 0, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::dilation"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::groups"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::input"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::padding"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::s"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::stride"], [0, 1, 1, "_CPPv416conv_transpose3dRK5arrayRK5arrayRKNSt5tupleIiiiEERKNSt5tupleIiiiEERKNSt5tupleIiiiEEi14StreamOrDevice", "conv_transpose3d::weight"], [0, 0, 1, "_CPPv44copy5array14StreamOrDevice", "copy"], [0, 1, 1, "_CPPv44copy5array14StreamOrDevice", "copy::a"], [0, 1, 1, "_CPPv44copy5array14StreamOrDevice", "copy::s"], [0, 0, 1, "_CPPv43cosRK5array14StreamOrDevice", "cos"], [0, 1, 1, "_CPPv43cosRK5array14StreamOrDevice", "cos::a"], [0, 1, 1, "_CPPv43cosRK5array14StreamOrDevice", "cos::s"], [0, 0, 1, "_CPPv44coshRK5array14StreamOrDevice", "cosh"], [0, 1, 1, "_CPPv44coshRK5array14StreamOrDevice", "cosh::a"], [0, 1, 1, "_CPPv44coshRK5array14StreamOrDevice", "cosh::s"], [0, 0, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::a"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::axis"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::inclusive"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::reverse"], [0, 1, 1, "_CPPv46cummaxRK5arrayibb14StreamOrDevice", "cummax::s"], [0, 0, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::a"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::axis"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::inclusive"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::reverse"], [0, 1, 1, "_CPPv46cumminRK5arrayibb14StreamOrDevice", "cummin::s"], [0, 0, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::a"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::axis"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::inclusive"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::reverse"], [0, 1, 1, "_CPPv47cumprodRK5arrayibb14StreamOrDevice", "cumprod::s"], [0, 0, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::a"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::axis"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::inclusive"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::reverse"], [0, 1, 1, "_CPPv46cumsumRK5arrayibb14StreamOrDevice", "cumsum::s"], [0, 0, 1, "_CPPv47degreesRK5array14StreamOrDevice", "degrees"], [0, 1, 1, "_CPPv47degreesRK5array14StreamOrDevice", "degrees::a"], [0, 1, 1, "_CPPv47degreesRK5array14StreamOrDevice", "degrees::s"], [0, 0, 1, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", "depends"], [0, 1, 1, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", "depends::dependencies"], [0, 1, 1, "_CPPv47dependsRKNSt6vectorI5arrayEERKNSt6vectorI5arrayEE", "depends::inputs"], [0, 0, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::biases"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::bits"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::group_size"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::s"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::scales"], [0, 1, 1, "_CPPv410dequantizeRK5arrayRK5arrayRK5arrayii14StreamOrDevice", "dequantize::w"], [0, 0, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag"], [0, 1, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag::a"], [0, 1, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag::k"], [0, 1, 1, "_CPPv44diagRK5arrayi14StreamOrDevice", "diag::s"], [0, 0, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::a"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::axis1"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::axis2"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::offset"], [0, 1, 1, "_CPPv48diagonalRK5arrayiii14StreamOrDevice", "diagonal::s"], [0, 0, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide"], [0, 1, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide::a"], [0, 1, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide::b"], [0, 1, 1, "_CPPv46divideRK5arrayRK5array14StreamOrDevice", "divide::s"], [0, 0, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod"], [0, 1, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod::a"], [0, 1, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod::b"], [0, 1, 1, "_CPPv46divmodRK5arrayRK5array14StreamOrDevice", "divmod::s"], [0, 0, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal"], [0, 1, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal::a"], [0, 1, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal::b"], [0, 1, 1, "_CPPv45equalRK5arrayRK5array14StreamOrDevice", "equal::s"], [0, 0, 1, "_CPPv43erfRK5array14StreamOrDevice", "erf"], [0, 1, 1, "_CPPv43erfRK5array14StreamOrDevice", "erf::a"], [0, 1, 1, "_CPPv43erfRK5array14StreamOrDevice", "erf::s"], [0, 0, 1, "_CPPv46erfinvRK5array14StreamOrDevice", "erfinv"], [0, 1, 1, "_CPPv46erfinvRK5array14StreamOrDevice", "erfinv::a"], [0, 1, 1, "_CPPv46erfinvRK5array14StreamOrDevice", "erfinv::s"], [0, 0, 1, "_CPPv43expRK5array14StreamOrDevice", "exp"], [0, 1, 1, "_CPPv43expRK5array14StreamOrDevice", "exp::a"], [0, 1, 1, "_CPPv43expRK5array14StreamOrDevice", "exp::s"], [0, 0, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims"], [0, 0, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims::a"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims::a"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims::axes"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims::axis"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "expand_dims::s"], [0, 1, 1, "_CPPv411expand_dimsRK5arrayi14StreamOrDevice", "expand_dims::s"], [0, 0, 1, "_CPPv45expm1RK5array14StreamOrDevice", "expm1"], [0, 1, 1, "_CPPv45expm1RK5array14StreamOrDevice", "expm1::a"], [0, 1, 1, "_CPPv45expm1RK5array14StreamOrDevice", "expm1::s"], [0, 0, 1, "_CPPv43eyei14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyeii14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyeiii14StreamOrDevice", "eye"], [0, 0, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye"], [0, 1, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye::dtype"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::dtype"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::k"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::k"], [0, 1, 1, "_CPPv43eyeii14StreamOrDevice", "eye::m"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::m"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::m"], [0, 1, 1, "_CPPv43eyei14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyeii14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::n"], [0, 1, 1, "_CPPv43eyei14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyei5Dtype14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyeii14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyeiii14StreamOrDevice", "eye::s"], [0, 1, 1, "_CPPv43eyeiii5Dtype14StreamOrDevice", "eye::s"], [0, 0, 1, "_CPPv47flattenRK5array14StreamOrDevice", "flatten"], [0, 0, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten"], [0, 1, 1, "_CPPv47flattenRK5array14StreamOrDevice", "flatten::a"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::a"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::end_axis"], [0, 1, 1, "_CPPv47flattenRK5array14StreamOrDevice", "flatten::s"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::s"], [0, 1, 1, "_CPPv47flattenRK5arrayii14StreamOrDevice", "flatten::start_axis"], [0, 0, 1, "_CPPv45floorRK5array14StreamOrDevice", "floor"], [0, 1, 1, "_CPPv45floorRK5array14StreamOrDevice", "floor::a"], [0, 1, 1, "_CPPv45floorRK5array14StreamOrDevice", "floor::s"], [0, 0, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide"], [0, 1, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide::a"], [0, 1, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide::b"], [0, 1, 1, "_CPPv412floor_divideRK5arrayRK5array14StreamOrDevice", "floor_divide::s"], [0, 0, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full"], [0, 0, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full"], [0, 0, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full"], [0, 0, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full"], [0, 2, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::T"], [0, 2, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::T"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::dtype"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::dtype"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::s"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::shape"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T14StreamOrDevice", "full::val"], [0, 1, 1, "_CPPv4I0E4full5arrayNSt6vectorIiEE1T5Dtype14StreamOrDevice", "full::val"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array14StreamOrDevice", "full::vals"], [0, 1, 1, "_CPPv44fullNSt6vectorIiEE5array5Dtype14StreamOrDevice", "full::vals"], [0, 0, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather"], [0, 0, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::a"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::a"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::axes"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::axis"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::indices"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::indices"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::s"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::s"], [0, 1, 1, "_CPPv46gatherRK5arrayRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "gather::slice_sizes"], [0, 1, 1, "_CPPv46gatherRK5arrayRKNSt6vectorI5arrayEERKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "gather::slice_sizes"], [0, 0, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::a"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::b"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::lhs_indices"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::rhs_indices"], [0, 1, 1, "_CPPv49gather_mm5array5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEE14StreamOrDevice", "gather_mm::s"], [0, 0, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::biases"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::bits"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::group_size"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::lhs_indices"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::rhs_indices"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::s"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::scales"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::transpose"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::w"], [0, 1, 1, "_CPPv410gather_qmmRK5arrayRK5arrayRK5arrayRK5arrayNSt8optionalI5arrayEENSt8optionalI5arrayEEbii14StreamOrDevice", "gather_qmm::x"], [0, 0, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater"], [0, 1, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater::a"], [0, 1, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater::b"], [0, 1, 1, "_CPPv47greaterRK5arrayRK5array14StreamOrDevice", "greater::s"], [0, 0, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal"], [0, 1, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal::a"], [0, 1, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal::b"], [0, 1, 1, "_CPPv413greater_equalRK5arrayRK5array14StreamOrDevice", "greater_equal::s"], [0, 0, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform"], [0, 1, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform::a"], [0, 1, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform::s"], [0, 1, 1, "_CPPv418hadamard_transformRK5arrayNSt8optionalIfEE14StreamOrDevice", "hadamard_transform::scale"], [0, 0, 1, "_CPPv48identityi14StreamOrDevice", "identity"], [0, 0, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity"], [0, 1, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity::dtype"], [0, 1, 1, "_CPPv48identityi14StreamOrDevice", "identity::n"], [0, 1, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity::n"], [0, 1, 1, "_CPPv48identityi14StreamOrDevice", "identity::s"], [0, 1, 1, "_CPPv48identityi5Dtype14StreamOrDevice", "identity::s"], [0, 0, 1, "_CPPv44imagRK5array14StreamOrDevice", "imag"], [0, 1, 1, "_CPPv44imagRK5array14StreamOrDevice", "imag::a"], [0, 1, 1, "_CPPv44imagRK5array14StreamOrDevice", "imag::s"], [0, 0, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner"], [0, 1, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner::a"], [0, 1, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner::b"], [0, 1, 1, "_CPPv45innerRK5arrayRK5array14StreamOrDevice", "inner::s"], [0, 0, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::a"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::atol"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::b"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::equal_nan"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::rtol"], [0, 1, 1, "_CPPv47iscloseRK5arrayRK5arrayddb14StreamOrDevice", "isclose::s"], [0, 0, 1, "_CPPv48isfiniteRK5array14StreamOrDevice", "isfinite"], [0, 1, 1, "_CPPv48isfiniteRK5array14StreamOrDevice", "isfinite::a"], [0, 1, 1, "_CPPv48isfiniteRK5array14StreamOrDevice", "isfinite::s"], [0, 0, 1, "_CPPv45isinfRK5array14StreamOrDevice", "isinf"], [0, 1, 1, "_CPPv45isinfRK5array14StreamOrDevice", "isinf::a"], [0, 1, 1, "_CPPv45isinfRK5array14StreamOrDevice", "isinf::s"], [0, 0, 1, "_CPPv45isnanRK5array14StreamOrDevice", "isnan"], [0, 1, 1, "_CPPv45isnanRK5array14StreamOrDevice", "isnan::a"], [0, 1, 1, "_CPPv45isnanRK5array14StreamOrDevice", "isnan::s"], [0, 0, 1, "_CPPv48isneginfRK5array14StreamOrDevice", "isneginf"], [0, 1, 1, "_CPPv48isneginfRK5array14StreamOrDevice", "isneginf::a"], [0, 1, 1, "_CPPv48isneginfRK5array14StreamOrDevice", "isneginf::s"], [0, 0, 1, "_CPPv48isposinfRK5array14StreamOrDevice", "isposinf"], [0, 1, 1, "_CPPv48isposinfRK5array14StreamOrDevice", "isposinf::a"], [0, 1, 1, "_CPPv48isposinfRK5array14StreamOrDevice", "isposinf::s"], [0, 0, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift"], [0, 1, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift::a"], [0, 1, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift::b"], [0, 1, 1, "_CPPv410left_shiftRK5arrayRK5array14StreamOrDevice", "left_shift::s"], [0, 0, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less"], [0, 1, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less::a"], [0, 1, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less::b"], [0, 1, 1, "_CPPv44lessRK5arrayRK5array14StreamOrDevice", "less::s"], [0, 0, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal"], [0, 1, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal::a"], [0, 1, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal::b"], [0, 1, 1, "_CPPv410less_equalRK5arrayRK5array14StreamOrDevice", "less_equal::s"], [0, 0, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::dtype"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::num"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::s"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::start"], [0, 1, 1, "_CPPv48linspaceddi5Dtype14StreamOrDevice", "linspace::stop"], [0, 0, 1, "_CPPv43logRK5array14StreamOrDevice", "log"], [0, 0, 1, "_CPPv45log10RK5array14StreamOrDevice", "log10"], [0, 1, 1, "_CPPv45log10RK5array14StreamOrDevice", "log10::a"], [0, 1, 1, "_CPPv45log10RK5array14StreamOrDevice", "log10::s"], [0, 0, 1, "_CPPv45log1pRK5array14StreamOrDevice", "log1p"], [0, 1, 1, "_CPPv45log1pRK5array14StreamOrDevice", "log1p::a"], [0, 1, 1, "_CPPv45log1pRK5array14StreamOrDevice", "log1p::s"], [0, 0, 1, "_CPPv44log2RK5array14StreamOrDevice", "log2"], [0, 1, 1, "_CPPv44log2RK5array14StreamOrDevice", "log2::a"], [0, 1, 1, "_CPPv44log2RK5array14StreamOrDevice", "log2::s"], [0, 1, 1, "_CPPv43logRK5array14StreamOrDevice", "log::a"], [0, 1, 1, "_CPPv43logRK5array14StreamOrDevice", "log::s"], [0, 0, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp"], [0, 1, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp::a"], [0, 1, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp::b"], [0, 1, 1, "_CPPv49logaddexpRK5arrayRK5array14StreamOrDevice", "logaddexp::s"], [0, 0, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and"], [0, 1, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and::a"], [0, 1, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and::b"], [0, 1, 1, "_CPPv411logical_andRK5arrayRK5array14StreamOrDevice", "logical_and::s"], [0, 0, 1, "_CPPv411logical_notRK5array14StreamOrDevice", "logical_not"], [0, 1, 1, "_CPPv411logical_notRK5array14StreamOrDevice", "logical_not::a"], [0, 1, 1, "_CPPv411logical_notRK5array14StreamOrDevice", "logical_not::s"], [0, 0, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or"], [0, 1, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or::a"], [0, 1, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or::b"], [0, 1, 1, "_CPPv410logical_orRK5arrayRK5array14StreamOrDevice", "logical_or::s"], [0, 0, 1, "_CPPv49logsumexpRK5array14StreamOrDevice", "logsumexp"], [0, 0, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp"], [0, 0, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp"], [0, 0, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp"], [0, 1, 1, "_CPPv49logsumexpRK5array14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::a"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::axes"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::axis"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::keepdims"], [0, 1, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp::keepdims"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::keepdims"], [0, 1, 1, "_CPPv49logsumexpRK5array14StreamOrDevice", "logsumexp::s"], [0, 1, 1, "_CPPv49logsumexpRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "logsumexp::s"], [0, 1, 1, "_CPPv49logsumexpRK5arrayb14StreamOrDevice", "logsumexp::s"], [0, 1, 1, "_CPPv49logsumexpRK5arrayib14StreamOrDevice", "logsumexp::s"], [0, 0, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul"], [0, 1, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul::a"], [0, 1, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul::b"], [0, 1, 1, "_CPPv46matmulRK5arrayRK5array14StreamOrDevice", "matmul::s"], [0, 0, 1, "_CPPv43maxRK5array14StreamOrDevice", "max"], [0, 0, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max"], [0, 0, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max"], [0, 0, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max"], [0, 1, 1, "_CPPv43maxRK5array14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::a"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::axes"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::axis"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::keepdims"], [0, 1, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max::keepdims"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::keepdims"], [0, 1, 1, "_CPPv43maxRK5array14StreamOrDevice", "max::s"], [0, 1, 1, "_CPPv43maxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "max::s"], [0, 1, 1, "_CPPv43maxRK5arrayb14StreamOrDevice", "max::s"], [0, 1, 1, "_CPPv43maxRK5arrayib14StreamOrDevice", "max::s"], [0, 0, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum"], [0, 1, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum::a"], [0, 1, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum::b"], [0, 1, 1, "_CPPv47maximumRK5arrayRK5array14StreamOrDevice", "maximum::s"], [0, 0, 1, "_CPPv44meanRK5array14StreamOrDevice", "mean"], [0, 0, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean"], [0, 0, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean"], [0, 0, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean"], [0, 1, 1, "_CPPv44meanRK5array14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::a"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::axes"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::axis"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::keepdims"], [0, 1, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean::keepdims"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::keepdims"], [0, 1, 1, "_CPPv44meanRK5array14StreamOrDevice", "mean::s"], [0, 1, 1, "_CPPv44meanRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "mean::s"], [0, 1, 1, "_CPPv44meanRK5arrayb14StreamOrDevice", "mean::s"], [0, 1, 1, "_CPPv44meanRK5arrayib14StreamOrDevice", "mean::s"], [0, 0, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::arrays"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::indexing"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::s"], [0, 1, 1, "_CPPv48meshgridRKNSt6vectorI5arrayEEbNSt6stringE14StreamOrDevice", "meshgrid::sparse"], [0, 0, 1, "_CPPv43minRK5array14StreamOrDevice", "min"], [0, 0, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min"], [0, 0, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min"], [0, 0, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min"], [0, 1, 1, "_CPPv43minRK5array14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::a"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::axes"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::axis"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::keepdims"], [0, 1, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min::keepdims"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::keepdims"], [0, 1, 1, "_CPPv43minRK5array14StreamOrDevice", "min::s"], [0, 1, 1, "_CPPv43minRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "min::s"], [0, 1, 1, "_CPPv43minRK5arrayb14StreamOrDevice", "min::s"], [0, 1, 1, "_CPPv43minRK5arrayib14StreamOrDevice", "min::s"], [0, 0, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum"], [0, 1, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum::a"], [0, 1, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum::b"], [0, 1, 1, "_CPPv47minimumRK5arrayRK5array14StreamOrDevice", "minimum::s"], [0, 0, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::a"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::destination"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::s"], [0, 1, 1, "_CPPv48moveaxisRK5arrayii14StreamOrDevice", "moveaxis::source"], [0, 0, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply"], [0, 1, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply::a"], [0, 1, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply::b"], [0, 1, 1, "_CPPv48multiplyRK5arrayRK5array14StreamOrDevice", "multiply::s"], [0, 0, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::a"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::nan"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::neginf"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::posinf"], [0, 1, 1, "_CPPv410nan_to_numRK5arrayfKNSt8optionalIfEEKNSt8optionalIfEE14StreamOrDevice", "nan_to_num::s"], [0, 0, 1, "_CPPv48negativeRK5array14StreamOrDevice", "negative"], [0, 1, 1, "_CPPv48negativeRK5array14StreamOrDevice", "negative::a"], [0, 1, 1, "_CPPv48negativeRK5array14StreamOrDevice", "negative::s"], [0, 0, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal"], [0, 1, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal::a"], [0, 1, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal::b"], [0, 1, 1, "_CPPv49not_equalRK5arrayRK5array14StreamOrDevice", "not_equal::s"], [0, 0, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::a"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::axes"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::dtype"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::inverted"], [0, 1, 1, "_CPPv418number_of_elementsRK5arrayNSt6vectorIiEEb5Dtype14StreamOrDevice", "number_of_elements::s"], [0, 0, 1, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", "ones"], [0, 0, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones::dtype"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", "ones::s"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones::s"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE14StreamOrDevice", "ones::shape"], [0, 1, 1, "_CPPv44onesRKNSt6vectorIiEE5Dtype14StreamOrDevice", "ones::shape"], [0, 0, 1, "_CPPv49ones_likeRK5array14StreamOrDevice", "ones_like"], [0, 1, 1, "_CPPv49ones_likeRK5array14StreamOrDevice", "ones_like::a"], [0, 1, 1, "_CPPv49ones_likeRK5array14StreamOrDevice", "ones_like::s"], [0, 0, 1, "_CPPv4I0Ene5array1TRK5array", "operator!="], [0, 0, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!="], [0, 0, 1, "_CPPv4neRK5arrayRK5array", "operator!="], [0, 2, 1, "_CPPv4I0Ene5array1TRK5array", "operator!=::T"], [0, 2, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!=::T"], [0, 1, 1, "_CPPv4I0Ene5array1TRK5array", "operator!=::a"], [0, 1, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!=::a"], [0, 1, 1, "_CPPv4neRK5arrayRK5array", "operator!=::a"], [0, 1, 1, "_CPPv4I0Ene5array1TRK5array", "operator!=::b"], [0, 1, 1, "_CPPv4I0Ene5arrayRK5array1T", "operator!=::b"], [0, 1, 1, "_CPPv4neRK5arrayRK5array", "operator!=::b"], [0, 0, 1, "_CPPv4I0Erm5array1TRK5array", "operator%"], [0, 0, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%"], [0, 0, 1, "_CPPv4rmRK5arrayRK5array", "operator%"], [0, 2, 1, "_CPPv4I0Erm5array1TRK5array", "operator%::T"], [0, 2, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%::T"], [0, 1, 1, "_CPPv4I0Erm5array1TRK5array", "operator%::a"], [0, 1, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%::a"], [0, 1, 1, "_CPPv4rmRK5arrayRK5array", "operator%::a"], [0, 1, 1, "_CPPv4I0Erm5array1TRK5array", "operator%::b"], [0, 1, 1, "_CPPv4I0Erm5arrayRK5array1T", "operator%::b"], [0, 1, 1, "_CPPv4rmRK5arrayRK5array", "operator%::b"], [0, 0, 1, "_CPPv4anRK5arrayRK5array", "operator&"], [0, 0, 1, "_CPPv4aaRK5arrayRK5array", "operator&&"], [0, 1, 1, "_CPPv4aaRK5arrayRK5array", "operator&&::a"], [0, 1, 1, "_CPPv4aaRK5arrayRK5array", "operator&&::b"], [0, 1, 1, "_CPPv4anRK5arrayRK5array", "operator&::a"], [0, 1, 1, "_CPPv4anRK5arrayRK5array", "operator&::b"], [0, 0, 1, "_CPPv4I0Eml5array1TRK5array", "operator*"], [0, 0, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*"], [0, 0, 1, "_CPPv4mlRK5arrayRK5array", "operator*"], [0, 2, 1, "_CPPv4I0Eml5array1TRK5array", "operator*::T"], [0, 2, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*::T"], [0, 1, 1, "_CPPv4I0Eml5array1TRK5array", "operator*::a"], [0, 1, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*::a"], [0, 1, 1, "_CPPv4mlRK5arrayRK5array", "operator*::a"], [0, 1, 1, "_CPPv4I0Eml5array1TRK5array", "operator*::b"], [0, 1, 1, "_CPPv4I0Eml5arrayRK5array1T", "operator*::b"], [0, 1, 1, "_CPPv4mlRK5arrayRK5array", "operator*::b"], [0, 0, 1, "_CPPv4I0Epl5array1TRK5array", "operator+"], [0, 0, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+"], [0, 0, 1, "_CPPv4plRK5arrayRK5array", "operator+"], [0, 2, 1, "_CPPv4I0Epl5array1TRK5array", "operator+::T"], [0, 2, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+::T"], [0, 1, 1, "_CPPv4I0Epl5array1TRK5array", "operator+::a"], [0, 1, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+::a"], [0, 1, 1, "_CPPv4plRK5arrayRK5array", "operator+::a"], [0, 1, 1, "_CPPv4I0Epl5array1TRK5array", "operator+::b"], [0, 1, 1, "_CPPv4I0Epl5arrayRK5array1T", "operator+::b"], [0, 1, 1, "_CPPv4plRK5arrayRK5array", "operator+::b"], [0, 0, 1, "_CPPv4I0Emi5array1TRK5array", "operator-"], [0, 0, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-"], [0, 0, 1, "_CPPv4miRK5array", "operator-"], [0, 0, 1, "_CPPv4miRK5arrayRK5array", "operator-"], [0, 2, 1, "_CPPv4I0Emi5array1TRK5array", "operator-::T"], [0, 2, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-::T"], [0, 1, 1, "_CPPv4I0Emi5array1TRK5array", "operator-::a"], [0, 1, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-::a"], [0, 1, 1, "_CPPv4miRK5array", "operator-::a"], [0, 1, 1, "_CPPv4miRK5arrayRK5array", "operator-::a"], [0, 1, 1, "_CPPv4I0Emi5array1TRK5array", "operator-::b"], [0, 1, 1, "_CPPv4I0Emi5arrayRK5array1T", "operator-::b"], [0, 1, 1, "_CPPv4miRK5arrayRK5array", "operator-::b"], [0, 0, 1, "_CPPv4dvRK5arrayRK5array", "operator/"], [0, 0, 1, "_CPPv4dvRK5arrayd", "operator/"], [0, 0, 1, "_CPPv4dvdRK5array", "operator/"], [0, 1, 1, "_CPPv4dvRK5arrayRK5array", "operator/::a"], [0, 1, 1, "_CPPv4dvRK5arrayd", "operator/::a"], [0, 1, 1, "_CPPv4dvdRK5array", "operator/::a"], [0, 1, 1, "_CPPv4dvRK5arrayRK5array", "operator/::b"], [0, 1, 1, "_CPPv4dvRK5arrayd", "operator/::b"], [0, 1, 1, "_CPPv4dvdRK5array", "operator/::b"], [0, 0, 1, "_CPPv4I0Elt5array1TRK5array", "operator<"], [0, 0, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<"], [0, 0, 1, "_CPPv4ltRK5arrayRK5array", "operator<"], [0, 2, 1, "_CPPv4I0Elt5array1TRK5array", "operator<::T"], [0, 2, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<::T"], [0, 1, 1, "_CPPv4I0Elt5array1TRK5array", "operator<::a"], [0, 1, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<::a"], [0, 1, 1, "_CPPv4ltRK5arrayRK5array", "operator<::a"], [0, 1, 1, "_CPPv4I0Elt5array1TRK5array", "operator<::b"], [0, 1, 1, "_CPPv4I0Elt5arrayRK5array1T", "operator<::b"], [0, 1, 1, "_CPPv4ltRK5arrayRK5array", "operator<::b"], [0, 0, 1, "_CPPv4lsRK5arrayRK5array", "operator<<"], [0, 1, 1, "_CPPv4lsRK5arrayRK5array", "operator<<::a"], [0, 1, 1, "_CPPv4lsRK5arrayRK5array", "operator<<::b"], [0, 0, 1, "_CPPv4I0Ele5array1TRK5array", "operator<="], [0, 0, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<="], [0, 0, 1, "_CPPv4leRK5arrayRK5array", "operator<="], [0, 2, 1, "_CPPv4I0Ele5array1TRK5array", "operator<=::T"], [0, 2, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<=::T"], [0, 1, 1, "_CPPv4I0Ele5array1TRK5array", "operator<=::a"], [0, 1, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<=::a"], [0, 1, 1, "_CPPv4leRK5arrayRK5array", "operator<=::a"], [0, 1, 1, "_CPPv4I0Ele5array1TRK5array", "operator<=::b"], [0, 1, 1, "_CPPv4I0Ele5arrayRK5array1T", "operator<=::b"], [0, 1, 1, "_CPPv4leRK5arrayRK5array", "operator<=::b"], [0, 0, 1, "_CPPv4I0Eeq5array1TRK5array", "operator=="], [0, 0, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator=="], [0, 0, 1, "_CPPv4eqRK5arrayRK5array", "operator=="], [0, 2, 1, "_CPPv4I0Eeq5array1TRK5array", "operator==::T"], [0, 2, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator==::T"], [0, 1, 1, "_CPPv4I0Eeq5array1TRK5array", "operator==::a"], [0, 1, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator==::a"], [0, 1, 1, "_CPPv4eqRK5arrayRK5array", "operator==::a"], [0, 1, 1, "_CPPv4I0Eeq5array1TRK5array", "operator==::b"], [0, 1, 1, "_CPPv4I0Eeq5arrayRK5array1T", "operator==::b"], [0, 1, 1, "_CPPv4eqRK5arrayRK5array", "operator==::b"], [0, 0, 1, "_CPPv4I0Egt5array1TRK5array", "operator>"], [0, 0, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>"], [0, 0, 1, "_CPPv4gtRK5arrayRK5array", "operator>"], [0, 2, 1, "_CPPv4I0Egt5array1TRK5array", "operator>::T"], [0, 2, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>::T"], [0, 1, 1, "_CPPv4I0Egt5array1TRK5array", "operator>::a"], [0, 1, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>::a"], [0, 1, 1, "_CPPv4gtRK5arrayRK5array", "operator>::a"], [0, 1, 1, "_CPPv4I0Egt5array1TRK5array", "operator>::b"], [0, 1, 1, "_CPPv4I0Egt5arrayRK5array1T", "operator>::b"], [0, 1, 1, "_CPPv4gtRK5arrayRK5array", "operator>::b"], [0, 0, 1, "_CPPv4I0Ege5array1TRK5array", "operator>="], [0, 0, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>="], [0, 0, 1, "_CPPv4geRK5arrayRK5array", "operator>="], [0, 2, 1, "_CPPv4I0Ege5array1TRK5array", "operator>=::T"], [0, 2, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>=::T"], [0, 1, 1, "_CPPv4I0Ege5array1TRK5array", "operator>=::a"], [0, 1, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>=::a"], [0, 1, 1, "_CPPv4geRK5arrayRK5array", "operator>=::a"], [0, 1, 1, "_CPPv4I0Ege5array1TRK5array", "operator>=::b"], [0, 1, 1, "_CPPv4I0Ege5arrayRK5array1T", "operator>=::b"], [0, 1, 1, "_CPPv4geRK5arrayRK5array", "operator>=::b"], [0, 0, 1, "_CPPv4rsRK5arrayRK5array", "operator>>"], [0, 1, 1, "_CPPv4rsRK5arrayRK5array", "operator>>::a"], [0, 1, 1, "_CPPv4rsRK5arrayRK5array", "operator>>::b"], [0, 0, 1, "_CPPv4eoRK5arrayRK5array", "operator^"], [0, 1, 1, "_CPPv4eoRK5arrayRK5array", "operator^::a"], [0, 1, 1, "_CPPv4eoRK5arrayRK5array", "operator^::b"], [0, 0, 1, "_CPPv4orRK5arrayRK5array", "operator|"], [0, 1, 1, "_CPPv4orRK5arrayRK5array", "operator|::a"], [0, 1, 1, "_CPPv4orRK5arrayRK5array", "operator|::b"], [0, 0, 1, "_CPPv4ooRK5arrayRK5array", "operator||"], [0, 1, 1, "_CPPv4ooRK5arrayRK5array", "operator||::a"], [0, 1, 1, "_CPPv4ooRK5arrayRK5array", "operator||::b"], [0, 0, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer"], [0, 1, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer::a"], [0, 1, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer::b"], [0, 1, 1, "_CPPv45outerRK5arrayRK5array14StreamOrDevice", "outer::s"], [0, 0, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 0, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 0, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 0, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::a"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::axes"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::high_pad_size"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::low_pad_size"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::mode"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_value"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_width"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_width"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::pad_width"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt4pairIiiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorINSt4pairIiiEEEERK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 1, 1, "_CPPv43padRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEERKNSt6vectorIiEERK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 1, 1, "_CPPv43padRK5arrayiRK5arrayKNSt6stringE14StreamOrDevice", "pad::s"], [0, 0, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition"], [0, 0, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition"], [0, 1, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition::a"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::a"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::axis"], [0, 1, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition::kth"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::kth"], [0, 1, 1, "_CPPv49partitionRK5arrayi14StreamOrDevice", "partition::s"], [0, 1, 1, "_CPPv49partitionRK5arrayii14StreamOrDevice", "partition::s"], [0, 0, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power"], [0, 1, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power::a"], [0, 1, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power::b"], [0, 1, 1, "_CPPv45powerRK5arrayRK5array14StreamOrDevice", "power::s"], [0, 0, 1, "_CPPv44prodRK5array14StreamOrDevice", "prod"], [0, 0, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod"], [0, 0, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod"], [0, 0, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod"], [0, 1, 1, "_CPPv44prodRK5array14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::a"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::axes"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::axis"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::keepdims"], [0, 1, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod::keepdims"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::keepdims"], [0, 1, 1, "_CPPv44prodRK5array14StreamOrDevice", "prod::s"], [0, 1, 1, "_CPPv44prodRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "prod::s"], [0, 1, 1, "_CPPv44prodRK5arrayb14StreamOrDevice", "prod::s"], [0, 1, 1, "_CPPv44prodRK5arrayib14StreamOrDevice", "prod::s"], [0, 0, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::a"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::axis"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::indices"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::s"], [0, 1, 1, "_CPPv414put_along_axisRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "put_along_axis::values"], [0, 0, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::bits"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::group_size"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::s"], [0, 1, 1, "_CPPv48quantizeRK5arrayii14StreamOrDevice", "quantize::w"], [0, 0, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::biases"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::bits"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::group_size"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::s"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::scales"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::transpose"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::w"], [0, 1, 1, "_CPPv416quantized_matmul5array5array5array5arraybii14StreamOrDevice", "quantized_matmul::x"], [0, 0, 1, "_CPPv47radiansRK5array14StreamOrDevice", "radians"], [0, 1, 1, "_CPPv47radiansRK5array14StreamOrDevice", "radians::a"], [0, 1, 1, "_CPPv47radiansRK5array14StreamOrDevice", "radians::s"], [0, 0, 1, "_CPPv44realRK5array14StreamOrDevice", "real"], [0, 1, 1, "_CPPv44realRK5array14StreamOrDevice", "real::a"], [0, 1, 1, "_CPPv44realRK5array14StreamOrDevice", "real::s"], [0, 0, 1, "_CPPv410reciprocalRK5array14StreamOrDevice", "reciprocal"], [0, 1, 1, "_CPPv410reciprocalRK5array14StreamOrDevice", "reciprocal::a"], [0, 1, 1, "_CPPv410reciprocalRK5array14StreamOrDevice", "reciprocal::s"], [0, 0, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder"], [0, 1, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder::a"], [0, 1, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder::b"], [0, 1, 1, "_CPPv49remainderRK5arrayRK5array14StreamOrDevice", "remainder::s"], [0, 0, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat"], [0, 0, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat"], [0, 1, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat::arr"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::arr"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::axis"], [0, 1, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat::repeats"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::repeats"], [0, 1, 1, "_CPPv46repeatRK5arrayi14StreamOrDevice", "repeat::s"], [0, 1, 1, "_CPPv46repeatRK5arrayii14StreamOrDevice", "repeat::s"], [0, 0, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape"], [0, 1, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape::a"], [0, 1, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape::s"], [0, 1, 1, "_CPPv47reshapeRK5arrayNSt6vectorIiEE14StreamOrDevice", "reshape::shape"], [0, 0, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift"], [0, 1, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift::a"], [0, 1, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift::b"], [0, 1, 1, "_CPPv411right_shiftRK5arrayRK5array14StreamOrDevice", "right_shift::s"], [0, 0, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll"], [0, 0, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::a"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::axes"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::axes"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::axis"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::axis"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::s"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayi14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayiRKNSt6vectorIiEE14StreamOrDevice", "roll::shift"], [0, 1, 1, "_CPPv44rollRK5arrayii14StreamOrDevice", "roll::shift"], [0, 0, 1, "_CPPv45roundRK5array14StreamOrDevice", "round"], [0, 0, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round"], [0, 1, 1, "_CPPv45roundRK5array14StreamOrDevice", "round::a"], [0, 1, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round::a"], [0, 1, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round::decimals"], [0, 1, 1, "_CPPv45roundRK5array14StreamOrDevice", "round::s"], [0, 1, 1, "_CPPv45roundRK5arrayi14StreamOrDevice", "round::s"], [0, 0, 1, "_CPPv45rsqrtRK5array14StreamOrDevice", "rsqrt"], [0, 1, 1, "_CPPv45rsqrtRK5array14StreamOrDevice", "rsqrt::a"], [0, 1, 1, "_CPPv45rsqrtRK5array14StreamOrDevice", "rsqrt::s"], [0, 0, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter"], [0, 0, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::a"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::a"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::axes"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::axis"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::indices"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::indices"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::s"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::s"], [0, 1, 1, "_CPPv47scatterRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter::updates"], [0, 1, 1, "_CPPv47scatterRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter::updates"], [0, 0, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add"], [0, 0, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::a"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::a"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::axes"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::axis"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::indices"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::indices"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::s"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::s"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_add::updates"], [0, 1, 1, "_CPPv411scatter_addRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_add::updates"], [0, 0, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max"], [0, 0, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::a"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::a"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::axes"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::axis"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::indices"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::indices"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::s"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::s"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_max::updates"], [0, 1, 1, "_CPPv411scatter_maxRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_max::updates"], [0, 0, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min"], [0, 0, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::a"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::a"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::axes"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::axis"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::indices"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::indices"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::s"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::s"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_min::updates"], [0, 1, 1, "_CPPv411scatter_minRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_min::updates"], [0, 0, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod"], [0, 0, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::a"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::a"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::axes"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::axis"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::indices"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::indices"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::s"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::s"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRK5arrayRK5arrayi14StreamOrDevice", "scatter_prod::updates"], [0, 1, 1, "_CPPv412scatter_prodRK5arrayRKNSt6vectorI5arrayEERK5arrayRKNSt6vectorIiEE14StreamOrDevice", "scatter_prod::updates"], [0, 0, 1, "_CPPv47sigmoidRK5array14StreamOrDevice", "sigmoid"], [0, 1, 1, "_CPPv47sigmoidRK5array14StreamOrDevice", "sigmoid::a"], [0, 1, 1, "_CPPv47sigmoidRK5array14StreamOrDevice", "sigmoid::s"], [0, 0, 1, "_CPPv44signRK5array14StreamOrDevice", "sign"], [0, 1, 1, "_CPPv44signRK5array14StreamOrDevice", "sign::a"], [0, 1, 1, "_CPPv44signRK5array14StreamOrDevice", "sign::s"], [0, 0, 1, "_CPPv43sinRK5array14StreamOrDevice", "sin"], [0, 1, 1, "_CPPv43sinRK5array14StreamOrDevice", "sin::a"], [0, 1, 1, "_CPPv43sinRK5array14StreamOrDevice", "sin::s"], [0, 0, 1, "_CPPv44sinhRK5array14StreamOrDevice", "sinh"], [0, 1, 1, "_CPPv44sinhRK5array14StreamOrDevice", "sinh::a"], [0, 1, 1, "_CPPv44sinhRK5array14StreamOrDevice", "sinh::s"], [0, 0, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice"], [0, 0, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::a"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::a"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::s"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::s"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::start"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::start"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::stop"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::stop"], [0, 1, 1, "_CPPv45sliceRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice::strides"], [0, 0, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update"], [0, 0, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::s"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::s"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::src"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::src"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::start"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::start"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::stop"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::stop"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::strides"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::update"], [0, 1, 1, "_CPPv412slice_updateRK5arrayRK5arrayNSt6vectorIiEENSt6vectorIiEENSt6vectorIiEE14StreamOrDevice", "slice_update::update"], [0, 0, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax"], [0, 0, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax"], [0, 0, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::a"], [0, 1, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax::a"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::a"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::axes"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::axis"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::precise"], [0, 1, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax::precise"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::precise"], [0, 1, 1, "_CPPv47softmaxRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "softmax::s"], [0, 1, 1, "_CPPv47softmaxRK5arrayb14StreamOrDevice", "softmax::s"], [0, 1, 1, "_CPPv47softmaxRK5arrayib14StreamOrDevice", "softmax::s"], [0, 0, 1, "_CPPv44sortRK5array14StreamOrDevice", "sort"], [0, 0, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort"], [0, 1, 1, "_CPPv44sortRK5array14StreamOrDevice", "sort::a"], [0, 1, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort::a"], [0, 1, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort::axis"], [0, 1, 1, "_CPPv44sortRK5array14StreamOrDevice", "sort::s"], [0, 1, 1, "_CPPv44sortRK5arrayi14StreamOrDevice", "sort::s"], [0, 0, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split"], [0, 0, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split"], [0, 0, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split"], [0, 0, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::a"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::axis"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::axis"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split::indices"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::indices"], [0, 1, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split::num_splits"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::num_splits"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "split::s"], [0, 1, 1, "_CPPv45splitRK5arrayRKNSt6vectorIiEEi14StreamOrDevice", "split::s"], [0, 1, 1, "_CPPv45splitRK5arrayi14StreamOrDevice", "split::s"], [0, 1, 1, "_CPPv45splitRK5arrayii14StreamOrDevice", "split::s"], [0, 0, 1, "_CPPv44sqrtRK5array14StreamOrDevice", "sqrt"], [0, 1, 1, "_CPPv44sqrtRK5array14StreamOrDevice", "sqrt::a"], [0, 1, 1, "_CPPv44sqrtRK5array14StreamOrDevice", "sqrt::s"], [0, 0, 1, "_CPPv46squareRK5array14StreamOrDevice", "square"], [0, 1, 1, "_CPPv46squareRK5array14StreamOrDevice", "square::a"], [0, 1, 1, "_CPPv46squareRK5array14StreamOrDevice", "square::s"], [0, 0, 1, "_CPPv47squeezeRK5array14StreamOrDevice", "squeeze"], [0, 0, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze"], [0, 0, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze"], [0, 1, 1, "_CPPv47squeezeRK5array14StreamOrDevice", "squeeze::a"], [0, 1, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze::a"], [0, 1, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze::a"], [0, 1, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze::axes"], [0, 1, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze::axis"], [0, 1, 1, "_CPPv47squeezeRK5array14StreamOrDevice", "squeeze::s"], [0, 1, 1, "_CPPv47squeezeRK5arrayRKNSt6vectorIiEE14StreamOrDevice", "squeeze::s"], [0, 1, 1, "_CPPv47squeezeRK5arrayi14StreamOrDevice", "squeeze::s"], [0, 0, 1, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", "stack"], [0, 0, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", "stack::arrays"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack::arrays"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack::axis"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEE14StreamOrDevice", "stack::s"], [0, 1, 1, "_CPPv45stackRKNSt6vectorI5arrayEEi14StreamOrDevice", "stack::s"], [0, 0, 1, "_CPPv4StRK5array14StreamOrDevice", "std"], [0, 0, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std"], [0, 0, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std"], [0, 0, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std"], [0, 1, 1, "_CPPv4StRK5array14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::a"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::axes"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::axis"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::ddof"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::ddof"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::ddof"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::keepdims"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::keepdims"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::keepdims"], [0, 1, 1, "_CPPv4StRK5array14StreamOrDevice", "std::s"], [0, 1, 1, "_CPPv4StRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "std::s"], [0, 1, 1, "_CPPv4StRK5arraybi14StreamOrDevice", "std::s"], [0, 1, 1, "_CPPv4StRK5arrayibi14StreamOrDevice", "std::s"], [0, 0, 1, "_CPPv413stop_gradientRK5array14StreamOrDevice", "stop_gradient"], [0, 1, 1, "_CPPv413stop_gradientRK5array14StreamOrDevice", "stop_gradient::a"], [0, 1, 1, "_CPPv413stop_gradientRK5array14StreamOrDevice", "stop_gradient::s"], [0, 0, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract"], [0, 1, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract::a"], [0, 1, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract::b"], [0, 1, 1, "_CPPv48subtractRK5arrayRK5array14StreamOrDevice", "subtract::s"], [0, 0, 1, "_CPPv43sumRK5array14StreamOrDevice", "sum"], [0, 0, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum"], [0, 0, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum"], [0, 0, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum"], [0, 1, 1, "_CPPv43sumRK5array14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::a"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::axes"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::axis"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::keepdims"], [0, 1, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum::keepdims"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::keepdims"], [0, 1, 1, "_CPPv43sumRK5array14StreamOrDevice", "sum::s"], [0, 1, 1, "_CPPv43sumRK5arrayRKNSt6vectorIiEEb14StreamOrDevice", "sum::s"], [0, 1, 1, "_CPPv43sumRK5arrayb14StreamOrDevice", "sum::s"], [0, 1, 1, "_CPPv43sumRK5arrayib14StreamOrDevice", "sum::s"], [0, 0, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::a"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::axis1"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::axis2"], [0, 1, 1, "_CPPv48swapaxesRK5arrayii14StreamOrDevice", "swapaxes::s"], [0, 0, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take"], [0, 0, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take"], [0, 0, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take"], [0, 0, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take"], [0, 1, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::a"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::axis"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::axis"], [0, 1, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take::index"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::index"], [0, 1, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take::indices"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::indices"], [0, 1, 1, "_CPPv44takeRK5arrayRK5array14StreamOrDevice", "take::s"], [0, 1, 1, "_CPPv44takeRK5arrayRK5arrayi14StreamOrDevice", "take::s"], [0, 1, 1, "_CPPv44takeRK5arrayi14StreamOrDevice", "take::s"], [0, 1, 1, "_CPPv44takeRK5arrayii14StreamOrDevice", "take::s"], [0, 0, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::a"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::axis"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::indices"], [0, 1, 1, "_CPPv415take_along_axisRK5arrayRK5arrayi14StreamOrDevice", "take_along_axis::s"], [0, 0, 1, "_CPPv43tanRK5array14StreamOrDevice", "tan"], [0, 1, 1, "_CPPv43tanRK5array14StreamOrDevice", "tan::a"], [0, 1, 1, "_CPPv43tanRK5array14StreamOrDevice", "tan::s"], [0, 0, 1, "_CPPv44tanhRK5array14StreamOrDevice", "tanh"], [0, 1, 1, "_CPPv44tanhRK5array14StreamOrDevice", "tanh::a"], [0, 1, 1, "_CPPv44tanhRK5array14StreamOrDevice", "tanh::s"], [0, 0, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot"], [0, 0, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::a"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::a"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::axes_a"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::axes_b"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::axis"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::b"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::b"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayKi14StreamOrDevice", "tensordot::s"], [0, 1, 1, "_CPPv49tensordotRK5arrayRK5arrayRKNSt6vectorIiEERKNSt6vectorIiEE14StreamOrDevice", "tensordot::s"], [0, 0, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile"], [0, 1, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile::arr"], [0, 1, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile::reps"], [0, 1, 1, "_CPPv44tileRK5arrayNSt6vectorIiEE14StreamOrDevice", "tile::s"], [0, 0, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk"], [0, 0, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk"], [0, 1, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk::a"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::a"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::axis"], [0, 1, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk::k"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::k"], [0, 1, 1, "_CPPv44topkRK5arrayi14StreamOrDevice", "topk::s"], [0, 1, 1, "_CPPv44topkRK5arrayii14StreamOrDevice", "topk::s"], [0, 0, 1, "_CPPv45traceRK5array14StreamOrDevice", "trace"], [0, 0, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace"], [0, 0, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace"], [0, 1, 1, "_CPPv45traceRK5array14StreamOrDevice", "trace::a"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::a"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::a"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::axis1"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::axis1"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::axis2"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::axis2"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::dtype"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::offset"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::offset"], [0, 1, 1, "_CPPv45traceRK5array14StreamOrDevice", "trace::s"], [0, 1, 1, "_CPPv45traceRK5arrayiii14StreamOrDevice", "trace::s"], [0, 1, 1, "_CPPv45traceRK5arrayiii5Dtype14StreamOrDevice", "trace::s"], [0, 0, 1, "_CPPv49transposeRK5array14StreamOrDevice", "transpose"], [0, 0, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose"], [0, 0, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose"], [0, 1, 1, "_CPPv49transposeRK5array14StreamOrDevice", "transpose::a"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose::a"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose::a"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose::axes"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose::axes"], [0, 1, 1, "_CPPv49transposeRK5array14StreamOrDevice", "transpose::s"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt16initializer_listIiEE14StreamOrDevice", "transpose::s"], [0, 1, 1, "_CPPv49transposeRK5arrayNSt6vectorIiEE14StreamOrDevice", "transpose::s"], [0, 0, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri"], [0, 0, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::k"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::m"], [0, 1, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri::n"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::n"], [0, 1, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri::s"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::s"], [0, 1, 1, "_CPPv43trii5Dtype14StreamOrDevice", "tri::type"], [0, 1, 1, "_CPPv43triiii5Dtype14StreamOrDevice", "tri::type"], [0, 0, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril"], [0, 1, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril::k"], [0, 1, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril::s"], [0, 1, 1, "_CPPv44tril5arrayi14StreamOrDevice", "tril::x"], [0, 0, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu"], [0, 1, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu::k"], [0, 1, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu::s"], [0, 1, 1, "_CPPv44triu5arrayi14StreamOrDevice", "triu::x"], [0, 0, 1, "_CPPv43varRK5array14StreamOrDevice", "var"], [0, 0, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var"], [0, 0, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var"], [0, 0, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var"], [0, 1, 1, "_CPPv43varRK5array14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::a"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::axes"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::axis"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::ddof"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::ddof"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::ddof"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::keepdims"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::keepdims"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::keepdims"], [0, 1, 1, "_CPPv43varRK5array14StreamOrDevice", "var::s"], [0, 1, 1, "_CPPv43varRK5arrayRKNSt6vectorIiEEbi14StreamOrDevice", "var::s"], [0, 1, 1, "_CPPv43varRK5arraybi14StreamOrDevice", "var::s"], [0, 1, 1, "_CPPv43varRK5arrayibi14StreamOrDevice", "var::s"], [0, 0, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view"], [0, 1, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view::a"], [0, 1, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view::dtype"], [0, 1, 1, "_CPPv44viewRK5arrayRK5Dtype14StreamOrDevice", "view::s"], [0, 0, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::condition"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::s"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::x"], [0, 1, 1, "_CPPv45whereRK5arrayRK5arrayRK5array14StreamOrDevice", "where::y"], [0, 0, 1, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", "zeros"], [0, 0, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros::dtype"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", "zeros::s"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros::s"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE14StreamOrDevice", "zeros::shape"], [0, 1, 1, "_CPPv45zerosRKNSt6vectorIiEE5Dtype14StreamOrDevice", "zeros::shape"], [0, 0, 1, "_CPPv410zeros_likeRK5array14StreamOrDevice", "zeros_like"], [0, 1, 1, "_CPPv410zeros_likeRK5array14StreamOrDevice", "zeros_like::a"], [0, 1, 1, "_CPPv410zeros_likeRK5array14StreamOrDevice", "zeros_like::s"]], "mlx.core": [[9, 3, 1, "", "Device"], [10, 3, 1, "", "Dtype"], [11, 3, 1, "", "DtypeCategory"], [315, 3, 1, "", "Stream"], [12, 5, 1, "", "abs"], [13, 5, 1, "", "add"], [14, 5, 1, "", "addmm"], [15, 5, 1, "", "all"], [16, 5, 1, "", "allclose"], [17, 5, 1, "", "any"], [18, 5, 1, "", "arange"], [19, 5, 1, "", "arccos"], [20, 5, 1, "", "arccosh"], [21, 5, 1, "", "arcsin"], [22, 5, 1, "", "arcsinh"], [23, 5, 1, "", "arctan"], [24, 5, 1, "", "arctan2"], [25, 5, 1, "", "arctanh"], [26, 5, 1, "", "argmax"], [27, 5, 1, "", "argmin"], [28, 5, 1, "", "argpartition"], [29, 5, 1, "", "argsort"], [30, 3, 1, "", "array"], [82, 5, 1, "", "array_equal"], [83, 5, 1, "", "as_strided"], [84, 5, 1, "", "atleast_1d"], [85, 5, 1, "", "atleast_2d"], [86, 5, 1, "", "atleast_3d"], [87, 5, 1, "", "bitwise_and"], [88, 5, 1, "", "bitwise_or"], [89, 5, 1, "", "bitwise_xor"], [90, 5, 1, "", "block_masked_mm"], [91, 5, 1, "", "broadcast_to"], [92, 5, 1, "", "ceil"], [93, 5, 1, "", "clip"], [94, 5, 1, "", "compile"], [95, 5, 1, "", "concatenate"], [96, 5, 1, "", "conj"], [97, 5, 1, "", "conjugate"], [98, 5, 1, "", "conv1d"], [99, 5, 1, "", "conv2d"], [100, 5, 1, "", "conv3d"], [101, 5, 1, "", "conv_general"], [102, 5, 1, "", "conv_transpose1d"], [103, 5, 1, "", "conv_transpose2d"], [104, 5, 1, "", "conv_transpose3d"], [105, 5, 1, "", "convolve"], [106, 5, 1, "", "cos"], [107, 5, 1, "", "cosh"], [108, 5, 1, "", "cummax"], [109, 5, 1, "", "cummin"], [110, 5, 1, "", "cumprod"], [111, 5, 1, "", "cumsum"], [112, 3, 1, "", "custom_function"], [113, 5, 1, "", "default_device"], [114, 5, 1, "", "default_stream"], [115, 5, 1, "", "degrees"], [116, 5, 1, "", "dequantize"], [117, 5, 1, "", "diag"], [118, 5, 1, "", "diagonal"], [119, 5, 1, "", "disable_compile"], [128, 5, 1, "", "divide"], [129, 5, 1, "", "divmod"], [130, 5, 1, "", "einsum"], [131, 5, 1, "", "einsum_path"], [132, 5, 1, "", "enable_compile"], [133, 5, 1, "", "equal"], [134, 5, 1, "", "erf"], [135, 5, 1, "", "erfinv"], [136, 5, 1, "", "eval"], [137, 5, 1, "", "exp"], [138, 5, 1, "", "expand_dims"], [139, 5, 1, "", "expm1"], [140, 5, 1, "", "eye"], [159, 5, 1, "", "flatten"], [160, 5, 1, "", "floor"], [161, 5, 1, "", "floor_divide"], [162, 5, 1, "", "full"], [163, 5, 1, "", "gather_mm"], [164, 5, 1, "", "gather_qmm"], [165, 5, 1, "", "grad"], [166, 5, 1, "", "greater"], [167, 5, 1, "", "greater_equal"], [168, 5, 1, "", "hadamard_transform"], [169, 5, 1, "", "identity"], [170, 5, 1, "", "imag"], [171, 5, 1, "", "inner"], [172, 5, 1, "", "isclose"], [173, 5, 1, "", "isfinite"], [174, 5, 1, "", "isinf"], [175, 5, 1, "", "isnan"], [176, 5, 1, "", "isneginf"], [177, 5, 1, "", "isposinf"], [178, 5, 1, "", "issubdtype"], [179, 5, 1, "", "jvp"], [180, 5, 1, "", "left_shift"], [181, 5, 1, "", "less"], [182, 5, 1, "", "less_equal"], [193, 5, 1, "", "linspace"], [194, 5, 1, "", "load"], [195, 5, 1, "", "log"], [196, 5, 1, "", "log10"], [197, 5, 1, "", "log1p"], [198, 5, 1, "", "log2"], [199, 5, 1, "", "logaddexp"], [200, 5, 1, "", "logical_and"], [201, 5, 1, "", "logical_not"], [202, 5, 1, "", "logical_or"], [203, 5, 1, "", "logsumexp"], [204, 5, 1, "", "matmul"], [205, 5, 1, "", "max"], [206, 5, 1, "", "maximum"], [207, 5, 1, "", "mean"], [208, 5, 1, "", "meshgrid"], [221, 5, 1, "", "min"], [222, 5, 1, "", "minimum"], [223, 5, 1, "", "moveaxis"], [224, 5, 1, "", "multiply"], [225, 5, 1, "", "nan_to_num"], [226, 5, 1, "", "negative"], [227, 5, 1, "", "new_stream"], [228, 5, 1, "", "not_equal"], [229, 5, 1, "", "ones"], [230, 5, 1, "", "ones_like"], [231, 5, 1, "", "outer"], [232, 5, 1, "", "pad"], [233, 5, 1, "", "partition"], [234, 5, 1, "", "power"], [235, 5, 1, "", "prod"], [236, 5, 1, "", "put_along_axis"], [237, 5, 1, "", "quantize"], [238, 5, 1, "", "quantized_matmul"], [239, 5, 1, "", "radians"], [253, 5, 1, "", "real"], [254, 5, 1, "", "reciprocal"], [255, 5, 1, "", "remainder"], [256, 5, 1, "", "repeat"], [257, 5, 1, "", "reshape"], [258, 5, 1, "", "right_shift"], [259, 5, 1, "", "roll"], [260, 5, 1, "", "round"], [261, 5, 1, "", "rsqrt"], [262, 5, 1, "", "save"], [263, 5, 1, "", "save_gguf"], [264, 5, 1, "", "save_safetensors"], [265, 5, 1, "", "savez"], [266, 5, 1, "", "savez_compressed"], [267, 5, 1, "", "set_default_device"], [268, 5, 1, "", "set_default_stream"], [269, 5, 1, "", "sigmoid"], [270, 5, 1, "", "sign"], [271, 5, 1, "", "sin"], [272, 5, 1, "", "sinh"], [273, 5, 1, "", "softmax"], [274, 5, 1, "", "sort"], [275, 5, 1, "", "split"], [276, 5, 1, "", "sqrt"], [277, 5, 1, "", "square"], [278, 5, 1, "", "squeeze"], [279, 5, 1, "", "stack"], [280, 5, 1, "", "std"], [281, 5, 1, "", "stop_gradient"], [282, 5, 1, "", "stream"], [283, 5, 1, "", "subtract"], [284, 5, 1, "", "sum"], [285, 5, 1, "", "swapaxes"], [286, 5, 1, "", "synchronize"], [287, 5, 1, "", "take"], [288, 5, 1, "", "take_along_axis"], [289, 5, 1, "", "tan"], [290, 5, 1, "", "tanh"], [291, 5, 1, "", "tensordot"], [292, 5, 1, "", "tile"], [293, 5, 1, "", "topk"], [294, 5, 1, "", "trace"], [295, 5, 1, "", "transpose"], [296, 5, 1, "", "tri"], [297, 5, 1, "", "tril"], [298, 5, 1, "", "triu"], [299, 5, 1, "", "value_and_grad"], [300, 5, 1, "", "var"], [301, 5, 1, "", "view"], [302, 5, 1, "", "vjp"], [303, 5, 1, "", "vmap"], [304, 5, 1, "", "where"], [305, 5, 1, "", "zeros"], [306, 5, 1, "", "zeros_like"]], "mlx.core.Device": [[9, 4, 1, "", "__init__"]], "mlx.core.Dtype": [[10, 4, 1, "", "__init__"]], "mlx.core.DtypeCategory": [[11, 4, 1, "", "__init__"]], "mlx.core.Stream": [[315, 4, 1, "", "__init__"]], "mlx.core.array": [[31, 6, 1, "", "T"], [30, 4, 1, "", "__init__"], [32, 4, 1, "", "abs"], [33, 4, 1, "", "all"], [34, 4, 1, "", "any"], [35, 4, 1, "", "argmax"], [36, 4, 1, "", "argmin"], [37, 4, 1, "", "astype"], [38, 6, 1, "", "at"], [39, 4, 1, "", "conj"], [40, 4, 1, "", "cos"], [41, 4, 1, "", "cummax"], [42, 4, 1, "", "cummin"], [43, 4, 1, "", "cumprod"], [44, 4, 1, "", "cumsum"], [45, 4, 1, "", "diag"], [46, 4, 1, "", "diagonal"], [47, 6, 1, "", "dtype"], [48, 4, 1, "", "exp"], [49, 4, 1, "", "flatten"], [50, 4, 1, "", "item"], [51, 6, 1, "", "itemsize"], [52, 4, 1, "", "log"], [53, 4, 1, "", "log10"], [54, 4, 1, "", "log1p"], [55, 4, 1, "", "log2"], [56, 4, 1, "", "logsumexp"], [57, 4, 1, "", "max"], [58, 4, 1, "", "mean"], [59, 4, 1, "", "min"], [60, 4, 1, "", "moveaxis"], [61, 6, 1, "", "nbytes"], [62, 6, 1, "", "ndim"], [63, 4, 1, "", "prod"], [64, 4, 1, "", "reciprocal"], [65, 4, 1, "", "reshape"], [66, 4, 1, "", "round"], [67, 4, 1, "", "rsqrt"], [68, 6, 1, "", "shape"], [69, 4, 1, "", "sin"], [70, 6, 1, "", "size"], [71, 4, 1, "", "split"], [72, 4, 1, "", "sqrt"], [73, 4, 1, "", "square"], [74, 4, 1, "", "squeeze"], [75, 4, 1, "", "std"], [76, 4, 1, "", "sum"], [77, 4, 1, "", "swapaxes"], [78, 4, 1, "", "tolist"], [79, 4, 1, "", "transpose"], [80, 4, 1, "", "var"], [81, 4, 1, "", "view"]], "mlx.core.custom_function": [[112, 4, 1, "", "__init__"]], "mlx.core.distributed": [[120, 3, 1, "", "Group"], [121, 5, 1, "", "all_gather"], [122, 5, 1, "", "all_sum"], [123, 5, 1, "", "init"], [124, 5, 1, "", "is_available"], [125, 5, 1, "", "recv"], [126, 5, 1, "", "recv_like"], [127, 5, 1, "", "send"]], "mlx.core.distributed.Group": [[120, 4, 1, "", "__init__"]], "mlx.core.fast": [[141, 5, 1, "", "affine_quantize"], [142, 5, 1, "", "layer_norm"], [143, 5, 1, "", "metal_kernel"], [144, 5, 1, "", "rms_norm"], [145, 5, 1, "", "rope"], [146, 5, 1, "", "scaled_dot_product_attention"]], "mlx.core.fft": [[147, 5, 1, "", "fft"], [148, 5, 1, "", "fft2"], [149, 5, 1, "", "fftn"], [150, 5, 1, "", "ifft"], [151, 5, 1, "", "ifft2"], [152, 5, 1, "", "ifftn"], [153, 5, 1, "", "irfft"], [154, 5, 1, "", "irfft2"], [155, 5, 1, "", "irfftn"], [156, 5, 1, "", "rfft"], [157, 5, 1, "", "rfft2"], [158, 5, 1, "", "rfftn"]], "mlx.core.linalg": [[183, 5, 1, "", "cholesky"], [184, 5, 1, "", "cholesky_inv"], [185, 5, 1, "", "cross"], [186, 5, 1, "", "eigh"], [187, 5, 1, "", "eigvalsh"], [188, 5, 1, "", "inv"], [189, 5, 1, "", "norm"], [190, 5, 1, "", "qr"], [191, 5, 1, "", "svd"], [192, 5, 1, "", "tri_inv"]], "mlx.core.metal": [[209, 5, 1, "", "clear_cache"], [210, 5, 1, "", "device_info"], [211, 5, 1, "", "get_active_memory"], [212, 5, 1, "", "get_cache_memory"], [213, 5, 1, "", "get_peak_memory"], [214, 5, 1, "", "is_available"], [215, 5, 1, "", "reset_peak_memory"], [216, 5, 1, "", "set_cache_limit"], [217, 5, 1, "", "set_memory_limit"], [218, 5, 1, "", "set_wired_limit"], [219, 5, 1, "", "start_capture"], [220, 5, 1, "", "stop_capture"]], "mlx.core.random": [[240, 5, 1, "", "bernoulli"], [241, 5, 1, "", "categorical"], [242, 5, 1, "", "gumbel"], [243, 5, 1, "", "key"], [244, 5, 1, "", "laplace"], [245, 5, 1, "", "multivariate_normal"], [246, 5, 1, "", "normal"], [247, 5, 1, "", "permutation"], [248, 5, 1, "", "randint"], [249, 5, 1, "", "seed"], [250, 5, 1, "", "split"], [251, 5, 1, "", "truncated_normal"], [252, 5, 1, "", "uniform"]], "mlx.nn": [[325, 3, 1, "", "ALiBi"], [326, 3, 1, "", "AvgPool1d"], [327, 3, 1, "", "AvgPool2d"], [328, 3, 1, "", "BatchNorm"], [329, 3, 1, "", "CELU"], [330, 3, 1, "", "Conv1d"], [331, 3, 1, "", "Conv2d"], [332, 3, 1, "", "Conv3d"], [333, 3, 1, "", "ConvTranspose1d"], [334, 3, 1, "", "ConvTranspose2d"], [335, 3, 1, "", "ConvTranspose3d"], [336, 3, 1, "", "Dropout"], [337, 3, 1, "", "Dropout2d"], [338, 3, 1, "", "Dropout3d"], [339, 3, 1, "", "ELU"], [340, 3, 1, "", "Embedding"], [341, 3, 1, "", "GELU"], [342, 3, 1, "", "GLU"], [343, 3, 1, "", "GRU"], [344, 3, 1, "", "GroupNorm"], [345, 3, 1, "", "HardShrink"], [346, 3, 1, "", "HardTanh"], [347, 3, 1, "", "Hardswish"], [348, 3, 1, "", "InstanceNorm"], [349, 3, 1, "", "LSTM"], [350, 3, 1, "", "LayerNorm"], [351, 3, 1, "", "LeakyReLU"], [352, 3, 1, "", "Linear"], [353, 3, 1, "", "LogSigmoid"], [354, 3, 1, "", "LogSoftmax"], [355, 3, 1, "", "MaxPool1d"], [356, 3, 1, "", "MaxPool2d"], [357, 3, 1, "", "Mish"], [452, 3, 1, "", "Module"], [378, 3, 1, "", "MultiHeadAttention"], [379, 3, 1, "", "PReLU"], [380, 3, 1, "", "QuantizedEmbedding"], [381, 3, 1, "", "QuantizedLinear"], [382, 3, 1, "", "RMSNorm"], [383, 3, 1, "", "RNN"], [384, 3, 1, "", "ReLU"], [385, 3, 1, "", "ReLU6"], [386, 3, 1, "", "RoPE"], [387, 3, 1, "", "SELU"], [388, 3, 1, "", "Sequential"], [389, 3, 1, "", "SiLU"], [390, 3, 1, "", "Sigmoid"], [391, 3, 1, "", "SinusoidalPositionalEncoding"], [392, 3, 1, "", "Softmax"], [393, 3, 1, "", "Softmin"], [394, 3, 1, "", "Softplus"], [395, 3, 1, "", "Softshrink"], [396, 3, 1, "", "Softsign"], [397, 3, 1, "", "Step"], [398, 3, 1, "", "Tanh"], [399, 3, 1, "", "Transformer"], [400, 3, 1, "", "Upsample"], [409, 3, 1, "", "celu"], [410, 3, 1, "", "elu"], [411, 3, 1, "", "gelu"], [412, 3, 1, "", "gelu_approx"], [413, 3, 1, "", "gelu_fast_approx"], [414, 3, 1, "", "glu"], [415, 3, 1, "", "hard_shrink"], [416, 3, 1, "", "hard_tanh"], [417, 3, 1, "", "hardswish"], [418, 3, 1, "", "leaky_relu"], [419, 3, 1, "", "log_sigmoid"], [420, 3, 1, "", "log_softmax"], [435, 3, 1, "", "mish"], [436, 3, 1, "", "prelu"], [307, 5, 1, "", "quantize"], [437, 3, 1, "", "relu"], [438, 3, 1, "", "relu6"], [439, 3, 1, "", "selu"], [440, 3, 1, "", "sigmoid"], [441, 3, 1, "", "silu"], [442, 3, 1, "", "softmax"], [443, 3, 1, "", "softmin"], [444, 3, 1, "", "softplus"], [445, 3, 1, "", "softshrink"], [446, 3, 1, "", "step"], [447, 3, 1, "", "tanh"], [308, 5, 1, "", "value_and_grad"]], "mlx.nn.Module": [[358, 4, 1, "", "apply"], [359, 4, 1, "", "apply_to_modules"], [360, 4, 1, "", "children"], [361, 4, 1, "", "eval"], [362, 4, 1, "", "filter_and_map"], [363, 4, 1, "", "freeze"], [364, 4, 1, "", "leaf_modules"], [365, 4, 1, "", "load_weights"], [366, 4, 1, "", "modules"], [367, 4, 1, "", "named_modules"], [368, 4, 1, "", "parameters"], [369, 4, 1, "", "save_weights"], [370, 4, 1, "", "set_dtype"], [371, 6, 1, "", "state"], [372, 4, 1, "", "train"], [373, 4, 1, "", "trainable_parameters"], [374, 6, 1, "", "training"], [375, 4, 1, "", "unfreeze"], [376, 4, 1, "", "update"], [377, 4, 1, "", "update_modules"]], "mlx.nn.init": [[401, 5, 1, "", "constant"], [402, 5, 1, "", "glorot_normal"], [403, 5, 1, "", "glorot_uniform"], [404, 5, 1, "", "he_normal"], [405, 5, 1, "", "he_uniform"], [406, 5, 1, "", "identity"], [407, 5, 1, "", "normal"], [408, 5, 1, "", "uniform"]], "mlx.nn.losses": [[421, 3, 1, "", "binary_cross_entropy"], [422, 3, 1, "", "cosine_similarity_loss"], [423, 3, 1, "", "cross_entropy"], [424, 3, 1, "", "gaussian_nll_loss"], [425, 3, 1, "", "hinge_loss"], [426, 3, 1, "", "huber_loss"], [427, 3, 1, "", "kl_div_loss"], [428, 3, 1, "", "l1_loss"], [429, 3, 1, "", "log_cosh_loss"], [430, 3, 1, "", "margin_ranking_loss"], [431, 3, 1, "", "mse_loss"], [432, 3, 1, "", "nll_loss"], [433, 3, 1, "", "smooth_l1_loss"], [434, 3, 1, "", "triplet_loss"]], "mlx.optimizers": [[455, 3, 1, "", "AdaDelta"], [456, 3, 1, "", "Adafactor"], [457, 3, 1, "", "Adagrad"], [458, 3, 1, "", "Adam"], [459, 3, 1, "", "AdamW"], [460, 3, 1, "", "Adamax"], [461, 3, 1, "", "Lion"], [474, 3, 1, "", "Optimizer"], [466, 3, 1, "", "RMSprop"], [467, 3, 1, "", "SGD"], [309, 5, 1, "", "clip_grad_norm"], [468, 5, 1, "", "cosine_decay"], [469, 5, 1, "", "exponential_decay"], [470, 5, 1, "", "join_schedules"], [471, 5, 1, "", "linear_schedule"], [472, 5, 1, "", "step_decay"]], "mlx.optimizers.Optimizer": [[462, 4, 1, "", "apply_gradients"], [463, 4, 1, "", "init"], [464, 6, 1, "", "state"], [465, 4, 1, "", "update"]], "mlx.utils": [[310, 5, 1, "", "tree_flatten"], [311, 5, 1, "", "tree_map"], [312, 5, 1, "", "tree_map_with_path"], [313, 5, 1, "", "tree_reduce"], [314, 5, 1, "", "tree_unflatten"]]}, "objnames": {"0": ["cpp", "function", "C++ function"], "1": ["cpp", "functionParam", "C++ function parameter"], "2": ["cpp", "templateParam", "C++ template parameter"], "3": ["py", "class", "Python class"], "4": ["py", "method", "Python method"], "5": ["py", "function", "Python function"], "6": ["py", "property", "Python property"]}, "objtypes": {"0": "cpp:function", "1": "cpp:functionParam", "2": "cpp:templateParam", "3": "py:class", "4": "py:method", "5": "py:function", "6": "py:property"}, "terms": {"": [0, 1, 2, 4, 5, 6, 47, 51, 62, 94, 114, 116, 141, 148, 149, 151, 152, 154, 155, 157, 158, 165, 184, 189, 191, 194, 207, 231, 237, 241, 260, 263, 264, 280, 282, 299, 300, 301, 303, 308, 324, 327, 343, 349, 356, 362, 363, 365, 369, 370, 371, 375, 383, 454, 463, 464, 476, 479, 481, 483, 484, 485, 486, 487], "0": [0, 1, 2, 4, 5, 6, 8, 9, 14, 18, 38, 45, 46, 49, 66, 71, 75, 80, 83, 95, 98, 99, 100, 101, 102, 103, 104, 117, 118, 140, 143, 146, 159, 163, 165, 186, 188, 189, 190, 192, 209, 216, 218, 225, 232, 240, 244, 246, 247, 252, 256, 260, 275, 279, 280, 294, 296, 297, 298, 299, 300, 303, 309, 310, 312, 313, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 344, 345, 348, 350, 351, 355, 356, 379, 384, 386, 391, 395, 397, 399, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 415, 416, 417, 418, 421, 423, 425, 426, 430, 433, 434, 436, 437, 438, 439, 445, 446, 449, 452, 455, 456, 458, 459, 460, 461, 463, 466, 467, 468, 469, 470, 471, 472, 476, 479, 480, 481, 482, 483, 484, 485, 486], "00005": 4, "0001": 391, "0005": 412, "001": 456, "00364": 4, "01": [4, 351, 418, 459], "0137595": 404, "015": 413, "0184009": 405, "02264": 403, "025": 481, "02765": 404, "0300242": 405, "044715": [341, 412], "0485873": 423, "05": [16, 172, 328, 344, 348, 350, 382], "0507": 439, "05202": 5, "06": [424, 434, 455], "0638": 430, "06450": 350, "0645099": 407, "06561": 469, "06675": 461, "07467": 382, "08": [16, 172, 422, 457, 458, 459, 460, 466], "08022": 348, "081": 472, "08415": 413, "08494": 344, "08619": 405, "08681": [357, 435], "09864": 5, "0999938": 470, "0999961": 468, "0f": 0, "1": [0, 1, 2, 3, 5, 6, 14, 18, 28, 29, 38, 46, 49, 98, 99, 100, 101, 102, 103, 104, 117, 118, 139, 143, 146, 147, 148, 150, 151, 153, 154, 155, 156, 157, 158, 159, 168, 171, 178, 184, 185, 186, 187, 189, 190, 204, 208, 217, 231, 233, 237, 241, 244, 245, 246, 252, 269, 274, 287, 293, 294, 299, 309, 312, 313, 317, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 348, 349, 350, 352, 355, 356, 379, 382, 383, 386, 390, 391, 397, 400, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 414, 416, 419, 420, 421, 422, 423, 424, 425, 426, 427, 429, 430, 432, 433, 434, 439, 440, 442, 443, 444, 446, 449, 452, 454, 455, 456, 457, 458, 459, 460, 461, 463, 466, 467, 468, 469, 470, 471, 472, 479, 480, 481, 482, 484, 485, 486, 487], "10": [0, 3, 5, 6, 196, 260, 265, 311, 324, 365, 449, 470, 472, 479, 480, 482], "100": [2, 4, 5, 421, 471, 479, 481, 483, 487], "1000": [468, 479], "10000": 386, "101": 471, "1024": [1, 5], "105361": 421, "109": 2, "10_000": 4, "10x": 461, "11": 189, "114": 2, "12": [5, 168, 470], "1212": 455, "12451": 403, "128": [265, 324], "13": 8, "14": 8, "15": [1, 8, 189, 218, 313, 479], "150594": 402, "15268": 404, "16": [1, 143, 317, 326, 348, 355, 358, 452], "1606": 413, "1607": [348, 350], "16384": 168, "16506": 405, "17": 8, "177208": 404, "1803": 344, "1908": [357, 435], "1910": 382, "191107": 402, "1985": 189, "1_000": 4, "1d": [0, 98, 102, 105, 263, 288], "1e": [0, 4, 6, 16, 172, 328, 344, 348, 350, 351, 382, 422, 424, 434, 454, 455, 456, 457, 458, 459, 460, 463, 466, 468, 469, 470, 471, 472], "1e3": 479, "1st": 237, "2": [0, 1, 2, 4, 5, 6, 38, 99, 103, 117, 118, 134, 148, 151, 153, 154, 155, 156, 157, 158, 159, 168, 178, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 198, 204, 237, 245, 250, 291, 294, 296, 297, 298, 309, 313, 317, 324, 326, 327, 331, 334, 341, 351, 355, 356, 382, 391, 400, 401, 402, 403, 404, 405, 406, 407, 408, 412, 423, 424, 426, 433, 434, 449, 452, 454, 455, 457, 458, 459, 463, 466, 479, 480, 481, 482, 483, 484, 485, 486, 487], "20": [168, 189], "200": [5, 470], "2002": 5, "2011": 457, "2012": [455, 466], "2015": [337, 458, 460], "2019": [5, 459], "2020": 5, "2021": 5, "20397": 421, "20_000": 5, "21": [5, 472], "2104": 5, "223144": 421, "223404": 403, "225": 189, "225763": 430, "2302": 461, "23607": [189, 190], "24": 8, "24264": 189, "247": 5, "25": [379, 400], "25211": 404, "256": [1, 2, 6, 143], "256995": 430, "28": 168, "2d": [0, 99, 103, 118, 237, 328, 337], "2nd": 237, "2x": 484, "3": [0, 1, 2, 5, 8, 100, 104, 159, 178, 185, 186, 187, 189, 190, 309, 313, 332, 335, 341, 400, 403, 405, 412, 417, 456, 461, 476, 479, 482, 484, 485], "30": 456, "3118": 484, "32": [1, 5, 6, 90, 237, 238, 317, 327, 356, 382, 479], "330": 5, "33333": 400, "348587": 423, "363207": 402, "36788": 479, "379159": 403, "380709": 407, "39": 5, "390": 481, "3d": [0, 2, 100, 104, 328, 338, 400], "3f": [2, 6, 479], "3x": 2, "4": [0, 1, 2, 5, 116, 141, 143, 159, 164, 189, 237, 238, 265, 307, 313, 317, 326, 327, 328, 348, 355, 356, 380, 381, 399, 400, 402, 403, 404, 421, 479, 480, 482, 485, 487], "4096": [479, 481, 487], "40x": 1, "41421": 189, "417497": 408, "42": 314, "437": 5, "44": 5, "447214": 190, "458835": 404, "475": 5, "48095": 402, "4d": [1, 400], "4m": 1, "5": [0, 1, 2, 4, 5, 8, 189, 217, 240, 313, 326, 328, 336, 337, 338, 341, 345, 348, 355, 395, 400, 401, 404, 405, 412, 415, 433, 445, 449, 454, 466, 468, 469, 479, 481, 482], "50": [0, 193], "500": [5, 487], "5000": 2, "510826": 421, "512": [2, 3, 5, 399, 487], "534422": 407, "539245": 421, "53947": 402, "55": 1, "5701": 455, "573409": 430, "57771": 190, "579": 5, "5f": 4, "6": [1, 2, 5, 189, 265, 385, 399, 403, 412, 413, 417, 424, 434, 438, 466, 479, 482, 485], "61278": 402, "617261": 408, "628": 5, "633": 5, "64": [0, 1, 90, 116, 141, 164, 237, 238, 307, 317, 380, 381], "64331": 405, "666329": 405, "66667": 400, "67326": 439, "676": 1, "690": 5, "6967": 404, "7": [2, 5, 189, 237, 482], "702": [341, 413], "707107": 186, "71828": 479, "74166": 189, "74597": 189, "75": 400, "75596": 430, "75787": 404, "765166": 430, "773433": 430, "776856": 403, "793615": 405, "79854": 405, "7b": 5, "7m": 1, "8": [0, 1, 2, 5, 8, 189, 237, 317, 327, 348, 356, 399, 422, 455, 456, 457, 458, 459, 460, 466, 479, 482, 485, 487], "8192": [5, 168], "84804": 189, "863726": 408, "883935": 408, "890597": 403, "894427": 190, "89613": 402, "8gb": 5, "8x": 1, "9": [8, 189, 423, 455, 458, 459, 460, 461, 463, 469, 472, 484], "90041": 403, "912766": 403, "916291": 421, "95": 6, "982273": 407, "99": [461, 466], "995016": 402, "999": [458, 459, 460], "A": [0, 2, 5, 7, 8, 9, 68, 82, 94, 142, 143, 144, 146, 165, 178, 179, 184, 186, 187, 189, 190, 191, 194, 203, 204, 205, 210, 221, 237, 240, 241, 242, 244, 245, 246, 247, 248, 251, 252, 275, 279, 282, 299, 302, 303, 307, 308, 309, 310, 311, 312, 313, 314, 315, 324, 328, 337, 343, 344, 348, 350, 362, 366, 367, 370, 376, 377, 382, 388, 391, 399, 402, 403, 405, 413, 434, 435, 452, 454, 458, 460, 462, 463, 465, 470, 479, 480, 481, 483, 484], "AS": 163, "And": [5, 400], "As": [6, 38, 287, 324], "At": 93, "But": 487, "By": [5, 307, 370, 421, 481, 484], "For": [0, 1, 2, 5, 8, 38, 146, 163, 178, 189, 237, 314, 324, 328, 337, 341, 358, 363, 372, 375, 381, 386, 391, 400, 402, 403, 404, 405, 421, 449, 454, 476, 479, 480, 481, 482, 483, 484, 485, 486, 487], "If": [0, 1, 2, 5, 8, 15, 16, 17, 18, 26, 27, 28, 29, 78, 82, 83, 93, 95, 105, 108, 109, 110, 111, 117, 118, 121, 122, 123, 125, 126, 127, 136, 142, 145, 156, 157, 158, 161, 162, 165, 172, 183, 184, 185, 189, 194, 203, 204, 205, 207, 208, 216, 217, 221, 225, 229, 232, 233, 235, 236, 241, 245, 247, 256, 259, 273, 274, 275, 280, 284, 286, 287, 288, 291, 293, 294, 299, 300, 303, 305, 307, 311, 313, 328, 330, 331, 332, 333, 334, 335, 344, 350, 352, 363, 365, 375, 381, 383, 386, 388, 391, 400, 421, 423, 434, 456, 479, 480, 481, 483, 486, 487, 488], "In": [0, 1, 2, 5, 6, 38, 204, 237, 311, 324, 337, 344, 452, 455, 457, 458, 460, 461, 462, 478, 479, 480, 481, 483, 486, 487], "It": [2, 5, 8, 126, 165, 268, 299, 309, 313, 324, 377, 381, 462, 474, 484, 486], "Its": 324, "No": [2, 5, 186, 187], "Not": [94, 228, 479], "ON": [3, 8], "Of": 481, "On": [1, 479, 481, 483], "One": [147, 150, 156, 232, 261, 479, 481], "THE": 8, "That": 5, "The": [0, 1, 2, 3, 5, 6, 7, 8, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 47, 51, 61, 62, 68, 78, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 185, 186, 187, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 212, 213, 216, 217, 218, 219, 221, 222, 223, 224, 226, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 263, 264, 269, 270, 271, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 317, 319, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 340, 342, 343, 344, 348, 349, 350, 352, 355, 356, 358, 359, 363, 365, 369, 370, 371, 372, 375, 376, 377, 378, 380, 381, 382, 383, 386, 388, 391, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 414, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 446, 449, 452, 454, 455, 456, 457, 458, 459, 460, 461, 464, 466, 467, 468, 471, 474, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "Then": [4, 8], "There": [1, 2, 324, 400, 479], "These": [1, 2, 94, 236, 288, 423, 487], "To": [0, 2, 3, 4, 5, 6, 8, 216, 324, 449, 454, 479, 480, 481, 485], "With": 2, "_": [1, 3, 4, 5, 312, 324, 468, 469, 470, 471, 472, 476, 479, 483, 487], "__call__": [1, 5, 6, 324, 452], "__init__": [2, 5, 6, 9, 10, 11, 30, 112, 120, 315, 324, 452], "__main__": [2, 5], "__name__": [2, 5], "_a": 2, "_ext": 2, "_f": 189, "_in": [402, 403], "_out": [402, 403], "_p": 434, "_size": [326, 327, 355, 356], "_val": 416, "a1": 163, "a2": 163, "a_": 189, "a_max": [0, 93], "a_min": [0, 93], "a_ndim": 1, "a_shap": 1, "a_strid": 1, "a_view": 484, "ab": [0, 16, 172, 189, 299, 344, 348, 350, 357, 382, 413, 435, 479], "abil": 480, "abl": [2, 237], "about": [1, 2, 5, 6, 131, 210, 483, 487], "abov": [1, 2, 5, 237, 297, 324, 400, 459, 480, 481, 482, 483, 487], "absolut": [0, 12, 16, 172, 412, 413, 433], "acc": 313, "acceler": [2, 328], "access": [0, 5, 50, 324, 452, 463, 480, 483, 487], "accord": [0, 242, 304, 307, 378, 402, 403, 404, 405], "accordingli": 2, "accross": 8, "accumul": [313, 382], "accuraci": 6, "accustom": 5, "achiev": [324, 480], "across": [1, 2, 344, 480], "act": [2, 429], "action": 324, "activ": [2, 8, 211, 337, 397, 399, 415, 435, 445, 446, 448, 479], "actual": [5, 18, 365, 452, 483], "ad": [0, 1, 2, 4, 8, 142, 348, 452, 455, 456, 457, 458, 459, 460, 466, 480, 483, 486], "adadelta": 454, "adafactor": 454, "adagrad": 454, "adam": [454, 460, 461, 470, 471], "adamax": 454, "adamw": [454, 461], "adapt": [455, 456, 457, 480], "add": [0, 1, 2, 3, 5, 14, 38, 138, 199, 232, 237, 330, 331, 332, 333, 334, 335, 481, 487], "add_argu": 5, "add_depend": 2, "add_librari": 2, "addit": [0, 2, 5, 8, 13, 14, 142, 144, 146, 194, 328, 344, 350, 378, 382, 452, 481], "addmm": 0, "address": 2, "adjac": 337, "advanc": [5, 479], "advantag": 487, "advis": 484, "affin": [328, 344, 348, 350, 352, 381], "after": [2, 5, 6, 28, 159, 161, 164, 209, 233, 237, 328, 344, 350, 358, 359, 363, 365, 372, 375, 376, 377, 378, 399, 433, 479, 487], "after_1": 232, "after_2": 232, "after_i": 232, "after_n": 232, "afternoon": 5, "again": [5, 8, 324, 479], "against": 0, "aggreg": 378, "ago": 5, "ai": 112, "ainv": [188, 192], "albeit": 487, "algebra": 7, "algorithm": [400, 461], "alia": [96, 97, 341], "alibi": 324, "align": [184, 237, 327, 343, 349, 356], "align_corn": 400, "all": [0, 1, 2, 3, 6, 8, 16, 28, 38, 84, 85, 86, 94, 99, 100, 101, 103, 104, 112, 121, 122, 123, 140, 149, 152, 155, 158, 163, 164, 191, 204, 232, 233, 259, 278, 307, 324, 358, 359, 363, 366, 367, 368, 373, 375, 378, 391, 399, 400, 449, 452, 474, 476, 479, 482, 483, 485, 488], "all_avg": 480, "all_reduce_grad": 480, "all_sum": 480, "allclos": [0, 1, 143], "alloc": [2, 212, 216, 217, 452], "allow": [0, 1, 2, 178, 309, 324, 377, 452, 474, 480, 482, 485], "almost": 5, "alon": [2, 484], "along": [0, 2, 26, 27, 94, 95, 108, 109, 110, 111, 121, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 163, 164, 168, 185, 189, 236, 247, 256, 259, 273, 275, 279, 287, 288, 291, 292, 293, 294, 301, 324, 342, 383, 414], "alpha": [0, 2, 14, 237, 329, 339, 409, 410, 434, 436, 439, 459, 466], "alpha_": 2, "alreadi": [2, 3, 5, 480], "also": [0, 1, 2, 5, 6, 7, 8, 11, 13, 87, 88, 89, 119, 128, 129, 133, 149, 152, 155, 158, 166, 167, 180, 181, 182, 199, 206, 222, 224, 228, 234, 237, 255, 258, 283, 307, 308, 319, 324, 362, 376, 378, 380, 381, 389, 411, 439, 441, 448, 454, 479, 480, 481, 482, 483, 484, 485, 488], "altern": 476, "alwai": [1, 83, 211, 310, 481], "am": 5, "among": 2, "amount": [5, 213, 326, 355], "amus": 5, "an": [0, 1, 2, 3, 5, 6, 8, 10, 15, 17, 30, 84, 85, 86, 91, 98, 99, 100, 101, 102, 103, 104, 120, 125, 126, 127, 136, 140, 142, 146, 159, 162, 169, 173, 183, 189, 194, 217, 218, 223, 229, 230, 232, 235, 236, 237, 238, 247, 256, 257, 259, 260, 275, 278, 285, 287, 288, 291, 292, 296, 303, 305, 306, 310, 311, 312, 313, 324, 326, 327, 336, 341, 344, 349, 350, 352, 355, 356, 358, 378, 379, 381, 383, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 412, 436, 449, 454, 455, 465, 469, 474, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "anaconda": 480, "anchor": 434, "angl": [115, 239, 351], "angular": [145, 386], "ani": [0, 1, 2, 5, 7, 18, 94, 310, 311, 312, 313, 314, 324, 341, 358, 359, 362, 371, 381, 399, 400, 449, 471, 478, 479, 481, 483, 485, 486, 487], "anonym": 479, "anoth": [0, 93, 178, 204, 283, 304, 317, 324, 358, 479, 481, 482, 487], "anwywher": 8, "anyhow": 5, "anymor": 5, "anyth": [5, 299, 483], "anytim": 483, "api": [1, 2, 341, 480, 481], "app": 8, "append": [5, 204, 479, 483], "appl": [2, 5, 7, 8, 487], "appli": [0, 38, 145, 146, 163, 191, 311, 312, 313, 324, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, 344, 345, 346, 347, 348, 350, 351, 352, 353, 354, 355, 356, 357, 359, 372, 379, 381, 382, 383, 384, 385, 387, 389, 390, 392, 393, 394, 395, 396, 397, 398, 400, 409, 410, 411, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 449, 462, 465, 471, 474, 479, 480], "applic": [3, 8], "apply_fn": 359, "apply_gradi": 454, "apply_to_modul": [324, 363], "approach": [429, 481], "appropri": [2, 479], "approx": 341, "approxim": [16, 341, 411, 412, 413], "ar": [0, 1, 2, 4, 5, 6, 7, 8, 16, 18, 82, 90, 91, 93, 94, 101, 105, 112, 118, 125, 126, 136, 140, 143, 148, 149, 151, 152, 154, 155, 157, 158, 159, 164, 165, 172, 173, 174, 175, 176, 177, 178, 179, 186, 187, 189, 190, 194, 204, 217, 231, 232, 233, 237, 238, 240, 241, 242, 247, 248, 251, 252, 259, 265, 266, 278, 279, 287, 299, 302, 303, 307, 310, 311, 317, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 344, 348, 350, 352, 365, 378, 381, 400, 421, 423, 424, 448, 452, 454, 461, 463, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "arang": [0, 1, 189, 247, 317, 400, 482, 484], "arbitrari": [310, 452], "arbitrarili": [1, 94, 324, 478, 481, 485], "arc": 0, "arcco": 0, "arccosh": 0, "architectur": [5, 8, 210, 324, 377, 487], "archiv": 486, "arcsin": 0, "arcsinh": 0, "arctan": 0, "arctan2": 0, "arctanh": 0, "arg": [2, 5, 10, 18, 120, 136, 265, 266], "arg1": 178, "arg2": 178, "argmax": [0, 6], "argmin": 0, "argnam": [165, 299], "argnum": [2, 165, 299, 481], "argpars": 5, "argpartit": 0, "argsort": 0, "argument": [1, 31, 65, 79, 94, 136, 165, 299, 311, 312, 313, 324, 400, 476, 480, 481, 486, 487, 488], "argumentpars": 5, "ari": [84, 85, 86], "aris": 484, "arm": 8, "arm64": 8, "around": 5, "arr": [0, 262, 482], "arr_0": 486, "arrai": [0, 1, 2, 5, 6, 7, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 324, 328, 349, 358, 365, 368, 373, 379, 400, 401, 402, 403, 404, 405, 406, 407, 408, 414, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 446, 449, 452, 455, 456, 457, 458, 459, 460, 461, 466, 467, 468, 469, 470, 471, 472, 479, 480, 481, 483, 484, 485, 487], "array_equ": [0, 16, 172], "arrayfir": 7, "arxiv": [5, 344, 348, 350, 357, 382, 413, 435, 455, 461], "as_strid": 0, "ascend": [186, 187], "ask": [5, 480], "assert": [1, 2, 143], "assign": [0, 2, 38, 452], "associ": [2, 265, 266, 483], "assum": [0, 2, 5, 90, 185, 186, 187, 190, 311, 324, 326, 327, 344, 355, 356], "astyp": [0, 1, 2, 5, 143, 358, 484], "atleast": 0, "atleast_1d": 0, "atleast_2d": 0, "atleast_3d": 0, "atol": [0, 16, 172], "atom": [1, 143], "atomic_fetch_add_explicit": 1, "atomic_output": [1, 143], "attach": 2, "attempt": 94, "attend": 378, "attent": [146, 363, 378, 391, 399], "attention_norm": 5, "attribut": [1, 9, 10, 11, 30, 315, 371, 452, 474], "audio": 400, "auto": [0, 2, 8], "autom": 481, "automat": [1, 2, 7, 143, 194, 480, 485, 486, 487], "autoregress": 5, "avail": [2, 4, 5, 6, 8, 10, 124, 214, 319, 487], "averag": [326, 327, 455, 456, 458, 459, 460, 480], "avgpool1d": 324, "avgpool2d": 324, "avoid": [1, 2, 370, 479], "awai": [2, 5], "awar": [479, 483], "ax": [0, 2, 15, 17, 26, 27, 79, 112, 138, 148, 149, 151, 152, 154, 155, 157, 158, 159, 171, 189, 203, 205, 207, 221, 232, 235, 259, 273, 278, 280, 284, 285, 291, 295, 300, 481], "axes_a": 0, "axes_b": 0, "axi": [0, 2, 5, 6, 15, 17, 26, 27, 28, 29, 33, 34, 35, 36, 41, 42, 43, 44, 56, 57, 58, 59, 63, 71, 74, 75, 76, 80, 95, 108, 109, 110, 111, 118, 121, 138, 142, 144, 147, 150, 153, 154, 155, 156, 157, 158, 159, 168, 185, 189, 203, 205, 207, 221, 223, 232, 233, 235, 236, 241, 247, 256, 259, 273, 274, 275, 278, 279, 280, 284, 285, 287, 288, 292, 293, 294, 295, 300, 301, 303, 326, 327, 342, 355, 356, 383, 414, 420, 422, 423, 427, 432, 434, 442, 443, 482], "axis1": [0, 46, 77, 118, 285, 294], "axis2": [0, 46, 77, 118, 285, 294], "axpbi": 2, "axpby_": 2, "axpby_gener": 2, "axpby_general_": 2, "axpby_impl": 2, "axpby_impl_acceler": 2, "b": [0, 1, 2, 3, 5, 13, 14, 16, 24, 82, 87, 88, 89, 90, 128, 129, 133, 143, 161, 163, 166, 167, 171, 172, 180, 181, 182, 185, 189, 199, 200, 202, 204, 206, 222, 224, 228, 231, 234, 237, 244, 255, 258, 283, 291, 299, 312, 313, 342, 352, 383, 400, 414, 481, 482, 483, 484, 485, 486, 487], "b1": 163, "b2": 163, "b_": [343, 349], "b_stride": 1, "ba": [458, 460], "back": [5, 112, 214, 484], "backend": [1, 8, 123, 124], "backward": [1, 479, 481], "bad": 483, "balanc": 429, "baltimor": 189, "bandwidth": [479, 480], "bar": 480, "base": [0, 2, 145, 189, 196, 198, 234, 386, 399, 452, 454, 460, 474, 476, 479, 482], "base_idx": 1, "basi": 474, "basic": [4, 260, 481], "batch": [5, 14, 90, 163, 164, 204, 245, 328, 330, 331, 332, 333, 334, 335, 337, 338, 343, 349, 378, 383, 400, 483], "batch_idx": 1, "batch_iter": [6, 454], "batch_siz": [6, 454], "batchnorm": 324, "becaus": [5, 211, 324, 483], "been": [0, 2, 5, 212, 483], "befor": [1, 2, 5, 8, 28, 143, 233, 362, 399, 463, 480, 482, 483], "before_1": 232, "before_2": 232, "before_i": 232, "before_n": 232, "beforehand": 231, "beggin": 259, "begin": [83, 184, 213, 237, 327, 343, 349, 356, 397, 415, 426, 433, 439, 445, 446], "behav": 112, "behavior": [245, 429, 482, 483], "behaviour": [112, 183, 184], "behind": 481, "being": [281, 324], "bell": 2, "below": [2, 8, 189, 296, 298, 317, 400, 483], "bench": 2, "benchmark": [2, 479], "benefici": [337, 338, 483], "best": 480, "beta": [0, 2, 14, 116, 141, 237, 328, 344, 348, 350, 433, 454, 458, 459, 460, 461], "beta_": 2, "beta_1": [456, 458, 459, 460, 461], "beta_2": [458, 459, 460, 461], "better": [481, 487], "between": [0, 2, 7, 93, 159, 399, 422, 425, 426, 429, 470, 480, 483, 484, 487], "beyond": [259, 468, 471], "bfloat16": [2, 11, 168, 317, 484], "bfloat16_t": 2, "bia": [5, 116, 141, 142, 164, 237, 238, 311, 324, 330, 331, 332, 333, 334, 335, 343, 349, 350, 352, 363, 365, 375, 378, 381, 383, 458, 459, 460, 463, 481], "bias": [0, 116, 141, 164, 237, 238, 343, 349, 363, 375, 378], "bicub": 400, "big": [1, 479], "bigger": [5, 456], "bilinear": [1, 400], "binari": [194, 262, 263, 264, 265, 266, 301, 397, 421, 446, 479], "binary_cross_entropi": [324, 479], "bit": [0, 116, 141, 164, 180, 237, 238, 258, 307, 317, 358, 380, 381, 382], "bitwis": [0, 87, 88, 89, 180, 258], "bitwise_and": 0, "bitwise_or": 0, "bitwise_xor": 0, "block": [0, 2, 5, 90, 399], "block_masked_mm": 0, "block_siz": [0, 90], "bn": 328, "bodi": [1, 143], "bool": [0, 1, 2, 15, 16, 17, 26, 27, 33, 34, 35, 36, 41, 42, 43, 44, 56, 57, 58, 59, 63, 75, 76, 78, 80, 82, 94, 101, 108, 109, 110, 111, 123, 124, 143, 145, 164, 172, 178, 183, 184, 189, 192, 194, 203, 205, 207, 208, 214, 217, 221, 235, 238, 280, 284, 300, 328, 330, 331, 332, 333, 334, 335, 343, 344, 348, 349, 350, 352, 358, 362, 363, 365, 370, 372, 375, 378, 381, 383, 386, 391, 399, 400, 421, 424, 456, 467], "bool_": [11, 317], "boolean": [0, 16, 82, 172, 173, 174, 175, 176, 177, 178, 200, 201, 202, 317, 374, 482], "both": [1, 2, 13, 87, 88, 89, 128, 129, 133, 166, 167, 178, 180, 181, 182, 189, 199, 206, 222, 224, 228, 234, 241, 255, 258, 283, 307, 326, 327, 348, 349, 355, 356, 454, 479, 480, 481, 485, 487], "bottom": 400, "bound": [0, 248, 251, 252, 341, 408, 479, 482, 487], "boundari": 470, "bracket": 5, "brain": 317, "break": 484, "bregler": 337, "broadcast": [0, 2, 13, 16, 87, 88, 89, 91, 93, 128, 129, 133, 162, 166, 167, 172, 180, 181, 182, 199, 204, 206, 222, 224, 228, 234, 236, 240, 241, 245, 251, 252, 255, 258, 283, 288, 304, 378], "broadcast_arrai": [0, 2], "broadcast_to": 0, "broadcasted_input": 2, "brought": 7, "btl_tcp_link": 480, "buffer": [1, 2, 211, 484], "bui": 5, "build": [3, 5, 7, 404, 452, 479], "build_ext": [2, 8], "build_shared_lib": [2, 8], "built": [1, 2, 8, 483], "bundl": 5, "byte": [51, 61, 211, 212, 213, 216, 217, 218, 317], "c": [0, 1, 2, 5, 14, 189, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 348, 349, 355, 356, 484, 485, 487], "c_": [349, 461], "c_in": [98, 99, 100, 101, 102, 103, 104], "c_j": [326, 327, 355, 356], "c_out": [98, 99, 100, 101, 102, 103, 104], "c_pad": 1, "c_t": [349, 461], "cach": [5, 8, 209, 211, 212, 216, 479], "calcul": [189, 421, 424, 430, 456], "call": [2, 3, 5, 6, 31, 126, 161, 209, 213, 324, 340, 363, 375, 380, 388, 452, 454, 463, 479, 480, 481, 483], "callabl": [94, 112, 143, 165, 179, 299, 302, 303, 307, 308, 310, 311, 312, 313, 358, 359, 362, 370, 383, 388, 399, 401, 402, 403, 404, 405, 406, 407, 408, 455, 456, 457, 458, 459, 460, 461, 466, 467, 468, 469, 470, 471, 472], "can": [1, 2, 3, 5, 7, 8, 13, 18, 65, 79, 83, 87, 88, 89, 94, 118, 119, 120, 128, 129, 133, 136, 166, 167, 180, 181, 182, 189, 199, 206, 218, 222, 224, 228, 234, 240, 241, 248, 251, 252, 255, 258, 263, 283, 294, 299, 313, 324, 327, 340, 341, 356, 362, 375, 380, 388, 400, 423, 449, 452, 454, 462, 463, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "cannot": [5, 93, 482, 484], "captur": [2, 3, 94, 219, 220, 324, 479], "care": [5, 483], "carri": 2, "cartesian": 208, "case": [2, 5, 121, 122, 123, 125, 126, 127, 149, 152, 153, 155, 156, 157, 158, 159, 183, 184, 185, 186, 187, 188, 190, 191, 192, 204, 257, 278, 327, 337, 356, 397, 415, 433, 439, 445, 446, 462, 463, 479, 481, 485, 486, 487, 488], "cast": [2, 37, 156, 157, 158, 194, 358, 370, 484], "caster": 2, "categor": 5, "categori": [11, 178, 317], "catlas_saxpbi": 2, "caus": [324, 479, 483], "causal": 5, "caution": 83, "cd": [3, 8], "cdf": [242, 341, 411], "cdot": [413, 422, 425, 441], "ceil": 0, "ceildiv": 1, "cell": 349, "celu": 324, "certain": [2, 372, 479], "chang": [83, 94, 268, 301, 376, 381, 400, 426, 433, 479, 484], "channel": [1, 98, 99, 100, 101, 102, 103, 104, 328, 330, 331, 332, 333, 334, 335, 337, 338], "channel_idx": 1, "charact": 310, "check": [0, 2, 8, 82, 124, 178, 186, 187, 214, 365, 481, 482], "checklist": 480, "checkout": [3, 479], "checkpoint": [399, 454], "chen": 461, "child": 377, "children": 324, "chip": 8, "choleski": 184, "choos": [5, 145, 386], "chosen": 131, "clamp": 159, "clang": 8, "clariti": 481, "class": [2, 5, 6, 9, 10, 11, 30, 112, 120, 315, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 452, 455, 456, 457, 458, 459, 460, 461, 466, 467, 474], "class_pred": 307, "classif": [404, 405], "classifi": 6, "classmethod": [380, 381], "clear": 209, "click": 8, "clip": [0, 309, 421, 456], "clip_threshold": 456, "clipped_grad": 309, "clone": 8, "close": [4, 7, 8, 16, 172], "closer": 311, "cmake": [3, 8], "cmake_arg": 3, "cmake_build_parallel_level": 8, "cmake_build_typ": 8, "cmake_current_list_dir": 2, "cmake_host_system_processor": 8, "cmake_library_output_directori": 2, "cmakebuild": 2, "cmakeextens": 2, "cmakelist": 2, "cmdclass": 2, "co": [0, 2, 112, 391, 481], "code": [1, 143, 479, 480, 483], "coeffici": [2, 455, 456, 458, 459, 460, 461], "col": 296, "col_contigu": 2, "cold": 8, "collect": [2, 311, 312, 478], "column": [2, 140, 169, 186, 237], "com": [8, 480], "combin": [5, 191, 313], "come": [2, 5, 480, 481], "command": [2, 3, 8, 480], "command_buff": 2, "common": [2, 454, 479, 483], "commonli": [6, 376, 449, 479], "commun": [7, 120, 123, 124], "compar": [2, 82, 479], "comparison": [16, 133, 166, 167, 181, 182, 228], "compat": [5, 241, 245, 341, 486], "compil": [0, 3, 7, 8, 119, 132, 143, 480, 481, 483], "compiled_fun": 479, "compiled_grad_fn": 479, "complet": [4, 5, 8, 217, 376, 377, 481, 487], "complex": [2, 96, 97, 154, 155, 156, 157, 158, 170, 186, 187, 253, 310, 317, 324, 377, 479, 481], "complex64": [2, 11, 317], "complex64_t": 2, "complexflo": 11, "compon": [2, 5], "compos": [7, 324, 479, 481, 485], "composit": 485, "compress": 266, "compromis": 5, "comput": [0, 1, 2, 4, 5, 6, 7, 8, 108, 109, 110, 111, 112, 116, 131, 139, 141, 145, 165, 179, 183, 184, 185, 186, 187, 188, 189, 192, 199, 207, 231, 237, 255, 273, 280, 281, 291, 299, 300, 302, 308, 324, 328, 343, 344, 348, 349, 350, 363, 376, 381, 382, 386, 399, 402, 403, 404, 405, 412, 413, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 454, 455, 456, 458, 459, 460, 461, 465, 479, 480, 481, 485, 487], "computation": 483, "compute_encod": 2, "concaten": [0, 5, 121], "concept": 452, "concis": 5, "concret": [2, 343, 349, 352, 383, 483, 487], "conda": [8, 480], "condit": [0, 2, 304, 487], "config": [2, 480], "configu": 454, "configur": [116, 141, 480], "confirm": 480, "confus": 6, "conj": 97, "conjug": [0, 96], "connect": 480, "consecut": [145, 237, 386], "consequ": 5, "consid": [5, 16, 82, 172, 310, 311, 312, 344, 478], "consider": 479, "const": [0, 1, 2, 424], "constant": [0, 2, 5, 8, 142, 144, 232, 324, 328, 344, 350, 382, 424, 434, 466, 468, 479, 484], "constant_valu": 232, "constitut": 311, "construct": [0, 2, 6, 45, 117, 162, 229, 292, 305], "consum": 483, "contain": [2, 5, 8, 28, 29, 68, 94, 118, 131, 153, 154, 155, 163, 164, 186, 189, 200, 201, 202, 237, 275, 304, 309, 324, 362, 364, 365, 371, 399, 430, 449, 452, 479, 480, 481], "content": [8, 362, 479], "context": 282, "contigu": [1, 2, 83, 143], "continu": [329, 409, 481], "contract": [0, 131], "contrast": 459, "contribut": 2, "contriv": [481, 487], "control": [0, 351, 476, 483], "conv": 105, "conv1d": [0, 324], "conv2d": [0, 324], "conv3d": [0, 324], "conv_gener": 0, "conv_transpose1d": 0, "conv_transpose2d": 0, "conv_transpose3d": 0, "conveni": [1, 2, 6, 178], "convent": [18, 105, 130, 131, 400, 459], "convers": 7, "convert": [0, 1, 2, 78, 84, 85, 86, 115, 159, 239, 380, 381, 483, 484, 485], "convolut": [0, 98, 99, 100, 101, 102, 103, 104, 105, 330, 331, 332, 333, 334, 335, 337, 338], "convolv": [98, 99, 100, 101, 102, 103, 104], "convtranspose1d": 324, "convtranspose2d": 324, "convtranspose3d": 324, "coordin": [0, 208], "copi": [0, 1, 2, 5, 7, 233, 274, 484], "copy_inplac": 2, "copytyp": 2, "core": [1, 2, 3, 4, 5, 6, 307, 324, 326, 327, 328, 348, 355, 356, 365, 368, 370, 373, 400, 401, 402, 403, 404, 405, 406, 407, 408, 421, 423, 430, 449, 452, 454, 479, 480, 484, 485], "corner": 400, "correct": [2, 8, 458, 459, 460, 482, 483], "correctli": 38, "correl": [101, 337], "correspond": [0, 2, 15, 17, 78, 93, 116, 118, 141, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 186, 203, 205, 221, 235, 284, 291, 303, 311, 481], "cos_first": 391, "cosh": [0, 429], "cosin": [0, 19, 20, 106, 107, 422, 468, 470, 481], "cosine_decai": [454, 470], "cosine_similarity_loss": 324, "cost": [8, 456, 480, 483], "costli": 483, "cot": 1, "cot_index": 1, "cotan": [2, 112], "cotang": [1, 2, 112, 302], "could": [5, 324], "count": [324, 470], "counter": 476, "cours": 481, "coursera": 466, "cov": 245, "covari": [245, 328], "cover": 2, "cpp": 2, "cpu": [7, 8, 186, 187, 190, 487], "cpython": 2, "crash": [83, 479], "creat": [0, 2, 5, 8, 83, 123, 140, 169, 282, 324, 452, 454, 470, 479, 482, 484], "create_additive_causal_mask": 5, "criteria": 2, "cross": [6, 101, 421, 423], "cross_entropi": [6, 324], "crowd": 5, "cry": 5, "cubic": 400, "cummax": 0, "cummin": 0, "cumprod": 0, "cumsum": 0, "cumul": [0, 83, 108, 109, 110, 111], "current": [5, 7, 8, 83, 90, 100, 103, 104, 127, 210, 212, 237, 313, 324, 456, 480, 483], "custom": [7, 112, 143, 399], "custom_decod": 399, "custom_encod": 399, "custom_funct": 1, "custom_kernel_myexp_float": 1, "custom_tim": 2, "cvpr": 337, "cycl": 478, "d": [0, 1, 2, 5, 100, 104, 117, 118, 171, 189, 204, 208, 231, 287, 294, 296, 297, 298, 314, 332, 335, 338, 343, 349, 383, 455, 458, 460, 487], "d1": 487, "d2": 487, "d2fdx2": 481, "d_i": 352, "dampen": 467, "darwin": 2, "data": [0, 2, 6, 7, 10, 18, 125, 140, 156, 157, 162, 169, 193, 225, 229, 242, 251, 294, 296, 301, 305, 338, 401, 402, 403, 404, 405, 406, 407, 408, 479, 480, 482, 484], "dataset": [4, 480, 483], "datatyp": 51, "dbuild_shared_lib": 8, "dcmake_build_typ": 8, "ddof": [0, 75, 80, 280, 300], "deal": 479, "debug": [1, 3, 480], "debugg": 7, "decai": [456, 459, 461, 467, 468, 469, 472], "decay_r": [456, 469, 472], "decay_step": 468, "decent": 6, "decid": [311, 362], "decim": [0, 66, 260], "declar": 2, "decltyp": 1, "decod": 399, "decomposit": [183, 184, 191], "decor": [1, 112], "decoupl": 459, "deep": [328, 402, 403, 404, 405], "def": [1, 2, 4, 5, 6, 112, 143, 299, 324, 452, 479, 480, 481, 482, 483, 484, 487], "default": [1, 2, 8, 14, 15, 16, 17, 18, 26, 27, 28, 29, 82, 83, 90, 94, 95, 98, 99, 100, 101, 102, 103, 104, 112, 113, 114, 116, 117, 118, 121, 122, 123, 125, 126, 127, 140, 141, 143, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 163, 164, 165, 168, 169, 172, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 203, 205, 207, 208, 216, 217, 218, 221, 225, 229, 232, 233, 235, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 256, 257, 260, 267, 268, 274, 275, 278, 279, 280, 282, 284, 286, 291, 293, 294, 295, 296, 297, 298, 299, 300, 303, 305, 307, 317, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 339, 342, 343, 345, 348, 349, 351, 352, 355, 356, 358, 363, 365, 370, 372, 375, 378, 379, 380, 381, 383, 386, 391, 395, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 414, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 452, 455, 456, 457, 458, 459, 460, 461, 466, 467, 468, 476, 478, 479, 481, 484, 486, 488], "default_devic": 488, "default_stream": 488, "defin": [1, 2, 4, 5, 6, 8, 112, 126, 143, 164, 185, 189, 238, 307, 310, 484], "definit": [112, 183, 184, 245], "degre": [0, 239, 434], "delta": [426, 455], "delv": [404, 405], "demonstr": 484, "denomin": [348, 422, 455, 457, 458, 459, 460, 466], "dens": [208, 487], "depend": [0, 2, 3, 4, 8, 78, 189, 343, 349, 383, 480, 482, 486, 487], "depth": [310, 332, 335, 338, 481], "dequant": [0, 237], "deriv": [2, 481, 483], "descend": 360, "descent": [467, 479, 483], "describ": [2, 483], "descript": [2, 5, 317], "design": [1, 4, 7, 476, 487], "destin": [0, 2, 60, 127, 223, 236], "destroi": 479, "detach": 481, "detail": [1, 2, 10, 216, 324, 337, 386, 391, 400, 402, 403, 404, 405, 455, 457, 458, 460, 461, 482, 485], "determin": [0, 2, 118, 245, 313, 317, 369, 486], "dev": [2, 8], "develop": [2, 8], "developer_dir": 8, "deviat": [0, 246, 280, 402, 404, 407], "deviatoin": 0, "devic": [1, 2, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 121, 122, 125, 126, 127, 128, 129, 130, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 217, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 300, 301, 304, 305, 306, 315, 487, 488], "device_info": 218, "devicetyp": 9, "df": 484, "dfdx": [481, 482], "dft": [147, 148, 149, 150, 151, 152, 156, 157, 158], "dhwc": 338, "diag": [0, 191], "diagon": [0, 45, 117, 140, 294, 296, 297, 298], "dict": [94, 136, 194, 210, 263, 264, 265, 309, 368, 373, 376, 377, 452, 454, 462, 463, 465, 478, 481, 486], "dict_kei": [311, 463], "dictionari": [5, 94, 194, 210, 263, 264, 309, 310, 313, 324, 362, 371, 376, 377, 464, 478, 486], "did": 5, "diff": 2, "differ": [7, 178, 283, 301, 433, 481], "differenti": [1, 2, 7, 329, 409], "difficult": 481, "difficulti": [402, 403], "dilat": [0, 98, 99, 100, 101, 102, 103, 104, 330, 331, 333, 334], "dim": [1, 5, 145, 146, 340, 344, 348, 350, 378, 380, 382, 386, 391, 399], "dimens": [0, 2, 5, 15, 17, 26, 27, 62, 68, 78, 84, 85, 86, 94, 99, 100, 101, 103, 104, 118, 138, 145, 154, 155, 157, 158, 159, 163, 164, 171, 183, 184, 186, 187, 188, 189, 190, 191, 192, 203, 204, 205, 207, 221, 235, 236, 237, 241, 250, 280, 284, 288, 291, 295, 300, 328, 330, 331, 332, 333, 334, 335, 337, 338, 342, 343, 344, 348, 349, 350, 378, 382, 383, 386, 399, 400, 414, 423, 479, 481], "dimension": [30, 142, 144, 147, 148, 149, 150, 151, 152, 156, 157, 158, 326, 327, 328, 330, 331, 332, 333, 334, 335, 340, 352, 355, 356, 380, 381, 391, 482, 484], "direct": [2, 5, 360, 461, 487], "directli": [2, 5, 83], "directori": [2, 5, 8], "disabl": [119, 216, 479], "disable_compil": 479, "disappoint": 5, "discard": [5, 310], "discov": 8, "discoveri": 461, "discret": [105, 147, 148, 149, 150, 151, 152, 156, 157, 158, 340, 380], "discuss": 2, "disk": 5, "dispatch": 2, "dispatchthread": 2, "displai": 324, "distanc": [5, 434], "distribut": [7, 8, 240, 241, 242, 244, 245, 246, 251, 252, 352, 402, 403, 404, 405, 407, 408, 424, 427, 432, 434, 449], "diverg": 427, "divid": [0, 2, 38, 161, 237, 255, 480], "divis": [0, 128, 161, 237, 255], "divisor": [280, 300], "divmod": 0, "dloss_dw": 481, "dloss_dx": 481, "dlpack": 484, "dlvalu": 299, "dmlx_build_cpu": 8, "dmlx_build_gguf": 8, "dmlx_build_safetensor": 8, "dmlx_metal_debug": 3, "dmlx_metal_jit": 8, "do": [0, 2, 5, 8, 301, 324, 364, 375, 449, 452, 459, 479, 480, 481, 483], "doc": [2, 6, 480], "document": [2, 3, 65, 79, 263, 264, 317, 479, 481, 482], "doe": [0, 2, 3, 5, 8, 211, 301, 309, 324, 479, 482, 483, 484], "doesn": [2, 324], "domain": [251, 480], "don": [1, 8, 479, 487], "done": [324, 336, 382, 479, 480, 483, 484], "dot": [183, 188, 192, 291, 310, 367, 378], "doubl": [0, 5], "doubt": 5, "down": [5, 309], "dparam": 299, "draw": 241, "drop": 362, "dropout": [324, 337, 338, 372, 399, 479], "dropout2d": 324, "dropout3d": 324, "dst": 127, "dt": 134, "dtype": [0, 1, 2, 5, 11, 18, 30, 37, 38, 78, 81, 125, 126, 140, 143, 159, 162, 169, 178, 186, 187, 189, 190, 193, 229, 242, 244, 245, 246, 248, 251, 252, 294, 296, 301, 305, 317, 370, 400, 401, 402, 403, 404, 405, 406, 407, 408, 421, 423, 430, 468, 469, 470, 471, 472, 479, 480, 481, 482, 484, 485, 486], "dtypecategori": [178, 317], "dual": 429, "duchi": 457, "dure": [3, 94, 336, 337, 338, 400, 484], "dx": 112, "dy": 112, "dyld": 480, "dyld_library_path": 480, "dylib": 2, "dynam": 483, "e": [2, 6, 8, 112, 134, 143, 163, 164, 179, 269, 328, 330, 331, 332, 333, 334, 335, 337, 338, 344, 348, 350, 363, 382, 419, 420, 442, 443, 448, 454, 457, 479, 483, 488], "e5": 317, "e8": 317, "each": [0, 1, 2, 68, 116, 136, 141, 145, 164, 178, 183, 184, 186, 187, 188, 191, 192, 204, 208, 232, 237, 238, 241, 256, 265, 266, 275, 292, 295, 301, 303, 304, 337, 338, 340, 343, 344, 349, 383, 386, 399, 421, 423, 476, 479, 480, 483], "eager": 483, "earli": 337, "earlier": 2, "eas": 5, "easi": [2, 324, 480], "easier": [1, 483], "edg": [93, 232, 400, 479], "edit": [8, 377], "effect": [337, 479, 483], "effici": [5, 7, 163, 337, 386, 483, 485], "eigenvalu": [186, 187], "eigenvector": 186, "einstein": [130, 131], "einsum": 131, "either": [8, 13, 65, 78, 79, 87, 88, 89, 93, 128, 129, 133, 161, 166, 167, 180, 181, 182, 189, 199, 204, 206, 222, 224, 228, 234, 255, 258, 283, 299, 327, 356, 388, 400, 404, 405, 484], "elem": [1, 143], "elem_to_loc": [1, 2], "element": [0, 1, 2, 12, 13, 19, 20, 21, 22, 23, 24, 25, 28, 70, 83, 87, 88, 89, 92, 106, 107, 108, 109, 110, 111, 116, 128, 129, 133, 134, 135, 137, 139, 140, 141, 160, 161, 164, 166, 167, 172, 173, 174, 175, 176, 177, 180, 181, 182, 195, 196, 197, 198, 199, 200, 201, 202, 206, 208, 222, 224, 226, 228, 233, 234, 237, 238, 254, 255, 256, 258, 259, 261, 269, 270, 271, 272, 276, 277, 283, 287, 289, 290, 293, 299, 301, 304, 329, 336, 337, 338, 343, 347, 349, 357, 379, 383, 386, 390, 409, 416, 417, 419, 420, 435, 436, 438, 441, 442, 443, 444, 479, 481], "elementwis": [1, 96, 97], "elif": 5, "ellipsi": 482, "elman": 383, "els": [0, 2, 5, 324, 363, 480, 483], "elsewher": [296, 482], "elu": [324, 439], "emb": [5, 340, 380, 391], "embed": [5, 307, 324, 380, 386, 391, 422], "empti": [127, 245], "enabl": [3, 5, 8, 94, 132, 467], "encod": [2, 145, 386, 391, 399, 423], "encount": [2, 481], "end": [118, 184, 214, 237, 259, 327, 343, 349, 356, 397, 415, 426, 433, 439, 445, 446, 468, 471], "end_axi": [0, 49, 159], "end_encod": 2, "endif": 2, "endswith": 363, "enhanc": [5, 386, 483], "enjoi": 2, "enough": [2, 483], "ensur": [0, 1, 2, 8, 143, 309, 429, 480], "ensure_row_contigu": [1, 143], "enter": 5, "entir": [15, 17, 26, 27, 203, 205, 207, 221, 235, 280, 284, 300, 337, 338], "entri": [0, 247, 337, 338], "entropi": [6, 421, 423], "enumer": 324, "environ": [8, 119, 132, 480], "ep": [4, 142, 144, 328, 344, 348, 350, 382, 422, 424, 434, 454, 455, 456, 457, 458, 459, 460, 466], "epoch": 6, "epsilon": [328, 344, 348, 350, 382, 422, 424, 455, 457, 458, 459, 460, 466], "epsilon_1": 456, "epsilon_2": 456, "equal": [0, 16, 28, 82, 140, 167, 172, 182, 228, 233, 248, 275, 348, 352], "equal_nan": [0, 16, 82, 172], "equat": [130, 131], "equival": [0, 2, 31, 65, 79, 126, 129, 161, 164, 168, 287, 329, 339, 341, 345, 346, 347, 353, 354, 377, 379, 381, 384, 385, 387, 389, 392, 393, 394, 395, 396, 398], "erf": [0, 135, 479], "erfinv": 0, "error": [0, 2, 8, 123, 134, 135, 217, 218, 275, 341, 411, 412, 413, 429, 431, 481, 484], "error_norm": 4, "estim": [458, 460], "eta": 461, "etc": [2, 237, 324, 400, 480], "eval": [2, 3, 4, 5, 6, 324, 452, 454, 479, 480, 481, 483, 485], "eval_cpu": 2, "eval_fn": 6, "eval_gpu": 2, "evalu": [2, 5, 6, 7, 127, 136, 179, 302, 324, 361, 372, 452, 454, 479, 485], "even": [1, 2, 5, 94, 479, 483, 484], "evenli": [0, 193], "everi": [237, 311, 454, 472, 481], "everyth": [5, 480], "everywher": 0, "exact": [412, 413], "exactli": [2, 5, 145, 365, 481], "exampl": [0, 3, 4, 5, 6, 8, 18, 38, 112, 143, 159, 178, 186, 187, 189, 190, 282, 287, 309, 312, 313, 324, 326, 327, 328, 348, 355, 356, 363, 365, 372, 375, 400, 401, 402, 403, 404, 405, 406, 407, 408, 421, 423, 430, 449, 454, 463, 468, 469, 470, 471, 472, 476, 481, 482, 483, 484, 485, 486], "exce": 309, "exceed": 217, "except": [7, 140, 153, 154, 156, 157, 158, 344, 365, 482, 484], "exclud": [236, 288], "exclus": [0, 83, 89], "execut": [2, 8, 84, 85, 86, 213, 484, 487], "exist": [2, 3, 5, 363, 375], "exp": [0, 1, 139, 143, 199, 203, 242, 273, 329, 339, 390, 409, 410, 427, 439, 440, 444, 479, 487], "exp_elementwis": [1, 143], "expand_dim": 0, "expect": [2, 5, 330, 331, 332, 333, 334, 335, 336, 337, 338, 391, 399, 424, 479, 482], "expens": 399, "expensive_fun": 483, "experiment": 484, "explain": 2, "explicit": [2, 463, 476, 484], "explicitli": [163, 324, 476], "explor": 8, "expm1": 0, "exponenti": [0, 137, 139, 329, 339, 387, 409, 410, 439, 469], "exponential_decai": 454, "export": 8, "ext_modul": 2, "extend": [2, 232], "extens": [7, 194, 219, 369, 486], "extern": 484, "extra": [1, 311, 312], "extract": [0, 5, 45, 117, 118, 324, 362, 452, 480], "extras_requir": 2, "extrem": [482, 483], "ey": [0, 5, 188, 192], "f": [0, 2, 4, 6, 112, 189, 324, 349, 459, 479, 484], "f_jvp": 112, "f_t": 349, "f_vjp": 112, "f_vmap": 112, "face": 5, "factor": [2, 14, 168, 183, 184, 190, 400, 423, 469, 472], "fall": [2, 112], "fallback": 2, "fals": [0, 1, 2, 5, 15, 16, 17, 26, 27, 33, 34, 35, 36, 41, 42, 43, 44, 56, 57, 58, 59, 63, 75, 76, 80, 82, 94, 101, 108, 109, 110, 111, 123, 143, 172, 178, 183, 184, 189, 192, 194, 203, 205, 207, 208, 217, 221, 235, 280, 284, 300, 304, 307, 310, 311, 312, 313, 317, 344, 348, 350, 352, 363, 365, 375, 378, 381, 386, 391, 399, 400, 421, 424, 456, 467, 484], "famili": 5, "fan": [402, 403, 404, 405], "fan_in": [402, 403, 404, 405], "fan_out": [402, 403, 404, 405], "far": 454, "fast": [1, 7, 341, 413, 480, 487], "faster": [1, 2, 8, 129, 411, 421, 479, 481], "featur": [1, 7, 98, 99, 100, 101, 102, 103, 104, 145, 328, 343, 344, 348, 349, 350, 352, 381, 382, 383, 386, 399, 400, 479, 483], "feed": 5, "feed_forward": 5, "feedforward": [402, 403], "feel": 5, "fetch": 1, "few": [1, 2, 5, 6, 7, 8, 480, 483, 485], "ffn": 5, "ffn_norm": 5, "fft": 7, "figur": 480, "file": [5, 8, 194, 262, 263, 264, 265, 266, 365, 369, 480, 481, 486], "file_or_weight": 365, "fill": [0, 2, 162, 230, 296, 306, 401, 402, 403, 404, 405, 407, 408], "filter": [0, 105, 330, 331, 332, 333, 334, 335, 358, 362], "filter_and_map": 324, "filter_fn": [358, 362], "final": [2, 4, 5, 6, 168, 468, 471], "find": [2, 4, 8, 480], "find_packag": 2, "finder": 8, "fine": [476, 483], "finetun": 324, "finish": 2, "finit": [0, 173, 225], "first": [0, 1, 2, 3, 4, 5, 6, 8, 118, 121, 159, 165, 178, 180, 191, 200, 202, 204, 233, 250, 258, 285, 291, 294, 299, 310, 312, 313, 324, 327, 344, 356, 400, 422, 430, 456, 458, 459, 460, 463, 479, 481, 484, 487], "first_lay": 483, "fit": [2, 237, 487], "five": 479, "fix": [2, 5, 8, 483], "flag": [2, 8, 479, 484], "flat": [163, 164, 310, 314], "flat_param": 265, "flatten": [0, 28, 29, 108, 109, 110, 111, 189, 231, 233, 236, 256, 259, 274, 287, 288, 293, 310], "flexibl": 7, "flexibli": 377, "flip": [0, 101, 105], "float": [0, 1, 2, 11, 14, 16, 18, 78, 142, 143, 144, 145, 146, 161, 162, 168, 172, 178, 189, 225, 238, 240, 244, 246, 309, 317, 328, 336, 337, 338, 344, 348, 350, 358, 370, 382, 386, 391, 397, 399, 400, 401, 402, 403, 404, 405, 407, 408, 422, 423, 424, 426, 430, 433, 434, 445, 446, 455, 456, 457, 458, 459, 460, 461, 466, 467, 468, 469, 471, 472], "float16": [1, 2, 11, 143, 168, 194, 317, 358, 483, 484], "float16_t": [1, 2], "float32": [0, 1, 2, 11, 18, 140, 143, 146, 168, 169, 178, 186, 187, 189, 190, 193, 229, 242, 244, 245, 246, 251, 252, 296, 305, 317, 400, 401, 402, 403, 404, 405, 406, 407, 408, 421, 423, 430, 468, 469, 470, 471, 472, 479, 480, 481, 482, 483, 484, 485, 486], "float64": 178, "floor": [0, 1, 161], "floor_divid": 0, "flow": [0, 281, 483], "flush": 2, "fn": [308, 311, 312, 313, 485], "follow": [1, 2, 5, 6, 7, 8, 18, 105, 116, 141, 163, 189, 232, 237, 312, 324, 412, 413, 427, 455, 456, 457, 458, 459, 460, 461, 467, 476, 479, 480, 481, 487], "foo": 480, "food": 5, "forc": [5, 6, 324, 480, 485], "forg": 8, "formal": [116, 141, 237], "format": [5, 194, 262, 263, 264, 265, 266, 484], "formul": [329, 339], "formula": 433, "forth": 400, "forward": [1, 2, 299, 479, 483], "found": 362, "four": 328, "fourier": [147, 148, 149, 150, 151, 152, 156, 157, 158], "frac": [134, 237, 269, 326, 327, 328, 336, 337, 338, 344, 348, 350, 352, 355, 356, 382, 390, 402, 403, 404, 405, 422, 424, 426, 429, 440, 442, 443, 455, 457, 458, 459, 460, 466], "fraction": 18, "framework": [2, 7], "free": 216, "freez": [324, 375, 452], "freq": 145, "frequenc": [145, 386, 391], "frequent": [479, 483], "friend": 5, "fro": 189, "frobeniu": 189, "from": [0, 1, 2, 5, 6, 7, 83, 115, 116, 118, 121, 122, 125, 126, 127, 141, 143, 154, 155, 157, 158, 162, 163, 168, 189, 194, 204, 208, 213, 216, 230, 237, 239, 240, 241, 242, 243, 244, 248, 251, 265, 278, 281, 283, 287, 288, 293, 294, 304, 306, 310, 311, 312, 313, 314, 324, 352, 363, 365, 378, 402, 403, 404, 405, 407, 408, 424, 433, 449, 454, 478, 479, 480, 481, 483, 484, 485, 486, 487], "from_embed": 380, "from_linear": 381, "front": 2, "frozen": [324, 363, 373, 375, 381, 452], "fuction": 129, "full": [0, 1, 2, 6, 65, 79, 105, 273, 376, 377, 424, 479, 480, 483], "full_turn": 391, "fulli": [2, 7, 480, 484, 487], "fun": [94, 165, 179, 299, 302, 303, 479, 482, 483, 487], "fun1": 483, "func": 383, "function": [0, 1, 2, 3, 4, 5, 6, 7, 16, 18, 83, 94, 112, 129, 134, 135, 143, 165, 172, 179, 183, 184, 186, 187, 188, 189, 190, 191, 192, 204, 218, 269, 299, 302, 303, 308, 309, 311, 312, 313, 324, 329, 339, 341, 342, 345, 346, 347, 353, 354, 357, 359, 363, 370, 375, 379, 383, 384, 385, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 411, 412, 413, 414, 415, 416, 417, 419, 420, 421, 435, 440, 442, 443, 444, 445, 446, 447, 449, 454, 463, 476, 478, 480, 482, 483, 484, 486], "functool": 479, "further": [2, 8, 481], "fuse": [1, 479], "fusibl": 479, "futur": [5, 381, 482, 483], "g": [3, 8, 112, 143, 189, 237, 349, 448, 466, 467, 483, 488], "g_t": [349, 455, 457, 458, 459, 460, 461, 466, 467], "gain": [402, 403, 404, 405], "gamma": [328, 344, 348, 350, 382, 402, 403, 404, 405], "gap": 1, "gate": [342, 343, 414], "gather": [0, 121, 163, 164], "gather_mm": [0, 164], "gather_qmm": 0, "gaurante": 301, "gaussian": [4, 341, 411, 412, 413, 424], "gaussian_nll_loss": 324, "gelu": [324, 412, 413, 479], "gelu_approx": [324, 341, 411], "gelu_fast_approx": [324, 341, 411], "geluapprox": 341, "gelufast": 341, "gener": [0, 1, 2, 3, 4, 11, 18, 101, 140, 143, 154, 155, 193, 208, 240, 245, 246, 247, 248, 251, 252, 399, 476, 479, 482, 483, 488], "general_": 2, "generate_stub": 8, "geq": [397, 446], "get": [2, 4, 6, 8, 99, 100, 101, 103, 104, 113, 114, 210, 211, 212, 213, 243, 324, 479, 481, 483, 487], "get_cache_memori": 209, "get_command_encod": 2, "get_kernel": 2, "gguf": [8, 194, 263, 486], "gh": 1, "gii": 1, "git": 8, "github": [4, 6, 8, 479], "give": [2, 5, 6, 28, 479], "given": [0, 2, 8, 15, 17, 28, 38, 83, 91, 93, 95, 108, 109, 110, 111, 116, 118, 131, 136, 138, 141, 147, 148, 149, 150, 151, 152, 156, 157, 158, 162, 163, 189, 203, 205, 207, 216, 221, 225, 227, 235, 245, 247, 248, 259, 260, 268, 273, 275, 280, 284, 286, 292, 293, 294, 296, 297, 298, 300, 315, 326, 327, 336, 355, 356, 362, 378, 422, 424, 430], "gix": 1, "gix_mult": 1, "giy_mult": 1, "global": [119, 121, 122, 123, 125, 126, 127, 132, 249, 309, 476, 479], "glorot": [402, 403], "glorot_norm": 324, "glorot_uniform": 324, "glu": [5, 324], "gm": 1, "gn": 1, "go": [2, 5, 481], "golub": 189, "good": [2, 8, 454, 479, 480, 487], "goroshin": 337, "gower": 5, "gpu": [1, 3, 7, 8, 210, 482, 487], "gputrac": [3, 219], "grad": [2, 4, 6, 299, 309, 454, 462, 479, 480, 481, 482, 483, 485], "grad_fn": [4, 479, 481], "gradient": [0, 4, 6, 112, 165, 281, 299, 308, 309, 324, 363, 376, 381, 399, 429, 452, 454, 455, 456, 458, 459, 460, 461, 462, 465, 467, 479, 480, 481, 482, 483, 484, 485], "grain": 476, "graph": [2, 5, 6, 7, 481], "great": 3, "greater": [0, 5, 28, 139, 167, 233, 309, 397, 446], "greater_equ": 0, "grep": 8, "grid": [2, 143, 208], "grid_dim": 2, "grid_grad": 1, "grid_idx": 1, "grid_sampl": 1, "grid_sample_grad": 1, "grid_sample_ref": 1, "grid_sample_vjp": 1, "grid_shap": 1, "grid_siz": 1, "ground": [4, 5, 423, 433], "group": [0, 1, 98, 99, 100, 101, 102, 103, 104, 116, 121, 122, 123, 125, 126, 127, 141, 146, 164, 237, 238, 301, 307, 330, 344, 380, 381, 480], "group_dim": 2, "group_siz": [0, 116, 141, 164, 237, 238, 307, 380, 381], "groupnorm": 324, "grow": 483, "gru": 324, "guid": [2, 7], "gw": 1, "h": [1, 2, 98, 99, 100, 102, 103, 104, 189, 327, 328, 331, 332, 334, 335, 337, 338, 343, 349, 356, 383, 481, 483], "h_": [327, 343, 349, 356, 383], "h_in": 1, "h_stride": 1, "h_t": [343, 349, 383], "ha": [2, 3, 5, 6, 7, 8, 78, 94, 118, 127, 153, 154, 156, 157, 158, 165, 183, 184, 186, 187, 188, 191, 192, 208, 212, 241, 328, 343, 349, 352, 383, 452, 454, 479, 482, 483, 485, 487], "had": 5, "hadamard": [0, 168], "hadamard_transform": 0, "half": [2, 18, 248, 252, 386, 483], "halv": [342, 414], "hand": [5, 481, 483], "handi": 481, "handl": [2, 324, 479], "happen": [2, 5, 142, 399, 454, 479, 483], "happi": 5, "hard": 5, "hard_shrink": [324, 345], "hard_tanh": [324, 346], "hardshrink": [324, 415], "hardswish": 324, "hardtanh": [324, 416], "hat": [116, 141, 237], "have": [0, 1, 2, 5, 8, 16, 82, 84, 85, 86, 90, 121, 154, 155, 157, 158, 164, 172, 204, 219, 241, 301, 310, 349, 378, 388, 461, 463, 478, 479, 480, 482, 483, 487], "haven": 5, "hazan": 457, "he": [5, 404, 405], "he_norm": 324, "he_uniform": 324, "head": [146, 378, 399], "header": [2, 143], "heart": 5, "heavi": 5, "height": [327, 328, 331, 332, 334, 335, 337, 338, 356], "hello": [310, 314], "help": [2, 5, 479, 487], "helper": [5, 143, 479], "henc": [0, 2, 237, 479], "hendryck": 413, "here": [2, 5, 454, 479, 481, 483, 486, 487], "hermitian": [186, 187], "hf": 349, "hg": 349, "hh": 383, "hi": [5, 349], "hidden": [343, 349, 383, 399], "hidden_dim": [6, 452, 454], "hidden_s": [343, 349, 383], "hierarchi": 317, "high": [248, 252, 324, 340, 408, 449], "high_pad_s": 0, "higher": [2, 171, 218, 430, 481], "highli": 8, "him": 5, "hing": 425, "hinge_loss": 324, "hinton": 466, "hit": 2, "hn": 343, "ho": 349, "hold": [2, 5, 10, 11, 189, 479], "homebrew": 480, "hopkin": 189, "host": 2, "host1": 480, "host2": 480, "host_nam": [1, 2], "hostfil": 480, "hostnam": 480, "hot": 423, "hour": 5, "how": [2, 5, 6, 324, 326, 327, 330, 331, 332, 333, 334, 335, 340, 355, 356, 380, 400, 462, 479, 482, 487], "howev": [2, 112, 324, 341, 344, 463, 476, 479, 480, 483, 484], "hr": 343, "http": [344, 348, 350, 357, 382, 413, 435], "huber": 426, "huber_loss": 324, "human": [404, 405], "hundr": 8, "hurri": 5, "hutter": 459, "hyperbol": [0, 20, 22, 25, 107, 272, 290, 398, 447], "hz": 343, "i": [0, 1, 2, 3, 5, 6, 7, 8, 16, 18, 28, 37, 78, 83, 93, 99, 100, 101, 103, 104, 105, 108, 109, 110, 111, 112, 117, 118, 121, 122, 124, 125, 126, 127, 129, 136, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 168, 172, 173, 178, 179, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 199, 203, 204, 208, 214, 217, 218, 232, 233, 236, 237, 238, 245, 246, 247, 257, 259, 262, 263, 264, 269, 273, 275, 280, 281, 286, 287, 288, 291, 294, 295, 299, 300, 301, 302, 303, 304, 307, 309, 310, 311, 312, 313, 317, 319, 324, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 341, 343, 344, 348, 349, 350, 352, 355, 356, 362, 363, 369, 371, 372, 374, 375, 377, 378, 379, 381, 382, 383, 386, 391, 397, 399, 400, 404, 405, 411, 413, 421, 422, 424, 429, 430, 433, 434, 436, 441, 446, 452, 454, 456, 459, 461, 462, 463, 468, 470, 471, 476, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "i386": 8, "i_n": 1, "i_nw": 1, "i_s": 1, "i_sw": 1, "i_t": 349, "iclr": [458, 459, 460], "id": [6, 8], "idea": [481, 483], "idempot": [363, 375], "ident": [0, 112, 140, 281, 324, 372], "identifi": [2, 310, 478], "idim": 6, "idiom": [6, 479], "idx": [38, 482], "ie": [375, 480], "ieee": 317, "ignor": [5, 38, 93, 94, 136, 456], "ih": 383, "ii": 1, "ij": 208, "imag": [0, 331, 332, 334, 335, 337, 338, 400], "imagenet": [404, 405], "imaginari": 170, "immedi": [5, 358], "implement": [0, 1, 4, 6, 145, 146, 189, 340, 362, 378, 386, 388, 391, 397, 399, 400, 446, 455, 456, 457, 458, 460, 461, 462, 474, 479, 481], "impli": 301, "implicit": [476, 479, 481], "implicitli": 483, "import": [2, 3, 4, 5, 6, 8, 112, 168, 189, 265, 299, 310, 311, 312, 313, 314, 324, 326, 327, 328, 348, 355, 356, 365, 400, 421, 423, 430, 449, 452, 454, 479, 480, 481, 482, 483, 484, 485], "improv": [1, 2, 3, 5, 421, 455, 456, 457, 458, 459, 460, 466, 479, 480], "in_ax": [303, 481], "in_channel": [330, 331, 332, 333, 334, 335], "in_dim": [324, 452], "in_proj": 452, "inci": 2, "includ": [1, 2, 108, 109, 110, 111, 143, 211, 212, 217, 350, 359, 371, 381, 424, 454, 479, 481, 482, 485, 486, 488], "include_dir": 2, "inclus": [0, 41, 42, 43, 44, 108, 109, 110, 111, 159], "incom": 2, "inconveni": 479, "incorpor": 484, "incorrect": 484, "increas": 218, "increment": 18, "incur": [5, 8], "incx": 2, "independ": [120, 337, 338], "index": [0, 1, 2, 7, 9, 28, 38, 138, 140, 165, 208, 233, 287, 288, 299, 315], "indic": [0, 2, 16, 26, 27, 28, 29, 38, 163, 164, 165, 172, 173, 174, 175, 176, 177, 178, 191, 236, 275, 287, 288, 299, 372, 374, 423, 430, 470, 482], "indices_or_sect": [71, 275], "indirectli": 484, "individu": [324, 337, 338], "ineffici": [482, 483], "inexact": [11, 178], "inf": [189, 225, 378], "infer": [7, 162, 194, 294, 480], "infin": [0, 174, 176, 177, 225, 355, 356, 460], "infinit": [16, 172, 173], "info": [5, 8], "inform": [3, 5, 6, 8, 131, 210, 263, 264, 317, 324, 328, 341, 378, 481, 487], "inherit": [6, 478], "inifn": 174, "init": [324, 379, 449, 454, 468, 469, 471, 472, 480], "init_fn": [401, 402, 403, 404, 405, 406, 407, 408, 449], "init_valu": 1, "initi": [1, 3, 4, 5, 123, 313, 324, 328, 344, 348, 350, 352, 379, 382, 401, 402, 403, 404, 405, 406, 407, 408, 452, 463, 468, 469, 471, 472, 479, 480, 483], "initializer_list": 0, "inject": 0, "inlin": 0, "inner": [0, 479], "inorm": 348, "inp": [1, 143], "inp_ndim": 1, "inp_shap": 1, "inp_strid": 1, "inplac": [2, 8], "input": [0, 1, 2, 4, 5, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 117, 118, 121, 122, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 221, 222, 223, 224, 225, 226, 228, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 247, 250, 253, 254, 255, 256, 257, 258, 259, 260, 261, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 303, 304, 306, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 340, 342, 343, 344, 348, 349, 350, 352, 355, 356, 378, 381, 382, 383, 386, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 414, 421, 422, 424, 425, 426, 427, 429, 430, 432, 434, 446, 449, 479, 481, 482, 485, 486], "input_dil": [0, 101], "input_dim": [6, 324, 352, 381], "input_nam": [1, 143], "input_s": [343, 349, 383], "inputs1": 430, "inputs2": 430, "insert": [118, 138, 487], "insid": 479, "inspect": [3, 479, 485], "inspir": 7, "instabl": 434, "instal": 2, "instanc": [5, 38, 112, 237, 314, 324, 348, 358, 359, 360, 363, 365, 366, 367, 372, 375, 376, 377, 388, 452, 484], "instancenorm": 324, "instanti": [1, 2, 6, 483], "instantiate_axpbi": 2, "instead": [2, 8, 112, 324, 377, 391, 480, 481, 483], "int": [0, 1, 2, 5, 6, 9, 15, 17, 18, 26, 27, 28, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 49, 56, 57, 58, 59, 60, 63, 66, 68, 71, 74, 75, 76, 77, 78, 80, 83, 90, 91, 95, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 116, 117, 118, 125, 126, 127, 131, 138, 140, 141, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 164, 165, 169, 178, 185, 189, 193, 203, 205, 207, 210, 211, 212, 213, 216, 217, 218, 221, 223, 229, 232, 233, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 256, 257, 259, 260, 273, 274, 275, 278, 279, 280, 284, 285, 287, 288, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 303, 305, 307, 315, 324, 326, 327, 328, 330, 331, 332, 333, 334, 335, 340, 342, 343, 344, 348, 349, 350, 352, 355, 356, 378, 380, 381, 382, 383, 386, 391, 399, 414, 422, 423, 427, 432, 434, 452, 468, 470, 471, 472], "int16": 317, "int32": [0, 1, 11, 18, 38, 159, 178, 189, 248, 317, 400, 482, 485], "int64": [11, 317], "int8": [11, 317], "int_0": 134, "integ": [0, 11, 161, 163, 164, 178, 189, 210, 232, 237, 238, 240, 247, 248, 275, 287, 291, 303, 317, 340, 370, 470, 482], "integr": [18, 287, 483], "intend": [0, 479], "interact": 399, "interest": 487, "interfac": 2, "intermedi": 484, "intern": 328, "interpol": 400, "interv": [18, 193, 248, 252], "introduc": [0, 259], "intuit": 324, "invalid": [0, 83], "invers": [0, 19, 20, 21, 22, 23, 24, 25, 135, 150, 151, 152, 153, 154, 155, 184, 188, 192], "invert": 0, "involv": [454, 479], "iogpu": 218, "ip": 480, "is_avail": 123, "is_equival": 2, "is_floating_point": 2, "is_leaf": [310, 311, 312, 313], "is_leaf_fn": 362, "isclos": 0, "isfinit": 0, "ish": 5, "ishmael": 5, "isinf": 0, "isnan": 0, "isneginf": 0, "isposinf": 0, "issu": [480, 481, 484], "issubdtyp": [11, 317], "item": [0, 2, 4, 5, 6, 311, 454, 483, 484, 485], "iter": [4, 6, 191, 311, 312, 476, 479, 483], "iterm": 8, "itertool": [5, 311], "its": [0, 1, 2, 8, 184, 204, 233, 250, 296, 308, 314, 324, 381, 454, 458, 459, 460, 480, 484, 487], "itself": [2, 307, 463], "ix": 1, "ix_n": 1, "ix_nw": 1, "ix_s": 1, "ix_sw": 1, "iy_n": 1, "iy_nw": 1, "iy_s": 1, "iy_sw": 1, "j": [5, 8, 189, 337, 457, 458, 460], "j8": 2, "jacobian": [2, 179, 302, 485], "jain": 337, "jax": [7, 476], "jit": 143, "jmlr": 457, "jnp": 484, "john": 189, "join": 470, "join_schedul": 454, "jointli": 245, "just": [2, 6, 350, 479, 482], "jvp": [2, 112, 485], "k": [0, 5, 45, 90, 117, 140, 146, 163, 168, 293, 296, 297, 298, 326, 352, 355, 363], "k_h": [327, 356], "k_w": [327, 356], "kaim": 405, "keep": [2, 15, 17, 26, 27, 203, 205, 207, 221, 235, 280, 284, 300, 324, 362, 481, 483], "keepdim": [0, 15, 17, 26, 27, 33, 34, 35, 36, 56, 57, 58, 59, 63, 75, 76, 80, 189, 203, 205, 207, 221, 235, 273, 280, 284, 300], "kei": [1, 3, 5, 146, 210, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 310, 311, 362, 363, 375, 378, 463, 476, 478, 481], "kept": 218, "kernel": [2, 7, 8, 98, 99, 100, 101, 102, 103, 104, 143, 326, 327, 355, 356, 479, 482], "kernel_dil": [0, 101], "kernel_s": [326, 327, 330, 331, 332, 333, 334, 335, 355, 356], "key_cach": 5, "key_input_dim": 378, "key_proj": 5, "keyword": [165, 265, 266, 299, 311, 324, 476, 486, 488], "kind": 5, "kingma": [458, 460], "kl_div_loss": 324, "kname": 2, "know": [2, 5], "known": [389, 441], "kth": [0, 28, 233], "kullback": 427, "kw_onli": 2, "kwarg": [10, 120, 265, 266, 488], "l": [5, 6, 183, 184, 186, 187, 324, 326, 328, 330, 333, 343, 349, 355, 383, 433], "l1": [299, 426, 428, 429, 433], "l1_loss": 324, "l2": [426, 429, 467], "l2_loss": 324, "l_": [326, 355, 426], "la": 189, "label": [3, 4, 423, 430], "label_smooth": 423, "lack": 482, "lambd": [345, 395, 415, 445], "lambda": [311, 312, 313, 324, 345, 358, 363, 370, 395, 415, 439, 445, 455, 456, 457, 458, 459, 460, 461, 466, 467, 479, 480, 481], "languag": [1, 2], "larg": [5, 324, 378, 429, 479, 480, 483], "larger": [1, 145, 218, 386, 461], "largest": [189, 225, 293], "lasso": 299, "last": [0, 1, 5, 29, 78, 142, 144, 149, 152, 154, 155, 157, 158, 159, 163, 164, 171, 183, 184, 186, 187, 188, 190, 191, 192, 204, 213, 241, 274, 291, 301, 330, 331, 332, 333, 334, 335, 337, 338, 344, 400, 484], "latenc": 480, "later": [3, 8, 454], "launch": [1, 2, 123, 480, 482], "layer": [7, 142, 307, 324, 326, 327, 337, 338, 343, 344, 349, 350, 352, 355, 356, 372, 377, 380, 381, 383, 388, 399, 448, 452], "layer_s": 6, "layernorm": 324, "layout": 1, "lazi": [7, 452, 485], "lazili": [5, 324], "lceil": 90, "ld": [343, 349, 383], "ldot": [326, 327, 355, 356], "lead": [0, 18, 83, 479], "leaf": [94, 307, 310, 311, 312, 313, 362], "leaf_modul": 324, "leaki": [351, 418], "leaky_relu": 324, "leakyrelu": 324, "learn": [4, 6, 7, 328, 344, 348, 350, 379, 382, 454, 455, 456, 457, 458, 459, 460, 461, 466, 467], "learnabl": [330, 331, 332, 333, 334, 335, 388], "learning_r": [6, 454, 455, 456, 457, 458, 459, 460, 461, 463, 466, 467, 468, 469, 470, 471, 472, 479], "least": [5, 84, 85, 86, 93, 183, 184, 186, 187, 188, 190, 191, 192, 237], "leav": [2, 136, 311, 312, 313], "lectur": 466, "lecun": 337, "left": [0, 5, 145, 180, 189, 237, 259, 326, 327, 341, 355, 356, 386, 400, 412, 413, 424, 426, 434], "left_shift": 0, "leibler": 427, "len": [5, 149, 152, 155, 158, 168, 470], "length": [5, 278, 328, 330, 333, 343, 349, 383, 470], "leq": [426, 439], "less": [0, 5, 28, 182, 218, 233, 386, 433], "less_equ": 0, "let": [1, 2, 4, 5, 184, 479, 481, 483, 484], "level": [0, 163, 164, 404, 405], "lfloor": [326, 327, 355, 356], "lh": [343, 349, 383], "lhs_indic": [0, 163, 164], "lhs_mask": 90, "lib": 480, "libmlx": 8, "libmlx_ext": 2, "libmpi": 480, "librari": [2, 8, 319, 324], "like": [2, 5, 7, 126, 178, 230, 306, 338, 429, 463, 465, 479, 480, 481, 483, 484, 485, 487], "likelihood": [424, 432], "limit": [0, 2, 93, 216, 217, 218, 482], "linalg": 168, "line": [5, 480, 483, 484], "linear": [0, 2, 5, 6, 7, 307, 311, 324, 329, 339, 341, 342, 351, 365, 381, 383, 384, 385, 387, 389, 400, 409, 410, 411, 412, 413, 414, 418, 437, 438, 439, 441, 449, 452, 463, 471, 479], "linear1": 5, "linear2": 5, "linear3": 5, "linear_schedul": [454, 470], "linearli": 378, "link": [2, 8], "linspac": 0, "lion": 454, "list": [1, 5, 10, 15, 17, 30, 71, 78, 83, 84, 85, 86, 91, 94, 95, 101, 131, 136, 143, 148, 149, 151, 152, 154, 155, 157, 158, 162, 165, 179, 189, 203, 205, 207, 208, 221, 229, 232, 235, 240, 241, 242, 244, 245, 246, 248, 251, 252, 263, 273, 275, 279, 280, 284, 291, 292, 295, 299, 300, 302, 305, 310, 313, 314, 324, 363, 365, 366, 367, 368, 373, 375, 376, 377, 452, 454, 458, 459, 460, 461, 470, 478, 479, 480, 481, 483], "liter": [2, 232, 400, 404, 405, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434], "littl": 5, "liu": 5, "live": [7, 143, 487], "ll": [1, 4, 6, 426, 479, 481], "llama": 5, "llamaattent": 5, "llamaencoderlay": 5, "llm": 7, "load": [6, 7, 319, 365, 480], "load_weight": [324, 483], "loader": 6, "loader_path": 2, "loan": 189, "loc": [1, 244, 246], "local": [324, 337, 480], "locat": [0, 2, 83, 376, 377, 480, 487], "log": [0, 197, 199, 203, 353, 354, 419, 420, 421, 424, 427, 429, 432, 444], "log10": 0, "log1p": 0, "log2": 0, "log_cosh_loss": 324, "log_sigmoid": [324, 353], "log_softmax": [324, 354], "logaddexp": 0, "logarithm": [0, 195, 196, 197, 198], "logcosh": 429, "logic": [0, 2, 200, 201, 202], "logical_and": 0, "logical_not": 0, "logical_or": 0, "logist": [0, 4, 269, 413, 441], "logit": [5, 241, 421, 423, 479], "logsigmoid": 324, "logsoftmax": 324, "logsumexp": 0, "long": 5, "longer": [5, 105, 481], "look": [2, 5, 480], "lookup": 340, "loop": [5, 6, 479, 480, 481, 483], "loshchilov": 459, "loss": [4, 6, 299, 324, 454, 479, 480, 481, 483], "loss_and_grad": 324, "loss_and_grad_fn": [6, 454, 479, 481], "loss_fn": [4, 6, 454, 479, 481], "loss_grad_fn": 480, "lot": [480, 481], "low": [248, 252, 408, 449], "low_pad_s": 0, "lower": [183, 184, 186, 187, 192, 237, 248, 251, 252, 296, 408], "lr": [4, 461], "lr_schedul": [468, 469, 470, 472], "lstm": 324, "lto": 2, "lu": 5, "luckili": 483, "lvalu": 299, "m": [0, 2, 5, 8, 90, 140, 163, 168, 189, 296, 326, 327, 355, 356, 455, 479], "m1": [1, 5, 479, 481, 487], "m10": 317, "m7": 317, "m_": [458, 459, 460, 461], "m_t": [458, 459, 460, 461], "mac": 480, "machin": [5, 7, 8, 466, 480], "maco": [8, 218], "macosx": 8, "made": [5, 319], "mai": [2, 189, 307, 337, 480, 481, 482], "main": [7, 118, 140, 143, 294, 311, 312, 324, 480], "maintain": [337, 338, 461], "major": [0, 2], "make": [1, 2, 3, 5, 6, 8, 204, 227, 268, 324, 468, 469, 471, 472, 479, 483, 485, 487], "make_shar": 2, "malloc_or_wait": 2, "man": 5, "manag": [282, 476, 480, 487], "mani": [2, 83, 275, 330, 331, 332, 333, 334, 335, 340, 380, 479, 480, 483], "manual": 324, "map": [2, 6, 38, 194, 311, 340, 358], "map_fn": [358, 362], "map_torch_to_mlx": 5, "margin": [430, 434], "margin_ranking_loss": 324, "mask": [0, 5, 90, 146, 372, 378, 482], "mask_lh": [0, 90], "mask_n": 1, "mask_nw": 1, "mask_out": [0, 90], "mask_rh": [0, 90], "mask_s": 1, "mask_sw": 1, "matadata": 194, "match": [8, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 211, 365, 400, 423, 480, 482, 484], "materi": [5, 7], "math": [5, 434, 479], "mathbf": 184, "mathcal": 352, "mathemat": 189, "mathrm": [134, 269, 348], "matmul": [0, 163, 487], "matric": [189, 190, 191], "matrix": [0, 4, 14, 45, 90, 116, 117, 140, 141, 163, 164, 168, 169, 183, 184, 186, 187, 188, 189, 190, 191, 192, 204, 208, 237, 238, 245, 380, 381, 406, 449], "matter": [5, 324], "max": [0, 1, 2, 189, 206, 329, 355, 356, 379, 409, 416, 417, 422, 424, 425, 430, 434, 436, 438, 456, 460, 479, 481, 487], "max_": [355, 356], "max_buffer_s": 210, "max_freq": 391, "max_i": 237, "max_norm": 309, "max_recommended_working_set_s": [210, 218], "max_val": 416, "maximum": [0, 6, 26, 38, 93, 108, 213, 217, 309, 324, 351, 384, 391, 412, 413, 418, 437, 452, 483], "maxpool1d": 324, "maxpool2d": 324, "maxtotalthreadsperthreadgroup": 2, "mca": 480, "md": 189, "me": 5, "mean": [0, 1, 4, 5, 6, 144, 244, 245, 246, 299, 324, 328, 344, 363, 382, 407, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 479, 481, 484], "meant": 112, "measur": 487, "mechan": 399, "medic": 338, "meet": 8, "member": [2, 324, 368, 373], "memori": [0, 1, 2, 7, 83, 209, 211, 212, 213, 215, 216, 217, 218, 399, 452, 456, 479, 483, 484], "memory_order_relax": 1, "memory_s": [210, 218], "memoryview": [483, 484], "merg": 479, "meshgrid": 0, "metadata": [4, 194, 263, 264], "metal": [2, 7, 143], "metal_captur": 3, "metal_kernel": 1, "metal_path": 8, "metallib": [2, 8], "method": [2, 5, 9, 10, 30, 112, 120, 307, 315, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 369, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 452, 455, 456, 457, 458, 459, 460, 461, 463, 466, 467, 474], "millisecond": [8, 479, 487], "min": [0, 2, 189, 222, 329, 379, 409, 416, 417, 436, 438], "min_freq": 391, "min_i": 237, "min_val": 416, "mind": [2, 5], "mine": 5, "minibatch": 6, "minim": 480, "minimum": [0, 27, 38, 93, 109, 391, 421, 422], "minsizerel": 8, "minu": 139, "minut": 5, "mish": 324, "miss": [365, 486], "mix": 482, "mkdir": [3, 8], "ml": 8, "mlp": [6, 324, 399, 454], "mlp_dim": [5, 399], "mlx": [1, 3, 4, 5, 6, 8, 319, 324, 449, 452, 454, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487], "mlx_build_benchmark": 8, "mlx_build_cpu": 8, "mlx_build_exampl": 8, "mlx_build_gguf": 8, "mlx_build_met": [2, 8], "mlx_build_metallib": 2, "mlx_build_python_bind": 8, "mlx_build_safetensor": 8, "mlx_build_test": 8, "mlx_disable_compil": [119, 132, 479], "mlx_ext": 2, "mlx_ext_metallib": 2, "mlx_include_dir": 2, "mlx_metal_debug": [3, 8], "mlx_metal_jit": 8, "mlx_sample_extens": 2, "mlx_trace": 3, "mnist": 6, "mode": [0, 1, 2, 105, 232, 361, 372, 374, 400, 404, 405, 480], "model": [4, 6, 7, 265, 307, 308, 311, 312, 324, 358, 361, 363, 365, 369, 372, 374, 375, 376, 378, 399, 449, 452, 454, 462, 463, 465, 479, 480, 483], "modest": 2, "modif": 484, "modifi": 484, "modul": [2, 5, 6, 307, 308, 388, 399, 449, 465, 478, 479, 483], "moment": [5, 456, 458, 459, 460], "momentum": [328, 461, 463, 467, 479], "monei": 5, "monoton": 435, "more": [1, 2, 3, 6, 10, 78, 118, 163, 183, 184, 186, 187, 188, 191, 192, 204, 216, 217, 263, 264, 317, 324, 328, 337, 386, 391, 399, 400, 402, 403, 404, 405, 421, 476, 479, 480, 481, 482, 485, 487], "most": [2, 241, 324, 465, 479, 480, 481, 482, 483], "move": [0, 2, 223, 487], "moveaxi": 0, "mpi": 319, "mpiexec": 480, "mpirun": 480, "mse": 299, "mse_loss": 324, "mtl": 2, "mtl_capture_en": 3, "mtlcommandbuff": 2, "mu": 467, "much": [1, 2, 5, 326, 327, 355, 356, 479, 483], "multi": [7, 146, 330, 331, 332, 333, 334, 335, 482, 484], "multidimension": 208, "multiheadattent": [5, 324], "multipl": [0, 1, 8, 14, 90, 142, 144, 163, 164, 204, 224, 237, 238, 378, 391, 469, 470, 472, 479, 483, 486], "multipli": [0, 2, 38, 164, 237, 238, 336, 391, 400], "murtadha": 5, "must": [0, 1, 2, 3, 8, 90, 93, 145, 162, 164, 186, 187, 189, 240, 241, 245, 248, 251, 252, 304, 400, 484], "mx": [1, 2, 3, 4, 5, 6, 38, 96, 97, 112, 123, 126, 143, 159, 178, 186, 187, 189, 190, 194, 247, 265, 299, 309, 324, 326, 327, 328, 339, 348, 351, 355, 356, 358, 365, 369, 384, 400, 401, 402, 403, 404, 405, 406, 407, 408, 410, 418, 421, 422, 423, 427, 430, 437, 447, 449, 452, 454, 476, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488], "my": [5, 8], "my_devic": 488, "my_path": 265, "myexp": [1, 143], "myexp_strid": 1, "mymlp": 452, "n": [0, 1, 2, 5, 30, 90, 98, 99, 100, 101, 102, 103, 104, 140, 147, 149, 150, 152, 153, 156, 158, 168, 169, 245, 280, 296, 300, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 343, 349, 355, 356, 383, 400, 429, 434, 480], "n_i": [326, 327, 355, 356], "n_t": 343, "naiv": [2, 481], "naive_add": 481, "name": [1, 2, 143, 164, 194, 237, 238, 263, 264, 265, 266, 324, 344, 362, 365, 367, 480, 482, 486], "named_modul": 324, "nan": [0, 16, 82, 172, 173, 175, 225], "nan_to_num": 0, "nanobind": [2, 399], "nanobind_add_modul": 2, "nativ": 8, "natur": [0, 195, 197, 483], "nb": 2, "nb_domain": 2, "nb_func": 399, "nb_modul": 2, "nb_static": 2, "nbyte": 2, "nc": 328, "ndarrai": [30, 482, 483, 485], "ndhwc": [332, 335, 338], "ndim": [0, 1, 2, 159, 189, 191, 400], "ne": 1, "nearest": [1, 400], "necessari": 324, "necessarili": 293, "need": [1, 2, 5, 6, 7, 8, 82, 237, 324, 376, 377, 391, 399, 476, 480, 481, 483, 484, 485, 487], "neg": [0, 118, 159, 176, 225, 259, 294, 351, 355, 356, 378, 424, 432, 434, 482], "negat": [0, 226], "negative_slop": [351, 418], "neginf": [0, 225], "neighbor": 400, "neither": [165, 299], "nelem": 2, "nervou": 5, "nest": [78, 94, 313, 324, 452, 478, 481], "nesterov": 467, "network": [5, 7, 328, 337, 340, 402, 403, 449, 452, 466, 480], "neural": [5, 7, 340, 402, 403, 435, 449, 452, 466], "never": [5, 483], "new": [0, 2, 6, 91, 118, 223, 227, 257, 279, 295, 301, 311, 312, 370, 378, 452, 454, 465, 470, 479, 482, 483, 484], "new_tre": 312, "next": [2, 5, 6, 216], "nh": [343, 349, 383], "nhwc": [328, 331, 334], "nice": [481, 483], "nlc": [328, 330, 333], "nld": [343, 349, 383], "nlh": [343, 349, 383], "nll": [424, 432], "nll_loss": 324, "nn": [2, 5, 6, 265, 311, 324, 449, 452, 454, 463, 465, 479, 483], "nobodi": 5, "node": [94, 136, 303, 312, 313], "nois": 4, "noisi": 4, "nomins": 2, "non": [0, 1, 2, 8, 208, 373, 383, 435, 452], "none": [1, 2, 5, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 118, 119, 121, 122, 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 215, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 264, 265, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 303, 304, 305, 306, 307, 310, 311, 312, 313, 315, 326, 327, 341, 355, 356, 358, 362, 363, 370, 375, 378, 383, 391, 399, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 456, 474, 482], "nonlinear": [383, 479], "nonzero": 482, "noop": 375, "nor": [2, 165, 299], "norm": [5, 144, 309, 344, 434, 460, 461], "norm1": 5, "norm2": 5, "norm_first": 399, "normal": [1, 2, 4, 5, 142, 143, 144, 186, 245, 251, 324, 326, 327, 328, 344, 348, 350, 355, 356, 382, 399, 402, 404, 484, 487], "not_equ": 0, "notabl": [5, 7], "notat": [116, 141, 310, 367], "note": [0, 2, 5, 8, 16, 18, 83, 90, 94, 100, 103, 104, 112, 146, 154, 155, 164, 172, 189, 211, 237, 241, 301, 307, 324, 382, 400, 454, 484, 486], "noth": [5, 324, 483], "notic": [5, 481, 486], "now": [1, 2, 5, 8, 381, 479, 480, 484], "np": [1, 5, 6, 480, 484, 485], "npy": [194, 262, 486], "npz": [5, 194, 265, 266, 365, 369, 486], "nuclear": 189, "nullopt": 0, "num": [0, 5, 193, 250], "num_class": [6, 454], "num_decoder_lay": 399, "num_embed": [340, 380], "num_encoder_lay": 399, "num_epoch": [6, 454], "num_exampl": 4, "num_featur": [4, 328], "num_group": 344, "num_head": [5, 378, 399], "num_it": 4, "num_lay": [5, 6, 454], "num_param": 324, "num_paramet": 379, "num_sampl": 241, "num_split": 0, "number": [0, 2, 11, 18, 61, 70, 94, 99, 100, 101, 103, 104, 116, 140, 141, 164, 165, 169, 179, 193, 225, 232, 237, 238, 241, 244, 246, 250, 252, 256, 259, 260, 291, 292, 296, 299, 302, 303, 307, 324, 328, 330, 331, 332, 333, 334, 335, 337, 338, 344, 348, 378, 379, 399, 400, 402, 403, 404, 405, 468, 470, 471, 476, 479, 481, 488], "number_of_el": 0, "numer": [5, 142, 144, 189, 199, 203, 273, 328, 344, 348, 350, 382, 421, 422, 424, 434, 455, 456, 457, 458, 459, 460, 466, 479, 483], "numpi": [2, 5, 6, 7, 13, 16, 18, 87, 88, 89, 91, 128, 129, 133, 166, 167, 172, 180, 181, 182, 199, 204, 206, 222, 224, 228, 234, 255, 258, 283, 483, 485, 486], "nw": 1, "nwhc": 337, "o": [2, 8, 146, 349], "o_t": 349, "obj": 263, "object": [3, 10, 30, 50, 78, 94, 143, 178, 265, 303, 310, 311, 312, 313, 317, 337, 399, 478], "observ": 5, "occupi": [116, 141, 164, 237, 238], "occur": 484, "odim": 6, "odot": [343, 349], "off": [5, 8, 483], "offer": 429, "offset": [0, 1, 2, 5, 46, 83, 118, 142, 145, 294], "often": 338, "ok": [365, 481], "okai": [479, 483], "old": 5, "omit": [458, 460, 480], "onc": [2, 8, 479], "one": [0, 2, 5, 8, 38, 78, 84, 93, 99, 100, 101, 103, 104, 138, 140, 142, 144, 145, 189, 197, 204, 238, 241, 278, 283, 317, 375, 400, 423, 480, 487], "ones": [0, 2, 5, 230, 265, 296, 376, 377, 454, 480, 482], "ones_lik": 0, "onli": [1, 2, 5, 7, 8, 82, 90, 99, 100, 101, 103, 104, 186, 187, 189, 218, 237, 245, 301, 324, 362, 363, 365, 370, 372, 375, 376, 377, 452, 479, 480, 481, 486, 487], "onlin": 457, "op": [1, 2, 231, 301, 363, 483], "open": [3, 8, 18, 248, 252], "openmpi": 480, "oper": [3, 5, 7, 9, 37, 84, 85, 86, 101, 146, 163, 164, 234, 236, 273, 281, 288, 315, 324, 399, 461, 479, 480, 481, 482, 483, 484, 485, 487, 488], "operand": [130, 131, 163], "opportun": 479, "opt": [462, 480], "optim": [3, 4, 6, 7, 376, 479, 480, 481, 483], "option": [0, 3, 5, 14, 15, 17, 18, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 84, 85, 86, 90, 94, 95, 98, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 111, 112, 116, 117, 118, 121, 122, 123, 125, 126, 127, 140, 141, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 163, 164, 165, 169, 176, 177, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 203, 205, 207, 208, 217, 221, 225, 229, 232, 233, 235, 237, 238, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 256, 257, 259, 273, 274, 275, 278, 279, 280, 284, 286, 287, 291, 293, 294, 295, 296, 297, 298, 299, 300, 303, 305, 307, 310, 311, 312, 313, 326, 327, 328, 330, 331, 332, 333, 334, 335, 343, 349, 352, 355, 356, 358, 362, 363, 365, 370, 375, 378, 380, 381, 383, 386, 391, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 455, 456, 457, 458, 459, 460, 461, 463, 466, 467, 468, 476, 479, 486, 488], "ord": 189, "order": [0, 1, 28, 83, 101, 131, 186, 187, 189, 233, 237, 293, 324, 344, 376, 388, 463, 479, 481], "ordinari": 171, "org": [344, 348, 350, 357, 382, 413, 435], "origin": [5, 118, 309, 328, 371, 402, 403, 404, 405, 455, 456, 457, 458, 460, 461, 484], "orthonorm": 168, "ostream": 2, "ostringstream": 2, "other": [0, 2, 5, 7, 178, 189, 324, 364, 452, 461, 479, 480, 482, 483, 485], "other_input": 324, "otherwis": [18, 101, 123, 217, 247, 307, 310, 311, 312, 313, 363, 365, 375, 397, 399, 400, 415, 421, 426, 433, 445, 446, 483, 484], "our": [1, 2, 5, 6, 388, 455, 456, 457, 458, 460, 461, 480], "out": [0, 1, 2, 8, 90, 143, 326, 327, 337, 338, 355, 356, 372, 479, 480, 481, 482], "out_ax": [303, 481], "out_channel": [330, 331, 332, 333, 334, 335], "out_dim": [324, 452], "out_dtyp": 2, "out_idx": 2, "out_mask": 90, "out_proj": [5, 452], "out_ptr": 2, "out_shap": [1, 2], "outer": [0, 479, 483], "outlier": 429, "output": [0, 1, 2, 5, 8, 15, 16, 17, 18, 28, 83, 90, 91, 94, 96, 97, 108, 109, 110, 111, 112, 130, 140, 142, 143, 144, 145, 146, 153, 156, 157, 158, 162, 163, 165, 168, 169, 172, 189, 193, 203, 205, 207, 208, 221, 225, 229, 230, 233, 235, 236, 240, 241, 242, 244, 245, 246, 248, 251, 252, 265, 266, 273, 278, 280, 284, 288, 294, 296, 299, 300, 301, 302, 303, 304, 305, 306, 326, 327, 328, 330, 331, 332, 333, 334, 335, 348, 352, 355, 356, 378, 381, 397, 399, 400, 402, 403, 404, 405, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 446, 449, 479, 480, 481, 482, 483, 484, 485, 486, 487], "output_dim": [6, 324, 352, 381], "output_directori": 2, "output_dtyp": [1, 143], "output_fil": 5, "output_nam": [1, 143], "output_shap": [1, 143], "outsid": [143, 159], "over": [0, 2, 5, 6, 15, 17, 26, 27, 28, 29, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 149, 152, 155, 158, 171, 189, 191, 193, 203, 205, 207, 221, 233, 235, 261, 273, 274, 280, 284, 291, 293, 300, 328, 330, 331, 332, 333, 334, 335, 344, 350, 382, 423, 468, 471, 480, 481], "overal": 2, "overhead": [479, 483, 487], "overlap": 1, "overload": 18, "overrid": [2, 132], "overview": 3, "overwrit": 5, "own": [8, 484], "owndata": 484, "p": [8, 240, 324, 336, 337, 338, 434, 458, 460], "pack": [164, 237, 238], "packag": [2, 4, 6, 8, 319, 449, 480], "package_data": 2, "pad": [0, 1, 98, 99, 100, 101, 102, 103, 104, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 326, 327, 330, 331, 332, 333, 334, 335, 355, 356], "pad_valu": 0, "pad_width": [0, 232], "padding_hi": 0, "padding_lo": 0, "page": 485, "pain": 5, "pair": [0, 2, 232, 365, 386], "pairwis": 434, "pan": 5, "paper": [328, 391, 455, 456, 457, 458, 460, 461], "parallel": [480, 487], "param": [299, 324, 449, 481], "paramet": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 351, 352, 355, 356, 358, 359, 362, 363, 365, 370, 371, 372, 375, 376, 377, 378, 379, 380, 381, 382, 383, 386, 388, 391, 395, 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 414, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 446, 448, 449, 452, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 465, 466, 467, 468, 469, 470, 471, 472, 474, 479, 480, 481, 483], "parameter_scal": 456, "parametr": [379, 436], "pars": 5, "parse_arg": 5, "parser": 5, "part": [1, 2, 170, 253, 481, 482], "partial": [376, 377, 479, 483], "particip": [121, 122, 125, 126, 127], "particular": [237, 344], "particularli": 479, "partit": [0, 28], "pass": [1, 2, 5, 6, 65, 79, 231, 232, 299, 308, 310, 311, 312, 324, 363, 375, 376, 377, 388, 479, 480, 483], "password": 480, "path": [3, 8, 131, 219, 265, 266, 307, 312, 365, 480], "pattern": [324, 483], "peak": [213, 215], "penalti": 467, "pep": 484, "per": [5, 6, 116, 141, 164, 237, 238, 307, 328, 344, 348, 350, 382, 474, 479, 480, 483], "perceptron": 7, "perf_count": 479, "perfectli": 483, "perform": [0, 1, 2, 3, 5, 7, 14, 90, 101, 108, 109, 110, 111, 127, 130, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 163, 164, 168, 186, 187, 204, 238, 260, 273, 287, 324, 344, 399, 404, 405, 454, 479, 480, 482, 483, 487], "perhap": [2, 5], "perm": 6, "permtuat": 247, "permut": [0, 6], "persist": 8, "pg": 189, "phi": [341, 411], "physic": 480, "pi": [134, 341, 391, 412, 481], "pick": 2, "pip": [2, 8], "pipelin": 2, "pixel": 337, "place": [2, 5, 38, 259, 260, 307, 480, 483, 484], "placehold": 479, "plai": [2, 5], "plain": 388, "plan": [2, 479], "platform": 8, "plu": [0, 197], "point": [0, 2, 4, 5, 8, 83, 161, 238, 317], "pointer": 2, "pool": [326, 327, 355, 356, 487], "popul": 2, "portion": 336, "posinf": [0, 225], "posit": [0, 5, 28, 118, 145, 159, 165, 177, 183, 184, 223, 225, 233, 245, 259, 294, 299, 311, 324, 330, 331, 332, 333, 334, 335, 378, 386, 391, 424, 434], "possibl": [275, 340, 380, 479, 480, 482, 487], "possibli": [5, 14, 90, 163, 204, 309], "postur": 5, "potenti": 217, "power": [0, 481, 484], "practic": [2, 479], "pre": [8, 146, 421], "preced": 344, "precis": [0, 2, 5, 139, 146, 324, 341, 382, 421, 462, 479], "preclud": 324, "pred": [425, 429], "predic": [307, 370], "predict": [421, 424, 425, 426, 427, 428, 429, 431, 432, 433], "prefix": [303, 310], "prelu": 324, "prepar": [2, 5], "prepend": [3, 204], "preprint": [5, 455, 461], "preprocessor": 8, "present": 1, "preserv": [257, 481], "press": [5, 189], "pressur": 2, "pretti": [479, 483], "prevent": [281, 434, 484], "previou": [216, 217, 218], "primal": [1, 2, 112, 179, 302], "primit": 481, "print": [1, 2, 4, 5, 6, 8, 309, 310, 311, 312, 314, 324, 476, 479, 480, 481, 482, 483, 484, 485], "prior": [236, 287, 288], "priorit": 481, "privat": 2, "prng": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 476], "prob": 421, "probabl": [8, 248, 336, 337, 338, 381, 421, 423, 427, 487], "problem": [4, 6, 324], "process": [5, 101, 105, 120, 121, 122, 123, 125, 126, 127, 311, 312, 338, 340, 399, 478, 480], "processor": 8, "prod": [0, 1], "produc": [0, 2, 8, 94, 378, 449], "product": [0, 2, 14, 83, 110, 171, 179, 185, 204, 231, 235, 291, 302, 378, 485], "profil": 3, "program": [213, 480], "programmat": 377, "project": [3, 5, 378], "project_source_dir": 2, "promot": 2, "promote_typ": 2, "promoted_dtyp": 2, "prompt": 5, "propag": [481, 482], "properti": [31, 38, 47, 51, 61, 62, 68, 70, 371, 374, 464, 481], "proportion": 309, "protocol": 484, "provid": [0, 2, 5, 83, 116, 141, 165, 247, 259, 291, 299, 311, 313, 319, 324, 358, 363, 365, 375, 376, 377, 380, 381, 399, 400, 448, 452, 480, 486, 488], "pseudo": 476, "pth": 5, "public": [2, 324], "pun": 0, "pure": [1, 324, 454], "purpos": [1, 189], "purs": 5, "push": 2, "push_back": 2, "put": [0, 1, 6, 236, 479, 480], "put_along_axi": 0, "py": [2, 5, 8, 480], "pypi": 8, "python": [1, 3, 5, 50, 68, 78, 136, 310, 311, 312, 313, 314, 452, 462, 463, 465, 478, 480, 481, 484], "python_requir": 2, "pytorch": [5, 7, 341, 344, 481], "pytorch_compat": 344, "q": [146, 190], "qualifi": 480, "quantiz": [0, 116, 141, 164, 194, 238, 380, 381], "quantized_matmul": 0, "quantizedembed": 324, "quantizedlinear": 324, "quarter": 5, "queri": [5, 146, 218, 378], "query_input_dim": 378, "query_proj": 5, "question": [5, 483], "queue": 3, "quick": [2, 7], "quit": [481, 484], "quotient": [0, 128, 129, 161], "r": [2, 5, 190, 299, 337, 343], "r_t": 343, "race": 487, "radian": [0, 115], "rag": 5, "rain": 5, "rais": [0, 5, 189, 217, 234, 275, 365], "ram": 5, "random": [1, 2, 3, 4, 5, 6, 7, 143, 326, 327, 328, 348, 355, 356, 365, 372, 479, 481, 487, 488], "randomli": [4, 5, 247, 336, 337, 338], "rang": [0, 2, 3, 4, 5, 6, 8, 18, 159, 163, 193, 403, 405, 412, 413, 454, 468, 469, 470, 471, 472, 476, 479, 481, 483, 487], "rank": [0, 125, 126, 127, 430, 480], "rate": [4, 454, 455, 456, 457, 458, 459, 460, 461, 466, 467], "rather": [2, 481, 487], "ratio": [0, 24], "rceil": 90, "re": [6, 8, 449], "readabl": 3, "readi": 2, "real": [0, 153, 154, 155, 156, 157, 158, 183, 184, 186, 187], "realli": 350, "reason": [1, 5, 482], "reboot": 8, "receiv": [125, 126, 307, 470, 484], "reciproc": [0, 261], "reclaim": 216, "recommend": [8, 217, 461], "recompil": [94, 479], "record": [3, 213, 483], "recreat": [314, 454], "rectifi": [351, 384, 385, 404, 405, 418, 437, 438], "recurr": [343, 349, 383], "recurs": [324, 362, 363, 368, 373, 375, 452], "recv": 126, "redirect": 2, "reduc": [0, 1, 8, 15, 17, 26, 27, 122, 203, 205, 207, 221, 235, 280, 284, 300, 313, 328, 399, 429], "reduct": [15, 17, 122, 203, 205, 221, 235, 313, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 480], "redund": 481, "refer": [189, 348, 357, 371, 402, 403, 404, 405, 413, 435, 482], "reflect": [371, 479, 482, 484], "regard": 341, "regardless": [83, 146], "regist": [2, 6], "register_librari": 2, "regress": [7, 429], "regular": [38, 337, 435, 459, 479, 482], "regularli": 2, "reimplement": 2, "rel": [16, 172, 456, 479], "relative_step": 456, "relax": 217, "relev": 2, "reli": [1, 2], "relu": [324, 379, 399, 436, 449], "relu6": 324, "remain": [0, 5, 218, 299, 312, 336, 337, 338, 480], "remaind": [0, 129], "remov": [0, 118, 204, 241, 278, 423], "rep": [0, 292], "repeat": [0, 292], "repeatedli": 4, "repetit": 256, "replac": [0, 5, 225, 376, 377, 399, 433], "replai": 3, "repli": 5, "repo": [4, 6, 8, 479], "report": [211, 217], "repres": [2, 5, 120, 123, 164, 430, 434, 484], "represent": [5, 237, 301, 310, 314], "request": 2, "requir": [1, 2, 5, 324, 480, 483, 484], "requires_grad": 481, "rerun": [479, 483], "rescal": 309, "research": 7, "reset": 215, "reset_peak_memori": 213, "reshap": [0, 5, 189, 400, 482], "resid": 218, "resolv": 2, "resourc": 2, "respect": [2, 4, 6, 142, 144, 163, 164, 165, 237, 299, 311, 324, 328, 341, 344, 348, 350, 452, 481, 485], "respons": 2, "rest": [5, 145, 311, 312, 386], "restart": 8, "restor": 259, "result": [0, 5, 14, 18, 38, 78, 83, 94, 142, 144, 164, 189, 204, 238, 245, 256, 279, 311, 312, 313, 391, 421, 479, 481, 484], "resum": 5, "return": [0, 1, 2, 4, 5, 6, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 50, 68, 78, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 212, 216, 217, 218, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 324, 343, 349, 358, 359, 360, 362, 363, 364, 365, 366, 367, 368, 372, 373, 375, 376, 377, 383, 401, 402, 403, 404, 405, 406, 407, 408, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 449, 452, 462, 478, 479, 480, 481, 482, 483, 484, 486, 487], "return_metadata": 194, "revers": [0, 2, 41, 42, 43, 44, 83, 108, 109, 110, 111, 295, 391], "rf": 8, "rfft": 153, "rfft2": 154, "rfftn": 155, "rfloor": [326, 327, 355, 356], "rho": 455, "rhs_indic": [0, 163, 164], "rhs_mask": 90, "right": [0, 1, 2, 8, 237, 258, 259, 326, 327, 341, 355, 356, 400, 412, 413, 424, 426, 434], "right_shift": 0, "rm": [5, 8, 144, 456], "rmsnorm": [5, 324], "rmsprop": 454, "rnn": [324, 343], "roadcast": 248, "robust": 429, "roform": [5, 386], "roll": 0, "root": [0, 5, 144, 261, 276, 382], "rope": [5, 324], "rosetta": 8, "rotari": [5, 145, 386], "rotat": [145, 386], "round": [0, 237], "routin": 2, "row": [0, 1, 2, 83, 140, 143, 169, 237, 296], "row_contigu": 2, "rpath": 2, "rsqrt": 0, "rtol": [0, 16, 172], "rule": [2, 454], "run": [1, 2, 3, 5, 6, 7, 8, 9, 143, 231, 315, 328, 358, 455, 456, 458, 459, 460, 479, 480, 483, 487, 488], "runtim": [5, 123, 319, 479, 480], "runtime_error": 2, "safetensor": [8, 194, 264, 365, 369, 454, 483, 486], "sai": [2, 5, 449, 483], "said": 5, "sake": 481, "same": [0, 2, 5, 8, 16, 38, 82, 91, 94, 99, 100, 101, 103, 104, 105, 121, 142, 144, 153, 156, 157, 158, 164, 165, 172, 179, 232, 241, 259, 260, 301, 302, 304, 312, 324, 327, 328, 336, 344, 348, 356, 380, 401, 402, 403, 404, 405, 406, 407, 408, 423, 434, 452, 462, 476, 479, 480, 482, 487], "sampl": [2, 4, 5, 193, 240, 241, 242, 244, 245, 248, 251, 252, 402, 403, 404, 405, 407, 408, 424, 430, 434, 476, 479], "sat": 5, "save": [3, 5, 7, 194, 219, 237, 263, 264, 265, 266, 369, 483], "save_gguf": 486, "save_safetensor": [369, 454, 486], "save_weight": 324, "savez": [5, 369, 486], "savez_compress": 486, "saw": [5, 481], "scalar": [0, 2, 13, 14, 16, 30, 50, 78, 82, 87, 88, 89, 90, 91, 93, 128, 129, 133, 161, 162, 165, 166, 167, 168, 172, 180, 181, 182, 193, 199, 200, 201, 202, 204, 206, 222, 224, 225, 228, 232, 234, 240, 248, 251, 252, 255, 258, 263, 283, 299, 301, 304, 308, 434, 481, 483, 485], "scale": [0, 2, 5, 14, 116, 141, 142, 144, 145, 146, 164, 168, 237, 238, 244, 246, 309, 337, 338, 350, 378, 386, 387, 391, 400, 439, 456], "scale_arr": 2, "scale_factor": 400, "scale_paramet": 456, "scatter": 0, "scatter_add": 0, "scatter_max": 0, "scatter_min": 0, "scatter_prod": 0, "schedul": [2, 217, 454, 468, 469, 470, 471, 472, 474, 487], "schema": 3, "scipi": 168, "scope": 324, "score": [5, 146, 430], "sdk": 8, "se": 1, "second": [5, 8, 118, 178, 180, 200, 202, 204, 258, 285, 294, 299, 327, 356, 422, 430, 456, 458, 459, 460, 481, 487], "second_layer_a": 483, "second_layer_b": 483, "secret": 5, "section": [1, 5, 8, 275, 434, 479, 480, 481], "see": [1, 2, 5, 6, 8, 10, 11, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 189, 216, 263, 264, 307, 317, 324, 328, 329, 337, 339, 341, 345, 346, 347, 353, 354, 361, 379, 380, 381, 384, 385, 386, 387, 389, 391, 392, 393, 394, 395, 396, 398, 400, 402, 403, 404, 405, 411, 412, 413, 439, 479, 480, 481, 482, 485, 487], "seed": 243, "seen": 484, "select": [0, 3, 8, 186, 187, 293, 304, 358, 362, 370], "self": [5, 6, 9, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 112, 315, 324, 435, 452], "selu": 324, "semant": [13, 87, 88, 89, 91, 128, 129, 133, 166, 167, 180, 181, 182, 199, 204, 206, 222, 224, 228, 234, 255, 258, 283, 487], "semi": [183, 184, 245], "send": 480, "sennrich": 5, "sensit": 429, "sentencepiec": 5, "separ": [5, 65, 79, 344, 430], "sequenc": [5, 15, 17, 33, 34, 56, 57, 58, 59, 63, 71, 74, 75, 76, 80, 83, 91, 101, 125, 138, 143, 148, 149, 151, 152, 154, 155, 157, 158, 162, 203, 205, 207, 221, 229, 235, 240, 241, 242, 244, 245, 246, 248, 251, 252, 257, 273, 275, 278, 280, 284, 291, 292, 295, 300, 305, 328, 330, 333, 343, 349, 383, 399, 476, 487], "sequenti": [324, 449], "seri": 8, "serial": 454, "set": [2, 5, 6, 8, 94, 112, 119, 121, 122, 123, 125, 126, 127, 132, 142, 145, 210, 216, 217, 218, 267, 268, 282, 341, 350, 352, 361, 363, 370, 371, 372, 375, 376, 381, 386, 397, 422, 434, 446, 452, 454, 456, 463, 476, 481, 483], "set_data": 2, "set_default_devic": 2, "set_dtyp": 324, "set_input_arrai": 2, "set_memory_limit": 216, "set_output_arrai": 2, "setbyt": 2, "setcomputepipelinest": 2, "setup": [2, 4, 6, 8, 479], "sever": [5, 8, 98, 99, 100, 101, 102, 103, 104, 265, 266, 479, 486], "sgd": [4, 6, 454, 461, 463, 468, 469, 472, 479], "shade": [1, 2], "shall": 5, "shape": [0, 2, 3, 5, 6, 65, 82, 83, 90, 91, 94, 98, 99, 100, 101, 102, 103, 104, 118, 121, 125, 126, 143, 146, 147, 150, 153, 156, 157, 158, 162, 163, 168, 179, 188, 192, 204, 229, 230, 240, 241, 242, 244, 245, 246, 248, 251, 252, 257, 259, 301, 302, 304, 305, 306, 324, 326, 327, 328, 330, 331, 332, 333, 334, 335, 337, 338, 343, 348, 349, 352, 355, 356, 365, 383, 401, 402, 403, 404, 405, 406, 407, 408, 423, 434, 454, 479, 481, 482, 485, 487], "shapeless": [0, 94], "share": [7, 116, 141, 164, 237, 238, 301, 480], "shazeer": 5, "shift": [0, 180, 258, 259, 328], "shop": 5, "should": [2, 4, 5, 6, 8, 83, 118, 121, 142, 143, 144, 146, 179, 209, 218, 219, 236, 237, 288, 294, 299, 302, 307, 310, 324, 330, 331, 332, 333, 334, 335, 337, 338, 372, 378, 388, 423, 425, 430, 452, 478, 479, 480, 481, 483, 484, 488], "show": [8, 317, 479], "shown": 2, "shuffl": 6, "side": [0, 232, 326, 327, 355, 356, 479], "sigma": [341, 342, 343, 349, 390, 402, 403, 404, 405, 413, 414, 419, 440, 441], "sigmoid": [0, 5, 324, 353, 389, 413, 419, 421, 441], "sign": [0, 16, 172, 317, 461], "signal": [105, 400], "signatur": [1, 143], "signedinteg": [11, 178], "signific": 237, "silent": [156, 157, 158], "silicon": [2, 5, 7, 8, 487], "silu": 324, "simd": 1, "simd_sum": 1, "simdgroup": 1, "simdgroup_s": 1, "similar": [5, 164, 178, 311, 376, 377, 378, 422, 484, 486], "similarli": [2, 8, 204, 481, 483], "simpl": [2, 5, 6, 324, 340, 448, 454, 479, 480, 481, 483], "simple_axpbi": 2, "simple_tim": 2, "simplest": [2, 324, 480], "simpli": [2, 5, 8, 339, 351, 384, 410, 418, 437, 447, 452, 479, 480, 481], "simplic": 0, "simultan": 1, "sin": [0, 112, 391, 481, 485], "sinc": [1, 2, 5, 6, 164, 213, 452, 461, 470, 484, 487], "sine": [0, 21, 22, 271, 272, 481], "sing": 189, "singer": 457, "singl": [2, 6, 136, 179, 194, 208, 232, 302, 327, 356, 479, 482, 486], "singleton": [0, 15, 17, 26, 27, 123, 203, 204, 205, 207, 221, 235, 280, 284, 300], "singular": [189, 191], "sinh": 0, "sinusoid": 391, "sinusoidalpositionalencod": 324, "size": [0, 1, 2, 5, 6, 51, 68, 90, 99, 100, 103, 104, 116, 138, 141, 142, 143, 144, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 162, 164, 168, 169, 178, 185, 189, 212, 217, 218, 237, 238, 241, 257, 275, 278, 301, 307, 324, 326, 327, 330, 331, 332, 333, 334, 335, 340, 348, 355, 356, 380, 381, 400, 456, 480, 483, 484], "size_in_megabyt": 218, "size_t": [0, 2], "sizeof": 2, "skip": [3, 83], "slice": [0, 482], "slice_s": 0, "slice_upd": 0, "slight": [5, 483], "slightli": [386, 487], "slope": 351, "slot": 480, "slow": 479, "slowli": 5, "small": [5, 139, 142, 144, 328, 344, 350, 382, 424, 429, 434, 479, 480, 487], "smaller": [0, 8, 233, 461, 479], "smallest": 189, "smile": 5, "smooth": [423, 433, 466], "smooth_l1_loss": 324, "sned": 127, "snippet": 480, "so": [1, 2, 5, 8, 165, 168, 299, 336, 400, 454, 479, 480, 483, 487], "softmax": [0, 5, 146, 324, 354, 420, 423], "softmin": 324, "softplu": [324, 357, 435], "softshrink": 324, "softsign": 324, "solv": 324, "some": [0, 2, 4, 5, 6, 363, 375, 454, 463, 479, 481, 483], "someon": 5, "someth": [4, 5, 482], "sonoma": 8, "soon": 5, "sort": [0, 28, 29, 233, 293], "sourc": [0, 1, 2, 3, 60, 125, 126, 143, 223, 295, 480], "space": [0, 2, 193, 421, 432], "spars": [0, 208], "spatial": [99, 100, 101, 103, 104, 326, 344, 355, 400], "speak": [5, 189], "special": 2, "specif": [1, 2, 8, 480, 481], "specifi": [0, 2, 18, 37, 99, 100, 101, 103, 104, 118, 154, 155, 162, 165, 185, 189, 193, 223, 229, 236, 241, 256, 285, 287, 288, 291, 294, 295, 299, 303, 305, 328, 397, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 446, 480, 481, 487], "speed": [1, 2], "spent": 5, "split": [0, 342, 344, 414], "splittabl": 476, "sqrt": [0, 5, 134, 146, 168, 328, 341, 344, 348, 350, 352, 382, 391, 402, 403, 404, 405, 412, 455, 457, 458, 459, 466, 479], "squar": [0, 4, 5, 144, 169, 188, 192, 261, 276, 299, 311, 324, 382, 431, 433, 455, 456, 458, 459, 460, 481, 484], "squeez": [0, 400, 479], "src": [0, 125, 126], "ssh": 480, "stabil": [142, 144, 328, 344, 348, 350, 382, 421, 422, 424, 455, 456, 457, 458, 459, 460, 466], "stabl": [199, 203, 273, 429], "stable_abi": 2, "stack": [0, 479], "standard": [0, 1, 6, 50, 78, 204, 242, 246, 280, 399, 402, 404, 407, 480, 485], "starmap": [5, 311], "start": [0, 1, 2, 4, 5, 7, 8, 18, 145, 193, 219, 275, 313, 479, 482, 487], "start_axi": [0, 49, 159], "start_captur": 3, "state": [5, 6, 324, 343, 349, 383, 454, 463, 476, 479], "static": 8, "static_cast": 2, "std": [0, 2, 407], "step": [0, 3, 5, 6, 18, 324, 343, 349, 383, 456, 463, 468, 470, 471, 472, 479, 480], "step_decai": 454, "step_siz": 472, "still": [5, 8, 189, 479, 483], "stochast": [457, 458, 460, 467, 483], "stood": 5, "stop": [0, 2, 5, 18, 193, 220, 281, 481, 482], "stop_captur": 3, "stop_gradi": [0, 481], "storag": 83, "store": 5, "str": [2, 105, 130, 131, 143, 165, 186, 187, 189, 194, 208, 210, 219, 262, 263, 264, 265, 266, 299, 310, 314, 358, 359, 362, 363, 365, 367, 369, 375, 400, 404, 405, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434], "straight": 5, "strang": 5, "stream": [2, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 116, 117, 118, 121, 122, 125, 126, 127, 128, 129, 130, 133, 134, 135, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 300, 301, 304, 305, 306, 480, 487], "streamcontext": 282, "streamordevic": [0, 2], "street": 5, "strength": [461, 467], "strict": [123, 166, 181, 363, 365, 375], "strictli": [189, 218], "stride": [0, 2, 83, 98, 99, 100, 101, 102, 103, 104, 326, 327, 330, 331, 332, 333, 334, 335, 355, 356, 386, 482], "string": [0, 2, 131, 143, 210, 232, 484, 486], "structur": [2, 462, 481], "stub": 8, "style": [2, 13, 16, 87, 88, 89, 128, 129, 133, 166, 167, 172, 180, 181, 182, 199, 204, 206, 222, 224, 228, 234, 255, 258, 283], "su": 5, "sub": [0, 6, 118, 250, 294, 307], "subarrai": [118, 275], "subclass": 452, "subdtyp": 178, "subgradi": 457, "sublinear": 456, "submodul": [5, 6, 324, 359, 363, 364, 375, 377], "subscript": [130, 131], "subsect": 5, "subsequ": 454, "subset": [324, 362], "substanti": 8, "subtract": [0, 38], "subtyp": [178, 317], "sudo": [8, 218], "sum": [0, 2, 4, 13, 111, 122, 171, 189, 203, 273, 291, 294, 324, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 480, 482, 484], "sum_": [189, 326, 327, 429], "sum_i": 420, "sum_j": [442, 443], "summat": [130, 131], "super": [5, 6, 324, 452], "superset": [311, 462], "support": [1, 2, 5, 7, 8, 16, 90, 100, 103, 104, 146, 159, 168, 172, 183, 184, 186, 187, 188, 190, 191, 192, 194, 204, 237, 245, 480, 481, 482, 484, 486], "suppos": [481, 487], "sure": [2, 3, 5, 8, 324, 479], "surpass": [404, 405], "surpris": 5, "sw": 1, "swap": [0, 105, 217, 285, 377], "swapax": [0, 112], "swiglu": 5, "swish": [389, 441], "switch": 8, "symbol": 461, "symmetr": [99, 100, 103, 104, 183, 184, 186, 187], "symmetri": [186, 187], "synchron": [2, 479], "syntax": [38, 482], "synthet": 4, "sysctl": 218, "system": [5, 8, 210, 211, 212, 218], "t": [0, 1, 2, 5, 8, 134, 143, 146, 164, 183, 184, 238, 299, 324, 326, 343, 349, 355, 383, 455, 456, 457, 458, 459, 460, 461, 466, 467, 479, 481, 487], "tabl": [1, 189, 317, 340], "take": [0, 2, 5, 6, 87, 88, 89, 94, 163, 165, 179, 206, 222, 230, 238, 288, 299, 302, 303, 306, 312, 313, 378, 421, 476, 480, 481, 482, 486, 487, 488], "take_along_axi": [0, 482], "taken": [118, 287, 294], "talk": 480, "tan": 0, "tangent": [0, 2, 23, 24, 25, 112, 179, 289, 290, 398, 447], "tangent_i": 2, "tangent_x": 2, "tanh": [0, 324, 341, 343, 349, 357, 383, 412, 435], "target": [2, 299, 421, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 479], "target_include_directori": 2, "target_link_librari": 2, "target_link_opt": 2, "target_sourc": 2, "task": [217, 429], "tau": 467, "tcp": 480, "tell": [5, 479, 484], "temp": 5, "templat": [0, 1, 2, 143], "ten": [481, 483], "tend": 461, "tensor": [194, 291, 326, 327, 355, 356, 434, 484], "tensordot": 0, "term": [2, 424, 455, 456, 457, 458, 459, 460, 466], "termin": 8, "test": [6, 8, 480], "test_imag": 6, "test_label": 6, "text": [5, 326, 327, 341, 343, 349, 355, 356, 357, 383, 390, 397, 402, 403, 404, 405, 412, 415, 416, 417, 424, 425, 426, 429, 430, 433, 435, 436, 439, 440, 445, 446, 456, 461], "textrm": [237, 341, 342, 411, 414], "tf": 484, "tgp_size": 2, "th": [108, 109, 110, 111, 117, 140, 186, 470], "than": [1, 2, 5, 78, 105, 118, 129, 145, 163, 166, 167, 181, 182, 183, 184, 186, 187, 188, 191, 192, 204, 216, 218, 309, 311, 386, 397, 400, 430, 433, 446, 456, 461, 479, 481, 487], "thank": 483, "thei": [1, 2, 4, 5, 8, 16, 105, 164, 172, 388, 425, 452, 461, 478, 479, 480, 483, 485, 486, 487], "them": [0, 2, 5, 121, 324, 363, 375, 480, 487], "themselv": [2, 479], "thi": [0, 1, 2, 5, 6, 8, 15, 16, 17, 18, 26, 27, 28, 29, 83, 112, 132, 143, 163, 164, 168, 172, 179, 183, 184, 186, 187, 188, 189, 190, 191, 192, 199, 203, 204, 205, 207, 209, 211, 218, 221, 233, 235, 241, 268, 273, 274, 275, 280, 284, 287, 293, 300, 309, 312, 313, 324, 336, 337, 338, 342, 343, 349, 359, 360, 362, 363, 366, 367, 368, 373, 375, 376, 377, 378, 381, 383, 397, 402, 403, 404, 405, 412, 413, 414, 421, 429, 446, 452, 463, 478, 479, 480, 481, 483, 484, 486], "thing": [2, 5, 480], "third": 185, "thompson": 337, "those": [2, 5, 324], "though": [2, 5, 479, 483, 484], "thousand": 483, "thread": [1, 2], "thread_index_in_simdgroup": 1, "thread_position_in_grid": [1, 2, 143], "threadgroup": [1, 2, 143], "threads_per_simdgroup": 1, "three": [5, 86, 400], "threefri": 476, "threshold": [397, 426, 433, 446], "through": [1, 2, 281, 399, 461, 479, 481, 484], "throw": [2, 94, 123], "thu": [5, 324], "thumb": 454, "tic": 479, "tieleman": 466, "tile": [0, 146], "time": [2, 5, 8, 217, 292, 324, 326, 327, 343, 349, 355, 356, 383, 479, 481, 483, 487], "timeit": [479, 481], "titl": 2, "tmp": [1, 143], "to_quant": 307, "to_stream": 2, "toc": 479, "togeth": [0, 1, 2, 6, 237, 311, 312, 480], "tok_embed": 5, "token": [5, 340, 380], "told": 5, "toler": [0, 16, 172], "too": [178, 479, 483], "took": 5, "tool": 8, "top": [2, 293, 352, 400], "topk": 0, "torch": [5, 484], "torch_weight": 5, "total": [218, 481], "total_norm": 309, "tpi": 479, "trace": [0, 3, 479], "trace_fil": 3, "tracer": 376, "track": [2, 324, 328], "track_running_stat": 328, "trade": 483, "tradit": [5, 145, 337, 338, 386], "train": [5, 6, 324, 328, 336, 337, 338, 361, 363, 375, 402, 403], "train_imag": [6, 454], "train_label": [6, 454], "trainabl": [6, 308, 324, 452], "trainable_paramet": [324, 362, 463], "transform": [1, 5, 7, 112, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 168, 308, 324, 328, 344, 350, 352, 362, 363, 375, 381, 386, 482], "transformerencod": 265, "transit": 470, "translat": [142, 350], "transpos": [0, 5, 31, 102, 103, 104, 164, 238, 333, 334, 335], "treat": [0, 2, 154, 155, 157, 158, 287, 400, 479], "tree": [7, 94, 136, 165, 299, 303, 310, 311, 312, 313, 314, 462, 463, 465, 474, 481], "tree_flatten": [265, 311, 314, 324, 454], "tree_map": [312, 324, 480], "tree_unflatten": [5, 454], "trembl": 5, "tri": 0, "triangl": [186, 187, 296], "triangular": [183, 184, 192], "tril": 0, "trilinear": 400, "triplet": 434, "triplet_loss": 324, "triu": 0, "true": [0, 1, 2, 4, 5, 16, 41, 42, 43, 44, 82, 94, 108, 109, 110, 111, 143, 145, 164, 172, 178, 183, 184, 189, 194, 208, 217, 238, 273, 304, 307, 310, 311, 312, 313, 317, 324, 328, 330, 331, 332, 333, 334, 335, 343, 344, 348, 349, 350, 352, 362, 363, 365, 372, 375, 381, 383, 386, 391, 399, 400, 421, 429, 456], "truncat": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 251], "truth": [4, 423, 433], "try": [2, 8], "tupl": [0, 30, 65, 68, 79, 95, 99, 100, 101, 103, 104, 125, 129, 131, 136, 138, 179, 186, 189, 190, 191, 232, 237, 257, 259, 278, 299, 302, 310, 311, 312, 313, 314, 326, 327, 331, 332, 334, 335, 355, 356, 365, 367, 388, 400, 456, 458, 459, 460, 461, 478, 481], "tutori": 2, "twice": 487, "two": [0, 2, 13, 14, 16, 24, 82, 85, 87, 88, 89, 90, 118, 128, 133, 148, 151, 157, 163, 164, 166, 167, 172, 181, 182, 183, 184, 185, 186, 187, 188, 190, 191, 192, 199, 204, 206, 222, 224, 228, 231, 285, 313, 327, 342, 349, 356, 414, 422, 479, 480, 481, 482, 487], "txt": 2, "type": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 68, 78, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 216, 217, 218, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 283, 284, 285, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 309, 310, 313, 324, 370, 399, 401, 402, 403, 404, 405, 406, 407, 408, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 479, 482], "type_nam": 2, "type_to_nam": 2, "typenam": [0, 1, 2], "typic": [0, 146, 340, 454, 479, 483], "u": [1, 2, 183, 186, 187, 191, 352, 377, 474, 483], "u_": 455, "u_t": 455, "uint": [1, 2, 143], "uint16": [11, 317], "uint3": 1, "uint32": [11, 26, 27, 28, 29, 241, 317], "uint64": [11, 317], "uint8": [11, 317], "ultra": 5, "unabl": 8, "unam": 8, "unari": 479, "unchang": [145, 281, 386], "uncheck": 8, "uncompress": 265, "undefin": [0, 28, 112, 183, 184, 233, 245, 482], "under": [2, 189], "underli": [2, 301], "understand": [5, 402, 403], "unexpect": [2, 18], "unfreez": [324, 363], "unfrozen": 375, "unifi": 7, "uniform": [3, 324, 352, 365, 403, 405, 449, 476, 479, 481, 487], "uniformli": 252, "unintend": 0, "union": [18, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 84, 85, 86, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 176, 177, 178, 186, 187, 210, 263, 282], "uniqu": [2, 476], "unique_ptr": 2, "unit": [329, 339, 341, 342, 343, 351, 384, 385, 387, 389, 402, 403, 404, 405, 409, 410, 411, 412, 413, 414, 418, 437, 438, 439, 441], "unittest": 8, "univers": 189, "unless": [5, 16, 172, 189, 452], "unlik": [5, 16, 172, 337, 338, 371], "unnecessari": [2, 5], "unnorm": [241, 421, 423], "unscal": 456, "unsign": [164, 237, 238, 317], "unsignedinteg": 11, "unspecifi": [15, 17, 18, 26, 27, 28, 29, 95, 108, 109, 110, 111, 162, 203, 205, 207, 221, 229, 233, 235, 256, 273, 274, 280, 284, 287, 293, 294, 300, 305, 488], "unsqueez": 5, "unsupport": 194, "until": [2, 483, 485], "unus": 2, "up": [1, 2, 5, 112, 479], "upcast": 2, "updat": [0, 1, 2, 4, 5, 6, 38, 94, 307, 311, 313, 328, 358, 359, 365, 370, 371, 372, 377, 454, 456, 459, 461, 462, 463, 467, 468, 469, 470, 471, 472, 479, 480, 483], "update_modul": 324, "uplo": [186, 187], "upon": [5, 311, 312], "upper": [183, 184, 186, 187, 192, 237, 248, 251, 252, 408], "upsampl": 324, "us": [0, 3, 4, 5, 6, 7, 8, 18, 38, 83, 112, 116, 119, 121, 122, 125, 126, 127, 129, 141, 143, 145, 159, 164, 180, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 204, 211, 212, 213, 216, 218, 237, 238, 256, 257, 258, 259, 286, 310, 313, 317, 319, 324, 327, 337, 340, 341, 343, 349, 352, 356, 358, 362, 369, 376, 378, 380, 381, 383, 386, 391, 399, 400, 404, 405, 412, 413, 422, 449, 452, 454, 455, 456, 458, 459, 460, 461, 462, 463, 476, 478, 479, 480, 481, 482, 485, 487], "usag": [112, 399, 479], "user": [2, 5, 324], "usual": [340, 380, 478, 483], "util": [1, 2, 5, 7, 8, 265, 324, 454, 480], "v": [5, 105, 146, 186, 324, 363, 484], "v_": [455, 457, 458, 459, 460, 466, 467], "v_t": [455, 457, 458, 459, 460, 466, 467], "val": [0, 30, 162], "valid": [6, 105, 159, 303, 310, 363, 375, 478], "valid_parameter_filt": 358, "valu": [0, 1, 4, 5, 11, 12, 16, 18, 26, 27, 50, 78, 82, 93, 140, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 162, 172, 185, 189, 191, 193, 210, 218, 225, 232, 236, 240, 241, 242, 244, 245, 246, 248, 251, 252, 259, 263, 287, 288, 299, 303, 308, 310, 311, 312, 313, 317, 327, 329, 336, 337, 338, 339, 345, 348, 352, 356, 362, 378, 379, 395, 397, 399, 401, 421, 422, 423, 424, 425, 426, 428, 429, 430, 431, 432, 433, 446, 452, 456, 459, 468, 469, 471, 472, 481], "value_and_grad": [6, 112, 324, 376, 452, 454, 465, 479, 481, 484, 485], "value_and_grad_fn": 483, "value_cach": 5, "value_dim": 378, "value_input_dim": 378, "value_output_dim": 378, "value_proj": 5, "valueerror": [189, 365, 481], "values_hat": 5, "van": 189, "var": [0, 328, 344, 348, 350, 424], "variabl": [8, 94, 119, 132, 165, 179, 299, 302, 303, 480], "varianc": [0, 280, 300, 328, 344, 424], "variant": [5, 433, 460], "variou": 189, "vector": [0, 2, 4, 7, 171, 179, 189, 287, 302, 303, 340, 423, 485], "verbos": [1, 143], "veri": [5, 378, 480, 483, 487], "verifi": [4, 8], "versa": 259, "version": [2, 8, 116, 141, 199, 203, 237, 273, 303, 476, 481, 482], "versu": 479, "via": [8, 112, 462, 465, 480, 483, 484], "vice": 259, "video": 338, "view": [0, 3, 83, 484], "virtual": 2, "vjp": [2, 112, 485], "vmap": [2, 112, 481, 483, 485], "vmap_add": 481, "vocab_s": 5, "vocabulari": [340, 380], "void": [1, 2], "vt": 191, "w": [0, 1, 4, 99, 100, 103, 104, 116, 141, 164, 186, 237, 238, 299, 312, 327, 328, 331, 332, 334, 335, 337, 338, 352, 356, 454, 467, 481], "w1": [5, 309], "w2": [5, 309], "w3": 5, "w_": [327, 343, 349, 356, 383, 455, 456, 457, 458, 459, 460, 461, 466, 467], "w_1": 237, "w_g": 237, "w_i": [116, 141, 237], "w_in": 1, "w_q": 237, "w_star": 4, "w_stride": 1, "w_t": [455, 457, 458, 459, 460, 461, 466, 467], "wa": [5, 83, 125, 126, 480, 483], "wai": [2, 5, 8, 324, 400, 479, 480, 481, 482], "wait": [2, 5, 217], "walk": 5, "walkthrough": 2, "walsh": 168, "want": [1, 5, 480, 481, 487], "warm": [2, 479], "warmup": [470, 471], "warmup_init": 456, "watch": [5, 479], "wd": 461, "we": [0, 1, 2, 4, 5, 6, 116, 125, 126, 141, 164, 237, 238, 324, 340, 380, 388, 459, 461, 476, 478, 479, 480, 481, 483, 487], "weight": [0, 4, 98, 99, 100, 101, 102, 103, 104, 142, 144, 311, 324, 365, 369, 380, 381, 421, 423, 452, 456, 459, 461, 463, 467, 481, 483], "weight_decai": [456, 459, 461, 467], "weight_fil": 5, "weights_fp16": 483, "well": [5, 324, 363, 375, 378, 483], "wen": 5, "went": 5, "were": [5, 487], "wet": 5, "what": [2, 5, 311], "whatsoev": 5, "whc": 337, "when": [0, 1, 2, 5, 7, 8, 94, 101, 112, 127, 183, 184, 186, 187, 188, 189, 191, 192, 194, 330, 331, 332, 333, 334, 335, 400, 404, 405, 421, 427, 433, 452, 454, 470, 476, 479, 480, 487], "where": [0, 6, 140, 172, 184, 237, 299, 303, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 343, 344, 348, 349, 350, 352, 355, 356, 362, 379, 382, 383, 397, 404, 405, 410, 411, 413, 424, 430, 436, 439, 441, 446, 463, 480, 481, 482], "wherea": 481, "whether": [143, 164, 186, 187, 192, 238, 343, 349, 362, 378, 383, 421, 424, 430], "which": [0, 1, 2, 5, 6, 7, 8, 18, 37, 83, 94, 101, 118, 121, 122, 125, 126, 127, 136, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 165, 173, 174, 175, 176, 177, 179, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 208, 219, 237, 241, 242, 256, 257, 259, 262, 263, 264, 265, 266, 278, 279, 287, 294, 299, 302, 303, 307, 327, 337, 338, 341, 356, 358, 362, 386, 421, 423, 426, 430, 433, 449, 462, 463, 476, 479, 480, 481, 482, 483, 487, 488], "while": [2, 3, 5, 8, 257, 386, 483, 484], "whistl": 2, "who": 5, "whose": [140, 307, 308], "why": 5, "wide": 483, "width": [327, 328, 331, 332, 334, 335, 337, 338, 356, 380, 381], "window": [8, 326, 327, 355, 356], "wipe": 8, "wire": 218, "wired_limit_mb": 218, "wise": [0, 2, 12, 13, 19, 20, 21, 22, 23, 24, 25, 87, 88, 89, 92, 106, 107, 128, 129, 133, 134, 135, 137, 139, 160, 161, 166, 167, 172, 180, 181, 182, 195, 196, 197, 198, 199, 200, 201, 202, 206, 222, 224, 226, 228, 234, 254, 255, 258, 261, 269, 270, 271, 272, 276, 277, 283, 289, 290, 329, 337, 338, 347, 357, 379, 390, 409, 416, 417, 419, 420, 435, 436, 438, 441, 442, 443, 444, 479], "wish": 8, "with_logit": 421, "within": [0, 3, 28, 172], "without": [1, 5, 7, 281, 378, 448, 478, 479, 480, 483, 484, 487], "wk": 5, "wl": 2, "wo": 5, "word": 0, "work": [2, 3, 5, 217, 479, 480, 481, 482, 483], "workhors": 324, "world": [314, 480], "worri": [1, 483], "would": [2, 5, 400, 480, 482, 483, 484, 487], "wq": 5, "wrap": [112, 324], "write": [0, 1, 2, 5, 324, 484], "written": 2, "wrt": 308, "wv": 5, "x": [0, 1, 2, 4, 5, 6, 38, 90, 112, 121, 122, 126, 127, 134, 139, 142, 143, 144, 164, 168, 169, 189, 238, 242, 247, 260, 265, 269, 297, 298, 304, 311, 313, 324, 326, 327, 328, 329, 339, 341, 342, 344, 348, 350, 351, 352, 355, 356, 357, 358, 379, 382, 384, 390, 391, 397, 400, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 452, 454, 461, 479, 480, 481, 482, 483, 484, 485, 487], "x1": 422, "x2": 422, "x86_64": 8, "x_1": [422, 430], "x_2": [422, 430], "x_cast": 2, "x_grad": 1, "x_i": [420, 442, 443], "x_j": [442, 443], "x_offset": 2, "x_ptr": 2, "x_shape": 1, "x_stride": 2, "x_t": [343, 349, 383], "x_view": 484, "xcode": 8, "xcodeproj": 3, "xcrun": 8, "xf": 349, "xg": 349, "xi": 349, "xn": 343, "xo": 349, "xor": 89, "xr": 343, "xy": [0, 208], "xz": 343, "x\u00b2": 484, "y": [0, 2, 4, 5, 6, 38, 112, 168, 304, 324, 328, 337, 344, 348, 350, 352, 382, 425, 430, 433, 454, 457, 479, 480, 481, 483, 484], "y_": [425, 429], "y_cast": 2, "y_hat": 324, "y_offset": 2, "y_ptr": 2, "y_stride": 2, "ye": 5, "year": 5, "yet": [5, 189, 324, 452, 463, 481, 482, 483, 485], "yield": [5, 6, 476], "you": [2, 3, 5, 6, 7, 8, 218, 324, 391, 399, 449, 476, 479, 480, 481, 482, 484, 486, 487], "your": [2, 5, 8, 452, 481, 483], "z": [2, 343, 479, 483], "z_t": 343, "zeiler": 455, "zero": [0, 140, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 185, 208, 215, 296, 297, 298, 306, 324, 326, 327, 336, 337, 338, 365, 401, 402, 403, 404, 405, 406, 407, 408, 449, 454, 456, 482], "zero_grad": 481, "zeros_lik": 0, "zhang": 5, "zip": [5, 6], "zip_saf": 2}, "titles": ["Operations", "Custom Metal Kernels", "Custom Extensions in MLX", "Metal Debugger", "Linear Regression", "LLM inference", "Multi-Layer Perceptron", "MLX", "Build and Install", "mlx.core.Device", "mlx.core.Dtype", "mlx.core.DtypeCategory", "mlx.core.abs", "mlx.core.add", "mlx.core.addmm", "mlx.core.all", "mlx.core.allclose", "mlx.core.any", "mlx.core.arange", "mlx.core.arccos", "mlx.core.arccosh", "mlx.core.arcsin", "mlx.core.arcsinh", "mlx.core.arctan", "mlx.core.arctan2", "mlx.core.arctanh", "mlx.core.argmax", "mlx.core.argmin", "mlx.core.argpartition", "mlx.core.argsort", "mlx.core.array", "mlx.core.array.T", "mlx.core.array.abs", "mlx.core.array.all", "mlx.core.array.any", "mlx.core.array.argmax", "mlx.core.array.argmin", "mlx.core.array.astype", "mlx.core.array.at", "mlx.core.array.conj", "mlx.core.array.cos", "mlx.core.array.cummax", "mlx.core.array.cummin", "mlx.core.array.cumprod", "mlx.core.array.cumsum", "mlx.core.array.diag", "mlx.core.array.diagonal", "mlx.core.array.dtype", "mlx.core.array.exp", "mlx.core.array.flatten", "mlx.core.array.item", "mlx.core.array.itemsize", "mlx.core.array.log", "mlx.core.array.log10", "mlx.core.array.log1p", "mlx.core.array.log2", "mlx.core.array.logsumexp", "mlx.core.array.max", "mlx.core.array.mean", "mlx.core.array.min", "mlx.core.array.moveaxis", "mlx.core.array.nbytes", "mlx.core.array.ndim", "mlx.core.array.prod", "mlx.core.array.reciprocal", "mlx.core.array.reshape", "mlx.core.array.round", "mlx.core.array.rsqrt", "mlx.core.array.shape", "mlx.core.array.sin", "mlx.core.array.size", "mlx.core.array.split", "mlx.core.array.sqrt", "mlx.core.array.square", "mlx.core.array.squeeze", "mlx.core.array.std", "mlx.core.array.sum", "mlx.core.array.swapaxes", "mlx.core.array.tolist", "mlx.core.array.transpose", "mlx.core.array.var", "mlx.core.array.view", "mlx.core.array_equal", "mlx.core.as_strided", "mlx.core.atleast_1d", "mlx.core.atleast_2d", "mlx.core.atleast_3d", "mlx.core.bitwise_and", "mlx.core.bitwise_or", "mlx.core.bitwise_xor", "mlx.core.block_masked_mm", "mlx.core.broadcast_to", "mlx.core.ceil", "mlx.core.clip", "mlx.core.compile", "mlx.core.concatenate", "mlx.core.conj", "mlx.core.conjugate", "mlx.core.conv1d", "mlx.core.conv2d", "mlx.core.conv3d", "mlx.core.conv_general", "mlx.core.conv_transpose1d", "mlx.core.conv_transpose2d", "mlx.core.conv_transpose3d", "mlx.core.convolve", "mlx.core.cos", "mlx.core.cosh", "mlx.core.cummax", "mlx.core.cummin", "mlx.core.cumprod", "mlx.core.cumsum", "mlx.core.custom_function", "mlx.core.default_device", "mlx.core.default_stream", "mlx.core.degrees", "mlx.core.dequantize", "mlx.core.diag", "mlx.core.diagonal", "mlx.core.disable_compile", "mlx.core.distributed.Group", "mlx.core.distributed.all_gather", "mlx.core.distributed.all_sum", "mlx.core.distributed.init", "mlx.core.distributed.is_available", "mlx.core.distributed.recv", "mlx.core.distributed.recv_like", "mlx.core.distributed.send", "mlx.core.divide", "mlx.core.divmod", "mlx.core.einsum", "mlx.core.einsum_path", "mlx.core.enable_compile", "mlx.core.equal", "mlx.core.erf", "mlx.core.erfinv", "mlx.core.eval", "mlx.core.exp", "mlx.core.expand_dims", "mlx.core.expm1", "mlx.core.eye", "mlx.core.fast.affine_quantize", "mlx.core.fast.layer_norm", "mlx.core.fast.metal_kernel", "mlx.core.fast.rms_norm", "mlx.core.fast.rope", "mlx.core.fast.scaled_dot_product_attention", "mlx.core.fft.fft", "mlx.core.fft.fft2", "mlx.core.fft.fftn", "mlx.core.fft.ifft", "mlx.core.fft.ifft2", "mlx.core.fft.ifftn", "mlx.core.fft.irfft", "mlx.core.fft.irfft2", "mlx.core.fft.irfftn", "mlx.core.fft.rfft", "mlx.core.fft.rfft2", "mlx.core.fft.rfftn", "mlx.core.flatten", "mlx.core.floor", "mlx.core.floor_divide", "mlx.core.full", "mlx.core.gather_mm", "mlx.core.gather_qmm", "mlx.core.grad", "mlx.core.greater", "mlx.core.greater_equal", "mlx.core.hadamard_transform", "mlx.core.identity", "mlx.core.imag", "mlx.core.inner", "mlx.core.isclose", "mlx.core.isfinite", "mlx.core.isinf", "mlx.core.isnan", "mlx.core.isneginf", "mlx.core.isposinf", "mlx.core.issubdtype", "mlx.core.jvp", "mlx.core.left_shift", "mlx.core.less", "mlx.core.less_equal", "mlx.core.linalg.cholesky", "mlx.core.linalg.cholesky_inv", "mlx.core.linalg.cross", "mlx.core.linalg.eigh", "mlx.core.linalg.eigvalsh", "mlx.core.linalg.inv", "mlx.core.linalg.norm", "mlx.core.linalg.qr", "mlx.core.linalg.svd", "mlx.core.linalg.tri_inv", "mlx.core.linspace", "mlx.core.load", "mlx.core.log", "mlx.core.log10", "mlx.core.log1p", "mlx.core.log2", "mlx.core.logaddexp", "mlx.core.logical_and", "mlx.core.logical_not", "mlx.core.logical_or", "mlx.core.logsumexp", "mlx.core.matmul", "mlx.core.max", "mlx.core.maximum", "mlx.core.mean", "mlx.core.meshgrid", "mlx.core.metal.clear_cache", "mlx.core.metal.device_info", "mlx.core.metal.get_active_memory", "mlx.core.metal.get_cache_memory", "mlx.core.metal.get_peak_memory", "mlx.core.metal.is_available", "mlx.core.metal.reset_peak_memory", "mlx.core.metal.set_cache_limit", "mlx.core.metal.set_memory_limit", "mlx.core.metal.set_wired_limit", "mlx.core.metal.start_capture", "mlx.core.metal.stop_capture", "mlx.core.min", "mlx.core.minimum", "mlx.core.moveaxis", "mlx.core.multiply", "mlx.core.nan_to_num", "mlx.core.negative", "mlx.core.new_stream", "mlx.core.not_equal", "mlx.core.ones", "mlx.core.ones_like", "mlx.core.outer", "mlx.core.pad", "mlx.core.partition", "mlx.core.power", "mlx.core.prod", "mlx.core.put_along_axis", "mlx.core.quantize", "mlx.core.quantized_matmul", "mlx.core.radians", "mlx.core.random.bernoulli", "mlx.core.random.categorical", "mlx.core.random.gumbel", "mlx.core.random.key", "mlx.core.random.laplace", "mlx.core.random.multivariate_normal", "mlx.core.random.normal", "mlx.core.random.permutation", "mlx.core.random.randint", "mlx.core.random.seed", "mlx.core.random.split", "mlx.core.random.truncated_normal", "mlx.core.random.uniform", "mlx.core.real", "mlx.core.reciprocal", "mlx.core.remainder", "mlx.core.repeat", "mlx.core.reshape", "mlx.core.right_shift", "mlx.core.roll", "mlx.core.round", "mlx.core.rsqrt", "mlx.core.save", "mlx.core.save_gguf", "mlx.core.save_safetensors", "mlx.core.savez", "mlx.core.savez_compressed", "mlx.core.set_default_device", "mlx.core.set_default_stream", "mlx.core.sigmoid", "mlx.core.sign", "mlx.core.sin", "mlx.core.sinh", "mlx.core.softmax", "mlx.core.sort", "mlx.core.split", "mlx.core.sqrt", "mlx.core.square", "mlx.core.squeeze", "mlx.core.stack", "mlx.core.std", "mlx.core.stop_gradient", "mlx.core.stream", "mlx.core.subtract", "mlx.core.sum", "mlx.core.swapaxes", "mlx.core.synchronize", "mlx.core.take", "mlx.core.take_along_axis", "mlx.core.tan", "mlx.core.tanh", "mlx.core.tensordot", "mlx.core.tile", "mlx.core.topk", "mlx.core.trace", "mlx.core.transpose", "mlx.core.tri", "mlx.core.tril", "mlx.core.triu", "mlx.core.value_and_grad", "mlx.core.var", "mlx.core.view", "mlx.core.vjp", "mlx.core.vmap", "mlx.core.where", "mlx.core.zeros", "mlx.core.zeros_like", "mlx.nn.quantize", "mlx.nn.value_and_grad", "mlx.optimizers.clip_grad_norm", "mlx.utils.tree_flatten", "mlx.utils.tree_map", "mlx.utils.tree_map_with_path", "mlx.utils.tree_reduce", "mlx.utils.tree_unflatten", "mlx.core.Stream", "Array", "Data Types", "Devices and Streams", "Distributed Communication", "Fast", "FFT", "Linear Algebra", "Metal", "Neural Networks", "mlx.nn.ALiBi", "mlx.nn.AvgPool1d", "mlx.nn.AvgPool2d", "mlx.nn.BatchNorm", "mlx.nn.CELU", "mlx.nn.Conv1d", "mlx.nn.Conv2d", "mlx.nn.Conv3d", "mlx.nn.ConvTranspose1d", "mlx.nn.ConvTranspose2d", "mlx.nn.ConvTranspose3d", "mlx.nn.Dropout", "mlx.nn.Dropout2d", "mlx.nn.Dropout3d", "mlx.nn.ELU", "mlx.nn.Embedding", "mlx.nn.GELU", "mlx.nn.GLU", "mlx.nn.GRU", "mlx.nn.GroupNorm", "mlx.nn.HardShrink", "mlx.nn.HardTanh", "mlx.nn.Hardswish", "mlx.nn.InstanceNorm", "mlx.nn.LSTM", "mlx.nn.LayerNorm", "mlx.nn.LeakyReLU", "mlx.nn.Linear", "mlx.nn.LogSigmoid", "mlx.nn.LogSoftmax", "mlx.nn.MaxPool1d", "mlx.nn.MaxPool2d", "mlx.nn.Mish", "mlx.nn.Module.apply", "mlx.nn.Module.apply_to_modules", "mlx.nn.Module.children", "mlx.nn.Module.eval", "mlx.nn.Module.filter_and_map", "mlx.nn.Module.freeze", "mlx.nn.Module.leaf_modules", "mlx.nn.Module.load_weights", "mlx.nn.Module.modules", "mlx.nn.Module.named_modules", "mlx.nn.Module.parameters", "mlx.nn.Module.save_weights", "mlx.nn.Module.set_dtype", "mlx.nn.Module.state", "mlx.nn.Module.train", "mlx.nn.Module.trainable_parameters", "mlx.nn.Module.training", "mlx.nn.Module.unfreeze", "mlx.nn.Module.update", "mlx.nn.Module.update_modules", "mlx.nn.MultiHeadAttention", "mlx.nn.PReLU", "mlx.nn.QuantizedEmbedding", "mlx.nn.QuantizedLinear", "mlx.nn.RMSNorm", "mlx.nn.RNN", "mlx.nn.ReLU", "mlx.nn.ReLU6", "mlx.nn.RoPE", "mlx.nn.SELU", "mlx.nn.Sequential", "mlx.nn.SiLU", "mlx.nn.Sigmoid", "mlx.nn.SinusoidalPositionalEncoding", "mlx.nn.Softmax", "mlx.nn.Softmin", "mlx.nn.Softplus", "mlx.nn.Softshrink", "mlx.nn.Softsign", "mlx.nn.Step", "mlx.nn.Tanh", "mlx.nn.Transformer", "mlx.nn.Upsample", "mlx.nn.init.constant", "mlx.nn.init.glorot_normal", "mlx.nn.init.glorot_uniform", "mlx.nn.init.he_normal", "mlx.nn.init.he_uniform", "mlx.nn.init.identity", "mlx.nn.init.normal", "mlx.nn.init.uniform", "mlx.nn.celu", "mlx.nn.elu", "mlx.nn.gelu", "mlx.nn.gelu_approx", "mlx.nn.gelu_fast_approx", "mlx.nn.glu", "mlx.nn.hard_shrink", "mlx.nn.hard_tanh", "mlx.nn.hardswish", "mlx.nn.leaky_relu", "mlx.nn.log_sigmoid", "mlx.nn.log_softmax", "mlx.nn.losses.binary_cross_entropy", "mlx.nn.losses.cosine_similarity_loss", "mlx.nn.losses.cross_entropy", "mlx.nn.losses.gaussian_nll_loss", "mlx.nn.losses.hinge_loss", "mlx.nn.losses.huber_loss", "mlx.nn.losses.kl_div_loss", "mlx.nn.losses.l1_loss", "mlx.nn.losses.log_cosh_loss", "mlx.nn.losses.margin_ranking_loss", "mlx.nn.losses.mse_loss", "mlx.nn.losses.nll_loss", "mlx.nn.losses.smooth_l1_loss", "mlx.nn.losses.triplet_loss", "mlx.nn.mish", "mlx.nn.prelu", "mlx.nn.relu", "mlx.nn.relu6", "mlx.nn.selu", "mlx.nn.sigmoid", "mlx.nn.silu", "mlx.nn.softmax", "mlx.nn.softmin", "mlx.nn.softplus", "mlx.nn.softshrink", "mlx.nn.step", "mlx.nn.tanh", "Functions", "Initializers", "Layers", "Loss Functions", "Module", "Operations", "Optimizers", "mlx.optimizers.AdaDelta", "mlx.optimizers.Adafactor", "mlx.optimizers.Adagrad", "mlx.optimizers.Adam", "mlx.optimizers.AdamW", "mlx.optimizers.Adamax", "mlx.optimizers.Lion", "mlx.optimizers.Optimizer.apply_gradients", "mlx.optimizers.Optimizer.init", "mlx.optimizers.Optimizer.state", "mlx.optimizers.Optimizer.update", "mlx.optimizers.RMSprop", "mlx.optimizers.SGD", "mlx.optimizers.cosine_decay", "mlx.optimizers.exponential_decay", "mlx.optimizers.join_schedules", "mlx.optimizers.linear_schedule", "mlx.optimizers.step_decay", "Common Optimizers", "Optimizer", "Schedulers", "Random", "Transforms", "Tree Utils", "Compilation", "Distributed Communication", "Function Transforms", "Indexing Arrays", "Lazy Evaluation", "Conversion to NumPy and Other Frameworks", "Quick Start Guide", "Saving and Loading Arrays", "Unified Memory", "Using Streams"], "titleterms": {"A": 487, "In": 482, "The": 324, "ab": [12, 32], "adadelta": 455, "adafactor": 456, "adagrad": 457, "adam": 458, "adamax": 460, "adamw": 459, "add": 13, "addmm": 14, "affine_quant": 141, "algebra": 322, "alibi": 325, "all": [5, 15, 33, 480], "all_gath": 121, "all_sum": 122, "allclos": 16, "ani": [17, 34], "api": [7, 8], "appli": 358, "apply_gradi": 462, "apply_to_modul": 359, "arang": 18, "arcco": 19, "arccosh": 20, "arcsin": 21, "arcsinh": 22, "arctan": 23, "arctan2": 24, "arctanh": 25, "argmax": [26, 35], "argmin": [27, 36], "argpartit": 28, "argsort": 29, "arrai": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 316, 482, 486], "array_equ": 82, "as_strid": 83, "astyp": 37, "atleast_1d": 84, "atleast_2d": 85, "atleast_3d": 86, "attent": 5, "automat": 481, "avgpool1d": 326, "avgpool2d": 327, "back": 2, "basic": [479, 485], "batchnorm": 328, "benchmark": 5, "bernoulli": 240, "binari": 8, "binary_cross_entropi": 421, "bind": 2, "bitwise_and": 87, "bitwise_or": 88, "bitwise_xor": 89, "block_masked_mm": 90, "broadcast_to": 91, "build": [2, 8], "c": [7, 8], "categor": 241, "ceil": 92, "celu": [329, 409], "children": 360, "choleski": 183, "cholesky_inv": 184, "class": 324, "clear_cach": 209, "clip": 93, "clip_grad_norm": 309, "cmake": 2, "co": [40, 106], "code": [2, 5], "common": 473, "commun": [319, 480], "compil": [94, 479], "complex": 1, "comput": 483, "concaten": 95, "conj": [39, 96], "conjug": 97, "constant": 401, "conv1d": [98, 330], "conv2d": [99, 331], "conv3d": [100, 332], "conv_gener": 101, "conv_transpose1d": 102, "conv_transpose2d": 103, "conv_transpose3d": 104, "convers": 484, "convert": 5, "convolv": 105, "convtranspose1d": 333, "convtranspose2d": 334, "convtranspose3d": 335, "core": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 315], "cosh": 107, "cosine_decai": 468, "cosine_similarity_loss": 422, "cpu": 2, "cross": 185, "cross_entropi": 423, "cummax": [41, 108], "cummin": [42, 109], "cumprod": [43, 110], "cumsum": [44, 111], "custom": [1, 2], "custom_funct": 112, "data": 317, "debug": 479, "debugg": 3, "default_devic": 113, "default_stream": 114, "degre": 115, "dequant": 116, "devic": [9, 318], "device_info": 210, "diag": [45, 117], "diagon": [46, 118], "differ": 482, "differenti": 481, "disable_compil": 119, "distribut": [120, 121, 122, 123, 124, 125, 126, 127, 319, 480], "divid": 128, "divmod": 129, "download": [2, 5], "dropout": 336, "dropout2d": 337, "dropout3d": 338, "dtype": [10, 47], "dtypecategori": 11, "eigh": 186, "eigvalsh": 187, "einsum": 130, "einsum_path": 131, "elu": [339, 410], "embed": 340, "enable_compil": 132, "encod": 5, "end": 2, "equal": 133, "erf": 134, "erfinv": 135, "eval": [136, 361], "evalu": 483, "exampl": [1, 2, 7, 479, 480, 487], "exp": [48, 137], "expand_dim": 138, "expm1": 139, "exponential_decai": 469, "extens": 2, "ey": 140, "fast": [141, 142, 143, 144, 145, 146, 320], "fft": [147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 321], "fft2": 148, "fftn": 149, "filter_and_map": 362, "flatten": [49, 159], "floor": 160, "floor_divid": 161, "format": 486, "found": 8, "framework": 484, "freez": 363, "from": [8, 482], "full": [5, 162], "function": [448, 451, 479, 481, 485], "further": 7, "gather_mm": 163, "gather_qmm": 164, "gaussian_nll_loss": 424, "gelu": [341, 411], "gelu_approx": 412, "gelu_fast_approx": 413, "gener": 5, "get": 480, "get_active_memori": 211, "get_cache_memori": 212, "get_peak_memori": 213, "glorot_norm": 402, "glorot_uniform": 403, "glu": [342, 414], "gpu": 2, "grad": [165, 324], "graph": [479, 483, 485], "greater": 166, "greater_equ": 167, "grid": 1, "group": 120, "groupnorm": 344, "gru": 343, "guid": 485, "gumbel": 242, "hadamard_transform": 168, "hard_shrink": 415, "hard_tanh": 416, "hardshrink": 345, "hardswish": [347, 417], "hardtanh": 346, "he_norm": 404, "he_uniform": 405, "hinge_loss": 425, "host": 480, "huber_loss": 426, "ident": [169, 406], "ifft": 150, "ifft2": 151, "ifftn": 152, "imag": 170, "implement": [2, 5], "index": 482, "infer": 5, "init": [123, 401, 402, 403, 404, 405, 406, 407, 408, 463], "initi": 449, "inner": 171, "inspect": 324, "instal": [7, 8, 480], "instancenorm": 348, "introduc": 2, "inv": 188, "irfft": 153, "irfft2": 154, "irfftn": 155, "is_avail": [124, 214], "isclos": 172, "isfinit": 173, "isinf": 174, "isnan": 175, "isneginf": 176, "isposinf": 177, "issubdtyp": 178, "item": 50, "items": 51, "jax": 484, "join_schedul": 470, "jvp": 179, "kei": 243, "kernel": 1, "kl_div_loss": 427, "l1_loss": 428, "laplac": 244, "layer": [5, 6, 450], "layer_norm": 142, "layernorm": 350, "lazi": 483, "leaf_modul": 364, "leaky_relu": 418, "leakyrelu": 351, "left_shift": 180, "less": 181, "less_equ": 182, "linalg": [183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "linear": [4, 322, 352], "linear_schedul": 471, "linspac": 193, "lion": 461, "llm": 5, "load": [5, 194, 454, 486], "load_weight": 365, "log": [52, 195], "log10": [53, 196], "log1p": [54, 197], "log2": [55, 198], "log_cosh_loss": 429, "log_sigmoid": 419, "log_softmax": 420, "logaddexp": 199, "logical_and": 200, "logical_not": 201, "logical_or": 202, "logsigmoid": 353, "logsoftmax": 354, "logsumexp": [56, 203], "loss": [421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 451], "lstm": 349, "margin_ranking_loss": 430, "matmul": 204, "max": [57, 205], "maximum": 206, "maxpool1d": 355, "maxpool2d": 356, "mean": [58, 207], "memori": 487, "meshgrid": 208, "metal": [1, 3, 8, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 323], "metal_kernel": 143, "min": [59, 221], "minim": 8, "minimum": 222, "mish": [357, 435], "mlx": [2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472], "model": 5, "modul": [324, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 452], "moveaxi": [60, 223], "mpi": 480, "mse_loss": 431, "multi": 6, "multiheadattent": 378, "multipli": 224, "multivariate_norm": 245, "named_modul": 367, "nan_to_num": 225, "nbyte": 61, "ndim": 62, "neg": 226, "network": 324, "neural": 324, "new_stream": 227, "nll_loss": 432, "nn": [307, 308, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447], "norm": 189, "normal": [246, 407], "not_equ": 228, "numpi": [482, 484], "ones": 229, "ones_lik": 230, "onli": 483, "oper": [0, 2, 453], "optim": [309, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474], "option": 8, "other": 484, "outer": 231, "pad": 232, "paramet": [324, 368], "partit": 233, "perceptron": 6, "permut": 247, "place": 482, "power": 234, "prelu": [379, 436], "primit": 2, "prod": [63, 235], "pure": 479, "put": 5, "put_along_axi": 236, "python": [2, 7, 8], "pytorch": 484, "qr": 190, "quantiz": [237, 307], "quantized_matmul": 238, "quantizedembed": 380, "quantizedlinear": 381, "quick": [324, 485], "radian": 239, "randint": 248, "random": [240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 476], "read": 7, "real": 253, "reciproc": [64, 254], "recv": 125, "recv_lik": 126, "reduc": 480, "refer": 7, "regress": 4, "relu": [384, 437], "relu6": [385, 438], "remaind": 255, "remot": 480, "repeat": 256, "requir": 8, "reset_peak_memori": 215, "reshap": [65, 257], "result": 2, "rfft": 156, "rfft2": 157, "rfftn": 158, "right_shift": 258, "rms_norm": 144, "rmsnorm": 382, "rmsprop": 466, "rnn": 383, "roll": 259, "rope": [145, 386], "round": [66, 260], "rsqrt": [67, 261], "sampl": 1, "save": [262, 454, 486], "save_gguf": 263, "save_safetensor": 264, "save_weight": 369, "savez": 265, "savez_compress": 266, "scaled_dot_product_attent": 146, "schedul": 475, "script": [2, 5], "seed": 249, "selu": [387, 439], "send": 127, "sequenti": 388, "serial": 486, "set": 480, "set_cache_limit": 216, "set_default_devic": 267, "set_default_stream": 268, "set_dtyp": 370, "set_memory_limit": 217, "set_wired_limit": 218, "setuptool": 2, "sgd": 467, "shape": [1, 68], "shell": 8, "sigmoid": [269, 390, 440], "sign": 270, "silu": [389, 441], "simpl": [1, 487], "sin": [69, 271], "sinh": 272, "sinusoidalpositionalencod": 391, "size": [8, 70], "smooth_l1_loss": 433, "softmax": [273, 392, 442], "softmin": [393, 443], "softplu": [394, 444], "softshrink": [395, 445], "softsign": 396, "sort": 274, "sourc": 8, "specifi": 488, "speedup": 479, "split": [71, 250, 275], "sqrt": [72, 276], "squar": [73, 277], "squeez": [74, 278], "stack": 279, "start": [324, 480, 485], "start_captur": 219, "state": [371, 464], "std": [75, 280], "step": [397, 446], "step_decai": 472, "stop_captur": 220, "stop_gradi": 281, "stream": [282, 315, 318, 488], "stride": 1, "subtract": 283, "sum": [76, 284], "support": 317, "svd": 191, "swapax": [77, 285], "synchron": 286, "t": 31, "take": 287, "take_along_axi": 288, "tan": 289, "tanh": [290, 398, 447], "tensordot": 291, "tensorflow": 484, "tile": 292, "togeth": 5, "tolist": 78, "topk": 293, "trace": 294, "train": [372, 374, 479, 480], "trainable_paramet": 373, "transform": [2, 399, 477, 479, 481, 483, 485], "transpos": [79, 295], "tree": 478, "tree_flatten": 310, "tree_map": 311, "tree_map_with_path": 312, "tree_reduc": 313, "tree_unflatten": 314, "tri": 296, "tri_inv": 192, "tril": 297, "triplet_loss": 434, "triu": 298, "troubleshoot": 8, "truncated_norm": 251, "tune": 480, "type": 317, "unfreez": 375, "unifi": 487, "uniform": [252, 408], "up": 480, "updat": [324, 376, 465, 482], "update_modul": 377, "upsampl": 400, "us": [1, 2, 483, 488], "usag": [2, 7], "util": [310, 311, 312, 313, 314, 478], "valu": 324, "value_and_grad": [299, 308], "var": [80, 300], "vector": 481, "view": [81, 301], "vjp": [1, 302], "vmap": 303, "weight": 5, "what": 483, "when": 483, "where": 304, "why": 483, "workflow": 3, "x86": 8, "xcode": 3, "you": 483, "zero": 305, "zeros_lik": 306}}) \ No newline at end of file diff --git a/docs/build/html/struct_cum_max.html b/docs/build/html/struct_cum_max.html index 1823cc0e5..8d05c204d 100644 --- a/docs/build/html/struct_cum_max.html +++ b/docs/build/html/struct_cum_max.html @@ -92,7 +92,7 @@ $(function(){ initResizable(false); });
      -

      #include <scan.h>

      +

      #include <scan.h>

      @@ -223,7 +223,7 @@ template<typename U >
      The documentation for this struct was generated from the following file:
        -
      • mlx/backend/metal/kernels/scan.h
      • +
      • mlx/backend/metal/kernels/scan.h
      diff --git a/docs/build/html/struct_cum_min.html b/docs/build/html/struct_cum_min.html index ca86e8763..24f139412 100644 --- a/docs/build/html/struct_cum_min.html +++ b/docs/build/html/struct_cum_min.html @@ -92,7 +92,7 @@ $(function(){ initResizable(false); });
      -

      #include <scan.h>

      +

      #include <scan.h>

      Public Member Functions

      @@ -223,7 +223,7 @@ template<typename U >
      The documentation for this struct was generated from the following file:
        -
      • mlx/backend/metal/kernels/scan.h
      • +
      • mlx/backend/metal/kernels/scan.h
      diff --git a/docs/build/html/struct_cum_prod.html b/docs/build/html/struct_cum_prod.html index 5ffc5b47d..4e8ebef21 100644 --- a/docs/build/html/struct_cum_prod.html +++ b/docs/build/html/struct_cum_prod.html @@ -84,146 +84,13 @@ $(function(){ initResizable(false); });
      -
      CumProd< U > Struct Template Reference
      -

      #include <scan.h>

      -

      Public Member Functions

      - - - - - - - - -

      -Public Member Functions

      template<typename T >
      operator() (U a, T b)
       
      simd_scan (U x)
       
      simd_exclusive_scan (U x)
       
      - - - -

      -Static Public Attributes

      static constexpr constant U init = static_cast<U>(1.0f)
       
      -

      Member Function Documentation

      - -

      ◆ operator()()

      - -
      -
      -
      -template<typename U >
      -
      -template<typename T >
      - - - - - -
      - - - - - - - - - - - -
      U CumProd< U >::operator() (U a,
      T b )
      -
      -inline
      -
      - -
      -
      - -

      ◆ simd_exclusive_scan()

      - -
      -
      -
      -template<typename U >
      - - - - - -
      - - - - - - - -
      U CumProd< U >::simd_exclusive_scan (U x)
      -
      -inline
      -
      - -
      -
      - -

      ◆ simd_scan()

      - -
      -
      -
      -template<typename U >
      - - - - - -
      - - - - - - - -
      U CumProd< U >::simd_scan (U x)
      -
      -inline
      -
      - -
      -
      -

      Member Data Documentation

      - -

      ◆ init

      - -
      -
      -
      -template<typename U >
      - - - - - -
      - - - - -
      constant U CumProd< U >::init = static_cast<U>(1.0f)
      -
      -staticconstexpr
      -
      - -
      -
      +

      #include <scan.h>


      The documentation for this struct was generated from the following file:
        -
      • mlx/backend/metal/kernels/scan.h
      • +
      • mlx/backend/metal/kernels/scan.h
      diff --git a/docs/build/html/struct_cum_prod_3_01bool_01_4.html b/docs/build/html/struct_cum_prod_3_01bool_01_4.html index 32bf27b60..9f65aac58 100644 --- a/docs/build/html/struct_cum_prod_3_01bool_01_4.html +++ b/docs/build/html/struct_cum_prod_3_01bool_01_4.html @@ -92,7 +92,7 @@ $(function(){ initResizable(false); });
      -

      #include <scan.h>

      +

      #include <scan.h>

      @@ -215,7 +215,7 @@ template<typename T >
      The documentation for this struct was generated from the following file:
        -
      • mlx/backend/metal/kernels/scan.h
      • +
      • mlx/backend/metal/kernels/scan.h
      diff --git a/docs/build/html/struct_cum_sum.html b/docs/build/html/struct_cum_sum.html index ee25af373..c72422f55 100644 --- a/docs/build/html/struct_cum_sum.html +++ b/docs/build/html/struct_cum_sum.html @@ -84,146 +84,13 @@ $(function(){ initResizable(false); });
      -
      CumSum< U > Struct Template Reference
      -

      #include <scan.h>

      -

      Public Member Functions

      - - - - - - - - -

      -Public Member Functions

      template<typename T >
      operator() (U a, T b)
       
      simd_scan (U x)
       
      simd_exclusive_scan (U x)
       
      - - - -

      -Static Public Attributes

      static constexpr constant U init = static_cast<U>(0)
       
      -

      Member Function Documentation

      - -

      ◆ operator()()

      - -
      -
      -
      -template<typename U >
      -
      -template<typename T >
      - - - - - -
      - - - - - - - - - - - -
      U CumSum< U >::operator() (U a,
      T b )
      -
      -inline
      -
      - -
      -
      - -

      ◆ simd_exclusive_scan()

      - -
      -
      -
      -template<typename U >
      - - - - - -
      - - - - - - - -
      U CumSum< U >::simd_exclusive_scan (U x)
      -
      -inline
      -
      - -
      -
      - -

      ◆ simd_scan()

      - -
      -
      -
      -template<typename U >
      - - - - - -
      - - - - - - - -
      U CumSum< U >::simd_scan (U x)
      -
      -inline
      -
      - -
      -
      -

      Member Data Documentation

      - -

      ◆ init

      - -
      -
      -
      -template<typename U >
      - - - - - -
      - - - - -
      constant U CumSum< U >::init = static_cast<U>(0)
      -
      -staticconstexpr
      -
      - -
      -
      +

      #include <scan.h>


      The documentation for this struct was generated from the following file:
        -
      • mlx/backend/metal/kernels/scan.h
      • +
      • mlx/backend/metal/kernels/scan.h
      diff --git a/docs/build/html/struct_quantized_block_loader.html b/docs/build/html/struct_quantized_block_loader.html index eb3602db5..8b1f99eae 100644 --- a/docs/build/html/struct_quantized_block_loader.html +++ b/docs/build/html/struct_quantized_block_loader.html @@ -449,7 +449,7 @@ template<typename T , short BROWS, short BCOLS, short dst_ld, short reduction
      Initial value:
      =
      (BCOLS_PACKED * BROWS < tgp_size) ? 1 : (BCOLS_PACKED * BROWS) / tgp_size
      -
      static constant constexpr const short BCOLS_PACKED
      Definition quantized.h:273
      +
      static constant constexpr const short BCOLS_PACKED
      Definition quantized.h:274
      diff --git a/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder-members.html b/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder-members.html index 0a08cabaf..53b080582 100644 --- a/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder-members.html +++ b/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder-members.html @@ -98,8 +98,10 @@ $(function(){ initResizable(false); }); CommandEncoder(const CommandEncoder &)=deletemlx::core::metal::CommandEncoder dispatchThreadgroups(MTL::Size grid_dims, MTL::Size group_dims)mlx::core::metal::CommandEncoder dispatchThreads(MTL::Size grid_dims, MTL::Size group_dims)mlx::core::metal::CommandEncoder - operator->()mlx::core::metal::CommandEncoderinline - operator=(const CommandEncoder &)=deletemlx::core::metal::CommandEncoder + inputs()mlx::core::metal::CommandEncoderinline + operator->()mlx::core::metal::CommandEncoderinline + operator=(const CommandEncoder &)=deletemlx::core::metal::CommandEncoder + outputs()mlx::core::metal::CommandEncoderinline set_input_array(const array &a, int idx, int64_t offset=0)mlx::core::metal::CommandEncoder set_output_array(array &a, int idx, int64_t offset=0)mlx::core::metal::CommandEncoder start_concurrent()mlx::core::metal::CommandEncoderinline diff --git a/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder.html b/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder.html index 6548e1b2f..186308cbb 100644 --- a/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder.html +++ b/docs/build/html/structmlx_1_1core_1_1metal_1_1_command_encoder.html @@ -125,6 +125,10 @@ Public Member Functions    ~CommandEncoder ()   +std::unordered_set< const void * > & inputs () +  +std::unordered_set< const void * > outputs () + 

      Constructor & Destructor Documentation

      @@ -227,6 +231,31 @@ Public Member Functions
      +
      + + +

      ◆ inputs()

      + +
      +
      + + + + + +
      + + + + + + + +
      std::unordered_set< const void * > & mlx::core::metal::CommandEncoder::inputs ()
      +
      +inline
      +
      +
      @@ -277,6 +306,31 @@ Public Member Functions
      +
      + + +

      ◆ outputs()

      + +
      +
      + + + + + +
      + + + + + + + +
      std::unordered_set< const void * > mlx::core::metal::CommandEncoder::outputs ()
      +
      +inline
      +
      +
      diff --git a/docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream-members.html b/docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream-members.html new file mode 100644 index 000000000..ac3de1a90 --- /dev/null +++ b/docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream-members.html @@ -0,0 +1,114 @@ + + + + + + + +MLX: Member List + + + + + + + + + + + + + +
      +
      + + + + + + +
      +
      MLX +
      +
      +
      + + + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      + + + diff --git a/docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream.html b/docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream.html new file mode 100644 index 000000000..baa1ee9ee --- /dev/null +++ b/docs/build/html/structmlx_1_1core_1_1metal_1_1_device_stream.html @@ -0,0 +1,301 @@ + + + + + + + +MLX: mlx::core::metal::DeviceStream Struct Reference + + + + + + + + + + + + + +
      +
      + + + + + + +
      +
      MLX +
      +
      +
      + + + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      + +
      mlx::core::metal::DeviceStream Struct Reference
      +
      +
      + +

      #include <device.h>

      + + + + + + +

      +Public Member Functions

       DeviceStream (MTL::CommandQueue *queue)
       
       ~DeviceStream ()
       
      + + + + + + + + + + + + + + + + + +

      +Public Attributes

      MTL::CommandQueue * queue
       
      std::unordered_map< const void *, std::shared_ptr< Fence > > outputs
       
      std::mutex fence_mtx
       
      MTL::CommandBuffer * buffer {nullptr}
       
      int buffer_ops {0}
       
      std::unique_ptr< CommandEncoderencoder {nullptr}
       
      std::shared_ptr< Fencefence
       
      std::vector< arraytemporaries
       
      +

      Constructor & Destructor Documentation

      + +

      ◆ DeviceStream()

      + +
      +
      + + + + + +
      + + + + + + + +
      mlx::core::metal::DeviceStream::DeviceStream (MTL::CommandQueue * queue)
      +
      +inline
      +
      + +
      +
      + +

      ◆ ~DeviceStream()

      + +
      +
      + + + + + +
      + + + + + + + +
      mlx::core::metal::DeviceStream::~DeviceStream ()
      +
      +inline
      +
      + +
      +
      +

      Member Data Documentation

      + +

      ◆ buffer

      + +
      +
      + + + + +
      MTL::CommandBuffer* mlx::core::metal::DeviceStream::buffer {nullptr}
      +
      + +
      +
      + +

      ◆ buffer_ops

      + +
      +
      + + + + +
      int mlx::core::metal::DeviceStream::buffer_ops {0}
      +
      + +
      +
      + +

      ◆ encoder

      + +
      +
      + + + + +
      std::unique_ptr<CommandEncoder> mlx::core::metal::DeviceStream::encoder {nullptr}
      +
      + +
      +
      + +

      ◆ fence

      + +
      +
      + + + + +
      std::shared_ptr<Fence> mlx::core::metal::DeviceStream::fence
      +
      + +
      +
      + +

      ◆ fence_mtx

      + +
      +
      + + + + +
      std::mutex mlx::core::metal::DeviceStream::fence_mtx
      +
      + +
      +
      + +

      ◆ outputs

      + +
      +
      + + + + +
      std::unordered_map<const void*, std::shared_ptr<Fence> > mlx::core::metal::DeviceStream::outputs
      +
      + +
      +
      + +

      ◆ queue

      + +
      +
      + + + + +
      MTL::CommandQueue* mlx::core::metal::DeviceStream::queue
      +
      + +
      +
      + +

      ◆ temporaries

      + +
      +
      + + + + +
      std::vector<array> mlx::core::metal::DeviceStream::temporaries
      +
      + +
      +
      +
      The documentation for this struct was generated from the following file: +
      + + +
      + + diff --git a/docs/build/html/struct_cum_sum-members.html b/docs/build/html/structmlx_1_1core_1_1metal_1_1_fence-members.html similarity index 70% rename from docs/build/html/struct_cum_sum-members.html rename to docs/build/html/structmlx_1_1core_1_1metal_1_1_fence-members.html index e8cbbf953..29d34f1d3 100644 --- a/docs/build/html/struct_cum_sum-members.html +++ b/docs/build/html/structmlx_1_1core_1_1metal_1_1_fence-members.html @@ -81,19 +81,22 @@ $(function(){ initResizable(false); }); +
      -
      CumSum< U > Member List
      +
      mlx::core::metal::Fence Member List
      -

      This is the complete list of members for CumSum< U >, including all inherited members.

      +

      This is the complete list of members for mlx::core::metal::Fence, including all inherited members.

      - - - - + + +
      initCumSum< U >static
      operator()(U a, T b)CumSum< U >inline
      simd_exclusive_scan(U x)CumSum< U >inline
      simd_scan(U x)CumSum< U >inline
      Fence(MTL::Fence *fence)mlx::core::metal::Fenceinline
      fencemlx::core::metal::Fence
      ~Fence()mlx::core::metal::Fenceinline
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -994,12 +978,6 @@ handles synchronization:

      On an M1 Max the times are 15.5 and 3.1 milliseconds. The compiled gelu is five times faster.

      -
      -

      Note

      -

      As of the latest MLX, CPU functions are not fully compiled. Compiling CPU -functions can still be helpful, but won’t typically result in as large a -speedup as compiling operations that run on the GPU.

      -

      Debugging#

      @@ -1294,7 +1272,8 @@ the most opportunity to optimize the computation graph:

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1061,7 +1045,8 @@ connections between each host to improve bandwidth

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1063,7 +1047,8 @@ vectorized version takes only
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1013,7 +997,8 @@ and ones elsewhere.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1033,7 +1017,8 @@ inefficient if evaluations are done too frequently.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1010,7 +994,8 @@ multi-dimensional arrays. Casting to NumPy first is advised for now.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -969,7 +953,8 @@ gradient with respect to the function’s input.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -1025,8 +1009,8 @@ By MLX Contributors - - + +
      diff --git a/docs/build/html/usage/unified_memory.html b/docs/build/html/usage/unified_memory.html index 35984b418..9ab52fa7a 100644 --- a/docs/build/html/usage/unified_memory.html +++ b/docs/build/html/usage/unified_memory.html @@ -8,7 +8,7 @@ - Unified Memory — MLX 0.19.0 documentation + Unified Memory — MLX 0.19.1 documentation @@ -16,27 +16,30 @@ document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; + + - - - - - - - - - + + + + - - - + + - + @@ -47,6 +50,7 @@ + @@ -62,19 +66,8 @@ Back to top - - - - - - -
      -
      -
      + +
      -
      + +
      @@ -107,7 +99,8 @@ -
      + +
      @@ -136,22 +129,18 @@ - MLX 0.19.0 documentation - Home - + MLX 0.19.1 documentation - Home + MLX 0.19.1 documentation - Home
      +
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -971,7 +955,8 @@ Max.

      -
  • Metal
      @@ -493,6 +484,7 @@
    • mlx.core.metal.get_cache_memory
    • mlx.core.metal.set_memory_limit
    • mlx.core.metal.set_cache_limit
    • +
    • mlx.core.metal.set_wired_limit
    • mlx.core.metal.clear_cache
    • mlx.core.metal.start_capture
    • mlx.core.metal.stop_capture
    • @@ -823,24 +815,16 @@ - + - + @@ -927,7 +911,8 @@ run on the default stream of the provided device -